[frogs] Patch 281a060ba65ce780064760e22e2d584b2baef67d Numeric Note Head Snippet

[ Thread Index | Date Index | More lilynet.net/frogs Archives ]


This is take two at the numeric note head patch. I've also attached the 
ly file in case there's a problem with the patch.

Comments welcome.

- David.



2009: A year in review - http://www.tiscali.co.uk/2009
\version "2.13.11"

\header {
  lsrtags = "pitches"
  texidoc = "
Easy notation note heads use the @code{note-names} property
of the @code{NoteHead} object to determine what appears inside
the note head.  By overriding this property, it is possible
to print numbers representing the scale-degree.

A simple engraver can be created to do this for every note head
object it sees.
"
  doctitle = "Numbers as easy note heads"
}

#(define Ez_numbers_engraver (list
  (cons 'acknowledgers
   (list
     (cons 'note-head-interface
       (lambda (engraver grob source-engraver)
         (let* (
           (context (ly:translator-context engraver))
           (tonic-pitch (ly:context-property context 'tonic))
           (tonic-name (ly:pitch-notename tonic-pitch))
           (grob-pitch (ly:event-property (event-cause grob) 'pitch))
           (grob-name (ly:pitch-notename grob-pitch))
           (delta (modulo (- grob-name tonic-name) 7))
           (note-names (make-vector 7 (number->string (+ 1 delta)))))
        (ly:grob-set-property! grob 'note-names note-names))))))))

\layout {
  \context {
    \Voice
    \consists \Ez_numbers_engraver
  }
}

\relative c' {
  \easyHeadsOn
  c4 d e f
  g4 a b c \break

  \key a \major
  a,4 b cis d
  e4 fis gis a \break

  \key d \dorian
  d,4 e f g
  a4 b c d
}






Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/