loss livecode history from the pub
Submitted by f0 on Tue, 2007-07-24 16:32here i've attached the supercollider history file from my performance at the headphones concert at the livecoding festival in sheffield... livecode.access-space.org
it's a bit embarrassing if you study it more carefully. the use of ~pub near the end is a big mistake for instance. i meant ~out and i don't know what i was thinking there...
you can also look at the file '2007-20-20pub.rtf' for the actual document i used. some comments in there didn't make it to the history file as i forgot to evaluate them.
here are also the notes and statistics from my presentation "Live coding practice" in which i talked about my month worth of practising.
june practice sessions
Submitted by f0 on Sun, 2007-06-10 14:28in preparation for the loss livecode festival in sheffield, i'm doing another month of practice. 1 hour/day, start with an empty document, no third-party classes or ugens and then upload the result here.
this time my sparring partner is photographer and artist www.fotokatie.com/katier. she's doing a very nice series of 'star shots'.
in addition to getting my livecoding chops in shape (hopefully), i got commissioned to analyse and present the outcome at the festival. this is a great thing. so the bet with katier provides the pressure, the scheduled talk the deadline for analysis, the upcoming gig the motivation and last the commission pays for one strong coffee at my favourite café each day of the period. what could go wrong?
well, it's summer and i've been working too much as is...
low life
Submitted by f0 on Mon, 2007-04-30 18:38klipp av on flickr
Submitted by f0 on Mon, 2007-04-16 13:01august practice sessions -again
Submitted by f0 on Thu, 2007-04-12 20:28nick has written a nice paper on live coding practice. he discusses some of the issues discovered while doing the practising pact last august.
http://www.informatics.sussex.ac.uk/users/nc81/research/livecodingpractice.pdf
redFingerprint
Submitted by f0 on Thu, 2007-01-18 23:05a different plot for supercollider. though it is actually more useful as an 'artistic' visualizer rather than a serious way to represent data. it works with collections like arrays, envelopes and wavetables. the technique is to translates them to length/angle pairs and then draw a shape from that.



it's distributed via supercollider's package system quarks. all open source.
(update 090511: redFingerprint is now part of the redUniverse quark)
how to install:
download supercollider
Quarks.checkoutAll
Quarks.install("redUniverse")
+recompile
there's also some older code here that does similar drawings...
http://swiki.hfbk-hamburg.de:8888/MusicTechnology/833
data?

and of course it's always more fun when things break. here the same thing with a nice bug...

work with mark: RedUniverse - a simple toolkit
Submitted by f0 on Thu, 2007-01-18 21:56i made a short demo/poster session at the LAM conference 19dec in london. see livealgorithms.org
below is the handout describing the toolkit.


this toolkit is now distributed via supercollider's package system quarks. all open source.
how to install:
download supercollider
Quarks.checkoutAll
Quarks.install("redUniverse")
(if you run OSX and prefer to use SwingOSC over Cocoa gui, you'll need to move the file RedJWindow.sc to the osx folder and recompile.)
RedUniverse - a simple toolkit
Mark d'Inverno & Fredrik Olofsson
This is basically a set of tools for sonification and visualisation of dynamic systems. It lets us build and experiment with systems as they are running. With the help of these tools we can quickly try out ideas around simple audiovisual mappings, as well as code very complex agents with strange behaviours.
The toolkit consists of three basic things... Objects, Worlds and a Universe. Supporting these are additional classes for things like particle systems, genetic algorithms, plotting, audio analysis etc. but preferably many of these functions you will want to code your self as a user.
We have chosen to work in the programming language SuperCollider (www.audiosynth.com) as it provides
tight integration between realtime sound synthesis and graphics. It also allows for minimal classes that are easy to customise and extend. SuperCollider is also open for communication with other programs and it run cross-platform.
default synth hack
Submitted by f0 on Thu, 2007-01-18 17:10i recently implemented something nick collins and i discussed a long time ago (sc2 era - custom event class). it is a 'hack' of the default synth in supercollider. ie the one that many of the help and example files uses. so when you install my class, the default file will be overwritten and all the slightly daft pattern examples will from there on spring into new life.
distributed via supercollider's package system quarks.
how to install:
download supercollider
Quarks.checkoutAll
Quarks.install("redDefault")
+recompile
then run some examples. most of the ones in Streams-Patterns-Events5.help.rtf and Streams-Patterns-Events6.help.rtf work very well. see RedDefault.help.rtf for more info.
(and yes, it is easy to uninstall and get back to the boring default synth)
just to compare - here's first an example taken from a helpfile playing on the default synth...
redDefaultBefore.mp3
and this is the exact same example with my hack installed...
redDefaultAfter.mp3
not only does it create a new synthesiser, it also changes duration, attack/release times, amplitude etc. the pitches are mapped to a diminished chord in a somewhat strange way: the slower the duration - the greater the leap between the notes to quantise to. eg if half or whole notes, only octaves will be heard.
a tiny little white one
Submitted by f0 on Fri, 2006-10-13 13:19this chunk of sc code will create a tiny but not so well behaved audiovisual creature.
(i must admit i stole the title from a.berthling's album on mitek)

a_tiny_little_white_one.mov (32,7mb)
/*a tiny little white one /redFrik 061009*/ /* GUI.cocoa; GUI.swing; */ ( s.waitForBoot{ n= 25; /*number of arms*/ b= {Buffer.alloc(s, 32, 1)}.dup(n); /*length must be power of 2*/ SynthDef(\wormsnd, {|out= 0, bufnum, freq= 60, amp= 0.01, pan= 0| Out.ar(out, Pan2.ar(OscN.ar(bufnum, freq, 0, amp), pan)); }).send(s); }) ( var width= 300, height= 300, freqSpread= 100.rrand(1000).postln, muckProb= 0.0008, muck= 0, i= 0, j= 0, shapes, synths, pnt, w, u, freq, centerX= width/2, centerY= height/2, o= 0.1, frict= 1, lfo= 1, lfoSpeed= 0; w= Window("a tiny little white one", Rect(128, 64, width, height), false); u= UserView(w, Rect(0, 0, width, height)); u.background= Color.black; w.onClose_({synths.do{|x| x.free}}); CmdPeriod.doOnce({w.close}); w.front; shapes= {|x| {1.0.rand}.dup(b[x].numFrames)}.dup(n); /*init shapes*/ synths= {|x| Synth(\wormsnd, [\bufnum, b[x].bufnum, \pan, x/(n-1)*2-1])}.dup(n); u.drawFunc= { shapes.do{|shape, x| /*iterate shapes, x is index*/ var dist; if((muckProb*0.1).coin, {muck= 4.rand}); if(muck>0, { ([ {pnt= Point(x/n*10, x/n*10)}, {pnt= Point(x/n* -10, x/n*10); if(muckProb.coin {muck= 0})}, {pnt= Point(x.rand2, x.rand2); if(muckProb.coin {muck= 0})} ][muck-1]).value; if(i%2000==0, {muck= 0}); }, { pnt= Point(0, 0) }); lfo= (lfo+lfoSpeed).fold(0.05, 1); i= i+1; j= (j+10.rand2).fold(0, shape.size-1); shape.put(j, (shape[j]+o).fold(0.01, 1)); if(muckProb.coin, {
skare - new video online
Submitted by f0 on Wed, 2006-09-27 14:02i recently made my first short video for skare. we like to make things a little bit complicated for ourselves and we also have a hook up on ice, snow and all other variations on cold water.
first - to get some cheap audiovisual correlation - i put an old cd in the freezer for two weeks. then one night i took it out and placed it over the bass element of a speaker. as the piece of plastic slowly adapted to room temperature, i let it vibrate to the deep fat bass found in the track 'To the Other Shore' (released on glacial movements). this was all filmed twice, close up and in nightshot mode.
i then wrote a little max/jitter patch that mixed the two takes, matched it with the audiofile and saved the whole thing to disk. the resulting video is here
screenshot of one of my uglier patches...
