I now wrote this: #(define (transform chord m1 m2) (let* ((note (car (ly:music-property chord 'elements))) (dur (ly:music-property note 'duration)) (pitch (ly:pitch-notename (ly:music-property note 'pitch))) (new (ly:music-deep-copy (if (= pitch 0) m1 m2)))) (make-music 'EventChord 'elements (map (lambda (m) (ly:music-set-property! m 'duration dur) m) (ly:music-property new 'elements)))))
pat = #(define-music-function (parser location m1 m2) (ly:music? ly:music?) (make-music 'SequentialMusic 'elements (map (lambda (m) (transform m m1 m2)) (ly:music-property thePattern 'elements)))) thePattern = { c8 d16 c d8 c d16 c d8 c d } so \pat <d e> <f g> also works. But when in relative mode larger intervals are used, e.g.: \relative c' { \pat c c' } each c is put one octave higher. How can I get this to work so that every c just stays in the same octave? Met vriendelijke groet, Wilbert Berendsen -- http://www.wilbertberendsen.nl/ "You must be the change you wish to see in the world." -- Mahatma Gandi _______________________________________________ lilypond-user mailing list lilypond-user@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-user