Great! It works! It works!
Thank You!
2016-09-04 20:15 GMT+03:00, Simon Albrecht <simon.albre...@mail.de>:
> Hi Oxana,
>
> I _guess_ the reason it doesn’t work is because the parser doesn’t
> accept a Scheme expression instead of the number after \repeat unfold.
> The solution is creating music via Scheme. As a first step, you can
> always use something like
>
> %%%
> \version "2.19.47"
> \displayMusic { \repeat unfold 2 { c'1 } }
> %%%
>
> to see what the music looks like on the Scheme level:
>
> ;
> (make-music
>'SequentialMusic
>'elements
>(list (make-music
>'UnfoldedRepeatedMusic
>'elements
>'()
>'repeat-count
>2
>'element
>(make-music
> 'SequentialMusic
> 'elements
> (list (make-music
> 'NoteEvent
> 'duration
> (ly:make-duration 0)
> 'pitch
> (ly:make-pitch 0 0)))
> ;
>
> Now I built a music function using that information:
>
> %%%
> \version "2.18.2"
>
> createRepeats =
> #(define-music-function (parser location nums mus end) (list? ly:music?
> ly:music?)
> (let ((repeater (lambda (n) (make-music
> 'SequentialMusic
> 'elements
> (list (make-music
> 'UnfoldedRepeatedMusic
> 'elements
> '()
> 'repeat-count
> n
> 'element
> mus)
>end)
> (make-sequential-music (map repeater nums
> \createRepeats #'(2 3 7) { c'1 } { \bar "||" }
>
>
> If you have further questions, feel free to ask back.
>
> Best, Simon
>
> PS. In recent development versions, one may use nicer syntax:
>
>
> \version "2.19.47"
>
> createRepeats =
> #(define-music-function (nums mus end) (list? ly:music? ly:music?)
> (let ((repeater (lambda (n) (make-music
> 'SequentialMusic
> 'elements
> (list (make-music
> 'UnfoldedRepeatedMusic
> 'elements
> '()
> 'repeat-count
> n
> 'element
> mus)
>end)
> (make-sequential-music (map repeater nums
> \createRepeats 2,3,7 { c'1 } { \bar "||" }
>
>
> On 04.09.2016 18:52, Оксана Крымина wrote:
>> hello all!
>>
>> please, help me to write a function to convert several numbers like (5
>> 7 10 8) to musical string like
>> \repeat unfold 5 {c2} \bar ""
>> \repeat unfold 7 {c2} \bar ""
>> \repeat unfold 10 {c2} \bar ""
>> \repeat unfold 8 {c2} \bar ""
>>
>> my code produces errors only:
>> \version "2.18.2"
>> musSpisok = #(define-scheme-function (parser location llen)(list?)
>> (if (not (null? llen))
>> #{
>>\repeat unfold $(car llen) {c2} \bar "" (
>> \musSpisok #'(cdr llen)) )
>> #})
>>
>> thanx,
>> Oxana
>>
>> ___
>> lilypond-user mailing list
>> lilypond-user@gnu.org
>> https://lists.gnu.org/mailman/listinfo/lilypond-user
>
>
___
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user