From 1bb2fbdf400ffc49d420d9f6b0f5a465be47c391 Mon Sep 17 00:00:00 2001 From: Paul Ferrand Date: Wed, 23 Sep 2020 13:27:51 +0200 Subject: [PATCH 1/2] Add a default ampeg_release --- src/sfizz/Defaults.h | 1 + src/sfizz/Region.h | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/sfizz/Defaults.h b/src/sfizz/Defaults.h index e6cc47f5..8972f513 100644 --- a/src/sfizz/Defaults.h +++ b/src/sfizz/Defaults.h @@ -231,6 +231,7 @@ namespace Default constexpr float delayEG { 0 }; constexpr float hold { 0 }; constexpr float release { 0 }; + constexpr float ampegRelease { 0.001 }; // Default release to avoid clicks constexpr float vel2release { 0.0f }; constexpr float start { 0.0 }; constexpr float sustain { 100.0 }; diff --git a/src/sfizz/Region.h b/src/sfizz/Region.h index 61d97b27..8023070c 100644 --- a/src/sfizz/Region.h +++ b/src/sfizz/Region.h @@ -50,6 +50,9 @@ struct Region { gainToEffect.reserve(5); // sufficient room for main and fx1-4 gainToEffect.push_back(1.0); // contribute 100% into the main bus + + // Default amplitude release + amplitudeEG.release = Default::ampegRelease; } Region(const Region&) = default; ~Region() = default; From 51459c8f2d2981916803b3040548ff05b1c7b08c Mon Sep 17 00:00:00 2001 From: Paul Ferrand Date: Wed, 23 Sep 2020 13:34:01 +0200 Subject: [PATCH 2/2] Updated/added tests --- tests/RegionT.cpp | 2 +- tests/SynthT.cpp | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/tests/RegionT.cpp b/tests/RegionT.cpp index c7896667..cc2714a0 100644 --- a/tests/RegionT.cpp +++ b/tests/RegionT.cpp @@ -1045,7 +1045,7 @@ TEST_CASE("[Region] Parsing opcodes") REQUIRE(region.amplitudeEG.decay == 0.0f); REQUIRE(region.amplitudeEG.delay == 0.0f); REQUIRE(region.amplitudeEG.hold == 0.0f); - REQUIRE(region.amplitudeEG.release == 0.0f); + REQUIRE(region.amplitudeEG.release == 0.001f); REQUIRE(region.amplitudeEG.start == 0.0f); REQUIRE(region.amplitudeEG.sustain == 100.0f); REQUIRE(region.amplitudeEG.depth == 0); diff --git a/tests/SynthT.cpp b/tests/SynthT.cpp index 49fccde2..b7a7d1af 100644 --- a/tests/SynthT.cpp +++ b/tests/SynthT.cpp @@ -1369,3 +1369,14 @@ TEST_CASE("[Synth] Initial values of CC") REQUIRE(synth.getHdccInit(111) == Approx(0.1234f)); REQUIRE(synth.getHdccInit(112) == Approx(77.0f / 127)); } + +TEST_CASE("[Synth] Default ampeg_release") +{ + sfz::Synth synth; + + synth.loadSfzString(fs::current_path() / "default_release.sfz", R"( + sample=*sine + )"); + + REQUIRE(synth.getRegionView(0)->amplitudeEG.release > 0.0005f); +}