Analysis Paralysis and a Bag of Bad Ideas

Live blogging AMRO.

Sophie Carolina Wagner and Rosemary Lee

A very quick overview of her her arts practice Open a glam lab.

They are here to talk about climate despair etc. How do we carry on in these times? The UN warns of total social collapse but also wants growth in an extinction economy.

Can technology help? The political parties don’t understand tech and just want to spy on us.

tech is fragile. Taking down leftpad broke thetech giants. Machines are not sentient and this is distracting for the real problems of AI.

Artists are stuck in capitalism.

There are no good manifestos. We have only bad ideas.

Now Rosemary says: she’s researching algorithmic processing in image production. Her forthcoming book is Algorithm Image Art. Machine learning is new, but the issues it raises aren’t. Value, authorship, meaning and truthfulness of photos can be exploredthrough media archeology. A deep time perspective of media allows us to apple a historical analysis.

Machine learning is responsibility absolving for corporations. Artists are asked to “perform ethics” around these systems. Artists are treated as reformers of technology. They want to make art but are stuck eemediating technology.

Personal responsibility and online image consumption will not help save the world.

They want to start an open dialogue. The personal, the political, the emotions. We are stuck in doom. Can art do anything? Should art even?

We should at least talk about this. Are we being instrumentalised? Are we equipped to deal with this? We can barely pay our rent. Funding situations do not lend themselves to good art, let alone critical engagement.

Is mutual aid part of theway forward?

Glitches can make some space for us maybe.

General Intelligence Agency of Ljubljana

live blogging AMRO

Jan Kstanjevec and Makes Valencic

they started as a reading group. Reading groups require periodic synchronous meetings. People take notes but it does not produce a product. They don’t have the strengths of a seminar. However they are a safe, collaborative space to allow the externalisation of thought.

GIA is an abstraction of reading groups. They are investigating infrastructure and tools. Intellectual work is a muktinlear pipeline. The process of thought externalisation is productive and allows collaboration. They want to be able to facilitate this.

In the humanities, modes of collaboration are not well-developed. Its not easy to create spaces for shared reading. It represents a major commitment, which is not ideal. Schools of philosophy and think tanks do undertake this.

Collective intelligence is increasingly subjected to technological intervention. They are using their reading group as a model.

Small groups can have safe environments for communication. The safe space idea is one of comfort. They want a space to share notes.

chunks are units of memory and analysis, but this is wasted if not used. Chunks get maintained when they are repeated, for example in schools, circularity, etc. This need not be an institutional production, but it usually is. They could optimise by making chucks available with less commitment.

Chunks are like capital, but harder to evaluate the value of. They want to keep chinks inthe group. Forgetting chunks issometimes good, but forgetting good ones is wasteful. There may also be too many chunks.

Memory is cultivated. This can benaided with tools. But small communities also have dangers. They can get into groupthink. They can have trolls or people who dominate conversations. There are also barriers to people participating due tonshyness or social barriers. How should they be actually open in practice.

Open science models arenot quite applicable. Neo liberalisation wants to impose market logic, which leads to closure and paywalls.

Systemisation of content could be done with some data crunching, so they tried that.

They want to do case studies to better develop tools. Locality does not garuntee a safespace. They are using next cloud. Their app is called ContentMatcher.

Their demo is a bit like PDF speed dating, which does seem useful.

Q: this is like

A: thanks

There is a workshop today at 2

It works!

After many very long days, My project Domifare is working. For me. It won’t work for you because there is a bug in TuningLib. I have raised an issue, which the package maintainer will get to shortly. The package maintainer, who is me will fix it shortly. When I get back from Austria. I need to test my fix properly.

Only a subset of specified commands have been implemented, but I can record a loop and re-order the playback of a loop based on detected onsets. Hypothetically, I can also start and stop loops. In practice, pitch detection is terrible and the language is barely usable. Annoyingly, the utility of it depends on how good my tuba playing sounds.

If I want to use this as an actual tool, the way forward is playing the key phrases in as training data to an AI thing.

While writing this project, I raised three issues with the SuperCollider project over documentation and one issue with the LinuxExternals Quark over Pipewire. That will turn into a merge request. I might update the documentation for it.

If you want to hear this thing in progress, I’ll be using it on Friday. You can turn up in person to Linz, Austria or tune into the live stream. This is part of AMRO, who have a helpful schedule.

I feel like a zombie and will say something more coherent later.


I put in a bid to play Domifare at AMRO, knowing it was in no state to perform, but also knowing that nothing motivates like a deadline. I thought it was likely to be accepted, so I planned to start working on it during the break between spring and summer terms.

But then I got covid and felt terrible for weeks, but also got brain fog which, to be honest, has not completely dissipated. I mean, it’s hard to tell. How could I possibly have a bassline on my mental state? I do know that my sense of taste is still messed up and if I exercise a lot I feel ill the next day, so let’s say I’m not at 100% mentally. It could be all in my head, but what difference would that make?

I wanted to finish my marking before dedicating all my time to this. I have not finished my marking, but now both are an emergency. Indeed, the list of things I have not done is kilometres long. My tuba needs a service. I haven’t played it for months and lips are completely unfit.

This is an overly-honest research update. The subject line is the Solresol word for “fear.”

This is the state of the language:

Domifare Notes
Domifare Performance Notes

The “language” has always been conceived of as a way of defining loops. So I have some syntax for recording loops as an audio recording or as a series of onsets, the ability to “shake” an onset loop, the ability to schedule shakes, and the ability to start and stop loops. These are all a series of short musical licks I should ideally memorise but at least be able to play without hesitation or split notes.

Meanwhile, the language currently has the ability to read and receive notes, which is necessarily flaky and a scaffold to hand the rest of the operations …. and a GUI to adjust thresholds because that’s necessary while playing… and that’s kind of it.

This coming weekend is a four day one which is actually a disaster because it means I can’t work during it.

Writing out what I actually have to do makes it sound fully achievable, but it will take longer than I think it will. The GUI took all of yesterday. If I spend part of every day programming and part of every day practising, I should get there. Hopefully.

I haven’t bought my train tickets yet, but I really don’t want to drop out.

I’ve got 2 weeks.

Domifare back under active development!

I’m very exciting to be submitting a proposal to do a performance in the tuba-entered live coding language Domifare.

I’ve been wanting to pick this back up for a while and it seems like the main thing that motivates me is a deadline, so now I’ve got a deadline for version 1.0.

The initial specification of the language is quite modest to implement and my teaching term ends next week, so I’m confident this will be playable by the time the gig arrives. It’s always going to be chaotic because tuba pitch tracking, but it will be a joyful chaos!

More here as I get to active developing.

Peer Work

There is a very handy Moodle plugin called peer work, which you can use to allow students doing group work to assess each other’s contributions and scale the group marks accordingly. In a document authored by Dr Sean Williams, he notes that benefits for students include “a greater engagement with critical thinking; greater awareness of marking criteria; more perceived fairness in assessment”. This plugin saves a lot of paperwork and spreadsheet wrangling.

The upsides of this plugin are clear, but unfortunately, the documentation for it is sometimes less clear, alas. Although, it does cover some aspects of it’s use very well. This blog post is meant to cover some gaps.


As this plugin is for group work, you’ll need to create groups on your moodle, which is well-documented.

Using Likert scales

In this plugin, students are asked to rate each other’s skill and/or participation according to a Likert scale. Dr. Williams suggests this should be 0-5. You will first need to create a scale, which has a good moodle documentation page. Open your course in moodle. In the left hand column, click grades. Under grades, click scales. Under scales, at the bottom, click “the “Add a new scale” button. You will have to provide a name for their scale and commas separated list of scale values from low to high. The values I have used are: No contribution, Minimal Contribution, Reasonable contribution, Very good contribution, Excellent Contribution. The name I chose for this scale is “Peer Assessment Scale.”

When you create a new Peer Work item on the moodle page, it should look familiar to regular moodle users. The questions for peer evaluation go in the “Assesment Criteria Settings” section of the settings. You will set several criteria, eg “How was this student’s attendance at group meetings?” Each criteria has a description and a “scoring type”. For the scoring type, pick the scale that you made.

Using my new scale with the peer assessment questions

Students should see your Likert scale for the question. You must set the scale per question. You can use the one scale you made, or if you feel it’s not a good fit for the question, you can make custom scales for each item. For this criteria, I could have a specific scale that started with: Never attended, Attended Rarely, … etc.

Calculator Settings

When you are setting up the plugin, you’ll need to set the calculator setting. This sets how much the students marks are effected by their peer evaluations. Dr Williams says, “By default this is set to 50%, meaning that 50% of the group mark is given directly, and 50% is subject to the multiplier. If this gives a spread of marks judged to be too narrow, then it can be adjusted. Normally this shouldn’t be more than 60% or less than 40%.”

There’s also a penalty for non-submission, where they get dinged if they fail to evaluate each other. The default is 20%. Dr. Williams suggests students should be told this early.

The calculator settings

How this multiplier works is explained in a PDF buried in the plugin’s source code which is a copy of this web page. The student’s peer scores are used to calculate a multiplier for the group grade. This is done so that nobody is penalised if a peer’s marks are missing, skew low or skew high.

Each student gets a percentage mark – the multiplier. If the peer weighting is 50% and you’ve given them a score of 100, they get 50 marks from the group grade (as in 50% is directly the group grade) and the other half of the mark is calculated by multiplying it by their personal percentage mark. So if the student Bob gets an 80 for his personal percentage mark, his overall mark is 50 + (50 * 0.8) = 90.

The percentage mark can exceed 100% in some cases. If Alice’s group has gotten a 90, and Alice has gotten a percentage of 115, her score would be 45 + (45 * 1.15) = 96.75.

Student marks are capped at 100.

Running an online student concert

I wanted to come up with the most straightforward possible setup, so that students would be able to copy it and run their own events with minimal fuss.

This plan uses Twitch, which has two tremendous advantages. It has a performance rights society license, so everyone is free to do covers with no copyright consequences. (Just don’t save the stream to twitch.) The other is that the platform is designed around liveness, so if there are gaps in the stream, it’s not a problem. This means that no stream switching is required.

Student skills required

The students need to be able to get their audio into a computer. This might entail using a DAW, such as Reaper, or some sort of performance tool. They need to be able to use their DAW or tool in a real-time way, so that performing with it makes sense. If they can create a piece of music or a performance with software that they are capable of recording, then they have adequate skills.

This checklist covers all the skills and tools that a Mac or Linux user will need to play their piece. It will work for many, but not all, Windows users. This is because Windows setups can vary enormously.

Once everyone is able to stream to their own Twitch channel, they have the skills required to do the concert.

Setup and Organisation

You will need a twitch account dedicated to your class or organisation. You will also need a chatroom or other text-based chat application to use as a “backstage”. Many students are familiar with Discord, which makes it an obvious choice. Matrix chat is another good possibility. If you go with discord, students will need to temporarily disable the audio features of that platform.

As the students are already able to stream to Twitch, the only thing that will change for them is the stream key. Schedule tech rehearsals the day of the concert. Arrange that the students should “show up” in your backstage chat. At those rehearsals, give out the stream key for your channel’s stream. Give the students a few minutes to do a test stream and test that their setup is working.

The students should be instructed to wait until instructed to start their streams and to announce in the chat when they stop. If they get disconnected due to any kind of crash, they should check in in the chat before restarting. Once they finish their performance, they should quit OBS so they do not accidentally restart their stream.

When it’s call time for the concert, they also need to show up in the backstage chat. They should be aware of the concert order, but this may also change as students encounter technical challenges. You or a colleague should broadcast a brief welcome, introductory message which should mention that there will be gaps between performances as the stream switches.

As you stop broadcasting, tell the first student to start and the next student to be ready (but not go yet). The first student will hopefully remember to tell you when done and stop their stream. As their stream ends, you can tell the next student to go. You should be logged into the Twitch web interface so you can post in the chat who is playing or about to play.

After the concert ends, reset the stream key. This will make sure their next twitch stream doesn’t accidentally come out of your organisation’s channel.


The downsides of this steup is that there will be gaps in the stream. If a student goes wildly over time, it’s hard to cut them off. However, the tech requirements do not need any investment from your institution and, again, they should be able to organise their own events in a similar way using the skills they learned from participating in this event.

Performance Disasters

Some of my students have stage fright and don’t want to perform. This circumstance is highly relatable. I thought it might be helpful to share some stories of stage fight and performance gone wrong.

I used to get terrible stage fright. The way I got over it was to keep going on stage, a lot, despite being absolutely terrified every time. As a youth, I got relatively used to playing in front of strangers, but one time, in a youth group, I was playing trumpet in front of my peers and got so alarmed, I couldn’t get my lips to buzz.

More recently, I wrote a piece performed with a gamepad and when I went to perform it, found my hands were shaking too much to play it!

For me, just giving it ago, despite the fear, was got me through it. But, perhaps for some, an exercise in “what’s the worst that could happen”? will help.

Let’s watch a John Cage performance. Do you think the audience’s reaction indicates success or failure?

John Cage performs Water Walk on the TV show I Have a Secret

Ok, so the audience laughed but he said he was ok with that and his performance got broadcast out on national television, so perhaps the exposure was worth the mirth. But did you notice anything wrong with the performance?

Things that I noticed going wrong included

  • The radios were being plugged in. This was due to disagreement in the unions about who’s job it was to plug them in. (The moral of that story is to keep the union on side. Solidarity. Also, if you’re doing something weird, be patient while they go through the normal setup process. They’re used to being talked down to, so don’t offer instructions or suggestions unless their normal setup doesn’t work.)
  • The blender caught fire.
  • The rubber ducky was completely inaudible.

Two of these three things were huge problems. Radios are a key part of the piece. The blender situation was also quite alarming and changed the flow of the piece, as the crushed ice used later on was not available. Cage had to be adaptable and think on his feet in a performance situation that had numerous disasters before and duing.

Most people don’t notice the problems because he kept his cool throughout. This kind of composure is the product of experience. Things go wrong, but the show must go on. For people unused to performance, it’s likely that you will seem nervous. You are nervous. But with practice and experience, you too can keep your cool. After all, what’s the worst that can go wrong?

Angie’s Persimmon Cookies (again)

Eleven years ago, I posted a treasured persimmon cookie recipe to this blog. But I held something back from you, dear readers. My mother made those cookies many times, but I’m not sure I ever did. Also, the metric conversions were from an online calculator, so potentially dodgy.

Biscuits / Cookies

Today, I have finally made these. They took just as much time as I feared. My mum had a special tool for pulping things, but I don’t, so it took 40+ minutes to shove the flesh of a less-ripe-than-ideal persimmon through my wire strainer, by mushing it with a rubber scraper.

Biscuits / Cookies

While making them, I measured all the ingredients with my American cup measure and then weighed them with a kitchen scale. Some of them differ significantly from the calculated version. In this case of the sugar, this may be explained because the Hackney City Farm is only selling an unusual type of raw sugar (date sugar?) that seems more like brown sugar.

I’ve also made steps to veganise it.

The new, metric measurements are:

  • 150 g sugar
  • 90g margarine
  • 2 tsp chickpea flour
  • 300g persimmon pulp
  • 1 tsp bicarb
  • 225g plain flour
  • 1 tsp (5 mL) salt (I still use less than Angie did)
  • 1/2 tsp cinnamon
  • 1/2 tsp cloves
  • 1/8 tsp nutmeg

Cream the sugar and the margarine. Add all dry ingredients except for the bicarb. Strain the pulp. Mix everything together. Make sure it’s properly mixed. The margarine-sugar will tend to stay in clumps, which can make the biscuits stodgy.

Spoon the batter on to a biscuit sheet with a soup spoon and bake at 190 C (375 F, gas mark 5) for 10-15 minutes. They will raise as you bake them.

I’ve left off the nuts because somebody on my list is allergic. I used chickpea flour to replace the egg, but any emulsifier will work. I didn’t add liquid because the pulp is already pretty wet, but you could add a few teaspoons of water or soy milk or the like.

Previously, I said that Chris and Angie were an elderly couple over the road. They were Sicilian. Chris was in his late 90s and had worked on the construction of the Golden Gate Bridge before spending the rest of his working life as a gardener for the city of San Francisco. Like many Sicilians, they had summer houses in the hottest part of Cupertino. That community would typically build two buildings – one would be the house and the other would be the kitchen and a semi- outdoor eating area. My neighbours retired to that summer house and it was (one of?) the last of those still standing with that configuration.

Chris taught us a lot about gardening and looking after plants and trees. Even in his late 90s and nearly blind, he would come talk to my mum about looking after the roses and would sometimes just prune them because he loved them. (He also had ulterior motives with regards to my mum, so he wasn’t totally blind.) Angie made amazing cookies and was very generous in sharing her food and her recipes. Neither of them could drive, so my mum would take her around to the shops. Sometimes several shops, as she’d snip coupons from the papers.

A plate of cookies

Chris was sprightly for a 97 year old man, but had several health problems. Angie used to buy him exotic multivitamins that came in gigantic pills which resembled submarines. When my mum confessed Chris’s proposition to my dad, she was worried he’d be angry, but instead my dad started taking the same vitamins!

A biscuit
A biscuit

Running a festival fast with less Google

One day, a little while into lockdown, I rang up my friend Shelly Knotts and suggested we reboot the Network Music Festival, which had last run 6 years earlier. “Leaving aside all the reasons this is a terrible idea,” I began and she revealed that she’d had the same thought. We were in.

She made a Gantt chart, a drawing that shows dependencies for scheduling, and said the soonest reasonable time to do it was roughly three months in future. So we set that date and set out. Our goals were to do an all-telematic festival with an open call, a few invited acts and no use of google. We were not to achieve all these goals, but we did put on a festival!

Shelly made a budget and asked me for some estimates. My first mistake was not taking that step seriously enough. We’d applied for funding previously and never gotten it, so I did not put in any pay for myself and I did not spend enough time looking at how much streaming would actually cost assuming we could just buy two months of a vimeo subscription. It turns out you can’t sign up for less than a year.

We already had a wordpress site with a minor malware problem, a google mailing list and a gmail account. I removed the malware and installed bunch of security software on wordpress, but didn’t have time to upgrade or replace the theme. I tried to setup a mailman list, but ran into some weird problem with the anti-spam features. And as a temporary measure, I set the new email address to direct to the old one. All of these things are still on my todo list.

To run the open call, I looked at all the conference management systems widely used. Like many of the formerly no-cost solutions I remembered from 2014, these charge money now. I wasn’t sure how much response we would get, but I was worried about capping it at the free tier. All of these systems are also designed for science conferences, not artistic events. I decided to use Ninja Forms.

To test Ninja Forms, I put up a default wordpress installation at a subdomain and put Ninja Forms on it. My mistake as that this was not a duplication of our existing site – it had many of the same plugins but not the same theme and certainly not the same content. It wasn’t a proper testing server. So as the open call was running, I got some email form people who were unable to submit their forms. I couldn’t submit them either – something about the content was screwing up and it wasn’t the post length or anything I could pin down. It worked fine on the testing site. We quickly recreated the forms on Google.

Meanwhile, rather than use Google sheets or their online text editor, we started using Cryptpad because Fossbox has an account there. Their spreadsheet glitched and lost a lot of data. We filed a bug report and they said they fixed the problem, but we did not return to them for spreadsheets. We did use their rich text documents, which work beautifully.

When it came time to combine all the data from the open call forms, I put both batches of data into CSVs and used Libre Office to create a giant set of sheets. I assigned entries IDs. By hand. This was a mistake. And broke them up into a bunch of sheets associated with submission types. I also looked for duplicates and removed them – sorting them by title and email to look for matches. I used a mail merge operation to product a bunch of html documents with anonymised submissions for our reviewers. Because I sorted them after assigning IDs, the names of the documents and the ID numbers didn’t match. Only one reviewer noticed.

Meanwhile, we’d been collecting potential reviewers into an excel sheet. We tried to have equal numbers of men and people who are not men (read: women and enbies, a group that otherwise should not be lumped in together). We found that men were way more likely to agree to do reviews and ended up asking about twice as many women. It’s extremely fortunate that I decided not to use the free tier of Easy Chair as we had more than double the number of submissions they allow. It was a real scramble trying to find reviewers. I returned to facebook and leaned on friends for recommendation.

I used the UNO bridge from libre office to python to email all the reviewers their agreed number of reviews. Each item was to get double reviewed, once by a man and once not by a man. Every item did get reviewed at least twice. A few got additional reviews. Reviews went to another google sheet.

Collating the submissions with the reviews is too much to reasonably to in a spreadsheet, so I imported all the submissions and all the review CSVs into sqlite3. I wrote some python scripts to spit out submissions coupled with reviews so we could use them to figure out what to accept and reject. These were sorted by score. We decided that everything with a score of 4 or 5 should probably be accepted and anything at a 2 or lower should probably be rejected. However, we did both look at every single one of the submissions and decide to take them or not, sometimes overriding a low score, but never a high score. We put our decisions into a spreadsheet and then had a meeting to discuss only our disagreements.

Like all our meetings, this was held on Jitsi Meet, one of the platforms we were considering for workshops. And, indeed, it was not just one meeting, but several. We started out imagining getting around 50 submissions and accepting around 25. We got 164 and accepted 101.

After we came to an agreement about who to programme, I spit out sheets with just the reviews and emailed them to all the submitters. It was here that an error came to light. I’d assigned the same ID to two different groups and they both got back a mixture of reviews meant for both of them. Because I’d exported the submissions via a mail merge in libre office, it hadn’t cared about the duplicated ID. It made a file for every single row of the spreadsheet. So everything had been reviewed, but the reviews had been jumbled up. We got an email from one of the groups saying they thought they’d received the wrong reviews. I double checked everything then and this only happened to one group.

Once we knew who we were accepting, we asked accepted groups to verify if they would perform and to use a free web meeting calendar to track their availability. We also asked them if they want to correct any of their information. I wrote another python script to copy everyone who accepts into a new sqlite3 database, and replacing their information where they offered corrections. Only a tiny number of groups wrote “no” in those forms, so it worked mostly without a hitch.

I wrote yet another script to upload every database record to our website. While I was doing that and uploading the late responders, Shelly was proofreading everyone’s programme notes and biographies. We shared the database on Dropbox. My internet connection is quite slow and big databases are big and also not text, so automated merging of file changes went catastrophically wrong. Shelly lost most of her edits. We moved our database back to google sheets.

It was then I found out that the meeting-scheduling website would only export a CSV if you bought a year long subscription. I signed up for an account and tried to get the calendar to associate with my new account and it wouldn’t, so at least I was spared the expense. I used google sheets to create a date field incrementing hour by hour for the full duration. I cut and pasted this list into a plain text document and followed every line with a comma. As I moused over every single separate square of the 100 and some possible festival hours, a little popup appeared with a list of everyone who said they were available at that time. I copied and pasted these lines into the text document. This gave me a bunch of lines starting with a date and time, followed by a bunch of identifiers.

I uploaded my new file as a CSV back to google sheets. Each row started with a time and the subsequent cells identified which groups were available. It was a perfect triangle wave of availability. Shelly had made a draft programme and it did not correspond to the listed availabilities. Worse, many of the groups had put their names in the form rather than the submission ID number, so I had to do a lot of database searching to figure out who “Joe Bloggs” was and eventually resolve everyone to an ID.

Then, once I knew who was who, it looked NP complete to figure out how and when to programme them. I found the least available bands and made graphs of when they could play. I started looking into what algorithms might cope with this completely intractable problem. It was then that Shelly put her foot down and demanded she take charge of this creative, curatorial problem. She came back the next day with a working schedule. I still have no idea how she did it.

Our old paypal account still existed and I started seeing notices of donations. But what was the password? The bank account it was linked to was long dead, but an old email with the account information contained enough detail that paypal let me back into the account. Thank goodness.

Around then, I went virtually to the Art Meets Radical Openness conference, which went extremely well, so I decided we should copy them as much as possible. They used BigBlueButton, which I liked, so we began looking for a BigBlueButton host. runs a server, so we asked them and because life is uncertain, I also asked a bunch of other people, two of whom agreed. One was senf call, which was great, but in German and the other was nixnet in North America. One thing we didn’t know was how many people could be in a single BBB meeting, so I read the FAQ for the software and it said it should be stress tested by getting some volunteers to all open five browser tabs to the service. I rounded up some friends and found definitively that if anyone opens five browser tabs to BigBlueButton, their laptop will crash. Later, our North American host laughed and said he regularly has groups of 100 people!

AMRO had backchannel chat in Matrix, so we did as well. They ran their own server, which it made it work way better than using the regular Matrix server. The invite link for that service leads to what looks exactly like an error page. I ended up putting a screenshot of that page on our website with an arrow showing where to click.

AMRO had a stream out via DorfTV and an audio-only stream via a radio station, so we decided to try to have a produced stream and an audio stream. The audio-only component was especially important to me, since my home internet quality is variable and I ended up replying on the audio stream to be able to listen to concerts. I’ll talk more about how we did the AV in another post.

AMRO had a website for the conference that had large portions that were just flat files. No caching. No overhead. Fast to load. No trackers. Holger Ballweg, Shelly’s partner, built a flat site for us that had a video player, a link to the audio player, a chat widget and a scrolling schedule that changed times based on your submitted time zone and told you what was coming when. He also made a bunch of pages for our exhibition of web installations.

I was trying to get something similar on the wordpress site, but the calendar plugins did not do what I wanted. We finally ended up making a bunch of Event Bright events and told people to use those to get their time zone. Those events also export in very few clicks to facebook, so we put up a a facebook event for every concert and workshop.

I exported all those events to a google calendar and then used IFFT to post about the events as they started to our official twitter account. I hope this drew people over. Most of our promotion of the open call and the festival was twitter and facebook. We also had a presence on mastodon, which cross-posed to my personal twitter account. I’d never deleted it, so I also turned Cheap Bots Done Quick on to it with some sincere left wing content and a bunch of posts about the festival. Shelly also wrote a press release and subsequently we were included in some concert listings as well as the Other Minds mailings, which certainly helped.

As the festival drew ever closer, my attention turned to the streaming process and also providing tech support to people inexperienced with streaming. We had “new to networking” categories and “student” categories and hoped to help people get into telematic performance who might not have done it before. After a long Jitsi meeting with someone new to networking, I wrote the conversation up in a blog post for fossbox. I learned how to do weird things with system audio in BigBlueButton.

I also started trying to harden the WordPress site against heavy traffic with SuperCache. This says it can’t cache the mobile site without Jetpack, so I installed the Jetpack plugin to find it has spyware in it. I set about trying to disable it, something their privacy policy notes the site owner can do. Their privacy policy doesn’t note that it requires either patching the source code or installing yet another plugin to patch the source code. Otherwise, it merrily ignores Do Not Track settings, sharing the data with their parent company. Alas, all of WordPress seems to be this kind of dodgy grift these days.

In the end, we presented 97 groups. We raised more than £1000 in donations. These are meant to go to the independent artists in the festival, of which I don’t yet have a count – they’ve got yet another form to fill out. I don’t know how many people passed on stage and backstage but it was a lot. We streamed roughly two terabytes of festival.

My todo list now is: Get away from wordpress to a lower-carbon system such as Hugo. Find and deploy a database with a Google-sheets-like interface, so I can do SQL while Shelly edits. Get rid of Google forever for real.

We’re planning on repeating the festival next year, so we really should start getting on funding applications. I felt a real sense of camaraderie in the VR algoraves, so it would be nice if the entire festival was in VR next time. Mozilla hubs is still kind of buggy, but hopefully it will be better by next year. Of course, Second Life supports audio streams, so there’s always a dual option for the overly old school among us.

It’s been a week and a half since the festival ended and I still feel slightly tired out after it. This post mostly only covers what I did for the festival but not Shelly. It would be more than twice as long if it included all of her intense work. There will be forthcoming a more how-to post on running the data admin. I’m not sure anyone would want to copy us, but it did work and I think a documented process is valuable. I’d like to see an AGPL solution that can be customisable for the arts. And, as promised, I’ll talk in detail about how we managed the streaming, as that ended up working really well.

If you want to make a donation, all of the money raised via paypal before 10 August will go to our independent artists.