void DataAvailable(object sender, WaveInEventArgs e) { Stopwatch sw = new Stopwatch(); sw.Start(); waveLeft = new double[e.Buffer.Length / 2]; for (int i = 0; i < waveLeft.Length; i++) { waveLeft[i] = BitConverter.ToInt16(e.Buffer, i * 2); } //if (trackBar.InvokeRequired) trackBar.Invoke ((MethodInvoker) delegate { waveLeft = wi.signalGenerator.GenerateSignal(trackBar.Value); label.Text = trackBar.Value.ToString(); }); fftLeft = FFT.FFTDb(ref waveLeft); RenderFrequencyDomain(); RenderTimeDomain(); sw.Stop(); //Console.WriteLine(sw.ElapsedTicks + " " + sw.Elapsed.TotalMilliseconds + " "); }