lilypond-user
[Top][All Lists]
Advanced

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

Re: Variable weirdness


From: David Sumbler
Subject: Re: Variable weirdness
Date: Sat, 17 Dec 2016 17:04:31 +0000

Further to my earllier message, I have realized that the problem I am getting has nothing to do with variable scope (at least, I don't think it does), so I was asking the wrong question.

But the problem still exists.

My abbreviated file now looks like this:

%%%%%
\version "2.19.48"

\language "english"

printFluteA = 
\new Staff \relative c'' {
  b1 | c \bar "|." |
}

printMvtOne =
\new StaffGroup <<
  \printFluteA
>>

printScoreMusic =
\bookpart {
  \score {
    \printMvtOne
  }
}

\book {
  \bookOutputName "../ExperimentScore"
  \printScoreMusic
}
%%%%%

As I mentioned before, the final line produces an " unexpected BOOK_IDENTIFIER" error, but not if the preceding \bookOutputName line is commented out.

What is going on here?

David


On Sat, 2016-12-17 at 14:48 +0000, David Sumbler wrote:
I have again been trying to build up a sensible files-and-variables structure for more complex scores (e.g. orchestral pieces with several movements), and I seem once again to have run into the limitation that 'book' and 'bookpart' have no scope for variables.

So I thought I would try Jan-Peter's parserDefine function, but I am still getting a problem.  I cannot fathom whether I have used the function incorrectly, or whether what I am trying to do is outside of its functionality.

I have pared my file down virtually to a minimum to demonstrate the problem.  This is what I now have:

%%%%%
\version "2.19.48"

\language "english"

parserDefine =
#(define-scheme-function (vkey val)(symbol? scheme?)
   (ly:parser-define! vkey val))

printFluteA = 
\new Staff \relative c'' {
  b1 | c \bar "|." |
}

printMvtOne =
\new StaffGroup <<
  \printFluteA
>>

\parserDefine printScoreMusic \bookpart { \score { \printMvtOne } }

%printScore =
\book {
  \bookOutputName "../ExperimentScore"
  \printScoreMusic
}
%%%%%

When I compile this, the \printScoreMusic line produces a syntax error: unexpected BOOK_IDENTIFIER
 
The funny thing is, that if I comment out the preceding \bookOutputName line, there is no error and the file compiles as one would expect.

Can anyone shed light on this behaviour, and see a solution?

David


reply via email to

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