[CM] repeating envs

James Hearon j_hearon at hotmail.com
Tue May 11 10:46:52 PDT 2021


Hi,
The lambda function, from the manual, for repeating an env seems like a useful thing, but I cannot seem to find the magic to make it repeat.  I'm wondering how you would use it for the polyshape gen fm parameter? Or is that not how it's supposed to work?
Regards,
Jim

(define (strum e)
  (map-channel (lambda (y)
(if (> (mus-location e) (mus-length e)) ; mus-length = dur
    (mus-reset e))     ; start env again (default is to stick at the last value)
(* y (env e)))))

(with-sound (:srate 48000 :channels 1 :play #t)
  (let ((gen (make-polyshape 100.0 :partials (list 1 .5  2 .25  3 .125  4 .125)))
(strum (make-env '(0 0  .25  0.01  .5  0.2 1  0.0) :scaler 1.0 :duration 1 :base .53))
        )
    (do ((i 0 (+ i 1)))
        ((= i 96000))
      (outa i (* .5 (polyshape gen 0.95 (env strum))))
      )))

--------------------
make-pulsed-env, and pulsed-env work fine, however.

(with-sound (:srate 48000 :channels 1 :play #t)
  (let ((gen (make-polyshape 100.0 :partials (list 1 .5  2 .25  3 .125  4 .125)))
        (jsenvel (make-pulsed-env '(0 0  .25  0.01  .5  0.2 1  0.0)  1.0  1.0))
        )
    (do ((i 0 (+ i 1)))
        ((= i 96000))
      (outa i (* .5 (polyshape gen 0.95 (pulsed-env jsenvel))))
      )))

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://cm-mail.stanford.edu/pipermail/cmdist/attachments/20210511/452cef39/attachment.html>


More information about the Cmdist mailing list