private void WaveIn_DataAvailable(object sender, NAudio.Wave.WaveInEventArgs e) { (new Thread(() => { var sw = new Stopwatch(); sw.Start(); AudioHelpers.ByteArrayTo16BITInputFormat(ref receivedData, e.Buffer); var input = receivedData.Convert2ChannelsToFloat(); if (processor.Model.InputSamplesCount != input.Count()) { processor.Model.InputSamplesCount = input.Count(); } var result = processor.Process(input.ToArray()); var note = NoteViewModel.GetNote(result); sw.Stop(); Debug.WriteLine(string.Format("Note {0}\tTime elapsed {1}", string.Format(note.Tone.ToString(), note.Base), sw.Elapsed)); })).Start(); }