Hallo Arnold,
ich hab' ziemlich lang dran rumgetüftelt, aber letztendlich ist das was rauskam eher schlechter als Dein code:
Es erscheint noch Takt "3b", krieg ich nicht weg.
Und obwohl es mit 2.18.2 auch mit \unfoldRepeats klappt, scheitert es mindestens ab 2.19.29, ich verdächtige da issue 4252
https://sourceforge.net/p/testlilyissues/issues/4252/Muß ich morgen mal erforschen.
Nichtsdestotrotz hier der code, vielleicht weiß jemand ja was dazu (oder kann aufzeigen warum es so nicht klappen kann...)
\version "2.18.2"
#(define ((my-make-volta-set l1 l2) mus)
(let* ((music (ly:music-deep-copy mus))
(alts (ly:music-property music 'elements))
(lalts (length alts))
(times (ly:music-property music 'repeat-count)))
(map (lambda (x y xx yy)
(make-music
'SequentialMusic
'elements
;; set properties for proper bar numbering
(append
(list (make-music 'AlternativeEvent
'alternative-dir xx
'alternative-increment yy))
(list x)
(if (= y (1- lalts))
(list (make-music 'AlternativeEvent
'alternative-dir 1
'alternative-increment 0))
'()))))
alts
(iota lalts)
l1
l2)))
mus-tst = {
\set Score.alternativeNumberingStyle = #'numbers-with-letters
\override Score.BarNumber.break-visibility = #end-of-line-invisible
\withMusicProperty #'elements-callback #(my-make-volta-set '(-1 0) '(1 0))
\repeat volta 2 { cis'1 }
\alternative {
{ d'1 }
{
\set Score.voltaSpannerDuration = #(ly:make-moment 4/4)
\repeat volta 2 {
e'1
%#(make-music 'AlternativeEvent 'alternative-dir 1 'alternative-increment 0)
f'1
\unset Score.voltaSpannerDuration
}
\alternative {
{ g'1 a' }
{ b'1 c'' }
}
}
}
d''1
\bar "|."
}
\score {
{ \new Staff \mus-tst }
\layout {}
%\midi {}
}
\score {
\unfoldRepeats
{ \new Staff \mus-tst }
\layout {}
%\midi {}
}
Gruß,
Harm