示例#1
0
    private void Update()
    {
        audioSource.GetOutputData(sampleData, 1);
        double?dfreq = PitchAccord.EstimateBasicFrequency(AudioSettings.outputSampleRate, sampleData, powerAverageValue);

        if (dfreq.HasValue)
        {
            int freq = (int)dfreq;

            freqText.text = string.Format("Freq {0}Hz\nMax {1}Hz\nMin {2}Hz", freq, max, min);
            freq          = Mathf.Clamp(freq, min, max);
            pC.Movement   = (float)(freq - min) / (max - min);

            //パワースペクトルからデシベルを呼び出す
            dB = PitchAccord.GetDB();
            if (dB.HasValue)
            {
                normalizedValue = (float)(dB.Value - powerAverageValue) / (maxPowerValue - powerAverageValue);
                var speed = (Mathf.Clamp(normalizedValue, 0f, 1f)) * (maxspeed - minspeed) + minspeed;
                sC.SetFreqSpeed(Mathf.Lerp(sC.GetFreqSpeed(),
                                           speed, Time.deltaTime * 1.5f));
            }
        }
        else
        {
            sC.SetFreqSpeed(Mathf.Lerp(sC.GetFreqSpeed(),
                                       minspeed, Time.deltaTime * 1.5f));

            freqText.text = string.Format("Freq 0Hz\nMax {0}Hz\nMin {1}Hz", max, min);
        }
    }
示例#2
0
        void Update()
        {
            audioSource.GetOutputData(sampleData, 1);
            double?dfreq = PitchAccord.EstimateBasicFrequency(AudioSettings.outputSampleRate, sampleData, powerAverageValue);

            dFreq = dfreq ?? 0;
            if (dfreq.HasValue)
            {
                freq          = (int)dfreq;
                freqText.text = freq.ToString() + "Hz";
                if (freqCount.ContainsKey(freq))
                {
                    freqCount[freq]++;
                    if (freqCount[freq] >= registerCount)
                    {
                        MaxFreqCheck(freq);
                        MinFreqCheck(freq);
                    }
                }
                else
                {
                    freqCount[freq] = 1;
                }
            }
            else
            {
                freqText.text = "0 Hz";
            }
        }