Thomas Morley
2018-11-18 17:23:14 UTC
Hi,
consider the code below. I'd like to restrict usage to Staff-like
contexts, i.e. Staff, Tab- and DrumStaff, etc would be ok, but
container-contexts like StaffGroup, etc should lead to return '().
Pseudo-code:
\new Staff(Group)
\with {
\applyContext
#(lambda (context)
(if <condition>
;; Do something, if we are in a Staff-like context
;; Multiple Bottom-contexts may happen
(lambda (x) ...)
;; Do nothing if we are are in container-contexts like ChoirStaff,
;; StaffGroup, etc
'()
)
}
{ c''1 }
I thought the <condition> could be "Do I have the Staff_symbol_engraver?"
Though, how to code?
\applyContext
#(lambda (context)
(ly:context-def-lookup context 'consists))
does not work, because 'context' is not a context-definition.
Any hint how to proceed would be great.
Thanks,
Harm
consider the code below. I'd like to restrict usage to Staff-like
contexts, i.e. Staff, Tab- and DrumStaff, etc would be ok, but
container-contexts like StaffGroup, etc should lead to return '().
Pseudo-code:
\new Staff(Group)
\with {
\applyContext
#(lambda (context)
(if <condition>
;; Do something, if we are in a Staff-like context
;; Multiple Bottom-contexts may happen
(lambda (x) ...)
;; Do nothing if we are are in container-contexts like ChoirStaff,
;; StaffGroup, etc
'()
)
}
{ c''1 }
I thought the <condition> could be "Do I have the Staff_symbol_engraver?"
Though, how to code?
\applyContext
#(lambda (context)
(ly:context-def-lookup context 'consists))
does not work, because 'context' is not a context-definition.
Any hint how to proceed would be great.
Thanks,
Harm