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
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.
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.
From there, we marched 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.
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.
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.
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.
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.
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.
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.
And a group of performance artists, who did slow processions and posing like medieval French Catholics on a holy day.
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.
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.
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.
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.
Trump wants a war. Fuck him. This is the letter I wrote for my liberal senators:
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
It is a program that does FFTs of audio files to display a spectrum which you can then edit. It’s not as fully-featured as AudioSculpt, but it’s compatible with your new Mac and the price is right.
When you open a file, it starts by asking you a few questions.
One of the things it asks is the bin spacing for the FFT. This should be narrower for low pitched sounds and can be wider for higher sounds. If you have a stereo file, it asks which channel you want to process. It works best with mono, so if you have a stereo file, you may wish to mix it down to mono or to process the left and right separately.
Constituent frequencies of a given sound, if they’re loud enough to be important, are called partials. All of the lines in the big window represent partials. Ones towards the bottom are lower in pitch and ones above are higher. Time moves from left to right. The darker partials are louder.
If you want to hear the sound, press space bar. If you don’t hear anything check the preferences and make sure audio is going to to correct output.
The transform menu contains a several things you can do to the sound. If no partials are selected, these will apply to every partial. Otherwise, they apply to only the ones which are selected.
To select a single partial, pick the arrow in the tools menu, and then click on the partial. To select a rectangular area, pick the plus sign, to select a free area, pick the lasso. You can shift click or shift select to grow a selection area. Also see the edit menu for options like inverting your selection.
When you hover over an item in the tools menu, the name of the item appears. These items include time stretching, moving, shifting, transposing and drawing in new partials. You can use the time stretch tool to just stretch selected partials in one part of the file.
You can save files, which are the analysis files that SPEAR has created and which you’ve modified. You can also save a rendering as an audio file. There are a few choices with this. You can do an additive re-synthesis using a bunch of sine waves or an IFFT. If unsure, experiment to see what sounds best with the particular file you’re editing.
This program has been written with GTK portability in mind, but I could not find a link to source code and no linux binaries seem to be available. I have written to the author to ask if he intends to make this a FLOSS project, as it seems like a really good fit for the Ubuntu Studio distribution. I’ll update if I hear back. Sending an email like this, is, of course, asking a favour, so I’m a bit worried that he might get this question a lot. In any case, releasing a mac compatibility update was definitely a public good.
Free Software is a great idea, but RMS’s public comments have become embarrassing to the organisation and the idea. I’ve advocated for Free Software for decades. If we’re going to succeed, we can’t immediately alienate 51% of the population. RMS has done great work in the past, but it’s time for him to step down.