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 'NoteEvent 'articulations (list (make-music 'AbsoluteDynamicEvent 'text "f")) 'duration (ly:make-duration 2 0 1/1) 'pitch (ly:make-pitch 0 0 0))))
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 un poco de magia combinada de LilyPond y Scheme, podemos realmente hacer que LilyPond dirija solamente esta salida a su propio archivo:
{ #(with-output-to-file "display.txt" (lambda () #{ \displayMusic { c'4\f } #})) }
Un poco de reformateo hace a la información anterior más fácil de leer:
(make-music 'SequentialMusic 'elements (list (make-music 'NoteEvent 'articulations (list (make-music 'AbsoluteDynamicEvent 'text "f")) 'duration (ly:make-duration 2 0 1/1) 'pitch (ly:make-pitch 0 0 0))))
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 un objeto NoteEvent
(que almacena las
propiedades de duración y altura) con información adjunta (en este
caso, un evento AbsoluteDynamicEvent
con una propiedad
"f"
de texto) almacenada en su propiedad articulations
.
\displayMusic
devuelve la música que imprime en la consola, y
por ello se interpretará al tiempo que se imprime en la consola. Para
evitar la interpretación, escriba \void
antes de
\displayMusic
.
Otros idiomas: English, deutsch, français.
Acerca de la selección automática del idioma.