Ach du liebe Zeit! Wer hätte gedacht, dass das so kompliziert ist? Ich habe aber in dem Threat was gefunden, was für meine Zwecke funktioniert. Ich habe das jetzt so geregelt:
\version "2.12.1"
#(define (has-duration? music)
(ly:duration? (ly:music-property music 'duration)))
#(define (not-has-duration? music)
(not (has-duration? music)))
keepsOnlyFirstNote = #(define-music-function (parser location music)
(ly:music?)
(music-map
(lambda (evt)
(if (eq? 'EventChord (ly:music-property evt 'name))
(let ((elts (ly:music-property evt 'elements)))
(if (has-duration? (car elts))
(ly:music-set-property! evt 'elements (cons
(car elts)
(filter not-has-duration? (cdr elts)))))))
evt)
music))
deleteFirstNote = #(define-music-function (parser location music)
(ly:music?)
(music-map
(lambda (evt)
(if (eq? 'EventChord (ly:music-property evt 'name))
(let ((elts (ly:music-property evt 'elements)))
(if (has-duration? (car elts))
(ly:music-set-property! evt 'elements (cdr elts)))))
evt)
music))
musik =\relative c'' {
<bes f d ces bes>
<as ges e c as >
<ges e c a ges>
}
TempI = { \deleteFirstNote \musik }
TempII = { \deleteFirstNote \TempI }
TempIII = { \deleteFirstNote \TempII }
StimmeI = { \keepsOnlyFirstNote \musik }
StimmeII = { \keepsOnlyFirstNote \TempI }
StimmeIII = { \keepsOnlyFirstNote \TempII }
StimmeIV = { \keepsOnlyFirstNote \TempIII }
StimmeV = { \deleteFirstNote \TempIII }
\markup { Music with chords }
\new Staff \musik
\markup { Music splitted in 5 staffs }
<<
\new Staff \StimmeI
\new Staff \StimmeII
\new Staff \StimmeIII
\new Staff { \clef bass { \StimmeIV} }
\new Staff { \clef bass { \StimmeV} }
>>
Einer der am Anfang definierten Befehle löscht die oberste Stimme und der andere alle außer die oberste. Weil ich keine Ahnung habe was da in den ersten Zeilen steht, habe ich mich bis zur fünften Stimme über die Temp-Stimmen vorgemogelt.