On 11/3/10 5:52 PM, "n.putt...@gmail.com" <n.putt...@gmail.com> wrote:

> On 2010/11/03 23:14:47, Carl wrote:
> 
>> I think I'd probably go a bit farther.
> 
>> What if we acknowledged ties, slurs, and glissandos (glissandi?) in
> the
>> Tab_note_head_engraver and set the desired properties there.
> 
> Which properties?

Well, it would seem that in order to know how to display a tab note head
properly we need to know the following:

1.  Is it on the right hand end of a tie  ('tie-follow property)
2.  Is it on the left hand end of a slur, glissando, or bend ('begin-spanner
property?)

> 
> If it involves multiple nested loops (like the original patch), then I'd
> say no.

I think we could avoid multiple nested loops, but there would be loops:

First of all, instead of having slurs_, and glissandos_, we'd have
spanners_, and all of the spanner grobs (slur, glissando, bend) would be
pushed to the same vector

In pseudocode

    For each tab-note-head
        for each tie
            if right-bound of tie is tab-note-head
                set 'tie-follow
                break
            end if
        end for
        for each spanner
            if left-bound of spanner is tab-note-head
                set 'begin-spanner
                break
            end if
        end for
    end for
            
> 
> How would you deal with TabNoteHeads after a line break?  IIRC, there is
> some code in tablature.scm which treats them differently, but this is
> something you can't do in an engraver.

Right -- that would be part of the TabNoteHead callback -- it would look at
the current status of the notehead to see if it's after a break, and make
the appropriate decisions based on the 'tie-follow and 'begin-spanner
properties.


Thanks,

Carl


_______________________________________________
lilypond-devel mailing list
lilypond-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to