aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorFilippos Karapetis2011-11-20 20:56:43 +0200
committerFilippos Karapetis2011-11-20 20:59:31 +0200
commit38dc6640dccf861be5313a691141f36f81d22ef3 (patch)
tree6eb482f9fbd2b4f0c2d971f71604193b9315055f /engines/sci
parentb7eb5eff3813cf2784c834e48f99d3192d72ea52 (diff)
downloadscummvm-rg350-38dc6640dccf861be5313a691141f36f81d22ef3.tar.gz
scummvm-rg350-38dc6640dccf861be5313a691141f36f81d22ef3.tar.bz2
scummvm-rg350-38dc6640dccf861be5313a691141f36f81d22ef3.zip
SCI: Reset parameters for all channels used by a song when it starts
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/sound/midiparser_sci.cpp15
1 files changed, 6 insertions, 9 deletions
diff --git a/engines/sci/sound/midiparser_sci.cpp b/engines/sci/sound/midiparser_sci.cpp
index ad7ba7ca36..422948f975 100644
--- a/engines/sci/sound/midiparser_sci.cpp
+++ b/engines/sci/sound/midiparser_sci.cpp
@@ -355,17 +355,14 @@ void MidiParser_SCI::sendInitCommands() {
}
}
- // Send a velocity off signal to all channels
- for (int i = 0; i < 15; ++i) {
- if (_channelUsed[i])
- sendToDriver(0xB0 | i, 0x4E, 0); // Reset velocity
- }
-
- // Center the pitch wheels and hold pedal in preparation for the next piece of music
+ // Reset all the parameters of the channels used by this song
for (int i = 0; i < 16; ++i) {
if (_channelUsed[i]) {
- sendToDriver(0xE0 | i, 0, 0x40); // Reset pitch wheel
- sendToDriver(0xB0 | i, 0x40, 0); // Reset hold pedal
+ sendToDriver(0xB0 | i, 0x07, 127); // Reset volume to maximum
+ sendToDriver(0xB0 | i, 0x0A, 64); // Reset panning to center
+ sendToDriver(0xB0 | i, 0x40, 0); // Reset hold pedal to none
+ sendToDriver(0xB0 | i, 0x4E, 0); // Reset velocity to none
+ sendToDriver(0xE0 | i, 0, 64); // Reset pitch wheel to center
}
}
}