Hi,
But I'm at a bit of a loss about your notion of a StaffMonoid. All
sorts of math puns aside (a CommutativeStaffRing of nonzero
characteristic especially for engraving _Le Spec de la Rose_ by
Berlioz) - what do you mean by a StaffMonoid?
There is absolutely nothing besides the math pun. It was too tempting
given that I know both Kieren and yourself have some background in that.
:-)
Just goes to show that it's possible to both get a joke completely and
still miss it anyway. Lack of facial expressions is helpful in that regard.
I would put Span_arpeggio_engraver in StaffCollection. It makes sense
for something intended at logically grouping staves, and doesn't harm
after all: as long as the user does not \set
StaffCollection.connectArpeggios, it has no effect.
Ok, done.
I also noticed that StaffCollection probably shouldn't have the
Vertical_align_engraver, since this causes vertical spacing to be
different. The original idea was that uncommenting in
\version "2.23.4"
bla = \repeat unfold 30 c'1
<<
\new Staff \bla
%{
\new StaffCollection \with {
\override StaffSymbol.color = #blue
instrumentName = Test
}
%}
<<
\new Staff \bla
\new Staff \bla
>>
\new Staff \bla
>>
shouldn't change spacing at all.
Also, don't forget \alias StaffCollection in the definition of
StaffGroup so users can write commands as \set
StaffCollection.whatever = ... or \override
StaffCollection.Whatever.whatnot = ... and have them work in all
contexts that group staves.
Is that really desirable? I notice that PianoStaff is \alias'ed to
GrandStaff, which makes sense somehow, but GrandStaff is _not_ \alias'ed
to StaffGroup, and neither is ChoirStaff. (I have no preference in that
regard, it's just I'm unsure about the consequences.)
Lukas