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