Thanks for including what you are actually trying to do. DxWnd intercepts the CD calls and has its own CD player which was created to allow the proxying of audio files in place of actual CD playback. This allows the playback to happen in its own process and thus volume can be controlled separately.
It might make sense for you to reach out to the DxWnd team as it's still being developed and see if they are able to intercept the MIDI calls as well. If so a separate MIDI player could also be created with the benefit of allowing the use of a SoundFonts versus relying on Windows GS Wavetable.
If you search for the top of MIDI volume in Vista and newer you'll see references involving Chocolate Doom and Descent source ports running into the same issue. Their resolution was spawning off a separate SDL MIDI playback process which allowed independent volume control.
For now, your best bet might be to install Virtual MIDISynth or use loopMIDI along with Falcosoft MIDI Player. You'll need to change Window's default MIDI Out, then MIDI playback will be passed to these separate applications which again would allow you to control just their volumes. It would be seamless to whatever program or game you are running as it would be just like if you were running an external MIDI module. Again a benefit is you can also get access to SoundFonts or VTIs to get much better-sounding MIDI.
Coolsoft's MIDIMapper will let you change the default MIDI Out port in Win 8, 10, and 11.