[Scummvm-git-logs] scummvm master -> 755e6222bb3baf08e1dc0d80e43e54ed5fc9fd43
athrxx
noreply at scummvm.org
Wed Sep 7 16:57:56 UTC 2022
This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .
Summary:
755e6222bb SCUMM: (DOTT) - properly set detune for new midi parts
Commit: 755e6222bb3baf08e1dc0d80e43e54ed5fc9fd43
https://github.com/scummvm/scummvm/commit/755e6222bb3baf08e1dc0d80e43e54ed5fc9fd43
Author: athrxx (athrxx at scummvm.org)
Date: 2022-09-07T18:56:57+02:00
Commit Message:
SCUMM: (DOTT) - properly set detune for new midi parts
(after changing the detune handling a bit, we also need to
have it in Part::sendAll())
Changed paths:
engines/scumm/imuse/imuse_internal.h
engines/scumm/imuse/imuse_part.cpp
diff --git a/engines/scumm/imuse/imuse_internal.h b/engines/scumm/imuse/imuse_internal.h
index 2f5fa71d108..462e5a5f30d 100644
--- a/engines/scumm/imuse/imuse_internal.h
+++ b/engines/scumm/imuse/imuse_internal.h
@@ -380,6 +380,7 @@ struct Part : public Common::Serializable {
private:
void sendPitchBend();
void sendTranspose();
+ void sendDetune();
void sendPanPosition(uint8 value);
void sendEffectLevel(uint8 value);
};
diff --git a/engines/scumm/imuse/imuse_part.cpp b/engines/scumm/imuse/imuse_part.cpp
index d035a616bc6..04a8ec89b74 100644
--- a/engines/scumm/imuse/imuse_part.cpp
+++ b/engines/scumm/imuse/imuse_part.cpp
@@ -117,9 +117,10 @@ void Part::set_detune(int8 detune) {
} else {
_detune_eff = clamp((_detune = detune) + _player->getDetune(), -128, 127);
// Some drivers handle the transpose and the detune in pitchBend()...
- if (_mc && _player->isAdLibOrFMTowns())
- _mc->detune(_detune_eff);
- sendPitchBend();
+ if (_player->isAdLibOrFMTowns())
+ sendDetune();
+ else
+ sendPitchBend();
}
}
@@ -348,6 +349,7 @@ void Part::sendAll() {
if (!_player->isGM())
_mc->pitchBendFactor(_pitchbend_factor);
sendTranspose();
+ sendDetune();
sendPitchBend();
_mc->volume(_vol_eff);
_mc->sustain(_pedal);
@@ -412,6 +414,17 @@ void Part::sendTranspose() {
_mc->transpose(_transpose_eff);
}
+void Part::sendDetune() {
+ if (!_mc)
+ return;
+
+ // Some drivers handle the transpose and the detune in pitchBend()...
+ if (!_player->isAdLibOrFMTowns())
+ return;
+
+ _mc->detune(_detune_eff);
+}
+
void Part::programChange(byte value) {
_bank = 0;
_instrument.program(value, _player->isMT32());
More information about the Scummvm-git-logs
mailing list