Patch para activar un programa en Processing - por Karloz Atl




Karloz Atl (Ciudad de México, 1988)




Esta colaboración es un patch para activar un programa en Processing que según la frecuencia de voz que detecte (4 variantes) lanza un video. Es idóneo para procesos de Spoken Word con proyección de video.




K A R

LOZ

A

T

L

import ddf.minim.analysis.*;

import ddf.minim.*;

import processing.video.*;



Minim minim;

AudioPlayer CantoDesaparecido;

AudioInput in;

FFT fft;

String windowName;



Movie movie, movie2, movie3, movie4;

Capture cam;



float sensor, mapeo;



void setup()

{

  size(1250, 710);

 

      cam = new Capture(this,720, 480, 30);

    cam.start();

  minim = new Minim(this);

 

//CantoDesaparecido = minim.loadFile("CantoDesaparecido.mp3", 2048);

//CantoDesaparecido.loop();

 

  in = minim.getLineIn(Minim.STEREO, 2048);

 

  // create an FFT object that has a time-domain buffer the same size as jingle's sample buffer

  // note that this needs to be a power of two and that it means the size of the spectrum

  // will be 512. see the online tutorial for more info.

  fft = new FFT(in.bufferSize(), in.sampleRate());

 

  movie = new Movie(this, "paris1900-1930.mov");

  movie.loop();

 

  movie2 = new Movie(this, "mexico1900.mov");

  movie2.loop();

 

  movie3 = new Movie(this, "Tabladapinturas.mov");

  movie3.loop();

 

  movie4 = new Movie(this, "offrandes.mov");

  movie4.loop();

 

 

 

  textFont(createFont("SanSerif", 12));

  windowName = "None";

}



void movieEvent(Movie m) {

  m.read();

}

void draw()

{

  background(0);

  stroke(255);

  //image(sol, 0, 0);

  // perform a forward FFT on the samples in jingle's left buffer

  // note that if jingle were a MONO file, this would be the same as using jingle.right or jingle.left

  fft.forward(in.mix);

 

  if (cam.available() == true) {

    cam.read();

  }image(cam, 0, 0, width, height);

 

  if(

  (fft.getBand(80) > 20 ||

  fft.getBand(81) > 20 ||

  fft.getBand(82) > 20 ||

  fft.getBand(83) > 20 ||

  fft.getBand(84) > 20 ||

  fft.getBand(85) > 20 ||

  fft.getBand(86) > 20 ||

  fft.getBand(87) > 20 ||

  fft.getBand(88) > 20 ||

  fft.getBand(89) > 20 ||

  fft.getBand(80) > 20)

  //&& fft.getBand(417) < 0.01

  ){

   image(movie, 0, 0, width/2, height/2);

 }



 if(fft.getBand(284) > 3){

   image(movie2, width/2, 0, width/2, height/2);

 }



 if(

  (fft.getBand(12) > 20 ||

  fft.getBand(13) > 20 ||

  fft.getBand(14) > 20 ||

  fft.getBand(15) > 20 ||

  fft.getBand(16) > 20 ||

  fft.getBand(17) > 20 ||

  fft.getBand(18) > 20 ||

  fft.getBand(19) > 20 ||

  fft.getBand(20) > 20 ||

  fft.getBand(21) > 20 ||

  fft.getBand(22) > 20)

  // && fft.getBand(417) < 0.1

  )

 

 {

   image(movie3, 0, height/2, width/2, height/2);



   image (cam, 400, 150, width/4, height/4);

      image (cam, 800, 350, width/8, height/8);

         image (cam, 200, 50, width/16, height/16);



 }





 if(

  (fft.getBand(500) > 2)

  ){

   image(movie4, width/2, height/2, width/2, height/2);

 }

 

  //para quitar las lineas blancas comenta las sigueintes 5 lineas

  for(int i = 0; i < fft.specSize(); i++)

  {

    // draw the line for frequency band i, scaling it by 4 so we can see it a bit better

    line(i, height, i, height - fft.getBand(i)*4);

  }

  fill(250);





 sensor = fft.getBand(25);

 mapeo = map(sensor, 0, 40, 0, 255);







  //si quieres borrar la linea roja comenta las sig 2 lineas

  stroke(255,0,0);

  line(mouseX, 0, mouseX, height);

 

 

  println("Banda No. " + mouseX);

  //println(fft.specSize());

  println("-------------> " + fft.getBand(470));

 

}



           void keyReleased()

{

  if ( key == 'w' )

  {

    // a Hamming window can be used to shape the sample buffer that is passed to the FFT

    // this can reduce the amount of noise in the spectrum

    fft.window(FFT.HAMMING);

    windowName = "Hamming";

  }

 

  if ( key == 'e' )

  {

    fft.window(FFT.NONE);

    windowName = "None";

  }

}



void stop()

{

  // always close Minim audio classes when you finish with them

  CantoDesaparecido.close();

  minim.stop();

 

  super.stop();

}



void captureEvent(Capture camara) {

 camara.read();

}

TO                                                    UNA                P   S

     DO                                 EN                                U   S

EL                                                    SONRISA        T    S

    ARDOR                                                                O   S [[R










-------------------------

[Radiador] Magazine

[R]Magazine es una revista digital independiente de literatura, artes y navegación nacida en septiembre de 2011. Mes con mes, publicamos números temáticos donde colindan autores de diversas disciplinas, latitudes y generaciones. Poesía, ciencia, animación, diseño, política, multimedia, filosofía, obra visual, entre otras; son las vertientes desde las cuales revoluciona cada número del radiador. Lee, cuestiona, difunde y no dudes en formar parte de este universo.

0 comentarios:

Publicar un comentario

[R] Visual

Ediciones [Radiador]