3 ms·
ChucK is pretty awesome if you're into audio programming. The syntax is infinitely cleaner than CSound or SuperCollider and I find writing real code more effec
by wheels 18y ago
ChucK is pretty awesome if you're into audio programming. The syntax is infinitely cleaner than CSound or SuperCollider and I find writing real code more effective than trying to do visual programming with MAX and friends. I love the model for time advancement in multiple "shreds".
The only sad thing is that it's not really managed to make the leap to a community project. It's still mostly a Princeton Sound Lab / Ge Wang (previously there, now at Stanford) project and I'm uncertain, well, sadly, skeptical, that it will ever really fully mature. It's still got some rough edges and there's not been very little progress on it in the year and a half that I've been using it. The couple of times I've submitted patches they've been ignored.
I've written a bunch of useful boilerplate classes and a preprocessor for it to allow includes, if anyone's interested. (These have also been posted to the chuck-users list.)
- yan 18y agoSorry to sound like a complete amateur, but what can sound programming achieve? Is it more than just sequencing samples or transforming input with code? Can it create samples? If so, is there any decent documentation on this for the beginner?
- wheels 18y agoThere's a tutorial here: http://chuck.cs.princeton.edu/doc/learn/tutorial.html http://chuck.cs.princeton.edu/doc/learn/tutorial.html These days synthesizers, samplers and whatnot are naturally just software. If you want to have fine-grained control of how synthesis, sampling or other sound manipulation is done, it's often useful to have a programming environment specifically made for that. The competitors that I mentioned to ChucK in my last comment are the best known environments for such. I personally use ChucK mostly to process MIDI instructions and reroute them to a separate synthesizer or to send control signals to a sequencer. For instance, in one case I wanted to play a pattern of notes at an increasing tempo stretched to the track's tempo using a specific function of time so that the notes would be in synch / out of synch with the original in a predictable pattern. Doing that was reasonably easy to hook up with ChucK.
- acgourley 18y agoCool - what are the main use cases? I mean, looking at the common kinds of things people would create with ChucK, is it much better than the alternative tools, or just better for the people who have programming oriented minds?
- wheels 18y agoWell, it's used for music, so, i.e. composing a piece of music where you wanted to have fine grained control over the synthesis, timing or sampling. The alternatives are still basically programming, just done in a visual environment rather than in code. Here's an example in Max: http://developer.kde.org/~wheeler/images/polysynth-jmax.png http://developer.kde.org/~wheeler/images/polysynth-jmax.png And the same in ChucK: http://developer.kde.org/~wheeler/files/polysynth.ck http://developer.kde.org/~wheeler/files/polysynth.ck There are other more concrete examples mentioned in some of my posts here. (Didn't post the article, but I've been one of the more active people on the ChucK mailing list for a long while now, so it was a surprise to see it turn up here.)