lilypond-user
[Top][All Lists]
Advanced

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

Re: Writing functions for large-scale layout


From: Thomas Morley
Subject: Re: Writing functions for large-scale layout
Date: Fri, 26 Oct 2012 02:32:13 +0200

2012/10/25 Christopher Smith <address@hidden>:
>> Assign the result to a variable xxx and use \xxx.
>
> The assignment works, but then Lilypond 2.16.0 throws "error: unknown
> escaped string `\xxx'" and finally fails, expecting '='.  I think it
> may be having trouble figuring out what to do with the resulting
> value, which is (currently) a score.  (I'm happy to change that if
> something else will work better; I'm just trying to write a function
> that takes individual part excerpts and lays them out in a complex but
> stereotyped way.)
>
>> Oh, and what should also work is writing
>> $#{ \schemefunctioncall ... #}
>
> This produces "error: syntax error, unexpected SCORE_IDENTIFIER <the
> entire text of the function call, including the leading $ and trailing
> }>".
>
> (Additionally, is there a convenient way to find the width of some
> grob that I could use to feed to the layout indent?  I'm not a Scheme
> programmer and am having trouble wrapping my head around the uasge of
> X-extent and ly:grob-extent.)
>
>
> Christopher Smith
>
> _______________________________________________
> lilypond-user mailing list
> address@hidden
> https://lists.gnu.org/mailman/listinfo/lilypond-user

Hi Christopher,

I tried to followed the thread, but, opposed to David, I do not really
understand what you want, what you did and which problems occuring.
Could you please post more meaningful code-examples.
P.e.: your precesAndResponse-function from prtest.ly has an
preces-argument, but it is not used.
So: ??

Well, I managed to print a score (omiiting `precesĀ“), but I'm quite
sure it is not really what you want:

\version "2.16.0"

precesAndResponse =
#(define-scheme-function (parser location ;preces
                        soprano alto tenor bass)
     (;ly:music?
        ly:music? ly:music? ly:music? ly:music?)
  #{
    %\score {
      \new ChoirStaff <<
        \new Staff = sopranoStaff $soprano
        \new Staff = altoStaff    $alto
        \new Staff = tenorStaff   $tenor
        \new Staff = bassStaff    $bass
      >>
    %  \layout {}
    %}
  #})

mI = \relative c' { c1 }
mII = \relative c' { c1 }
mIII = \relative c' { c1 }
mIV = \relative c' { c1 }


\new Score {
\precesAndResponse \mI \mII \mIII \mIV
}

\markup {
        \score {
                \new Score {
                        \precesAndResponse \mI \mII \mIII \mIV
                }
                \layout {}
        }
}


Anyway, I have to go to bed. In Germany it's in the middle of the night.
Perhaps I can work on it tomorrow evening/night.

Regards,
  Harm



reply via email to

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