lilypond-user
[Top][All Lists]
Advanced

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

Re: Re-using "\with" contexts


From: Pierre Perol-Schneider
Subject: Re: Re-using "\with" contexts
Date: Fri, 15 Jul 2022 16:29:36 +0200

Hi Alasdair,
See also: https://lilypond.org/doc/v2.22/Documentation/notation/defining-new-contexts.html
Cheers,
Pierre

Le ven. 15 juil. 2022 à 16:22, Lukas-Fabian Moser <lfm@gmx.de> a écrit :
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]