Carl Sorensen-3 wrote >>>It seems that we'd just need to add the properties to the >>> context properties of the TabStaff. >> >>This would be likely one of the TODOs. > > We could add a context property to the TabStaff and FretBoards contexts > that is note-to-fret-procedure. It would then use whichever procedure was > desired to convert notes to tabs. > > In that way, we wouldn't replace the current determine-frets function. > We'd just have the alternative to call another function. > > That seems like the best long-term way of implementing it, rather than > using a music function.
Since the algorithm can be tweaked by changing parameters (such as how strongly you want it to follow your suggested string numbers), a new context might be the way to go. In any case, I've been working on chTab on and off, and I've gotten to a point where it works better. (All of the examples on Lilypond's guitar tablature page (2.4.2) work.) I'm at a point where the next step is to use glissandoMaps, and Lilypond seems to do these things strangely. (More about this below.) So call it version 0.2, which is attached. There's a few things to notice: (1) The syntax has changed. \chTab needs to be placed outside of a music expression, and you no longer need to include the tuning. (chTab now looks for it and uses the standard guitar tuning if none exists, just like TabStaff.) (2) Slides and ties now stay on the same string (unless you use a glissandoMap). Compare \new TabStaff { a\accent~a4 c~c2 d \glissando f ~ \glissando <c d> } with \chTab { \new TabStaff { a\accent~a4 c~c2 d \glissando f ~ \glissando <c d> } } (3) String preferences are considered, but if chTab can't find a good tab with them, it will change them. (4) It's quiet when Lilypond sometimes complains. For instance; try \new TabStaff { d\2 \glissando f } and the chTab version, or use a different tuning with notes that fit in it but not in the standard tuning. It also finds a playable voicing for the chord chTab.ly <http://lilypond.1069038.n5.nabble.com/file/n199261/chTab.ly> <c d e> on guitar. (5) Even if there's no good tab, it returns one. (Unless you've done something intentionally wrong, I hope.) (6) Handles \deadNote, BendAfterEvents, skips, tuplets, percent repeats the way it should. (7) You might get an error message: "X cannot be played on this instrument; other pitches might also be unplayable" or "fatal error: one of your 'chords' cannot be played in this tuning". (8) right now, it does not work with \delayTies, harmonics, or hidden notes. (9) Only works for one staff; currently barfs if there's more than one. (But you're trying to do something "wrong" here.) Clusters may or may not be added later. (10) TODO: Music expressions that chTab doesn't work with: harmonics, Ottava, PartialSet, QuoteMusic, TransposedMusic, TremoloRepeatedMusic, UnfoldedRepeatedMusic and UnrelativableMusic. -- View this message in context: http://lilypond.1069038.n5.nabble.com/Is-Anyone-Working-on-a-Better-Tablature-Algorithm-tp196422p199261.html Sent from the Dev mailing list archive at Nabble.com. _______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel