Protests 6, 7 and 8

My 50 protests in 2020 project continues, but I’ve gotten a cold and feeling somewhat grim, so this round up may be weird.

Local Rebellion: Defend Councils Net Zero

Less than 1% of new homes built in Britain have an A energy rating. This means that they are badly insulated. Saving carbon with a heat pump is no good if the heat just leaks away in five seconds. Poorly insulated homes cause fuel poverty.

In 2018, only 1% of new homes in the UK were band A energy performance
Architects! Climate Action Network was involved in the protest.

Some councils, in an attempt to meet their carbon goals, have declared higher standards for new construction in their areas. However, the central government is trying to impose a national standard which undoes that, called “future homes”. This disempowers local councils and undoes their good work while also increasing pollution and misery.

Future gomes standard = climate catastrophe
Protestors engage in a tug of war where one side is “Local Government Net Zero 2025 Targets” and the other side is “Central Government Future Homes Standard”

Energy efficiency and homes of a decent standard of efficiency cannot be treated as luxury goods for the rich. This backwards-looking proposal suggests the government is not taking its carbon commitments seriously. Any chance to bestow favours on buy-to-let landlords would seem to outweigh the global need to cut carbon for the sake of everyone. Rich people will not benefit when their swanky Thames-front flats are flooded.

Stop Cargill

This is the weekly protest with Climate Save. This week was smaller than the first one, but I expect next week to be much larger and hopefully momentum will continue to build. You can come out next Friday and every Friday after around noon.

Climate Save
Climate Save in front of Cargill

Cargill’s actions really are shocking. Aside from working with Bolsinaro’s government to weaken standards for Amazon deforestation – their campaigning for him was a direct attack on LGBT people, they also are implicated in child slavery in Africa. Nestle sells the finished chocolate, but Cargill sells them the beans.

This week, they didn’t bother covering over their names. The issue of child slavery in chocolate has been widely documented. It’s outrageous and alarming that there can be an office building in central London that’s involved directly with slavery.

Night Pride

In response to some incidents around London, a group of local queers decided to have a series of Night Pride marches. This one started in Haggerston and went to Dalston. It was a few hundred people (maybe a thousand?) marching joyously while singing along to disco songs. There was, indeed, even a disco ball.

Night Pride
The Night Pride march

Once we got to the Dalston Superstore, some drag queens spoke and sung outside. The whole event was joyous and lovely. (Also a handsome young man seemed to be flirting with me! Although I think I was kind of feverish by then, so it’s possible he wasn’t)

Drag Street Performance
Drag performers at the end of the march

One of the groups in the march is a new antifa organisation called the Bender Defenders, who are determined to stop hate crime. They jackets are extremely nice.


I want to get well soon, so instead of typing out a synopsis of a few upcoming things, I’ll point you at the calendar and take a nap instead.

Protest 5/50: The worst company in the world

For my fifth protest, I joined the newly-formed Climate Save group to stand in front of the London headquarters of Cargill. This company does a lot of supply chain logistics for food, including animal feed. As such, they are very implicated in Amazon deforestation and have been working with Bolsinaro to weaken regulations in Brazil. They have a terrible track record with hurting workers, pollution and harming indigenous people. (We’ll leave aside the question of who is worst in the world, but they’re certainly prominently placed on this list.)

First Cargill Protest
I’m using Obscura Cam now to anonymise photos I upload and it mistook the building sign for a face!

We met up with a few XR protestors and chanted and there were a few short speeches. Climate Save is an offshoot of Animal Save and is an animal rights group. These groups sometimes make me feel uncomfortable, but the London branch of Climate Save seems very on it. They are a migrant-lead group of Spanish speakers from Europe and the Americas. This is an ongoing campaign, so I’ll be back this coming Friday with them again.

Climate Save at Cargill
Climate save at Cargill

Cargill, for their part, had a little panic. We showed up a little late and heard that the area had been crawling with police officers and Cargill had shut the building’s front entrance and covered over their name on the large directory listing on the front wall.

This repeating protest should continue to grow!

Other activities

Earth Strike

I went on Saturday to another leafleting event with Earth Strike, this one by Angel station. Our previous action got us two new members, so it wasn’t in vain, but I do feel like the uptake could be higher. I’d prefer to do a proper protest that also has outreach. There is a lot of institutional momentum, so we’ll see how this goes over. I want to show up at the next meeting with a concrete proposal. I’d also like to lead a mini-workshop clarifying goals, demands, aims and tactics. It’s very easy to confuse tactics with goals and it’s best to sort this out while the group is still new.

Earth Strike Table
Packing up after handing out a LOT of leaflets

Activist Cafe

Common House hosted a new event called the Activist Cafe, which will have roving venues. It was a chance for people to catch up with each other and promote future events. There was a speaker who is involved in the Pink Bloc in the Paris strikes. She was extremely cool. I may make a separate post about all the cool things she talked about.

Activist Cafe at Common House
There were maybe 50 people squeezed in the space?

Extinction Rebellion Tower Hamlets

I also went to an XRTH meeting. We broke into groups and I was helping organise the Tower Hamlets presence at the upcoming Put Out the Fire march, which will take place 22 February. We deicded to focus on how indigenous communities are effected by climate change and damaging resource extraction.

We also decided to have a feeder rally in Altab Ali park, by Aldgate East tube station. We hope many other groups come join this event. If you are active in human rights, climate justice or related areas, I hope you can please come along. We are looking for speakers, so do get in touch.

This will be:
Noon, 22 February
Altab Ali Park

It’s a short event, as we want to get to the main march location (TBA) for 1pm for a 2pm start. It’s a long day, but will be family friendly and a good first action for people just thinking about getting involved in the fight for climate justice.

Upcoming Events

I’ve got a public activist calendar online, which you can subscribe to! I don’t go to everything on the list, though. The next ones I’m likely to attend are:

Local Rebellion – Defend Councils’ Powers For Net Zero. The Tories say they’re green but are threatening to prevent local councils from going to zero carbon. Shame them into dropping this.
Noon, 6 February
Marsham St & Horseferry Rd Westminster, London SW1P 2AX

Climate Protest Against the WORST Company in the World. The ongoing action against Cargill.
Noon, 7 February
77 Queen Victoria Street, London, EC4V 4AY, United Kingdom

BP Must Fall! Get BP out of the British Museum and fight colonialism within the museum.
13:00 (1pm), 8 February
British Museum

Protest against Glencore! A british-owned multinational mining company that pollutes the planet and kills numerous child labourers.
13:00 (1pm), 29 February
50 Berkeley Street, Mayfair, London W1J 8HD


This week, I feel like my meeting/action ratio has been poor, which admittedly is part of why I want all outreach events to be proper protests!

It was extremely useful to meet up with the Green AntiCapitalist Front, however, and I’m extremely happy to be helping plan the upcoming XR-lead march.

It’s interesting how XR events have dizzyingly fast turnarounds which make it sometimes hard to do all the planning one would wish for, and Earth Strike has such a long leadup!

Protest 4/50: Up the Elephant

But first, what I did last weekend

Earth Strike at Dalston
Earth Strike tabling at Dalston Kingsland

On my weekend, instead of doing a proper protest, I did some flyering outside the Dalston Kingsland Overground station with Earth Strike North of the River. We’re a new branch of that group. It is an anti-capitalist green campaign that’s calling for a general strike to save the planet and an anti-imperialist approach to climate change.

We do a lot of leafleting. If you’ve got ideas about how to better engage people, leave a comment.

Up The Elephant

Up The Elephant
The tail end of the Up the Elephant protest

I showed up super late to a protest of about 100 people at the Southwark Town Hall offices. They are opposed to the “regeneration” plan at Elephant and Castle which will displace local traders and residents in order to build luxury housing.

There is a housing shortage in London, but not of luxury housing!

I stood next to the UCU banner (not pictured) and learned from others that the LCC, which is just across the road from the Elephant and Castle Underground Station, is a partner with the developer in the plan to gentrify the area.

There seemed to be a fair number of LCC lecturers out protesting and a fair few students as well.

Gentrification is a huge problem across London. Solidarity to everyone fighting it.

For more information about Up The Elephant, see their twatter stream.

Protest 3/50: Earth Strike Rolling Picket

Today’s protest was a rolling picket down Oxford street, targeting companies who create climate change. I got volunteered to give a speech on Boots, which I will attempt to reconstruct here:

My speech in front of Boots

Boots is a major distributor of palm oil. Palm oil suppliers to the many brands stocked at Boots, including Unilever, who makes Dove and Axe products; Netstlé; Colgate-Palmoilive and Modelez, have destroyed an area of rainforest almost twice the size of Singapore.

Did any of ask for this destruction? Do we want to damage rainforests, which are vital carbon sinks, places where people live and home to untold numbers plants and animals? This is not a choice that we have made, but a choice made by Boots, to keep costs down and profits up.

25 palm oil groups have cleared over 130,00 hectares of rain forest since the end of 2015. 40% of deforestation was in West Papua – one of the most biodiverse regions on earth and until recently untouched by the palm oil industry.

This was not a choice that you or I made. This is a choice made by Boots, Unilever and other multinational brands that see the rainforests as resources to be pillaged instead of a vital part of the health of our planet.

Boots also sells own-brand electrical products, which contain conflict minerals tantalum, tungsten, gold and tin. “Conflict minerals” means that people died in the making of these electronics. Boots chose to use these suppliers. It is possible to use materials not involved with conflicts, but this is more expensive, which would impact their profits. They sell us products for which people have died, something that we do not want, and did not ask for. Mining for these minerals also has a significant environmental impact.

More than 120 billion units of packaging is produced by the global cosmetics industry every year. This is plastic crap, things literally made to be thrown away. They sell us literal rubbish surrounding the things we want. We buy a pot of moisturiser and the packaging isn’t recyclable and the pot takes a thousand years to biodegrade. We buy a pot which is empty in six months, but the packaging lasts a millennia! Does anyone here want this kind of packaging? Do any of us hope that our empty, discarded moisturiser pots last for a thousand years? They are forcing rubbish on us! This is a decision that Boots has made.

What Boots sells must change! How they sell it must change!

The rolling picket

We started out in front of the tube station at Oxford Circus, tabling and handing out flyers.

Handing out leaflets

From there, we marched down Oxford Street.

Marching Down Oxford Street

We went to HSBC, and there was a speech about banking and the growing investments banks are making in fossil fuels. Then we marched to the next target and so on. We went to Zara, H&M, M&S, EE, Microsoft, the Brazilian Embassy, Boots, McDonalds and possibly a few more places.

Microsoft Picket

We wanted to make the point that climate change is driven by systemic issues, not individual choice. If Boots were to decide to market biodegradable packaging as a more expensive option, then it’s just a luxury good, not a solution.

Ultimately, solving the climate crisis is a transitional demand – which is to say that it’s fundamentally incompatible with the current imperialist system of capitalist exploitation. We need to build a more equitable future where green tech is shared globally and the countries producing the minerals get to reap the benefits not just the costs. Furthermore, those costs must be drastically reduced. Ultimately, we need to make less stuff. Less packaging, slower fashion. Again, this is a systemic change, not a shopping trend. All people need access to durable clothes, produced in a way that respects workers and the environment. Indeed, everything must change.

50 Protests in 2020

One of my New Years Resolutions is to be more politically active. I’m a citizen and things are, you know, bad, so I thought I’d get out more.

Election Protest

I started on this early by turning out the night after the general election. This was march of mostly young people. I felt like I was the oldest person in it. There were a few different groups in separate demonstrations who joined up by the time I found them.

Police Line

The police tried to keep these allied groups apart. They failed, but it was the first of many apparently legally unjustified acts I saw the police carry out that night. People have a right to protest and right to march and there is no justification for separating people.

The march moved very quickly. The police angrily raced through and around us, trying to prevent us from going down larger streets and pen us into a narrow secluded spot. The way they were running and shouting, seemed as if they were responding to some great emergency. I thought there’d been a stabbing, but no, it was us peacefully marching as is our constitutional right.

Marching towards Nelson's Column

I saw a line of police with batons raised, ready to rain them down on one single kid who was just trying to walk past them while the march went in a different direction. I talked to people who told me they’d been hit by police.

Eventually they did kettle us. On the way out of the kettle they photographed every participant, except for about 5 of us. Anyone wearing a scarf or mask was asked to remove it. Almost everyone complied. They did not have the right to ask for this, but they made those of us who refused wait until everyone else had gone before we could go.


At the end, instead of telling us we could go, they were rude and taunting. The best I can say is that they were significantly less violent than they were at the student protests, however, their actions seem unjustifiable and it’s hard to see how they’re fit for purpose.

1/ 50: Anti-war demonstration

Stop the War Coalition called an emergency rally by Downing Street in response to the tensions in Iran. A few hundred people turned up with very little notice, which was encouraging. There were several speakers, one of whom said that while the peace movements of 2003 failed to prevent the war in Iraq, they did prevent it from spreading into Iran.

Stop the war protest

It was nice to hear that we’d been successful in 2003 in anything.

After the speeches, it felt like there should have been a march but none was scheduled, so people gradually wandered off.

2/50: Australian Solidarity Protest

On Friday, Extinction Rebellion held a protest at the Australian High Commission in solidarity with demonstrations across Australia. This protest was showed great organisation and intense creativity. There were several striking art aspects of it, including the largest flag I’ve ever seen.

Enormous flag

And a group of performance artists, who did slow processions and posing like medieval French Catholics on a holy day.

Women in red

There was also a samba band that was one of the best I’ve heard in the UK. This combination of sight and sound and well-designed banners made the protest energetic and photogenic. There were also well-planned actions, including blocking traffic intermittently. There weren’t enough people to do an arrestable civil disobedience, so they just stood in the road until the police told them they had to move, so they did, waited several minutes and start again. The cops went along with this compromise.

Stopped bus

There was good gender parity of the speakers, many of whom were Australian, but all of whom seemed to be white. Most of the speakers were excellent. The formula they seemed to use was explaining the situation, personalising it, sharing their distress and then turning to an impassioned set of demands, sometimes engaging in call and response or getting the crowd to chant.

After the speeches ended, the samba band struck up again and many people had some of the free vegan food provided. This was served on paper plates with bamboo sporks. Many people used sidewalk chalk to writer their demands on the pavement.

It seemed like the protest probably numbered more than a thousand at it’s peak, which is a lot for a friday afternoon. I think many may have been people on their lunch breaks.

Protestors at the Australian High Commission

Policing Differences Between the Anarchist Kids and XR

The police treated the XR protest and the amarchist protest extremely differently and I’m going to make some guesses as to why.

The XR protest also had a lot of young people, but had far greater diversity of age, including a few pensioners and certain number of small children. The police seem to have contempt for teenagers and twenty somethings, but don’t want middle class, middle age people to witness this.

Both protests were pretty white, so I don’t know to what extent that played a role. The samba band seemed to be the only diverse section of the protest, although there were a few people of colour scattered in the crowd. It would look bad for the police to hassle a stationary samba band.

The anarchist march was extremely dynamic and unpredictable and openly adversarial to the police’s attempts to prevent them from protesting. XR’s protest was static. Not in terms fo the experience of being there, but the location and actions of the people involved were predictable. Note that the right to protest includes a right to be dynamic and unpredictable. What makes police officers slightly less angry is their problem.

And, indeed, a several of the police did seem incredibly angry and were unable to fully hide their contempt for democracy. It came out yesterday that the police consider XR to be an extremist organisation. The language in the report suggests that any group seeking more than the most cosmetic of reforms is extremist, so this should not be a surprise. The police representative contacted by the Guardian said the listing was a mistake and would be withdrawn.

How will XR react to this? The student protests and the battering of Climate Camp should make it clear that the police can’t be trusted, however, the student protests were mostly attended by students who mostly would have been in their 20s at the time. Those people remember the police actions, but older people don’t. Indeed, people who didn’t go to the climate camp won’t have reacted the same way to footage of police batons (or the actuality of police batons) the same as people who went to the camp. I had been there and I remember. Other people may have forgotten. Also, the police said they would change and they did somewhat.

I’ve just been inducted to XR – I cannot speak for anyone but myself, but I’m also not a complete outsider. In 2003, when I was at the war protests in San Francisco, we used to chant “out of the office and into the streets”. It seems like that is finally happening with XR. People have finally decided to act, which is great. However, the people coming out of the offices don’t have much experience with being over-policed at protests. I think some will accept the police’s explanations for now. This is a new and growing movement. Anything that mobilises people for their first time will have some naivety, which will, as a matter of course, be disabused. I feel hopeful about XR or I wouldn’t have joined.

Writing Candidates

And because now is the season of the primary, we can write letters to the 82681263 Democrats:

Dear Senator Warren,

I am considering voting for you in the primary but I want to hear you speak out against the assassination of Qasem Soleimani. Mr. Soleimani was a leader in a sovereign nation. Iran will rightly perceive this as an act of war. Surely we’ve had enough of starting wars in the middle east? How many more lives will we sacrifice there?

I hope I can count on you to put the breaks on Trump’s reckless foreign adventure.

How you respond to this issue will determine whether or not you have my support. Thank you for your time and your service.

For this, I am using the form on her campaign site. With the other candidates, I will probably tweak the wording somewhat, as I don’t want to fib. The circumstances that would lead me to vote for Biden, for example, would be rather fantastical.

Writing letters

Trump wants a war. Fuck him. This is the letter I wrote for my liberal senators:

Dear X,

I was very disturbed to read that the Trump administration carried out an assassination of Qasem Soleimani. Mr. Soleimani was a leader in a sovereign nation. Iran will rightly perceive this as an act of war. Surely we’ve had enough of starting wars in the middle east? How many more lives will we sacrifice there?

I hope congress acts to censure the president and reclaim it’s constitutional mandate to be the only body allowed to declare war. I hope I can count on you to put the breaks on Trump’s reckless foreign adventure.

I live at Y and voted for you in the last election. Thank you for your time and your service.

Best Regards,



I’m going to create a PDF of this letter to fax to my senators, using a free service. I hope they get a large pile of hard-to-ignore paper. It’s important to include my voting address so they know I live within their district and state.

My representative is actually a leftist and my letter to her will take a different tone about the immorality of drone strikes in general and wars of choice in particular. That will be sent by email. I trust her to do the right thing, but being able to cite the support of constituents is always helpful.

Letters to the editors of newspapers continue to carry a certain amount of weight, so I’ll send a few of those as well. Our congress is made up of cowards who will wait to see which way the wind is blowing before they act. We need to make out voices heard.

Quick Introduction to Doepfer

Like we did with the 100, we can set up an old school patch on the Doepfer. Here we’ve got a VCO going to a VCF, LPF, or low pass filter.

Doepfer VCO to VCF

Then we can go from the LPF to the VCA


We’re going to use MIDI in this example, so we’re going from the MIDI to CV converter gate output to the ADSR envelope generator. We’ve also plugged the VCA output into the mixer.


We can use the CV output to control both the VCO and the VCF

CV to VCO and VCF

If you want to use a keyboard or other MIDI device, you can use a MIDI cable. If you’re just using a laptop or a computer, you can also plug in a USB cable.

MIDI Cable

You can use the Doepfer to filter and process other sounds by going into the Ext Input module. You could plug in the DtoA converter of a computer to do things to a sound or could could come out of the Roland 100M’s mixer.

Ext Input

That module also does envelope following so if you want to use the Doepfer to do FM with a recorded sound, for example, you can follow the envelope, so the loudness of the source sound can be sent to the CV input to a VCA. This way, you have the sample amplitude profile as the source sound.

It’s ok to plug mixer output of the 100M into the Doepfer, but the CVs may have different ranges.

Getting Started with the Roland 100M modular synthesiser

The typical way people historically played these in bands was with keyboards. The keyboard outputs two control voltages. One is the gate, which is open when a key is pressed and closed when one isn’t, and the other is a CV which corresponds to the frequency associated with the particular key.

Roland keyboard

You would send the gate to an envelope generator. This is a module that makes a nicer shape than on or off, For instance, the Roland 100 has an ADSR envelope – Attack, Decay, Sustain, Release which vaguely corresponds to the amplitude profile of striking a piano key. It’s really loud, then it gets quieter and then it sustains for a while until you let go of the key, then when you release they key it goes to nothing. You can see in the photo that we have fast attacks and decays, and an almost instant release. The sustain level is quiet.

You’d send the CV to a VCO – a voltage controlled oscillator. It controls the pitch of the oscillator. You also want to turn up that control input – in the picture, it’s turned down.

Env & VCO

It’s also possible to plug in the keyboard so it’s output goes to all the modules on a row. This is by plugging in at the right hand side of the bottom section of any row.

CV and Gate plugs

The control inputs of the VCOs are at the bottom and the audio output is at the top of the module. Modern synthesisers usually do this the other way around.

Tune your oscillator
The left slider is up, so the keyboard in combination with the tuning knobs control the pitch

You need to tune your oscillators. You’ve plugged in your keyboard which tells the oscillator how to move the pitch up and down, but you haven’t set the base frequency. Use the tuning knobs to get the frequency to match the keyboard key.

VCO into VCF

In traditional synthesising, you would probably plug the out put of your oscillator into a votlage controlled filter, or VCF, which I’ve done there with the grey wire.


I’ve plugged the output of the filter into the input of the VCA. The voltage controlled amplifier lets us change how loud the sound is.

Envelope Generator to VCA

The I plug the envelope output to the control voltage input of the VCA. That’s using the red wire in the photo. The colours of the wires correspond only to how long they are. Otherwise, they’re identical.

VCA to mixer

I’ve sent the VCA output to a mixer and the mixer is plugged into the amp.

This patch is quite boring. I could send the gate to a second envelope generator to control the filter. Or I could send the VC to a bunch of slightly detune oscillators. This can sound very nice with sawtooth waves.

There’s also the option to use one oscillator to modify another, which is FM or I could use an oscillator to modify an VCA, which is AM. Those make more complicated spectra for sounds.

Putting a complicated spectra or noise through a filter is called subtractive synthesis. People used to put synthesisers based on what their filters sounded like so they could do this kind of synthesis. Low pass filters were an especially popular way of doing this, but people also used other shapes like high pass, band pass and band reject.

The Roland has a lot of oscillators, so you can also do some additive synthesis where you take a bunch of waves (like detuned saws) and add them together, but sending them all to a module that takes multiple inputs, like a filter, mixer or VCA.

You can send any kind of audio into a filter, VCA, or mod input to an oscillator, if you want to change the spectrum of a recording using the synthesiser.

A word of warning on this particular synthesiser is that the arpeggiator on the keyboard is broken and it will sound weird if you try to use it. You’ll have to turn off the keyboard and let it cool down.

Creative Coding

About two weeks ago, the very interesting artist, Sophie Hoyle approached me to code a video cutter and graphics display using theta brain waves. This was for a performance at the new Science Gallery in conjunction with their exhibit on anxiety.

I’ve done a biometric video cutting app for Sophie before, so I said ok, despite the quick turnaround. This fast time frame was not their fault. The first brain wave reader they ordered was stopped by UK Customs and returned to the sender. So they then ordered a more consumer-focused brainwave reader and hired me once it arrived.


The Emotiv is a very Kickstarter, very Silicon Valley brain wave headset. It comes with an iPhone app or Android app which asks for an enormous and completely unnecessary amount of personal data, which is sent back to the company in the US, where they can mine it in various ways completely unrelated to product functionality. People buy this thing to use it while meditating, to monitor whether they are getting the right brain wave shapes. Some might argue that this is, perhaps, a misunderstanding of the goals and practices of meditation, but those people have not spent enough time in corporate offices in San Jose.

When it launched on kickstarter, there was a community SDK supporting all the various operating systems, including Linux. This was since dropped in favour of an API for windows and a separate one for Mac only. It requires an API key to get access to the some the data. You can rent the API key from them for a modest fee that makes sense if you think you’re going to sell a lot of apps. The art and educational markets are kind of neglected. Nevertheless, some intrepid soul worked backwards to decode the data and built a python library to access it.

Python is really great to write, but the Python 2/3 divide has always confused me. Plus it’s very easy to accidentally get ten different versions of the same library on one’s computer. It took me an embarrassingly long time to get my python libraries under control.

XKCD’s system and mine are alarmingly similar

Then I found that the reverse-engineered library was relying on a different version of the HID library. I started trying to work that out and ran into a wall. I started to try to update the emotiv library itself, but that way lies danger, so I quickly gave up and switched to a Mac I’d borrowed from my uni, so I could use the official API.

The Mac has a relatively new OS, but is 9 years old, so I had to download an old version of XCode. This is how I learned that old versions of XCode look like they’re available from Apple, but once you spend hours downloading them, something weird is going on with key authentication and they won’t unzip. I borrowed a laptop from Sophie and couldn’t get XCode on to it either.

There was always an option of doing things not-quite live where we could record a visualisation of the brainwave data, cut a video to that data and have live music based on the prepared video, so the music would react live to the brainwaves, but nothing else would. It’s sub-optimal, but time was running really short. I couldn’t get the emotive to pair successfully with either computer because it only works with extremely recent operating systems.

(The commercial world of software and operating systems is a hell-scape where people with more money than you try to prevent you from being able to use expensive things which you’ve already purchased. I cannot believe what people put up with. Come to linux. We want you to be able to actually use your stuff!)

I gave the device back to Sophie with intense apologies, saying I’d had no luck and they’d be better off doing their own recording and cutting the video to it, because there was nothing I could do. It was about 3 days before the performance. this was not good. I felt terrible. They were in a panic. Things were bad.

They found a computer with a new operating system and also could not get the device to work. They gave it to the sponsoring organisation who had purchased it and it didn’t work for them either. It was a £500, over engineered, under functional, insufficiently tested, piece of kick starter shit.

The Emotiv gets 0 stars out of every star in the galaxy.


About 2 days before the performance, they told me they still the bitalino from the last project of theirs that I worked on and would that work? I said it would, so, with less than 48 hours to go, I went and picked up the device.

Alas, I did not write down how to get it to pair from previously, so I spent a lot of time just trying to connect to it. Then I had to figure out how to draw a graph. The Gallery, meanwhile was freaking out. All I had was a white screen with a scrolling graph made up of extremely fake data that didn’t even look convincing. They wanted me to come in and show what I had. Nothing was working. I showed up an hour late and everything looked like shit.

Then, while I was there, I figured out how to get the bloody thing to connect. “That’s real data!” I shouted, pointing at the projection, jumping up and down. There were 24 hours left and I had 1.5 hours of teaching to do the next morning.

I went home and wrote a quick bandpass filter with OSC callback in SuperCollider. The Processing program would start a SuperCollider synth and reset an input value whenever it read data from the device. The synth would write that to a control bus. A separate synth read from the control bus and did a band pass filter on it. Theta waves are about 4 Hz, so hopefully this is good enough. I did an RMS of the filter output to figure out how much theta was going on. Then sclang sent OSC messages back to processing telling it the state of the amplitudes of the bank of bandpass filters.

In case the bitalino crapped out (spoiler: it didn’t), I wrote an emergency brown noise generator and used it for the analysis. Both looked great.

The I went to work on the video switching. It was working brilliantly, but at the size of a postage stamp. I got it to full screen and it stopped working. It was time for the tech check.

I went to the gallery, still unsure what was going on with the video switching. I finally discovered that Processing won’t grab images form the video file when Jack is running. SuperCollider relies on Jack to run it’s server even if, as in this case, it’s not producing any output audio.

I quickly set out to write a bandpass filter. I got a biquad programmed and got the right settings for it when I realised I didn’t know how to make brown noise to compensate for possible data dropout. I decided to declare a code freeze, rely on the SuperCollider and miss out on the video cutting and use a prepared video.

I started working out a protocol to ensure I could always get a good bluetooth connection, which worked.

All of the now-working thing is on github, with some better documentation.

The Sound Check & Performance

Sound Check

The Sound Check went brilliantly, but they played for the full duration until just before the show was to start. I was worried about having time to reset the Bluetooth, but it was ok and I didn’t need to reset everything. Then Sophie went to the loo whilst still wearing the bitalino. The connection dropped.

The crowd was at the door. I rebooted everything and it connected, but the screens got reversed in processing, so it opened the waves in the wrong window. I rebooted again and it was wrong again! I dragged the window around to be full screen on the projector, but it was blank. However, if I put Gnome into that mode where all the windows are made small so you can look at them and fine the one you want, then you could see the graph. So the whole thing ran in that mode. The rendering was impacted, but the idea got across.


The sponsoring organisation and the gallery were both very happy. It was the most attended performance to date since they got the space. The audience seemed happy and I overheard some positive comment.

I hadn’t slept more than a few hours a night for well over a week as a desperately tried to get this thing to work, so I was quite grumpy afterwards. I went home and slept for like 11 hours. I feel like a new man.

Lessons Learned

I didn’t know the Emotiv wasn’t properly supported because I didn’t properly read the support documents before accepting the gig. If I’d done adequate research before accepting, I would have known that I couldn’t deliver the original plan. Also, I should have noticed that their software store of third party apps has no content. That was a massive warning sign that I missed.

I didn’t know the actual Emotiv they got was broken because I always assume every problem is a software problem on my computer. This is often correct, but not always. It should have been a bigger red flag when it wouldn’t work with my android (which also often had software issues). I should have tested it with an iphone immediately straight after it failed to work with my android. I could have known within a few hours that it was fucked, but I carried on trying to figure out python issues.

Ideally, I’d like to get involved in future projects at an earlier stage – like around the time that equipment is being debated and purchased. I understand exactly why curators and artists don’t hire code monkeys until after they’ve got the parts, but knowing more about the plans earlier on could have lead to the purchase of a different item or just using the bitalino from the start.