VJing Processing #studenti #processing #vj #video
/*
Daria Kokareva
ABA Urbino NTA III
Multimedia
prof. Davide Riboli
2014/2015
*/
//Libs
import ddf.minim.spi.*;
import ddf.minim.signals.*;
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.ugens.*;
import ddf.minim.effects.*;
import processing.video.*;
AudioPlayer song;
AudioPlayer[] effect;
Minim minim;
AudioMetaData meta;
BeatDetect beat;
FFT fft;
Movie myMovie;
Movie myMovie_macro;
int freq=20;
int u=0;
int n=15;
int index=0;
int m=255;
int b=255;
int frames=24;
boolean recording = false;
int q = 0;
void effectPlay() {
effect = new AudioPlayer[7];
effect[0] = minim.loadFile("music_01.mp3");
effect[1] = minim.loadFile("music_02.mp3");
effect[2] = minim.loadFile("music_03.mp3");
effect[3] = minim.loadFile("music_04.mp3");
effect[4] = minim.loadFile("music_05.mp3");
effect[5] = minim.loadFile("music_06.mp3");
effect[6] = minim.loadFile("music_07.mp3");
//effect[] = minim.loadFile("");
index= int (random(effect.length));
}
void setup()
{
size(352, 288);
//frameRate (frames);
myMovie = new Movie(this, "video_01.3gp");
myMovie.frameRate(frames);
myMovie.loop();
myMovie_macro=new Movie(this, "music_02.3gp");
myMovie_macro.loop();
minim= new Minim(this);
effectPlay();
effect[index].loop();
// fast furier transform, legge frequenze audio
fft = new FFT( effect[index].bufferSize(), effect[index].sampleRate() );
}
void draw() {
fft.forward( effect[index].mix );
tint(b, 255);
image(myMovie, 0, 0);
tint(m, fft.getFreq(n)*freq);
image(myMovie_macro, 0, 0);
if (recording) {
// VideoExport.saveFrame();
updatePixels();
}
}
//Read the video
void movieEvent(Movie m) {
myMovie.read();
myMovie_macro.read();
}
void keyPressed() {
if (key=='s') {
recording = !recording;
println("Recording is " + (recording ? "ON" : "OFF"));
}
// z= random play audio tracks
if (key=='z') {
effect[index].close();
index= int (random(effect.length));
effect[index].play();
}
// 0/9 = play/pause
if (key =='0') {
effect[index].pause();
}
if (key=='9') {
effect[index].play();
}
//Light Video 01
if (key=='m') {
m=m+15;
println (m);
if (m>255) {
m=255;
}
}
if (key=='n') {
m=m-15;
println (m);
if (m<0) {
m=0;
}
}
//Light Video 02
if (key=='l') {
b=b+15;
println (b);
if (b>255 || b==0) {
b=255;
}
}
if (key=='k') {
b=b-15;
println (b);
if (b<0 || b==0) {
b=0;
}
}
//Video freq
if (key=='d') {
freq= freq+5;
println (freq);
}
if (key=='f') {
freq= freq-5;
println (freq);
}
//Video 01 play/pause
if (key=='h') {
myMovie.play();
}
if (key=='j') {
myMovie.pause();
}
//Video 02 play/pause
if (key=='o') {
myMovie_macro.play();
}
if (key=='p') {
myMovie_macro.pause();
}
}