lilypond-user
[Top][All Lists]
Advanced

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

Re: Score layout in a separate file


From: David Kastrup
Subject: Re: Score layout in a separate file
Date: Tue, 03 Apr 2012 16:33:32 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.94 (gnu/linux)

Siska Ádám <address@hidden> writes:

> On 2012.04.03., at 15:46, Thomas Morley wrote:
>
>> Am 3. April 2012 15:17 schrieb Siska Ádám <address@hidden>:
>>> Dear List,
>>> 
>>> 
>>> is there a way to put the layout block for a score in a variable that lives 
>>> in a separate file? Unfortunately the following won't compile:
>>> 
>>> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
>>> 
>>> myMusic = \relative d' {
>>>  d4 d d d
>>> }
>>> 
>>> myLayout = \layout {
>>>   \context {
>>>    \Staff
>>>    \remove "Clef_engraver"
>>>  }
>>> }
>>> 
>>> \score {
>>>  \myMusic
>>>  \myLayout
>>> }
>>> 
>> 
>> try:
>> 
>> \layout { \myLayout }
>
> thanks a lot, this works! Out of curiosity, could you or somebody on
> the list explain to me why this works?

The LilyPond grammar in the appendices of the NR will show what to use
here.

> It is a bit weird to me, as I also tried to have the variable without
> the \layout in it (so that it was myLayout = \context { etc. } and
> then I used \layout { \myLayout } ), but that didn't work either. I'm
> just surprised that this solution (which reads at the end \layout {
> \layout { etc. } } ) will compile...

Variables in LilyPond are not textual entities but Scheme expressions.
Some keywords like \layout throw LilyPond into a mode, like one suitable
for creating output definitions, or drum parts or whatever.  And to
interpret such a variable, you sometimes need to be in the right mode
already (because the information _what_ kind of output definition is in
the variable created by \layout is not there).  Basically, when putting
stuff into a variable and reusing the result, you are safer off if you
consult the grammar when things go wrong.

-- 
David Kastrup




reply via email to

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