Thomas Morley <[email protected]> writes:

> Hi,
>
> while thinking about a nice lsr-snippet demonstrating usage of
> `maximumFretStretch', I first thought to use the most extrem case for
> the classical guitar I know of.
> (Code below.)
> But it more or less worked out of the box. It took a while before I
> understood why:
> `maximumFretStretch' is read in Tab_Voice_ not TabStaff. Does not make
> much sense to me.
>
> Any hint how to make it work in TabStaff?

determine-frets is called in Fretboard_engraver (in FretBoards context)
and in Tab_note_heads_engraver (in TabVoice context).

The problem is indeed that the determine-frets action should rather be
done at TabStaff level: if you have notes in different TabVoice contexts
(quite typical for somewhat polyphonic music), LilyPond has no qualms
assigning the same string for notes in a different TabVoice .  Since it
would be quite unusual for two instruments to be notated in the same
tab, that's just stupid.

While I haven't put any work into it, I could imagine it to be
non-trivial to do this right, namely do the fret determination at staff
level (and likely also taking still-sounding notes into account) while
creating the output at voice level so that slurs and similar still work.

-- 
David Kastrup

_______________________________________________
lilypond-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/lilypond-devel

Reply via email to