[Scummvm-tracker] [ScummVM :: Bugs] #15624: AGI MIDI Implementation - extra features suggestion (MT-32 mainly, but GM too)
ScummVM :: Bugs
trac at scummvm.org
Fri Dec 27 05:58:22 UTC 2024
#15624: AGI MIDI Implementation - extra features suggestion (MT-32 mainly, but GM
too)
-------------------------+-------------------------------------------------
Reporter: | Owner: (none)
MusicallyInspired |
Type: feature | Status: new
request |
Priority: normal | Component: Engine: AGI
Version: | Keywords: midi, mt32, sysex, message, pc,
Game: | program, change, channel, noise, percussion
-------------------------+-------------------------------------------------
I had a thought for some optional extra settings for the MT-32 audio
implementation for AGI games. Is ScummVM's implementation based on the
original DOS tool AGIMIDI.EXE by Anders M Olsson? The extra features it
offered might be nice to add to ScummVM's implementation. Also had an idea
for a new feature. These settings would probably be best located in an AGI
game's "Game" tab menu in "Game Options," but they'd only be used if a
MIDI device was selected as the music device. I'm not sure it would be
beneficial to add these settings to the MIDI or MT-32 menu tabs when it
only affects AGI games.
**1-Custom MIDI Channels**
Instead of just defaulting to channels 2, 3, and 4 (for the MT-32) and
channel 10 for noise, offer the option to set each tone channel and the
noise channel to a custom MIDI channel (1-16).
**2-Custom Note Keys for Noise Channel**
Offer the ability to set a specific MIDI channel note for each of the 3
noise channel frequency pitches used on the Tandy (2330Hz, 1165Hz, and
583Hz). AGIMIDI defaulted these to notes 51, 46, and 49 respectively
(which I believe are normally "crash cymbal," "kick," and "snare" IIRC).
**3-Program Changes**
Allow the user to set the Program Change value (0-127) for each of the 3
tone channels for custom instrument patches to be used. You could have a
dropdown menu for each one with either GM or MT-32 mapped instrument
names, but I think just having 3 text boxes to type in the digits yourself
would be easier because of my next suggestion...
**4-Optional Custom SysEx**
I made an MT-32 sysex bank file specifically for AGIMIDI that replaces
AcouPiano1 on the MT-32 with a custom timbre that sounds as close to the
Tandy square wave as I could get it. The results were quite convincing. I
also made 3 custom timbres for the 3 noise channel frequency pitches which
were made from the "Breath Noise" PCM sample on the MT-32 (which is
basically white noise). They were all pitched differently to try to mimic
the Tandy noise pitches. AGIMIDI didn't support custom sysex banks of
course so you'd have to dump the SYX file manually to your MT-32 (or MUNT)
before launching an AGIMIDI-patched game. It'd be nice for ScummVM to
offer this built-in and have the user select a custom SYX bank file that
they'd like to dump to the MIDI device before the game boots up (similar
to how SCI games already do this with built-in sysex banks). But it
doesn't have to be MT-32 only. Many MIDI devices can of course accept
sysex bank dumps that can change instrument patches including the SC-55.
So it can work great for those as well.
**5-MIDI Init String**
This is something that AGIMIDI ''did'' do. It offered a short text field
to input a custom byte string for MIDI messages. It defaulted to "C1 00 C2
00 C3 00" which sets channels 2, 3, and 4's Program Change to 0 (acoustic
piano) but you could alter that or even add to it with other MIDI messages
or even a short sysex message if you wanted to. Problem was it would only
allow a string the length of the printable screen area (including spaces
which it added itself) so custom messages had to be short. It'd be nice to
offer another text field area where you could add your own byte string
which could be much longer. It'd make more sense to load a SYX dump file
in the case of sysex messages, but standard MIDI messages (like CC
controller changes, or something else) are handy to have control over as
well. This gets pretty nerdy, though, and would of course confuse (or
worse, scare) general players. Perhaps the text field itself would be
short and only display a preview of the full string. Next to the field
there could be a button that opens a popup window with a larger text field
that you could type into and review everything if you wanted.
Here's a link a video capture on my Google Drive of myself running AGIMIDI
in DOSBox and using my custom Tandy timbre bank with MUNT to make it sound
like a Tandy 3-voice (the noise channel timbres need some work):
https://drive.google.com/file/d/1-ZJk5TAI_rVoUGvnqx-bYCH-
d92vzHG_/view?usp=sharing
--
Ticket URL: <https://bugs.scummvm.org/ticket/15624>
ScummVM :: Bugs <https://bugs.scummvm.org>
ScummVM
More information about the Scummvm-tracker
mailing list