[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: |
Mon, 5 Dec 2016 01:12:45 -0700 (MST) |
Okay, here we go ...
Thomas Morley-2 wrote
> from your initial posts I expected you'd rewrite the current
> noteToFretFunction, i.e. 'determine-frets'. Instead your 'chTab' is a
> music-function, still relying on 'determine-frets'.
For the moment, this is easier to do. I didn't want to wreck my copy of
Lilypond, and I didn't particularly like the idea of rewriting
determine-frets, and not changing what works already.
And, as I mentioned, it's only a beta.
> Up to now I took only a very quick glance over the code. That said, we
> have context-properties for some of those settings. I'd recommend to use
> them.
This is my first big Lilypond project. I'm also learning Scheme for the
first time.
I agree about the context settings. There are too many ways to tweak this,
and the user might want tab that does certain things.
> Others are not documented sufficiently, like 'track-tabs'. (I don't
> understand what "best tabs" are.)
Those are Scheme variable names. Seriously, though, "track-tabs" is the
number of tablatures to create; if it's set to 4, that means chTab actually
finds the four best ways to tab the music.
> In general I'd prefer more comments why you do what inline. Otherwise
> you'll likely find not many people diving deeper into it.
This is based on the algorithm in Chuanjun He's doctoral thesis: "An Expert
System for Guitar Sheet Music to Guitar Tablature". Most of the whys are
following what he did there.
> It fails for ...
Okay, I'll do a walk-through in about a week (which is why I posted it; it
works for my examples). Final Exams are coming up here at ASU.
> Even if I set 'use-open-strings' true.
Since chTab doesn't refer to that property, I'm not surprised.
> With this example:
>
> mus = {
> f4\1 f\2 f\3 f'
> }
>
> My settings for the strings are simply ignored.
I went back and forth about this, and I decided that chTab would just ignore
the strings that are already set. There's no guarantee that they will
produce usable tablature, like in:
{ f16\1 f'\1 f\1 }
In a future edition, chTab might generate about a dozen tablatures and look
to see if one matches the strings already selected, and then ignores them if
there isn't one.
> Too many errors
This occurred to me while coding. For instance, it does no error-checking.
There might not be any suitable tablatures for a particular piece, or notes
that are too high or too low to play, where an error message should be
returned (along with a graceful (?) exit). Once again, it's a beta. And will
probably remain a beta for a while.
One last question. You aren't by chance the Thomas Morley who used to teach
at Georgia Tech, are you?
--
View this message in context:
http://lilypond.1069038.n5.nabble.com/Is-Anyone-Working-on-a-Better-Tablature-Algorithm-tp196422p197611.html
Sent from the Dev mailing list archive at Nabble.com.