lilypond-user
[Top][All Lists]
Advanced

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

Re: tablature.ly


From: Neil Puttock
Subject: Re: tablature.ly
Date: Thu, 30 Apr 2009 19:51:16 +0100

2009/4/30 Carl D. Sorensen <address@hidden>:
>
> On 4/30/09 1:36 AM, "Marc Hohl" <address@hidden> wrote:
>
>> I tried to cons these values, and I succeded (or at least it seemed to
>> me) for the
>> supported-clefs list, but not with the c0-pitch-alist
>> (see attached files and lilypond's error messages).
>> Is this list only locally defined, or am I missing something?
>
> You are correct.  c0-pitch-alist is not public.  So it's currently not
> possible to cons a value in with the tablature.ly file.

Oops. :)

Sorry Marc, I didn't notice that.  I ran a quick test by amending
parser-clef.scm, so I hadn't actually tried consing values.

> My recommendation is that you pursue option c.  The disadvantage of pursuing
> option c is that it won't be available to others until a new release of
> LilyPond is issued.

I agree, that seems the best option for the moment.

At a later date, we might consider moving the clef callbacks in
clef.cc to scheme completely, so you'd be able to incorporate the
conditional code for modern tabs directly into the clef::print
callback.

> Define a new Scheme function to be used as the Clef 'stencil property
>
> (define (newClefPrint grob) ....)

I suggest something like `clef::print-modern-tab-if-set' to follow
LilyPond coding style.

> It should check for the 'glyph property of the grob, and if it's
> markup.moderntab, it will call the new tab markup function.  Otherwise, it
> will call (ly:clef::print grob).

Two further points:

Just to be on the safe side, when retrieving 'staff-space, a default
value should be given, since it's not normally set:

(ly:grob-property grob 'staff-space 1)

As I mentioned previously, unless you want to code a smaller clef for
changes, you'll want to set 'full-size-change = ##t.  This will shut
up any complaints about missing a glyph for "markup.moderntab_change".
 You can set it within the new stencil callback using
ly:grob-set-property!:

(ly:grob-set-property! grob 'full-size-change #t)

Regards,
Neil




reply via email to

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