ChucK
ChucK is a strongly timed, concurrent programming language designed for real-time sound synthesis, composition, and live coding musical performance.
Definition
ChucK is a strongly timed, concurrent programming language designed for real-time sound synthesis, composition, and live coding musical performance.
Overview
ChucK was developed at Princeton University by Ge Wang and Perry Cook, with the first version released in 2003, as a research language exploring how programming language design could directly support the demands of real-time audio synthesis and live musical performance. Its defining feature is 'strongly timed' programming: time is a first-class, precisely controllable construct in the language, expressed through the ChucK operator '=>' ('chuck') that connects unit generators, variables, and time advances, letting a programmer specify audio events and control changes down to the sample level rather than relying on an external scheduler with coarser granularity. ChucK is also inherently concurrent, supporting multiple simultaneously running 'shreds' (its term for lightweight cooperative processes) that can be added, removed, and modified while the program is running without stopping the audio engine — a capability that makes it a foundational tool for 'live coding,' the practice of writing and editing code in real time as a musical performance in front of an audience. This on-the-fly programming model, combined with ChucK's unit-generator-based synthesis engine (oscillators, filters, delays, and other audio building blocks that can be patched together dynamically), made it one of the pioneering languages in the algorithmic and live-coding music scenes. ChucK is the engine behind the Princeton-developed laptop orchestra ensembles (PLOrk, and its descendants), and it underlies commercial and educational tools such as the Auracle collaborative sound project and parts of the Smule mobile app ecosystem (co-founded by Ge Wang), including apps like Ocarina and Magic Piano. It remains widely used in academic computer music programs and by live coders as both a serious composition tool and a teaching vehicle for concepts in digital signal processing, concurrency, and precise timing in software.
Key Features
- Strongly timed execution model with sample-accurate control over time
- The distinctive '=>' ChucK operator for connecting unit generators and controlling flow
- Concurrent 'shreds' that can be added, removed, or modified while audio keeps running
- Designed explicitly to support live coding and on-the-fly musical performance
- Built-in library of unit generators for synthesis, filtering, and audio effects
- Cross-platform, open-source implementation (Mac, Windows, Linux)
- Widely used in academic computer music and laptop orchestra ensembles