lilypond-user
[Top][All Lists]
Advanced

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

Re: Writing score definition in Scheme


From: Urs Liska
Subject: Re: Writing score definition in Scheme
Date: Mon, 26 Mar 2018 18:23:54 +0200
User-agent: K-9 Mail for Android


Am 26. März 2018 15:35:42 MESZ schrieb Jan-Peter Voigt <address@hidden>:
>Hi Urs,
>
>I assume you know to build the music-expression for the score in
>scheme. 

No, not really.
I can replace \score {} with (ly:make-score) but that doesn't really help me.
I have no idea how to map the nesting of the parallel contexts to Scheme 
expressions within a single expression.

(get-staff returns Staff objects, but at a later (or earlier) point I will also 
want to create the Staff with Scheme (the music itself will stay in LilyPond 
language files).

>With that you can make use of #(scorify-music mymusic).
>That creates a score object *and* creates the necessary music for << \\
>
> >> constructs an thew like. If you don't need that you can simply use 
>#(ly:make-score mymusic).
>
>HTH
>Jan-Peter
>
>Am 26.03.2018 um 14:51 schrieb Urs Liska:
>> Hi all,
>>
>> I'm embarrassed to admit I don't know where to start looking in the 
>> manuals.
>>
>> I have a scheme-function that returns a \score expression, and I'm 
>> sure I wouldn't have to hop around between LilyPond and Scheme syntax
>
>> like this:
>>
>> make-score =
>> #(define-scheme-function (movement-path)(symbol-list?)
>>    #{
>>      \score {
>>        <<
>>          \new GrandStaff <<
>>            #(get-staff movement-path 'clarino-one)
>>            #(get-staff movement-path 'clarino-two)
>>            #(get-staff movement-path 'corno-one)
>>            #(get-staff movement-path 'corno-two)
>>          >>
>>
>>          #(get-staff movement-path 'tympano)
>>
>>          \new ChoirStaff <<
>>            #(get-staff movement-path 'soprano)
>>            #(get-staff movement-path 'alto)
>>            #(get-staff movement-path 'tenor)
>>            #(get-staff movement-path 'bass)
>>          >>
>>          \new StaffGroup <<
>>            \new GrandStaff <<
>>              #(get-staff movement-path 'violin-one)
>>              #(get-staff movement-path 'violin-two)
>>              #(get-staff movement-path 'viola)
>>            >>
>>            #(get-staff movement-path 'bc)
>>          >>
>>        >>
>>        \midi {}
>>        \layout {}
>>      }
>>    #})
>>
>>
>> The function is also called from within Scheme code, so I would like 
>> to write the same using Scheme only, without switching to LilyPond 
>> with #{ #} but also back to Scheme within these expressions.
>>
>> How would I go about this and/or where would I look up the reference 
>> for this?
>>
>> Thanks
>> Urs
>>
>> _______________________________________________
>> lilypond-user mailing list
>> address@hidden
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>
>_______________________________________________
>lilypond-user mailing list
>address@hidden
>https://lists.gnu.org/mailman/listinfo/lilypond-user



reply via email to

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