public void TestInit() { inputFrame = new AudioFrame(4 * inputFrameSize * 2); // 800 floats, 2 channels // Generate sine wave of amp 1 and period of 200 (f=0.25) samples into channel 0 and triangle with period 800 and amp 0.1 inopt channel 1 inputFrame.Generate(2, 0, (Int64 frameIndex, uint channelIndex) => { return(channelIndex == 0 ? (float)Math.Sin(2.0 * Math.PI * frameIndex / 200.0) : (float)(frameIndex % inputFrameSize) / 7990.0f); } ); inputFrame.RelativeTime = TimeSpan.FromSeconds(1); }
public void AudioAnalyzer_Buffer_OverlapAreaIsClear() { var sut = new AudioAnalyzer(3200, 2, 48000, 800, 800, 2048, false); RegisterOutputHandler(sut); AudioFrame silence = new AudioFrame(4 * 2 * 800); silence.Generate(2, 0, (frameIndex, channelIndex) => { return(0.0f); }); sut.ProcessInput(silence); Assert.AreEqual(0.0f, outputFrames.First().Spectrum[0].Sum()); Assert.AreEqual(0.0f, outputFrames.First().Spectrum[1].Sum()); }
void SetupSpectrum(int T) { var sut = new AudioAnalyzer(4096, 2, 48000, 1024, 0, 2048, false); RegisterOutputHandler(sut); sut.AnalyzerTypes = AnalyzerType.Spectrum; var sineFrame = new AudioFrame(2048 * sizeof(float)); // Generate signal with 0 channel sine wave of period T sineFrame.Generate(2, 0, (frameIndex, channelIndex) => { return(channelIndex == 0 ? (float)Math.Sin(Math.PI * frameIndex / (double)T) : 0.0f); }); sut.ProcessInput(sineFrame); }