A.3.2 Propiedades musicales

Veamos un ejemplo:

someNote = c'
\displayMusic \someNote
===>
(make-music
  'NoteEvent
  'duration
  (ly:make-duration 2 0 1/1)
  'pitch
  (ly:make-pitch 0 0 0))

El objeto NoteEvent es la representación de someNote. Sencillo. ¿Y si ponemos el c’ dentro de un acorde?

someNote = <c'>
\displayMusic \someNote
===>
(make-music
  'EventChord
  'elements
  (list (make-music
          'NoteEvent
          'duration
          (ly:make-duration 2 0 1/1)
          'pitch
          (ly:make-pitch 0 0 0))))

Ahora el objeto NoteEvent es el primer objeto de la propiedad 'elements de someNote.

La función display-scheme-music es la función que se usa por parte de \displayMusic para imprimir la representación de Scheme de una expresión musical.

#(display-scheme-music (first (ly:music-property someNote 'elements)))
===>
(make-music
  'NoteEvent
  'duration
  (ly:make-duration 2 0 1/1)
  'pitch
  (ly:make-pitch 0 0 0))

Después se accede a la altura de la nota a través de la propiedad 'pitch del objeto NoteEvent:

#(display-scheme-music
   (ly:music-property (first (ly:music-property someNote 'elements))
                      'pitch))
===>
(ly:make-pitch 0 0 0)

La altura de la nota se puede cambiar estableciendo el valor de esta propiedad 'pitch.

#(set! (ly:music-property (first (ly:music-property someNote 'elements))
                          'pitch)
       (ly:make-pitch 0 1 0)) ;; establecer la altura a d'.
\displayLilyMusic \someNote
===>
d'4

Extender LilyPond v2.25.20 (rama de desarrollo).