<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://hyperdramatik.net/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lena.boeckmann</id>
	<title>hyperdramatik - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="http://hyperdramatik.net/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lena.boeckmann"/>
	<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php/Spezial:Beitr%C3%A4ge/Lena.boeckmann"/>
	<updated>2026-06-10T07:10:13Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2724</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2724"/>
		<updated>2021-12-01T13:41:17Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: /* Sound */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
*Stretch-Jersey&lt;br /&gt;
*Polymorph&lt;br /&gt;
*Audiojacks&lt;br /&gt;
*Aux-Kabel&lt;br /&gt;
*Kunstblumen&lt;br /&gt;
*Röhrenfernsehe&lt;br /&gt;
etc...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
*Processing-Codes&lt;br /&gt;
*Fingerhäkeln: https://www.youtube.com/watch?v=vfScF5EQ3sU&lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
 &lt;br /&gt;
*Klangbeispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 2 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
== Sound/Klang == &lt;br /&gt;
&lt;br /&gt;
Beispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= MINI-DOME  =&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2723</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2723"/>
		<updated>2021-12-01T13:40:55Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: /* Softe Materialien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
*Stretch-Jersey&lt;br /&gt;
*Polymorph&lt;br /&gt;
*Audiojacks&lt;br /&gt;
*Aux-Kabel&lt;br /&gt;
*Kunstblumen&lt;br /&gt;
*Röhrenfernsehe&lt;br /&gt;
etc...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
*Processing-Codes&lt;br /&gt;
*Fingerhäkeln: https://www.youtube.com/watch?v=vfScF5EQ3sU&lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
 &lt;br /&gt;
Klangbeispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 2 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
== Sound/Klang == &lt;br /&gt;
&lt;br /&gt;
Beispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= MINI-DOME  =&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2720</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2720"/>
		<updated>2021-12-01T13:39:54Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: /* Softe Materialien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
*Stretch-Jersey&lt;br /&gt;
*Polymorph&lt;br /&gt;
*Audiojacks&lt;br /&gt;
*Aux-Kabel&lt;br /&gt;
*Kunstblumen&lt;br /&gt;
*Röhrenfernsehe&lt;br /&gt;
etc...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
Processing-Codes&lt;br /&gt;
&lt;br /&gt;
Fingerhäkeln: https://www.youtube.com/watch?v=vfScF5EQ3sU&lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
 &lt;br /&gt;
Klangbeispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 2 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
== Sound/Klang == &lt;br /&gt;
&lt;br /&gt;
Beispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= MINI-DOME  =&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2719</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2719"/>
		<updated>2021-12-01T13:39:44Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: /* Softe Materialien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
*Stretch-Jersey&lt;br /&gt;
*Polymorph&lt;br /&gt;
*Audiojacks&lt;br /&gt;
*Aux-Kabel&lt;br /&gt;
*Kunstblumen&lt;br /&gt;
*Röhrenfernsehe&lt;br /&gt;
etc...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
Processing-Codes&lt;br /&gt;
Fingerhäkeln: https://www.youtube.com/watch?v=vfScF5EQ3sU&lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
 &lt;br /&gt;
Klangbeispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 2 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
== Sound/Klang == &lt;br /&gt;
&lt;br /&gt;
Beispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= MINI-DOME  =&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2718</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2718"/>
		<updated>2021-12-01T13:39:14Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: /* Softe Materialien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
*Stretch-Jersey&lt;br /&gt;
*Polymorph&lt;br /&gt;
*Audiojacks&lt;br /&gt;
*Aux-Kabel&lt;br /&gt;
*Kunstblumen&lt;br /&gt;
*Röhrenfernsehe&lt;br /&gt;
etc...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
Processing-Codes&lt;br /&gt;
Fingerhäkeln [https://www.youtube.com/watch?v=vfScF5EQ3sU]&lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
 &lt;br /&gt;
Klangbeispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 2 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
== Sound/Klang == &lt;br /&gt;
&lt;br /&gt;
Beispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= MINI-DOME  =&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2716</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2716"/>
		<updated>2021-12-01T13:38:42Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: /* Softe Materialien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
*Stretch-Jersey&lt;br /&gt;
*Polymorph&lt;br /&gt;
*Audiojacks&lt;br /&gt;
*Aux-Kabel&lt;br /&gt;
*Kunstblumen&lt;br /&gt;
*Röhrenfernsehe&lt;br /&gt;
etc...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
Processing-Codes&lt;br /&gt;
[[Fingerhäkeln|https://www.youtube.com/watch?v=vfScF5EQ3sU]]&lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
 &lt;br /&gt;
Klangbeispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 2 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
== Sound/Klang == &lt;br /&gt;
&lt;br /&gt;
Beispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= MINI-DOME  =&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2715</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2715"/>
		<updated>2021-12-01T13:37:13Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: /* Harte Materialien */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
*Stretch-Jersey&lt;br /&gt;
*Polymorph&lt;br /&gt;
*Audiojacks&lt;br /&gt;
*Aux-Kabel&lt;br /&gt;
*Kunstblumen&lt;br /&gt;
*Röhrenfernsehe&lt;br /&gt;
etc...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
Codes Processing&lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
 &lt;br /&gt;
Klangbeispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 2 =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
== Sound/Klang == &lt;br /&gt;
&lt;br /&gt;
Beispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= MINI-DOME  =&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2704</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2704"/>
		<updated>2021-12-01T13:15:56Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Polymorph, Kunstrasen, Audiojacks, Aux-Kabel, Kunstblumen, Röhrenfernseher, Jersey, etc...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
Codes Processing&lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
 &lt;br /&gt;
Klangbeispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 2 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Kunstrasen, Number pad, Bürstenroboter, ...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
&lt;br /&gt;
Beispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 3 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
== Sound/Klang == &lt;br /&gt;
&lt;br /&gt;
Beispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2703</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2703"/>
		<updated>2021-12-01T13:14:28Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
Polymorph, Kunstrasen, Audiojacks, Aux-Kabel, Kunstblumen, Röhrenfernseher, Jersey, etc...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
Codes Processing&lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
 &lt;br /&gt;
Klangbeispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 2 = &lt;br /&gt;
&lt;br /&gt;
- Materialien: Kunstrasen, Number pad, Bürstenroboter, ...&lt;br /&gt;
&lt;br /&gt;
= DOME 3 = &lt;br /&gt;
&lt;br /&gt;
- Materialien: Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2702</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2702"/>
		<updated>2021-12-01T13:14:03Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
== Harte Materialien ==&lt;br /&gt;
&lt;br /&gt;
 Polymorph, Kunstrasen, Audiojacks, Aux-Kabel, Kunstblumen, Röhrenfernseher, Jersey, etc...&lt;br /&gt;
&lt;br /&gt;
== Softe Materialien == &lt;br /&gt;
&lt;br /&gt;
 Codes Processing&lt;br /&gt;
&lt;br /&gt;
== Sound == &lt;br /&gt;
 &lt;br /&gt;
Klangbeispiele hochladen&lt;br /&gt;
&lt;br /&gt;
= DOME 2 = &lt;br /&gt;
&lt;br /&gt;
- Materialien: Kunstrasen, Number pad, Bürstenroboter, ...&lt;br /&gt;
&lt;br /&gt;
= DOME 3 = &lt;br /&gt;
&lt;br /&gt;
- Materialien: Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2701</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2701"/>
		<updated>2021-12-01T13:12:20Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
- Materialien: Polymorph, Kunstrasen, Audiojacks, Aux-Kabel, Kunstblumen, Röhrenfernseher, Jersey, etc...&lt;br /&gt;
&lt;br /&gt;
= DOME 2 = &lt;br /&gt;
&lt;br /&gt;
- Materialien: Kunstrasen, Number pad, Bürstenroboter, ...&lt;br /&gt;
&lt;br /&gt;
= DOME 3 = &lt;br /&gt;
&lt;br /&gt;
- Materialien: Watte, Silikon, Kunstblumen, LED-Kerzen....&lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
	<entry>
		<id>http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2700</id>
		<title>Random Acts of Vulnerability</title>
		<link rel="alternate" type="text/html" href="http://hyperdramatik.net/mediawiki/index.php?title=Random_Acts_of_Vulnerability&amp;diff=2700"/>
		<updated>2021-12-01T13:10:55Z</updated>

		<summary type="html">&lt;p&gt;Lena.boeckmann: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;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.&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
Eine Arbeit von: Zoe Lohmann, Ella Estrella Tischa Raetzer, Rodolfo Acosta Castro, Lena Böckmann&lt;br /&gt;
&lt;br /&gt;
Video: https://www.youtube.com/watch?v=850KCMYEAow&amp;amp;t=7s&lt;br /&gt;
&lt;br /&gt;
https://live.staticflickr.com/65535/51681534884_545f161fd9.jpg&lt;br /&gt;
&lt;br /&gt;
= dokumentation_JAM =&lt;br /&gt;
&lt;br /&gt;
[[File:doku_nextLevel.jpg| thumb |Die Frage ist: wie stellt man eine Dokumentation?]]&lt;br /&gt;
&lt;br /&gt;
* Bilddokumentation sammelt und einordnen&lt;br /&gt;
* künstlerisch/ästhetisch mit dem Material umgehen&lt;br /&gt;
* Dokumentieren auch Fehler, persönliche Ansprüche und Gespräche, Unerwartetes genauso wie&lt;br /&gt;
* Code-Snippets, Schaltpläne, Materialen, Skizzen&lt;br /&gt;
* usw.&lt;br /&gt;
*let´s go!&lt;br /&gt;
&lt;br /&gt;
= DOME 1 = &lt;br /&gt;
&lt;br /&gt;
= DOME 2 = &lt;br /&gt;
&lt;br /&gt;
= DOME 3 = &lt;br /&gt;
&lt;br /&gt;
= relevant links =&lt;br /&gt;
&lt;br /&gt;
ESP with Arduino: http://hyperdramatik.net/mediawiki/index.php?title=ESP32_mit_Arduino&lt;br /&gt;
&lt;br /&gt;
MQTT: http://hyperdramatik.net/mediawiki/index.php?title=Hauptseite#MQTT&lt;br /&gt;
&lt;br /&gt;
DOMEs: http://hyperdramatik.net/mediawiki/index.php?title=Dome_Pod_KIT&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= code examples from the project =&lt;br /&gt;
&lt;br /&gt;
== Arduino code for sounds in the fishing-dome ==&lt;br /&gt;
&lt;br /&gt;
// running on an ESP [[Spaghetti Monster]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
&lt;br /&gt;
byte analogPins[] = {&lt;br /&gt;
36, 39, 34, 35, 32, 33&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    pinMode(analogPins[i], INPUT);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.begin(9600);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
  for (int i = 0; i &amp;lt; numOfSensors; i++) {&lt;br /&gt;
    Serial.print(analogRead(analogPins[i]));&lt;br /&gt;
    Serial.print(&amp;quot;\t&amp;quot;);&lt;br /&gt;
  }&lt;br /&gt;
  Serial.println();&lt;br /&gt;
  delay(20);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the fishing-dome ==&lt;br /&gt;
 &lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the fishing-dome&lt;br /&gt;
 &lt;br /&gt;
 6 textile stretch sensors trigger&lt;br /&gt;
 6 different sounds &lt;br /&gt;
 when they pass a threshold.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import processing.serial.*;&lt;br /&gt;
import ddf.minim.*;&lt;br /&gt;
Serial myPort;    &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
//change these:&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
int numOfSensors = 6;&lt;br /&gt;
int ADCmax = 4095; &lt;br /&gt;
//int ADCmax = 1023;&lt;br /&gt;
float[] sensorThresholds = {1000, 1000, 1000, 1000, 1000, 1000};//new float[numOfSensors];&lt;br /&gt;
///////////////////////////////////&lt;br /&gt;
&lt;br /&gt;
float[] sensorValues = new float[numOfSensors];&lt;br /&gt;
float[] previousSensorValues = new float[numOfSensors];&lt;br /&gt;
float xpos = 0;&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(600, 400);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  background(255);&lt;br /&gt;
&lt;br /&gt;
  println(Serial.list());&lt;br /&gt;
  String portName = Serial.list()[1];&lt;br /&gt;
  myPort = new Serial(this, &amp;quot;/dev/cu.SLAB_USBtoUART&amp;quot;, 9600);&lt;br /&gt;
  myPort.clear();&lt;br /&gt;
  myPort.bufferUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  sound0 = minim.loadSample( &amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound1 = minim.loadSample(&amp;quot;crazyfrogbardcore.wav&amp;quot;, 512);&lt;br /&gt;
  sound2 = minim.loadSample(&amp;quot;musterfinal.wav&amp;quot;, 512);&lt;br /&gt;
  sound3 = minim.loadSample(&amp;quot;harddisc_grummeln_kurz.wav&amp;quot;, 512);&lt;br /&gt;
  sound4 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 512);&lt;br /&gt;
  sound5 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 512);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  graph();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void graph() {&lt;br /&gt;
  for (int i=0; i&amp;lt;numOfSensors; i++) {&lt;br /&gt;
    if (sensorValues[i] &amp;lt; sensorThresholds[i]) sound(i);&lt;br /&gt;
&lt;br /&gt;
    // map the incoming values to an appropriate range:&lt;br /&gt;
    float ypos = map(sensorValues[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
&lt;br /&gt;
    // figure out the y position for this particular graph:&lt;br /&gt;
    float graphBottom = i * height/numOfSensors;&lt;br /&gt;
    ypos = ypos + graphBottom;&lt;br /&gt;
&lt;br /&gt;
    // draw the graph bottoms:&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    line(0, graphBottom, width, graphBottom);&lt;br /&gt;
&lt;br /&gt;
    // draw the thresholds:&lt;br /&gt;
    stroke(200, 0, 0);&lt;br /&gt;
    strokeWeight(1);&lt;br /&gt;
    float redLine = map(sensorThresholds[i], ADCmax, 0, 0, height/numOfSensors);&lt;br /&gt;
    line(0, redLine + graphBottom, width, redLine + graphBottom);&lt;br /&gt;
&lt;br /&gt;
    stroke(0);&lt;br /&gt;
    strokeWeight(2);&lt;br /&gt;
    line(xpos, previousSensorValues[i], xpos+1, ypos);&lt;br /&gt;
&lt;br /&gt;
    previousSensorValues[i] = ypos;&lt;br /&gt;
&lt;br /&gt;
    // if you've drawn to the edge of the window, start at the beginning again:&lt;br /&gt;
    if (xpos &amp;gt;= width) {&lt;br /&gt;
      xpos = 0;&lt;br /&gt;
      background(215);&lt;br /&gt;
    } else xpos+=0.1;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void serialEvent (Serial myPort) {&lt;br /&gt;
  // get the ASCII string:&lt;br /&gt;
  String inString = myPort.readStringUntil('\n');&lt;br /&gt;
&lt;br /&gt;
  // if it's not empty:&lt;br /&gt;
  if (inString != null) {&lt;br /&gt;
    // trim off any whitespace:&lt;br /&gt;
    inString = trim(inString);&lt;br /&gt;
&lt;br /&gt;
    // convert to an array of ints:&lt;br /&gt;
    int incomingValues[] = int(split(inString, &amp;quot;\t&amp;quot;));&lt;br /&gt;
&lt;br /&gt;
    if (incomingValues.length &amp;lt;= numOfSensors &amp;amp;&amp;amp; incomingValues.length &amp;gt; 0) {&lt;br /&gt;
      for (int i = 0; i &amp;lt; incomingValues.length; i++) {&lt;br /&gt;
        sensorValues[i] = incomingValues[i];&lt;br /&gt;
        print(sensorValues[i] + &amp;quot;\t&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      println();&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 4: &lt;br /&gt;
    sound4.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 5: &lt;br /&gt;
    sound5.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Processing code for sounds in the dating-dome ==&lt;br /&gt;
&lt;br /&gt;
 CODE DESCRIPTION:&lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;js&amp;quot; line start=&amp;quot;2&amp;quot; highlight=&amp;quot;4-6&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 RANDOM ACTS OF VULNERABILITY&lt;br /&gt;
 code for sounds in the dating-dome&lt;br /&gt;
 &lt;br /&gt;
 4 very sensitive &amp;quot;balloon-pushbuttons&amp;quot; &lt;br /&gt;
 on a makey makey trigger sound files.&lt;br /&gt;
 every minute there is a scene change &lt;br /&gt;
 and the sound files are updated.&lt;br /&gt;
 sound files should be stored in a folder&lt;br /&gt;
 called &amp;quot;data&amp;quot; within the sketch folder.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
import ddf.minim.*;  &lt;br /&gt;
&lt;br /&gt;
Minim minim;&lt;br /&gt;
AudioSample sound0;&lt;br /&gt;
AudioSample sound1;&lt;br /&gt;
AudioSample sound2;&lt;br /&gt;
AudioSample sound3;&lt;br /&gt;
AudioSample sound4;&lt;br /&gt;
AudioSample sound5;&lt;br /&gt;
&lt;br /&gt;
int delayTime = 800;&lt;br /&gt;
boolean w_released = true;&lt;br /&gt;
boolean d_released = true;&lt;br /&gt;
boolean s_released = true;&lt;br /&gt;
boolean a_released = true;&lt;br /&gt;
int maxCount = 3;&lt;br /&gt;
int w_count = 0;&lt;br /&gt;
int a_count = 0;&lt;br /&gt;
int s_count = 0;&lt;br /&gt;
int d_count = 0;&lt;br /&gt;
int szene = 0;&lt;br /&gt;
int previousSzene;&lt;br /&gt;
int soundChangeInterval = 5000;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void setup () {&lt;br /&gt;
  size(1000, 800);        &lt;br /&gt;
  smooth();&lt;br /&gt;
  minim = new Minim(this);&lt;br /&gt;
  background(255);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void draw () {&lt;br /&gt;
  szene = minute() % 3;&lt;br /&gt;
  if (szene != previousSzene) {&lt;br /&gt;
    previousSzene = szene;&lt;br /&gt;
    println(szene);&lt;br /&gt;
&lt;br /&gt;
    if (szene == 0) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;be.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;come.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;together.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;withMe.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 1) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;hihat_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
    if (szene == 2) {&lt;br /&gt;
      sound0 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound1 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound2 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
      sound3 = minim.loadSample(&amp;quot;kick_single.wav&amp;quot;, 1000);&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void keyPressed() {&lt;br /&gt;
  if ((key == 'w' || key == 'W') &amp;amp;&amp;amp; w_released == true &amp;amp;&amp;amp; w_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0);&lt;br /&gt;
    w_released = false;&lt;br /&gt;
    sound(0);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    w_count ++;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'a' || key == 'A') &amp;amp;&amp;amp; a_released == true &amp;amp;&amp;amp; a_count &amp;lt; maxCount) {&lt;br /&gt;
    background(200, 0, 0);&lt;br /&gt;
    a_released = false;&lt;br /&gt;
    sound(1);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    a_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 's' || key == 'S') &amp;amp;&amp;amp; s_released == true &amp;amp;&amp;amp; s_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 200, 0);&lt;br /&gt;
    s_released = false;&lt;br /&gt;
    sound(2);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    s_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    d_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
  if ((key == 'd' || key == 'D') &amp;amp;&amp;amp; d_released == true &amp;amp;&amp;amp; d_count &amp;lt; maxCount) {&lt;br /&gt;
    background(0, 0, 200);&lt;br /&gt;
    d_released = false;&lt;br /&gt;
    sound(3);&lt;br /&gt;
    delay(delayTime);&lt;br /&gt;
    d_count ++;&lt;br /&gt;
    w_count = 0;&lt;br /&gt;
    a_count = 0;&lt;br /&gt;
    s_count = 0;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void keyReleased() {&lt;br /&gt;
  if (key == 'd' || key == 'D') {&lt;br /&gt;
    d_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'a' || key == 'A') {&lt;br /&gt;
    a_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 's' || key == 'S') {&lt;br /&gt;
    s_released = true;&lt;br /&gt;
  }&lt;br /&gt;
  if (key == 'w' || key == 'W') {&lt;br /&gt;
    w_released = true;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
void sound(int soundSample) &lt;br /&gt;
{&lt;br /&gt;
  switch(soundSample) {&lt;br /&gt;
  case 0: &lt;br /&gt;
    sound0.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 1: &lt;br /&gt;
    sound1.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 2: &lt;br /&gt;
    sound2.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  case 3: &lt;br /&gt;
    sound3.trigger();&lt;br /&gt;
    break;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lena.boeckmann</name></author>
	</entry>
</feed>