public void Test_Mel_Spectrogram() { (int sampleRate, double[] audio) = WavFile.ReadMono("../../../../../data/cant-do-that-44100.wav"); int fftSize = 4096; var spec = new Spectrogram(sampleRate, fftSize, stepSize: 500); spec.Add(audio); spec.SaveImage("halNotMel.png", 4, true); Bitmap bmp = spec.GetBitmapMel(250, 4, true); bmp.Save("../../../../../dev/graphics/halMel.png", ImageFormat.Png); }
public void Test_SFF_Mel() { (int sampleRate, double[] audio) = WavFile.ReadMono("../../../../../data/cant-do-that-44100.wav"); int fftSize = 1 << 12; var spec = new Spectrogram(sampleRate, fftSize, stepSize: 700); spec.SetWindow(FftSharp.Window.Hanning(fftSize / 3)); // sharper window than typical spec.Add(audio); Bitmap bmp = spec.GetBitmapMel(250, 3, true); bmp.Save("../../../../../dev/sff/halMel.png", System.Drawing.Imaging.ImageFormat.Png); spec.SaveData("../../../../../dev/sff/halMel.sff", melBinCount: 250); var spec2 = new SFF("../../../../../dev/sff/halMel.sff"); Assert.AreEqual(spec.SampleRate, spec2.SampleRate); Assert.AreEqual(spec.StepSize, spec2.StepSize); Assert.AreEqual(spec.Width, spec2.Width); Assert.AreEqual(spec.FftSize, spec2.FftSize); Assert.AreEqual(spec.NextColumnIndex, spec2.FftFirstIndex); Assert.AreEqual(spec.Height, spec2.Height); Assert.AreEqual(spec.OffsetHz, spec2.OffsetHz); }