Skip to content

Latest commit

 

History

History
204 lines (176 loc) · 8.67 KB

index.md

File metadata and controls

204 lines (176 loc) · 8.67 KB
layout title tagline group
front
SuperCollider
Real time algorithmic music composition environment.
index

SuperCollider is a programming language for real time audio synthesis and algorithmic composition.

<p>The language interpreter runs in a cross platform IDE (OS X/Linux/Windows) and communicates via Open Sound Control with one or more synthesis servers.
The SuperCollider synthesis server runs in a separate process or even on a separate machine so it is ideal for realtime networked music.</p>

<p>SuperCollider was developed by James McCartney and originally released in 1996.  He released it under the terms of the GNU General Public License in 2002 when he joined the Apple Core Audio team.  It is now maintained and developed by an active and enthusiastic community. It is used by musicians, scientists, and artists working with sound.</p>

<ul class="callstoaction">
    <li><a href="/download.html">Download it now</a></li>
    <li><a href="/examples/audio-examples.html">Listen to some sounds</a></li>
</ul>

Examples

{% highlight javascript %} // modulate a sine frequency and a noise amplitude with another sine // whose frequency depends on the horizontal mouse pointer position { var x = SinOsc.ar(MouseX.kr(1, 100)); SinOsc.ar(300 * x + 800, 0, 0.1) + PinkNoise.ar(0.1 * x + 0.1) }.play; {% endhighlight %}

{% highlight javascript %} // Simple synth definition using the Atari2600 UGen: ( SynthDef(\atari2600, {|out= 0, gate= 1, tone0= 5, tone1= 8, freq0= 10, freq1= 20, amp= 1, pan= 0| var e, z; e= EnvGen.kr(Env.asr(0.01, amp, 0.05), gate, doneAction:2); z= Atari2600.ar(tone0, tone1, freq0, freq1, 15, 15); Out.ar(out, Pan2.ar(z*e, pan)); }).store )

// And a pattern to play it: ( Pbind( \instrument, \atari2600, \dur, Pseq([0.25, 0.25, 0.25, 0.45], inf), \amp, 0.8, \tone0, Pseq([Pseq([2, 5], 32), Pseq([3, 5], 32)], inf), \tone1, 14, \freq0, Pseq([Pbrown(28, 31, 1, 32), Pbrown(23, 26, 3, 32)], inf), \freq1, Pseq([Pn(10, 16), Pn(11, 16)], inf) ).play ) {% endhighlight %}

{% include screenshots.md %}

Features

Language - sclang
  • Single inheritance object-oriented and functional language
  • Similar to Smalltalk or Ruby with syntax similar to C or Javascript
  • Dynamically typed
  • Constant time message lookup and real time garbage collection
  • Functions as first class objects
  • Closures are lexical, and scope is both lexical and dynamic
  • Coroutines
  • List comprehensions
  • Partial application (explicit currying)
  • Tail call optimization
  • Class extensions
  • Quarks package manager for code sharing
Server - scsynth
  • High quality accurate and efficient audio engine
  • Fully adjustable sample rate (192k+) and block size
  • 32 bit float signal chain
  • Sampling buffers use 64 bit float
  • Fast and fluid control rate modulation
  • Communicates via Open Sound Control - TCP/UDP network communication
  • Hundreds of UGens (unit generators)
  • Simple ANSI C plugin API
  • Hundreds more community contributed UGens
  • Supports any number of input and output channels, ideal for massively multichannel setups
  • Multi-processor support using the Supernova server implementation
IDE / Application
  • Qt based cross platform Integrated Development Environment
  • Qt powered GUI framework for building rich interfaces
{% include download.md %}

Mailing list

The community is very active and helpful, the center of activity. Please do drop by.

mailing list info

Tutorials

Resources

<h4>News and announcements</h4>
<p>{% for post in site.posts limit: 7 %}
       <h6><a href="{{ post.url }}">{{ post.title }}</a></h6>
     {% endfor %}
    <a href="/archive.html">more...</a></p>


<div class="book">
<h4>The SuperCollider book on MIT Press</h4>
<a href="https://mitpress.mit.edu/books/supercollider-book"><img src="/images/MIT-supercollider-book.jpg" alt="MIT SuperCollider Book" width="60%" height="auto"/></a>
<blockquote>The SuperCollider Book is the essential reference to this powerful and flexible language, offering students and professionals a collection of tutorials, essays, and projects. With contributions from top academics, artists, and technologists that cover topics at levels from the introductory to the specialized, it is a valuable sourcebook both for beginners and for advanced users.</blockquote>
<a href="http://supercolliderbook.net/">supercolliderbook.net</a>
</div>

Other scsynth clients

SuperCollider language is the reference spec, but there are many other client languages that use the scsynth server.

{% comment %} the cliche fork me ribbon Fork us on GitHub {% endcomment %}