Clips pilotés par le volume du son

nuclearprout Messages postés 43 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 19 mai 2009 - 1 févr. 2007 à 15:13
nuclearprout Messages postés 43 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 19 mai 2009 - 8 févr. 2007 à 17:55
Bonjour. Vladidjiou, cela fait des lustres que je n'ai pas posté. Je ne sais même pas si ce que je veux faire est réalisable sous Flash, je sais juste que quelques as pilotes des évenements sonores, c'est pour cette raison que je vous demanderais d'être indulgent quand à le teneur en surréalisme que comporte le message suivant. C'est assez simple à décrire pourtant, je souhaiterais que le volume sonore lance des clips de façon alétoire, c'est à dire que si j'hurle assez fort dans le micro, je load un clip parmis un réservoir. Voilà, c'est tout. C'est très important pour moi et je cherche aussi dans d'autres directions (pour ceux qui connaissent Pure Date ou Gphex), donc si jamais qqn peut orienter mes recherches, ce serait très sympa... Merci beaucoup.

6 réponses

slagt Messages postés 232 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 29 mars 2011
2 févr. 2007 à 11:21
Il faut utiliser Flash 9 :)

Fait des recherches sur les nouveautés apporté par Flash 9, il y a un blog où on trouve le code complet pour choper l'amplitude du son à un moment donné :)

Je ne sais pas si ça marche avec le microphone, normalement oui, mais bon, je ne connais pas assez bien Flash 9 pour te dire.

Bonne chance.

Distorstase
0
nuclearprout Messages postés 43 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 19 mai 2009
2 févr. 2007 à 20:59
Ahahaa. J'ai trouvé un truc vide

http://www.flash-france.com/actionscript.php?action=ListProto&rubid=18

J'aimerai bien connaître l'adresse de ton blog. Merci...
0
slagt Messages postés 232 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 29 mars 2011
4 févr. 2007 à 23:11
0
nuclearprout Messages postés 43 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 19 mai 2009
6 févr. 2007 à 20:11
C'est pas du tout ce que je cherche. Néanmoins, c'est dans l'idée. J'avance un peu, voilà ce que j'ai trouvé :

var activityLevel_pb:mx.controls.ProgressBar;
activityLevel_pb.mode = "manual";
activityLevel_pb.label = "Activity Level: %3%%";
activityLevel_pb.setStyle("themeColor", "0xFF0000");
this.createEmptyMovieClip("sound_mc", this.getNextHighestDepth());
var active_mic:Microphone = Microphone.get();
sound_mc.attachAudio(active_mic);
this.onEnterFrame = function(){
activityLevel_pb.setProgress(active_mic.activityLevel, 100);
};
active_mic.onActivity = function(active:Boolean){
if(active){
var haloTheme_str:String = "haloGreen";
}else{
var haloTheme_str:String = "0xFF0000";
}
activityLevel_pb.setStyle("themeColor", haloTheme_str);
};

Ce code (pompé dans l'aide de Flash) me permet de récupérer simplement l'intensité du volume en pourcentage dans un clip progressbar. Maintenant ce que je cherche à faire c'est de pouvoir récupérer ce pourcentage pour lancer des clips. En gros, ce que je veux faire, c'est un truc du genre ;

if() activityLevel_pb = 65% (par ex.)
then() > lancer les clips
else if() > faire autre chose.

C'est écrit en vrac parce que je suis pas programmeur (ça se voit pas hien ?), mais je pense que cela ne doit pas être bien compliqué si je sais quelle partie du code en vert gère la variable de l'intensité du volume.
Voilà, si quelques bonnes âmes peuvent me venir en aide...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
slagt Messages postés 232 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 29 mars 2011
7 févr. 2007 à 19:45
Aaahhh !! C'est dans un microphone ?? Ce que je t'ai donné, ça permet de récuperer l'onde d'un son, et n'importe lequel (pas seulement le microphone).

Dans ce cas effectivement, on peut se servir d'activityLevel. Je n'ai jamais beaucoup touché à ce genre d'outil, mais je suppose qu'en bidouillant, on doit pouvoir faire de même avec n'importe quel son (à voir).

Tu as ça :

this.onEnterFrame = function()
{
activityLevel_pb.setProgress(active_mic.activityLevel, 100);
};

Donc avec des conditions tu peux bien faire ce que tu veux

this.onEnterFrame = function()
{
activityLevel_pb.setProgress(active_mic.activityLevel, 100);

var vol:Number = active_mic.activityLevel;

if (vol < 10)
{
trace ("Volume inférieur à 10%");
}
else if (vol < 20)
{
trace ("Volume compris entre 10% et 20%");
}
else if (vol == 65)
{
trace ("Volume du son égal à 65%");
}
else
{
trace ("Condition par défaut, si aucune autre n'est réalisé.");
}
};

Une condition ça s'écrit donc sous cette forme :
if (CONDITION 1)
{
     // ACTION SI CONDITION 1 VALIDE
}
else if (CONDITION 2 MAIS PAS CONDITION 1)
{
     // ACTION SI CONDITION 2 VALIDE
}
else
{
     // ACTION SI NI CONDITION 1 NI CONDITION 2 VALIDE
}

Bonne chance :)

Distorstase
0
nuclearprout Messages postés 43 Date d'inscription samedi 11 décembre 2004 Statut Membre Dernière intervention 19 mai 2009
8 févr. 2007 à 17:55
Merci beaucoup chef, c'est exactement ce que je cherchais. J'avais juste besoin de savoir comment déclarer la variable volume (var vol:Number = active_mic.activityLevel;). J'ai juste eu à remplacer les trace() par mes actions. Très sympa de ta part ! A plus...
0
Rejoignez-nous