/Ionio-liveCode-workshop

workshop material

Primary LanguageSuperCollider

Live Coding with SuperCollider

Creating sound with SuperCollider can be very rewarding using its ready made unit generators to build novel instruments and sound generators, but what happens when one wants to improvise the structure of these instruments and change them on the fly.

Live coding as a musical performance paradigm

Dynamic or interactive programming, commonly known as live coding (in electronic music, and digital arts) is a performance paradigm that allows the performer(s) to create an instrument on the fly instead of interacting with it by altering its control inputs or parameters. That is, to improvise an algorithm and change its state while at run. Examples and recipes for live coding in SuperCollider, can be found at this repository (always take care of the volume while changing the algorithms in real time). For more information about live coding as performance paradigm see this Toplap, the home of live coding.

Examples:

Define an Ndef, a synthesis proxy!

Ndef(\x).fadeTime = 2;
Ndef(\x).play;
Ndef(\x, {SinOsc.ar(\freq.kr(120.0, 0.3)) * 0.1 });
Ndef(\x, {SinOsc.ar([\freq.kr(120.0), \freq.kr + 2.01]) / 2 * 0.1});
Ndef(\x, {LFSaw.ar([\freq.kr(120.0), \freq.kr + 2.01]) / 2 * 0.1});
Ndef(\x, {LFSaw.ar([\freq.kr(120.0), \freq.kr + 2.01]) / 2 * Linen.kr(Impulse.kr(\speed.kr(1)))});
// Make an Ndef mixer to control the node definitions via a GUI
NdefMixer(s);

For other conveniences see this repository and the JITLib Overview help file in SuperCollider

Resources and acknowledgements

  • Download SuperCollider (latest stable version here).
  • JITLib mainly created by Julian Rohrhuber, with contributions by Alberto De Campo.
  • Chapter on live Coding from my PhD thesis including historical and recent practices (groups, software, etc.).
  • Collective live coding and networked music performance.
  • Utopia, a system to communicate via ad-hoc network download here