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 });
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; } } }