[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Is Anyone Working on a Better Tablature Algorithm?
From: |
Thomas Morley |
Subject: |
Re: Is Anyone Working on a Better Tablature Algorithm? |
Date: |
Sun, 4 Dec 2016 14:40:04 +0100 |
Hi Christopher,
2016-12-03 21:56 GMT+01:00 christopher-heckman <address@hidden>:
> I've been coding this up, on and off for the past three weeks, and I have a
> workable program. This should probably be called chTab 0.1. (ch either
> stands for Chuanjun He (who developed the algorithm) or Christopher Heckman
> (who implemented it in Scheme/Lilypond) ... Take your pick.)
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'.
> It does not recognize ties or glissandos, and does not attempt to
> incorporate harmonics into the tablature.
>
> This algorithm can be tuned quite extensively; max-fret, hand-width,
> use-open-strings, use-harmonics, and track-tabs can be set to various
> values.
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.
Others are not documented sufficiently, like 'track-tabs'. (I don't
understand what "best tabs" are.)
In general I'd prefer more comments why you do what inline. Otherwise
you'll likely find not many people diving deeper into it.
> Other tweaks are possible, and that's where I'd like to have some feedback.
> If you play guitar, enter something and test the tablature for playability.
> If you feel the playability is bad for some reason, let me know.
>
> Of course, if there are any bugs, let me know about that as well.
It fails for
\version "2.18.2"
\include "chTab.ly"
openStrings = {
e,4 a, d g b e'
}
<<
\new Staff { \clef "G_8" \openStrings }
\new TabStaff
\with {
instrumentName = "default"
}
\openStrings
% \new TabStaff
% \with { stringTunings = #guitar-tuning }
% { \chTab { \openStrings } #guitar-tuning }
>>
Even if I set 'use-open-strings' true.
With this example:
mus = {
f4\1 f\2 f\3 f'
f f f f'
}
<<
\new Staff { \clef bass \mus }
%% Lilypond's default tablature
\new TabStaff
\with {
stringTunings = #bass-tuning
instrumentName = "default"
}
\mus
%% chTab
\new TabStaff
\with {
stringTunings = #bass-tuning
instrumentName = "chTab"
}
{ \chTab \mus #bass-tuning }
>>
My settings for the strings are simply ignored.
Ok, they are a little strange, but the user-settings should be respected, imho.
Cheers,
Harm