lilypond-user
[Top][All Lists]
Advanced

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

RE: lilypond-user Digest, Vol 150, Issue 170


From: Peter Gentry
Subject: RE: lilypond-user Digest, Vol 150, Issue 170
Date: Thu, 28 May 2015 13:54:38 +0100

 

>-----Original Message-----
>Date: Thu, 28 May 2015 07:17:42 -0500
>From: David Nalesnik <address@hidden>
>To: Peter Gentry <address@hidden>
>Cc: lilypond-user <address@hidden>
>Subject: Re: Notehead color on programmed pitch change
>Message-ID:
>       
><address@hidden>
>Content-Type: text/plain; charset="utf-8"
>
>On Thu, May 28, 2015 at 6:43 AM, Peter Gentry 
><address@hidden>
>wrote:
>
>>  Thankyou  David but how is color  associated with NoteHead?
>>
>> I hope these ramblings of a gnarled old scheme/Lily tyro can be of 
>> general interest....
>>
>> I'm guessing that 'tweaks is some sort of switch to open up 
>properties 
>> of the current music object.
>>
>
>You've seen
>http://lilypond.org/doc/v2.18/Documentation/notation/the-tweak-command?
>Any usage of \tweak in the ly file would appear in the 'tweaks 
>list in the music representation.  Here, instead of using 
>\tweak in the file, we're achieving the same result by 
>modifying the music representation directly.
>
>To see the music representation (basically what LilyPond does 
>to your ly code to make it more digestible) wrap various music 
>expressions in \displayMusic.  For example:
>
>\displayMusic
>{
>  \tweak NoteHead.color #red
>  c''4
>}
>
>Note how the tweak is represented.
>
>
>
>> In this case "pitch" is a property of  'NoteEvent and I'm guessing 
>> that color here is just NoteHead colour not NoteStem because 
>NoteStem 
>> is not within the NoteEvent including 'pitch.
>>
>> NoteStem color may be available in a tweak of another music 
>object or 
>> possibly supplied by another bit of code (engraver??).
>> I do not know how code a "tweak" for stem color (apart from an 
>> override in the Lily .ly file) maybe you can't (anyway I 
>don't want to).
>>
>
>Well, you'd tweak Stem.  And once again, \displayMusic will 
>show you what is done with your ly code:
>
> \displayMusic
>{
>  \tweak Stem.color #blue
>  c''4
>}
>
>
>
>> Also AFSIU
>>
>
>don't know this one :)
>
>
>> "ly:music-property" extracts various elements of the current music 
>> item (possibly contained in  a deeper Lily code), and allows user 
>> scheme to extract data from the current music object.
>>
>> ly:music-set-property! does the reverse?
>>
>
>Basically.
>
>> *This part of my script kindly supplied by Thomas Morley*
>>
>> (if (ly:pitch? p)
>> (let ((new-pitch (naturalize-instrument-range p instrument))) 
>> (ly:music-set-property! music 'pitch new-pitch) (if (and 
>(not (equal? 
>> p new-pitch)) (color? my-color)) (ly:music-set-property! 
>music 'tweaks 
>> (acons 'color my-color (ly:music-property music 
>'tweaks)))))) In line 
>> 3 a pitch is written to the music event it may be the old pitch or a 
>> new pitch.
>> In line 4 further action is taken if the pitch has been 
>changed, first 
>> the variable my-color (previously defined) is type checked In line 5 
>> 'tweaks is inserted into the current music object.
>> lines 6 - 8 are a bit obscure somehow the current color is 
>replaced by 
>> my-color but how?
>>
>> Cannot find a definition for acons but it must be a variant of cons
>> ("consists") it occurs 8 times in snippets and once in 
>notation and is 
>> clearly the way to "tweak" associating the Lily 'color with the user 
>> supplied color my-color.
>>
>
>You have to look to sources specifically devoted to Scheme.
>http://www.gnu.org/software/guile/docs/docs-1.8/guile-ref/Addin
>g-or-Setting-Alist-Entries.html#index-acons-1603
>
>Rather confusingly the format of color has many guises 
>(x11-color 'red), (1
>> 0 0), simply 'red (no pun intended) and notehead colour can also be 
>> approached via a grob. The notehead grob must be somehow implied in 
>> the (make-music .....
>>
>
>The NoteHead grob will ultimately be made as a result of 
>processing the NoteEvent.  (As will a Stem, any Dots, an 
>Accidental, etc.)
>
>Various different approaches to Notehead color are evident in 
>the snippet
>> repositry agin not much detailed explanation is to be found.
>>
>
>http://www.lilypond.org/doc/v2.18/Documentation/learning/visibi
>lity-and-color-of-objects#the-color-property
>
>
>> upline =
>> #(let ((m (make-articulation "stopped"))) (set! (ly:music-property m 
>> 'tweaks) (acons 'font-size 3 (acons 'stencil (lambda (grob) 
>> (grob-interpret-markup grob (make-draw-line-markup '(0 . 1)))) 
>> (ly:music-property m 'tweaks))))
>> m)
>> \relative c' {
>> a'4^\upline a( c d')_\upline
>> }
>>
>>
>> which results in
>>
>> (make-music
>> 'RelativeOctaveMusic
>> 'element
>> (make-music
>> 'SequentialMusic
>> 'elements
>> (list (make-music
>> 'NoteEvent
>> 'articulations
>> (list (make-music
>> 'ArticulationEvent
>> 'direction
>> 1
>> 'tweaks
>> (list (cons (quote font-size) 3)
>> (cons (quote stencil) #<procedure #f (grob)>)) 'articulation-type
>> "stopped"))
>> 'duration
>> (ly:make-duration 2)
>> 'pitch
>> (ly:make-pitch 0 5))
>> (make-music
>> 'NoteEvent
>> 'articulations
>> (list (make-music
>> 'SlurEvent
>> 'span-direction
>> -1))
>> 'duration
>> (ly:make-duration 2)
>> 'pitch
>> (ly:make-pitch 0 5))
>> (make-music
>> 'NoteEvent
>> 'pitch
>> (ly:make-pitch 1 0)
>> 'duration
>> (ly:make-duration 2))
>> (make-music
>> 'NoteEvent
>> 'articulations
>> (list (make-music
>> 'SlurEvent
>> 'span-direction
>> 1)
>> (make-music
>> 'ArticulationEvent
>> 'direction
>> -1
>> 'tweaks
>> (list (cons (quote font-size) 3)
>> (cons (quote stencil) #<procedure #f (grob)>)) 'articulation-type
>> "stopped"))
>> 'duration
>> (ly:make-duration 2)
>> 'pitch
>> (ly:make-pitch 2 1)))))
>>
>
>Please format this--it's really hard to digest.  With gmail, 
>"Paste as plain text" rather than "Paste" does the trick for 
>me.  Maybe there's a similar option with Outlook?
>
>
>>
>> AFAICS tweaks are not documented properly anywhere - some of the 
>> possible tweaks are presented without detailed explanation in the 
>> notation and snippet manuals - is there another source of 
>information?
>>
>
>Please see the link above.
>
>Hope this helps--
>
>David

Sorry about the twin sins of top posting and formating.  It looked OK before 
sending...

AFSIU  = Asfar as I understand

Now to set this as plain text.  - Outlook is set to send plain text  (but it 
seems to ignore this and format it sometimes)





reply via email to

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