diff --git a/src/sfizz/Synth.cpp b/src/sfizz/Synth.cpp index 08d5f5e5..71f9f500 100644 --- a/src/sfizz/Synth.cpp +++ b/src/sfizz/Synth.cpp @@ -1380,7 +1380,7 @@ void sfz::Synth::setupModMatrix() } ASSERT(target); - if (!source) { + if (!target) { DBG("[sfizz] Failed to register modulation target"); continue; } diff --git a/tests/ModulationsT.cpp b/tests/ModulationsT.cpp index b3f6776c..709ec36d 100644 --- a/tests/ModulationsT.cpp +++ b/tests/ModulationsT.cpp @@ -34,20 +34,22 @@ TEST_CASE("[Modulations] Flags") static auto* checkBasicFlags = +[](int flags) { REQUIRE(flags != sfz::kModFlagsInvalid); - REQUIRE(((flags & sfz::kModIsPerCycle) ^ - (flags & sfz::kModIsPerVoice)) != 0); + REQUIRE((bool(flags & sfz::kModIsPerCycle) + + bool(flags & sfz::kModIsPerVoice)) == 1); }; static auto* checkSourceFlags = +[](int flags) { checkBasicFlags(flags); - // nothing else + REQUIRE((bool(flags & sfz::kModIsAdditive) + + bool(flags & sfz::kModIsMultiplicative) + + bool(flags & sfz::kModIsPercentMultiplicative)) == 0); }; static auto* checkTargetFlags = +[](int flags) { checkBasicFlags(flags); - REQUIRE(((flags & sfz::kModIsAdditive) ^ - (flags & sfz::kModIsMultiplicative) ^ - (flags & sfz::kModIsPercentMultiplicative)) != 0); + REQUIRE((bool(flags & sfz::kModIsAdditive) + + bool(flags & sfz::kModIsMultiplicative) + + bool(flags & sfz::kModIsPercentMultiplicative)) == 1); }; sfz::ModIds::forEachSourceId([](sfz::ModId id)