Month: September 2009

hackpact week 4

Ok the third fourth week of hackpact actually started yesterday, but I didn’t think my contribution then warranted a new entry.


Bit of an error with the screencast, see if you can spot the problem. Pretty happy with the sound though. (will take a while to appear due to vimeo’s encoding queue)

I’m musically humbled by my son who has taught himself how to play the guitar and sing the blues. He’s two today (24th), happy birthday Harvey.


Well I made a blueberry birthday cake for young Harvey on the 24th, which is a hacklet at a push, photo when I find the transfer cable. No creations at all on the 25th or 26th, I was away for the weekend and thankfully didn’t get a moment with my laptop. I did record a session last night thought that I’ll upload at some point…

The hackpact has been really good for making me get bored with my software and develop it further. I need some longer term development time now though to play out some of my frustrations I’ve been feeling over the last month. In particular using a command line interface is feeling like a big limitation, I need to express relationships over more than one line. Maybe I can adapt the yi haskell editor for my needs.

Next month I think I’ll switch to making a fixed recording every week. I’ve never really made fixed recordings so should be interesting.

Now I’ve fallen off the hackpact wagon I’m not sure if I’ll be able to totally get back on, particularly as I need to finish my PhD upgrade report by the end of this month. We’ll see..


Hackpact week 3

It’s the third week of the hackpact. A few have fallen by the wayside, others are doing impressively well. Adam is doing great learning supercollider, Sam is cracking away on a diverse range of ideas, Joe has put a lot of himself into his involved hacks, poetry with a smell of solder, Gabor pushing fluxus in wild new directions every day, Scott still soldiering on with ChucK every day, part of the inspiration for the hackpact and now part of it, and Cormac‘s easy sounding but in reality clearly really challenging rule based photography project that he’s tackling with increasing need for imagination. Honorary mention for Dan who threw himself at the project with some ace daily projects before going offline for a bit, hopefully he’ll rejoin us.
I hope I haven’t missed anyone, sorry if I have — let me know.


Another screencast with some good moments and also a couple of bugs found… I realised I forgot to switch off cpu scaling, so there might be more jumps in the recording.


Preparing for the haskell users group talk, so I tried to make some ultra quick demos of features of my pattern language. Failed really, I kept getting distracted at making the patterns sound better rather than demonstrate how they work, so I will likely just do a live demo instead.

The results are on youtube — I’m doing the presentation in google docs, and youtube is the only way of getting videos in there. In fact this is the only way I found of making a presentation with videos in under linux. Video support in openoffice sucks and didn’t work anyway, the html based s5 gets all slow and glitchy with videos in, the video library used in the python based bruce wouldn’t play any video I found, etc, etc…


Got through the haskell users group talk in one piece, happy with it actually. I managed to do some short sub-minute demos for it today which I think made it easier for people to follow, and I think count as today’s hackpact. Here’s the final presentation in full:


Uploaded my current Haskell stuff. Not very useful at all without instructions for how to install and use it which I’ll get to soon in a proper release, but some might be interested to read through the Pattern module at least.

Big shout out to Kassen, while he is behind on documenting his hackpact stuff he assures that he’s still doing daily hacks in the background. Hope to hear more from his side of our acidpact soon.

I’m pretty tired, going to try and make a new screencast tonight nonetheless.. Ah, here you are. Got rid of need for explicitly calling parser by using the overloaded string literals extension, thanks for the tip Ganesh.


Today’s screencast is here, although it’s not all that. No update tomorrow, we’re off to do some live coding at Plymouth Planetarium, documentation will hopefully surface eventually.


Well the planetarium experiment went well, hopefully will turn into a tour. Some documentation to appear sometime soon.


Too tired to make music, so worked on a poster design. Ended up too gloomy, to rework.

[[blue, blue [lightblue lightskyblue lightblue, lightblue lightskyblue lightblue ~] blue, blue], blue lightblue ~, blue]


Hackpact documentation (week 2)

Following on from week 1 of my hackpact hacks, here’s


I had this feeling that a nice visualisation of polyrhythmic structure would be to plot patterns in a spiral. I finally got it to work, and here’s the first few results, rendered with cairo in Haskell:

{red blue orange purple, yellow brown pink}

[red blue orange purple, yellow brown pink]

{orange tomato, blue ~ purple ~ ~}

{orange yellow, blue green ~}

Where colours co-occur, they’re mixed, thanks to the lovely Haskell Colour library.

I was surprised by the rhythmic gestalt these give. In retrospect I realise that Mick Grierson would not be surprised at all by this, and neither would John Whitney. Now I’m a spiral lover too.

I’ll release the code along with the rest of my pattern library next week.


Played around with spiral rendering, but came to conclusion that the spiral mapping itself was beautiful and not the patterns I’m trying to visualise, because just about anything you put into it looks good.  Although you can see the pattern length in the spiral, if you mix different pattern lengths into a polyrhythm, it’s very difficult to perceive more than one pattern length, one comes across more strongly than the others.  Perhaps a peano weave would be better, but I think I’ve gone far enough with this, back to music tomorrow.


My lack of headphones bit me so I couldn’t make music tonight.  Instead I played with context free art, which I’ve been meaning to do for years.  No great masterpieces, but healthy, grammatically constrained fun.



Ok back to music finally.  I’m going to try to add a function to my pattern library before making a quick screencast of the first time I use it to make music patterns.  This time I made a ‘breakbeat’ function, which takes a pattern of integers and uses it to trigger playback positions in another pattern.  I also found a bug which breaks things at the end.  I could add exception handling so these bugs wouldn’t break everying, but hey, it’s good to livecode on the edge.


Added a couple of things:

  • stuff to my ghci interface so I can plug one active pattern into the composition of another.
  • an ‘onsets’ function that turns a pattern into a pattern of bools, true for the first beat of a phrase.

Used these things together to apply functions to effects that are responsive to the sound sample pattern. It takes me a while to work out how to do it, and the end result isn’t particularly musical. I’ll be playing around with this some more, but in the spirit of showing the first time I use a function to make sound, here’s the screencast.

(or it will be once the vimeo flash conversion finishes)


Implemented and played around with bpm patterns. Also implemented simple ‘tween’ pattern for linearly tweening between two values over a given period.

Screencast of first uses here and

Like yesterday’s, not particularly musical…


Did some good live coding practice for Sunday’s gig in Plymouth with Dave. We didn’t record anything though. Instead for hackpact I made a swirly processing patch while thinking about pattern visualisation.


Knowledge futures

I’m very happy to be putting together the evening programme for knowledge futures on October 16th at Goldsmiths. Excitingly, my superheroes Leafcutter John, Finn Peters and Yee-King and Spacedog UK (Sarah Angliss + co) have agreed to play. I’m going to play too as part of slub.

Details are coming together over here. Buy your ticket early!

Hackpact documentation (week 1)

I started my hackpact month last night with this screencast, playing around with time offsets and functors.  I think the audio gets *slightly* ahead of the video, probably due to some jack-audio drops.  If for some reason you want a better quality version you can look at the source mpeg-4 file on

I was happy with applying a sine wave to the time offsets, giving a bit of swing to the rhythm.  Combining that with a straight (pure 0.0) pattern grounded it nicely I think, so the rhythm was played straight on top of shifting it forward and backward in time.  (although this is live I can play sounds slightly in the past due to a 0.2 second system-wide artificial latency).  I also played with a simple chorus effect by having lots of offsets on top of one another amongst other stuff.

Not sure I like the end result of this as music or not, I’ll listen with fresh ears before I decide on that.  But then I think the point of my hackpact is to practice live coding rather than doing great music so that doesn’t really matter.


For this one I used nekobee, it took quite a while to get haskell talking to it over DSSI (a nice way to talk to synths over OSC, but it turns out it uses a vaguely non-standard tag to send MIDI bytes).  I quite like the results although there’s much to tweak and I didn’t get the levels quite right.


Baas and bleeps… Trying to focus on the music rather than the language for this one. UPDATE: I screwed up the panning, and have updated the below with a mono version. The original stereo version is over here might be better quality due to the transcoding but the panning is annoying.

[Rather than choke up my loyal reader’s RSS feed I’ll add further day’s hacks here on this post rather than make new ones, unless I do something major (like actually release some software).]


Oops, forgot to update the blog with this yesterday. Here’s some minimal acid from the 4th.


Getting harder to make myself make a screencast but I’m enjoying it more and more. Tried going extra slow for this one. Switched to vimeo hosting due to transcoding problems.


Tried going extra fast after the previous extra slow offering. Some nice bits towards the start but didn’t manage to keep it up really.


A low point today, have some pattern visualisation stuff I wanted to get done but didn’t manage to get it working tonight. Polar coordinates too much for my tired brain. I did manage to make a start on slides for my haskell user group talk next week though, very much a work in progress but any feedback much appreciated. Not a hack but bah.