lilypond-user
[Top][All Lists]
Advanced

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

Re: Colored note heads with black outline


From: SoundsFromSound
Subject: Re: Colored note heads with black outline
Date: Tue, 8 Oct 2013 20:48:43 -0700 (PDT)

This is perfect Paul, it's exactly what I need for a project that just landed
on my desk tonight! Man, you're a SCHEME machine! I'll get there
someday...right? :)

Thank you so much for sharing that code with us!

Ben


Paul Morris wrote
> 
> Onno Zweers wrote
>> One question though. I intend to apply this effect to many different 
>> lilypond scores. Currently I include a stylesheet.ly from all my 
>> Lilypond files to produce the colors. It would be great if I could just 
>> add some code to my stylesheet to get this outline effect, instead of 
>> overriding individual note heads. Would that be possible?
> Hi Onno,
> The code below should do what you want.  I combined Pierre's outlined note
> heads with some code I use to automatically override note head stencils
> based on their pitch.  It creates outlines around all note heads
> regardless of their color, and it requires LilyPond 2.17.
> 
> HTH,
> -Paul
> 
> 
> %%% BEGIN SNIPPET %%%
> \version "2.17"
> 
> coloredNoteHeads =
> #(lambda (grob)
>    (let* ((fsz  (ly:grob-property grob 'font-size 0.0))
>           (mult (magstep fsz))
>           (stl '())
>           (dur-log (ly:grob-property grob 'duration-log))
>           (pitch (ly:event-property (event-cause grob) 'pitch))
>           (note-name (ly:pitch-notename pitch))
>           (clr (case note-name
>                  ((0) red) ;; C
>                  ((1) blue) ;; D
>                  ((2) yellow) ;; E
>                  ((3) red) ;; F
>                  ((4) blue) ;; G
>                  ((5) yellow) ;; A 
>                  ((6) green)))) ;; B
> 
>      ;; just for dev work
>      ;; (display dur-log) (newline)
>      ;; (display note-name) (newline)
> 
>      (set! stl
>            (cond
>             ;; quarter notes and smaller
>             ((> dur-log 1)
>              (grob-interpret-markup grob
>                #{ \markup {
>                  \combine
>                  \musicglyph #"noteheads.s2"
>                  \translate-scaled #'(0.07 . 0.01)
>                  \scale #'(1.01 . 0.98)
>                  \rotate #'2
>                  \magnify # 0.9 \with-color #clr
>                  \musicglyph #"noteheads.s2"
>                } #} ))
>             ;; half notes
>             ((= dur-log 1)
>              (grob-interpret-markup grob
>                #{ \markup {
>                  \combine
>                  \translate-scaled #'(0.11 . -0.01)
>                  \scale #'(1 . 0.82)
>                  \rotate #'7
>                  \magnify # 0.85
>                  \musicglyph #"noteheads.s1"
>                  \combine
>                  \musicglyph #"noteheads.s1"
>                  \translate-scaled #'(0.07 . 0)
>                  \scale #'(1.02 . 0.98)
>                  \rotate #'2
>                  \magnify # 0.9 \with-color #clr
>                  \musicglyph #"noteheads.s1"
>                } #} ))
>             ;; whole notes
>             ((< dur-log 1)
>              (grob-interpret-markup grob
>                #{ \markup {
>                  \combine
>                  \translate-scaled #'(0.2 . 0)
>                  \magnify # 0.8
>                  \musicglyph #"noteheads.s0"
>                  \combine
>                  \musicglyph #"noteheads.s0"
>                  \translate-scaled #'(0.08 . 0)
>                  \scale #'(1.03 . 1)
>                  \magnify # 0.9 \with-color #clr
>                  \musicglyph #"noteheads.s0"
>                } #}))))
> 
>      (set! (ly:grob-property grob 'stencil)
>            (ly:stencil-scale stl mult mult))))
> 
> music =
> \relative f' {
>   c4 d e f g a b c d e f g a b c d
>   c,,2 d e f g a b c d e f g a b c d
>   c,,1 d e f g a b c d e f g a b c
> }
> 
> \new Staff \with
> { \override NoteHead.before-line-breaking = \coloredNoteHeads }
> { \music }





-----
composer | sound designer 
 LilyPond Tutorials (for beginners) --> http://bit.ly/bcl-lilypond
--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Colored-note-heads-with-black-outline-tp151821p152014.html
Sent from the User mailing list archive at Nabble.com.



reply via email to

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