This blog has moved

This blog is now at http://www.celesteh.com/blog

Saturday 25 September 2010

Thor Magnusson: ixi lang: A SuperCollider Parasite for Live Coding

Summer project: impromptu client for scserver. Start the server, the fire up impromptu, which is a live coding environment. Start it's server and tell it to talk to scserver. It's a different way of making music. To stop a function, you re-define it to make errors.

Impromptu 2.5 is being released in a few days as will Thor's library on the ixi website.

Now for the main presentation. He has a logn standing interest in making constrained system, for example, using ixi quarks. These are very cool. He has very elaborate guis, modelling predator/prey relationships to control step sequencers. His research shows that people enjoy constraints as a way to explore content.

He's showing a video taking the pis out of laptop performances, which is funny. How to deal with laptop music: VJing provides visuals. NIME - physical interface controllers. or Live Coding. Otherwise, it's people sitting behind laptops.

ixi lang is an interpreted language that can rewrite it's own code in real time that has the the power to access sc

It takes a maximum of 5 seconds of coding to make noise. Easy for non programmers t use. Understandable for the audience. The system has constraints as it has easy features.

Affordances and constraints are two sides of the same coin. "Affordance" is how something is perceived as being usable.

composing an instrument has both affordances and constrains.

ixi lang live coding window. There are 3 modes.


agent1   -> xylo[1  5  3  2]

spaces are silences, numbers are notes. instrument is xylophone

scale minor
agent1   -> xylo[1  5  3  2] + 12

in minor an octave higher.

"xylo" is a synthdef name

SynthDef(\berlin{ . . . .}).add;


scale minor
agent1   -> berlin[1  5  3  2] + 12/2

Can add any pbind-ready synthdef. multiply and divide change speed


agent1   -> xylo[1  5  3  2]
agent1))

increases amplitude of agent1

percussive mode

ringo -> |t b w b |

can do crazy pattern things

letters correspond to synthdefs, there is a default library

sos -> grill[2 3 5 3 ]

Using pitch shifted samples

Concrete mode

ss -> nully{ 1  3 4  6 6 7 8 0    }

0 is silence

tying it together

rit -> | t  t  t ttt  |
ss ->|ttt t t t     |
sso -> | t t t t    t   t|^482846

>shift ss 1

shake ss
up ss
yoyo ss 
doze ss

future 4:12 >> shake ss

group ringo -> rit ss sso

shake ringo

(um, wow. I think I will try to teach this, if I can get a handle on it fast enough.)

ss -> | o   x  o  x|
xxox -> | osdi f si b b i|!12

xxox >> reverb

mel -> wood[1 5 2 3 ]
xo -> glass[32 5 35 46 3] +12

xo >> distort >> techno

shake mel

snapshot -> sn1

snapshop sn1

future 3:4 >> snapshot

scalepush hungarianMinor


suicide 20:5

The suicide function gives it an a percentage chance of crashing every b time

The satisfaction survey results of users is very high. Some people found it too rigid and others thought it was too difficult. Survey feedback is 1% of users.

www.ixi-audio.net

This makes live coding faster and understandable. You can put regular sc code in the ixi lang docs. good educational tool. can be used by children. successful experiment for a very high level live coding project.

You can easily add audio plugins. The lang is very extendable.

1 comment:

Anonymous said...

Is it possible to set effects using future >> ?

Commission Music

Commission Music
Bespoke Noise!!