Hi Alasdair,
Here a new staff is instantiated; with about 10 lines of "\with" to
change its appearance and behaviour.
However, if I wish to use several such staves, I don't want to be
copying the "\with" material into each one. Is it possible to create
a new context just from such a definition? What I mean is something like
myStaff = staff \with {
< lots of lines of definition >
}
so that I can simply create a new staff the way I want it with, for
example
\new myStaff {
}
All I want is an example. There is some information about defining a
new context, but in my case all I want is a tweaked version of a
current context.
This is easier than one might think, but - somewhat counterintuitively -
you need _two_ instances of the word \with.
\version "2.23.7"
rainbowSettings = \with {
\override Clef.color = #red
\override TimeSignature.color = #green
\override StaffSymbol.color = #blue
clefGlyph = "clefs.C"
}
\new Staff \with \rainbowSettings {
\key d \major
d'4
}
\new Staff \with {
\rainbowSettings
\magnifyStaff 2
} {
\key d \major
d'4
}
And I just found out that you can even do
rainbowSettings = {
\override Clef.color = #red
\override TimeSignature.color = #green
\override StaffSymbol.color = #blue
\set clefGlyph = "clefs.C"
}
(To wit, if rainbowSettings are entered as music instead of as a \with
clause, context properties have to be set with \set.)
Lukas