[EMAIL PROTECTED] writes:
> A property Note.z would apply only to a single note within a voice -
> several notes could exist within one voice, but if the note head
> shape or size z was changed for one note, it would not affect
> parallel notes, whether in the same voice, or staff, or not.

But how would you identify to which note your Note.z refers?  For
example you have

        < c4
        \property Note.style = "diamond"
          g4 >

Which note gets the diamond style?  Remember: \properties are not
coupled to the input, so you can't say "the g because \property is
before g".  If you don't believe me, try explaining what this should
do:

    < \context Voice = va { < c4 g > }
      \context Voice = vb { < d f > }
      \context Voice = va { \property Note.style = diamond }
    >

My previous suggestion (with ThreadContext) extends the

          Score > Staff > Voice

hierarchy with ThreadContext, so you get 

          Score > Staff > Voice > Thread

The note heads live at Thread level, and by explicitly selecting which
Thread context each note goes in, you can set the note head style.
Example:

        \context Voice <
                 \context Thread = TA c4
                 \context Thread = TB g4
                \context Thread = TA \property Thread.noteheadStyle = diamond
        >

The noteheadStyle is applied to the Thread called TA. Since the c4 is
only note in TA, only the c gets the diamond style.  I think this what
you suggest in your mail (with the name Note in stead of Thread).
But--as you can see-- identifying which property goes to which note is
complicated.

I think I will reinstall Thread soon (It won't make things more
difficult, it should be backwards compatible), because it also makes
sense for fingering instructions.

But what you really want, (I think), is a mechanism that says:

    \withstyle X someMusic
    typeset whatever results from someMusic with style X

for example (hypothetical syntax)

    < \withstyle Note = diamond c4
      g4
      e4
      b4 
    >

this would typeset every note in default style except the c.  I am
still thinking about this, because I think that implementing this
would give a large overhead: I am afraid the program might get a lot
slower.

> Does this help explain why I think we are asking for nothing new in
> the concept of property, but merely a clarification of the scope of
> properties as Lily uses them now?

In summary: what you want is already there but, it is not shipped by
default.  But I think the mechanism is not good enough.


-- 

Han-Wen Nienhuys, [EMAIL PROTECTED] ** GNU LilyPond - The Music Typesetter 
      http://www.cs.uu.nl/people/hanwen/lilypond/index.html 

Reply via email to