Le 12/02/2021 à 19:16, Carl Sorensen a écrit :
On 2/12/21, 9:40 AM, "lilypond-user on behalf of David Kastrup"<[email protected] on behalf of
[email protected]> wrote:
Carl Sorensen<[email protected]> writes:
> It seems to me like a ChoirStaff is a special kind of StaffGroup that
> is not intended to have tablature associated with it.
>
> Wouldn’t the better approach be to have the user create a new custom
> StaffGroup?
Singers with lute are not untypical for a Renaissance ensemble. At any
rate, LilyPond's job description does not really include fighting
imprudent typesetting choices with baffling behavior.
I agree with this. We should try in every case not to be baffling.
"Are you sure you want ..." is a usage rather than a programming
question.
> One of the strengths of LilyPond is keeping appropriate semantics in
> the input files.
But not by ejecting its stomach in the users' faces when it doesn't like
what they want.
> I don’t think ChoirStaff is the appropriate semantics for a StaffGroup
> containing a traditional music staff and a tablature staff.
But the user is not asking you to do the typesetting, but LilyPond.
I agree.
Should ChoirStaff accept all Staff contexts then? DrumStaff, RhythmicStaff,
TabStaff?
I guess if we are consistent and say any kind of staff can be included in a
ChoirStaff, so that a ChoirStaff is just a StaffGroup with a particular kind of
start bracket, then my concern is minimized.
Thanks,
Carl
Hi Carl and David and everyone,
ChoirStaff does in fact accept DrumStaff and
RhythmicStaff at the moment.
However, there are inconsistencies other than
TabStaff between ChoirStaff other staff-grouping
contexts. Consider:
\new GrandStaff <<
\new ChoirStaff <<
\new Staff c'
\new Staff c'
>>
\new ChoirStaff <<
\new Staff c'
\new Staff c'
>>
>>
On contrary to what a user might expect from the
documentation of GrandStaff, no brace is printed.
This is because the context definitions don't allow
ChoirStaff contexts to be nested in GrandStaff, so
the GrandStaff does not in fact receive any of the
music put in it.
Here are the exact lists (as found in ly/performer-init.ly
just because they are shorter there):
\context {
\type "Performer_group"
\name StaffGroup
\accepts ChoirStaff
\accepts ChordNames
\accepts DrumStaff
\accepts FiguredBass
\accepts FretBoards
\accepts GrandStaff
\accepts Lyrics
\accepts OneStaff
\accepts PianoStaff
\accepts RhythmicStaff
\accepts Staff
\accepts StaffGroup
\accepts TabStaff
\defaultchild Staff
}
\context {
\type "Performer_group"
\name GrandStaff
\accepts ChordNames
\accepts DrumStaff
\accepts Dynamics
\accepts FiguredBass
\accepts Lyrics
\accepts RhythmicStaff
\accepts Staff
\accepts TabStaff
\defaultchild Staff
}
\context {
\GrandStaff
\name PianoStaff
\alias GrandStaff
}
\context{
\type "Performer_group"
\name ChoirStaff
\accepts ChoirStaff
\accepts ChordNames
\accepts FiguredBass
\accepts DrumStaff
\accepts Dynamics
\accepts GrandStaff
\accepts Lyrics
\accepts OneStaff
\accepts PianoStaff
\accepts RhythmicStaff
\accepts Staff
\accepts StaffGroup
\accepts TabStaff
\defaultchild Staff
}
As you can see, although the lists are essentially
the same, there is a number of differences.
Personally, my opinion is that we should go for
consistency and derive all of StaffGroup, ChoirStaff
and GrandStaff from one same context, with thus the
same context types accepted. All staff-like contexts
should be included -- right now, none includes
MensuralStaff for example.
How does that sound?
Best regards,
Jean