lilypond-devel
[Top][All Lists]
Advanced

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

Re: Is Anyone Working on a Better Tablature Algorithm?


From: christopher-heckman
Subject: Re: Is Anyone Working on a Better Tablature Algorithm?
Date: Sun, 15 Jan 2017 20:35:26 -0700 (MST)

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.



reply via email to

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