ChucK ist eine 2003 an der Stanford University von Ge Wang entwickelte, stark zeitbasierte (strongly-timed) Programmiersprache für Echtzeit-Klangsynthese, Komposition und Performance. Sie läuft auf Linux, macOS, Windows und iOS und ist bekannt für präzise Timing-Kontrolle und On-the-fly-Programmierung.
Erste Schritte
Ein ChucK-Programm (.ck) wird über die Kommandozeile mit dem gleichnamigen Befehl gestartet. Die verfügbaren Audio- und MIDI-Geräte zeigt:
chuck --probe
chuck meine_komposition.ck
Wichtige Konzepte
- Shred – eine leichtgewichtige, unabhängig geplante Code-Einheit; ChucK-Programme laufen als mehrere Shreds parallel ohne Unterbrechung (non-preemptive).
- ChucK-Operator – das Pfeil-Paar
=>verbindet Werte und Signale, etwaSinOsc s => dac;. - Spork – startet einen neuen Shred aus laufendem Code heraus, zum Beispiel
spork ~ meinShred();. - Time – die Sprache versteht Zeit als eigenen Typ (
now => dur), dadurch ist Timing exakt und deterministisch.
Praxis-Tipps
- Der Befehl
chuck --probelistet Geräte mit Nummern, die man dann im Programm referenzieren kann. - Shreds lassen sich zur Laufzeit hinzufügen und entfernen — ideal für Live-Coding-Performances.
- ChucK wurde unter anderem für die Kreativ-Plattform Chunity (Unity-Integration) genutzt.
Verwandte Grundlagen: SuperCollider (klassische Client-Server-Architektur) und Sonic Pi (Ruby-basierte Live-Coding-Umgebung).