1.3.2 Eigenschaften von Musikobjekten
TODO – make sure we delineate between music properties, context properties, and layout properties. These are potentially confusing.
Schauen wir uns ein Beispiel an:
someNote = c' \displayMusic \someNote ===> (make-music 'NoteEvent 'duration (ly:make-duration 2 0 1/1) 'pitch (ly:make-pitch 0 0 0))
Das NoteEvent-Objekt ist die Repräsentation von someNote.
Einfach. Wie fügt man denn ein c’ in einen Akkorde ein?
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))))
Jetzt ist das NoteEvent-Objekt das erste Objekt der
'elements-Eigenschaft von someNote.
Die display-scheme-music-Funktion ist die Funktion, die von
\displayMusic eingesetzt wird, um die Scheme-Repräsentation
eines musikalischen Ausdrucks anzuzeigen.
#(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))
Danach wird die Tonhöhe der Note von der 'pitch-Eigenschaft
des NoteEvent-Objektes gelesen:
#(display-scheme-music
(ly:music-property (first (ly:music-property someNote 'elements))
'pitch))
===>
(ly:make-pitch 0 0 0)
Die Tonhöhe einer Note kann geändert werden, indem man diese
'pitch-Eigenschaft umdefiniert:
#(set! (ly:music-property (first (ly:music-property someNote 'elements))
'pitch)
(ly:make-pitch 0 1 0)) ;; Die Tonhöhen auf d' verändern.
\displayLilyMusic \someNote
===>
d'