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