Pages: 1
Bonjour à tous
Je suis navrée pour le titre qui n'est vraiment pas très explicite.
Alors voilà, je poste un petit message dans l'espoir de trouver une âme charitable, plus douée que moi pour la rédaction de code
Alors je vous explique ce que je cherche à faire : à partir des modulation de la voix je veux mettre en place un tracé qui ressemble à un "tissage", oui oui, comme du textile quoi. Donc graphiquement c'est très simple, vu qu'il s'agit d'une sorte de quadrillage. J'ai mis en place une chaine fixe (c'est ce qui croise la trame, ici ça se traduit par une série de lignes verticales parrallèles) et je veux que le placement des lignes de trame (donc les lignes horizontales) soit interactif et donc géré par la captation du micro.
Pour l'instant, j'ai réussi à avoir un tracé sur une ligne en utilisant le volume (même si je préférerai utiliser la FFT plutôt que le volume... mais pour l'instant, faute de mieux, je fais avec !) Cette première ligne n'est pas visible sur le code que j'envoi là car depuis que j'essai de faire varier le Y, on voit plus que les trait verticaux >.<.
Bref, mon problème aujourd'hui et depuis plusieurs jours, et oui, je suis pas douée ... c'est de lancer un nouveau tracé un peu plus bas en ordonnées à chaque "blanc" sonore.
Alors je me dis que pour beaucoup de gens ça doit être hyper simple de faire ce saut de ligne (qui dis en gros : "quand il n'y a plus de son, tu arrete ton trait et tu fera le suivant, quand il y aura de nouveau du son, 10 pixel plus bas en Y) mais pour moi c'est la galère
Voilà mon **** de code qui me rends folle, si quelqu'un à envie de m'aider à débloquer ça ça serait SUPER
Merci à tous !!!!
import ddf.minim.*;
import ddf.minim.analysis.*;
import ddf.minim.signals.*;
Minim minim;
AudioInput in;
FFT fft;
//Définition d'une variable qui stockera les données du tracé
int X = 0;//coordonnées de la trame
int temps = millis();
int chaine = 0;
int pX = 0; //stocker les anciennes valeurs de X
int sensibilite = 100;
void setup(){
size(1000, 250);
background(255);
stroke(0);
//Tracé de Lignes verticales (Chaine) :
for (int chaine = 25; chaine < 980; chaine = chaine + 15)
{
line(chaine, 10, chaine, 240);
}
minim = new Minim(this);
minim.debugOn();
fft = new FFT(512, 44100);
smooth();
//la ligne va en x jusqu'à 980 pixels
in = minim.getLineIn(Minim.STEREO, 980);
}
void draw(){
//il faut, à chaque boucle de draw, ajouter les données sonores aux coordonnées X de la trame
X = X + (int) (in.mix.level()*200);
println(in.mix.level());
while(temps > 0){
line(X, 20 + in.left.get(X)*sensibilite , X + 1, 20 + in.left.get(X+1)*sensibilite);
}
pX = X;
//Varier Y . Et là il faut aussi un While()
while(temps > (width-20)){
line(X, in.left.get(X)*sensibilite + 10 , X + 1, in.left.get(X+1)*sensibilite + 10);
}
}
//Fermeture de Minim
void stop()
{
in.close();
minim.stop();
super.stop();
}
Dernière modification par Violette (2012-04-23 11:34:18)
Hors ligne
Alors ? Personne pour m'aider ? :'(
Ou je m'explique mal peut être ?
Hors ligne
Bonjour Violette et bienvenue,
Pour ne pas te laisser toute seule devant ton problème, voila de quoi afficher des lignes horizontales selon l'entrée son. Je n'ai pas de micro à portée de main, donc je ne peux pas vraiment tester. Il va falloir que tu adaptes les valeurs (par exemple : enlver le "* 8000" que j'ai mis juste pour amplifier mon entrée sans micro... ou modifier la valeur de seuil qui déclenche le passage à une autre ligne).
Il faut que tu ajoutes la ligne de définition de variables ci-dessous et que tu remplaces ta boucle draw par celle que je te propose.
Hors ligne
Merci beaucoup à toi
Je vais essayer ça.
Car j'ai déjà des successions de ligne horizontales en fonction du son, mais j'avais pas fais comme toi, donc à voir.
Merci !!!
Hors ligne
Pages: 1