[Scummvm-devel] Audio volume control (proposed mixer/imuse/... changes)

Max Horn max at quendi.de
Sun Nov 28 12:33:02 CET 2004

Am 28.11.2004 um 20:16 schrieb Jamieson Christian:

Hi Jamieson!

Glad to hear that you are still alive, I hope you are doing well? :-)


> Sounds like a step in the right direction. As you're designing this, 
> recall too that the "music" volume affect event-based (e.g. MIDI) 
> music engines as well, not just the digital audio music engines.

Yup, I am aware of that. However, right now I am concentrating on the 
digital audio part (be it speech, music, sfx), which is messy enough. 
Of course the MIDI engines etc. should be cleaned up in that regard, 
too (should it be necessary), but that's mostly out of my domain (hey, 
you don't happen to have some spare time these days, Jamieson? :-)

>  If you want to centralize volume scaling for those, it will have to 
> be done in the MidiDriver, since that is the only common denominator 
> amongst our event-based music engines (despite my overly-zealous 
> attempts to get everything routed through the iMuse infrastructure for 
> improved state management).

Ideally, we'd want to centralize that, too, I guess / assume -- but see 
above, I don't consider this my domain, so I don't claim to know what's 
best here...

BTW, the volumes as set by the user are stored in the ConfigManager, so 
it's easy to read them out from any place of the code -- be it deep in 
the bowels of a MidiDriver, or from within iMuse, or wherever else it 
is needed...

>  You will also want to give consideration to those situations where an 
> event-based music engine also becomes the feed for the digital audio 
> stream, e.g. Adlib or YM2612. In THOSE cases, you want the volume 
> scaling to affect EITHER the event-based engine OR the digital audio 
> stream, but not both.

Yup yup. Which is why premixer channels were not affected by the mixer 
volume in the past. Right now they *are* affected (they are subjected 
to the music volume setting in the most recent CVS), but I plan to 
change this again, it's only a temporary limitations.
This scenario is one of the motivations for a "kNoAudioDataType", which 
tells the mixer that this audio stream is not meant to be affected by 
the volume settings.



More information about the Scummvm-devel mailing list