
On 10/16/06, Ge Wang
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 there.
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?
From what Ge described above, being able to send code in real-time,
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. 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]). Mike
Thanks again to Brad for starting the ~ revolution and to Martin for forging ahead!
Best, Ge!
_______________________________________________ chuck-dev mailing list chuck-dev@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)