Using code for live music has gone from geeky fringe to underground revolution, offering a fresh approach to music and pattern, even for first-time coders. Alex McLean is one of the people at the center of this medium’s growth.
“Code” in this environment isn’t just about software language. The free, open source tool Alex McLean created, TidalCycles, found its original inspiration in research into analyzing Indian tabla rhythms. These environments are very much about getting closer to the essence of what makes music tick – the underlying technology of musical culture.
https://tidalcycles.org/ (powered by SuperCollider)
With Alex set to play and teach this weekend in Berlin, it seemed the perfect time to get his personal and musical story, and to have him take us on a tour of live coding’s latest frontiers. Alex is a laptop musician and developer, as well as a social organizer for a movement that’s spreading these tools worldwide. Johnny Appleseed style, Alex and others are planting seeds and building up a network of people who share knowledge and support one another. From my vantage point, the live coding scene represents a kind of free, open, collective model for supporting musical practice and culture, in contrast to the generally competitive dominant paradigm.
And oh yeah – that does include the “algorave,” a format Alex has promoted. Step into these marathon live code jams, and you may be surprised – this is danceable stuff, often with shoe-smoldering high tempos.
But if you only saw the novelty of people typing code on laptops to produce sound, you might miss the musical explorations it’s enabling. Perhaps because TidalCycles’ syntax lets you directly express loops and rhythmic ideas from a blank slate, without wrestling with all the chrome and complexity of typical musical software, it’s empowering some very creative work. For instance, I’ve had the fortune to get to know Miri Kat, a London-based artist using TidalCycles in her music (as well as making live algorave visuals). Late last year, through the CDM music label side project Establishment Records, we released her first EP (with generative visuals provided by Max/MSP/Jitter). I’m biased, of course, but to me, Miri’s work has sophistication in texture and pattern. So you don’t really need to know that live coding was used in its production – but then once you do know, it’s worth finding out how the tool represents musical ideas, and how the person who designed the tool thinks about those topics.
If you’re in Berlin, Alex joins a diverse live lineup Saturday at an event we’re organizing with Modular+ Space:
And Alex will offer a workshop in TidalCycles and musical pattern Saturday afternoon. There are still some (limited) spots available if you act quickly.
Learn music patterning in TidalCycles, a free livecoding tool
Register for the workshop [30EUR incl. VAT]
We’re walking here at the edge between music theory and interface design, code and musical material, artist and organizer, musician and developer. So I was eager to ask Alex about how those pieces interlock – and how he manages his various roles and time.
First, before we get into algorithmic music or livecoding, what was your entry into music, as far as training? What was your earliest musical experience?
I don’t have any formal musical training. I tried to play the guitar when I was young, but got nowhere. I just got ‘stuck’ playing the same things over and over (mainly “Wild Thing” by the Troggs). I’m a 70s child, so grew up during the home computer revolution in the 80s, but couldn’t buy a decent [computer] myself. But for some unknown reason, one day, our provincial state school received some great synths, including a Yamaha DX7, drum machine, and four-track recorder. Our music teacher let us play on them during lunchtimes, and so instead of going outside, we more or less recreated “Blue Monday” ever day.
You’ve done just a massive amount of event organization – that 100+ event count in your bio is real, yes? How do you keep all of that together in your head, in terms of organizing and logistics? How do you have any time for music making on top of everything else you do?
Yep – it’s an addiction, really. As well as dozens of algoraves, I’ve organized around 100 Dorkbot electronic art events, loads of ‘placard’ headphone parties, started two international conferences (ICLC on live coding and ICLI on live interfaces) and am now planning the third edition of the Festival of Algorithmic and Mechanical Movement in Sheffield. I do it mainly by collaborating with great people, and also by sending and receiving a lot of emails. It’s a great thing, imagining a weird event, talking to some people, and then a few months down the line, it’s happening. Usually, at that point, I’ve decided never to do another event ever again — but a few weeks later, a new idea pops up.
Really, though, it’s out of necessity. Interesting things happen in the gaps between communities, and the best way of making that happen is by making an event and forming a new community around it. It’s also really part of my music-making. You can’t really separate music from community.
On that note, actually, do you find you have to set aside some time that’s just for being a musician again?
Not generally, because I rarely record anything or make ‘tracks’ — just mainly play improvised, broken techno, live. So I just wait until someone invites me to play somewhere and I go and do it. That said, I do have a crowdfunded album project that is now about two years overdue. I keep setting time aside for that, but then find a new idea to explore for it. I’ve also formed a new duo (Class Compliant Audio Interfaces) with my friend Damu, and we are practicing regularly; that’s going well.
Tell us a little bit about TidalCycles. There was a connection to Indian classical rhythm in the way you conceived this software, right? How did you get from there to building a live coding environment?
Yes, that’s right. My first live coding environment was written in Perl, but it was frustratingly slow to work with. Then I came across BP2 – the second version of Bernard Bel’s “Bol Processor”, originally made for transcribing Indian tabla rhythms. I transferred the syntax into Haskell for a project I was doing for my Masters degree at Goldsmiths, around generating rhythmic continuations. A lot of Bernard’s ideas, and the reading I did around musical time in Indian classical music, still form the basis of the mini-language inside Tidal for describing polyrhythmic sequences, as well as Tidal’s conception of cyclic time.
Bol Processor 2 (BP2) at SourceForge
It strikes me that the essence of this is about pattern and rhythm. Did you try to think consciously in those musical terms when designing the tool?
Yes that was my motivation – to make a language for musical pattern. A lot already existed that I learned from, e.g. in SuperCollider, HMSL, Common Music, and in the writings of Laurie Spiegel. But although I put the code online for the first few years, I don’t think anyone else tried to use it. It was just for me, to make my own music as part of our band Slub.
Now, having edited the Oxford Guide, where would you position TidalCycles relative to other livecoding tools? What other tools should people be aware of – realizing there are a lot of these – on desktop or on browser?
Oh.. There’s absolutely loads of great stuff! There’s a lot to discover, and it’s almost all free/open source. Here’s the exhaustive list:
I’m particularly excited by FoxDot and Gibber taking things to the next level. Of course you can also livecode visuals, and Hydra [by Olivia Jack] is the new + exciting thing on the scene there. Both Gibber and Hydra run in the browser, and Foxdot is a fairly easy cross-platform download..
Is there anything to be said about the relationship between live textual coding and live visual/dataflow environments? (I was going to say Pure Data as an example.)
I don’t see any difference, really; a Pd patch has plenty of text in it, it’s just that the syntax comes from connecting the words together instead of arranging them next to each other. In fact, on one level, TidalCycles is a kind of pure, functional approach to dataflow. You can see this in the experimental visual frontend I made for it:
We’ll give you a fresh group of people Saturday in Berlin to teach the software. Where do you start in a workshop, in terms of how to present it – once installation and such is done, that is?
I like to get people to think about what a pattern really is. In computer music, we too often think of patterns in terms of straight sequences or piano rolls. But patterns are a lot more than that — it’s a way of making, really. So I get people to think about patterns in terms of repetitions, symmetries, and reflections on multiple levels, and (I think) most importantly interference patterns which often create fascinating complexities from simple ingredients. Then of course there’s deviation from a pattern, the random numbers which are an important (if perhaps massively overblown) aspect of algorithmic composition.
This stuff it seems is really taking off. What can you say about the > state of the larger livecoding or live laptop scene? Is there something giving it some new velocity?
I think it’s been a slow burner, but has grown into a global network of local communities. A vibrant scene grew in Mexico City and is spreading around South America. There’s an increasingly active scene in Tokyo, too. It really comes down to local organizers deciding to dedicate their spare time to running workshops and putting on shows.
It’s sort of funny to me in a way that there’s a renewed interest in laptop performance just as many people are very vocally abandoning laptops for, say, Eurorack modular. Are these opposed forces? Or are we just getting to the point where people are getting more interested in live performance and improvisation? Is it about trying all sorts of interfaces to connect their thoughts to what they’re playing?
Yes, I think it’s all connected — people wanting to open up boxes and work with what’s inside, work with systems as material. I see the same motivation behind wiring and re-wiring a modular synthesizer and modifying live code while it runs.
Plus, of course, some people do both. There are people connecting Tidal and other live coding systems to modular synths.
You’re going to play as a solo artist (Yaxu) – what’s that music about for you? There are some musical ideas that are separate from the tool, or would you say the tool is part of how you express that musical vision?
Well, I often degenerate into making deconstructed gabber whatever I do. But I guess when I perform solo, I try to make it about learning something new with Tidal – work it into new territory, perhaps by using a new function I’ve added or trying out a new combination of functions. That’s what makes it exciting for me and, hopefully, the audience. I don’t like the idea of musical vision, though, because I think live coding (and indeed music in general) isn’t at all about expressing fully conceived musical ideas in an efficient manner, but starting with something and seeing where it takes you. Working with pattern is great for this, because it’s so full of surprises.
Is there ever tension between working on building tools and communities, and working on your own music, or how did you harmonize them?
Making languages for music leads to making music, as does making parties, so it all fits together nicely. If I’m honest, it’s a bit concerning when other people make fantastic music with Tidal, but that just encourages me to push my own music forward. The idea of an individual voice in music is probably a fairly recent thing. I like the folk music model where people borrow tunes from each other all the time. Free/open source music fits into that nicely.
Yeah, I think in Western music history we can look to the Middle Ages for that individualist model – though then, too, that era was definitely into open source. Cantus firmus on GitHub, anyone?
So, looking beyond you — all these people who have picked up TidalCycles and gone and made their own expression, in their own art and teaching. Who are some of the people you’d point to who represent the range of what’s happened in the livecoding scene?
Oh gosh! In terms of Tidal people in particular:
I love Scotts-Berliner Calum Gunn’s stuff, both with and without Tidal:
The same with Lucy Cheesman aka Heavy Lifting in Sheffield, she does top-notch Tidal stuff. We had a really fun collaboration recently, but she also performs with [live coding tool] Foxdot:
Kindohm over in Minnesota makes totally amazing music too, and has been integral to the community from the start:
Alexandra Cardenas, I guess a Columbian-Mexican-Berliner, is another huge force for good in the community, currently spreading Tidal on tour across South America, and with every performance different and inspiring.
I’ve really enjoyed following the development of audiovisual live coding in Japan e.g. Atsushi Tadokoro — looking forward to hosting an exchange with him + others soon!
Malitzin Cortes (CNDSD)’s Tidal experiments are also pushing Tidal into new ground, and her collaborations with visual artist Ivan Abreu
are something else:
Rodrigo Velasco aka Yecto from Mexico City, just love his inspired a/v work + experimental events:
Oh, this is so hard, to leave people out, but I guess I’d pick those out as being particularly active in growing the community in their different ways, as well as developing their own strong sound and approach. I’ll probably kick myself for forgetting someone.
Music from Yaxu (Alex)
Yaxu (audio) + Miri Kat (video) live at algorave sheffield 01/09/17
Algorave generation – we love repetition. 😉
Collaborating with Damu, as CCAI:
This recent stream to Algorave Moscow gives you a sense of how Alex builds up his tracks:
And Alex has put out an EP, on Computer Club:
And yes, there is still that massively overdue crowdfund project to do a full-length. Now you can see why the guy is busy, though, for sure.
Come join us in Berlin if you can: