helper:mkmelody:pcrel   scheme


Defined in:  https://github.com/lambdamusic/extempore-extensions/blob/main/init/init_makers.xtm

Implementation

;
;
; helper:mkmelody:pcrel
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; helper function: generate a random melody using pc:rel, a 
; root note and a list of relative steps variations
;
;
; Example:
; (helper:mkmelody:pcrel 4 60 'm '(-1)) 
; => (60 58 56 55)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(define helper:mkmelody:pcrel
  (lambda (len startp scale stepslst)
      (let loop ((i 0)
                  (lst (list startp)))  
        ; (println lst)
        (if (< i (- len 1))
          (loop (+ i 1)
            (cons (pc:relative (car lst)
              (random stepslst)
              (pc:scale 0 scale))
            lst))   
          (reverse lst)))))


Back to Index