lilypond-user
[Top][All Lists]
Advanced

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

Re: Varying shape note heads varying by semitone


From: Paul Morris
Subject: Re: Varying shape note heads varying by semitone
Date: Wed, 09 Mar 2011 18:13:39 -0500
User-agent: Postbox 2.1.4b1 (Macintosh/20110222)

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.

reply via email to

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