munt / munt

A multi-platform software synthesiser emulating pre-GM MIDI devices such as the Roland MT-32, CM-32L, CM-64 and LAPC-I. In no way endorsed by or affiliated with Roland Corp.

Home Page:http://munt.sourceforge.net/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Per-part volume override, blocks #77

sergm opened this issue · comments

To implement any sensible behaviour in feature #77, the library should provide a way for the client application to configure volume levels for each part and ensure that they are preserved regardless of other processed MIDI commands. In fact, a similar function wrt. the reverb settings is already implemented, however they do not get restored once the "reverb overridden" mode is switched off. In contrast, reverting the volume set on a part by MIDI messages when the user disables the muting on that part seems very useful. The emulated synth hence should merely ignore the effect of certain MIDI messages (e.g. NoteOn (when muted), the Volume controller and the Patch temp SysEx writes) and apply the override as long as it is enabled.

Amazing. Thanks Sergem! Thanks again for taking the time to implement this feature. Just here to report a small bug. The feature mostly works...clicking the speaker lowers the volume, but doesn't totally mute the channel. For example, I currently loaded the "01 - Introduction" track from Betrayal at Krondor ripped straight from the game, both generic MIDI, and MT32 MIDI, and with all tracks "muted" you can still hear every instrument at a low volume. That's the only issue.

Well, this is not really a surprise, the library code doesn't look like 0 volume on a part means "no signal" from that part... But I'm yet curious if the real devices produce sound in this case...

Apparently, this is how the real thing works. You cannot mute a part with the buttons and the knob on the MT-32 front panel...

Well, let's make the volume override a bit better, as we do with some other features :)