Archive | Uncategorized RSS for this section

Hearing Eyes

20150104-142933-52173897.jpg

20150104-142933-52173643.jpg

Advertisements

Water + Light

White light projected onto a thin surface of vibrating water. 20140829-080245-28965979.jpg

Processing – Waves [syphon]

waves1 waves2 waves3waves4

//Tells Processing we're going to utilize the syphon library
import codeanticode.syphon.*;
//Declares the canvas we will draw to, necessary for Syphon
int brickWidth = 40;
int brickHeight = 2;
int cols = 20;
int rows = 24;
int columnOffset = 60;
int rowOffset = 30;
float rotationIncrement = 0.5;
PGraphics canvas;
//Declares the Syphon Server
SyphonServer server;
void setup() {
//typical size function, with added argument that is necessary for Syphon
size(1280,720, P3D);
//noLoop();
//Sets up the canvas, make it match the desired size of your sketch
canvas = createGraphics(1280, 720, P3D);
// Create syhpon server to send frames out.
server = new SyphonServer(this, "Processing Syphon");
}
void draw() {
 //Tell processing to begin drawing to the canvas instead of to the sketch
 canvas.beginDraw();

 //Typical drawing functions, but applied to canvas instead of the sketch itself
 brickWidth = millis()/250; 

 canvas.background(0);
canvas.smooth(50);
canvas.fill(255);
canvas.stroke(255);
 canvas.translate(30, 30);
 for (int i=0; i<cols; i++) {
 canvas.pushMatrix();
 canvas.translate(i * columnOffset, 0);
 float r = random(-QUARTER_PI, QUARTER_PI);
 int dir = 1;
 for (int j=0; j<rows; j++) {
 canvas.pushMatrix();
 canvas.translate(0, rowOffset * j);
 canvas.rotate(r/5);
 canvas.rect(-brickWidth/2, -brickHeight/2, brickWidth, brickHeight);
 canvas.popMatrix();
 r += dir * rotationIncrement;
 if (r > QUARTER_PI || r < -QUARTER_PI) dir *= -1;
 }
 canvas.popMatrix();

 }

 //Tell processing we're done drawing to canvas
 canvas.endDraw();

 //Draws contents of canvas to our sketch so we can see whats going on
 image(canvas, 0, 0);

 //Sends contents of canvas through Syphon Server to MadMapper! Yay!
 server.sendImage(canvas);
}

Tutorial: Using Syphon with Processing to stream video into MadMapper.

Pulse Width Modulated Light and Audio Transmission

Modulating four LEDs using Arduino and PWM.  Each LED fades at a different rate creating varying light patterns.  The fading light was then recorded using two powered photocells (one for left and one for right) which produces the rhythmic sound patterns.  As the sensors are moved further away the signal diminishes simulating interference between the receiver and emitter.

Video:

Spectrogram of audio recording:

The intent is to use the qualities of natural and artifical light, patterns of light, and movements of light to inform the building’s materials, form, and experience.  Patterns and openings in material allow light to be structured as it enters a space, creating a composition for the photocells to record.  Light can easy be interrupted and/or distorted by passing users, traffic, and site conditions.  This creates both an audio and visual composition dependent on its surroundings; one that may have missing and/or altered signals, varying intensities, or no light at all.

Transmission of sound through light:

Light is used as a speaker emitting various pulses that correspond to the sound being played.  When a photocell is amplified and placed near the LED, the pulses can be heard as the original sound.  Light is transmitting the audio signal.