Hello,
I think MC has multiple points that should be changed/fixed to allow more flexibility regarding playback from multiple zones to the same ASIO Devices.
1. Allow the MC WDM Driver to be the output of a zone. This way I could send all my zones to one master zone which controls the devices ASIO driver. It would add latency, but would be the easiest way to resolve the problem implementation wise.
2. Behave ASIO Multiclient compliant. If MC would allow me to play to different channels of the same device on multiple zones, I could mix them together in Totalmix. I'm not really sure what exactly MC is doing wrong here, but with other players I can use my soundcard (RME Madiface XT) in Multiclient mode as long as I don't share the same output channels between the applications. So Foobar2k sends something to channel 1&2 and another player sends something to channel 120&121 and it works. If I set up 2 zones in MC where one has a channel offset of 120, as soon as more than one zone plays, one zone kind of freezes while the other outputs a heavily distorted and slowed down signal, nearly indistinguishable from white noise.
My guess here is, that MC allocates all channels from 0 to the last one needed. If thats the case, change that please! After reading the ASIO SDKs Documentation it seems kinda trivial, ASIOCreateBuffers takes a list of ASIOBufferInfo, one for each channel to allocate. Just do not allocate 0 to ChannelOffset.
3. Implement a internal System similar to the Steinberg Asio Multiclient Driver, so that if multiple zones play to the same asio device, the first one to be active is the master and controls samplerate, bit depth, etc and the other zones are internally mixed together. Said Steinberg Driver unfortunatly isn't an option, as it doesn't work with 64-bit-hosts or combinations of 32- / 64-bit. Some Soundcard drivers do this themselves, like my old Saffire Pro 40, but the more professional devices like RME seem to lack of this, as it introduces latency and is not needed to be ASIO Multiclient Compliant.
At the moment I use JACK, which does it's job with JRMCs ASIO Line in in 2ch mode, but I don't consider it a nice solution and think this contradicts JRiver concept of an all in one solution. Also ASIO Line in crashes in 6ch mode.
Thanks,
Bccc1