AUDIO: Use MUNT's sample rate for MT-32 emulation.

This commit is contained in:
Johannes Schickel 2016-03-18 20:38:55 +01:00
parent 1ed261dac4
commit 6cb2148e0a

View File

@ -140,10 +140,7 @@ MidiDriver_MT32::MidiDriver_MT32(Audio::Mixer *mixer) : MidiDriver_Emulated(mixe
}
_reportHandler = NULL;
_synth = NULL;
// Unfortunately bugs in the emulator cause inaccurate tuning
// at rates other than 32KHz, thus we produce data at 32KHz and
// rely on Mixer to convert.
_outputRate = 32000; //_mixer->getOutputRate();
_outputRate = 0;
_initializing = false;
// Initialized in open()
@ -180,7 +177,6 @@ int MidiDriver_MT32::open() {
if (_isOpen)
return MERR_ALREADY_OPEN;
MidiDriver_Emulated::open();
_reportHandler = new MT32Emu::ReportHandlerScummVM();
_synth = new MT32Emu::Synth(_reportHandler);
@ -220,6 +216,11 @@ int MidiDriver_MT32::open() {
// Bug #6242 "AUDIO: Built-In MT-32 MUNT Produces Wrong Sounds".
_synth->setMIDIDelayMode(MT32Emu::MIDIDelayMode_IMMEDIATE);
// We need to report the sample rate MUNT renders at as sample rate of our
// AudioStream.
_outputRate = _synth->getStereoOutputSampleRate();
MidiDriver_Emulated::open();
_initializing = false;
if (screenFormat.bytesPerPixel > 1)