Hi James. The beauty of the pattern-streams is they are 'streams', embodying a pattern (eg. a 'heap' in the above example) together with a promise to deliver the next item whenever you need it.
Typically you set up a generator and store a pointer to that, just like you've done: (define aaa (make-heap '(160 600.345 1000 400))) After that, (next aaa) will return the next item from aaa anytime you want one. Using a slightly modified version of your example, you could do something like: (let ((aaa (make-heap '(160 600.345 1000 400)))) ;set up a stream (with-sound (:output "MyTest.wav" :srate 48000 :channels 2 :header-type mus-riff :statistics #t) (do ((st 0 (+ st 0.25))) ((>= st 2)) (examp1 st 0.25 (next aaa) ; next item from aaa 0.5 48000)))) You'll find a general doc about Ricks patterns here: http://commonmusic.sourceforge.net/cm/res/doc/cm.html#patterns Many files included with CMs docs, esp. "doc/patterns1.scm" and "doc/patterns2.scm" - provide examples of setting up patterns and using these. -anders _______________________________________________ Cmdist mailing list Cmdist@ccrma.stanford.edu https://cm-mail.stanford.edu/mailman/listinfo/cmdist