Skip to main content

33 posts tagged with "livecode"

View All Tags

First public livecode

Last night I stumbled into my first public outing of some livecoding I've been working on in SuperCollider. The context was an improvisation night called In Tandem run by Bruce Wallace at the Academy of Music and Sound in Glasgow. I hadn't intended to play, as I really don't feel I'm ready yet, but I had my laptop and cables with me, they had a projector, so…!

I was jamming along with three other people, on bass, guitar and analog synth. It all went by in a blur, but everyone there seemed to think what I was doing was ok – mostly making grooves out of a random collection of drum samples, but running some algorithmically chosen chords as well.

The code is below: this is my screen exactly as I left it at the end of the night, mistakes and all. Although Toplap say 'show us your screens', they don't say 'show us your code', but… it seems the right thing to do.

// the end!
// they still going
// if you're curious, this is SuperCollider
// musci programming language
// writing code live is called, er, livecoding
// i'm just starting out
"/Users/jsimon/Music/SuperCollider Recordings/hitzamples/".openOS;

(
s.waitForBoot{
Pdef.all.clear; // clear things out
~hitzpath="/Users/jsimon/Music/SuperCollider Recordings/hitzamples/"; // a folder of samples
~hbufs = (~hitzpath ++ "*.aiff").pathMatch.collect({ |i| Buffer.read(s, i)}); // samples into an array of buffers
t = TempoClock(140/60).permanent_(true); // tempo 140 bpm
u = TempoClock(140/60 * 2/3).permanent_(true); // tempo 140 bpm * 2/3
SynthDef(\bf, {|out=0 buf=0 amp=0.1 freq=261.6255653006|
var sig = PlayBuf.ar(2, buf, BufRateScale.kr(buf) * freq/60.midicps, doneAction:2);
Out.ar(out, sig * amp)
}).add; // this whole chunk defines a synth patch that plays samples
};

// Pdef.all.clear;
//"/Users/jsimon/Music/SuperCollider Recordings/".openOS;
// t.sync(140/60, 16);
)

(instrument: \bf, \buf: ~hbufs.choose).play; // play an event using the synth called \bf
// pick a randoms sample from the array
(instrument: \bf, \buf: ~z).play;
~z = ~hbufs.choose;

t.sync(140/60, 32); // gradual tempo changes possible
u.sync(140/60 * 2/3, 16);
v.sync(140/60 * 5/3, 16);

Pbindef(\x, \instrument, \bf, \buf, ~hbufs.choose).play(t).quant_(4);
Pbindef(\y, \instrument, \bf, \buf, ~hbufs.choose).play(u).quant_(4);
Pbindef(\z, \instrument, \bf, \buf, ~hbufs.choose).play(v).quant_(4);
Pbindef(\z, \instrument, \bf, \buf, ~hbufs.choose).play(v).quant_(4);
~g1 = {~hbufs.choose}!16; // choose sixteen samples at random = one bar full
~g2 = {~hbufs.choose}!16;
Pbindef(\x, \buf, Pseq(~g1, inf)); // play those sixteen samples chosen
Pbindef(\x, \buf, Pseq(~g2, inf)); // different sixteen, so, a variation.
Pbindef(\x, \dur, 0.5);
~d1 = {2.rand/10}!16;
~d2 = {2.0.rand/10}!16;
Pbindef(\x, \amp, Pseq(~d1, inf));
Pbindef(\x, \amp, 0.2);
Pbindef(\x, \note, Prand((-36..0), inf));
Pbindef(\x, \note, Pseq({(-24..0).choose}!16, inf)); // pitch each sample down by random amount
Pbindef(\x, \note, nil);
Pbindef(\x).resume;
Pbindef(\x).pause;
Pbindef(\z).pause;
Pbindef(\y).resume;

// hmm. blx diminished, that's just C major!
// was using \degree instead of \note, better sounds a bit more like messiaen now :)
~c = {var x = Scale.diminished2.degrees.scramble.keep(4).sort; x.insert(1,(x.removeAt(1)-12))};
// hexMajor thing also works beautifully now!
~c = {var x = Scale.hexMajor6.degrees.scramble.keep(4).sort; x.insert(1,(x.removeAt(1)-12))};

// next question might be changing \note, \dur and \root in a coordinated way
(
Pbindef(\k, \note, Pstutter(Prand([5,7,9,11,13]*2, inf), Pfunc(~c)),
\dur, 0.5,
\root, 3, // best option for feeling of key change
\amp, Prand((2..5)/70,inf)
).play(t);
)
Pbindef(\k).pause;
Pbindef(\k).pause;


Patchin' at the Hague

I've been at the Koninklijk Conservatorium in Den Haag for the last couple of days, working with a group of academics from all over Europe on the METRIC project – 'Modernizing European Higher Music Education through Improvisation'. (If anyone can tell me in which language that acronym works, I'd love to know!)

While I'm here, I've been amusing myself with some work on a simple SuperCollider patch to pitchshift live audio, that I intend to use as part of my own improvisational practice. Particularly tickled to be able to say in future that I 'worked on this patch at the Institute of Sonology in The Hague', which is strictly speaking… more or less true!

Also brings fond memories of another piece of software associated with this institution, ACToolbox, that I used quite extensively in the past, although not so much now.

Let's hear it for koncon!

Here's some test code, part of a larger project:

// Institute of Sonology, Den Haag, 18 Mar 2016 :)
(
SynthDef(\pitchin, { | trans = 0, gate = 1 |
var sig, env, ratio;
sig = SoundIn.ar([0,1]);
ratio = trans.midiratio;
sig = PitchShift.ar(sig, pitchRatio: ratio, timeDispersion: 0.1);
env = EnvGen.kr(Env.adsr, gate, doneAction: 2);
Out.ar(0, sig * env);
}).add;
)
x = Synth(\pitchin);
x.set(\trans, 12); // can sound a bit comby, try timeDispersion about half grainsize
x.set(\trans, -12);
x.set(\trans, 7);
x.set(\trans, -7);
x.free;

Live Coding and the Body

I've just spent a very stimulating weekend, combining an algorave in Brighton with the Live Coding and the Body symposium at Sussex University. A packed weekend: I didn't keep notes of exactly who and what and when, so this is a rather chaotic reflection!

The algorave was in a clubby sort of room above a pub. Code from each performer's laptop was projected on a black behind them, while some livecoded visuals in IBNIZ were projected on an adjacent wall. A good atmosphere, although I found the gig sometimes painfully loud, especially with those very forward and raw sounds which you sometimes get from coded synths.

The first set I caught was Chris Kiefer, working in SuperCollider (the old, pre-IDE version, looked like). This was excellent: very approachable danceable grooves, with a nice line in slowly changing fx. After that, Aneurin Barker Snook did a set in Tidal. It's the first time I've seen this Haskell-based tool: to me it seemed quite firmly targetted at algorave, rather than a more general approach to coding music performance. A very harsh set, if I remember correctly, but still musical and interesting.

From this point on, my memory is a little blurred. A very abstract and glitchy set from Norah Lorway: not sure what tool she was using as she did not have time to plug into the projector. Also Charlie Roberts playing his own web-based Gibber language, with a nice line in livecoding the ascii text. Oh, and… Mico Rex – bonkers! In a good way: cardboard boxes, SC code, and exuberant singing.

The symposium programme turned out to be a little different from the published one: once again, this will be a bit disorganised as I didn't keep accurate notes. A fascinating range of disciplines and interests in the room, including people working in music, fine art, architecture, dance, analog synthesis, social anthropology, and more. Some of the highlights I recall:

  • Marije Baalman gave a very, very cool performance of her piece 'Wezen', a tour-de-force of live SuperCollider code combined with sensor gloves.
  • Renick Bell's presentation sparked off quite a lively debate, bringing to the table his reinterpretation of the pragmatic philosophy of John Dewey. Some deep questioning of his philosophical approaches ensued, led by David Berry in particular.
  • David Ogborn gave us two treats. The first was a multi-layered coding piece, with Pbindef's in SuperCollider being generated by another piece of SC code and programatically 'typed' onto the screen, leaving David free to add in a solo part on electric guitar. On day two, he talked us through a stimulating range of people, ideas and references as a follow up.
  • Andrew R Brown talking about a spectrum of approaches to controlling algorithms, from text to gestural controllers, and points in between: also a nice demonstration of his own rig, using impromputu combined with a simple bank of sliders and switches on an iPad mini.
  • Alex McLean shared some of his work in collaboration with dancer Kate Sicchio.
  • Andrew Duff gave a lively and fun talk/demo on the modular synth scene, liberally illustrated by humorous gifs from the Muff Wiggler forums. A lot of gear porn here, really, including mention of the Pismo: ok, that's it, I'm hanging on to mine, one day I'll get it up and running again!
  • Cecile Chevalier drew some comparisons between livecoding and the work of Jackson Pollock, although as we unpicked that, perhaps a slightly problematic parallel…

Overall, a very pleasant long weekend in the very pleasant seaside town of Brighton. The Sussex University campus was very comfortable, as was the wonderful Dutch bike I hired from Amsterdammers.

Other things I learned about:

Final braindump, below an archive of all the #lcatb tweets (some of the attributions here probably wrong, collected this list in a rather hacky way…):

Great response - mod syths @yaxu suggests that we don't react against the digital but instead software, which is 'generally awful' #lcatb berrydm 12:18pm via Twitter for iPhone

Andrew Duff showing his own personal "Orac" and modular synths at Live Coding and the Body #lcatb http://pic.twitter.com/RTq06khkYC thormagnusson Jul 05, 2:06pm via iOS

Here @allthesixes666 presents a graph that should resonate with many computer musicians' experience #lcatb http://pic.twitter.com/qE3aFcqBYT Retweeted by _sshaw and 4 others thormagnusson 11:52am via iOS

#lcatb Afternoon kicking-off with @berrydm & Nick Rothwell coding as collaborative fist class discipline http://pic.twitter.com/DtGJ7tB68v Retweeted by musicSussex and 5 others thormagnusson 12:08pm via iOS

Live coding the modular synths #lcatb http://pic.twitter.com/msuYv3o5vr Retweeted by musicSussex and 3 others thormagnusson 12:08pm via iOS

@ad_tpim Does 'lowres' modular syth demo at #lcatb symposium @SussexUni http://instagram.com/p/qG3rrrKD16/ thormagnusson 11:52am via iOS

Andrew Duff's great modular synth setup at Live Coding and the Body seminar. Cool! #lcatb http://pic.twitter.com/5e7M3Bk7Wp pauwly 12:01pm via Twitter for Android

Andrew Duff @allthesixes666 blames his modular addiction on close friend @RussellHaswell #lcatb http://pic.twitter.com/e14heqdtKE thormagnusson 11:52am via iOS

#lcatb Pismo, very nice, I've already got one :) pauwly 11:43am via Twitter for Android

Great talk by David Ogborn d0kt0r0.net #Livecoding #acousmonium #spacialisation #emodiment #lcatb http://pic.twitter.com/CM9eLPhBFi tedthetrumpet 11:35am via Hootsuite

http://ow.ly/i/68GoK David Ogborn offering some leads to follow #lcatb renick 11:21am via Twitter for Android

@berrydm wish an AI were running traffic on the way to #lcatb today... Show Conversation pauwly 11:00am via Twitter for Android

Open questions about control through gesticulation and code in live performance #lcatb http://pic.twitter.com/LuQZVgmsL9 lukechurch 10:55am via TweetDeck

Watching Andrew Brown merge gestural control via an iPad and a text programming language at #lcatb, we should add this to #DynamoBIM soon. tedthetrumpet 10:51am via Hootsuite

#lcatb Andrew R Brown reflecting on the balance between textual and gestural control berrydm 10:44am via Twitter for iPhone

Day 2- Live Coding and the Body on a Sunday (!?!) with Andrew Brown (gestural controllers & code description) #lcatb http://pic.twitter.com/AuCgcdjeNC TanyaMGoncalves 10:43am via Twitter for Android

#LCATB - sad that today is my last day of confrences #untilnexttime http://pic.twitter.com/E4TsL7KpoY tedthetrumpet 9:28am via Hootsuite

Day 2 of Livecoding and the Body starts soon: great to be here, meeting interesting people, and learning stuff http://livecodenetwork.org/body/ #lcatb TanyaMGoncalves Jul 05, 3:47pm via Twitter for Android

@d0kt0r0 performing live #LCATB http://pic.twitter.com/qRegzVZdhh Retweeted by d0kt0r0 and 1 others yaxu 12:31am via Twitter Web Client

Super discussions at the live coding at the body symposium, check out the #LCATB hashtag. Retweeted by supersg559 yaxu 12:31am via Twitter Web Client

Soviet synthesizer bridged occultism and electronic music — will be of interest to #lcatb http://boingboing.net/2012/06/27/syn… thormagnusson Jul 05, 2:06pm via iOS

#lcatb Afternoon kicking-off with @berrydm & Nick Rothwell coding as collaborative fist class discipline http://pic.twitter.com/DtGJ7tB68v Retweeted by giovamusic and 5 others TanyaMGoncalves Jul 05, 5:10pm via Twitter for Android

@yaxu @yaxuprime Alex McLean #LCATB http:// pic.twitter.com/k99dG29Rcf shelly_knotts Jul 05, 5:10pm via Twitter Web Client

nice to have a few controversial comments - referring to live coding as a gendered practice is fairly problematic #lcatb tedthetrumpet Jul 05, 5:04pm via Hootsuite

#lcatb interesting discussion around livecoding compared with the work of Jackson Pollock cappelnord Jul 05, 4:58pm via Twitter Web Client

#lcatb people: Thanks for tweeting! kunstwissen Jul 05, 4:36pm via Twitter Web Client

Micorex ask: why should a live coder be on stage? after presenting some of their practice: hitting buttons, singing, dancing… moving #lcatb Retweeted by sicchio and 1 others danny_bright Jul 05, 4:28pm via Twitter for iPhone

Awesome - cardboard boxes full of wires and joysticks - surely the best controllers #lcatb http://pic.twitter.com/RbPS0HWbjm Retweeted by livecodenet kunstwissen Jul 05, 4:40pm via Twitter Web Client

@kunstwissen some responses:challenging context of performance, sharing experience, put emphasis on coding as a cultural practice #lcatb Retweeted by livecodenet kunstwissen Jul 05, 4:36pm via Twitter Web Client

@d0kt0r0 performs with a multi channel live coding demon which is //not evil #lcatb http://pic.twitter.com/ykZZ2mXne0 Retweeted by tedthetrumpet and 1 others kunstwissen Jul 05, 4:36pm via Twitter Web Client

A brilliant presentation by @cassieldotcom on code and choreography. #lcatb http://pic.twitter.com/b7gFQNJJN9 Retweeted by livecodenet and 6 others shelly_knotts Jul 05, 2:33pm via Twitter Web Client

next symposium: 'Live Coding and Socks'? ;) #lcatb Retweeted by livecodenet pauwly Jul 05, 3:00pm via Twitter for Android

We're flying now - forget Deleuze #lcatb Retweeted by livecodenet pauwly Jul 05, 2:39pm via Twitter for Android

Hester Reeve - Why might we choose to use the body live? The audience as witness and not consumer. #lcatb http://pic.twitter.com/J607tF57lE Retweeted by livecodenet and 1 others berrydm Jul 05, 3:46pm via Twitter for iPhone

Next Marije Baalman live coding a set #lcatb http://marijebaalman.eu http://pic.twitter.com/7bpQtKBNYk Retweeted by livecodenet TanyaMGoncalves Jul 05, 3:47pm via Twitter for Android

#lcatb David Ogborn performs - #guitar meets #SuperCollider #generative #code http://pic.twitter.com/HYZjf8YTCH Retweeted by livecodenet and 1 others danny_bright Jul 05, 4:15pm via Twitter for iPhone

Lots of interesting people, talks, presentations and performances so far at #lcatb @musicSussex sicchio Jul 05, 3:36pm via Twitter for iPhone

Performance #2 Marije Baalman http://marijebaalman.eu - making the code sweat! #lcatb http://pic.twitter.com/HJkM9EtNDO Retweeted by livecodenet and 1 others pauwly Jul 05, 4:09pm via Twitter for Android

@d0kt0r0 performs with a multi channel live coding demon which is //not evil #lcatb http://pic.twitter.com/ykZZ2mXne0 Retweeted by shelly_knotts and 1 others TanyaMGoncalves Jul 05, 3:47pm via Twitter for Android

@d0kt0r0 performing live #LCATB http://pic.twitter.com/qRegzVZdhh 2 retweets berrydm Jul 05, 3:46pm via Twitter for iPhone

David Ogborn playing guitar & live coding set - interesting use of live generated code #lcatb d0kt0r0.net http://pic.twitter.com/skVRCI1AcX sicchio Jul 05, 3:36pm via Twitter for iPhone

Trying to keep up with Live Coding and the Body tweets #lcatb 1 retweets tedthetrumpet Jul 05, 3:31pm via Hootsuite

#lcatb surrounded by all these coders, I should probably just *ask* someone why my Pbindef won't .play until I .stop it :) thormagnusson Jul 05, 2:06pm via iOS

Hester Reeve - Why might we choose to use the body live? The audience as witness and not consumer. #lcatb http://pic.twitter.com/J607tF57lE Retweeted by berrydm and 1 others pauwly Jul 05, 2:39pm via Twitter for Android

A brilliant presentation by @cassieldotcom on code and choreography. #lcatb http://pic.twitter.com/b7gFQNJJN9 Retweeted by readywriting and 6 others thormagnusson Jul 05, 2:06pm via iOS

A very provocative slide #lcatb http://pic.twitter.com/3C86R3jig6 Retweeted by livecodenet TanyaMGoncalves Jul 05, 1:49pm via Twitter for Android

Chats about #livecoding, I'm having a little too much fun right now. #LCATB http://pic.twitter.com/bvjctMorDH Retweeted by livecodenet pauwly Jul 05, 1:52pm via Twitter for Android

Here is the programme for the conference Live Coding and the Body 2014 #lcatb http://livecodenetwork.org/body/ Retweeted by goldsmif and 2 others tedthetrumpet Jul 05, 12:14pm via Hootsuite

#lcatb Renick Bell is trying to get the body *out* of performance (!?) Retweeted by livecodenet tedthetrumpet Jul 05, 12:14pm via Hootsuite

Now we have Renick Bell on pragmatic aesthetics ad live coding #lcatb http://renickbell.net/doku.php Retweeted by livecodenet berrydm Jul 05, 11:00am via iOS

Heideggerian phenomenology might give some useful notions for conceptualisation of live coding practice see http://beingintheworldmovie.com #lcatb Retweeted by livecodenet berrydm Jul 05, 11:54am via Twitter for iPhone

@livecodenet new discipline love coding? #lcatb Retweeted by livecodenet berrydm Jul 05, 11:48am via Twitter for iPhone

“@_TheTerminator_: @berrydm I am a cybernetic organism. Living tissue over a metal endoskeleton.” #lcatb Show Conversation kaoskorobase Jul 05, 11:45am via Twitter for iPad

I warned you.. @_TheTerminator_: @berrydm Skynet became self-aware at 2:14am Eastern time, August 29. #lcatb Show Conversation pauwly Jul 05, 11:38am via Twitter for Android

Now discussing livecoding blind & connecting machine directly to brain function..its a little after 11am ;D #lcatb http://pic.twitter.com/EH3lbJqNJb Retweeted by livecodenet pauwly Jul 05, 11:38am via Twitter for Android

So @thormagnusson outlines his scary brain control live coding ideas. Skynet will soon be here via ixi lang http://ixi-audio.net/ixilang/ #lcatb berrydm Jul 05, 11:24am via Twitter for iPhone

Live coding and contextual computing - interesting possibilities for new frameworks for creativity and sonic arts #lcatb livecodenet Jul 05, 11:22am via Twitter for Android

Marije Baalman providing analysis of love coding interaction loop. Wonders about live coding with eyes closed #lcatb http://pic.twitter.com/2AAPW6L6dl thormagnusson Jul 05, 11:01am via Twitter Web Client

A fantastic group of people have convened in the Creativity Zone at Sussex to discuss Live Coding and the Body #lcatb // @livecodenet Retweeted by livecodenet and 6 others berrydm Jul 05, 11:15am via Twitter for iPhone

How obduracy of the computer can be used to feedback electromagnetic waves into music & sound- Laptop Music (Reuss) - v. Cybernetic #lcatb TanyaMGoncalves Jul 05, 11:06am via Twitter for Android

#LCATB http://pic.twitter.com/VyS5fNmbHm berrydm Jul 05, 11:00am via iOS

Thanks for prompting hashtag @berrydm ;D Here we go, going to be great! #lcatb berrydm Jul 05, 11:03am via Twitter for iPhone

First speaker is Marije Baalman #lcatb http://marijebaalman.eu thormagnusson Jul 05, 11:01am via Twitter Web Client

"Michel [Waisvisz] was only interested in code if he could make it sweat" (Sally-Jane Norman) #lcatb tedthetrumpet Jul 05, 11:02am via Hootsuite

#lcatb so far I've learned how to pronounce 'NIME' and 'Gibber' tedthetrumpet Jul 05, 11:01am via Hootsuite

Sally Jane Norman introduces the first panel #lcatb http://pic.twitter.com/wlrKhgS6hz Retweeted by thormagnusson berrydm Jul 05, 10:58am via Twitter for iPhone

We have a hashtag for the Live Coding and the Body conference #lcatb @SussexUni Retweeted by thormagnusson berrydm Jul 05, 10:59am via Twitter for iPhone