[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.
Cheers,
Max
More information about the Scummvm-devel
mailing list