// SPDX-License-Identifier: BSD-2-Clause // This code is part of the sfizz library and is licensed under a BSD 2-clause // license. You should have receive a LICENSE.md file along with the code. // If not, contact the sfizz maintainers at https://github.com/sfztools/sfizz #include "AudioSpan.h" #include "sfizz/Synth.h" #include "TestHelpers.h" #include "catch2/catch.hpp" #include using namespace Catch::literals; TEST_CASE("[AudioFiles] WavPack file") { sfz::Synth synth; sfz::AudioBuffer buffer { 2, static_cast(synth.getSamplesPerBlock()) }; sfz::AudioSpan span { buffer }; synth.loadSfzString(fs::current_path() / "tests/TestFiles/wavpack.sfz", R"( sample=kick.wav key=60 pan=-100 sample=kick.wv key=60 pan=100 )"); synth.noteOn(0, 60, 127); synth.renderBlock(buffer); REQUIRE( numPlayingVoices(synth) == 2 ); REQUIRE( approxEqual(span.getConstSpan(0), span.getConstSpan(1)) ); while (numPlayingVoices(synth) > 0) { synth.renderBlock(buffer); REQUIRE( approxEqual(span.getConstSpan(0), span.getConstSpan(1)) ); } }