On Tue, Nov 23, 2010 at 10:16 AM, Carl Sorensen <c_soren...@byu.edu> wrote:
> On 11/23/10 12:37 AM, "Steve Yegge" <steve.ye...@gmail.com> wrote: > > > Hi all, > > > > The TabStaff is amazingly cool. I'm not a big tab user myself, > > but for people who want tabs, LilyPond makes it easy to add them. > > > > I've been busily adding tabs for a few months and have some feature > > requests to put into the queue if possible. > > > > 1) Setting fixed strings to use for ascending/descending chords. > > Currently it's nontrivial to specify tab positions for something like: > > > > <c c'> <d d'> <e e'> <f f'> > > <g g'> <a a'> <b b'> <c c'> > > > > I've found it's most convenient to append the actual strings after > > every chord, hence: > > > > <c c'>\5\3 <d d'>\5\3 <e e'>\5\3 <f f'>\5\3 > > <g g'>\5\3 <a a'>\5\3 <b b'>\5\3 <c c'>\5\3 > > Why not > <c\5 c'\3> > > Why do you want to put the string numbers *after* the chords, even when > you're putting finger numbers inside the chords? > Putting them after the chords is how you prevent printing string numbers. It's the documented technique for giving override instructions to the tab calculator. You can even put some inside the chord, thus printing them, and move others outside in the same chord. It is a nice feature. Tabulature would in fact be nigh-unusable without it, because the tab calculator is often "wrong". For example, consider: \include "english.ly" music = \relative c { <a' e' a cs a'>1 } \score { << \new Staff { \music } \new TabStaff { \transpose c c, { \music } } >> } In this example, the low A is placed on the 5th fret, 6th string. The minimum fret is the default (zero), but the tab calculator does not choose the open-A string, even though it would be far more convenient to play it that way. If you annotate it with fingerings: <a'-0 e'-1 a-1 cs-1 a'-4>1 it becomes doubly clear to the guitarist that the open-A string is intended here, both because of the -0 fingering notation and because it is the only physically reasonable configuration. There are actually _two_ signals here that the tab calculator should be picking up but is not. They are separate issues. One is that even though the TabStaff.minimumFret is zero, the calculator is not actually using the minimum fret. The other is my #2 feature request, which is that it should respect open string "fingering" requests, because they are unambiguous. The workaround is to use string numbers external to the chord. Putting them next to their notes merely creates redundant and possibly irritating text for the guitarist to parse. It's already clear that it's an open A, so having a circled string number at that note is pointless. Instead you do this: <a' e' a cs a'>1\5 And then you recompile and discover that even though extra strings are processed from left to right, so the \5 logically should go with the low a' note, the tab calculator has given up in despair and is now showing only two strings, both incorrect. So you wind up with this: <a' e' a cs a'>1\5\4\3\2\1 and everything is magically solved. I feel obliged to point out at this juncture that one of the primary reasons for LilyPond's awesomeness -- perhaps the single biggest reason -- is that it provides you with enough flexibility to work around the default behavior if you're willing to dig deep enough. > > > > 2) Have the automatic tab calculator understand the -0 fingering. > > Currently if you do something like this: > > > > \relative c' { > > \set TabStaff.minimumFret = #2 > > <d'-0 a'-2 d-3 f-1> > > } > > I would not be in favor of this -- all other fingerings except 0 indicate a > finger number, but zero indicates a fret number. Um, no. Think of it from a set-theoretic perspective. You have 4 fingers and can choose up to four of them. There are sixteen possibilities, not fifteen, because your choice can include the empty set. > I think it's much better > to have you write: > > <d'\4 a'-2 d-3 f-1> > > This will get you just what you want. > I believe you are mistaken. I do not necessarily want a printed string number. I would have to set the stencil to ##f with tweaks in order for it to work this way. It would be the very pinnacle of inconvenience, and a step backward from the current functionality. > > > > > It will choose strings 5, 4, 3, 2. Obviously in this case you could > > just set the minimum fret to #0, but this may be an exception to a > > passage that is otherwise all in position 2. > > > > Moreover the calculator gets confused by open chords in higher > > positions, e.g. > > > > \relative c { > > <e'-2\5 ges-1 d'-3 b-0 b'-4> > > } > > > > It picks correct strings for all the notes except the open b, which > > is ignored (and for which a warning is issued). You can fix it > > by specifying the remaining strings: > > > > <e-2\5 gs-1 d'-3 b-0 b'-4>16\4\3\2\1 > > I think it will work correctly if you just specify the string for the note > you want open: > > <e-2\5 gs-1 d'-3 b\2 b'-4>16 > > HTH, > > I'm afraid there is more going on here than meets the eye, so your proposal doesn't address the problem. Thanks for considering it, though. It helped me think about the problem more clearly. -steve > Carl > >
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user