Random Acts of Vulnerability
Random Acts of Vulnerability ist ein immersives Spiel für vier Spieler*innen in vier Dimensionen. Durch Erkundung und Dokumentation der jeweils eigenen Dimension, formen die Spieler*innen anhand des Gesammelten und Erlebten die Erzählungen selbst. Auf ein installatives Netz aus experimentellen Materialen, soften Schaltkreisen, meditativen Klangwelten, grotesken Interfaces und verzerrten Output-Signalen aufbauend, werden Fragen nach Isolation, Einsamkeit, immaterieller und haptischer Vernetzung und der Herstellung von Verhandlungsgrundlagen gestellt.
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann
Video: https://www.youtube.com/watch?v=850KCMYEAow&t=7s
relevant links
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT
code examples from the project
code for sounds in the dating-dome
CODE DESCRIPTION: 4 very sensitive "balloon-pushbuttons" on a makey makey trigger sound files. every minute there is a scene change and the sound files are updated. sound files should be stored in a folder called "data" within the sketch folder.
/*
RANDOM ACTS OF VULNERABILITY
code for sounds in the dating-dome
4 very sensitive "balloon-pushbuttons"
on a makey makey trigger sound files.
every minute there is a scene change
and the sound files are updated.
sound files should be stored in a folder
called "data" within the sketch folder.
*/
import ddf.minim.*;
Minim minim;
AudioSample sound0;
AudioSample sound1;
AudioSample sound2;
AudioSample sound3;
AudioSample sound4;
AudioSample sound5;
int delayTime = 800;
boolean w_released = true;
boolean d_released = true;
boolean s_released = true;
boolean a_released = true;
int maxCount = 3;
int w_count = 0;
int a_count = 0;
int s_count = 0;
int d_count = 0;
int szene = 0;
int previousSzene;
int soundChangeInterval = 5000;
void setup () {
size(1000, 800);
smooth();
minim = new Minim(this);
background(255);
}
void draw () {
szene = minute() % 3;
if (szene != previousSzene) {
previousSzene = szene;
println(szene);
if (szene == 0) {
sound0 = minim.loadSample("be.wav", 1000);
sound1 = minim.loadSample("come.wav", 1000);
sound2 = minim.loadSample("together.wav", 1000);
sound3 = minim.loadSample("withMe.wav", 1000);
}
if (szene == 1) {
sound0 = minim.loadSample("hihat_single.wav", 1000);
sound1 = minim.loadSample("hihat_single.wav", 1000);
sound2 = minim.loadSample("hihat_single.wav", 1000);
sound3 = minim.loadSample("hihat_single.wav", 1000);
}
if (szene == 2) {
sound0 = minim.loadSample("kick_single.wav", 1000);
sound1 = minim.loadSample("kick_single.wav", 1000);
sound2 = minim.loadSample("kick_single.wav", 1000);
sound3 = minim.loadSample("kick_single.wav", 1000);
}
}
}
void keyPressed() {
if ((key == 'w' || key == 'W') && w_released == true && w_count < maxCount) {
background(0);
w_released = false;
sound(0);
delay(delayTime);
w_count ++;
a_count = 0;
s_count = 0;
d_count = 0;
}
if ((key == 'a' || key == 'A') && a_released == true && a_count < maxCount) {
background(200, 0, 0);
a_released = false;
sound(1);
delay(delayTime);
a_count ++;
w_count = 0;
s_count = 0;
d_count = 0;
}
if ((key == 's' || key == 'S') && s_released == true && s_count < maxCount) {
background(0, 200, 0);
s_released = false;
sound(2);
delay(delayTime);
s_count ++;
w_count = 0;
a_count = 0;
d_count = 0;
}
if ((key == 'd' || key == 'D') && d_released == true && d_count < maxCount) {
background(0, 0, 200);
d_released = false;
sound(3);
delay(delayTime);
d_count ++;
w_count = 0;
a_count = 0;
s_count = 0;
}
}
void keyReleased() {
if (key == 'd' || key == 'D') {
d_released = true;
}
if (key == 'a' || key == 'A') {
a_released = true;
}
if (key == 's' || key == 'S') {
s_released = true;
}
if (key == 'w' || key == 'W') {
w_released = true;
}
}
void sound(int soundSample)
{
switch(soundSample) {
case 0:
sound0.trigger();
break;
case 1:
sound1.trigger();
break;
case 2:
sound2.trigger();
break;
case 3:
sound3.trigger();
break;
}
}
}