1.3.1 Affichage d’expressions musicales
Lorsque l’on veut écrire une fonction musicale, il est intéressant
d’examiner comment une expression musicale est représentée en interne.
Vous disposez à cet effet de la fonction musicale \displayMusic.
{
\displayMusic { c'4\f }
}
affichera
(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))))
Par défaut, LilyPond affichera ces messages sur la console, parmi toutes
les autres informations. Vous pouvez, afin de les isoler et de garder
le résultat des commandes \display{TRUC}, rediriger la sortie
vers un fichier :
lilypond file.ly >display.txt
Un peu de Scheme combiné à notre code LilyPond, et les seules informations qui nous intéressent se retrouveront directement dans un fichier indépendant :
{
#(with-output-to-file "display.txt"
(lambda () #{ \displayMusic { c'4\f } #}))
}
L’information sera encore plus lisible après un peu de mise en forme :
(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))))
Une séquence musicale { … } se voit attribuer le nom de
SequentialMusic, et les expressions qu’elle contient sont
enregistrées en tant que liste dans sa propriété 'elements. Une
note est représentée par un objet NoteEvent – contenant les
propriétés de durée et hauteur – ainsi que l’information qui lui est
attachée – en l’occurrence un AbsoluteDynamicEvent ayant une
propriété text de valeur "f" – et stockée dans sa
propriété articulations.
La fonction \displayMusic renvoie la musique qu’elle
affiche ; celle-ci sera donc aussi interprétée. L’insertion d’une
commande \void avant le \displayMusic permet de
s’affranchir de la phase d’interprétation.
Autres langues : English, deutsch, español.
About automatic language selection.