Sunday, April 27, 2008

The Final Cut














A final Processing experiment, this time with a changing number of videos. This video is an experience in overload, inspired by an exhibit at the MAM. The sound also reinforces the sense of overload - a deep, overdriven, drone.


Here's the code:

import processing.video.*;

int numScreens = 1;

Movie []movies = new Movie[6];

MovieMaker out;

void setup(){
size(320, 240);
movies[0] = new Movie(this, "stonesup.mov");
movies[1] = new Movie(this, "mossy-compost.mov");
movies[2] = new Movie(this, "pull-back.mov");
movies[3] = new Movie(this, "weird-plant.mov");
movies[4] = new Movie(this, "stones-left2.mov");
movies[5] = new Movie(this, "sticks-pullback2.mov");
movies[0].loop();
movies[1].loop();
movies[2].loop();
movies[3].loop();
movies[4].loop();
movies[5].loop();

out = new MovieMaker(this, width, height, "output.mov",
15, MovieMaker.H263, MovieMaker.LOW);
}

void draw(){
background(0);
if(numScreens == 1){
image(movies[0], 0, 0);
}
if(numScreens == 2){
println("2");
image(movies[0], 0, 0, width / 2, height);
image(movies[1], width / 2, 0, width / 2, height);
}
if(numScreens == 3){
image(movies[0], 0, 0, width / 3, height);
image(movies[1], width / 3, 0, width / 3, height);
image(movies[2], (width / 3) * 2, 0, width / 3, height);
}
if(numScreens == 4){
image(movies[0], 0, 0, width / 2, height / 2);
image(movies[1], width / 2, 0, width / 2, height / 2);
image(movies[2], 0, height / 2, width / 2, height / 2);
image(movies[3], width / 2, height / 2, width / 2, height / 2);
}
if(numScreens == 5){
image(movies[0], 0, 0, width / 3, height / 2);
image(movies[1], width / 3, 0, width / 3, height / 2);
image(movies[2], (width / 3) * 2, 0, width / 3, height / 2);
image(movies[3], width / 2, height / 2, width / 2, height / 2);
image(movies[4], 0, height / 2, width / 2, height / 2);
}
if(numScreens == 6){
image(movies[0], 0, 0, width / 3, height / 2);
image(movies[1], width / 3, 0, width / 3, height / 2);
image(movies[2], (width / 3) * 2, 0, width / 3, height / 2);
image(movies[3], width / 3, height / 2, width / 3, height / 2);
image(movies[4], 0, height / 2, width / 3, height / 2);
image(movies[5], (width / 3) * 2, height / 2, width / 3, height / 2);
}
out.addFrame();
}

void movieEvent(Movie m){
m.read();
}

void keyPressed(){
++numScreens;
if(numScreens > 6){
out.finish();
}
}

Rough Cut Three














A more traditionally made video, this time I was experimenting with cross-fading of discontinuous imagery. The time-stretched sounds are close-up recordings of raindrops, during a large downpour. The stereo effect is quite satisfying to me.

Friday, April 25, 2008

Rough Cut Two














Again, more Processing experimentation, this time with a series of motion clips and some sound I recorded during a rainstorm. This is another interactive performance. Here's the code:

import processing.video.*;

int size = 4;
int bright = 25;
Movie []movies = new Movie[size];
Movie []mLoop = new Movie[size];
int overlay = 0;
int loopIndex = 0;
MovieMaker output;

void setup(){
size(320, 240);
mLoop[0] = new Movie(this, "hose.mov");
mLoop[1] = new Movie(this, "right-change.mov");
mLoop[2] = new Movie(this, "stonesup.mov");
mLoop[3] = new Movie(this, "hoseup.mov");
movies[0] = new Movie(this, "mossy-compost.mov");
movies[1] = new Movie(this, "leaves.mov");
movies[2] = new Movie(this, "weird-plant.mov");
movies[3] = new Movie(this, "pull-back.mov");
mLoop[0].loop();
mLoop[1].loop();
mLoop[2].loop();
mLoop[3].loop();
movies[0].loop();
movies[1].loop();
movies[2].loop();
movies[2].speed(0.5);
movies[3].loop();

output = new MovieMaker(this, width, height,
"output.mov", 15, MovieMaker.H263,
MovieMaker.LOW);
}

void draw(){
image(mLoop[loopIndex], 0, 0, width / 3, height);
image(movies[overlay], width / 3, 0, width / 2, height);
image(movies[abs(overlay - 1)], (width / 3) * 2, 0, width / 3, height);
output.addFrame();
}

void movieEvent(Movie m){
m.read();
}

void mousePressed(){
++overlay;
if(overlay >= size){
overlay = 0;
}
mLoop[loopIndex].speed((random(10) / 20));
}

void keyPressed(){
if(key == 'n'){
loopIndex++;
if(loopIndex >= size){
loopIndex = 0;
}
}
mLoop[loopIndex].jump(random(mLoop[0].duration()));
bright = (int)random(255);
if(key == 's'){
output.finish();
}
}

Thursday, April 24, 2008

Rough Cut One














This is an experiment I did using three sets of still images and a simple program I wrote using the Processing software, a free image programming language. The clip is a performance, in a sense. I toggle between the three sets of images using the keyboard, in real time.

Here is the code:

/*
photographic instrument
film 116 final project
greg surges
4.21.2008
*/

import processing.video.*;

MovieMaker output;

PImage []trees = new PImage[10];
PImage []sticks = new PImage[17];
PImage []flowers = new PImage[10];
PImage img;
int tintIndex = 0;

void setup(){
size(320, 240);
flowers[0] = loadImage("FLOWER1.JPG");
flowers[1] = loadImage("FLOWER2.JPG");
flowers[2] = loadImage("FLOWER3.JPG");
flowers[3] = loadImage("FLOWER4.JPG");
flowers[4] = loadImage("FLOWER5.JPG");
flowers[5] = loadImage("FLOWER6.JPG");
flowers[6] = loadImage("FLOWER7.JPG");
flowers[7] = loadImage("FLOWER8.JPG");
flowers[8] = loadImage("FLOWER9.JPG");
flowers[9] = loadImage("FLOWER10.JPG");

trees[0] = loadImage("TREE1.JPG");
trees[1] = loadImage("TREE2.JPG");
trees[2] = loadImage("TREE3.JPG");
trees[3] = loadImage("TREE4.JPG");
trees[4] = loadImage("TREE5.JPG");
trees[5] = loadImage("TREE6.JPG");
trees[6] = loadImage("TREE7.JPG");
trees[7] = loadImage("TREE8.JPG");
trees[8] = loadImage("TREE9.JPG");
trees[9] = loadImage("TREE10.JPG");

sticks[0] = loadImage("STICKS1.JPG");
sticks[1] = loadImage("STICKS2.JPG");
sticks[2] = loadImage("STICKS3.JPG");
sticks[3] = loadImage("STICKS4.JPG");
sticks[4] = loadImage("STICKS5.JPG");
sticks[5] = loadImage("STICKS6.JPG");
sticks[6] = loadImage("STICKS7.JPG");
sticks[7] = loadImage("STICKS8.JPG");
sticks[8] = loadImage("STICKS9.JPG");
sticks[9] = loadImage("STICKS10.JPG");
sticks[10] = loadImage("STICKS11.JPG");
sticks[11] = loadImage("STICKS12.JPG");
sticks[12] = loadImage("STICKS13.JPG");
sticks[13] = loadImage("STICKS14.JPG");
sticks[14] = loadImage("STICKS15.JPG");
sticks[15] = loadImage("STICKS16.JPG");
sticks[16] = loadImage("STICKS17.JPG");
img = loadImage("STICKS18.JPG");

output = new MovieMaker(this, width, height, "output.mov",
15, MovieMaker.H263, MovieMaker.LOW);

frameRate(15);
}

void draw(){
if(keyPressed){
if(key == '1'){
img = flowers[(int)random(10)];
}
if(key == '2'){
img = trees[(int)random(10)];
}
if(key == '3'){
img = sticks[(int)random(17)];
}
tintIndex = ++tintIndex;
}
tint(tintIndex, 255);
image(img, 0, 0);
output.addFrame();
}

void keyReleased(){
tintIndex = 80;
}

void mousePressed(){
output.finish();
}

Drift 3 Strategies

1. I plan to explore two areas, an area where a small creek gathers into a pond, and the area around and on-top of a freeway overpass. I think that these two areas will provide nice contrast in sound, and hopefully make for interesting and useful imagery too. The pond is at the end of Brookhill Drive, and the freeway overpass is right where Moorland Road goes over Capitol Drive.

2. I plan on only capturing abstract imagery. I want to gather images and video that work as shapes and color, and not necessarily as a "picture of something". With this in mind, I plan to explore close-ups and focusing, as well as night photography and blurred video.

3. Learning from my sound-walk, I plan on walking towards the loudest spots I can find, following the sounds. Hopefully this will allow me to capture more useful material than last time.

Questions to Consider

1. How can I make my neighborhood more interesting, visually and sonically?
2. How can I capture images with a sense of motion and direction?
3. How can I relate the sounds of my neighborhood with the images I capture?
4. What differences come from taking images/recordings at night?
5. How can I make interesting, non-representational images from a suburban neighborhood?
6. Where is the point where I can see for the most distance?
7. Where is the loudest point in the neighborhood?
8. From how many different points will I be able to hear the freeway?
9. What kind of sounds can I get in the parking-lot across the freeway?
10. What would I find in the next neighborhood over?

My Favorite Experience

My favorite experience has been working on Drift 3. I was able to get a really great series of stills, and I feel like I've been working in a more abstract area. It's been good to change direction a bit, and it has been good to loosen up. Instead of trying to take technically perfect stills or video, I've been thinking more about color and shape and how they relate.