Hi all,
I have a worked out a way to customize note head styles (shapes) based
on pitch, (so I'm revisiting this thread from 2007). Here's a new
snippet that does the trick:
http://lsr.dsi.unimi.it/LSR/Item?id=754
I basically adapted the code from this snippet on "coloring notes
depending on their pitch."
http://lsr.dsi.unimi.it/LSR/Item?id=572
This provides more control than the "shapeNoteStyles" property, and
provides support for alternative, chromatic-staff notation systems like
TwinNote, Twinline, and others (see: http://twinnote.org
http://musicnotation.org/musicnotations/2linesmajorthirdcompact.html ).
I believe this is at least closer to the approach that Han-Wen was
suggesting to Kevin Dalley?
(see below) Any thoughts or advice would be welcome.
(This is part of my efforts to follow up on Kevin's work on
chromatic-staff notation systems from 2007. I was really glad to learn
from Neil Puttock that he and Han-Wen had committed several of Kevin's
patches to LilyPond. I'm documenting this stuff over at the Music
Notation Project: http://musicnotation.org/wiki/LilyPond )
Cheers,
Paul
2007/5/12, Han-Wen Nienhuys writes (to Kevin):
You should write a note-head::calc-style function in Scheme, which
returns a symbol. This function should look at the pitch of the of the
causing event
to determine the shape to be returned. Look at
accidental-interface::calc-alteration
to see how to get to the causing event. You probably can bypass the
entire solfa note head mechanism.
good luck
Han-Wen
2007/5/9, Kevin Dalley <address@hidden>:
I have to admit that I'm stuck here.
I see some documentation for grobs here:
http://lilypond.org/doc/v2.11/Documentation/user/lilypond-internals/grob_002dinterface#grob_002dinterface
but I don't know where to start. Do you have a suggested URL?
"Han-Wen Nienhuys"<address@hidden> writes:
> It would be the coolest if (all) these extensions could happen in
> grob-property space.
> This could be done by automatically overriding and reverting grob
> properties when middleCPosition or tonic context properties change.
>
> 2007/4/21, Kevin Dalley<address@hidden>:
>> As another step toward in my path toward varying notation in LilyPond,
>> I am varying note shapes by semitone. Usually, there are fewer than
>> 12 note heads, but the semitone of the note determine the shape.
>>
>> My current implementation uses a function shapeLayoutFunction which
>> returns an integer, which is an index into the vector
>> shapeNoteStyles. This seems to work. The function description is:
>>
>> Function returning an integer which indexes into
>> shapeNoteStyles vector. It takes an argument of
>> pitch and tonic.
>>
>> Altnernatively, I could define a function which return a note head
>> shape. Does anyone see a good reason to prefer one to the other.
>>
>>
>> The first option has an advantage of using a small function like this:
>>
>> #(define (shapeSemitone pitch tonic)
>> (modulo (ly:pitch-semitones pitch) 12))
>>
>> plus an already standard vector.
>>
>> The second option has an advantage of everything being included in one
>> variable, but the disadvantage of requiring slightly more complicated
>> functions.
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
http://lists.gnu.org/mailman/listinfo/lilypond-user