Multiple Audio Sources with different channel counts

What is the best way to take multiple audio sources of varying channel counts and route (mix) them all to separate channels through an AudioTransportSource().  Would you:

Player <- AudioTransportSourcepositionable ) <- mixer <- multiple PositionableAudioSources 

Should this all be handled through a custom mixer class (perhaps a take on the PositionableMixerAudioSource mentioned here a while back)?  If this is the correct route, I would assume that in the buffer->addFrom() I would have to adjust the gain if I put more that one input into an output to prevent from clipping, correct?