protected override void OnEnable() { base.OnEnable(); this.spectrumVisualizer = this.target as SpectrumVisualizer; this.numberOfBands = this.serializedObject.FindProperty("numberOfBands"); }
private void VisualizerProcess() { using (Visualizer = new SpectrumVisualizer(1280, 720, "CSharpNation_V2.0", Analyzer, Waves, textureManager, LogoOffset)) { Visualizer.Run(); } }
private void VisualizerProcess() { using (Visualizer = new SpectrumVisualizer(1280, 720, "CSharpNation_V2.0", Analyzer, windowManager.GetWaves(), windowManager.GetTextureManager(), new float[4])) { Visualizer.Run(); } }
public TabEffects() { InitializeComponent(); renderedSpectrumVisualizer = new SpectrumVisualizer(); renderedSpectrumVisualizer.Opactity = 0.2f; loopbackCaptureController = new LoopbackCaptureController(); loopbackCaptureController.OnCapture += loopbackCaptureController_OnCapture; }
void SetupSampleSource(ISampleSource sampleSource) { FftSize fftSize = FftSize.Fft4096; SpectrumProvider spectrumProvider = new SpectrumProvider(sampleSource.WaveFormat.Channels, sampleSource.WaveFormat.SampleRate, fftSize); //spectrum = new BlobSpectrum(this, spectrumProvider, FftSize.Fft4096); spectrum = new RLSpectrum(this, spectrumProvider, FftSize.Fft4096); SingleBlockNotificationStream notificationSource = new SingleBlockNotificationStream(sampleSource); notificationSource.SingleBlockRead += (s, a) => spectrumProvider.Add(a.Left, a.Right); source = notificationSource.ToWaveSource(16); }
private void SetDataFFT(WaveInEventArgs args) { int bytesPerSample = _wi.WaveFormat.BitsPerSample / 8; int samplesRecorded = args.BytesRecorded / bytesPerSample; Int16[] dataPcm = new Int16[samplesRecorded]; for (int i = 0; i < samplesRecorded; i++) { dataPcm[i] = BitConverter.ToInt16(args.Buffer, i * bytesPerSample); } // the PCM size to be analyzed with FFT must be a power of 2 int fftPoints = 2; while (fftPoints * 2 <= dataPcm.Length) { fftPoints *= 2; } // apply a Hamming window function as we load the FFT array then calculate the FFT NAudio.Dsp.Complex[] fftFull = new NAudio.Dsp.Complex[fftPoints]; for (int i = 0; i < fftPoints; i++) { fftFull[i].X = (float)(dataPcm[i] * NAudio.Dsp.FastFourierTransform.HammingWindow(i, fftPoints)); } NAudio.Dsp.FastFourierTransform.FFT(true, (int)Math.Log(fftPoints, 2.0), fftFull); double[] dataFft = new double[fftPoints / 2]; byte[] data = new byte[fftPoints / 2]; for (int i = 0; i < fftPoints / 2; i++) { double fftLeft = Math.Abs(fftFull[i].X + fftFull[i].Y); double fftRight = Math.Abs(fftFull[fftPoints - i - 1].X + fftFull[fftPoints - i - 1].Y); dataFft[i] = fftLeft + fftRight; data[i] = (byte)(fftLeft + fftRight); } /*if(SpectrumVisualizer.GetType().Name == "CircleSpectrumVisualizer") * SpectrumVisualizer.Set(GetNiceCircleFFT(data)); * else * SpectrumVisualizer.Set(data);*/ SpectrumVisualizer.Set(GetNiceFftData(data, SpectrumVisualizer.GetType().Name == "CircleSpectrumVisualizer")); }
private void SetDataAmplitude(WaveInEventArgs args) { int bytesPerSample = _wi.WaveFormat.BitsPerSample / 8; int samplesRecorded = args.BytesRecorded / bytesPerSample; Int16[] lastBuffer = new Int16[samplesRecorded]; for (int i = 0; i < samplesRecorded; i++) { lastBuffer[i] = BitConverter.ToInt16(args.Buffer, i * bytesPerSample); } int lastBufferAmplitude = lastBuffer.Max() - lastBuffer.Min(); double amplitude = (double)lastBufferAmplitude / Math.Pow(2, _wi.WaveFormat.BitsPerSample); if (amplitude > peakAmplitudeSeen) { peakAmplitudeSeen = amplitude; } amplitude = amplitude / peakAmplitudeSeen * 100; //_spectrumdata.Clear(); if (_spectrumdata.Count >= NumberOfLines) { _spectrumdata.RemoveAt(0); } double regleDe3 = amplitude * 255 / 100; int y = Convert.ToInt32(regleDe3); if (y > 255) { y = 255; } if (y < 0) { y = 0; } _spectrumdata.Add((byte)y); SpectrumVisualizer.Set(_spectrumdata.ToArray()); }
public void TestInit() { sut = new AudioVisualizer.SpectrumVisualizer(); }