Le 03/11/2021 à 22:16, Lukas-Fabian Moser a écrit :
Hi,
Well, I would say it depends on what you intend to
do. Help out in implementing this particular feature?
The StaffCollection ancestor to StaffGroup might be
a good first contribution. For completeness you could
also add the intermediate type StaffMonoid.
I already have this ready in a branch, along with some cleanup of
ly/engraver-init.ly (but didn't feel much of a hurry to create a merge
request).
Now I see why you asked about context definitions on the devel list.
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.
To be clear: I have a StaffCollection such that the definition of
StaffGroup boils down to
\context {
\StaffCollection
\name "StaffGroup"
\consists "Span_bar_engraver"
\consists "Span_bar_stub_engraver"
\consists "System_start_delimiter_engraver"
systemStartDelimiter = #'SystemStartBracket
%% The default for DynamicText.extra-spacing-width causes dynamics to
%% be placed across span bars, so switch it off:
\override DynamicText.extra-spacing-width = ##f
}
(and I still wasn't sure if the Span_arpeggio_engraver should be in
StaffCollection or rather in StaffGroup).
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.
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.
So StaffMonoid, if it's not meant as a joke, should be some subset of
this?
https://gitlab.com/lilypond/lilypond/-/issues?scope=all&state=opened&label_name[]=Doc
Now if what you want is really coding, there are
heaps of open issues waiting for you. Here are a
few that I believe (NB no warranty) would be feasible
for a power user with some minimal understanding of
Scheme:
Wow, this is very valuable. Thanks much for this list!
You are welcome. It's one of the cases where one can say: I hope it will
not stay valuable too long.
PS. And also thanks for the comments on the Instrument_name_engraver;
I'm afraid I won't have time before the weekend to really think about
your comments.
There is no rush at all.
Best,
Jean