diff --git a/src/sfizz/RegionStateful.cpp b/src/sfizz/RegionStateful.cpp index b04a52ae..90963d7d 100644 --- a/src/sfizz/RegionStateful.cpp +++ b/src/sfizz/RegionStateful.cpp @@ -9,7 +9,7 @@ namespace sfz { -float getBaseVolumedB(const Region& region, const MidiState& midiState, int noteNumber) noexcept +float baseVolumedB(const Region& region, const MidiState& midiState, int noteNumber) noexcept { fast_real_distribution volumeDistribution { 0.0f, region.ampRandom }; auto baseVolumedB = region.volume + volumeDistribution(Random::randomGenerator); @@ -22,7 +22,7 @@ float getBaseVolumedB(const Region& region, const MidiState& midiState, int note } -uint64_t getOffset(const Region& region, const MidiState& midiState) noexcept +uint64_t sampleOffset(const Region& region, const MidiState& midiState) noexcept { std::uniform_int_distribution offsetDistribution { 0, region.offsetRandom }; uint64_t finalOffset = region.offset + offsetDistribution(Random::randomGenerator); @@ -31,7 +31,7 @@ uint64_t getOffset(const Region& region, const MidiState& midiState) noexcept return Default::offset.bounds.clamp(finalOffset); } -float getDelay(const Region& region, const MidiState& midiState) noexcept +float regionDelay(const Region& region, const MidiState& midiState) noexcept { fast_real_distribution delayDistribution { 0, region.delayRandom }; float finalDelay { region.delay }; @@ -42,7 +42,7 @@ float getDelay(const Region& region, const MidiState& midiState) noexcept return Default::delay.bounds.clamp(finalDelay); } -uint32_t getSampleEnd(const Region& region, MidiState& midiState) noexcept +uint32_t sampleEnd(const Region& region, MidiState& midiState) noexcept { int64_t end = region.sampleEnd; for (const auto& mod: region.endCC) @@ -72,7 +72,7 @@ uint32_t loopEnd(const Region& region, MidiState& midiState) noexcept return static_cast(end); } -float getNoteGain(const Region& region, int noteNumber, float velocity, const MidiState& midiState, const CurveSet& curveSet) noexcept +float noteGain(const Region& region, int noteNumber, float velocity, const MidiState& midiState, const CurveSet& curveSet) noexcept { ASSERT(velocity >= 0.0f && velocity <= 1.0f); @@ -95,7 +95,7 @@ float getNoteGain(const Region& region, int noteNumber, float velocity, const Mi return baseGain; } -float getCrossfadeGain(const Region& region, const MidiState& midiState) noexcept +float crossfadeGain(const Region& region, const MidiState& midiState) noexcept { float gain { 1.0f }; diff --git a/src/sfizz/RegionStateful.h b/src/sfizz/RegionStateful.h index 9c2574b3..aa33b932 100644 --- a/src/sfizz/RegionStateful.h +++ b/src/sfizz/RegionStateful.h @@ -20,7 +20,7 @@ namespace sfz { * @param curveSet * @return float */ -float getNoteGain(const Region& region, int noteNumber, float velocity, const MidiState& midiState, const CurveSet& curveSet) noexcept; +float noteGain(const Region& region, int noteNumber, float velocity, const MidiState& midiState, const CurveSet& curveSet) noexcept; /** * @brief Get the additional crossfade gain of the region depending on the @@ -30,7 +30,7 @@ float getNoteGain(const Region& region, int noteNumber, float velocity, const Mi * @param midiState * @return float */ -float getCrossfadeGain(const Region& region, const MidiState& midiState) noexcept; +float crossfadeGain(const Region& region, const MidiState& midiState) noexcept; /** * @brief Get the base volume of the region depending on which note has been @@ -41,7 +41,7 @@ float getCrossfadeGain(const Region& region, const MidiState& midiState) noexcep * @param noteNumber * @return float */ -float getBaseVolumedB(const Region& region, const MidiState& midiState, int noteNumber) noexcept; +float baseVolumedB(const Region& region, const MidiState& midiState, int noteNumber) noexcept; /** * @brief Get the region offset in samples @@ -50,7 +50,7 @@ float getBaseVolumedB(const Region& region, const MidiState& midiState, int note * @param midiState * @return uint32_t */ -uint64_t getOffset(const Region& region, const MidiState& midiState) noexcept; +uint64_t sampleOffset(const Region& region, const MidiState& midiState) noexcept; /** * @brief Get the region delay in seconds * @@ -58,7 +58,7 @@ uint64_t getOffset(const Region& region, const MidiState& midiState) noexcept; * @param midiState * @return float */ -float getDelay(const Region& region, const MidiState& midiState) noexcept; +float regionDelay(const Region& region, const MidiState& midiState) noexcept; /** * @brief Get the index of the sample end, either natural end or forced * loop. @@ -67,7 +67,7 @@ float getDelay(const Region& region, const MidiState& midiState) noexcept; * @param midiState * @return uint32_t */ -uint32_t getSampleEnd(const Region& region, MidiState& midiState) noexcept; +uint32_t sampleEnd(const Region& region, MidiState& midiState) noexcept; /** * @brief Computes the gain value related to the velocity of the note diff --git a/src/sfizz/Voice.cpp b/src/sfizz/Voice.cpp index 098b16a5..fd7c80a2 100644 --- a/src/sfizz/Voice.cpp +++ b/src/sfizz/Voice.cpp @@ -476,7 +476,7 @@ bool Voice::startVoice(Layer* layer, int delay, const TriggerEvent& event) noexc } impl.updateLoopInformation(); impl.speedRatio_ = static_cast(impl.currentPromise_->information.sampleRate / impl.sampleRate_); - impl.sourcePosition_ = getOffset(region, midiState); + impl.sourcePosition_ = sampleOffset(region, midiState); } // do Scala retuning and reconvert the frequency into a 12TET key number @@ -490,10 +490,10 @@ bool Voice::startVoice(Layer* layer, int delay, const TriggerEvent& event) noexc impl.pitchRatio_ *= stretch->getRatioForFractionalKey(numberRetuned); impl.pitchKeycenter_ = region.pitchKeycenter; - impl.baseVolumedB_ = getBaseVolumedB(region, midiState, impl.triggerEvent_.number); + impl.baseVolumedB_ = baseVolumedB(region, midiState, impl.triggerEvent_.number); impl.baseGain_ = region.getBaseGain(); if (impl.triggerEvent_.type != TriggerEventType::CC || region.velocityOverride == VelocityOverride::previous) - impl.baseGain_ *= getNoteGain(region, impl.triggerEvent_.number, impl.triggerEvent_.value, midiState, curveSet); + impl.baseGain_ *= noteGain(region, impl.triggerEvent_.number, impl.triggerEvent_.value, midiState, curveSet); impl.gainSmoother_.reset(); impl.resetCrossfades(); @@ -507,9 +507,9 @@ bool Voice::startVoice(Layer* layer, int delay, const TriggerEvent& event) noexc } impl.triggerDelay_ = delay; - impl.initialDelay_ = delay + static_cast(getDelay(region, midiState) * impl.sampleRate_); + impl.initialDelay_ = delay + static_cast(regionDelay(region, midiState) * impl.sampleRate_); impl.baseFrequency_ = tuning.getFrequencyOfKey(impl.triggerEvent_.number); - impl.sampleEnd_ = int(getSampleEnd(region, midiState)); + impl.sampleEnd_ = int(sampleEnd(region, midiState)); impl.sampleSize_ = impl.sampleEnd_- impl.sourcePosition_ - 1; impl.bendSmoother_.setSmoothing(region.bendSmooth, impl.sampleRate_); impl.bendSmoother_.reset(region.getBendInCents(midiState.getPitchBend())); diff --git a/tests/RegionValueComputationsT.cpp b/tests/RegionValueComputationsT.cpp index 8d833ccc..d468b8c8 100644 --- a/tests/RegionValueComputationsT.cpp +++ b/tests/RegionValueComputationsT.cpp @@ -25,9 +25,9 @@ TEST_CASE("[Region] Crossfade in on key") region.parseOpcode({ "sample", "*sine" }); region.parseOpcode({ "xfin_lokey", "1" }); region.parseOpcode({ "xfin_hikey", "3" }); - REQUIRE(getNoteGain(region, 2, 127_norm, midiState, curveSet) == 0.70711_a); - REQUIRE(getNoteGain(region, 1, 127_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 3, 127_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 2, 127_norm, midiState, curveSet) == 0.70711_a); + REQUIRE(noteGain(region, 1, 127_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 3, 127_norm, midiState, curveSet) == 1.0_a); } TEST_CASE("[Region] Crossfade in on key - 2") @@ -38,12 +38,12 @@ TEST_CASE("[Region] Crossfade in on key - 2") region.parseOpcode({ "sample", "*sine" }); region.parseOpcode({ "xfin_lokey", "1" }); region.parseOpcode({ "xfin_hikey", "5" }); - REQUIRE(getNoteGain(region, 1, 127_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 2, 127_norm, midiState, curveSet) == 0.5_a); - REQUIRE(getNoteGain(region, 3, 127_norm, midiState, curveSet) == 0.70711_a); - REQUIRE(getNoteGain(region, 4, 127_norm, midiState, curveSet) == 0.86603_a); - REQUIRE(getNoteGain(region, 5, 127_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 6, 127_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 1, 127_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 2, 127_norm, midiState, curveSet) == 0.5_a); + REQUIRE(noteGain(region, 3, 127_norm, midiState, curveSet) == 0.70711_a); + REQUIRE(noteGain(region, 4, 127_norm, midiState, curveSet) == 0.86603_a); + REQUIRE(noteGain(region, 5, 127_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 6, 127_norm, midiState, curveSet) == 1.0_a); } TEST_CASE("[Region] Crossfade in on key - gain") @@ -55,11 +55,11 @@ TEST_CASE("[Region] Crossfade in on key - gain") region.parseOpcode({ "xfin_lokey", "1" }); region.parseOpcode({ "xfin_hikey", "5" }); region.parseOpcode({ "xf_keycurve", "gain" }); - REQUIRE(getNoteGain(region, 1, 127_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 2, 127_norm, midiState, curveSet) == 0.25_a); - REQUIRE(getNoteGain(region, 3, 127_norm, midiState, curveSet) == 0.5_a); - REQUIRE(getNoteGain(region, 4, 127_norm, midiState, curveSet) == 0.75_a); - REQUIRE(getNoteGain(region, 5, 127_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 1, 127_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 2, 127_norm, midiState, curveSet) == 0.25_a); + REQUIRE(noteGain(region, 3, 127_norm, midiState, curveSet) == 0.5_a); + REQUIRE(noteGain(region, 4, 127_norm, midiState, curveSet) == 0.75_a); + REQUIRE(noteGain(region, 5, 127_norm, midiState, curveSet) == 1.0_a); } TEST_CASE("[Region] Crossfade out on key") @@ -70,13 +70,13 @@ TEST_CASE("[Region] Crossfade out on key") region.parseOpcode({ "sample", "*sine" }); region.parseOpcode({ "xfout_lokey", "51" }); region.parseOpcode({ "xfout_hikey", "55" }); - REQUIRE(getNoteGain(region, 50, 127_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 51, 127_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 52, 127_norm, midiState, curveSet) == 0.86603_a); - REQUIRE(getNoteGain(region, 53, 127_norm, midiState, curveSet) == 0.70711_a); - REQUIRE(getNoteGain(region, 54, 127_norm, midiState, curveSet) == 0.5_a); - REQUIRE(getNoteGain(region, 55, 127_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 56, 127_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 50, 127_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 51, 127_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 52, 127_norm, midiState, curveSet) == 0.86603_a); + REQUIRE(noteGain(region, 53, 127_norm, midiState, curveSet) == 0.70711_a); + REQUIRE(noteGain(region, 54, 127_norm, midiState, curveSet) == 0.5_a); + REQUIRE(noteGain(region, 55, 127_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 56, 127_norm, midiState, curveSet) == 0.0_a); } TEST_CASE("[Region] Crossfade out on key - gain") @@ -88,13 +88,13 @@ TEST_CASE("[Region] Crossfade out on key - gain") region.parseOpcode({ "xfout_lokey", "51" }); region.parseOpcode({ "xfout_hikey", "55" }); region.parseOpcode({ "xf_keycurve", "gain" }); - REQUIRE(getNoteGain(region, 50, 127_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 51, 127_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 52, 127_norm, midiState, curveSet) == 0.75_a); - REQUIRE(getNoteGain(region, 53, 127_norm, midiState, curveSet) == 0.5_a); - REQUIRE(getNoteGain(region, 54, 127_norm, midiState, curveSet) == 0.25_a); - REQUIRE(getNoteGain(region, 55, 127_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 56, 127_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 50, 127_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 51, 127_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 52, 127_norm, midiState, curveSet) == 0.75_a); + REQUIRE(noteGain(region, 53, 127_norm, midiState, curveSet) == 0.5_a); + REQUIRE(noteGain(region, 54, 127_norm, midiState, curveSet) == 0.25_a); + REQUIRE(noteGain(region, 55, 127_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 56, 127_norm, midiState, curveSet) == 0.0_a); } TEST_CASE("[Region] Crossfade in on velocity") @@ -106,13 +106,13 @@ TEST_CASE("[Region] Crossfade in on velocity") region.parseOpcode({ "xfin_lovel", "20" }); region.parseOpcode({ "xfin_hivel", "24" }); region.parseOpcode({ "amp_veltrack", "0" }); - REQUIRE(getNoteGain(region, 1, 19_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 1, 20_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 2, 21_norm, midiState, curveSet) == 0.5_a); - REQUIRE(getNoteGain(region, 3, 22_norm, midiState, curveSet) == 0.70711_a); - REQUIRE(getNoteGain(region, 4, 23_norm, midiState, curveSet) == 0.86603_a); - REQUIRE(getNoteGain(region, 5, 24_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 6, 25_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 1, 19_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 1, 20_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 2, 21_norm, midiState, curveSet) == 0.5_a); + REQUIRE(noteGain(region, 3, 22_norm, midiState, curveSet) == 0.70711_a); + REQUIRE(noteGain(region, 4, 23_norm, midiState, curveSet) == 0.86603_a); + REQUIRE(noteGain(region, 5, 24_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 6, 25_norm, midiState, curveSet) == 1.0_a); } TEST_CASE("[Region] Crossfade in on vel - gain") @@ -125,13 +125,13 @@ TEST_CASE("[Region] Crossfade in on vel - gain") region.parseOpcode({ "xfin_hivel", "24" }); region.parseOpcode({ "xf_velcurve", "gain" }); region.parseOpcode({ "amp_veltrack", "0" }); - REQUIRE(getNoteGain(region, 1, 19_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 1, 20_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 2, 21_norm, midiState, curveSet) == 0.25_a); - REQUIRE(getNoteGain(region, 3, 22_norm, midiState, curveSet) == 0.5_a); - REQUIRE(getNoteGain(region, 4, 23_norm, midiState, curveSet) == 0.75_a); - REQUIRE(getNoteGain(region, 5, 24_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 5, 25_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 1, 19_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 1, 20_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 2, 21_norm, midiState, curveSet) == 0.25_a); + REQUIRE(noteGain(region, 3, 22_norm, midiState, curveSet) == 0.5_a); + REQUIRE(noteGain(region, 4, 23_norm, midiState, curveSet) == 0.75_a); + REQUIRE(noteGain(region, 5, 24_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 5, 25_norm, midiState, curveSet) == 1.0_a); } TEST_CASE("[Region] Crossfade out on vel") @@ -143,13 +143,13 @@ TEST_CASE("[Region] Crossfade out on vel") region.parseOpcode({ "xfout_lovel", "51" }); region.parseOpcode({ "xfout_hivel", "55" }); region.parseOpcode({ "amp_veltrack", "0" }); - REQUIRE(getNoteGain(region, 5, 50_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 5, 51_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 5, 52_norm, midiState, curveSet) == 0.86603_a); - REQUIRE(getNoteGain(region, 5, 53_norm, midiState, curveSet) == 0.70711_a); - REQUIRE(getNoteGain(region, 5, 54_norm, midiState, curveSet) == 0.5_a); - REQUIRE(getNoteGain(region, 5, 55_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 5, 56_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 5, 50_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 5, 51_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 5, 52_norm, midiState, curveSet) == 0.86603_a); + REQUIRE(noteGain(region, 5, 53_norm, midiState, curveSet) == 0.70711_a); + REQUIRE(noteGain(region, 5, 54_norm, midiState, curveSet) == 0.5_a); + REQUIRE(noteGain(region, 5, 55_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 5, 56_norm, midiState, curveSet) == 0.0_a); } TEST_CASE("[Region] Crossfade out on vel - gain") @@ -162,13 +162,13 @@ TEST_CASE("[Region] Crossfade out on vel - gain") region.parseOpcode({ "xfout_hivel", "55" }); region.parseOpcode({ "xf_velcurve", "gain" }); region.parseOpcode({ "amp_veltrack", "0" }); - REQUIRE(getNoteGain(region, 56, 50_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 56, 51_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 56, 52_norm, midiState, curveSet) == 0.75_a); - REQUIRE(getNoteGain(region, 56, 53_norm, midiState, curveSet) == 0.5_a); - REQUIRE(getNoteGain(region, 56, 54_norm, midiState, curveSet) == 0.25_a); - REQUIRE(getNoteGain(region, 56, 55_norm, midiState, curveSet) == 0.0_a); - REQUIRE(getNoteGain(region, 56, 56_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 56, 50_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 56, 51_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 56, 52_norm, midiState, curveSet) == 0.75_a); + REQUIRE(noteGain(region, 56, 53_norm, midiState, curveSet) == 0.5_a); + REQUIRE(noteGain(region, 56, 54_norm, midiState, curveSet) == 0.25_a); + REQUIRE(noteGain(region, 56, 55_norm, midiState, curveSet) == 0.0_a); + REQUIRE(noteGain(region, 56, 56_norm, midiState, curveSet) == 0.0_a); } TEST_CASE("[Region] Crossfade in on CC") @@ -180,19 +180,19 @@ TEST_CASE("[Region] Crossfade in on CC") region.parseOpcode({ "xfin_hicc24", "24" }); region.parseOpcode({ "amp_veltrack", "0" }); midiState.ccEvent(0, 24, 19_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.0_a); + REQUIRE(crossfadeGain(region, midiState) == 0.0_a); midiState.ccEvent(0, 24, 20_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.0_a); + REQUIRE(crossfadeGain(region, midiState) == 0.0_a); midiState.ccEvent(0, 24, 21_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.5_a); + REQUIRE(crossfadeGain(region, midiState) == 0.5_a); midiState.ccEvent(0, 24, 22_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.70711_a); + REQUIRE(crossfadeGain(region, midiState) == 0.70711_a); midiState.ccEvent(0, 24, 23_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.86603_a); + REQUIRE(crossfadeGain(region, midiState) == 0.86603_a); midiState.ccEvent(0, 24, 24_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 1.0_a); + REQUIRE(crossfadeGain(region, midiState) == 1.0_a); midiState.ccEvent(0, 24, 25_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 1.0_a); + REQUIRE(crossfadeGain(region, midiState) == 1.0_a); } TEST_CASE("[Region] Crossfade in on CC - gain") @@ -205,19 +205,19 @@ TEST_CASE("[Region] Crossfade in on CC - gain") region.parseOpcode({ "amp_veltrack", "0" }); region.parseOpcode({ "xf_cccurve", "gain" }); midiState.ccEvent(0, 24, 19_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.0_a); + REQUIRE(crossfadeGain(region, midiState) == 0.0_a); midiState.ccEvent(0, 24, 20_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.0_a); + REQUIRE(crossfadeGain(region, midiState) == 0.0_a); midiState.ccEvent(0, 24, 21_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.25_a); + REQUIRE(crossfadeGain(region, midiState) == 0.25_a); midiState.ccEvent(0, 24, 22_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.5_a); + REQUIRE(crossfadeGain(region, midiState) == 0.5_a); midiState.ccEvent(0, 24, 23_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.75_a); + REQUIRE(crossfadeGain(region, midiState) == 0.75_a); midiState.ccEvent(0, 24, 24_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 1.0_a); + REQUIRE(crossfadeGain(region, midiState) == 1.0_a); midiState.ccEvent(0, 24, 25_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 1.0_a); + REQUIRE(crossfadeGain(region, midiState) == 1.0_a); } TEST_CASE("[Region] Crossfade out on CC") { @@ -228,19 +228,19 @@ TEST_CASE("[Region] Crossfade out on CC") region.parseOpcode({ "xfout_hicc24", "24" }); region.parseOpcode({ "amp_veltrack", "0" }); midiState.ccEvent(0, 24, 19_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 1.0_a); + REQUIRE(crossfadeGain(region, midiState) == 1.0_a); midiState.ccEvent(0, 24, 20_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 1.0_a); + REQUIRE(crossfadeGain(region, midiState) == 1.0_a); midiState.ccEvent(0, 24, 21_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.86603_a); + REQUIRE(crossfadeGain(region, midiState) == 0.86603_a); midiState.ccEvent(0, 24, 22_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.70711_a); + REQUIRE(crossfadeGain(region, midiState) == 0.70711_a); midiState.ccEvent(0, 24, 23_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.5_a); + REQUIRE(crossfadeGain(region, midiState) == 0.5_a); midiState.ccEvent(0, 24, 24_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.0_a); + REQUIRE(crossfadeGain(region, midiState) == 0.0_a); midiState.ccEvent(0, 24, 25_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.0_a); + REQUIRE(crossfadeGain(region, midiState) == 0.0_a); } TEST_CASE("[Region] Crossfade out on CC - gain") @@ -253,19 +253,19 @@ TEST_CASE("[Region] Crossfade out on CC - gain") region.parseOpcode({ "amp_veltrack", "0" }); region.parseOpcode({ "xf_cccurve", "gain" }); midiState.ccEvent(0, 24, 19_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 1.0_a); + REQUIRE(crossfadeGain(region, midiState) == 1.0_a); midiState.ccEvent(0, 24, 20_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 1.0_a); + REQUIRE(crossfadeGain(region, midiState) == 1.0_a); midiState.ccEvent(0, 24, 21_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.75_a); + REQUIRE(crossfadeGain(region, midiState) == 0.75_a); midiState.ccEvent(0, 24, 22_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.5_a); + REQUIRE(crossfadeGain(region, midiState) == 0.5_a); midiState.ccEvent(0, 24, 23_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.25_a); + REQUIRE(crossfadeGain(region, midiState) == 0.25_a); midiState.ccEvent(0, 24, 24_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.0_a); + REQUIRE(crossfadeGain(region, midiState) == 0.0_a); midiState.ccEvent(0, 24, 25_norm); - REQUIRE(getCrossfadeGain(region, midiState) == 0.0_a); + REQUIRE(crossfadeGain(region, midiState) == 0.0_a); } TEST_CASE("[Region] Velocity bug for extreme values - veltrack at 0") @@ -275,8 +275,8 @@ TEST_CASE("[Region] Velocity bug for extreme values - veltrack at 0") CurveSet curveSet { CurveSet::createPredefined() }; region.parseOpcode({ "sample", "*sine" }); region.parseOpcode({ "amp_veltrack", "0" }); - REQUIRE(getNoteGain(region, 64, 127_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 64, 0_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 64, 127_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 64, 0_norm, midiState, curveSet) == 1.0_a); } @@ -287,8 +287,8 @@ TEST_CASE("[Region] Velocity bug for extreme values - positive veltrack") CurveSet curveSet { CurveSet::createPredefined() }; region.parseOpcode({ "sample", "*sine" }); region.parseOpcode({ "amp_veltrack", "100" }); - REQUIRE(getNoteGain(region, 64, 127_norm, midiState, curveSet) == 1.0_a); - REQUIRE(getNoteGain(region, 64, 0_norm, midiState, curveSet) == Approx(0.0).margin(0.0001)); + REQUIRE(noteGain(region, 64, 127_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 64, 0_norm, midiState, curveSet) == Approx(0.0).margin(0.0001)); } TEST_CASE("[Region] Velocity bug for extreme values - negative veltrack") @@ -298,8 +298,8 @@ TEST_CASE("[Region] Velocity bug for extreme values - negative veltrack") CurveSet curveSet { CurveSet::createPredefined() }; region.parseOpcode({ "sample", "*sine" }); region.parseOpcode({ "amp_veltrack", "-100" }); - REQUIRE(getNoteGain(region, 64, 127_norm, midiState, curveSet) == Approx(0.0).margin(0.0001)); - REQUIRE(getNoteGain(region, 64, 0_norm, midiState, curveSet) == 1.0_a); + REQUIRE(noteGain(region, 64, 127_norm, midiState, curveSet) == Approx(0.0).margin(0.0001)); + REQUIRE(noteGain(region, 64, 0_norm, midiState, curveSet) == 1.0_a); } TEST_CASE("[Region] rt_decay") @@ -312,15 +312,15 @@ TEST_CASE("[Region] rt_decay") region.parseOpcode({ "rt_decay", "10" }); midiState.noteOnEvent(0, 64, 64_norm); midiState.advanceTime(100); - REQUIRE( getBaseVolumedB(region, midiState, 64) == Approx(Default::volume - 1.0f).margin(0.1) ); + REQUIRE( baseVolumedB(region, midiState, 64) == Approx(Default::volume - 1.0f).margin(0.1) ); region.parseOpcode({ "rt_decay", "20" }); midiState.noteOnEvent(0, 64, 64_norm); midiState.advanceTime(100); - REQUIRE( getBaseVolumedB(region, midiState, 64) == Approx(Default::volume - 2.0f).margin(0.1) ); + REQUIRE( baseVolumedB(region, midiState, 64) == Approx(Default::volume - 2.0f).margin(0.1) ); region.parseOpcode({ "trigger", "attack" }); midiState.noteOnEvent(0, 64, 64_norm); midiState.advanceTime(100); - REQUIRE( getBaseVolumedB(region, midiState, 64) == Approx(Default::volume).margin(0.1) ); + REQUIRE( baseVolumedB(region, midiState, 64) == Approx(Default::volume).margin(0.1) ); } TEST_CASE("[Region] Base delay") @@ -329,12 +329,12 @@ TEST_CASE("[Region] Base delay") Region region { 0 }; region.parseOpcode({ "sample", "*sine" }); region.parseOpcode({ "delay", "10" }); - REQUIRE( getDelay(region, midiState) == 10.0f ); + REQUIRE( regionDelay(region, midiState) == 10.0f ); region.parseOpcode({ "delay_random", "10" }); Random::randomGenerator.seed(42); for (int i = 0; i < numRandomTests; ++i) { - auto delay = getDelay(region, midiState); + auto delay = regionDelay(region, midiState); REQUIRE( (delay >= 10.0 && delay <= 20.0) ); } } @@ -346,15 +346,15 @@ TEST_CASE("[Region] Offsets with CCs") region.parseOpcode({ "offset_cc4", "255" }); region.parseOpcode({ "offset", "10" }); - REQUIRE( getOffset(region, midiState) == 10 ); + REQUIRE( sampleOffset(region, midiState) == 10 ); midiState.ccEvent(0, 4, 127_norm); - REQUIRE( getOffset(region, midiState) == 265 ); + REQUIRE( sampleOffset(region, midiState) == 265 ); midiState.ccEvent(0, 4, 100_norm); - REQUIRE( getOffset(region, midiState) == 210 ); + REQUIRE( sampleOffset(region, midiState) == 210 ); midiState.ccEvent(0, 4, 10_norm); - REQUIRE( getOffset(region, midiState) == 30 ); + REQUIRE( sampleOffset(region, midiState) == 30 ); midiState.ccEvent(0, 4, 0); - REQUIRE( getOffset(region, midiState) == 10 ); + REQUIRE( sampleOffset(region, midiState) == 10 ); } TEST_CASE("[Region] Pitch variation with veltrack")