Hi Ben,
You Wrote:
1) 0.0f indicates silence, not -1.0f
2) A microphone input will have some noise on it, you'll need an
adjustable threshold value which separates the "on" state from the
"off"
3) You can't do this on a sample-by-sample basis, you need some time
averaging:
3a) you need to implement a rectified, running average value of all 4
inputs
3b) you'll need to mix the values of all four buffers into the output,
with a smoothly changing level control on each input controlled by the logic
4) Make sure the "decay" of the envelope is kinda long ...this will
keep a speaker from getting cut off if someody else coughs or whatever
Thanks for the additional feedback, The sources are actually all software
rather than any hardware microphones. I also have the gate plugin inline
with each of the 4 inputs, prior to feeding them into my plugin.
It was really written, so I could have music, ISS Audio, Gaim notifications
etc, and If any of the Astronauts say something, or someone logs on MSN/IRC,
then any music I'm listening to gets overridden.
It currently works for me, but I need to do some cleanup, and do a
stereo version. I'm also thinking of a modified version to handle
the situation where I'm outputting audio to my 5.1 Home Theatre
system.
I had named it 'PrioMux' (Priority Multiplexer), but if the correct
term is 'Auto Mixer', then I can easily change it before release.
Best Regards
Iain