[ << Schnittstellen für Programmierer ] | [Top][Contents][Index] | [ LilyPond Scheme-Schnittstellen >> ] |
[ < Kontextauswertung ] | [ Up : Kontexte für Programmierer ] | [ Callback-Funktionen > ] |
2.6.2 Eine Funktion auf alle Layout-Objekte anwenden
Der vielfältigste Weg, ein Objekt zu beeinflussen, ist
\applyOutput
. Das funktioniert, indem ein musikalisches
Ereignis in den angegebenen Kontext eingefügt wird
(ApplyOutputEvent). Die Syntax lautet:
\applyOutput Kontext proc
wobei proc eine Scheme-Funktion ist, die drei Argumente benötigt.
Während der Interpretation wird die Funktion proc
für
jedes Layoutobjekt aufgerufen, dass im Kontext Kontext
vorgefunden wird, und zwar mit folgenden Argumenten:
- dem Layoutobjekt
- dem Kontext, in dem das Objekt erstellt wurde
- dem Kontext, in welchem
\applyOutput
bearbeitet wird.
Zusätzlich findet sich der Grund für das Layoutobjekt, etwa
der musikalische Ausdruck oder das Objekt, das für seine Erstellung
verantwortlich war, in der Objekteigenschaft cause
.
Für einen Notenkopf beispielsweise ist das ein
NoteHead-Ereignis, und für einen Notenhals ist es
ein Stem-Objekt.
Hier ist eine Funktion, die mit \applyOutput
benutzt
werden kann; sie macht Notenköpfe auf und neben der Mittellinie unsichtbar:
#(define (blanker grob grob-origin context) (if (and (memq 'note-head-interface (ly:grob-interfaces grob)) (< (abs (ly:grob-property grob 'staff-position)) 2)) (set! (ly:grob-property grob 'transparent) #t))) \relative { a'4 e8 <<\applyOutput Voice #blanker a c d>> b2 }
[ << Schnittstellen für Programmierer ] | [Top][Contents][Index] | [ LilyPond Scheme-Schnittstellen >> ] |
[ < Kontextauswertung ] | [ Up : Kontexte für Programmierer ] | [ Callback-Funktionen > ] |