[Top][All Lists]
[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