Falcosoft wrote:
No, it does not 😀
On Win9x/2000/XP the 'Master Volume' actually shows the mixer topology of the real sound hardware represented by the driver of the sound card. So no application can magically insert its own mixer control to your sound card's mixer panel. On Vista/7/8/10 the mixer topology is virtualized so you get per application wave out mixer controls by the system. But it has the unfortunate side effect that applications that use the traditional win32 mixer API can only control Wave out volume. Midi out, analog CD out, special HW controls like Bass/treble etc. are not visible anymore.
I did see some application that allowed rerouting of audio virtually but I didn't have time to investigate and test. But I think the best solution is to find a way for MUNT to feed the MIDI output to the Sound Card's MIDI Volume control if you can't create an independent one. But having studied a few sound card drivers it seems to be a few registry entries that causes these mixer controls to show up and it probably could be done but it would have be done inside the driver on a per sound card basis which wouldn't be globally done for everyone. Routing the MIDI signal from MUNT using the MIDI Mapper shouldn't there be some way to allow you to control the MIDI Volume of MUNT through the Master Mixer Volume Control or is that somehow only reserved for the sound card's own SW Synth?
Another way might be hacking the actual Master Mixer Volume Control for the SW Synth volume control and make the adjuster lever actually send the same exact command signals as the MUNT console sound level adjuster. I'm not sure if that's easier if it's not possible to add a virtual MIDI Synth volume adjuster into the Master Mixer Volume Control as you stated.
On hand hand the real MT-32 and Munt do not use 16 midi channels at once but 9. The standard layout is: 2-9 are melodic channels and 10 is the drum/percussion channel. With the help of SysEx messages you can reconfigure the channel layout to use other 9 (or less) channels out of 16. (that's what the set channels 2..10 and set channels 1..8,10 buttons do in the qt application's Synth Properties panel).
So Midi Channels 1-10 are used in MUNT but 11-16 are not emulated since they don't do anything?
You would lose all the messages (even Note On messages!) that would use the other channels. So most likely you would get the notes of only one instrument that uses the enabled channel (all other instruments including drums would be missing).
Yes that is the point. When I was experimenting with MIDIYoke and the way 98 can customize the channels it allowed me to hear each channel individually. In some cases by not having that particular MIDI channel activated the track could sound better or cleaner with less going on. But it also opened up the door to customize the other channels to be assigned to another MIDI device. For example the MS Roland GS Wavetable Synth which had virtually no CPU load. I guess the idea was if the MUNT Console allowed a ON/OFF button switch for each of the 16 Channels to reduce LOAD. It would ignore the OFF channels so it wouldn't do any unnecessary emulation.
Moreover the CPU usage of e.g. 9 note on messages on 1 channel or 1 note on message on 9 different channels is roughly the same. So the CPU usage does not depend on the used channels but the used polyphony (actually rendered voices). The default in case of Munt is maximum 32 active partials. If you reduce it to 16 you will get much less CPU usage but you sacrifice accuracy/quality.
I'm not sure I follow you here due to less internal MIDI knowledge. So for each channel if it had a note activated does it activate a rendered voice? Or are you saying it requires two notes activated before it taxes the CPU to blend them? Can you explain what you mean by partials in this case? And you mentioned halving 32 to 16 would be a way to reduce CPU load but how far can it go 8, 4, 2, and 1? And is performance improved by a factor of 2 as you halve it?
If so it might be worth testing this out even though sacrifice in the quality of it would be reduced but this does open the doors for even an old P3 / P4 to get better MIDI output than the Sound Blaster MIDI output or in some older games that didn't have digitized sound effects even a poor sounding MT-32 is better than the PC internal speaker and probably better than the original 8-bit Adlib or 8-bit SB Mono.
Munt internally always uses 16 bit integer or 32 bit floating point rendering at 32 kHz (this sample rate is required for emulation accuracy). All other sample rates are the result of a conversion that uses CPU cycles. So for the best results in terms of performance use 16-bit 32 kHz.
Could an 8 bit integer option be possible to reduce CPU load at the sacrifice of emulation accuracy for slower systems? The lowest could be 4 bit integer from what I can find so adding these two lower bit integer options might have a drastic CPU load drop on slower systems.