xxxxxxxxxx
73
// For more: https://github.com/auduno/clmtrackr
var ctracker;
var input;
function setup() {
//AUDIO SETUO
input = new p5.AudioIn();
input.start();
// setup camera capture
var videoInput = createCapture(VIDEO);
videoInput.size(windowWidth, windowHeight);
videoInput.position(0, 0);
videoInput.hide();
// setup canvas
var cnv = createCanvas(windowWidth, windowHeight);
cnv.position(0, 0);
// setup tracker
ctracker = new clm.tracker();
ctracker.init(pModel);
ctracker.start(videoInput.elt);
noStroke();
}
function draw() {
//VIDEO OFF
clear();
// get array of face marker positions [x, y] format
var positions = ctracker.getCurrentPosition();
//FOR FACE DETECT
for (var i = 0; i < positions.length; i++) {
//CURVES
noFill();
stroke(random(0,255),0,0,50);
strokeWeight(vol * 100);
curve(1000,-1000,0,0, positions[i][0], positions[i][1],1000,1000);
curve(-1000,-1000,0,windowHeight, positions[i][0]-400, positions[i][1],1000,1000);
curve(3000,3000,windowWidth,windowHeight, positions[i][0]+400, positions[i][1],-1000,-1000);
//ELLIPSES
fill(100,0,0,180-i);
strokeWeight(0);
ellipse(positions[i][0], positions[i][1], i + vol * 500, i + vol * 100);
ellipse(positions[i][0]-400, positions[i][1],i + vol * 500, i + vol * 100);
ellipse(positions[i][0]+400, positions[i][1], i + vol * 500, i + vol * 100);
strokeWeight(0);
//AUDIO
var vol = input.getLevel();
//TEXT
strokeWeight(50);
stroke(0,100,255);
fill(255,255,255);
textSize(100 + vol * 100);
text("GORILLAZ!!", windowWidth/2-300, windowHeight/4);
//gOrillaz's O
fill(255,0,0);
noStroke();
ellipse(windowWidth/2-180, windowHeight/3-100, 100 + vol * 800, 100 + vol * 800);
fill(255,255,0);
ellipse(windowWidth/2-180, windowHeight/3-100, 50 + vol * 500, 50 + vol * 500);
}
}