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.