scummvm/audio
NMIError 62387f8d38
MIDI/KYRA: Miles channel locking and GM support (#2273)
* MIDI/KYRA: Add channel locking and GM to XMIDI

This improves support for XMIDI channel locking and moves it from the KYRA
engine to the generic Miles MIDI driver. To support this, a source parameter
is added to the XMIDI parser and Miles driver so the driver can distinguish
several XMIDI parser instances sending MIDI events. I've also added GM support
to the generic Miles MIDI driver.

The previous implementation of channel locking did not always track and restore
controller values properly when unlocking a channel. Specifically, at the start
of Legend of Kyrandia, when Brandon talks to the tree, the tree "creaking"
sound effect uses some channels from the background music. The volume of the
music channels was not correctly restored, resulting in some instruments being
much louder then others.
Another issue was that volume was not always properly set when locking a
channel. In the Legend of Kyrandia intro, when Brandon is lifted up to the
house, some sound effects were missing because MIDI channel volume was 0.
This new implementation fixes these issues.

* MIDI: Suppress Miles controller warnings

Several Miles controller MIDI messages generate warnings in the XMIDI parser,
even though they are handled by the Miles drivers. I've removed these.

* MIDI: Fix Codacy issues
2020-05-29 17:50:14 +02:00
..
decoders AUDIO: Fix compiler warning 2020-04-11 03:30:35 -07:00
mods AUDIO: Correct small errors in AMF loader 2020-05-03 22:52:45 +09:00
softsynth AUDIO: Fix mismatching malloc/delete[] 2020-04-27 23:06:15 +01:00
adlib.cpp AUDIO: Added override keywords 2020-03-09 16:08:19 +01:00
alsa_opl.cpp AUDIO: Fix Missing Default Switch Cases 2019-11-17 08:20:01 +00:00
audiostream.cpp AUDIO: Add a NullAudioStream for streams that are dead-on-arrival 2015-08-30 21:00:54 -04:00
audiostream.h AUDIO: Add a NullAudioStream for streams that are dead-on-arrival 2015-08-30 21:00:54 -04:00
fmopl.cpp AUDIO: Fix Missing Default Switch Cases 2019-11-17 08:20:01 +00:00
fmopl.h AUDIO: Add a class representing a real OPL 2015-07-07 20:19:47 -04:00
mididrv.cpp MIDI/KYRA: Miles channel locking and GM support (#2273) 2020-05-29 17:50:14 +02:00
mididrv.h MIDI/KYRA: Miles channel locking and GM support (#2273) 2020-05-29 17:50:14 +02:00
midiparser_qt.cpp AUDIO: Fix Missing Default Switch Cases 2019-11-17 08:20:01 +00:00
midiparser_qt.h
midiparser_smf.cpp AUDIO: Fix Missing Default Switch Cases 2019-11-17 08:20:01 +00:00
midiparser_xmidi.cpp MIDI/KYRA: Miles channel locking and GM support (#2273) 2020-05-29 17:50:14 +02:00
midiparser.cpp MIDI/KYRA: Miles channel locking and GM support (#2273) 2020-05-29 17:50:14 +02:00
midiparser.h MIDI/KYRA: Miles channel locking and GM support (#2273) 2020-05-29 17:50:14 +02:00
midiplayer.cpp
midiplayer.h AUDIO: Added override keywords 2020-03-09 16:08:19 +01:00
miles_adlib.cpp AUDIO: Added override keywords 2020-03-09 16:08:19 +01:00
miles_midi.cpp MIDI/KYRA: Miles channel locking and GM support (#2273) 2020-05-29 17:50:14 +02:00
miles.h MIDI/KYRA: Miles channel locking and GM support (#2273) 2020-05-29 17:50:14 +02:00
mixer_intern.h AUDIO: Remove unused parameter from the MixerImpl constructor 2019-11-30 17:47:34 +02:00
mixer.cpp AUDIO: Remove unused parameter from the MixerImpl constructor 2019-11-30 17:47:34 +02:00
mixer.h
module.mk MIDI/KYRA: Miles channel locking and GM support (#2273) 2020-05-29 17:50:14 +02:00
mpu401.cpp AUDIO: Fix Missing Default Switch Cases 2019-11-17 08:20:01 +00:00
mpu401.h
musicplugin.cpp
musicplugin.h AUDIO: Small const correctness improvement 2020-04-17 15:02:11 +09:00
null.cpp
null.h
opl2lpt.cpp AUDIO: (opl2lpt) add OPL3LPT support 2019-08-23 14:34:44 +03:00
rate_arm_asm.s Merge pull request #625 from digitall/rate-hack 2015-11-09 16:39:17 +01:00
rate_arm.cpp Merge pull request #625 from digitall/rate-hack 2015-11-09 16:39:17 +01:00
rate.cpp Merge pull request #625 from digitall/rate-hack 2015-11-09 16:39:17 +01:00
rate.h ALL: Remove obsolete register keyword 2017-12-03 20:27:42 -06:00
timestamp.cpp
timestamp.h