Hi, I couldn't come up with the magic to get a pan-env working across a heap of notes with move-locsig. But I made a solution below by just passing degree only to the inst and controlling degree over the total duration of the heap from with-sound. Not elegant, but it pans across the whole heap of notes.
------------ (provide 'snd-nrev.scm) (if (provided? 'snd) (require snd-ws.scm) (require sndlib-ws.scm)) (load "/opt/snd-16/CM_patterns.scm") (define (round-off z n) (let ((power (expt 10 n))) (/ (round (* power z)) power))) (definstrument (myinst start-time duration frequency amplitude sampling-rate revamt distance degree ) (let* ((beg (floor (* start-time sampling-rate))) (end (+ beg (floor (* duration sampling-rate)))) (loc (make-locsig :degree degree :distance distance :reverb revamt)) (sine-wave (make-oscil :frequency frequency))) (do ((i beg (+ i 1))) ((= i end)) (let ((x (* amplitude (oscil sine-wave)))) (locsig loc i x) (move-locsig loc degree distance) )))) (let ((aaa (make-heap '(360 800.345 1200 600))) (bbb (make-heap '(1 1 .75 .25 .20 .15 .10 .10 .10 .10))) ) (with-sound (:reverb nrev :output "/home/MyTest.wav" :srate 48000 :channels 2 :header-type mus-riff :statistics #t :play #t) (let ((i 0)) (let ((mypanenv (make-env '(0 90 5 0) :length 70))) ;not sure why length works here instead of duration (do ((k 0 (+ k 1))) ((>= k 40)) (let ((v (next bbb))) (myinst i v (next aaa) .9 48000 0.01 1.0 (mypanenv k) ) ;send degree to inst (set! i (+ (round-off i 2) v)) ))))) ) _______________________________________________ Cmdist mailing list Cmdist@ccrma.stanford.edu https://cm-mail.stanford.edu/mailman/listinfo/cmdist