lilypond-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Add tab-tie-follow-engraver (issue2723043)


From: Carl Sorensen
Subject: Re: Add tab-tie-follow-engraver (issue2723043)
Date: Wed, 3 Nov 2010 21:03:38 -0600



On 11/3/10 5:52 PM, "address@hidden" <address@hidden> 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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]