/// <summary> /// Computes the spectogram of an audio file. /// </summary> /// <param name="decoder">The <see cref="IDecoder"/> instance.</param> /// <returns>Chroma image.</returns> public static Image ComputeSpectrogram(IDecoder decoder) { int numBands = 72; var image = new Image(numBands); var image_builder = new ImageBuilder(image); var chroma = new Spectrum(numBands, MIN_FREQ, MAX_FREQ, FRAME_SIZE, SAMPLE_RATE, image_builder); var fft = new FFT(FRAME_SIZE, OVERLAP, chroma, new LomontFFTService()); var processor = new AudioProcessor(SAMPLE_RATE, fft); processor.Reset(decoder.SampleRate, decoder.Channels); decoder.Decode(processor, 120); processor.Flush(); return image; }
//static int MAX_FILTER_WIDTH = 20; public static Image Compute(string file, IDecoder decoder) { int numBands = 72; Image image = new Image(numBands); ImageBuilder image_builder = new ImageBuilder(image); Spectrum chroma = new Spectrum(numBands, MIN_FREQ, MAX_FREQ, FRAME_SIZE, SAMPLE_RATE, image_builder); FFT fft = new FFT(FRAME_SIZE, OVERLAP, chroma); AudioProcessor processor = new AudioProcessor(SAMPLE_RATE, fft); processor.Reset(decoder.SampleRate, decoder.Channels); decoder.Decode(processor, 120); processor.Flush(); //ExportImage(image, name, 0.5); return image; }