A.3.1 Presentación de las expresiones musicales
Si se está escribiendo una función musical, puede ser muy instructivo
examinar cómo se almacena internamente una expresión musical. Esto se
puede hacer con la función musical \displayMusic
{ \displayMusic { c'4\f } }
imprime lo siguiente:
(make-music 'SequentialMusic 'elements (list (make-music 'EventChord 'elements (list (make-music 'NoteEvent 'duration (ly:make-duration 2 0 1 1) 'pitch (ly:make-pitch 0 0 0)) (make-music 'AbsoluteDynamicEvent 'text "f")))))
De forma predeterminada, LilyPond imprime estos mensajes sobre la
consola junto al resto de los mensajes. Para separar estos mensajes y
guardar el resultado de \display{LOQUESEA}
, redirija la
salida a un archivo.
lilypond archivo.ly >salida.txt
Con la aplicación de un poco de formateo, la información anterior es fácil de leer,
(make-music 'SequentialMusic 'elements (list (make-music 'EventChord 'elements (list (make-music 'NoteEvent 'duration (ly:make-duration 2 0 1 1) 'pitch (ly:make-pitch 0 0 0)) (make-music 'AbsoluteDynamicEvent 'text "f")))))
Una secuencia musical { ... }
tiene el nombre
SequentialMusic
, y sus expresiones internas se almacenan coma
una lista dentro de su propiedad 'elements
. Una nota se
representa como una expresión EventChord
que contiene un objeto
NoteEvent
(que almacena las propiedades de duración y altura) y
cualquier información adicional (en este caso, un evento
AbsoluteDynamicEvent
con una propiedad "f"
de texto.