Re: scheme function generating multiple score
On 29 December 2017 at 12:28, Gianmaria Lariwrote: > > > On 29 December 2017 at 11:26, Timothy Lanfear wrote: > >> On 29/12/17 07:03, Gianmaria Lari wrote: >> >>> Sorry to bother but I'm unable to get out from this problem. >>> This code generate two scores: >>> >>> \version "2.19.80" >>> >>> \score { >>> \transpose c d {c' d' e'} >>> \layout{} >>> } >>> >>> \score { >>> \transpose c e {c' d' e'} >>> \layout{} >>> } >>> >>> I tried to write a scheme function doing something similar: >>> >>> \version "2.19.80" >>> myScore = #(define-scheme-function (music) (ly:music?) #{ >>> >>> \score { >>> \transpose c d $music >>> \layout{} >>> } >>> >>> \score { >>> \transpose c e $music >>> \layout{} >>> } >>> >>> #}) >>> >>> \myScore {c' d' e'} >>> >>> but when I try to compile I get this error >>> >>> >>> error: syntax error, unexpected \score, expecting end of input >>> >>> \score { >>> >>> >>> error: error in #{ ... #} >>> >>> >>> Any suggestion? >>> Thank you, Gianmaria >>> >>> >> A function can only return a single item so you could wrap the two scores >> in a book and then process the book. >> >> \version "2.19.80" >> >> myBook = #(define-scheme-function (music) (ly:music?) #{ >> \book { >> \score { \transpose c d $music \layout{} } >> \score { \transpose c e $music \layout{} } >> } >> #}) >> >> mybook = #(myBook #{ { c' d' e' } #}) >> \mybook >> >> >> >> >> >> -- >> Timothy Lanfear, Bristol, UK. >> >> >> ___ >> lilypond-user mailing list >> lilypond-user@gnu.org >> https://lists.gnu.org/mailman/listinfo/lilypond-user >> > > oh, great! It was some weeks I was stuck with this issue. I thought the > scheme function would simply copy everything inside the #{ ... #} replacing > the variable. > > Thanks a lot Timothy! > Is it possible to avoid the two lines mybook = #(myBook #{ { c' d' e' } #}) \mybook and write directly something like myBook #{ { c' d' e' } #} ? ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: scheme function generating multiple score
On 29 December 2017 at 11:26, Timothy Lanfearwrote: > On 29/12/17 07:03, Gianmaria Lari wrote: > >> Sorry to bother but I'm unable to get out from this problem. >> This code generate two scores: >> >> \version "2.19.80" >> >> \score { >> \transpose c d {c' d' e'} >> \layout{} >> } >> >> \score { >> \transpose c e {c' d' e'} >> \layout{} >> } >> >> I tried to write a scheme function doing something similar: >> >> \version "2.19.80" >> myScore = #(define-scheme-function (music) (ly:music?) #{ >> >> \score { >> \transpose c d $music >> \layout{} >> } >> >> \score { >> \transpose c e $music >> \layout{} >> } >> >> #}) >> >> \myScore {c' d' e'} >> >> but when I try to compile I get this error >> >> >> error: syntax error, unexpected \score, expecting end of input >> >> \score { >> >> >> error: error in #{ ... #} >> >> >> Any suggestion? >> Thank you, Gianmaria >> >> > A function can only return a single item so you could wrap the two scores > in a book and then process the book. > > \version "2.19.80" > > myBook = #(define-scheme-function (music) (ly:music?) #{ > \book { > \score { \transpose c d $music \layout{} } > \score { \transpose c e $music \layout{} } > } > #}) > > mybook = #(myBook #{ { c' d' e' } #}) > \mybook > > > > > > -- > Timothy Lanfear, Bristol, UK. > > > ___ > lilypond-user mailing list > lilypond-user@gnu.org > https://lists.gnu.org/mailman/listinfo/lilypond-user > oh, great! It was some weeks I was stuck with this issue. I thought the scheme function would simply copy everything inside the #{ ... #} replacing the variable. Thanks a lot Timothy! ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
Re: scheme function generating multiple score
On 29/12/17 07:03, Gianmaria Lari wrote: Sorry to bother but I'm unable to get out from this problem. This code generate two scores: \version "2.19.80" \score { \transpose c d {c' d' e'} \layout{} } \score { \transpose c e {c' d' e'} \layout{} } I tried to write a scheme function doing something similar: \version "2.19.80" myScore = #(define-scheme-function (music) (ly:music?) #{ \score { \transpose c d $music \layout{} } \score { \transpose c e $music \layout{} } #}) \myScore {c' d' e'} but when I try to compile I get this error error: syntax error, unexpected \score, expecting end of input \score { error: error in #{ ... #} Any suggestion? Thank you, Gianmaria A function can only return a single item so you could wrap the two scores in a book and then process the book. \version "2.19.80" myBook = #(define-scheme-function (music) (ly:music?) #{ \book { \score { \transpose c d $music \layout{} } \score { \transpose c e $music \layout{} } } #}) mybook = #(myBook #{ { c' d' e' } #}) \mybook -- Timothy Lanfear, Bristol, UK. ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user
scheme function generating multiple score
Sorry to bother but I'm unable to get out from this problem. This code generate two scores: \version "2.19.80" \score { \transpose c d {c' d' e'} \layout{} } \score { \transpose c e {c' d' e'} \layout{} } I tried to write a scheme function doing something similar: \version "2.19.80" myScore = #(define-scheme-function (music) (ly:music?) #{ \score { \transpose c d $music \layout{} } \score { \transpose c e $music \layout{} } #}) \myScore {c' d' e'} but when I try to compile I get this error error: syntax error, unexpected \score, expecting end of input \score { error: error in #{ ... #} Any suggestion? Thank you, Gianmaria ___ lilypond-user mailing list lilypond-user@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-user