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