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: 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



reply via email to

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