commit 14ad0e73b75b0c2d9f00ad1bf921cc7ced2dbdb6
parent 052df4b3e620ced210230993ae5c7200b5701a97
Author: fundamental <mark.d.mccurry@gmail.com>
Date: Thu, 10 Dec 2020 22:12:01 -0500
Fix loud part volume bug
Resolves behavior for when part volume is missing in XML files.
As some invalid results may have been written to save files, it remaps
+50.0dB to 0.0dB as +50dB is out-of-range anyhow.
Diffstat:
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/src/Misc/Part.cpp b/src/Misc/Part.cpp
@@ -944,6 +944,13 @@ float Part::volume127ToFloat(unsigned char volume_)
void Part::setVolume(float Volume_)
{
+ //Fixes bug with invalid loading
+ if(fabs(Volume_ - 50.0f) < 0.001)
+ Volume_ = 0.0f;
+
+ Volume_ = limit(Volume_, -40.0f, 13.333f);
+
+ assert(Volume_ < 40.0);
Volume = Volume_;
volume =
dB2rap(Volume) * ctl.expression.relvolume;
@@ -1284,7 +1291,7 @@ void Part::getfromXML(XMLwrapper& xml)
if (xml.hasparreal("volume")) {
setVolume(xml.getparreal("volume", Volume));
} else {
- setVolume(volume127ToFloat(xml.getpar127("volume", -40.0f)));
+ setVolume(volume127ToFloat(xml.getpar127("volume", 96)));
}
setPpanning(xml.getpar127("panning", Ppanning));