FluidSynth / fluidsynth

Software synthesizer based on the SoundFont 2 specifications
https://www.fluidsynth.org
GNU Lesser General Public License v2.1
1.89k stars 259 forks source link

Add regression test cases for IIR filter #1429

Closed derselbst closed 1 week ago

derselbst commented 1 week ago

This adds a custom target to the build system check_manual that invokes rendering several test-MIDI files. The test files, along with potentially pre-rendered demonstration audio clips are checked into git lfs. The audio files rendered during build-time are stored in build/test/manual/ and can be used as reference, whenever a part of fluidsynth's logic is about to change. Esp. useful when changing legacy code, as in e.g. #1345.

For the beginning, test files for the IIR filter have been added, taken from issues #1415, #1417, #1424, and #1427.

Additionally, an interactive Bode-Plot for the IIR filter has been added written in Matlab.

spessasus commented 1 week ago

1427 is not related to the filter changes as it affects 2.3 and older, it is related to the order of operations in rvoice_write. It still should be included as a test case, but it is not related in any way to #1345, so maybe in a different folder?

derselbst commented 1 week ago

1427 is not related to the filter changes

I don't think I have claimed that. However, #1427 seems to be caused by the filter's behavior, or at least the filter is involved here. That's why I currently believe it makes sense to keep it in the iir_filter subfolder.