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.


Cheers,
Jean

Reply via email to