From: lilypond-user <[email protected]>
on behalf of Jean Abou Samra <[email protected]>
Date: Friday, February 12, 2021 at 8:19 AM
To: David Kastrup <[email protected]>, Richard Shann <[email protected]>
Cc: lilypond-user Mailinglist <[email protected]>
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