Description #
ChucK is a real-time, strongly-timed audio programming language for sound synthesis, composition, and performance, offering sample-level timing and concurrency.
History #
ChucK was developed in 2003 by Ge Wang and Perry Cook at Princeton University and later Stanford CCRMA. It was created for the academic and artistic exploration of audio programming, emphasizing precision and live coding.
Hello World Code #
<<< "Hello, World!" >>>;
How to Run #
Option 1: Online
https://chuck.stanford.edu/doc/editor/
Option 2: Local
Install from https://chuck.stanford.edu/
Run a file:
chuck hello.ck
Or interactively via:
chuck --shell
Key Concepts #
- Real-time sound synthesis and music programming
- Strongly-timed: precise control over timing and concurrency
- Interpreted and compiled on-the-fly
- Supports concurrent shreds (lightweight processes)
- High-level audio constructs: oscillators, filters, effects
- Operator overloading for timing (
=> now
) - Object-oriented and imperative features
- Live coding and interactive REPL support
- Targets artists, composers, researchers
- Works with MIDI, OSC, and real-time audio devices
Try It Online #
https://chuck.stanford.edu/doc/editor
Fun Facts #
- ChucK is used in the Princeton Laptop Orchestra (PLOrk) and Stanford Laptop Orchestra (SLOrk).
- It inspired the miniAudicle, a custom IDE designed for real-time music performance.
- Timing is part of the language: time is a type in ChucK.