Exemple #1
0
 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);
 }
Exemple #2
0
        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());
        }
Exemple #3
0
        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);
        }