top of page

Safe. Sane. Consensual.

This was my thesis piece at UIC for my BFA (concentrations photography and new media). For my piece I essentially had a public scene in the gallery to stimuate conversation. I provided a comfortable area for doing so with a plush rug and pillows. My goal was to intrgue people enough to want to talk about the piece and see what was there beneath the flash and bang surface. It worked. I had many people come up afterwards to discuss the ideas behind the piece. There is a lot to it. And it speaks a lot even when no talking about BDSM for viewers/participants. To read my thesis click here. To see the trifold provided in the performance space click here.

Documentation Photographs are courtesy of Daniel Asseo and Tony Miller and the video is courtesy of Tony Miller.

A Physical Paragon (I Trust You.)

youTube removed my documentation; Facebook on the otherhand did not.

Unknown: An Experiment in Learning

Unknown – An Experiment in Learning is an interactive performance piece that plays with the viewers' ability to learn. It is composed of a box that acts as a simple housing unit for the tech with buttons and speakers being the only things visible. The two visible components act as a medium for the viewers to interact with technology and thusly myself. Inside the box are an Arduino, a circuit board, and processing/arduino coding on a MacBook Pro. This piece looks at the relationship of art, artist, and viewer while studying the idea of control. It functions by the Arduino and processing communicating via the serial ports on the MacBook Pro while calling on a database of sounds for the purpose of this piece. Documentation photography was taken by the wonderful  Joey Ceiniewicz.

Below is the code for both arudino and processing. I fully encourage it's use or adaptation for other projects.

ARUDINO:
//button colors with correlating LEDs for testing
int buttonRed = 1;
int buttonOrg = 2;
int buttonYlw = 3;
int buttonGrn = 4;
int buttonBlu = 5;
int buttonPurp = 6;
int buttonBlk = 7;
int buttonLeft = 8;
int buttonRight = 9;
int buttonStart = 10;

void setup ()
{
//serial port
  Serial.begin (9600);
//button pins
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  pinMode(4, INPUT);
  pinMode(5, INPUT);
  pinMode(6, INPUT);
  pinMode(7, INPUT);
  pinMode(8, INPUT);
  pinMode(9, INPUT);
  pinMode(10, INPUT);
  pinMode (11, INPUT);
}
void loop ()
{
  if(digitalRead(2) == HIGH)
  {
   Serial.write(buttonStart);
  }
  if(digitalRead(5) == HIGH)
  {
   Serial.write(buttonRed);
  }
  if(digitalRead(6) == HIGH)
  {
   Serial.write(buttonOrg);
  }
  if(digitalRead(7) == HIGH)
  {
   Serial.write(buttonYlw);
  }
  if(digitalRead(8) == HIGH)
  {
   Serial.write(buttonGrn);
  }
  if(digitalRead(9) == HIGH)
  {
   Serial.write(buttonBlu);
  }
  if(digitalRead(10) == HIGH)
  {
   Serial.write(buttonPurp);
  }
  if(digitalRead(11) == HIGH)
  {
   Serial.write(buttonBlk);
  }
  if(digitalRead(3) == HIGH)
  {
   Serial.write(buttonLeft);
  }
  if(digitalRead(4) == HIGH)
  {
   Serial.write(buttonRight);
  }
  delay(200);
}




PROCESSING:
import processing.serial.*;
import ddf.minim.*;
Minim minim;
AudioPlayer deadCandance, intro, red, org, ylw, grn, blu, purp, blk, right, left;

Serial port;
int buttonRed = 1;
int buttonOrg = 2;
int buttonYlw = 3;
int buttonGrn = 4;
int buttonBlu = 5;
int buttonPurp = 6;
int buttonBlk = 7;
int buttonLeft = 8;
int buttonRight = 9;
int buttonStart = 10;
int buttonWhat;
boolean didjapressStart = false;
boolean redB, orgB, ylwB, grnB, bluB, purpB, blkB, leftB, rightB;

void setup ()
{
  size (200, 200);
  println(Serial.list());
  String portname = Serial.list()[5];
  port = new Serial (this, portname, 9600);
  buttonWhat = 0;
  minim = new Minim (this);
  red = minim.loadFile ("red.mp3");
  org = minim.loadFile ("org.mp3");
  ylw = minim.loadFile ("ylw.mp3");
  grn = minim.loadFile ("grn.mp3");
  blu = minim.loadFile ("blu.mp3");
  purp = minim.loadFile ("purp.mp3");
  blk = minim.loadFile ("blk.mp3");
  right = minim.loadFile ("right.mp3");
  left = minim.loadFile ("left.mp3");
  intro = minim.loadFile ("intro.wav");
  deadCandance = minim.loadFile ("06 Listen Child.mp3");
  deadCandance.setGain(-2);
}

void draw ()
{
  background(128);
   println(intro.position());
  if (buttonWhat == buttonStart&&didjapressStart==false)
  {
   didjapressStart = true;
   intro.play();
 
  }
   if (intro.position()>=58720)
   {
     deadCandance.play();
     //println(deadCandance.position());
   }
  textAlign(CENTER);
  text("Last Button Pressed: " + buttonWhat + "\nRed=1\nOrange=2\nYellow=3\nGreen=4\nBlue=5\nPurple=6\nBlack=7\nRight=9\nLeft=8", width/2, 25);
}
void serialEvent(Serial _port)
{
  buttonWhat = +port.read();
  if (buttonWhat < buttonStart&&buttonWhat > 0&&didjapressStart==true&&intro.position()>=58720&&deadCandance.isPlaying())
  { println("button");
   if (buttonWhat == buttonRed)
   {
     red.play();
     redB=true;
     if (red.position()>=731&&redB==true
       &&(org.position()>=731||org.position()>=0)
       &&(ylw.position()>=731||ylw.position()>=0)
       &&(grn.position()>=731||grn.position()>=0)
       &&(blu.position()>=731||blu.position()>=0)
       &&(purp.position()>=731||purp.position()>=0)
       &&(blk.position()>=731||blk.position()>=0)
       &&(right.position()>=731||right.position()>=0)
       &&(left.position()>=731||left.position()>=0))
     {
       red.play(0);
     }
   }
   else if (buttonWhat == buttonOrg)
   {
     org.play();
     orgB=true;
     if (org.position()>=731&&orgB==true
       &&(red.position()>=731||red.position()>=0)
       &&(ylw.position()>=731||ylw.position()>=0)
       &&(grn.position()>=731||grn.position()>=0)
       &&(blu.position()>=731||blu.position()>=0)
       &&(purp.position()>=731||purp.position()>=0)
       &&(blk.position()>=731||blk.position()>=0)
       &&(right.position()>=731||right.position()>=0)
       &&(left.position()>=731||left.position()>=0))
     {
       org.play(0);
     }
   }
   else if (buttonWhat == buttonYlw)
   {
     ylw.play();
     ylwB=true;
     if (ylw.position()>=731&&ylwB==true
       &&(red.position()>=731||red.position()>=0)
       &&(org.position()>=731||org.position()>=0)
       &&(grn.position()>=731||grn.position()>=0)
       &&(blu.position()>=731||blu.position()>=0)
       &&(purp.position()>=731||purp.position()>=0)
       &&(blk.position()>=731||blk.position()>=0)
       &&(right.position()>=731||right.position()>=0)
       &&(left.position()>=731||left.position()>=0))
     {
       ylw.play(0);
     }
   }
   else if (buttonWhat == buttonGrn)
   {
     grn.play();
     grnB=true;
     if (grn.position()>=731&&grnB==true
       &&(red.position()>=731||red.position()>=0)
       &&(org.position()>=731||org.position()>=0)
       &&(ylw.position()>=731||ylw.position()>=0)
       &&(blu.position()>=731||blu.position()>=0)
       &&(purp.position()>=731||purp.position()>=0)
       &&(blk.position()>=731||blk.position()>=0)
       &&(right.position()>=731||right.position()>=0)
       &&(left.position()>=731||left.position()>=0))
     {
       grn.play(0);
     }
   }
   else if (buttonWhat == buttonBlu)
   {
     blu.play();
     bluB=true;
     if (blu.position()>=731&&bluB==true
       &&(red.position()>=731||red.position()>=0)
       &&(org.position()>=731||org.position()>=0)
       &&(grn.position()>=731||grn.position()>=0)
       &&(ylw.position()>=731||ylw.position()>=0)
       &&(purp.position()>=731||purp.position()>=0)
       &&(blk.position()>=731||blk.position()>=0)
       &&(right.position()>=731||right.position()>=0)
       &&(left.position()>=731||left.position()>=0))
     {
       blu.play(0);
     }
   }
   else if (buttonWhat == buttonPurp)
   {
     purp.play();
     purpB=true;
     if (purp.position()>=731&&purpB==true
       &&(red.position()>=731||red.position()>=0)
       &&(org.position()>=731||org.position()>=0)
       &&(grn.position()>=731||grn.position()>=0)
       &&(blu.position()>=731||blu.position()>=0)
       &&(ylw.position()>=731||ylw.position()>=0)
       &&(blk.position()>=731||blk.position()>=0)
       &&(right.position()>=731||right.position()>=0)
       &&(left.position()>=731||left.position()>=0))
     {
       purp.play(0);
     }
   }
   else if (buttonWhat == buttonBlk)
   {
     blk.play();
     blkB=true;
     if (blk.position()>=731&&blkB==true
       &&(red.position()>=731||red.position()>=0)
       &&(org.position()>=731||org.position()>=0)
       &&(grn.position()>=731||grn.position()>=0)
       &&(blu.position()>=731||blu.position()>=0)
       &&(purp.position()>=731||purp.position()>=0)
       &&(ylw.position()>=731||ylw.position()>=0)
       &&(right.position()>=731||right.position()>=0)
       &&(left.position()>=731||left.position()>=0))
     {
       blk.play(0);
     }
   }
   else if (buttonWhat == buttonRight)
   {
     right.play();
     rightB=true;
     if (right.position()>=731&&rightB==true
       &&(red.position()>=731||red.position()>=0)
       &&(org.position()>=731||org.position()>=0)
       &&(grn.position()>=731||grn.position()>=0)
       &&(blu.position()>=731||blu.position()>=0)
       &&(purp.position()>=731||purp.position()>=0)
       &&(blk.position()>=731||blk.position()>=0)
       &&(ylw.position()>=731||ylw.position()>=0)
       &&(left.position()>=731||left.position()>=0))
     {
       right.play(0);
     }
   }
   else if (buttonWhat == buttonLeft)
   {
     left.play();
     leftB=true;
     if (left.position()>=731&&leftB==true
       &&(red.position()>=731||red.position()>=0)
       &&(org.position()>=731||org.position()>=0)
       &&(grn.position()>=731||grn.position()>=0)
       &&(blu.position()>=731||blu.position()>=0)
       &&(purp.position()>=731||purp.position()>=0)
       &&(blk.position()>=731||blk.position()>=0)
       &&(right.position()>=731||right.position()>=0)
       &&(ylw.position()>=731||ylw.position()>=0))
     {
       left.play(0);
     }
   }
  }
}

© 2024 FOX KNEZEVICH

bottom of page