First post, by FeedingDragon
Not sure whether to put this here or in DOSBox forums. Figured here is safer. I'm really wanting to control aspects of the munt driver or emulated HW itself, and not DOSBox values. Already asked about adding MIDI to the mixer settings (a long time ago,) and was educated at the difficulty with all the different standards that are incompatible with that 🙁 Not to mention that Windows 7 has completely removed any access to MIDI controls. I have to use hacks just to access my cards on-board synth, and even then I can't get any sort of volume control to work 🙁 #$^@! Microshaft and all their "it's for your own good because you cannot be trusted to control or adjust anything" attitude!
I primarily use munt to play MT-32 games in DOSbox without having to do a massive patch adjust. I already have an extensive collection of .diff files that I have to manually enter because some were designed for older versions (and not the SVN,) and putting one in will invalidate the values of all the rest (not always but in many cases.) It's just easer to install munt (awesome work on that BTW,) and set the device to MT-32 (midiconfig set to value given by mixer /listmidi.)
The problem I'm facing is that just about every game plays the music & fx at different volumes. If I set the system volume for munt for one game, the next game will either be inaudible or will burst my ear drums. The MT-32 device panel shows a volume control, and I've watched games adjust this value. I've also seen that the "output gain" slider under properties doesn't seem to be adjusted as well. Finally, in some cases the FX (which are usually only assigned to 1 or 2 channels depending on the game - or so it seems,) will sometimes be very hard to hear compared to the music.
Taking all that into consideration, I went searching for DOS programs that would let me set some of these values at least. I'm Thinking that the "output gain" property may not be normally controllable from DOS (emulating a volume dial on an external device maybe?) Hoping to find something that could "lock" the volume, and maybe even change the volume on specific channels (channel 2 & 3 in Ultima 7 raised just a little above the others, channel 1 lowered a bit for example.) Only, I couldn't find anything. I found a utility to turn "off" a device (mute it,) so that someone with a wavetable and an external device could use just 1 of them. But nothing for setting the volume(s) much less locking them. Being an amateur programmer, I thought I'd just write something. Only, I cannot seem to find instructions for this that I can decipher.
What I'm asking then, is there something that will do this? Is there an interface that would allow me to send such commands to the MT-32? Preferably inside the DOS emulation via the MPU-401. However, a command executed by a script prior to starting DOSBox, adjusting the munt drivers (and not the emulated HW,) would work just as well. Automating the process so I don't have to remember to open windows 7's volume mixer and adjust the volume for "Munt MT-32 Emulator," making sure I know precisely where to put it for that specific game. That gets to be a hassle after a while 🙁 It's also getting rather difficult to get it right. One game, I have to lower my speaker volume to 50% (I keep it at 100% so that when I watch a movie and have to raise the volume, it doesn't increase everything else as well,) and then lower the munt volume to 1%. Even then things are a little loud, but I don't really want to raise with DOSBox's other volume settings any higher to allow me to lower speaker volume below 50. I'm already tripling DOSBox's normal values, and raising the Windows 7 DOSBox volume up to the max (matching the speaker's 50.)