Am 26.03.2014 22:53, schrieb Paul Morris:
Hi Urs,

I had a chance to work on the iteration part.  This one accepts a note as an
argument which is a better approach, following the examples here:

http://lilypond.org/doc/v2.18/Documentation/extending/doubling-a-note-with-slurs-_0028example_0029
http://lilypond.org/doc/v2.18/Documentation/extending/adding-articulation-to-notes-_0028example_0029

The iteration is done with a "named let" (which is just one option) see
these docs for Guile and Scheme:

https://www.gnu.org/software/mit-scheme/documentation/mit-scheme-ref/Iteration.html
https://www.gnu.org/software/guile/manual/guile.html#while-do

Cheers,
-Paul



Thank you very much. Such concrete examples are incredibly helpful.
I had already started to fiddle around with yesterday's example and was trying to achieve something similar to your new example. But I didn't come to an end (Scheme gives you soo many opportunities to do something wrong ...), so I can now investigate your example with some pre-knowledge.

I hope (but honestly doubt) to find the time to pour these experiences in a tutorial (series), as I think that this step is a hard one for many people, and the respective documentation is really hard to grasp.

Urs

\version "2.18.0"

myNotes =
#(define-music-function (parser location note num)
    (ly:music? number?)
    "Returns a series of notes. @var{note} is repeated @var{num} times.
    @var{note} is supposed to be a single note."
    ;; iteration by named let
    (let loop
      ;; two variables/arguments,
      ;; i is the iteration count
      ;; nts is the list of notes we're building
      ((i 0)
       (nts '()))

      ;; conditional
      (cond
       ((< i num)
        ;; call the loop again with modified values for i and nts
        (loop
         (+ i 1)
         (append nts (list (ly:music-deep-copy note)))))

       (else
        ;; when done, return the music
        (make-music 'SequentialMusic 'elements nts)))))

{
   \myNotes g'16 #8
}



--
View this message in context: 
http://lilypond.1069038.n5.nabble.com/Help-with-music-function-generating-music-tp160833p160867.html
Sent from the User mailing list archive at Nabble.com.

_______________________________________________
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

Reply via email to