AUTOMATIC NOERGAARD-INFINITY PATTERNS This is useful when you want short noergaard-infinity patterns but do not want to specify the parameters. I found these very inspiring patterns both played in steady length and fill-templated in various tonalities. You'll notice here lists of elements that are picked randomly, change them according to your purposes. Call the function with a seed and get a new random pattern. If that sounds nice freeze it, otherwise keep changing the seed until you hear what you like. Brownian variants were also useful. (defun random-length (seed min max) (init-rnd seed) (get-random min max)) (defun random-noergaard-source (symbol-seed length-seed) (gen-random symbol-seed (random-length length-seed 2 5) '(a b c d -b -c -d))) (defun random-noergaard-source-vel (symbol-seed length-seed) (gen-random symbol-seed (random-length length-seed 2 5) '(127 100 90 80 70))) (defun gen-random-noergaard-velocity (seed) (let* ((seed1 seed) (seed2 (+ seed1 0.01)) (seed3 (+ seed2 0.01))) (noergaard-infinity-series (random-noergaard-length-vel seed1) (random-noergaard-source-vel seed2 seed3)))) (defun random-noergaard-length-vel (seed) (pick-random '(2 3 4 5 6 7 8) seed)) (defun random-noergaard-length (seed) (pick-random '(3 4 5 6 7 8 12 16 24 32) seed)) ; usual call (noergaard-infinity-series (random-noergaard-length 0.2) (random-noergaard-source 0.1 0.21)) (defun gen-random-noergaard-symbols (seed) (let* ((seed1 seed) (seed2 (+ seed1 0.01)) (seed3 (+ seed2 0.01))) (noergaard-infinity-series (random-noergaard-length seed1) (random-noergaard-source seed2 seed3)))) ; examples ;(setq symbols1 ; (gen-random-noergaard-symbols 0.232221)) ;(setq symbols2 ; (gen-random-variate 0.9 0.05 -1 1 symbols1)) ; ;(setq velocity1 ; (vector-round 80 127 (gen-random-noergaard-velocity 0.2123))) ;(setq velocity2 ; (vector-round 80 127 (gen-random-noergaard-velocity 0.21223)))