diff --git a/tests/FilesT.cpp b/tests/FilesT.cpp index f0a4db39..51f5e40f 100644 --- a/tests/FilesT.cpp +++ b/tests/FilesT.cpp @@ -259,6 +259,43 @@ TEST_CASE("[Files] Channels (channels.sfz)") REQUIRE(synth.getRegionView(1)->isStereo()); } +TEST_CASE("[Files] Channels (channels_multi.sfz)") +{ + sfz::Synth synth; + synth.loadSfzFile(fs::current_path() / "tests/TestFiles/channels_multi.sfz"); + REQUIRE(synth.getNumRegions() == 6); + + REQUIRE(synth.getRegionView(0)->sample == "*sine"); + REQUIRE(!synth.getRegionView(0)->isStereo()); + REQUIRE(synth.getRegionView(0)->isGenerator()); + REQUIRE(!synth.getRegionView(0)->oscillator); + + REQUIRE(synth.getRegionView(1)->sample == "*sine"); + REQUIRE(synth.getRegionView(1)->isStereo()); + REQUIRE(synth.getRegionView(1)->isGenerator()); + REQUIRE(!synth.getRegionView(1)->oscillator); + + REQUIRE(synth.getRegionView(2)->sample == "ramp_wave.wav"); + REQUIRE(!synth.getRegionView(2)->isStereo()); + REQUIRE(!synth.getRegionView(2)->isGenerator()); + REQUIRE(synth.getRegionView(2)->oscillator); + + REQUIRE(synth.getRegionView(3)->sample == "ramp_wave.wav"); + REQUIRE(synth.getRegionView(3)->isStereo()); + REQUIRE(!synth.getRegionView(3)->isGenerator()); + REQUIRE(synth.getRegionView(3)->oscillator); + + REQUIRE(synth.getRegionView(4)->sample == "*sine"); + REQUIRE(!synth.getRegionView(4)->isStereo()); + REQUIRE(synth.getRegionView(4)->isGenerator()); + REQUIRE(!synth.getRegionView(4)->oscillator); + + REQUIRE(synth.getRegionView(5)->sample == "*sine"); + REQUIRE(!synth.getRegionView(5)->isStereo()); + REQUIRE(synth.getRegionView(5)->isGenerator()); + REQUIRE(!synth.getRegionView(5)->oscillator); +} + TEST_CASE("[Files] sw_default") { sfz::Synth synth; diff --git a/tests/TestFiles/channels_multi.sfz b/tests/TestFiles/channels_multi.sfz new file mode 100644 index 00000000..8146ba45 --- /dev/null +++ b/tests/TestFiles/channels_multi.sfz @@ -0,0 +1,6 @@ + sample=*sine + sample=*sine oscillator_multi=3 + sample=ramp_wave.wav oscillator=on + sample=ramp_wave.wav oscillator=on oscillator_multi=3 + sample=*sine oscillator_multi=1 + sample=*sine oscillator_multi=2 diff --git a/tests/TestFiles/ramp_wave.wav b/tests/TestFiles/ramp_wave.wav new file mode 100644 index 00000000..838d8556 Binary files /dev/null and b/tests/TestFiles/ramp_wave.wav differ