Ticket #1245: mt32-bend-range.diff
File mt32-bend-range.diff, 1.9 KB (added by , 21 years ago) |
---|
-
scumm\imuse_internal.h
old new 350 350 351 351 protected: 352 352 bool _old_adlib_instruments; 353 bool _native_mt32; 353 354 bool _enable_multi_midi; 354 355 MidiDriver *_midi_adlib; 355 356 MidiDriver *_midi_native; … … 445 446 void reallocateMidiChannels(MidiDriver *midi); 446 447 void setGlobalAdlibInstrument(byte slot, byte *data); 447 448 void copyGlobalAdlibInstrument(byte slot, Instrument *dest); 449 bool isNativeMT32() { return _native_mt32; } 448 450 449 451 // IMuse interface 450 452 -
scumm\imuse.cpp
old new 43 43 44 44 IMuseInternal::IMuseInternal() : 45 45 _old_adlib_instruments(false), 46 _native_mt32(false), 46 47 _enable_multi_midi(false), 47 48 _midi_adlib(0), 48 49 _midi_native(0), … … 1078 1079 break; 1079 1080 1080 1081 case IMuse::PROP_NATIVE_MT32: 1082 _native_mt32 = (value > 0); 1081 1083 Instrument::nativeMT32(value > 0); 1082 1084 break; 1083 1085 … … 1419 1421 } 1420 1422 1421 1423 void Part::set_pitchbend(int value) { 1422 _pitchbend = value; 1424 if (!_player->_se->isNativeMT32()) 1425 _pitchbend = value; 1426 else 1427 _pitchbend = value * _pitchbend_factor / 12; 1423 1428 if (_mc) { 1424 1429 _mc->pitchBend(clamp(_pitchbend + 1425 1430 (_detune_eff * 64 / 12) + … … 1493 1498 return; 1494 1499 set_pitchbend(0); 1495 1500 _pitchbend_factor = value; 1496 if (_mc) 1497 _mc->pitchBendFactor(_pitchbend_factor); 1501 if (_mc) { 1502 if (!_player->_se->isNativeMT32()) 1503 _mc->pitchBendFactor(_pitchbend_factor); 1504 } 1498 1505 } 1499 1506 1500 1507 void Part::set_onoff(bool on) { … … 1615 1622 1616 1623 void Part::sendAll() { 1617 1624 if (!clearToTransmit()) return; 1618 _mc->pitchBendFactor(_pitchbend_factor); 1625 if (!_player->_se->isNativeMT32()) 1626 _mc->pitchBendFactor(_pitchbend_factor); 1619 1627 _mc->pitchBend(clamp(_pitchbend + 1620 1628 (_detune_eff * 64 / 12) + 1621 1629 (_transpose_eff * 8192 / 12), -8192, 8191));