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, etwa SinOsc 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 --probe listet 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).