diff --git a/tests/TestFiles/wavetables/clm.wav b/tests/TestFiles/wavetables/clm.wav new file mode 100644 index 00000000..07f44c42 Binary files /dev/null and b/tests/TestFiles/wavetables/clm.wav differ diff --git a/tests/TestFiles/wavetables/surge.wav b/tests/TestFiles/wavetables/surge.wav new file mode 100644 index 00000000..18ff6c51 Binary files /dev/null and b/tests/TestFiles/wavetables/surge.wav differ diff --git a/tests/WavetablesT.cpp b/tests/WavetablesT.cpp index c4d5b683..3ba62c85 100644 --- a/tests/WavetablesT.cpp +++ b/tests/WavetablesT.cpp @@ -5,6 +5,7 @@ // If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz #include "sfizz/Wavetables.h" +#include "sfizz/FileMetadata.h" #include "sfizz/MathHelpers.h" #include "catch2/catch.hpp" #include @@ -54,3 +55,34 @@ TEST_CASE("[Wavetables] Octave number lookup") REQUIRE(oct == Approx(ref).margin(0.03f)); } } + +TEST_CASE("[Wavetables] Wavetable sound files: Surge") +{ + sfz::FileMetadataReader reader; + sfz::WavetableInfo wt; + + REQUIRE(reader.open("tests/TestFiles/wavetables/surge.wav")); + REQUIRE(reader.extractWavetableInfo(wt)); + + REQUIRE(wt.tableSize == 256); +} + +TEST_CASE("[Wavetables] Wavetable sound files: Clm") +{ + sfz::FileMetadataReader reader; + sfz::WavetableInfo wt; + + REQUIRE(reader.open("tests/TestFiles/wavetables/clm.wav")); + REQUIRE(reader.extractWavetableInfo(wt)); + + REQUIRE(wt.tableSize == 256); +} + +TEST_CASE("[Wavetables] Non-wavetable sound files") +{ + sfz::FileMetadataReader reader; + sfz::WavetableInfo wt; + + REQUIRE(reader.open("tests/TestFiles/snare.wav")); + REQUIRE(!reader.extractWavetableInfo(wt)); +}