lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Re-using "\with" contexts


From: Lukas-Fabian Moser
Subject: Re: Re-using "\with" contexts
Date: Fri, 15 Jul 2022 16:21:23 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.9.1

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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]