SuperCollider

Aus indiepedia.de
Wechseln zu: Navigation, Suche
Supercollider.png

SuperCollider ist eine textbasierte, dynamische Programmiersprache und Entwicklungsumgebung für Echtzeit-Klangsynthese und Algorithmische Komposition im Rahmen der Computermusik, die 1996 von James McCartney zum erstenmal veröffentlicht wurde. Lizenziert ist sie seit 2002 unter einer GNU General Public License als Freeware. Die aktuelle Version ist 3.10.2 (April 2019).

Client-Server-Modell, Open Sound Control

Seit Version 3 liegt SuperCollider als Client-Server-System mit den beiden Komponenten scsynth (server) und sclang (client) vor, die mittels Open Sound Control (OSC) kommunizieren. Beide liegen in einem Fenster vor. Open Sound Control funktioniert im Grunde wie MIDI, ist aber deutlich schneller und kann über das Internet Echtzeit-Jams ermöglichen. Des öfteren wird das Netzwerkprotokoll als Nachfolger des MIDI-Standards empfohlen.[1][2] Als Internet-Transportprotokoll wird gewöhnlich UDP oder TCP verwendet, eine serielle Schnittstelle kann ebenfalls adressiert werden, es kann also auch Hardware angesteuert werden. Server und Client sind eigenständige Einheiten und derart vernetzt, dass der Client sich über das Internet mit Servern anderer Computer weltweit austauschen kann. Auf diese Weise ist Echtzeitjammen über das Internet möglich.

SuperCollider Synthese-Server (scsynth)

Der Synthese-Server versorgt den Anwender mit Informationen zu den Bausteinen. Die entsprechenden Kürzel können im Editor angeklickt werden und die Informationen im Browser des Servers parallel eingesehen werden – Methoden und Programmierbeispiele inklusive. Alle Anwahlen können Echtzeit gehört werden und werden vom DSP des Computers ausgeführt. Ein Server kann von mehreren Clients verwaltet werden, womit eine Vernetzung auf Art eines Laptoporchesters möglich wird. Der Server kann aufgrund der OSC-Steuerung auch von anderen Programmiersprachen und Programmen adressiert werden. Das Interface reagiert mit ausführlichen Rückmeldungen auf fehlerhafte Eingaben.

SuperCollider Programmiersprache (sclang)

Die Eigenschaften der Programmiersprache: Dynamische Typisierung, automatische Speicherbereinigung, einfache Vererbung, objektorientierte, textbasierte Verarbeitung, sowie funktionale Programmierung. "Its architecture strikes a balance between the needs of realtime computation and the flexibility and simplicity of an abstract language."[3]

"By supporting methods of reflective, conversational, and literate programming, SuperCollider makes it relatively easy to find new sound algorithms and to develop custom software as well as custom frameworks. With regards to domain specific knowledge, it is both general (e.g., it allows to represent properties such as time and pitch in variable degrees of abstraction) and copious of example implementations for specific purposes."[4]

Midi-Synth von Antti Suomalainen

SuperCollider unterstützt Vektorgrafik und ermöglicht so die Konstruktion plattformübergreifender graphischer Benutzeroberflächen (GUIs). Siehe Abbildung rechts.

Baustein-Generatoren (UGens oder Unit Generators)

SuperCollider ist eine Programmiersprache des Paradigmas MUSIC-N. MUSIC-N entstand als Abkömmling in der Folge von MUSIC, eines der ersten Musikprogramme für digitale Computer, das von Max Mathews 1957 vorgestellt wurde. MUSIC-N fasst Entwicklungen aus MUSIC zusammen. Zum Paradigma MUSIC-N werden neben CSound, ChucK und weiteren auch objektbasierte Programmiersprachen, wie Max/MSP und Pure data gezählt. Das bedeutet zunächst, dass die jeweilige Sprache sich an Baustein-Generatoren (sogenannten UGens / unit generators) orientiert, die in SuperCollider mit .ar, .kr oder .ir angezeigt werden. Zur Zeit gibt es etwa 300 Baustein-Generatoren, mittels der Graphen erzeugt werden, Beispiele sind:

Osc.ar, Crackle.ar, Dust.ar, Shaper.ar, Gate.ar, SinOsc.ar, FSinOsc.ar, Blip.ar, Saw.ar, Pulse.ar … (bzw. .kr oder .ir).

.ar, .kr und .ir

.ar bedeutet audio rate, .kr control rate und .ir initialization rate. Die Differenz besteht in der Auflösung der Ereignisse, die der audio rate liegt höher als die der control rate. .ar-Bausteine erzeugen Werte in der Auflösung der Samplerate (zum Beispiel 44.100 Samples pro Sekunde) und werden als Primärbausteine zur Klangsynthese genutzt, die dann durch .kr-Bausteine variiert werden. .ir ist ausschließlich zur Ansteuerung vorgesehen und erzeugt einen Startimpuls. Eine Sammlung von Baustein-Generatoren in SuperCollider findet sich hier:

  • Tour of UGens. Signal Processing in SuperCollider. A Tour of available Unit Generators / Techniques. [6] bei sccode.org

Programmier-Beispiel

Die Bausteine bestimmen, welches Klangereignis oder welche Variation angesprochen und gegebenenfalls durch die im Anschluss eingetragenen Werte ausgeführt wird. So steht SinOsc.ar für einen Sinusoszillator, dessen Tonhöhe als Frequenz eingetragen wird. Beispiel:

x = {SinOsc.ar(440)}.play
x.free

Die zweite Zeile stoppt den Ton. Soll ein Rauschen eingemischt werden, lautete Zeile 1 zum Beispiel:

x = {SinOsc.ar(440)}.play + WhiteNoise.ar(0.01) }.play;

Klangbeispiele

Eli Fieldsteel – Fractus II for Viola and SuperCollider (Demonstration Patch, 2010)

Systemvoraussetzungen, Versionen, Trivia

SuperCollider gibt es für OS X, Windows, Linux und FreeBSD. Es wurde in C, C++ und Objective-C geschrieben[5] und ist auf der Linux-Live-CD pure:dyne vorinstalliert. Die Programmiersprache eignet sich durch die Möglichkeit interaktiver Programmierung, besonders das Client-Server-Modell, auch für Live-Coding.[6]

Einzelnachweise

  1. Artikel Open Sound Control [1] bei der de.wiki
  2. Andreas Zeitler – OSC der grosse Nachfolger von MIDI? (2008) [2] bei delamar
  3. Artikel SuperCollider [3] bei der en.wiki, eingesehen am 14. Dezember 2015
  4. ebd., nach J. Rohrhuber, A. de Campo und Renate Wieser – Algorithms Today. Notes on Language Design for Just in Time Programming. In Proceedings of the International Computer Music Conference (Barcelona, 2005) sowie Scott Wilson, David Cottle und Nick Collins – The SuperCollider Book (MIT, 2011)
  5. Artikel Comparison of audio synthesis environments [4] bei der en.wiki
  6. Artikel Live coding [5] bei der en.wiki

Bildnachweis: Antti Suomainen – GUI based MIDI controllable synthesiser in SuperCollider (24. September 2013) [7] Posting bei Wordpress

Weblinks

  • Homepage SuperCollider Download, Wiki, News und Documents [8] bei supercollider.github.io
  • Homepage SuperCollider. A real time audio synthesis programming language [9] bei audiosynth.com
  • Scott Wilson, David Cottle und Nick Collins – The SuperCollider Book (MIT, 2011) [10] bei amazon.com

Tutorials, Videotutorials

  • SuperCollider, real-time audio synthesis and algorithmic composition. Learning. [11] Material und Links für Anfänger, bei Sourceforge.net
  • SuperCollider: a 60-second intro (2008) [12] bei Youtube
  • Eli Fieldsteel – Playlist SuperCollider Tutorial: 0. Introduction (2013) [13] und 15 weitere Teile, bei Youtube

Wikiseiten

  • SuperCollider swiki [14] bei der HfBK Hamburg
  • Artikel SuperCollider [15] bei der de.wiki
  • Artikel SuperCollider [16] bei der en.wiki
  • Artikel MUSIC-N [17] bei der en.wiki
  • Artikel Unit Generator [18] bei der en.wiki

Weitere

  • Eli Fieldsteel – SuperCollider Mashup Machine Part 1 (2012) [19] Live-Coding-Session mit 3rd-Party-Material bei Youtube. Wer direkt zum Klanggeschehen will, beginnt bei min. 43:08 in Teil 1 und bei min. 6:10 in Teil 2, der die Art und Weise der Dateiintegration und die grafische Benutzeroberfläche vorstellt.
  • Live Looping with Supercollider (2011) [20] bei Youtube
  • Live-coding-performance „Ligeti-Style": SuperCollider Improvisation (2011) [21] bei Youtube

Links im April 2019.