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);
}


viernes, 4 de noviembre de 2011

PRIMER ejercicio clase anterior.



float speed= 2.5;
int diameter= 20;
float x;
float y;
PImage kathy;

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

x= width/2;
y= height/2;
}

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

}

martes, 25 de octubre de 2011

Paper Brandon Labelle

Brandon Labelle es un destacado artista en el arte sonoro y trabaja con la mezcla de medios , su aporte esta basado en la linea de nuevos medios tiene una gran cantidad de proyecto y participado en diferentes escuelas y galerías a nivel mundial .
El se considera un investigador y al mismo tiempo artista ya que trabaja como tal pero siempre enfocado hacia el sonido .
Brandon explica su forma de ver estos medios como de una plataforma que trabaja con diferentes tipos de sonidos espacial y social es el sonido el que actúa para activar esta relación ya que el sonido es un fenómeno que comúnmente no tomamos en cuenta , su idea es poder crear una manera en que uno construya esta relación.
muestra una seria de proyectos , existe un proyecto diario el cual se grababa así mismo todos los días del año de esta forma el pensaba el significado que tenia poder hacer un sonido consciente y asi el se relaciono con el entorno .
Otro proyecto era el de una silla con parlantes pequeños en este lugar existía una cámara para poder registrar los movimientos y los sonidos del concierto que al mismo tiempo se relacionaban con el publico que allí asistió .
también hizo otro tipo de conciertos en donde cuestiona el tema de la sordera y la gente sana los ayudaba a oír escribiendo el sonido sobre un papel .
El espacio: este es un proyecto que esta basado en su departamento en donde captura sonidos y le dice a diferentes arquitectos que construyan un modelo de su departamento de acuerdo al sonido que el les entrega .


*************************************************************************************



Juego en grupo


jueves, 20 de octubre de 2011

códigos para mi proyecto final de semestre

import processing.video.*;
Capture myCapture;
float boxSize = 10;
color pix;
void setup() {
size(400, 400, P3D);
myCapture = new Capture(this, width, height, 30);
}
void captureEvent(Capture myCapture) {

codigos de camara web
El siguiente código esta hecho para que processing lea la web cam.
Se llama cuando un marco de la nueva cámara está disponible. Utilice el método read () para capturar este marco. Si hay más de un dispositivo de captura en el programa, captureEvent () es llamado cada vez que cualquiera de los dispositivos tiene un marco de nuevo disponible. Utilizar un if () dentro de la función para determinar qué dispositivo se activa el evento.import JMyron : JMyron (también conocido como WebcamXtra) es una biblioteca externa para el procesamiento que permite la manipulación de imágenes sin tener que codificar todo. Esto es muy bueno porque podemos ampliar lo que vimos en el tutorial de la bibliotecade vídeo y añadir otros aspectos que le gusta el seguimiento del movimiento y el seguimiento de color. Para utilizar JMyron,usted tiene que descargar el archivo JAR y los puso en el camino / a / Procesamiento de la carpeta / bibliotecas. A continuación, debe importar la biblioteca de cada boceto de procesamiento donde los objetos JMyron se utilizará.


http://www.openprocessing.org/visuals/?visualID=43947 este es un código que funciona con web cam y cambia los colores