Category: misc

Pattern and decoration

I finally took some time to watch the video recordings of the AlgoMech Symposium on Dancing and Braiding, which I co-organised but couldn’t attend, because I was running around co-organising the rest of the Algomech festival at the time. I was struck by Berit Greinke asking the question “What more can repeat patterns do?” in the second talk in this panel shared with the Kate Sicchio and chaired by Victoria Mitchell. Later in response to a perceptive point from an unseen audience member (please shout if it’s you!) Berit points out that repeat patterns haven’t been in favour in textile design, being dismissed as “decorative” (see 53m30s). As an outsider, I found this surprising, isn’t textiles all about pattern? But it’s also the case in classical music, where music and pattern seem synonymous, but accusing a composer of making patterns would be extremely insulting. In a fantastic blog post Andrew Hugill notes that it “.. implies that you have nothing original to say and fall back on mechanical formulae.” It’s super interesting to me to see “mechanical formulae” as pejorative, which I can feel even though I run a whole festival celebrating algorithmic and mechanical movement!

Both Berit and Andrew are making the same point – that the word pattern means different things in different fields. But in a way it seems it isn’t taken seriously by the highbrow in any field. Andrew points out that designers talk about “depatterning” as important – you start with a pattern in order to get away from it. Berit is implying that once you link meanings of pattern across two or more fields, you get to see how it is misunderstood. You then see pattern as active structure, that is, after all, all around us.

I’m also reminded of Dave Griffiths demonstrating his incredible Fluxus live coding environment many years ago at an event in Rotterdam, with a recursive unfolding form of a fern-like structure, a standard Fluxus demo that just takes a couple of lines. A media design theorist in the audience gave a withering response by pointing out that the animated visual results were ‘decorative’. I suppose he partly meant that this technical demo wasn’t high minded conceptual art (which shouldn’t be surprising, introductory, technical demos rarely are), but I think there is something here about the rejection of fractals and other patterns because they come from an identifiable procedure. It’s as though if you can tell how something was made, then it is worthless. Running counter to this view, Dave’s work always has the principles of openness in its foundations..

I think that from the outside, almost anyone would argue that the fields of textiles and music are all about pattern. But from the inside, composers, textile design academics and media theorists alike reject pattern as decorative, and therefore besides the point and theoretically worthless. This is a disciplinary blindness. We have to rise above these fields to really see pattern for what it is – active structures of making, that allow us to reach beyond our imaginations.

Time spirals

I’ve long thought about time in Tidal as a spiral – where cycles develop over time. I don’t think I’ve really made the connection to vinyl before though. Alexandra posted a DJ battle between D-Styles and Qbert to fb, which lead me to watch this from D-Styles:

The whole thing is great but the one-step back two-steps forward bit from around 1m15s reminded me a lot of shifting patterns in Tidal. I think seeing this repeated gliding happening on a slower scale has really opened up the complexities of turntablism as a whole for me.

It’s also inspiring because it helps me see Tidal’s limitations. Tidal has a spiral timeline which you can manipulate, but not in the same way. When I’ve tried scratching in the past it’s super difficult, I don’t know anything about it really but it feels like you’re constantly managing the state of the record.. It’s one thing to scratch the record and totally another to recover from the needle ending up in a different point in the timeline. I could never work it out by myself.

Tidal doesn’t suffer from this problem because there is no state – you don’t move time, you jump between different manipulations of time. For example if you reverse time, it’s not like moving backwards from where you are. Instead you jump to a different reality when time was always reversed. This is clearer with e.g. slowing down time. If you halve time you might play half a cycle, but then if you double time Tidal won’t continue from halfway through the cycle.. It’ll act as if time always was doubled, and therefore continue from the start of a cycle some way into the future. In terms of a turntable, if you add slow 2 to a pattern, you’re not doing something like moving the pitch slider down, you’re doing something more like swapping the record with another one with the music recorded slower, and putting the needle on the same place as the original.. It’ll sound slower, but you’ll have jumped to a different part of the track. It’s hard to imagine DJing under these circumstances..

Watching this video it’s clear this ‘problem’ of state isn’t a problem at all, but fundamental to the music. It would be amazing if you could do something like this in Tidal – not slow down a pattern, but slow down the timeline.. I.e. add the ability to pattern changes to time, rather than jump around the timeline. I’ll have to think about this, it could be something easy to implement that I just have never thought about..


I’ve been making a video every day this month as part of ‘#jamuary’, got as far of the 12th so far, hoping to get the full set. The youtube playlist is above, and I’m also uploading to the Internet Archive.

Mini tour

I’m off on a minitour this week, linking up Bilbao, Barcelona and Paris by train:

Weds 6th Nov Bilbao – Concert at Azkuna Zentroa
Thurs 7th Nov Barcelona – Algorave @ Hangar (free!)
Thurs 7th+ Fri 8th Nov Barcelona – TidalCycles workshop @ Hangar
Sat 9th Nov Paris – NĂ˜ LIVE CODING MEETUP

Looking forward !

Ojack in the lab

I was happy to host Olivia Jack in the slaboratory (my studio in Sheffield) a couple of weeks ago, between the Live Code Summerschool and workshops at Diversityfest in Rotherham Show. Olivia is the creator of Hydra, a web-based system taking over a good portion of the live coding VJ world with feedback patterns heavily inspired by analogue video synthesis techniques. We had some time for collaboration, and recorded a couple of the things we made. Olivia worked some of her experiments in reading pixel data into kind of pattern generating machines, which she send to my laptop over the OSC protocol so I could sonify them:

There’s also some subtle audio input into the above patch, creating a feedback loop. This felt like a really nice a/v collaboration. I’ve worked with a lot of VJs and other visual artists, and this was the first time I was really looking at visual work while still focused on the code and sound. We tried a range of things but found the above minimalism approach worked great, getting to the point where it was hardly possible to edit code any more because it was so trance-inducing.

We used a HDMI capture card to combine the a/v on my laptop for the recording, which meant I had a window showing Olivia’s desktop on my screen, next to my code. This simple technological tweak helped a surprising amount. Before this I didn’t know it was possible to collaborate with a visualist on this level, because my usual focussed code+sound feedback loop is so damn engrossing. Lots to think about.

The above collab was a bit less minimal, but we tried a lot of things along the way including sampling pixels in circles, and came back to good ol’ sixteen step sequencing on three levels, mapping from brightness to audio filtering in quite a direct way. A lot of fun and the possibilities really open up when Olivia starts mixing in some Hydra patterns to mess with video.

One experiment we didn’t manage to film was using tidal.pegjs by Charlie Roberts and Mariana Pachon Puentes. It’s an implementation of Tidal’s mini-notation for polyrhythmic sequences, and although it’s still a little bit buggy (if not matching with Tidal’s behaviour is a bug) but I think has loads of potential for enabling collaboration through shared metre.

By this I mean sharing underlying a single pattern or sequence between live coders, where anyone can edit it at any time. Rather than playing the sequence directly, each person could use it as a base for pattern transformation, shifting it, doubling it up, making it interfere with other sequences / patterns and so on.. But underlying everything would be this metrical structure. The magic would then come when someone changes that underlying pattern – everything would change at once, hopefully with a perceivable relationship in terms of changing complexity, tactus/tatum and so on. A super simple idea but I think it’d be a lot of fun..

Anyway it was great to find some time to collaborate with Olivia on this, and hopefully will have some outcomes in performance when we’re next in the same city..

This is also something I want to do a lot more of. In this past I’ve organised a lot of algoraves etc where friends have travelled to perform but when I’ve hardly had a chance to talk to them let alone collaborate. So let me know if you’re passing through!

Hack Circus podcast

I had a nice chat with the amazing Leila Johnston recently, and she put it on the internet ! We talked about live coding, weaving and building communities. You can listen on the Hack Circus podcast website or on Apple iplayer, Spotify or playerFM, where you should definitely click subscribe.

Leila’s things are always amazing by the way, check out the Daily Leila, and all the other things. She’ll be talking about some of her AI projects in Sheffield on 12th October, at an event I’m putting together as part of No Bounds festival, more on that very soon..

Summer school performances

The livecode summerschool a few weeks back was a huge success I thought. We had around 40 people in Sheffield, learning Foxdot and Hydra from their creators Ryan and Olivia, and learning Tidal from me and Lucy Cheesman, with the students smashing it with really great performances at the end, far beyond my expectations.

Judging by the feedback, the Tidal workshop went really well (well, all three did), with Lucy reportedly being a better teacher but backed up by my viewpoints as Tidal creator. We spent some time working up a modular worksheet-based approach, with focus on how to perform as well as the technical side of language learning, which I think went really well, and has started me thinking again about the possibility about building them up into something like a Tidal ‘book’. Lets see!

The bit of the summer school that made it out to the evening Peak District excursion!

Ten years of TidalCycles

I started working on musical patterns in Haskell in 2006 (see this old blog post).

But only really shared work on what was to become TidalCycles in 2009 (see Patterns in Haskell and Haskell Hack

So I guess TidalCycles is now 10 years old. Happy birthday!

So it’s nice that I’ve just posted a fresh insight I just had into the way Tidal combines patterns, over on the PENELOPE blog. Pure functional pattern is the gift that keeps giving, looking forward to many more years of insights with this thing.


It was so great working with hmurd + getting two rooms of corsica filled with amazing a/v + great audience! We proved it’s possible to fill a two-roomed event in a top-notch venue with this live coding stuff, and pay everyone almost half-decently (including ourselves!).

It was also time consuming and stressful, and left no time to develop the CCAIFOOD link-up between CCAI and hellocatfood. I also feel I need to explore new ideas and in the process get some forever projects completed.

So I’m going to try to take a moratorium on algorave organisation for a while. Will still be organising some other activities – running the live code summer school, working with no bounds fest on algorave stuff (but with artist development and more diffused through their programme), and hopefully working with a Roma girls group on bringing live coding to a festival in Rotherham.. But focused on artistic development and community building rather than big algoraves (although starting advanced planning for algomech #4 already..).

I have a kind of addiction to event organisation but now I just feel I need more time to focus on my own arts research. If anyone else wants to do algoraves in Sheffield (or elsewhere) then I’m very happy to share tips + resources though! I’ll have some new projects that I could propose too :)

Live code summer school + chill out spaces

We’re doing a weekend Live Code Summer School in August/Sept 2019, with tracks for Hydra (taught by its creator Olivia Jack), Foxdot (taught by its creator Ryan Kirkbride) and TidalCycles (taught by its creator me). Over 40 signups already, it’s going to be intense! There’s still some spaces left for the Hydra and Foxdot tracks, full info here.

On the registration form, I asked people how we can improve access for them, and quite a few asked for a quiet area to relax. In some cases this is probably for a diagnosed condition, but it made me think of my experience in Japan, where during Kumihimo braiding tuition, I was invited to have a nap on a tatami. Joanne and Lucy said that part way through a workshop they were giving on that trip, the participants would just go and lie down for a bit.

This seems such a nice thing to do, and the relationship between resting/sleeping and learning is well known in psychology fields. Academic events I’ve attended have felt more like durational performance art than a productive way to learn or carry out research, with talks every 15 minutes (including questions), with the only breaks dedicated to necking caffeine and dry biscuits. Some people need to chill out once in a while, but more relaxation would likely be better for everyone!

This raises some difficult question about what a quiet space should be like.. How to make a quiet space where people feel safe? Should they be gender segregated? If so, how to best do that while properly respecting everyone’s gender identity? How to negotiate people who like to chill out by chatting, while others like to chill out by introspecting? What if it’s super popular? Might have to invest in some tatami mats..

Updatemore discussion here