; /usr/bin/clisp-cm-clm-cmn ; (compile-file "dyn" :verbose nil) ; (load *) (definstrument partial (start dur frequency freqskew amplitude freq-envelope amp-envelope) (let* ((gls-env (make-env :envelope freq-envelope :scaler (hz->radians freqskew) :duration dur)) (os (make-oscil :frequency frequency)) (amp-env (make-env :envelope amp-envelope :scaler amplitude :duration dur)) (len (inexact->exact (round (* *srate* dur)))) (beg (inexact->exact (round (* *srate* start)))) (end (+ beg len))) (run (loop for i from beg to end do (outa i (* (env amp-env) (oscil os (env gls-env))) ))))) (defun make-score () (let* ( ;n is the number of events (n 1) ;m is the number of oscillators (m 20) (randfreqs (make-array m)) (freq_envelope '(.00 0.00 0.25 0.0 0.75 1.0 1.0 1.0)) (amp_envelope '(.00 .00 .25 0.50 .75 1.00 1.00 .0)) (x 0.0) (y 0.1) ) (with-sound (:srate 48000 :output "/zap/test.wav") (loop for i from 0 below n do (setf x (+ 0.92 (* 0.9 x) (* -2.0 (* x x)))) (setf y (+ 0.95 (* 0.9 y) (* -2.0 (* y y)))) (loop for k from 0 below m do (setf (aref randfreqs k) (random 800)) (partial (* i 1) 10 440 (aref randfreqs k) (/ 0.4 m) freq_envelope amp_envelope) ) )) ))