public Fingerprinter(FingerprinterConfiguration config, IFFTService fftService) { m_image = new Image(12); if (config == null) { config = new FingerprinterConfigurationTest1(); } m_image_builder = new ImageBuilder(m_image); m_chroma_normalizer = new ChromaNormalizer(m_image_builder); m_chroma_filter = new ChromaFilter(config.FilterCoefficients, m_chroma_normalizer); m_chroma = new Chroma(MIN_FREQ, MAX_FREQ, FRAME_SIZE, SAMPLE_RATE, m_chroma_filter); //m_chroma.set_interpolate(true); // TODO: inject IFFTService m_fft = new FFT(FRAME_SIZE, OVERLAP, m_chroma, fftService); if (config.RemoveSilence) { m_silence_remover = new SilenceRemover(m_fft); m_silence_remover.Threshold = config.SilenceThreshold; m_audio_processor = new AudioProcessor(SAMPLE_RATE, m_silence_remover); } else { m_silence_remover = null; m_audio_processor = new AudioProcessor(SAMPLE_RATE, m_fft); } m_fingerprint_calculator = new FingerprintCalculator(config.Classifiers); m_config = config; }
public void TestPassThrough() { short[] samples = { 1000, 2000, 3000, 4000, 5000, 6000 }; short[] data = (short[])(samples.Clone()); AudioBuffer buffer = new AudioBuffer(); SilenceRemover processor = new SilenceRemover(buffer); processor.Reset(44100, 1); processor.Consume(data, data.Length); processor.Flush(); Assert.AreEqual(data.Length, buffer.data.Length); for (int i = 0; i < data.Length; i++) { Assert.AreEqual(data[i], buffer.data[i]); // << "Signals differ at index " << i; } }
public void TestRemoveLeadingSilence() { short[] samples1 = { 0, 60, 0, 1000, 2000, 0, 4000, 5000, 0 }; short[] data1 = (short[])(samples1.Clone()); short[] samples2 = { 1000, 2000, 0, 4000, 5000, 0 }; short[] data2 = (short[])(samples2.Clone()); AudioBuffer buffer = new AudioBuffer(); SilenceRemover processor = new SilenceRemover(buffer, 100); processor.Reset(44100, 1); processor.Consume(data1, data1.Length); processor.Flush(); Assert.AreEqual(data2.Length, buffer.data.Length); for (int i = 0; i < data2.Length; i++) { Assert.AreEqual(data2[i], buffer.data[i]); // << "Signals differ at index " << i; } }