Bonjour,
Après m'être retourné le cerveau des heures durant, je viens vers vous afin de quémander quelques petites aides .. ^^"
Je vous explique ce qui, dans ma tête donnait plutôt bien: Je voudrais récupérer le volume du micro afin de "dessiner" avec. Par exemple sur l'axe des X, et que la position de l'axe Y suive la souris. J'avoue que comme ça ce n'est pas fort parlant, mais je vais montrer mon code qui, en soi, marche mais comporte plusieurs défauts :
- soit il n'est pas assez sensible et reste dans les 5 premiers pixels
- soit trace juste des lignes verticales, rien de "fluide" donc assez moche...
import ddf.minim.*;
Minim minim;
AudioInput in;
float volume;
float moyenne=0;
int tampon=5;
void setup() {
size(640, 640, P2D);
minim = new Minim(this);
minim.debugOn();
background(255);
// get a line in from Minim, default bit depth is 16
in = minim.getLineIn(Minim.STEREO, 1024);
}
void draw() {
volume = in.mix.level()*10;
moyenne=((moyenne * tampon) + volume)/(tampon+3);
if ( volume > 1){
//line(15, 90, 95, 10);
line(moyenne, mouseY, moyenne, pmouseY);
if(keyPressed == true ){
stroke( random(255), random(255), random(255), random(255));
}
println(moyenne);
}
}
void stop() {
// always close Minim audio classes when you are done with them
in.close();
minim.stop();
super.stop();
}Merci ! ![]()
Hors ligne
C'est pas en processing mais on doit pouvoir y prendre des idées!
Hors ligne
Bonjour,
Tu y étais presque, il faut multiplier le volume par une valeur beaucoup plus importante. J'ai rajouter une nouvelle variable pour avoir une ligne continue de ton tracé :
import ddf.minim.*;
Minim minim;
AudioInput in;
float volume;
float moyenne=0;
PVector pointPrecedent;
int tampon=5;
void setup() {
size(640, 640, P2D);
pointPrecedent = new PVector(0, 0);
minim = new Minim(this);
//minim.debugOn();
background(255);
// get a line in from Minim, default bit depth is 16
in = minim.getLineIn(Minim.STEREO, 1024);
}
void draw() {
volume = in.mix.level()*2000;
moyenne=((moyenne * tampon) + volume)/(tampon+3);
if ( volume > 1){
//line(15, 90, 95, 10);
line(pointPrecedent.x, pointPrecedent.y, moyenne, mouseY);
if(keyPressed == true ){
stroke( random(255), random(255), random(255), random(255));
}
pointPrecedent.set(moyenne, mouseY);
println(moyenne);
}
}
void stop() {
// always close Minim audio classes when you are done with them
in.close();
minim.stop();
super.stop();
}Hors ligne
Merci beaucoup, Pilou & Mushussu !
Mushussu tu me sauves la vie ! ![]()
Hors ligne
Pages: 1