SuperCollider

from Wikipedia, the free encyclopedia
SuperCollider

SuperCollider logo.svg
Basic data

Publishing year 1996
Current  version 3.11.0
( March 10, 2020 )
operating system FreeBSD , Linux , macOS , Microsoft Windows
category Music software
License GPL 3.0+ ( Free Software )
supercollider.github.io

SuperCollider ( SC ) is an integrated development environment and programming language for real-time sound synthesis and algorithmic composition . It has been developed by James McCartney since 1996 and released by the author under the GNU GPL in 2002 . Since then, it has evolved into a system used by both artists and composers and scholars in the fields of sound, music and media art.

architecture

From version 3 the programming environment SuperCollider consists of 2 components: the server scsynth and the language or client sclang , which communicate with each other via the Open Sound Control protocol . The sclang programming language combines the object-oriented structure of Smalltalk with elements of functional programming and a C- based syntax. The server scsynth generates and processes digital audio signals with the help of graphs made up of elementary synthesis components (so-called UGens ) . Since the entire external control of the server takes place via the OSC protocol, not only sclang but also other programs or programming environments can communicate with scsynth and thus control the signal processing.

Sample code

// 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 } }

// «Pan Sonic emulation - Katodivaihe - lahetys» - Miguel Negrão
(
{
	var a, b, c, d, n, e, f,  out;

	a = Impulse.ar(8)*1.5;

	b = WhiteNoise.ar * Env([1.0,1.0,0.0],[0.01,0.01],\step).ar(0, Impulse.ar(1 )) ;
	b = FreeVerb.ar(b, 0.5, 0.4)*2.5;

	c = SinOsc.ar(40) * Env.perc(0.01,0.2).ar(0, TDuty.ar(Dseq([1/4,1/2,1/8,1/8],inf)));
	5.do{ c = (c.distort + c)*0.75};
	c = c * 1.5;

	d = LPF.ar(Saw.ar([20,47]).sum , XLine.ar(4000,200,0.5)) * Env.perc.ar(0, Impulse.ar(1/16)) * 0.5;
	d = (GVerb.ar( d , roomsize:10, revtime:6) * 200).clip(-1.0,1.0) * 0.3;

	n = 12;
	e = ( Saw.ar( 40*(1..n) * ({ LFNoise1.ar(0.1).range(1,1.01) } ! n) ) *
		({ LFNoise1.ar(0.1).range(0.0,1.0) }!n)).sum * 10;
	e = CombC.ar(e, 0.1, 0.1, 4) + e;
	e = e.tanh * 0.3 * SinOsc.ar(0.05).range(0.5,1.0);
	e = e.dup;
	e = e * SinOsc.ar(0.03).range(0.2,1.0) * 0.5;

	f = Blip.ar(100) * Blip.ar(100) * Env([0.0,0.0,1.0],[8,8],[\step,\linear,\step])
	.ar(0, Impulse.ar(1/16)) * 2 ;

	out = ((a + b + c + f) ! 2) + d + e;
	out = out * 0.2

}.play
)

Many more examples can be found on the wiki pages.

Supported Operating Systems

SC runs on GNU / Linux , macOS and Windows . The GNU / Linux version can be used with GNU Emacs .

SC is also preinstalled on the Linux live CD pure: dyne .

literature

  • Scott Wilson, David Cottle, Nick Collins: The SuperCollider Book. MIT Press Cambridge / London 2011. ISBN 978-0-262-23269-2

Web links

Individual evidence

  1. Release 3.11.0 . March 10, 2020 (accessed March 11, 2020).
  2. Ports: index of / head / audio / supercollider . (accessed on June 29, 2019).
  3. a b c SuperCollider Download . (accessed on June 29, 2019).
  4. http://swiki.hfbk-hamburg.de/MusicTechnology/6