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.

Refocus

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

AlgoMech Festival 2019

The third iteration of AlgoMech, the Festival of Algorithmic and Mechanical Movement is coming up, 16-19th May. There’ll be an exhibition, talks, workshops, concerts, and a club night with full-on algorave, all the overall theme of interlace, with various takes on movement and braiding.

I can’t wait to release the full line-up next week, but for updates you can watch the website, follow the festival on facebook, instagram, twitter, or sign up to the mailing list.

That was 2018, was that

January – Another busy year, starting with a cheeky Algorave in Nottingham organised by the mighty Coral Manton, a quick CCAI collab to an audience of computer games people.

Later in the month it was on to the textile centre in Haslach, Austria with the PENELOPE team, enjoying the amazing machines there including driving a TC-1 loom with TidalCycles. I later wrote a short article about this experience “Fabricating digital art“, in the book Parsing Digital edited by Sally Golding and published by the Austrian Cultural Forum.

Weaving Tidal patterns on the TC-1

Rolling into February, my amazing wife Jess passed her PhD viva, and I travelled up to Aberdeen for the very friendly sonADA festival, where I had fun doing a performance and workshop, and got to meet Suk-Jun Kim and the laptop ensemble Shift-Enter.

Performing at sonADA festival Aberdeen

Also in February, the Oxford Handbook of Algorithmic Music came out, co-edited with Roger Dean, and I was interviewed by Darwin Grosse for his podcast series.

On to March, and another performance and workshop, this time in Limerick, hosted by the Digital Media and Arts Research Centre. I think this was my most enjoyable workshop ever, the students were really into it and it felt great having a solid two days to go through everything. The performance in a local pub was also an absolute blast. This was organised by Giuseppe Torres who I hear is planning a big live coding event in Limerick 2020 – watch out for that one as the craic is not to be missed. It was also great to catch up with another Limerick resident Nora O’ Murchú of Cat++ fame among other things..

I also did some big shows in march – CCAI live in the mighty Hope Works warehouse in Sheffield supporting Peder Mannerfelt, Errorsmith, and Helena Hauff… A big step up for us, with some technical problems (huge bass + dodgy usb connections don’t mix) but we managed to pull it off. Thanks to Hope Works mastermind Lo Shea for getting us involved. Then over to Southport for an Algorave takeover at the Bangface weekender. This festival is legendary and it was a huge privilege to play there! It went off pretty well with a nice crowd joining us for some solid algorithms.

This was also the month for the increasingly traditional Algorave birthday live stream, celebrating our sixth year with a pretty much continuous live stream. We kicked this off with an eulerroom in Access Space Sheffield. Check our CCAI set from this below..

https://www.youtube.com/watch?v=3BWfPvdEy_o

April saw more performances, with a multichannel workshop and performance in Karlsruhe, connected with the ZKM open codes exhibition, where one of my old pieces forkbomb.pl was shown. I still regret not having time to look around this exhibition, which looked amazing. Thanks to Patrick Borgeat for organising the workshop + show.

Then up to my former employer University of Leeds for an ‘algorave assembly’ organised by Dan Merrick there, the school of music transformed with haze and lights. I performed solo there, but for eulerroom in Sheffield the next day teamed up with Heavy Lifting for a duo we are more recently calling “Epiploke”.

May started with doing a solo performance at a nice event at DINA Sheffield called Plethora, organised by some local students, followed by a streamed performance to Algorave Moscow the next day. The standout of this month has to be a trip to Reykjavik for the lovely RAFLOST festival though, traveling on with my wife+son for a holiday around the golden circle. Iceland is amazing. Big thanks to Ríkhardur H. Fridriksson for the invitation + organisation.

Screencast from RAFLOST festival

Onwards to June and to Berlin for a tidal workshop and performance at an event at modular+ space, put together by the excellent Peter Kirn of CDM.

Back in the UK and to an Algorave at the Cheltenham Science Festival. This was a lot of fun, and a relief as it went down well, after I’d previously had a major tech failure at the Cheltenham festival of literature.. My extended family lives nearby and were raving it up at the back..

Then out to Porto for the fourth edition of the Live Interfaces conference, which I started in Leeds back in 2012. My contribution was a paper with Dave Griffiths and Ellen Harlizius-Klück: Digital Art: A Long History, and the closing algorave was an absolute blast.. Does anyone ever make a conference without an algorave any more? The month finished off with a stream to Algorave Bristol, organised by Carol Manton again.

July saw the culmination of my “Pattern+Code” residency with Childrens’ Media Conference in Sheffield, which I failed to mention until now. This involved working with a year group (two classes full) of Y4s (8-9 year olds) from Wybourn Community Primary, hiding knots in string (inspired by Quipu) and doing algorithmic drumming circle workshops with tidal. I’d developed it all with Y6s in mind who unfortunately weren’t available, but the Y4s were totally into it, and made a beautiful collaborative textile and amazing noise music. Jon Harrison filmed the drumming circles beautifully, the example video doesn’t fully do the performance justice, we’ll sort out a version with proper sound (and visible screens) soonish..

The results of the workshops were exhibited in the Playground exhibition, big thanks to Kathy Loizou, Sharna Jackson, and Darren Chouings for hosting me and making it all possible. I also worked with some amazing older kids from Crofton Academy in Wakefield, who came down to join me for a riotous live coding performance in the exhibition itself, getting the audience raving.. They were so cool.

Later in the month and more CCAI activity, with an early morning off-tramlines show in the dearly missed Audacious arts space in Sheffield, as a nice warm up for the awesome Bluedot festival in Jodrell Bank. This was masses of fun, teaming up with top algorithmic visualist Coral Manton. A nice video too, the CCAI excerpt below but check the full video here, it was a great show, we were happy to fill up a huge stage by the end!

CCAI at Bluedot 2018

The final show of July was a collaboration with Jake Harries at the Festival of the Apocalypse back in Access Space, Sheffield. Despite collaborating on many activities we hadn’t played together as Silicone Bake for a good couple of years and it was amazing. I controlled some solenoids with tidal to tap out rhythms on some junk while Jake played guitar and sang late-capitalist lyrics gleaned from spam emails. We’ll have to do more of this in 2019!

With Jake Harries as Silicone Bake

August was mostly a time for holidays and planning for a visit from four fine people from Tokyo – Atsushi Tadokoro, Akihiro Kubota, Chiho Oka and Renick Bell, thanks to funds from the Arts Council/British Council, Sasakawa Foundation and Daiwa Foundation. On the way to Sheffield we met in London for a cheeky algorave in The Glove That Fits in Hackney, where I had an all-to-rare collab with Matthew Yee-King as Canute.

But the main celebration of their visit was in Sheffield at the start of September at Livecode Festival. I didn’t originally mean to organise a festival, but it just sort of happened that way! It was a fantastic couple of days with people contributing talks, performances and workshops from all over. The algorave was maybe the first one to have two rooms which went really well, we filled both rooms in DINA with one more chilled out room and one for full-on algorithmic bangers. Great times!

Later in the month I had a nice trip to Gothenburg, to take the role of PhD opponent for David McCallum’s thesis “Glitching the Fabric: Strategies of New Media Art Applied to the Codes of Knitting and Weaving”. it’s a lovely book and happily the result of the viva was a pass. This was my first involvement with a PhD examination (apart from my own), and I really enjoyed the Swedish take on it.

October began with a surreal and wonderful experience put together by the ever-imaginative Leila Johnston called the “Induction Meeting of the Holy Order of Logical Operators”. I was part of a strictly limited participatory group of people exploring an unusual sci-fi future through strange new customs and thought experiments. I lead an algorithmic drumming circle and did a few live remixes of the skype ringtone. I can’t really say more than that, you really had to be there and really should be at Leila’s next event as it’s likely to be equally inspirational (but probably totally different).

After that it was off to the PENELOPE laboratory in Munich to meet the incredible e-textile artist Sandra de Berduccy (aka Aruma) visiting from Bolivia. I spent a short while adding sound to one of Aruma’s textiles and really hope to bring her to Sheffield for Algomech festival next year. The results were shown alongside Ellen Harlizius-Klück’s textile works as part of RODEO festival, and my main contribution was a collaborative performance with Giovanni Fanfani and Dave Griffiths – Giovanni recited ancient Greek poetry while Dave controlled textile robots and I tried to match Giovanni’s shifting poetic metre with live code.. Plus a spot of audience participation at the end with some algorithmic drumming circle action.

Then back to Sheffield for No Bounds festival in Hope Works, an extra fun algorave take-over powered by the mighty FTF soundsystem as part of the Off Me Nut opening rave-up. I teamed up with Sam for another CCAI techno set in an rammed mini warehouse with massive speakers, perfect. More thanks for Liam for getting us involved!

November was all about Japan, part of the Yorkshire return visit, travelling with Lucy Cheesman and Joanne Armitage. This was an absolute blast, my first time in Japan, having amazing times at algoraves and workshops across Osaka and Tokyo, and just walking around the place. Full report coming soon, but below is my excerpt from the DOMMUNE live stream we did, and you should see all the Tokyo x Yorkshire performances in the full video, that was a good time.

While in Tokyo I was very happy to meet Japanese braid expert Makiko Tada and learn how to do Kumihimo braiding.

The perfect event to wind down into December was the “Apocalyptic Folk Club” in Sheffield. This might well have been my favourite event of the year just because I had no idea who would show up to play. In the event we had a full house, including loads of totally amazing musicians. Everyone had to be open minded because the advertised brief was brief and strange, which created a lovely atmosphere as people sat down and listened to all sorts, from improv noise on handmade instruments, to a duo singing a folk tune, a singer-songwriter banging out a number, someone performing extended guitar techniques, all sorts of strange instruments being brought out of boxes, and the odd bit of live coding. It was all amazing, and hope to find a way to continue it in a way that lives up to the dizzy heights of the first event. My contribution was to live code the tune behind a few different songs – The Red Flag, O Tannenbaum and O Christmas tree. I handed out the lyrics to all three and let everyone choose which version they sung. The result was chaotic and I think beautiful..

I’ve missed out a few things, including great tidalclub meetings, and the final meeting of the year was in the form of a winter solstice algorave.. Great to squeeze in one more collab with Sam as CCAI and Lucy as Epiploke.

One accomplishment I’m really happy about is getting Tidal 1.0.0 out, featuring a major refactor and lots of new features including a new wiki-based website documenting it all. This took a lot of my time over a couple of months which happily was partly remunerated thanks to many kind people sending me ‘coffee’ via my ko-fi.com page. This felt really great and although don’t want to spend too much time asking for donations, this is something I’d like to build on in the new year.

That’s it for now! I’ve probably forgotten more than I remembered in the above, but it’s been a fun and productive year.

Live on DOMMUNE Tokyo

Here’s my set from the Tokyo x Yorkshire show live on DOMMUNE last month:

It was a lot of fun, you can see the whole show over on the eulerroom channel featureing 2.5 hours of top performances and a two-hour bilingual chat.

Kumihimo with Makiko Tada

I’ve had a great time exploring Kumihimo braiding lately, beginning with tuition during a visit to international expert on braids Makiko Tada while touring Japan (more on that soon). I’ve written up a full report over on the PENELOPE blog. You can keep up with our PENELOPE textile adventures by following us via our twitter feed or facebook page.

Tidal 1.0.0 refactor

TidalCycles (aka Tidal) is a Haskell DSL for making (usually musical) pattern.

I’ve put a lot of time into Tidal the last couple of months, starting with preparation for an advanced tidal workshop in Tokyo, but things got out of hand and ended with a rewrite of its innards, solving some long-standing issues. It feels like I’ve only recently grown to understand what tidal really is in the process of writing (and rewriting) it over many years, and I’ve finally got to put that understanding into action. I’ve had some really useful feedback from the Haskell community in the past and so thought I’d write this post as an effort at getting feedback on this latest iteration.

Tidal is all about pattern. I’ve tried to explain what this means in terms of types in this wiki page – What is a pattern?

That page talks through the first bit of Sound.Tidal.Pattern, which also contains applicative and monad instances for patterns. The previous attempt at these didn’t conform to the applicative and monad laws, but these new versions hopefully are much closer to the mark. I’ve found though that <*> and join aren’t enough for Tidal. I also need <* for where pattern structure comes from the left, and *> for where it comes from the right, where <*> comes from both sides. Similarly, as well as join (which I’m calling unwrap) I needed to make innerJoin and outerJoin. You could have a look at the Combining pattern structure wiki page to get an insight into why these are needed.

Other modules I invite you to look at include Sound.Tidal.Core, Sound.Tidal.Control, Sound.Tidal.UI, and the rest, roughly in that order.

Tidal is my only real haskell project and I’ve learned haskell through (admittedly many years) of writing/rewriting it, so all insights much appreciated!

There has been a couple of instances where Haskell fans have been immediately turned off by Tidal, I think because of the large amount of strings used in Tidal code. These strings are actually overloaded, a parser in Sound.Tidal.ParseBP silently turns them into well-typed patterns (which are functions of time, and not strings or lists). Anything in those strings could be expressed in Haskell code, but with a _lot_ more keypresses. This mini-language is heavily influenced by the representation of cyclic structures Indian classical music (i.e. Bernard Bel’s BP2). I’d really like to get to the bottom of why people don’t like the look of these strings though, and whether there is a better alternative.

All feedback, suggestions and criticism much appreciated!

Making Tidal 1.0 happen

Too long; didn’t read? Basically, please buy me a coffee or so by pressing this button:

I’ve been doing a lot of work on TidalCycles lately. Tidal is very much a labour of love, I’ve put a lot into it over the past decade, motivated by the fun of making music with it and of enjoying what other people are doing with it. That’s not sustainable though, so I’ve been looking for ways of asking some money in return.

I’ve looked at patreon.com, but it doesn’t sit well with me. It seems high maintenance, and doesn’t fit with my motivation to work on Tidal for the fun of it, and not turn it into ‘content’ to be delivered..

I’ve also looked at liberapay, and used it to raise money for server costs. This has actually been really successful, I raised nearly €500 which covered server costs for we.lurk.org, post.lurk.org, talk.lurk.org, algorave.com, toplap.org etc for a while (thanks!). This also made me feel much better at helping keep these things going, that people are up for chipping in some hard earned cash. That money has probably run out by now, there’s a few of us running these services and we’ll look into being a bit more organised about accepting donations.

Liberapay doesn’t feel right for tidal development either, though. It’s based on an anonymous donation model, which is great for some things, but there’s no way of directly thanking people who donate (if you’re one of them, really, thanks!).. Or doing any community building around it.

I’ve also tried crowdfunding. This has been a great experience, I met my funding ‘goal’.. But in truth, crowdfunding is more a way to get people involved in a project than fundraising.. I’ll likely end up in the red overall. Plus I’ve found it really hard to get as far as finishing the project.. People have been outstandingly patient, but it’s been a very long haul (two years late!!). I will get there, though.

Anyway, now I’m looking at ko-fi. This seems to fit much better. No stress for ‘creators’ or ‘supporters’ to detract from actually making stuff. One-off or regular payments, that go straight to me (no extra platform fees). Plus a nice coffee metaphor.. It’s going to take a lot of coffees to get Tidal 1.0 done so I’d really appreciate your support!

One last thing – one reliable way to fund tidal dev that I’ve found is by running workshops. If you’d like to host a one or two-day TidalCycles workshop next year, please get in touch! There’ll a lot of new stuff to learn + share.. Same goes for talks and performances, of course.

Also get in touch if you have ideas for other ways to make tidal happen..

 

Getting things on Wikipedia

I’m a big fan of wikipedia. It’s by no means perfect, but it’s undeniably a fantastically useful resource, created by people giving their time for free, to share and enjoy. There are of course hidden barriers to participation, but in theory anyone can make an edit or create a page (as long as it’s not about themselves – that’s considered bad form and can backfire spectacularly).

Here’s a quick guide to creating a new page on wikipedia:

  • Although you don’t have to create an account to edit a page, you do have to create an account to create a page. This actually makes you more anonymous – otherwise your net connection’s IP address will be shown publically. That’s as long as you choose a name that doesn’t identify you (I do, but probably should – I’ve received legal threats for my edits in the past!).
  • I advise not using the article creation wizard. In my experience, that’s a hotline to a well-meaning person, who will however not have any domain knowledge, and will likely be looking for pedantic reasons not to accept your article rather than for reasons to accept it. This makes for a very slow and frustrating experience, and not a joyful sharing of knowledge.
  • Instead – just create the page! You can do this by going to the URL for it. For example, if you want to create a page about “blue widgets”, go to https://en.wikipedia.org/wiki/Blue_widgets.
    • Well, if this is your first page, that’s probably a bad idea, create it in draft form first by going to https://en.wikipedia.org/wiki/Draft:Blue_widgets. Once you’re happy with it, copy the contents across to the real thing.
    • It’s a good idea to find a page similar to your topic, click edit, copy the contents, and then paste it into your new draft as a starting point.
  • It’s worth noting that once you start contributing to wikipedia, you are part of it! Wikipedia is not a separate entity from you; likely all the people you’ll interact with will be working in a voluntary capacity, just like you, and decisions about notability and so on are made by consensus.
  • However! Unless you’re careful, your new page will likely be ‘speedy deleted’ for not being notable. Despite what some believe, there are no hard rules about what makes something notable, but there are a lot of guidelines.
  • So at first, your page will probably not really be about the thing, but instead about how notable the thing is. You can flesh it out with more useful stuff later. For example, here’s the current (at the time of writing) version of an article I just created. The first sentence briefly says who the subject is, and the sentence says why they are notable. Importantly, there’s links to three or four mainstream media articles directly about the subject. Without these, someone will probably speedy-delete the page. You could look into the notability guidelines, but as long as you have some decent mainstream media and book references, you’ll likely be safe. Look on google news and google books to find them.
    • (If you can’t find such references, then probably the subject isn’t notable by wikipedia’s definition of the word, and you might be wasting your time with this one)
  • Adding references like this is actually really easy – just click the ‘cite’ button in the editor, paste in the URL to a webpage representing the thing you want, and make sure you both confirm and add what it gives you (this involves pressing a button twice, otherwise you lose it – I do this every. single. time.). Apart from that you just have to add a reference section to the end.
  • Once you’ve created your page, it’s definitely worth keeping an eye on it (e.g. via your ‘watchlist’), so that you can contest nominations for deletion and so on.

That’s it. Good luck!