diff --git a/src/sfizz/Defaults.cpp b/src/sfizz/Defaults.cpp index 10375e86..b20b7db7 100644 --- a/src/sfizz/Defaults.cpp +++ b/src/sfizz/Defaults.cpp @@ -84,7 +84,7 @@ FloatSpec crossfadeOutNorm { 1.0f, {0.0f, 1.0f}, 0 }; FloatSpec ampKeytrack { 0.0f, {-96.0f, 12.0f}, 0 }; FloatSpec ampVeltrack { 100.0f, {-100.0f, 100.0f}, kNormalizePercent }; FloatSpec ampVelcurve { 0.0f, {0.0f, 1.0f}, 0 }; -FloatSpec ampRandom { 0.0f, {0.0f, 24.0f}, 0 }; +FloatSpec ampRandom { 0.0f, {-24.0f, 24.0f}, 0 }; BoolSpec rtDead { false, {false, true}, 0 }; FloatSpec rtDecay { 0.0f, {0.0f, 200.0f}, 0 }; FloatSpec filterCutoff { 0.0f, {0.0f, 20000.0f}, kEnforceUpperBound }; @@ -93,7 +93,7 @@ FloatSpec filterResonance { 0.0f, {0.0f, 96.0f}, 0 }; FloatSpec filterResonanceMod { 0.0f, {0.0f, 96.0f}, 0 }; FloatSpec filterGain { 0.0f, {-96.0f, 96.0f}, 0 }; FloatSpec filterGainMod { 0.0f, {-96.0f, 96.0f}, 0 }; -FloatSpec filterRandom { 0.0f, {0.0f, 12000.0f}, 0 }; +FloatSpec filterRandom { 0.0f, {-12000.0f, 12000.0f}, 0 }; Int32Spec filterKeytrack { 0, {0, 1200}, 0 }; Int32Spec filterVeltrack { 0, {-12000, 12000}, 0 }; FloatSpec eqBandwidth { 1.0f, {0.001f, 4.0f}, 0 }; @@ -105,7 +105,7 @@ FloatSpec eqGainMod { 0.0f, {-96.0f, 96.0f}, 0 }; FloatSpec eqVel2Frequency { 0.0f, {-30000.0f, 30000.0f}, 0 }; FloatSpec eqVel2Gain { 0.0f, {-96.0f, 96.0f}, 0 }; Int32Spec pitchKeytrack { 100, {-1200, 1200}, 0 }; -FloatSpec pitchRandom { 0.0f, {0.0f, 12000.0f}, 0 }; +FloatSpec pitchRandom { 0.0f, {-12000.0f, 12000.0f}, 0 }; Int32Spec pitchVeltrack { 0, {-12000, 12000}, 0 }; Int32Spec transpose { 0, {-127, 127}, 0 }; FloatSpec pitch { 0.0f, {-2400.0f, 2400.0f}, 0 }; diff --git a/src/sfizz/FilterPool.cpp b/src/sfizz/FilterPool.cpp index 46b38d41..42427a8c 100644 --- a/src/sfizz/FilterPool.cpp +++ b/src/sfizz/FilterPool.cpp @@ -30,7 +30,7 @@ void sfz::FilterHolder::setup(const Region& region, unsigned filterId, int noteN // Setup the base values baseCutoff = description->cutoff; if (description->random != 0) { - fast_real_distribution dist { -description->random, description->random }; + fast_real_distribution dist { 0.0f, description->random }; baseCutoff *= centsFactor(dist(Random::randomGenerator)); } const auto keytrack = description->keytrack * (noteNumber - description->keycenter); diff --git a/src/sfizz/Region.cpp b/src/sfizz/Region.cpp index c866a96a..40e80fed 100644 --- a/src/sfizz/Region.cpp +++ b/src/sfizz/Region.cpp @@ -1586,7 +1586,7 @@ float sfz::Region::getBasePitchVariation(float noteNumber, float velocity) const { ASSERT(velocity >= 0.0f && velocity <= 1.0f); - fast_real_distribution pitchDistribution { -pitchRandom, pitchRandom }; + fast_real_distribution pitchDistribution { 0.0f, pitchRandom }; auto pitchVariationInCents = pitchKeytrack * (noteNumber - pitchKeycenter); // note difference with pitch center pitchVariationInCents += pitch; // sample tuning pitchVariationInCents += config::centPerSemitone * transpose; // sample transpose @@ -1597,7 +1597,7 @@ float sfz::Region::getBasePitchVariation(float noteNumber, float velocity) const float sfz::Region::getBaseVolumedB(int noteNumber) const noexcept { - fast_real_distribution volumeDistribution { -ampRandom, ampRandom }; + fast_real_distribution volumeDistribution { 0.0f, ampRandom }; auto baseVolumedB = volume + volumeDistribution(Random::randomGenerator); baseVolumedB += globalVolume; baseVolumedB += masterVolume; diff --git a/tests/RegionValuesT.cpp b/tests/RegionValuesT.cpp index 91df9ba0..5c0ae4b3 100644 --- a/tests/RegionValuesT.cpp +++ b/tests/RegionValuesT.cpp @@ -1949,7 +1949,7 @@ TEST_CASE("[Values] Pitch Random") std::vector expected { "/region0/pitch_random,f : { 0 }", "/region1/pitch_random,f : { 10 }", - "/region2/pitch_random,f : { 0 }", + "/region2/pitch_random,f : { -4 }", }; REQUIRE(messageList == expected); }