diff --git a/src/sfizz/Region.cpp b/src/sfizz/Region.cpp index cd78075a..a499bc10 100644 --- a/src/sfizz/Region.cpp +++ b/src/sfizz/Region.cpp @@ -295,7 +295,8 @@ bool sfz::Region::parseOpcode(const Opcode& opcode) setCCPairFromOpcode(opcode, volumeCC, Default::volumeCCRange); break; case hash("amplitude"): - setValueFromOpcode(opcode, amplitude, Default::amplitudeRange); + if (auto value = readOpcode(opcode.value, Default::amplitudeRange)) + amplitude = normalizePercents(*value); break; case hash("amplitude_cc&"): // fallthrough case hash("amplitude_oncc&"): @@ -985,7 +986,7 @@ float sfz::Region::getBaseVolumedB(int noteNumber) const noexcept float sfz::Region::getBaseGain() const noexcept { - return normalizePercents(amplitude); + return amplitude; } float sfz::Region::getPhase() const noexcept diff --git a/src/sfizz/Region.h b/src/sfizz/Region.h index f9c560cd..3aac8ff8 100644 --- a/src/sfizz/Region.h +++ b/src/sfizz/Region.h @@ -272,10 +272,10 @@ struct Region { // Performance parameters: amplifier float volume { Default::volume }; // volume - float amplitude { Default::amplitude }; // amplitude - float pan { Default::pan }; // pan - float width { Default::width }; // width - float position { Default::position }; // position + float amplitude { normalizePercents(Default::amplitude) }; // amplitude + float pan { normalizePercents(Default::pan) }; // pan + float width { normalizePercents(Default::width) }; // width + float position { normalizePercents(Default::position) }; // position absl::optional> volumeCC; // volume_oncc CCMap amplitudeCC { Default::zeroModifier }; // amplitude_oncc CCMap panCC { Default::zeroModifier }; // pan_oncc