Hi Kieren, all,
On 2024-06-26 02:36, Kieren MacMillan wrote:
> Hi Alex,
>
>> is there any way to recreate the attached situation in "pure" LilyPond?
>
> Do you mean other than three markups with scores in them?
right. Three markups would essentially lead me to reinventing lyLuaTeX, which
doubles the pain. ;-)
>> What I'm after is a startStaff on steroids that can reinstantiate an entire
>> ChoirStaff or GrandStaff, including the brace or bracket.
>
> Yeah, Someone™ should make \stopStaff / \startStaff work with staff groupings…
(Also see the last sentence below.)
>> First, it generally takes patience and manual overrides to get the staves
>> aligned vertically, especially if there are very high or very low notes in
>> one of the pieces.
>
> This would be automagically handled with the markup+score native-Lilypond
> solution.
Correct.
>> But more severe, the *horizontal* spacing is independent between the three
>> scores.
>
> I think you’d still have to do some manual tweaking/T&E for this.
I think it would be pretty much for free, but not 100% sure. I played a bit how
far I can get with Lily alone, without spending too much time investigating
minor problems that are probably solvable already without too much pain (e.g.,
killing the clef and key sig at the beginning of the first stopped staff);
please find it attached as a "minimal" example.
And the horizontal spacing works beautifully there. Barring that I can't nicely
specify/constrain the gap to, say, a centimeter; but I didn't really try hard.
So, first question "simply" is: Does anyone know a way to produce a ChoirStaff
bracket at the beginning of measure 2? ;-)
Cheers,
Alex
\version "2.24.3"
#(set-global-staff-size 15)
spacer = {
\cadenzaOn
s128
\bar "|"
\cadenzaOff
}
perStaff = {
\key d \major
\time 5/4 s4*5 \bar "||"
\stopStaff\spacer
\time 6/4 s4*6 \bar "||"
\stopStaff\spacer
\time 2/4 s4*2 \bar "|."
}
\paper {
ragged-last = ##f
}
\score {
<<
\new ChoirStaff <<
\new Staff = "women" <<
\clef treble
\perStaff
{
% A
\stopStaff s4*5
\spacer
% B
\startStaff
\clef treble
\key d \major
<<
\new Voice = "sopB" \relative c'' {
\voiceOne a4 a a a a a
}
\new Voice = "altB" \relative c' { \voiceTwo e4 e e e e e }
>>
\stopStaff
\spacer
% C
s4*2
}
>>
\context Lyrics = "choir" \with { \override VerticalAxisGroup.staff-affinity = #CENTER } \lyricsto "altB" {
und mit dei -- nem Gei -- ste.
}
\new Staff = "men" <<
\clef bass
\perStaff
{
% A
\new Voice = "basA" \relative c' { \override Stem.stencil = ##f a4 a a a a }
\spacer
% B
\startStaff
<<
\clef bass
\key d \major
\new Voice = "tenB" \relative c' { \voiceOne cis4 cis cis cis cis cis }
\new Voice = "basB" \relative c' { \voiceTwo a4 a a a a a }
>>
\spacer
% C
\startStaff
\clef bass
\key d \major
\new Voice = "basC" \relative c' { \override Stem.stencil = ##f a4 a }
}
>>
\context Lyrics = "priest" \lyricsto "basA" {
Der Herr sei mit euch;
}
\context Lyrics = "priest" \lyricsto "basC" {
A -- men.
}
>>
>>
\layout {
\context {
\Staff
\remove Time_signature_engraver
}
}
}