[chuck-dev] ChucK plugin for PD

Mike McGonagle mjmogo at gmail.com
Tue Oct 17 09:32:33 EDT 2006

On 10/16/06, Ge Wang <gewang at cs.princeton.edu> wrote:
> Hi Mike and all!

Hello Ge,
> > After using both ChucK and PD, I have noticed that PD is far more
> > efficient at generating audio. I have created two simple patches in
> > both PD and ChucK that were just sine wave generator. The patch in
> > Chuck could only handle 20 voices before it started to generate an
> > audible sputter, while the same patch in PD was able to handle almost
> > 200 voices before there was any audible degradation of the sound. I am
> > working on a G5 Mac Laptop (not sure of the clock speed)
> ChucK is pretty abysmally slow, but it should handle quite a bit more
> than 20 sine waves on a powerbook?  On my 1ghz G4 12" powerbook, I get
> about 60 sine waves before things go south, and over 100 on a 1.5ghz
> 12" powerbook.  What is the code you are using to test this?  What
> version of chuck?  Also, the SinOsc in ChucK is also not the best thing
> to benchmark, since it generates the sine wave inefficiently.  Though
> by that logic, not many things in ChucK are good to benchmark, huh huh.

I will have to dig up my code, but from what I remember it was a
SinOsc => Env => Panner => dac. I was also having trouble
understanding how to use the Env object (if that is the correct name,
it is the envelope from Perry's library). I am sure that I don't have
the latest and greatest Chuck, so I am sure that things have improved

> One of the these days, after we get stuff more "right", we'll think
> about optimization.
> One thing I'd love to see in chuck~ is the option to route code from
> various chuck~ instances to the same chuck virtual machine.  I guess
> this is a feature request to both Brad and Martin?  With this
> capability, it'd be possible to leverage chuck's concurrent programming
> model to synchronize different pieces of code.  Alternately, each
> chuck~ could be its own virtual machine (this is currently the case in
> chuck~ for Max, I think), and the programmer would be able to send
> different code in real-time to chuck~ via an inlet.  Thoughts?

One thing that might be nice would be to see a couple of screen shots
of how these things are connecting up in Max. I was wondering if it
would be possible to use ChucK as a sort of scripting language that
controls various PD objects. Otherwise it just seems kind of odd to
have a self-contained ChucK running inside PD, and if that is the
case, why not just run ChucK by itself.

>From what Ge described above, being able to send code in real-time,
that sounds like the idea is to use PD as a gui/ide interface only. It
would be nice if you could leverage the strengths of both ChucK
(writing procedural/logic code) and PD (building a gui and interfacing
with audio/midi/video[with GEM]).


> Thanks again to Brad for starting the ~ revolution and to Martin for
> forging ahead!
> Best,
> Ge!
> _______________________________________________
> chuck-dev mailing list
> chuck-dev at lists.cs.princeton.edu
> https://lists.cs.princeton.edu/mailman/listinfo/chuck-dev

Help the Environment, Plant a Bush back in Texas!

"I place economy among the first and most important republican
virtues, and public debt as the greatest of the dangers to be feared.
To preserve our independence, we must not let our rulers load us with
perpetual debt."
-- Thomas Jefferson, third US president, architect and author (1743-1826)

"Give Peace a Chance" -- John Lennon (9 October 1940 – 8 December 1980)

More information about the chuck-dev mailing list