[chuck-users] Creating Traditional Instrument Sounds Using OSC (ChucK vs. SuperCollider)...

Ge Wang gewang at CS.Princeton.EDU
Tue Feb 28 00:28:49 EST 2006

Hi Dan,

> What I would like to be able to have these sounds be conventional
> instrument sounds (Bass, Drums, Guitar, Trumpet, Piano, etc). Is there
> a way to achieve this through ChucK, or do I need to use a software
> synth like fluid-synth? I also want to be able to code, execute, and
> modify this live.

There are several ways to achieving this in ChucK (and in SuperCollider
too).  To get more "conventional" instrument sounds:

1. Build them or control an existing STK model.  Most of them are in

     (also see samples in examples/stk/ in the distribution)

There is a sizable update to enhance ChucK's interface for STK unit
generators, coming soon in

2. Especially for Drums and Piano, it might make sense to load
existing samples via sndbuf.  It may also be beneficial to write a
small class for managing voices.

3. We have been planning to add a fluidsynth unit generator into
ChucK, with which one can load sound fonts.  This isn't implemented,
but we hope to do it in the next few weeks.


As for figuring out which language to use (ChucK / SuperCollider / 
that of course depends on your needs and preferences.  Here are some
high-level differences, at least between ChucK and SuperCollider.

SuperCollider has been in development much longer (~10 years) than
ChucK, and is much more mature in terms of class library functions,
number of unit generators, and SC Server is super optimized.  The 
curve for SuperCollider can be pretty steep.  The language is 

ChucK, by comparison, is younger, much less optimized, and has less
pre-made objects and unit generators.  However, the language is designed
such that many functionalities can be directly implemented in the 
ChucK is probably easier to learn, especially if you are coming from a
C++/Java, or in your case, Perl background.  The language is 

ChucK espouses a pretty different way of thinking and controlling sound
synthesis from other computer music languages in that it gives you 
and concurrent control over time.  For example, it directly allows one 
specify time-domain operation/algorithm, at any granularity and in 

If you like, you might give both SuperCollider and ChucK a try.  They 
have many different (and similar) things to offer.  I hope this helps.


More information about the chuck-users mailing list