From: Jean Abou Samra <[email protected]> Date: Friday, February 12, 2021 at 1:00 PM To: Carl Sorensen <[email protected]>, David Kastrup <[email protected]> Cc: lilypond-user Mailinglist <[email protected]> Subject: Re: Braces with TabStaff
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]><mailto:lilypond-user-bounces+carl.d.sorensen=gmail.com@[email protected]> wrote: Carl Sorensen <[email protected]><mailto:[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 That sounds fine to me. Thanks, Carl
