Description #
ChucK is a compiled, strongly-timed programming language designed specifically for real-time audio synthesis, music creation, and sound design. It offers precise timing control, concurrency, and an intuitive syntax for live audio programming.
History #
ChucK was developed in the early 2000s by Ge Wang and Perry Cook at Princeton University and later at Stanford’s CCRMA lab. It was designed to fill the gap between expressive audio synthesis and real-time performance. ChucK introduced the concept of a virtual time system that allows precise control of sound events and concurrency without complex threading models.
Hello World Code #
<<< "Hello, World!" >>>;
How to Run #
Option 1: Online
https://chuck.stanford.edu/webchuck/
(Use the WebChucK browser-based playground)
Option 2: Local
- Install ChucK from https://chuck.stanford.edu/
Save as hello.ck
and run:
chuck hello.ck
Key Concepts #
- Syntax style: C-style with special audio timing operators
- Typing discipline: Static and strong
- Execution model: Compiled to bytecode, then executed in a virtual machine
- Common use cases: Live coding, electronic music, audio synthesis, teaching DSP
- Toolchain or ecosystem: ChucK CLI, miniAudicle IDE, WebChucK
- Paradigms supported: Imperative, concurrent, real-time audio
- Compilation details: Compiles source to ChucK bytecode for real-time scheduling
- Strengths or quirks: Built-in audio unit graph, time control with
now
, on-the-fly code modification - Libraries/frameworks: Built-in UGens (unit generators) for synthesis, MIDI, FFT
- Community/adoption: Active in academic and electronic music communities
Try It Online #
https://chuck.stanford.edu/webchuck
Fun Facts #
ChucK allows musicians to modify code while it runs — making it a favorite for live-coding performances and audio installations. Its concept of now
lets users write time-aware code as easily as writing loops.