Hallo Harm,
bei der Suche nach der Erklärung was for-each macht, fand ich map-in-order, die mir für mein Anliegen geeigneter schien, da for-each kein Ergebnis abliefert.
Ich bin dann zu folgendem Script gelangt:
\version "2.18.2"
note = {c''}
note_chord =
#(define-music-function (parser location music)
(ly:music?)
(set! (ly:music-property music 'elements)
(map-in-order
(lambda (m)
(cond ((eq? (ly:music-property m 'name) 'EventChord)
m)
((eq? (ly:music-property m 'name) 'NoteEvent)
note)
(else m)))
(ly:music-property music 'elements)
)
)
music)
\score {
<<
\new Voice \note_chord{ e' <e'> }
>>
}
Die Ausgabe der anderen Note c'' dient also nur dazu, die lokale Veränderung der eingegebenen Noten zu demonstrieren.
Danke für Deine Hilfe
Gruß
Erich