public override void Update()
        {
            VisualizationData[0] = 0;

            ISpectrum spectrum = _specturProvider.GetLogarithmicSpectrum(64);

            float currentEnergy = 0;

            for (int i = 0; i < 16; i++)
            {
                currentEnergy += spectrum[i].Average;
            }

            float averageEnergy = _history.Average;

            _history.Put(currentEnergy);

            if (currentEnergy > 1)
            {
                float alpha = MathHelper.Clamp(currentEnergy / averageEnergy / 15, 0, 1);
                System.Diagnostics.Debug.WriteLine(alpha);
                if (alpha > 0.1)
                {
                    VisualizationData[0] = alpha;
                }
            }
        }
 private ISpectrum GetSpectrum(ISpectrumProvider spectrumProvider)
 {
     return(Properties.SpectrumMode.CurrentValue switch
     {
         SpectrumMode.Gamma => spectrumProvider.GetGammaSpectrum(Properties.Bars.CurrentValue, Properties.Gamma.CurrentValue, Properties.MinFrequency.CurrentValue, Properties.MaxFrequency.CurrentValue),
         SpectrumMode.Logarithmic => spectrumProvider.GetLogarithmicSpectrum(Properties.Bars.CurrentValue, Properties.MinFrequency.CurrentValue, Properties.MaxFrequency.CurrentValue),
         SpectrumMode.Linear => spectrumProvider.GetLinearSpectrum(Properties.Bars.CurrentValue, Properties.MinFrequency.CurrentValue, Properties.MaxFrequency.CurrentValue),
         _ => null
     });
示例#3
0
        public override void Update()
        {
            VisualizationData[0] = 0;

            ISpectrum spectrum = _specturProvider.GetLogarithmicSpectrum(64);

            for (int i = 0; i < 32; i++)
            {
                float currentEnergy = spectrum[i].Average;
                float averageEnergy = _history[i].Average;
                _history[i].Put(currentEnergy);

                if (currentEnergy > (35 * averageEnergy))
                {
                    VisualizationData[0] = 1;
                    break;
                }
            }
        }