[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: maximumFretStretch in TabStaff?
From: |
David Kastrup |
Subject: |
Re: maximumFretStretch in TabStaff? |
Date: |
Sat, 27 Jan 2018 00:39:39 +0100 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/26.0.50 (gnu/linux) |
Thomas Morley <address@hidden> 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