From: lilypond-user <lilypond-user-bounces+carl.d.sorensen=gmail....@gnu.org> on behalf of Jean Abou Samra <j...@abou-samra.fr> Date: Friday, February 12, 2021 at 8:19 AM To: David Kastrup <d...@gnu.org>, Richard Shann <rich...@rshann.plus.com> Cc: lilypond-user Mailinglist <lilypond-user@gnu.org> Subject: Re: Braces with TabStaff
Hi, Still, the output from this doesn't look expected: \version "2.23.1" music = { c''1 } \new StaffGroup << \new TabStaff \music \new Staff \music >> \new ChoirStaff << \new TabStaff \music \new Staff \music >> Doing some debugging: \version "2.23.1" \layout { \context { \Score % Force showing all system start delimiters \override SystemStartBracket.collapse-height = -1 \override SystemStartBrace.collapse-height = -1 \override SystemStartBar.collapse-height = -1 \override SystemStartSquare.collapse-height = -1 % Some messages for debugging \consists #(lambda (context) (make-engraver (acknowledgers ((system-start-delimiter-interface engraver grob source-engraver) (ly:message "Found ~s from ~s" grob (ly:context-name (ly:translator-context source-engraver))))))) } } music = { c''1 } \new StaffGroup << \new TabStaff \music \new Staff \music >> \new ChoirStaff << \new TabStaff \music \new Staff \music >> \new ChoirStaff \with { systemStartDelimiterHierarchy = #'(SystemStartSquare) } << \new Staff \music \new TabStaff \music \new Staff \music >> \new ChoirStaff \with { \accepts TabStaff } << \new Staff \music \new TabStaff \music \new Staff \music >> This yields: Interpreting music... Found #<Grob SystemStartBracket > from StaffGroup Found #<Grob SystemStartBar > from Score Preprocessing graphical objects... Interpreting music... Found #<Grob SystemStartBracket > from StaffGroup Found #<Grob SystemStartBracket > from ChoirStaff Found #<Grob SystemStartBar > from Score Preprocessing graphical objects... Interpreting music... Found #<Grob SystemStartSquare > from StaffGroup Found #<Grob SystemStartSquare > from ChoirStaff Found #<Grob SystemStartBar > from Score Preprocessing graphical objects... Interpreting music... Found #<Grob SystemStartBracket > from ChoirStaff Found #<Grob SystemStartBar > from Score Preprocessing graphical objects... It looks like ly/engraver-init.ly is missing \accepts "TabStaff" in the definition of ChoirStaff. This causes an intermediate StaffGroup containing just one TabStaff to be created as a layer between ChoirStaff and TabStaff to fullfill acceptance requirements. If you agree, I'll make a quick patch. 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? One of the strengths of LilyPond is keeping appropriate semantics in the input files. I don’t think ChoirStaff is the appropriate semantics for a StaffGroup containing a traditional music staff and a tablature staff. Thanks, Carl Cheers, Jean