Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MIDI: Add MT-32/GM MidiDriver #2533

wants to merge 3 commits into
base: master


Copy link

@NMIError NMIError commented Oct 16, 2020

MIDI: Add MT-32/GM MidiDriver

I've added a MidiDriver subclass specifically for MT-32 and GM devices. This
pulls together some functionality which I saw was duplicated in a number of
engines. I've moved some existing MT-32/GM specific code over from the
MidiDriver base class and the Miles driver.
This driver can be used as a basis for implementing support for these devices
in new engines, or old engines can be reworked to use this driver if they want
to use some of the features of this driver.

I've used this driver to complete MT-32 support in Lure of the Temptress. I've
also updated the SMF parser to be able to use the multiple source feature for
use with this game.

The driver has the following features (see mt32gm.h for more details):

  • MIDI device initialization
  • MT-32 <> GM conversion
  • User volume settings
  • Reverse stereo
  • Correct Roland GS bank and drumkit selects
  • SysEx queue
  • Multiple MIDI sources, with:
    • Channel mapping
    • Music/SFX volume
    • Source volume
    • Volume fading
NMIError added 2 commits Jul 27, 2020
This adds a new MidiDriver subclass with functionality
for MIDI based devices like the MT-32 and GM devices
or emulators.
This allows the SMF parser to work with MidiDriver implementations that support
multiple MIDI sources. You can set the source number when constructing the
parser. This is then passed along when MIDI messages are sent to the driver.
Copy link

@deepcode-ci-bot deepcode-ci-bot bot commented Oct 16, 2020

Congratulations 🎉. DeepCode analyzed your code in 3.474 seconds and we found no issues. Enjoy a moment of no bugs ☀️.

👉 View analysis in DeepCode’s Dashboard | Configure the bot

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

1 participant
You can’t perform that action at this time.