viernes, 10 de agosto de 2012

4 semestre physical computing

ian.hughes@uniacc.edu

Evaluaciones
_1 evaluacion propuesta proyecto
_proyecto funcionando


Introducción 




sábado, 3 de diciembre de 2011

Avances exámen






Luego de reformular mi manera de senar el audio de mi instalación dejare algunas fotos sobre como estoy trabajando en el teclado , el cual tiene distintas extenciones hacia los puntos que en este caso recorrerán una alfombra.

Codigo que utilizare:

import ddf.minim.*;

Minim minim;
AudioSample kick;

void setup()
{
size(512, 200, P2D);
minim = new Minim(this);
kick = minim.loadSample("Sonido del mar, olas, Sound of the sea.mp3", 2048);
}

void draw()
{
background(0);
stroke(255);
for (int i = 0; i < kick.bufferSize() - 1; i++)
{
line(i, 100 - kick.left.get(i)*50, i+1, 100 - kick.left.get(i+1)*50);
}
}
void keyPressed()
{
if ( key == 'k' ) kick.trigger();
}

void stop()
{
kick.close();
minim.stop();
super.stop();
}

miércoles, 16 de noviembre de 2011



import processing.video.*;
Capture video;

int numPixels; // number of pixels in the video
int rectDivide = 4; // the stage width/height divided by this number is the video width/height
int vidW; // video width
int vidH; // video height
int[][] colouredPixels; // the different colour references for each pixel
int[][] colourCompareData; // captured r, g and b colours
int currR; //
int currG; //
int currB; //
int[][] squareCoords; // x, y, w + h of the coloured areas
color[] colours; // captured colours
int colourRange = 25; // colour threshold
int[][] centrePoints; // centres of the coloured squares
color[] pixelColours;
boolean isShowPixels = false; // determines whether the square and coloured pixels are displayed
int colourMax = 2; // max amount of colours - also adjust the amount of colours added to pixelColours in setup()
int coloursAssigned = 0; // amount of cours currently assigned
CoordsCalc coordsCalc;

void setup()
{
size(640, 480);
vidW = width / rectDivide;
vidH = height / rectDivide;
video = new Capture(this, vidW, vidH, 30);
noStroke();
numPixels = vidW * vidH;
colouredPixels = new int[vidH][vidW];
colourCompareData = new int[colourMax][3];
squareCoords = new int[colourMax][4];
colours = new color[colourMax];
centrePoints = new int[colourMax][2];
color c1 = color(0, 255, 0);
color c2 = color(255, 0, 0);
pixelColours = new color[colourMax];
pixelColours[0] = color(0, 255, 0);
pixelColours[1] = color(255, 0, 0);
coordsCalc = new CoordsCalc();
}

void captureEvent(Capture video)
{
video.read();
}

void draw()
{
noStroke();
fill(255, 255, 255);
rect(0, 0, width, height);
drawVideo();
coordsCalc.update();
for (int i = 0; i < coloursAssigned; i++)
{
if (isShowPixels) drawSquare(i);
}
}


void drawVideo()
{
for (int i = 0; i < coloursAssigned; i++)
{
fill(colours[i]);
rect(i * 10, vidH, 10, 10);
}
image(video, 0, 0);
noFill();
stroke(255, 0, 0);
strokeWeight(2);
rect(vidW - 4, vidH - 4, 4, 4);
}

void drawSquare(int i)
{
int sqX = squareCoords[i][0];
int sqY = squareCoords[i][1];
int sqW = squareCoords[i][2];
int sqH = squareCoords[i][3];
noFill();
stroke(0, 0, 255);
strokeWeight(3);
rect(sqX, sqY, sqW, sqH);
//stroke(0, 0, 255);
//strokeWeight(4);
rect(sqX * rectDivide, sqY * rectDivide, sqW * rectDivide, sqH * rectDivide);
line(sqX * rectDivide, sqY * rectDivide, ((sqX * rectDivide) + (sqW * rectDivide)), ((sqY * rectDivide) + (sqH * rectDivide)));
line(((sqX * rectDivide) + (sqW * rectDivide)), sqY * rectDivide, sqX * rectDivide, (sqY * rectDivide + sqH * rectDivide));
}

void keyPressed()
{
println("key pressed = " + key);
color currPixColor = video.pixels[numPixels - (vidW * 2) - 3];
int pixR = (currPixColor >> 16) & 0xFF;
int pixG = (currPixColor >> 8) & 0xFF;
int pixB = currPixColor & 0xFF;
if (key == 'p')
{
isShowPixels = !isShowPixels;
}
if (key == '1')
{
coloursAssigned = 1;
colourCompareData[0][0] = pixR;
colourCompareData[0][1] = pixG;
colourCompareData[0][2] = pixB;
colours[0] = color(pixR, pixG, pixB);
}
if (colourMax < 2 || coloursAssigned < 1) return;
if (key == '2')
{
coloursAssigned = 2;
colourCompareData[1][0] = pixR;
colourCompareData[1][1] = pixG;
colourCompareData[1][2] = pixB;
colours[1] = color(pixR, pixG, pixB);
}
if (key == '0')
{
coloursAssigned = 0;
}
}


..


class CoordsCalc
{
CoordsCalc()
{
}
void update()
{
int currX = vidW;
int currW = 0;
boolean isYAssigned = false;
boolean isWAssigned = false;
for (int j = 0; j < coloursAssigned; j++)
{
currX = vidW;
currW = 0;
isYAssigned = false;
isWAssigned = false;
for (int i = 0; i < numPixels; i++)
{
colouredPixels[abs(i / vidW)][i % vidW] = 0;
color currColor = video.pixels[i];
currR = (currColor >> 16) & 0xFF;
currG = (currColor >> 8) & 0xFF;
currB = currColor & 0xFF;
if(isColourWithinRange(j))
{
noStroke();
if (isShowPixels)
{
fill(pixelColours[j]);
rect((i % vidW), (abs(i / vidW)), 1, 1);
rect((i % vidW) * rectDivide, (abs(i / vidW)) * rectDivide, 1 * rectDivide, 1 * rectDivide);
}
if ((i % vidW) < currX)
{
currX = i % vidW;
squareCoords[j][0] = currX;
}
if (!isYAssigned)
{
isYAssigned = true;
squareCoords[j][1] = abs(i / vidW);
}
squareCoords[j][3] = (abs(i / vidW)) - squareCoords[j][1] + 1;
if((i % vidW) > currW)
{
currW = i % vidW;
isWAssigned = true;
}
}
if(i == numPixels - 1 && isWAssigned)
{
squareCoords[j][2] = currW - squareCoords[j][0] + 1;
}
}
}
for (int i = 0; i < coloursAssigned; i++)
{
centrePoints[i][0] = (squareCoords[i][0] * rectDivide) + ((squareCoords[i][2] * rectDivide) / 2);
centrePoints[i][1] = (squareCoords[i][1] * rectDivide) + ((squareCoords[i][3] * rectDivide) / 2);
fill(0, 0, 0);
ellipse(centrePoints[i][0], centrePoints[i][1], 10, 10);
}
}

boolean isColourWithinRange(int j)
{
if(currR > (colourCompareData[j][0] + colourRange) || currR < (colourCompareData[j][0] - colourRange))
{
return false;
}
if(currG > (colourCompareData[j][1] + colourRange) || currG < (colourCompareData[j][1] - colourRange))
{
return false;
}
if(currB > (colourCompareData[j][2] + colourRange) || currB < (colourCompareData[j][2] - colourRange))
{
return false;
}
return true;
}
}


http://www.openprocessing.org/visuals/?visualID=46073 audio minim

martes, 15 de noviembre de 2011

mas avances códigos de cámaras webs mas audio .


import processing.video.*;
Capture myCapture;

import ddf.minim.*;
AudioPlayer player;
minim minim;

Void setup(){
size(500,600);
String s ="Logitech QuickCam Messenger-VDM;
myCapture = new Capture (this,s,width,heiight,30);
minim=new Minim (this);
player=minim.loadFile("incubus - a certain shade of green.mp3",2048);
player.play();

}

void draw (){
void draw() {
// myCapture.available() returns true
// when there is a new frame
if(myCapture.available()) {
myCapture.read();
}
image(myCapture, 0, 0);
}



miércoles, 9 de noviembre de 2011

avances proyecto examen

estoy trabajando sobre este codigo el problema es que no logra leer la web cam. ( creo que son problemas de mi computador)
agregue audio minim
y espero el codigo de color.

import processing.video.*;
Capture video;
float boxSize = 10;
color pix;
//import ddf.minim*;
//AudioPlayer player;
//Minim minim;


void setup()
{
size(600,400);
video=new Capture(this, width,height,30);
smooth()
// minim = new Minim(this);
// player=minim.LoadFile("the beatles - abbey road - oh! darling.mp3",2048);
//player.play();

}

void draw(){
if(video.available() )
{
video.read();
image(video,160,100);
}



tarea

PImage kathy;
PImage kata;
float speed=2.5;
int diameter=20;
float x;
float y;
import ddf.minim.*;

AudioPlayer player;
Minim minim;

void setup () {
size (334,450);
kathy = loadImage("kathy.jpg");
kata = loadImage("kata.jpg");
smooth();
x = width/2;
y = height/2;
minim = new Minim (this);
player = minim.loadFile("the beatles - abbey road - oh! darling.mp3",2048);
player.play();
}

void draw (){
image(kathy,0,0);
x +=random(-speed,speed);
y +=random(-speed,speed);
image(kata,70,0,x,y);
}

void stop()
{
player.close();
minim.stop();
super.stop();
}



(no me abre open processing de todas maneras dejo mi codigo aqui con imagen de codigo funcionando.)


martes, 8 de noviembre de 2011

Fail!

audio , imagen , movimiento.


float speed= 2.5;
int diameter= 20;
float x;
float y;
PImage kathy;
import ddf.minim.*;

AudioPlayer player;
Minim minim;

void setup() {
size(700,550);
smooth();
fill(136, 227, 101);

x= width/2;
y= height/2;
minim = new Minim(this);
player = minim.loadFile("blue.mp3", 1024);
player.play();

}

void draw() {
kathy = loadImage ("kathy.jpg");
image (kathy, 0, 0);
x+= random (-speed, speed);
y+= random (-speed, speed);

image (kathy, x, y, 60, 60);

}

void stop()
{
player.close();
minim.stop();

super.stop();
}


imagen movimiento.


PImage estrella;
PImage cielo;
int size = 60;
float xpos, ypos;
float xspeed = 2.0;
float yspeed = 2.0;
int xdirection = 1;
int ydirection = 1;
void setup()
{
size(500,400);
noStroke();
frameRate(50);
smooth();
xpos = width/20;
ypos = height/8;
cielo = loadImage ("cielo.jpg");
estrella = loadImage ("estrella.gif");
}
void draw()
{
background(cielo);
xpos = xpos + ( xspeed * xdirection );
ypos = ypos + ( yspeed * ydirection );
if (xpos > width-size || xpos < 0) {
xdirection *= -1;
}
if (ypos > height-size || ypos < 0) {
ydirection *= -1;
}
image (estrella,xpos+size/2, ypos+size/2);
}