Home | Lehre | Videos | Texte | Vorträge | Software | Person | Impressum, Datenschutzerklärung | Blog RSS

Csound, Nyquist, ChucK

Stand: 2012-01-01

Drei extrem verschiedene Beispiele für musikorientierte Programmiersprachen.

Csound

Csound von Barry Vercoe (seit 1995) und später John ffitch basiert auf Music 11, ebenfalls von Barry Vercoe, und damit auf Music-N von Max Matthews (1957). Man kann sagen, dass die MPEG-4 Structured Audio Orchestra Language (SAOL) von Csound abstammt.

Es gibt seit 2005 ein Csound Journal.

Zunächst für Offline-Betrieb, inzwischen Echtzeit-Audio-Ein- und -Ausgabe und MIDI/OSC-Ein- und Ausgabe, ebenso z.B. als VST-Modul oder als Funktionsblock in Pure Data.

Zunächst Sprache für Kommandozeilen-Compiler, inzwischen mit grafischen Entwicklungsumgebungen, zum Beispiel:

Wesentliche Teile der Sprache (jetzt mit HTML-artigen Tags alles in einer .csd-Datei), Demo in QuteCsound, siehe csd-Dateien:

Drei Datenraten, je nach Anfangsbuchstabe einer Variablen oder Funktion:

Weitere Funktionen/Eigenschaften, siehe csd-Dateien: Folgenoten, Werte kopieren, Ramping, Physical modeling, logarithmische Angaben von Tonhöhe und Amplitude, Vibrato linear und exponentiell, Reihenfolge in Score egal, Polyphonie.

Nyquist

Nyquist (Roger Dannenberg, seit 1989) ist eine Musik-/Audio-Programmiersprache im Stil von Lisp, also mit der Schreibweise (+ a b) statt a + b und (f 1 2 3) statt f(1, 2, 3). Seit einigen Jahren gibt es auch eine Entwicklungsumgebung und eine alternative Eingabesprache namens SAL.

Nyquist ist eher zur interaktiven Eingabe von Befehlen gedacht, nicht zum Compilieren und nicht für Echtzeitanwendungen.

Wesentlicher Fundort: Plug-ins für Audacity. Ein paar Blicke in den Code der Plug-ins dort.

Beispiele am Nyquist-Prompt von Audacity:

(mult s 0.5)

(mult s (pwl 0.1 1.0 0.2 0.1 0.5))

(lp s (pwl 0.2 2000.0 0.4 1000.0 1.0))

ChucK

ChucK (Ge Wang, seit 2003) ist eine Sprache für Live-Performances (MIDI, OSC). Wesentliche Kennzeichen:

Beispiel siehe .ck-Datei. Diskussion weiterer Beispiele in miniAudicle