[CM] scheme, larger structures

andersvi at notam02.no andersvi at notam02.no
Tue Aug 16 06:20:50 PDT 2016


Hi James.

>>>>> "J" == James Hearon writes:

    J> I gave up and tried concatenating with-sound blocks instead, and
    J> it works after a fashion but the creation of separate audio files
    J> means those still have to be stitched together at some point.  At
    J> least this is getting closer to what I was after.

What do you mean stitch together?  Do you want something like:

  (with-sound (options)
    (calls-for-first-section)
    (calls-for-second-section))

?

You can take the body of each of your two with-sound calls and place
within one single with-sound:

(let ((var '())
      (aaa (make-heap '(360 800.345 1200 600)))			;freq
      (bbb (make-cycle '(1 1 .75 .25 .20 .15 .10 .10 .10 .10))) ;dur
      (ccc (make-heap '(241 840.345 1000 960 500)))		;freq
      (ddd (make-cycle '(.2 1.25 .75 .25 .20 .15 .10 .10 .50 .10 .50))) ;dur
      )
  (with-sound (:reverb nrev :output "Test1.wav" :srate 48000 :channels 2   
		       :header-type mus-riff :statistics #t :play #t)

	      ;; BODY OF CALL 1:

	      (let ((i 0))
		(do ((k 0 (+ k 1)))  
		    ((>= k 25))
		  (let ((v (next bbb)))
		    (examp1 i v (next aaa) .3)
		    (set! i (+ (round-off i 2) v)))))

	      ;; BODY OF CALL 2:

	      (let ((j 1))
		(do ((k 0 (+ k 1)))  
		    ((>= k 25))
		  (let ((v (next ddd)))
		    (examp2 j v (next ccc) .1)
		    (set! j (+ (round-off j 2) v)))))))

I'm 100% sure what you want to do is possible.  If the above doesn't
come close, please try to be more explicit as to what you want to
achieve, perhaps detail in words.

Cheers,

-anders



More information about the Cmdist mailing list