Pierre Perol-Schneider <pierre.schneider.pa...@gmail.com> writes: > Typo, sorry : so, again, how can I get access to the note head when > duration is shorter than a fourth note ? > > \version "2.19.46" > > \score { > \new Staff \relative c'' { c1 2 4 8 16 32 64 128 } > \layout { > \context { > \Staff > \omit Stem > \omit Flag > \override NoteHead.stencil = > #(lambda (grob) > (let ((duration (ly:grob-property grob 'duration-log))) > (case duration > ((0) (grob-interpret-markup grob (markup "0"))) > ((1) (grob-interpret-markup grob (markup "1"))) > ((2) (grob-interpret-markup grob (markup "2"))) > ((3) (grob-interpret-markup grob (markup "3"))) > ((4) (grob-interpret-markup grob (markup "4"))) > ((5) (grob-interpret-markup grob (markup "5"))) > ((6) (grob-interpret-markup grob (markup "6"))) > ((7) (grob-interpret-markup grob (markup "7"))) > (else (ly:note-head::print grob))))) > } > } > }
You don't want to "get access to the note head" since the note heads, indeed, are all the same for durations shorter than a fourth note. Instead, go at the actual _note_ instead, namely the stream event.
\version "2.19.46" \score { \new Staff \relative c'' { c1 2 4 8 16 32 64 128 } \layout { \context { \Staff \omit Stem \omit Flag \override NoteHead.stencil = #(lambda (grob) (let ((duration (ly:duration-log (ly:event-property (event-cause grob) 'duration)))) (case duration ((0) (grob-interpret-markup grob (markup "0"))) ((1) (grob-interpret-markup grob (markup "1"))) ((2) (grob-interpret-markup grob (markup "2"))) ((3) (grob-interpret-markup grob (markup "3"))) ((4) (grob-interpret-markup grob (markup "4"))) ((5) (grob-interpret-markup grob (markup "5"))) ((6) (grob-interpret-markup grob (markup "6"))) ((7) (grob-interpret-markup grob (markup "7"))) (else (ly:note-head::print grob))))) } } }
-- David Kastrup
_______________________________________________ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user