Hallo Christa,
was genau verstehst Du unter beliebig begrenzen?
In Deinem Anhang sind zwei Scheme-Funktionen enthalten. Die Erste heißt squiggle und die Zweite zacken. Letztere kann man weglassen, da sie hier nicht verwendet wird.
Beide erzeugen letztlich Postscript-Code, der in die Lilypond-Ausgabe eingefügt wird. Es wird eine Grundform erzeugt, die dann mehrfach wiederholt wird.
Die Funktion squiggle hat drei Argumente: wd, ht und rep. rep steht für die Anzahl der Wiederholungen. In Deinem Beispiel (ganz am Ende) ist #40 angegeben, also 40 Wiederholungen. Falls Dir "ganze" Wiederholungen der Grundform genügen, brauchst Du nur diese Zahl zu variieren, z.B. #3 für 3 Wiederholungen.
Der Vollständigkeit halber das gekürzte Beispiel und mit modifizierter Anzahl der Wiederholungen:
\version "2.16.2"
#(define-markup-command (squiggle layout props wd ht rep )
(number? number? number?)
#:category graphic
#:properties ((thickness 2))
(let* ((th (* (ly:output-def-lookup layout 'line-thickness) thickness))
(x 0)
(step (* wd 0.5))
(strht (number->string ht))
(strps (string-append (number->string th) " setlinewidth "
"0 0 moveto "
(number->string (* step 1)) " " strht " "
(number->string (* step 2)) " " strht " "
(number->string (* step 3)) " 0 curveto "
(number->string (* step 3)) " 0 moveto "
(number->string (* step 4)) " -" strht " "
(number->string (* step 5)) " -" strht " "
(number->string (* step 6)) " 0 curveto stroke" )))
(interpret-markup layout props (markup #:pattern rep X (* 3 wd)
#:postscript strps #:hspace (* 3 wd)))))
\relative c'' {
s^\markup \squiggle #5 #1.5 #3
}