On Fri, 2008-06-06 at 07:19 -0700, Bill Schottstaedt wrote: > I just realized it's almost trivial to define a with-sound that > puts each note in a separate thread:
Hey, that's very interesting... any tests in a multicore machine for many notes spread into a few threads? Does this translate into linux threads or is this internal to scheme? -- Fernando > (defmacro with-threaded-sound (args . body) > `(with-sound-helper (lambda () > (for-each > (lambda (expr) > (call-with-new-thread > (lambda () > (eval expr (current-module))))) > ',body) > (let ((us (current-thread))) > (for-each > (lambda (expr) > (if (and (not (thread-exited? expr)) > (not (eq? expr us))) > (join-thread expr))) > (all-threads)))) > ,@args)) > > (with-threaded-sound () > (fm-violin 0 1 440 .1) > (fm-violin 0 1 660 .1)) > > > Now to get rid of that "eval"... > > > > _______________________________________________ > Cmdist mailing list > [email protected] > http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist _______________________________________________ Cmdist mailing list [email protected] http://ccrma-mail.stanford.edu/mailman/listinfo/cmdist
