This function transpose modally some music in the seven degrees of the
scale:

\version "2.19.81"
multiModal = #(define-music-function (scale patternMelodic) (ly:music?
ly:music?)
           #{
             #@(map(lambda (p)
               #{ \modalTranspose c #(ly:make-pitch -1 p) $scale
$patternMelodic #})
             (iota 7))
           #})

scale = {c d e f g a b}

\score {
  \multiModal \scale {c' d' c' r}
  \layout {}
}


If I want to make the transposition only for the first three degrees of the
scale I have to change

(iota 7)

to

(iota 3)

What if I want to pass to the function the number of transposition ? So
that if I want the first four transpositions I could write something like


  \multiModal \scale {c' d' c' r} 4

?

Thank you, g.
_______________________________________________
lilypond-user mailing list
lilypond-user@gnu.org
https://lists.gnu.org/mailman/listinfo/lilypond-user

Reply via email to