ChucK Cheat Sheet
ChucK's core ideas in brief — the => 'chuck' operator, advancing time explicitly, unit generators, and concurrency with sporked shreds.
Signal flow & the => operator
SinOsc s => dac;Connect an oscillator to the output440 => s.freq;Set a value (chuck it into freq)0.5 => s.gain;Set the gainSinOsc s => LPF f => dac;Chain through a filterTime (the heart of ChucK)
1::second => now;Advance time by one second500::ms => now;Advance half a second0.25::second => now;Sound only happens as time passesControl flow
while(true) {
440 => s.freq;
0.5::second => now;
}Loop forever, advancing timefor(0 => int i; i < 8; i++) { }Counted loopConcurrency
spork ~ melody();Run a function as a parallel shredme.yield();Let other shreds runUGens & helpers
SinOsc, SawOsc, TriOsc, NoiseCommon oscillators / noiseADSR, LPF, HPF, JCRevEnvelope, filters, reverbStd.mtof(60)MIDI note → frequencyMath.random2(0, 127)Random integer in a rangeChucK — Strongly-timed language for real-time synthesis. · ChucK in the tool directory →