Flow Over Water Borders at Staatsoper, Berlin

Intervening with Panke River water

Flow Over Water Borders
Sound Installation

14th and 15th June 2019
Junge Staatsoper

How does the water change when people act upon it? 

How do we personally change when we interact with other people?

We all have borders. Learning how to navigate them is important. Wether we are overcoming personal hurdles or opening up to others, the process creates changes in both ourselves and others.

“Flow Over Water Borders” at the Staatsoper Berlin, explores the parallel between urban life for young people and the changes occurring in water as it passes through the city. The sound installation explores the meaning of boundaries, the fluid nature of the self and the eternal navigation of the individual as part of society.

Audio recordings were created with class 7c during a co-creation workshop investigating the Panke River in Berlin Wedding as part of the project “DIY Hack the Panke” (Art Laboratory Berlin). Recordings were taken using special instruments developed by the artist, Kat Austen, which generate sounds from the measurement of chemical properties of water.

Part of Wasserklang Orchester.

NB: Entry to the exhibition is only available to Theatre ticket holders.

Wasserklang Orchester workshops DIY Hack the Panke with Gustav-Freytag-Schule

Hydrophone recordings of Berlin waters

Kat will be working during the week of 20th May with students from the Gustav-Freytag-Schule to make sound recordings from water using her hacked scientific instruments and DIY hydrophones, as part of the DIY Hack the Panke project. These recordings will be composed, along with piano compositions with the school’s Klavier AG, into a sound installation at the Berlin Staatsoper in June 2019.

Sensing Water at ZEM Potsdam

Using a hacked pH meter to listen to the acidity of water

13th-14th May 2019
ZeM, Potsdam and surrounds

Kat Austen will be working with participants from the ZeM SENSING PhD programme to explore the human relationship with water using artistic research techniques that meld together embodied explorations with those mediated by sensing equipment. This workshop introduces participants to two artistic research methods that make use of scientific equipment and embodied techniques to connect with water, and facilitates the exploration of local water using these methods.

Time Slides #Success and Time Slides #Fail


The plan was to go to over to the gallery to set up at 2:30. At 2:26, after a week of late nights and frantic preparation to make Time Slides record and play back in a responsive loop, I plugged the external battery into the sound card – there was a spark, and it stopped working. A little warning LED started blinking. That was it – the audio card was dead.


I know the whole point about the exhibition – The Ability To Fail in Public – was to embrace the potential of failure and see it in a constructive and creative light, but having put in so much work on the project, to have achieved close to what was wanted at the outset in so short a time, and then to have it break at the last minute… that was quite a blow.

Dejected, I drew black tears on my face – the bitter tears of failure – and packed up to go.

At that point, the cavalry suggested exhibiting the defunct electronics at the show, plugged in so that the visitors could see its pathetic blinking. We decided to check to see if we could power it with the battery pack alone, so it was more portable for display. Having pulled the necessary bits together, we plugged in and lo! it worked.

Thereafter ensued a frantic 5 hours of tree climbing (to install Time Slides #Fail) and cupboard renovating (to create a novel exhibition site for Time Slides), before the first visitors showed up at the Kreuzberg Pavillion and started to engage with the work.

Time Slides and Time Slides #Fail both went down a storm tonight.

Time Slides is an interactive work reminiscent of a spider in form. It records and creates layers of sound from passers by, playing them back to create a vertical slice through time in one place. It is created as a highly intimate experience, and as with the other works in The Ability to Fail in Public, it focusses the visitor on the auditory experience – in this case using sound to create temporal distortions.

Here’s Time Slides in action:

Time Slides #Fail is much harder to capture on camera. It superimposes an evening in Brussels when Belgium played in the World Cup onto an evening in Berlin when Germany played, distorting time and space together to reveal the unique and similar elements of national experiences.

Installed in front of the gallery, in a tree on the square at Naunynstraße, the sounds of the busy Brussels streets, recorded just as Belgium won against Algeria in the World Cup last week, were extremely at odds with the visual stimuli of the surroundings. Passers by would look around confusedly, and the disjuncture produced had a particularly strong effect on cyclists, whose sensitivity to traffic noise is very important in addressing their vulnerability on the road.

Here’s the audio for Time Slides #Fail:

You can see some super pics of the exhibition on their facebook page of the event.

Time Slides was a great success, and Time Slides #Fail was deemed “Formidable!” by one visitor. We did, however, fail to fail.

**Edited to include media for Time Slides #Fail

Many thanks go to Claudia Mannigel, who initiated and organised the exhibition, Heiko and Alessandro from Kreuzberg Pavillion, Jun Matsushita and Sam Carlisle.


More Code – trying to loop and layer in ChucK

I’m still battling with ChucK. I can now record and play back in real time, but can’t loop. Record and play back in real time:


adc => LiSa loopme => dac;

//alloc memory

60::second => loopme.duration;

//set number of layers

10 => loopme.maxVoices;

// print get voice

<<< loopme.getVoice >>>;

//start recording input


<<< “recording” >>>;

2000::ms => now; loopme.play(1);

2000::ms => now; loopme.play(0);

//10 sec later, stop recording //10000::ms => now;

//loopme.record(0); 500::ms => now;


However, looping doesn’t work and I can’t work out why because I don’t understand all the syntax in the example file… Here’s my messy attempt.

adc => Envelope e => LiSa loopme => dac;

//alloc memory
10::second => loopme.duration;
//confirm that the length of the buffer is what you expect
<<<“buffer duration = “, loopme.duration() / 44100.>>>;
//set number of layers
10 => loopme.maxVoices;
// print get voice
<<< loopme.getVoice >>>;

//440. => loopme.freq;
//0.2 => loopme.gain;

//set times for recording fade in/out and sample loop length
100::ms => dur recfadetime;
2000::ms => dur mylooplen;

//start recording input; record 2 seconds worth
e.keyOn(); //can also do without the Envelope and use loopme.recramp(dur) to set a recording ramp
//1000::ms => dur loopme.recramp;
now + (mylooplen – recfadetime) => time later;
while(now < later) {

//    pitchmod.value() => loopme.freq;
1000::ms => now;
//2000::ms => now;
recfadetime => now;


<<< “recording” >>>;

//disconnect input and hangout a bit
loopme =< dac;
1000::ms => now;
<<< “hanging out” >>>;

//now, manipulate the sample
//    get a voicenumber; note that this voice won’t actually be reserved until you play it
loopme.getVoice() => int voice1;

<<< “getting voice number 1” >>>;

//we’ll play voice 1 forward, and then crossfade it with voice 2 backwards
loopme.play(voice1, 1);

<<< “play voice 1” >>>;
//(mylooplen – recfadetime) => now;

//just as voice 1 is going to fade, bring in voice 2
loopme.getVoice() => int voice2;
loopme.rate(voice2, 1.);
loopme.playPos(voice2, mylooplen);
//loopme.voiceGain(voice2, 0.2);
loopme.play(voice2, 1);

//wait until voice 1 had finished fading, then turn off
recfadetime => now;
loopme.play(voice1, 0);

//wait for voice 2 to finish
2000::ms => now;


////start recording input
//<<< “recording” >>>;

//2000::ms => now;



//2000::ms => now;


//10 sec later, stop recording
//10000::ms => now;

500::ms => now;