SuperCollider

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Dieser Artikel behandelt die Software. Für weitere Bedeutungen siehe Super Collider.
SuperCollider
Aktuelle Version 3.6.5
(30. April 2013)
Betriebssystem GNU/Linux, Mac OS X, Microsoft Windows
Kategorie Musiksoftware
Lizenz GPL (Freie Software)
supercollider.sf.net

SuperCollider (SC) ist eine Programmierumgebung und Programmiersprache für Echtzeit-Klangsynthese und algorithmische Komposition. Sie wurde seit 1996 von James McCartney entwickelt und im Jahre 2002 vom Autor unter der GNU GPL freigegeben. Seitdem hat sie sich zu einem System weiterentwickelt, das sowohl von Künstlern und Komponisten als auch von Wissenschaftlern in den Bereichen Klang, Musik und Medienkunst eingesetzt wird.

Architektur[Bearbeiten]

Seit Version 3 besteht die Programmierumgebung SuperCollider aus 2 Komponenten: dem Server scsynth und der Sprache bzw. dem Client sclang, die miteinander über das Protokoll Open Sound Control kommunizieren. Die Programmiersprache sclang kombiniert die objektorientierte Struktur von Smalltalk mit Elementen funktionaler Programmierung und einer an C angelehnten Syntax. Der Server scsynth erzeugt und bearbeitet digitale Audiosignale mit Hilfe von aus elementaren Synthesebausteinen (sogenannten UGens) gebildeten Graphen. Da die gesamte externe Steuerung des Servers über das OSC-Protokoll erfolgt, können neben sclang auch andere Programme bzw. Programmierumgebungen mit scsynth kommunizieren und so die Signalverarbeitung steuern.

Beispielcode[Bearbeiten]

// spiele eine Mischung aus Rosa Rauschen und einem Sinuston von 800 Hz
{ SinOsc.ar(800, 0, 0.1) + PinkNoise.ar(0.01) }.play; 
 
// moduliere die Frequenz des Sinustons sowie die Amplitude des Rauschsignals mit einem anderen Sinussignal,
// dessen Frequenz wiederum von der horizontalen Position des Mauszeigers abhaengt
{ 
	var x = SinOsc.ar(MouseX.kr(1, 100));
	SinOsc.ar(300 * x + 800, 0, 0.1) 
	+ 
	PinkNoise.ar(0.1 * x + 0.1) 
}.play; 
 
// eine Schleife über eine Liste: erzeuge eine Collection mit den Produkten aus Indizes und den jeweiligen Werten der Liste
[1, 2, 5, 10, -3].collect { |item, i| item * i }
 
// eine Funktion zur Berechnung der Fakultaet
f = { |x| if(x == 0) { 1 } { f.(x-1) * x } }

Viele weitere Beispiele sind auf den Wiki-Seiten zu finden [1].

unterstützte Betriebssysteme[Bearbeiten]

SC läuft unter GNU/Linux, Mac OS X und Microsoft Windows. Die GNU/Linux-Version kann mit GNU Emacs benutzt werden.

SC ist auch auf der Linux-Live-CD pure:dyne vorinstalliert.

Weblinks[Bearbeiten]