1.3.3 Propriétés musicales
Nous abordons ici les propriétés music, et non pas les propriétés context ou layout.
Partons de cet exemple simple :
someNote = c' \displayMusic \someNote ===> (make-music 'NoteEvent 'duration (ly:make-duration 2 0 1/1) 'pitch (ly:make-pitch 0 0 0))
L’objet NoteEvent
est la représentation brute de someNote
.
Voyons ce qui se passe lorsque nous plaçons ce c’ dans une
construction d’accord :
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))))
L’objet NoteEvent
est maintenant le premier objet de la propriété
'elements
de someNote
.
\displayMusic
utilise la fonction display-Scheme-music
pour afficher la représentation en Scheme d’une expression musicale :
#(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))
La hauteur de la note est accessible au travers de la propriété
'pitch
de l’objet NoteEvent
:
#(display-Scheme-music (ly:music-property (first (ly:music-property someNote 'elements)) 'pitch)) ===> (ly:make-pitch 0 0 0)
La hauteur de la note se modifie en définissant sa propriété
'pitch
:
#(set! (ly:music-property (first (ly:music-property someNote 'elements)) 'pitch) (ly:make-pitch 0 1 0)) ;; set the pitch to d'. \displayLilyMusic \someNote ===> d'4