Suite ! Un script "d'analyse" un peu plus propre, avec les valeurs accessibles en mode jeu via les chiffres du haut de clavier
- la partition se fait par AddRange/GetRange au lieu de .Add partout (si j'ai bien compris ça permet de faire une copie des objets de la liste originelle plutot que d'en créer de nouveaux).
-dans le code la récupération des données/ la partition/ l'analyse de chaque plage / le GUI pour chaque plage/ le dessin du spectre / sont des fonctions séparées (plus facilement récupérable-utilisable-compréhensible j'espère).
Pour chaque plage étudiée (total, High, Medium, Bass, et leurs subdivisions) : 3 boléenne dont une seule peut-être active : UP/DOWN/STABLE
-spectreAv = moyenne "fréquence" (10 à 40) * volAv (donc peut aller théoriquement de 10 à 80)
-Le coté "analyse temps réel" se fait par un Clear() des List une fois qu'elles atteignent une valeur max. J'ai bien vu dans la doc des histoires de "capacity" et TrimExcess, et j'ai cherché pas mal de temps sans réussir à mettre ça en place. C'est peut-être mieux pour les performances, mais bon, on peut déjà passer 256 - 512 - 1024 samples sans aucun soucis, je me suis dit que c'était suffisant pour commencer, mais si quelqu'un pouvait expliquer / envoyer un lien avec un petit exemple (je dis pas que les dinosaures sont pas clairs, c'est juste que là...^^)
-les boléennes sont déterminées par les valeurs max et passent très rapidement d'un état à l'autre, peut-être qu'en les calant sur la moyenne, ou une valeur intermédiaire "smoothée" le résultat serait plus significatif, ou via un "yield" avant le prochain changement d'état. Mais comme pour le TrimExcess() j'ai pas encore bien saisi son fonctionnement.
-il manque peut-être une boléenne pour dire quelle est la plage de fréquence dominante.
Il y a une scène prête à être lancée (lien vers la dropbox mis à jour) , avec un son qui balaye les fréquences dans un son puis dans l'autre, et en augmentant et baissant le volume.
Code : Tout sélectionner
using UnityEngine;
using System.Collections.Generic;
public class AnalyseSC : MonoBehaviour {
//les données audios
private int channel = 0;
public int numSamples = 512;
public float dimension = 1;
public float amplitudeS = 1;
public float amplitudeV = 1;
public float delayAnalyse = 120.0f;
float[] volume;
float[] spectrum;
//tout le spectre et tout le volume
List<float> splog0;
List<float> splog1;
List<float> vol0;
List<float> vol1;
private int numL2;
private int numL4;
private int numL8;
private int numL16;
//partition spectre et volume : d'abord en 3 (Bass , Medium, High)
List<float> spB0;
List<float> spB1;
List<float> volB0;
List<float> volB1;
List<float> spM0;
List<float> spM1;
List<float> volM0;
List<float> volM1;
List<float> spH0;
List<float> spH1;
List<float> volH0;
List<float> volH1;
//puis les Basses en 4 (LowLow, LowHigh, HighLow, HighHigh) , et les Medium en 2 (Low, High)
List<float> spBLL0;
List<float> spBLL1;
List<float> volBLL0;
List<float> volBLL1;
List<float> spBLH0;
List<float> spBLH1;
List<float> volBLH0;
List<float> volBLH1;
List<float> spBHL0;
List<float> spBHL1;
List<float> volBHL0;
List<float> volBHL1;
List<float> spBHH0;
List<float> spBHH1;
List<float> volBHH0;
List<float> volBHH1;
List<float> spML0;
List<float> spML1;
List<float> volML0;
List<float> volML1;
List<float> spMH0;
List<float> spMH1;
List<float> volMH0;
List<float> volMH1;
private bool trashok = false;
void Start () {
//ouverture des tableaux audios
volume = new float[numSamples];
spectrum = new float[numSamples];
//tout le spectre et tout le volume
splog0 = new List<float>();
splog1 = new List<float>();
vol0 = new List<float>();
vol1 = new List<float>();
//les partitions
spB0 = new List<float>();
spB1 = new List<float>();
volB0 = new List<float>();
volB1 = new List<float>();
spM0 = new List<float>();
spM1 = new List<float>();
volM0 = new List<float>();
volM1 = new List<float>();
spH0 = new List<float>();
spH1 = new List<float>();
volH0 = new List<float>();
volH1 = new List<float>();
spBLL0 = new List<float>();
spBLL1 = new List<float>();
volBLL0 = new List<float>();
volBLL1 = new List<float>();
spBLH0 = new List<float>();
spBLH1 = new List<float>();
volBLH0 = new List<float>();
volBLH1 = new List<float>();
spBHL0 = new List<float>();
spBHL1 = new List<float>();
volBHL0 = new List<float>();
volBHL1 = new List<float>();
spBHH0 = new List<float>();
spBHH1 = new List<float>();
volBHH0 = new List<float>();
volBHH1 = new List<float>();
spML0 = new List<float>();
spML1 = new List<float>();
volML0 = new List<float>();
volML1 = new List<float>();
spMH0 = new List<float>();
spMH1 = new List<float>();
volMH0 = new List<float>();
volMH1 = new List<float>();
numL2 = (numSamples/2) - 1;
numL4 = (numSamples/4) - 1;
numL8 = (numSamples/8) - 1;
numL16 = (numSamples/16) - 1;
}
void Update () {
DataAudio ();
Partition ();
Spectre ();
InvokeRepeating ("Analyse", 0.1f, delayAnalyse);
}
void DataAudio () {
audio.GetOutputData(volume, channel);
audio.GetSpectrumData (spectrum, channel, FFTWindow.BlackmanHarris);
for (int i = 1 ; i < numSamples - 1 ; i++)
{
var Splog0 = Mathf.Log10 (spectrum[i - 1]);
var Splog1 = Mathf.Log10 (spectrum[i]);
var vlog0 = (volume [i - 1]);
var vlog1 = (volume [i]);
//en cas de problème de valeurs infinie
/**if (float.IsInfinity (Splog0) || float.IsNaN (Splog0) ||
float.IsInfinity (Splog1) || float.IsNaN (Splog1) ||
float.IsInfinity (vlog0) || float.IsNaN (vlog0) ||
float.IsInfinity (vlog1) || float.IsNaN (vlog1) ) {
}else{/**/
splog0.Add (Splog0);
splog1.Add (Splog1);
vol0.Add (vlog0);
vol1.Add (vlog1);
}
}
void Partition () {
if (splog0.Count > 0 && splog1.Count > 0 &&
vol0.Count > 0 && vol1.Count > 0)
{
spH0.AddRange(splog0.GetRange (numL2 - 1, numL2)); //High 2/2
spH1.AddRange(splog1.GetRange (numL2 - 1, numL2));
volH0.AddRange(vol0.GetRange (numL2 - 1, numL2));
volH1.AddRange (vol1.GetRange (numL2 - 1, numL2));
spM0.AddRange (splog0.GetRange (numL4, numL4)); //Medium 2/4
spM1.AddRange (splog1.GetRange (numL4, numL4));
volM0.AddRange (vol0.GetRange (numL4, numL4));
volM1.AddRange (vol1.GetRange (numL4, numL4));
spML0.AddRange (splog0.GetRange (numL4, numL8)); //MediumLow 3/8
spML1.AddRange (splog1.GetRange (numL4, numL8));
volML0.AddRange (vol0.GetRange (numL4, numL8));
volML1.AddRange (vol1.GetRange (numL4, numL8));
spMH0.AddRange (splog0.GetRange (numL8 * 3, numL8)); //MediumHigh 4/8
spMH1.AddRange (splog1.GetRange (numL8 * 3, numL8));
volMH0.AddRange (vol0.GetRange (numL8 * 3, numL8));
volMH1.AddRange (vol1.GetRange (numL8 * 3, numL8));
spB0.AddRange (splog0.GetRange (0, numL4)); //Bass 1/4
spB1.AddRange (splog1.GetRange (0, numL4));
volB0.AddRange (vol0.GetRange (0, numL4));
volB1.AddRange (vol1.GetRange (0, numL4));
spBLL0.AddRange (splog0.GetRange (0, numL16)); //BassLowLow 1/16
spBLL1.AddRange (splog1.GetRange (0, numL16));
volBLL0.AddRange (vol0.GetRange (0, numL16));
volBLL1.AddRange (vol1.GetRange (0, numL16));
spBLH0.AddRange (splog0.GetRange (numL16, numL16)); //BassLowHigh 2/16
spBLH1.AddRange (splog1.GetRange (numL16, numL16));
volBLH0.AddRange (vol0.GetRange (numL16, numL16));
volBLH1.AddRange (vol1.GetRange (numL16, numL16));
spBHL0.AddRange (splog0.GetRange (numL8, numL16)); //BassHighLow 3/16
spBHL1.AddRange (splog1.GetRange (numL8, numL16));
volBHL0.AddRange (vol0.GetRange (numL8, numL16));
volBHL1.AddRange (vol1.GetRange (numL8, numL16));
spBHH0.AddRange (splog0.GetRange (numL16 * 3, numL16)); //BassHighHigh 4/16
spBHH1.AddRange (splog1.GetRange (numL16 * 3, numL16));
volBHH0.AddRange (vol0.GetRange (numL16 * 3, numL16));
volBHH1.AddRange (vol1.GetRange (numL16 * 3, numL16));
}
}
void Analyse () {
AnalyseTotal ();
AnalyseHigh ();
AnalyseMediumBass ();
AnalyseMedium2 ();
AnalyseBass4 ();
}
//variables pour analyser les listes
//Tout
private float volMax0 ;
private float volMax1 ;
private float volAvMax;
private float volAv;
private float volMin0;
private float volMin1;
private float volAvMin;
private bool volUp = false;
private bool volDown = false;
private bool volStable = true;
private float splogMax1;
private float splogMax0;
private float splogMax;
private float splogMin1;
private float splogMin0;
private float splogMin;
private float splogAv;
private bool splogUp = false;
private bool splogDown = false;
private bool splogStable = true;
void AnalyseTotal () {
if (splog0.Count > 1 && splog1.Count > 1 &&
vol0.Count > 1 && vol1.Count > 1)
volMax0 = (Mathf.Max (vol0.ToArray ()) ) ;
volMax1 = (Mathf.Max (vol1.ToArray ()) ) ;
splogMax0 = Mathf.Max (splog0.ToArray ());
splogMax1 = Mathf.Max (splog1.ToArray ());
volMin0 = (Mathf.Min (vol0.ToArray ()) ) ;
volMin1 = (Mathf.Min (vol1.ToArray ()) ) ;
splogMin0 = Mathf.Min (splog0.ToArray ());
splogMin1 = Mathf.Min (splog1.ToArray ());
//La fréquence du pic est égale au numsamples(volume) * numsamples(spectrum)/2 ? Ou pas ici de 1 à 20
splogMax = 41 + ( ((splogMax0 + 1 + splogMax1 + 1) * Mathf.Log10 (numSamples)));
splogMin = 41 + ( ((splogMin0 + 1 + splogMin1 + 1) * Mathf.Log10 (numSamples)));
splogAv = volAv * ((splogMax + splogMin) / 2) ;
//booleene pour augmentation ou baisse fréquence
if ( splogMax1 > splogMax0 ){
splogUp = true ;
}else{
splogUp = false ;
}
if ( splogMin1 < splogMin0) {
splogDown = true ;
}else{
splogDown = false ;
}
if ( splogUp == true || splogDown == true) {
splogStable = false;
}else{
splogStable = true;
}
// volume entre 1 et 2
volAvMax = 2 + (( 1 * (volMax0 + volMax1) ) / Mathf.Log10 (numSamples) ) ;
volAvMin = 2 + (( 1 * (volMin0 + volMin1) ) / Mathf.Log10 (numSamples) ) ;
volAv = 1 + ((volAvMax - volAvMin) / 2) ;
//booleene pour augmentation ou baisse du volume
if ( volMax1 > volMax0 ){
volUp = true ;
}else{
volUp = false ;
}
if ( volMax1 < volMax0 ) {
volDown = true ;
}else{
volDown = false ;
}
if ( volUp == true || volDown == true) {
volStable = false;
}else{
volStable = true;
}
}
//High
private float volHMax0 ;
private float volHMax1 ;
private float volHAvMax;
private float volHAv;
private float volHMin1;
private float volHMin0;
private float volHAvMin;
private bool volHUp = false;
private bool volHDown = false;
private bool volHStable = true;
private float spHMax1;
private float spHMax0;
private float spHMax;
private float spHAv;
private float spHMin1;
private float spHMin0;
private float spHMin;
private bool spHUp = false;
private bool spHDown = false;
private bool spHStable = true;
void AnalyseHigh () {
//High
if (splog0.Count > 1 && splog1.Count > 1 &&
vol0.Count > 1 && vol1.Count > 1)
volHMax0 = (Mathf.Max (volH0.ToArray ()) ) ;
volHMax1 = (Mathf.Max (volH1.ToArray ()) ) ;
spHMax0 = Mathf.Max (spH0.ToArray ());
spHMax1 = Mathf.Max (spH1.ToArray ());
volHMin0 = (Mathf.Min (volH0.ToArray ()) ) ;
volHMin1 = (Mathf.Min (volH1.ToArray ()) ) ;
spHMin0 = Mathf.Min (spH0.ToArray ());
spHMin1 = Mathf.Min (spH1.ToArray ());
//moyennes fréquences de 10 à 40
spHMax = 41 + ( ((spHMax0 + 1 + spHMax1 + 1) * Mathf.Log10 (numSamples / 2)));
spHMin = 41 + ( ((spHMin0 + 1 + spHMin1 + 1) * Mathf.Log10 (numSamples / 2)));
spHAv = volHAv * ((spHMax + spHMin) / 2) ;
//booleene pour augmentation ou baisse fréquence
if ( spHMax1 > spHMax0 ){
spHUp = true ;
}else{
spHUp = false ;
}
if ( spHMax1 < spHMax0) {
spHDown = true ;
}else{
spHDown = false ;
}
if ( spHUp == true || spHDown == true) {
spHStable = false;
}else{
spHStable = true;
}
//moyennes volume de 1 à 3
volHAvMax = 2 + (( 1 * (volHMax0 + volHMax1) ) / Mathf.Log10 (numSamples / 2) ) ;
volHAvMin = 2 + (( 1 * (volHMin0 + volHMin1) ) / Mathf.Log10 (numSamples / 2) ) ;
volHAv = 1 + ((volHAvMax-volHAvMin) / 2) ;
//booleene pour augmentation ou baisse du volume
if ( volHMax1 > volHMax0 ){
volHUp = true ;
}else{
volHUp = false ;
}
if ( volHMax1 < volHMax0 ) {
volHDown = true ;
}else{
volHDown = false ;
}
if ( volHUp == true || volHDown == true) {
volHStable = false;
}else{
volHStable = true;
}
}
//Medium
private float volMMax0 ;
private float volMMax1 ;
private float volMAvMax;
private float volMAv;
private float volMMin1;
private float volMMin0;
private float volMAvMin;
private bool volMUp = false;
private bool volMDown = false;
private bool volMStable = true;
private float spMMax1;
private float spMMax0;
private float spMMax;
private float spMAv;
private float spMMin1;
private float spMMin0;
private float spMMin;
private bool spMUp = false;
private bool spMDown = false;
private bool spMStable = true;
//Bass
private float volBMax0 ;
private float volBMax1 ;
private float volBAvMax;
private float volBAv;
private float volBMin1;
private float volBMin0;
private float volBAvMin;
private bool volBUp = false;
private bool volBDown = false;
private bool volBStable = true;
private float spBMax1;
private float spBMax0;
private float spBMax;
private float spBAv;
private float spBMin1;
private float spBMin0;
private float spBMin;
private bool spBUp = false;
private bool spBDown = false;
private bool spBStable = true;
void AnalyseMediumBass () {
if (splog0.Count > 1 && splog1.Count > 1 &&
vol0.Count > 1 && vol1.Count > 1)
volMMax0 = Mathf.Max (volM0.ToArray ());
volMMax1 = Mathf.Max (volM1.ToArray ());
volBMax0 = Mathf.Max (volB0.ToArray ());
volBMax1 = Mathf.Max (volB1.ToArray ());
volMMin0 = Mathf.Min (volM0.ToArray ());
volMMin1 = Mathf.Min (volM1.ToArray ());
volBMin0 = Mathf.Min (volB0.ToArray ());
volBMin1 = Mathf.Min (volB1.ToArray ());
spMMax0 = Mathf.Max (spM0.ToArray ());
spMMax1 = Mathf.Max (spM1.ToArray ());
spBMax0 = Mathf.Max (spB0.ToArray ());
spBMax1 = Mathf.Max (spB1.ToArray ());
spMMin0 = Mathf.Min (spM0.ToArray ());
spMMin1 = Mathf.Min (spM1.ToArray ());
spBMin0 = Mathf.Min (spB0.ToArray ());
spBMin1 = Mathf.Min (spB1.ToArray ());
//moyennes fréquences
spMMax = 41 + ( ((spMMax0 + 1 + spMMax1 + 1) * Mathf.Log10 (numSamples / 4)));
spMMin = 41 + ( ((spMMin0 + 1 + spMMin1 + 1) * Mathf.Log10 (numSamples / 4)));
spMAv = volMAv * ((spMMax + spMMin) / 2) ;
spBMax = 41 + ( ((spBMax0 + 1 + spBMax1 + 1) * Mathf.Log10 (numSamples / 4)));
spBMin = 41 + ( ((spBMin0 + 1 + spBMin1 + 1) * Mathf.Log10 (numSamples / 4)));
spBAv = volBAv * ((spBMax + spBMin) / 2) ;
//booleene pour augmentation ou baisse fréquence
if ( spMMax1 > spMMax0 ){
spMUp = true ;
}else{
spMUp = false ;
}
if ( spMMax1 < spMMax0) {
spMDown = true ;
}else{
spMDown = false ;
}
if ( spMUp == true || spMDown == true) {
spMStable = false;
}else{
spMStable = true;
}
if ( spBMax1 > spBMax0 ){
spBUp = true ;
}else{
spBUp = false ;
}
if ( spBMax1 < spBMax0) {
spBDown = true ;
}else{
spBDown = false ;
}
if ( spBUp == true || spBDown == true) {
spBStable = false;
}else{
spBStable = true;
}
//moyennes volume
volMAvMax = 2 + (( 1 * (volMMax0 + volMMax1) ) / Mathf.Log10 (numSamples / 4) ) ;
volMAvMin = 2 + (( 1 * (volMMin0 + volMMin1) ) / Mathf.Log10 (numSamples / 4) ) ;
volMAv = 1 + ((volMAvMax-volMAvMin) / 2) ;
volBAvMax = 2 + (( 1 * (volBMax0 + volBMax1) ) / Mathf.Log10 (numSamples / 4) ) ;
volBAvMin = 2 + (( 1 * (volBMin0 + volBMin1) ) / Mathf.Log10 (numSamples / 4) ) ;
volBAv = 1 + ((volBAvMax-volBAvMin) / 2) ;
//booleene pour augmentation ou baisse du volume
if ( volMMax1 > volMMax0 ){
volMUp = true ;
}else{
volMUp = false ;
}
if ( volMMax1 < volMMax0 ) {
volMDown = true ;
}else{
volMDown = false ;
}
if ( volMUp == true || volMDown == true) {
volMStable = false;
}else{
volMStable = true;
}
if ( volBMax1 > volBMax0 ){
volBUp = true ;
}else{
volBUp = false ;
}
if ( volBMax1 < volBMax0 ) {
volBDown = true ;
}else{
volBDown = false ;
}
if ( volBUp == true || volBDown == true) {
volBStable = false;
}else{
volBStable = true;
}
}
//MediumLow
private float volMLMax0 ;
private float volMLMax1 ;
private float volMLAvMax;
private float volMLAv;
private float volMLMin1;
private float volMLMin0;
private float volMLAvMin;
private bool volMLUp = false;
private bool volMLDown = false;
private bool volMLStable = true;
private float spMLMax1;
private float spMLMax0;
private float spMLMax;
private float spMLAv;
private float spMLMin1;
private float spMLMin0;
private float spMLMin;
private bool spMLUp = false;
private bool spMLDown = false;
private bool spMLStable = true;
//MediumHigh
private float volMHMax0;
private float volMHMax1;
private float volMHAvMax;
private float volMHAv;
private float volMHMin1;
private float volMHMin0;
private float volMHAvMin;
private bool volMHUp = false;
private bool volMHDown = false;
private bool volMHStable = true;
private float spMHMax1;
private float spMHMax0;
private float spMHMax;
private float spMHAv;
private float spMHMin1;
private float spMHMin0;
private float spMHMin;
private bool spMHUp = false;
private bool spMHDown = false;
private bool spMHStable = true;
void AnalyseMedium2 () {
if (splog0.Count > 1 && splog1.Count > 1 &&
vol0.Count > 1 && vol1.Count > 1)
volMLMax0 = Mathf.Max (volML0.ToArray ()) ;
volMLMax1 = Mathf.Max (volML1.ToArray ()) ;
volMHMax0 = Mathf.Max (volMH0.ToArray ()) ;
volMHMax1 = Mathf.Max (volMH1.ToArray ());
volMLMin0 = Mathf.Min (volML0.ToArray ()) ;
volMLMin1 = Mathf.Min (volML1.ToArray ()) ;
volMHMin0 = Mathf.Min (volMH0.ToArray ()) ;
volMHMin1 = Mathf.Min (volMH1.ToArray ());
spMLMax0 = Mathf.Max (spML0.ToArray ());
spMLMax1 = Mathf.Max (spML1.ToArray ());
spMHMax0 = Mathf.Max (spMH0.ToArray ());
spMHMax1 = Mathf.Max (spMH1.ToArray ());
spMLMin0 = Mathf.Min (spML0.ToArray ());
spMLMin1 = Mathf.Min (spML1.ToArray ());
spMHMin0 = Mathf.Min (spMH0.ToArray ());
spMHMin1 = Mathf.Min (spMH1.ToArray ());
//moyennes fréquences
spMLMax = 41 + ( ((spMLMax0 + 1 + spMLMax1 + 1) * Mathf.Log10 (numSamples / 8)));
spMLMin = 41 + ( ((spMLMin0 + 1 + spMLMin1 + 1) * Mathf.Log10 (numSamples / 8)));
spMLAv = volMLAv * ((spMLMax + spMLMin) / 2) ;
spMHMax = 41 + ( ((spMHMax0 + 1 + spMHMax1 + 1) * Mathf.Log10 (numSamples / 8)));
spMHMin = 41 + ( ((spMHMin0 + 1 + spMHMin1 + 1) * Mathf.Log10 (numSamples / 8)));
spMHAv = volMHAv * ((spMHMax + spMHMin) / 2) ;
//booleene pour augmentation ou baisse fréquence
if ( spMLMax1 > spMLMax0 ){
spMLUp = true ;
}else{
spMLUp = false ;
}
if ( spMLMax1 < spMLMax0) {
spMLDown = true ;
}else{
spMLDown = false ;
}
if ( spMLUp == true || spMLDown == true) {
spMLStable = false;
}else{
spMLStable = true;
}
if ( spMHMax1 > spMHMax0 ){
spMHUp = true ;
}else{
spMHUp = false ;
}
if ( spMHMax1 < spMHMax0) {
spMHDown = true ;
}else{
spMHDown = false ;
}
if ( spMHUp == true || spMHDown == true) {
spMHStable = false;
}else{
spMHStable = true;
}
//moyennes volume
volMLAvMax = 2 + (( 1 * (volMLMax0 + volMLMax1) ) / Mathf.Log10 (numSamples / 8) ) ;
volMLAvMin = 2 + (( 1 * (volMLMin0 + volMLMin1) ) / Mathf.Log10 (numSamples / 8) ) ;
volMLAv = 1 + ((volMLAvMax-volMLAvMin) / 2) ;
volMHAvMax = 2 + (( 1 * (volMHMax0 + volMHMax1) ) / Mathf.Log10 (numSamples / 8) ) ;
volMHAvMin = 2 + (( 1 * (volMHMin0 + volMHMin1) ) / Mathf.Log10 (numSamples / 8) ) ;
volMHAv = 1 + ((volMHAvMax-volMHAvMin) / 2) ;
//booleene pour augmentation ou baisse du volume
if ( volMLMax1 > volMLMax0 ){
volMLUp = true ;
}else{
volMLUp = false ;
}
if ( volMLMax1 < volMLMax0 ) {
volMLDown = true ;
}else{
volMLDown = false ;
}
if ( volMLUp == true || volMLDown == true) {
volMLStable = false;
}else{
volMLStable = true;
}
if ( volMHMax1 > volMHMax0 ){
volMHUp = true ;
}else{
volMHUp = false ;
}
if ( volMHMax1 < volMHMax0 ) {
volMHDown = true ;
}else{
volMHDown = false ;
}
if ( volMHUp == true || volMHDown == true) {
volMHStable = false;
}else{
volMHStable = true;
}
}
//BassLowLow
private float volBLLMax0 ;
private float volBLLMax1 ;
private float volBLLAvMax;
private float volBLLAv;
private float volBLLMin1;
private float volBLLMin0;
private float volBLLAvMin;
private bool volBLLUp = false;
private bool volBLLDown = false;
private bool volBLLStable = true;
private float spBLLMax1;
private float spBLLMax0;
private float spBLLMax;
private float spBLLAv;
private float spBLLMin1;
private float spBLLMin0;
private float spBLLMin;
private bool spBLLUp = false;
private bool spBLLDown = false;
private bool spBLLStable = true;
//BassLowHigh
private float volBLHMax0 ;
private float volBLHMax1 ;
private float volBLHAvMax;
private float volBLHAv;
private float volBLHMin1;
private float volBLHMin0;
private float volBLHAvMin;
private bool volBLHUp = false;
private bool volBLHDown = false;
private bool volBLHStable = true;
private float spBLHMax1;
private float spBLHMax0;
private float spBLHMax;
private float spBLHAv;
private float spBLHMin1;
private float spBLHMin0;
private float spBLHMin;
private bool spBLHUp = false;
private bool spBLHDown = false;
private bool spBLHStable = true;
//BassHighLow
private float volBHLMax0 ;
private float volBHLMax1 ;
private float volBHLAvMax;
private float volBHLAv;
private float volBHLMin1;
private float volBHLMin0;
private float volBHLAvMin;
private bool volBHLUp = false;
private bool volBHLDown = false;
private bool volBHLStable = true;
private float spBHLMax1;
private float spBHLMax0;
private float spBHLMax;
private float spBHLAv;
private float spBHLMin1;
private float spBHLMin0;
private float spBHLMin;
private bool spBHLUp = false;
private bool spBHLDown = false;
private bool spBHLStable = true;
//BassHighHigh
private float volBHHMax0 ;
private float volBHHMax1 ;
private float volBHHAvMax;
private float volBHHAv;
private float volBHHMin1;
private float volBHHMin0;
private float volBHHAvMin;
private bool volBHHUp = false;
private bool volBHHDown = false;
private bool volBHHStable = true;
private float spBHHMax1;
private float spBHHMax0;
private float spBHHMax;
private float spBHHAv;
private float spBHHMin1;
private float spBHHMin0;
private float spBHHMin;
private bool spBHHUp = false;
private bool spBHHDown = false;
private bool spBHHStable = true;
void AnalyseBass4 () {
if (splog0.Count > 1 || splog1.Count > 1 ||
vol0.Count > 1 || vol1.Count > 1)
volBLLMax0 = Mathf.Max (volBLL0.ToArray ());
volBLLMax1 = Mathf.Max (volBLL1.ToArray ());
volBLLMin0 = Mathf.Min (volBLL0.ToArray ());
volBLLMin1 = Mathf.Min (volBLL1.ToArray ());
spBLLMax0 = Mathf.Max (spBLL0.ToArray ());
spBLLMax1 = Mathf.Max (spBLL1.ToArray ());
spBLLMin0 = Mathf.Min (spBLL0.ToArray ());
spBLLMin1 = Mathf.Min (spBLL1.ToArray ());
volBLHMax0 = Mathf.Max (volBLH0.ToArray ());
volBLHMax1 = Mathf.Max (volBLH1.ToArray ());
volBLHMin0 = Mathf.Min (volBLH0.ToArray ());
volBLHMin1 = Mathf.Min (volBLH1.ToArray ());
spBLHMax0 = Mathf.Max (spBLH0.ToArray ());
spBLHMax1 = Mathf.Max (spBLH1.ToArray ());
spBLHMin0 = Mathf.Min (spBLH0.ToArray ());
spBLHMin1 = Mathf.Min (spBLH1.ToArray ());
volBHLMax0 = Mathf.Max (volBHL0.ToArray ());
volBHLMax1 = Mathf.Max (volBHL1.ToArray ());
volBHLMin0 = Mathf.Min (volBHL0.ToArray ());
volBHLMin1 = Mathf.Min (volBHL1.ToArray ());
spBHLMax0 = Mathf.Max (spBHL0.ToArray ());
spBHLMax1 = Mathf.Max (spBHL1.ToArray ());
spBHLMin0 = Mathf.Min (spBHL0.ToArray ());
spBHLMin1 = Mathf.Min (spBHL1.ToArray ());
volBHHMax0 = Mathf.Max (volBHH0.ToArray ());
volBHHMax1 = Mathf.Max (volBHH1.ToArray ());
volBHHMin0 = Mathf.Min (volBHH0.ToArray ());
volBHHMin1 = Mathf.Min (volBHH1.ToArray ());
spBHHMax0 = Mathf.Max (spBHH0.ToArray ());
spBHHMax1 = Mathf.Max (spBHH1.ToArray ());
spBHHMin0 = Mathf.Min (spBHH0.ToArray ());
spBHHMin1 = Mathf.Min (spBHH1.ToArray ());
//moyennes fréquences
spBLLMax = 41 + ( ((spBLLMax0 + 1 + spBLLMax1 + 1) * Mathf.Log10 (numSamples / 16)));
spBLLMin = 41 + ( ((spBLLMin0 + 1 + spBLLMin1 + 1) * Mathf.Log10 (numSamples / 16)));
spBLLAv = volBLLAv * ((spBLLMax + spBLLMin) / 2) ;
spBLHMax = 41 + ( ((spBLHMax0 + 1 + spBLHMax1 + 1) * Mathf.Log10 (numSamples / 16)));
spBLHMin = 41 + ( ((spBLHMin0 + 1 + spBLHMin1 + 1) * Mathf.Log10 (numSamples / 16)));
spBLHAv = volBLHAv * ((spBLHMax + spBLHMin) / 2) ;
spBHLMax = 41 + ( ((spBHLMax0 + 1 + spBHLMax1 + 1) * Mathf.Log10 (numSamples / 16)));
spBHLMin = 41 + ( ((spBHLMin0 + 1 + spBHLMin1 + 1) * Mathf.Log10 (numSamples / 16)));
spBHLAv = volBHLAv * ((spBHLMax + spBHLMin) / 2) ;
spBHHMax = 41 + ( ((spBHHMax0 + 1 + spBHHMax1 + 1) * Mathf.Log10 (numSamples / 16)));
spBHHMin = 41 + ( ((spBHHMin0 + 1 + spBHHMin1 + 1) * Mathf.Log10 (numSamples / 16)));
spBHHAv = volBHHAv * ((spBHHMax + spBHHMin) / 2) ;
//booleene pour augmentation ou baisse fréquence
if ( spBLLMax1 > spBLLMax0 ){
spBLLUp = true ;
}else{
spBLLUp = false ;
}
if ( spBLLMax1 < spBLLMax0) {
spBLLDown = true ;
}else{
spBLLDown = false ;
}
if ( spBLLUp == true || spBLLDown == true) {
spBLLStable = false;
}else{
spBLLStable = true;
}
if ( spBLHMax1 > spBLHMax0 ){
spBLHUp = true ;
}else{
spBLHUp = false ;
}
if ( spBLHMax1 < spBLHMax0) {
spBLHDown = true ;
}else{
spBLHDown = false ;
}
if ( spBLHUp == true || spBLHDown == true) {
spBLHStable = false;
}else{
spBLHStable = true;
}
if ( spBHLMax1 > spBHLMax0 ){
spBHLUp = true ;
}else{
spBHLUp = false ;
}
if ( spBHLMax1 < spBHLMax0) {
spBHLDown = true ;
}else{
spBHLDown = false ;
}
if ( spBHLUp == true || spBHLDown == true) {
spBHLStable = false;
}else{
spBHLStable = true;
}
if ( spBHHMax1 > spBHHMax0 ){
spBHHUp = true ;
}else{
spBHHUp = false ;
}
if ( spBHHMax1 < spBHHMax0) {
spBHHDown = true ;
}else{
spBHHDown = false ;
}
if ( spBHHUp == true || spBHHDown == true) {
spBHHStable = false;
}else{
spBHHStable = true;
}
//moyennes volume
volBLLAvMax = 2 + (( 1 * (volBLLMax0 + volBLLMax1) ) / Mathf.Log10 (numSamples / 16) ) ;
volBLLAvMin = 2 + (( 1 * (volBLLMin0 + volBLLMin1) ) / Mathf.Log10 (numSamples / 16) ) ;
volBLLAv = 1 + ((volBLLAvMax-volBLLAvMin) / 2) ;
volBLHAvMax = 2 + (( 1 * (volBLHMax0 + volBLHMax1) ) / Mathf.Log10 (numSamples / 16) ) ;
volBLHAvMin = 2 + (( 1 * (volBLHMin0 + volBLHMin1) ) / Mathf.Log10 (numSamples / 16) ) ;
volBLHAv = 1 + ((volBLHAvMax-volBLHAvMin) / 2) ;
volBHLAvMax = 2 + (( 1 * (volBHLMax0 + volBHLMax1) ) / Mathf.Log10 (numSamples / 16) ) ;
volBHLAvMin = 2 + (( 1 * (volBHLMin0 + volBHLMin1) ) / Mathf.Log10 (numSamples / 16) ) ;
volBHLAv = 1 + ((volBHLAvMax-volBHLAvMin) / 2) ;
volBHHAvMax = 2 + (( 1 * (volBHHMax0 + volBHHMax1) ) / Mathf.Log10 (numSamples / 16) ) ;
volBHHAvMin = 2 + (( 1 * (volBHHMin0 + volBHHMin1) ) / Mathf.Log10 (numSamples / 16) ) ;
volBHHAv = 1 + ((volBHHAvMax-volBHHAvMin) / 2) ;
//booleene pour augmentation ou baisse du volume
if ( volBLLMax1 > volBLLMax0 ){
volBLLUp = true ;
}else{
volBLLUp = false ;
}
if ( volBLLMax1 < volBLLMax0 ) {
volBLLDown = true ;
}else{
volBLLDown = false ;
}
if ( volBLLUp == true || volBLLDown == true) {
volBLLStable = false;
}else{
volBLLStable = true;
}
if ( volBLHMax1 > volBLHMax0 ){
volBLHUp = true ;
}else{
volBLHUp = false ;
}
if ( volBLHMax1 < volBLHMax0 ) {
volBLHDown = true ;
}else{
volBLHDown = false ;
}
if ( volBLHUp == true || volBLHDown == true) {
volBLHStable = false;
}else{
volBLHStable = true;
}
if ( volBHLMax1 > volBHLMax0 ){
volBHLUp = true ;
}else{
volBHLUp = false ;
}
if ( volBHLMax1 < volBHLMax0 ) {
volBHLDown = true ;
}else{
volBHLDown = false ;
}
if ( volBHLUp == true || volBHLDown == true) {
volBHLStable = false;
}else{
volBHLStable = true;
}
if ( volBHHMax1 > volBHHMax0 ){
volBHHUp = true ;
}else{
volBHHUp = false ;
}
if ( volBHHMax1 < volBHHMax0 ) {
volBHHDown = true ;
}else{
volBHHDown = false ;
}
if ( volBHHUp == true || volBHHDown == true) {
volBHHStable = false;
}else{
volBHHStable = true;
}
}
void Spectre () {
//Total
for (int i = 1 ; i < splog1.Count; i++)
{
var logi0 = Mathf.Log (i - 1);
var logi1 = Mathf.Log (i);
if (float.IsInfinity (logi0) || float.IsNaN (logi0) ||
float.IsInfinity (logi1) || float.IsNaN (logi1) ) {
}else{
Debug.DrawLine (new Vector3 (logi0 * dimension, (splog0[i] * amplitudeS), 0),
new Vector3 (logi1 * dimension, (splog1[i] * amplitudeS), 0) , Color.yellow);
}
}
//Bass&Medium
for (int i = 1 ; i < spM1.Count; i++)
{
var logi0 = Mathf.Log (i - 1);
var logi1 = Mathf.Log (i);
if (float.IsInfinity (logi0) || float.IsNaN (logi0) ||
float.IsInfinity (logi1) || float.IsNaN (logi1) ) {
}else{
Debug.DrawLine (new Vector3 (logi0 * dimension, (spB0[i] * amplitudeS), 20),
new Vector3 (logi1 * dimension, (spB1[i] * amplitudeS), 20) , Color.red);
Debug.DrawLine (new Vector3 (logi0 * dimension, (spM0[i] * amplitudeS), 120),
new Vector3 (logi1 * dimension, (spM1[i] * amplitudeS), 120) , Color.green);
}
}
//High
for (int i = 1 ; i < spH1.Count; i++)
{
var logi0 = Mathf.Log (i - 1);
var logi1 = Mathf.Log (i);
if (float.IsInfinity (logi0) || float.IsNaN (logi0) ||
float.IsInfinity (logi1) || float.IsNaN (logi1) ) {
}else{
Debug.DrawLine (new Vector3 (logi0 * dimension, (spH0[i] * amplitudeS), 180),
new Vector3 (logi1 * dimension, (spH1[i] * amplitudeS), 180) , Color.blue);
}
}
//Mediums
for (int i = 1 ; i < spMH1.Count; i++)
{
var logi0 = Mathf.Log (i - 1);
var logi1 = Mathf.Log (i);
if (float.IsInfinity (logi0) || float.IsNaN (logi0) ||
float.IsInfinity (logi1) || float.IsNaN (logi1) ) {
}else{
Debug.DrawLine (new Vector3 (logi0 * dimension, (spML0[i] * amplitudeS), 140),
new Vector3 (logi1 * dimension, (spML1[i] * amplitudeS), 140) , Color.green);
Debug.DrawLine (new Vector3 (logi0 * dimension, (spMH0[i] * amplitudeS), 160),
new Vector3 (logi1 * dimension, (spMH1[i] * amplitudeS), 160) , Color.green);
}
}
//Bass*4
for (int i = 1 ; i < spBHH1.Count; i++)
{
var logi0 = Mathf.Log (i - 1);
var logi1 = Mathf.Log (i);
if (float.IsInfinity (logi0) || float.IsNaN (logi0) ||
float.IsInfinity (logi1) || float.IsNaN (logi1) ) {
}else{
Debug.DrawLine (new Vector3 (logi0 * dimension, (spBLL0[i] * amplitudeS), 40),
new Vector3 (logi1 * dimension, (spBLL1[i] * amplitudeS), 40) , Color.red);
Debug.DrawLine (new Vector3 (logi0 * dimension, (spBLH0[i] * amplitudeS), 60),
new Vector3 (logi1 * dimension, (spBLH1[i] * amplitudeS), 60) , Color.red);
Debug.DrawLine (new Vector3 (logi0 * dimension, (spBHL0[i] * amplitudeS), 80),
new Vector3 (logi1 * dimension, (spBHL1[i] * amplitudeS), 80) , Color.red);
Debug.DrawLine (new Vector3 (logi0 * dimension, (spBHH0[i] * amplitudeS), 100),
new Vector3 (logi1 * dimension, (spBHH1[i] * amplitudeS), 100) , Color.red);
}
}
}
void totalGUI () {
GUI.contentColor = Color.yellow;
GUI.Box (new Rect (10, 10, 320, 80),"VOLUME TOTAL SPECTRE" );
GUI.Label (new Rect (10, 30, 100, 20),"Min " + volAvMin);
GUI.Label (new Rect (10, 50, 100, 20),"Max " + volAvMax);
GUI.Label (new Rect (10, 70, 100, 20),"*Av " + volAv);
if (volUp == true) {
GUI.Label (new Rect (110, 30, 60, 20),"UP" );
}else{}
if (volDown == true) {
GUI.Label (new Rect (110, 50, 60, 20),"DOWN" );
}else{}
if (volStable == true) {
GUI.Label (new Rect (110, 70, 60, 20),"STABLE" );
}else{}
GUI.Label (new Rect (170, 30, 200, 20),"Min " + splogMin);
GUI.Label (new Rect (170, 50, 200, 20),"Max " + splogMax);
GUI.Label (new Rect (170, 70, 200, 20),"*Av " + splogAv);
if (splogUp == true) {
GUI.Label (new Rect (270, 30, 60, 20),"UP" );
}else{}
if (splogDown == true) {
GUI.Label (new Rect (270, 50, 60, 20),"DOWN" );
}else{}
if (splogStable == true) {
GUI.Label (new Rect (270, 70, 60, 20),"STABLE" );
}else{}
}
void HGUI () {
//high
GUI.contentColor = Color.cyan;
GUI.Box (new Rect (10, 10, 320, 80), "VOLUME HIGH SPECTRE" );
GUI.Label (new Rect (10, 30, 100, 20),"Min " + volHAvMin);
GUI.Label (new Rect (10, 50, 100, 20),"Max " + volHAvMax);
GUI.Label (new Rect (10, 70, 100, 20),"*Av " + volHAv);
if (volUp == true) {
GUI.Label (new Rect (110, 30, 60, 20),"UP" );
}else{}
if (volDown == true) {
GUI.Label (new Rect (110, 50, 60, 20),"DOWN" );
}else{}
if (volStable == true) {
GUI.Label (new Rect (110, 70, 60, 20),"STABLE" );
}else{}
GUI.Label (new Rect (170, 30, 100, 20),"Min " + spHMin);
GUI.Label (new Rect (170, 50, 100, 20),"Max " + spHMax);
GUI.Label (new Rect (170, 70, 100, 20),"*Av " + spHAv);
if (spHUp == true) {
GUI.Label (new Rect (270, 30, 60, 20),"UP" );
}else{}
if (spHDown == true) {
GUI.Label (new Rect (270, 50, 60, 20),"DOWN" );
}else{}
if (spHStable == true) {
GUI.Label (new Rect (270, 70, 60, 20),"STABLE" );
}else{}
}
void MGUI () {
//medium
GUI.contentColor = Color.green;
GUI.Box (new Rect (10, 110, 320, 80),"VOLUME MEDIUM SPECTRE" );
GUI.Label (new Rect (10, 130, 100, 20),"Min " + volMAvMin);
GUI.Label (new Rect (10, 150, 100, 20),"Max " + volMAvMax);
GUI.Label (new Rect (10, 170, 100, 20),"*Av " + volMAv);
if (volMUp == true) {
GUI.Label (new Rect (110, 130, 60, 20),"UP" );
}else{}
if (volMDown == true) {
GUI.Label (new Rect (110, 150, 60, 20),"DOWN" );
}else{}
if (volMStable == true) {
GUI.Label (new Rect (110, 170, 60, 20),"STABLE" );
}else{}
GUI.Label (new Rect (170, 130, 100, 20),"Min " + spMMin);
GUI.Label (new Rect (170, 150, 100, 20),"Max " + spMMax);
GUI.Label (new Rect (170, 170, 100, 20),"*Av " + spMAv);
if (spMUp == true) {
GUI.Label (new Rect (270, 130, 60, 20),"UP" );
}else{}
if (spMDown == true) {
GUI.Label (new Rect (270, 150, 60, 20),"DOWN" );
}else{}
if (spMStable == true) {
GUI.Label (new Rect (270, 170, 60, 20),"STABLE" );
}else{}
}
void BGUI () {
//bass
GUI.contentColor = Color.red;
GUI.Box (new Rect (10, 210, 320, 80),"VOLUME BASS SPECTRE" );
GUI.Label (new Rect (10, 230, 100, 20),"Min " + volBAvMin);
GUI.Label (new Rect (10, 250, 100, 20),"Max " + volBAvMax);
GUI.Label (new Rect (10, 270, 100, 20),"*Av " + volBAv);
if (volBUp == true) {
GUI.Label (new Rect (110, 230, 60, 20),"UP" );
}else{}
if (volBDown == true) {
GUI.Label (new Rect (110, 250, 60, 20),"DOWN" );
}else{}
if (volBStable == true) {
GUI.Label (new Rect (110, 270, 60, 20),"STABLE" );
}else{}
GUI.Label (new Rect (170, 230, 100, 20),"Min " + spBMin);
GUI.Label (new Rect (170, 250, 100, 20),"Max " + spBMax);
GUI.Label (new Rect (170, 270, 100, 20),"*Av " + spBAv);
if (spBUp == true) {
GUI.Label (new Rect (270, 230, 60, 20),"UP" );
}else{}
if (spBDown == true) {
GUI.Label (new Rect (270, 250, 60, 20),"DOWN" );
}else{}
if (spBStable == true) {
GUI.Label (new Rect (270, 270, 60, 20),"STABLE" );
}else{}
}
void MLGUI () {
//medium low
GUI.contentColor = Color.green;
GUI.Box (new Rect (10, 10, 320, 80),"VOLUME MEDIUM LOW SPECTRE" );
GUI.Label (new Rect (10, 30, 100, 20),"Min " + volMLAvMin);
GUI.Label (new Rect (10, 50, 100, 20),"Max " + volMLAvMax);
GUI.Label (new Rect (10, 70, 100, 20),"*Av " + volMLAv);
if (volMLUp == true) {
GUI.Label (new Rect (110, 30, 60, 20),"UP" );
}else{}
if (volMLDown == true) {
GUI.Label (new Rect (110, 50, 60, 20),"DOWN" );
}else{}
if (volMLStable == true) {
GUI.Label (new Rect (110, 70, 60, 20),"STABLE" );
}else{}
GUI.Label (new Rect (170, 30, 100, 20),"Min " + spMLMin );
GUI.Label (new Rect (170, 50, 100, 20),"Max " + spMLMax);
GUI.Label (new Rect (170, 70, 100, 20),"*Av " + spMLAv);
if (spMHUp == true) {
GUI.Label (new Rect (270, 30, 60, 20)," UP" );
}else{}
if (spMHDown == true) {
GUI.Label (new Rect (270, 50, 60, 20),"DOWN" );
}else{}
if (spMHStable == true) {
GUI.Label (new Rect (270, 70, 60, 20),"STABLE" );
}else{}
}
void MHGUI () {
//medium high
GUI.contentColor = Color.green;
GUI.Box (new Rect (10, 110, 320, 80),"VOLUME MEDIUM HIGH SPECTRE" );
GUI.Label (new Rect (10, 130, 100, 20),"Min " + volMHAvMin);
GUI.Label (new Rect (10, 150, 100, 20),"Max " + volMHAvMax);
GUI.Label (new Rect (10, 170, 100, 20),"*Av " + volMHAv);
if (volMHUp == true) {
GUI.Label (new Rect (110, 130, 60, 20),"UP" );
}else{}
if (volMHDown == true) {
GUI.Label (new Rect (110, 150, 60, 20),"DOWN" );
}else{}
if (volMHStable == true) {
GUI.Label (new Rect (110, 170, 60, 20),"STABLE" );
}else{}
GUI.Label (new Rect (170, 130, 100, 20),"Min " + spMHMin);
GUI.Label (new Rect (170, 150, 100, 20),"Max " + spMHMax);
GUI.Label (new Rect (170, 170, 100, 20),"*Av " + spMHAv);
if (spMHUp == true) {
GUI.Label (new Rect (270, 130, 60, 20)," UP" );
}else{}
if (spMHDown == true) {
GUI.Label (new Rect (270, 150, 60, 20),"DOWN" );
}else{}
if (spMHStable == true) {
GUI.Label (new Rect (270, 170, 60, 20),"STABLE" );
}else{}
}
void BLLGUI () {
//bass low low
GUI.contentColor = Color.red;
GUI.Box (new Rect (10, 210, 320, 80),"VOLUME BASS LOW LOW SPECTRE" );
GUI.Label (new Rect (10, 230, 100, 20),"Min " + volBLLAvMin);
GUI.Label (new Rect (10, 250, 100, 20),"Max " + volBLLAvMax);
GUI.Label (new Rect (10, 270, 100, 20),"*Av " + volBLLAv);
if (volBLLUp == true) {
GUI.Label (new Rect (110, 230, 60, 20),"UP" );
}else{}
if (volBLLDown == true) {
GUI.Label (new Rect (110, 250, 60, 20),"DOWN" );
}else{}
if (volBLLStable == true) {
GUI.Label (new Rect (110, 270, 60, 20),"STABLE" );
}else{}
GUI.Label (new Rect (170, 230, 100, 20),"Min " + spBLLMin);
GUI.Label (new Rect (170, 250, 100, 20),"Max " + spBLLMax);
GUI.Label (new Rect (170, 270, 100, 20),"*Av " + spBLLAv);
if (spBLLUp == true) {
GUI.Label (new Rect (270, 230, 60, 20)," UP" );
}else{}
if (spBLLDown == true) {
GUI.Label (new Rect (270, 250, 60, 20),"DOWN" );
}else{}
if (spBLLStable == true) {
GUI.Label (new Rect (270, 270, 60, 20),"STABLE" );
}else{}
}
void BLHGUI () {
//bass low high
GUI.contentColor = Color.red;
GUI.Box (new Rect (10, 310, 320, 80),"VOLUME BASS LOW HIGH SPECTRE" );
GUI.Label (new Rect (10, 330, 100, 20),"Min " + volBLHAvMin);
GUI.Label (new Rect (10, 350, 100, 20),"Max " + volBLHAvMax);
GUI.Label (new Rect (10, 370, 100, 20),"*Av " + volBLHAv);
if (volBLHUp == true) {
GUI.Label (new Rect (110, 330, 60, 20),"UP" );
}else{}
if (volBLHDown == true) {
GUI.Label (new Rect (110, 350, 60, 20),"DOWN" );
}else{}
if (volBLHStable == true) {
GUI.Label (new Rect (110, 370, 60, 20),"STABLE" );
}else{}
GUI.Label (new Rect (170, 330, 100, 20),"Min " + spBLHMin);
GUI.Label (new Rect (170, 350, 100, 20),"Max " + spBLHMax);
GUI.Label (new Rect (170, 370, 100, 20),"*Av " + spBLHAv);
if (spBLHUp == true) {
GUI.Label (new Rect (270, 330, 60, 20)," UP" );
}else{}
if (spBLHDown == true) {
GUI.Label (new Rect (270, 350, 60, 20),"DOWN" );
}else{}
if (spBLHStable == true) {
GUI.Label (new Rect (270, 370, 60, 20),"STABLE" );
}else{}
}
void BHLGUI () {
//bass high low
GUI.contentColor = Color.red;
GUI.Box (new Rect (10, 410, 320, 80),"VOLUME BASS HIGH LOW SPECTRE" );
GUI.Label (new Rect (10, 430, 100, 20),"Min " + volBHLAvMin);
GUI.Label (new Rect (10, 450, 100, 20),"Max " + volBHLAvMax);
GUI.Label (new Rect (10, 470, 100, 20),"*Av " + volBHLAv);
if (volBHLUp == true) {
GUI.Label (new Rect (110, 430, 60, 20),"UP" );
}else{}
if (volBHLDown == true) {
GUI.Label (new Rect (110, 450, 60, 20),"DOWN" );
}else{}
if (volBHLStable == true) {
GUI.Label (new Rect (110, 470, 60, 20),"STABLE" );
}else{}
GUI.Label (new Rect (170, 430, 100, 20),"Min " + spBHLMin);
GUI.Label (new Rect (170, 450, 100, 20),"Max " + spBHLMax);
GUI.Label (new Rect (170, 470, 100, 20),"*Av " + spBHLAv);
if (spBHLUp == true) {
GUI.Label (new Rect (270, 430, 60, 20)," UP" );
}else{}
if (spBHLDown == true) {
GUI.Label (new Rect (270, 450, 60, 20),"DOWN" );
}else{}
if (spBHLStable == true) {
GUI.Label (new Rect (270, 470, 60, 20),"STABLE" );
}else{}
}
void BHHGUI () {
//bass high high
GUI.contentColor = Color.red;
GUI.Box (new Rect (10, 510, 320, 80),"VOLUME BASS HIGH HIGH SPECTRE" );
GUI.Label (new Rect (10, 530, 100, 20),"Min " + volBHHAvMin);
GUI.Label (new Rect (10, 550, 100, 20),"Max " + volBHHAvMax);
GUI.Label (new Rect (10, 570, 100, 20),"*Av " + volBHHAv);
if (volBHHUp == true) {
GUI.Label (new Rect (110, 530, 60, 20),"UP" );
}else{}
if (volBHHDown == true) {
GUI.Label (new Rect (110, 550, 60, 20),"DOWN" );
}else{}
if (volBHHStable == true) {
GUI.Label (new Rect (110, 570, 60, 20),"STABLE" );
}else{}
GUI.Label (new Rect (170, 530, 100, 20),"Min " + spBHHMin);
GUI.Label (new Rect (170, 550, 100, 20),"Max " + spBHHMax);
GUI.Label (new Rect (170, 570, 100, 20),"*Av " + spBHHAv);
if (spBHHUp == true) {
GUI.Label (new Rect (270, 530, 60, 20)," UP" );
}else{}
if (spBHHDown == true) {
GUI.Label (new Rect (270, 550, 60, 20),"DOWN" );
}else{}
if (spBHHStable == true) {
GUI.Label (new Rect (270, 570, 60, 20),"STABLE" );
}else{}
}
void OnGUI() {
if (Input.GetKey (KeyCode.Alpha1))
{
totalGUI ();
}
if (Input.GetKey (KeyCode.Alpha2))
{
HGUI ();
MGUI ();
BGUI ();
}
if (Input.GetKey (KeyCode.Alpha3))
{
MLGUI ();
MHGUI ();
BLLGUI ();
BLHGUI ();
BHLGUI ();
BHHGUI ();
}
trashok = true;
if (trashok = true)
{
Trash ();
}
//pour enlver les valeurs NaN
/**if (float.IsNaN (volAvMin) || float.IsNaN (volAv) ||
float.IsNaN (volAvMax) || float.IsNaN (freqGen) ) {
}else{
}/**/
}
public void Trash (){
if (splog1.Count > numSamples - 2 && splog0.Count > numSamples - 2 && vol0.Count > numSamples - 2 && vol1.Count > numSamples - 2)
{
splog0.Clear();
splog1.Clear();
vol0.Clear();
vol1.Clear();
}
if (spH1.Count > numL2 - 2 && spH0.Count > numL2 - 2 && volH0.Count > numL2 - 2 && volH1.Count > numL2 - 2)
{
spH0.Clear();
spH1.Clear();
volH0.Clear();
volH1.Clear();
}
if (spM1.Count > numL4 - 2 || spM0.Count > numL4 - 2 || volM0.Count > numL4 - 2 || volM1.Count > numL4 - 2)
{
spM0.Clear();
spM1.Clear();
volM0.Clear();
volM1.Clear();
spB0.Clear();
spB1.Clear();
volB0.Clear();
volB1.Clear();
}
if (spML1.Count > numL8 - 2 && spML0.Count > numL8 - 2 && volML0.Count > numL8 - 2 && volML1.Count > numL8 - 2)
{
spML0.Clear();
spML1.Clear();
volML0.Clear();
volML1.Clear();
spMH0.Clear();
spMH1.Clear();
volMH0.Clear();
volMH1.Clear();
}
if (spBLL1.Count > numL16 - 1 && spBLL0.Count > numL16 - 1 && volBLL0.Count > numL16 - 1 && volBLL1.Count > numL16 - 1)
{
spBLL0.Clear();
spBLL1.Clear();
volBLL0.Clear();
volBLL1.Clear();
spBLH0.Clear();
spBLH1.Clear();
volBLH0.Clear();
volBLH1.Clear();
spBHL0.Clear();
spBHL1.Clear();
volBHL0.Clear();
volBHL1.Clear();
spBHH0.Clear();
spBHH1.Clear();
volBHH0.Clear();
volBHH1.Clear();
}
trashok = false;
}
}