@@ -50,5 +50,32 @@ public void Test_SFF_Mel()
50
50
Assert . AreEqual ( spec . Height , spec2 . Height ) ;
51
51
Assert . AreEqual ( spec . OffsetHz , spec2 . OffsetHz ) ;
52
52
}
53
+
54
+ [ Test ]
55
+ public void Test_SFF_Linear2 ( )
56
+ {
57
+ // test creating SFF file from 16-bit 48kHz mono WAV file
58
+
59
+ // read the wav file
60
+ ( int sampleRate , double [ ] audio ) = WavFile . ReadMono ( "../../../../../data/03-02-03-01-02-01-19.wav" ) ;
61
+ Assert . AreEqual ( 48000 , sampleRate ) ;
62
+
63
+ // save the SFF
64
+ int fftSize = 1 << 12 ;
65
+ var spec = new Spectrogram ( sampleRate , fftSize , stepSize : 700 , maxFreq : 2000 ) ;
66
+ spec . SetWindow ( FftSharp . Window . Hanning ( fftSize / 3 ) ) ; // sharper window than typical
67
+ spec . Add ( audio ) ;
68
+ spec . SaveData ( "testDoor.sff" ) ;
69
+
70
+ // load the SFF and verify all the values are the same
71
+ var spec2 = new SFF ( "testDoor.sff" ) ;
72
+ Assert . AreEqual ( spec . SampleRate , spec2 . SampleRate ) ;
73
+ Assert . AreEqual ( spec . StepSize , spec2 . StepSize ) ;
74
+ Assert . AreEqual ( spec . Width , spec2 . Width ) ;
75
+ Assert . AreEqual ( spec . FftSize , spec2 . FftSize ) ;
76
+ Assert . AreEqual ( spec . NextColumnIndex , spec2 . FftFirstIndex ) ;
77
+ Assert . AreEqual ( spec . Height , spec2 . Height ) ;
78
+ Assert . AreEqual ( spec . OffsetHz , spec2 . OffsetHz ) ;
79
+ }
53
80
}
54
81
}
0 commit comments