INTERACT FORUM

Please login or register.

Login with username, password and session length
Advanced search  
Pages: [1]   Go Down

Author Topic: Feature Request: Simplify Multizone playback to the same ASIO Device  (Read 2155 times)

Bccc1

  • Junior Woodchuck
  • **
  • Posts: 75

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
Logged

gappie

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4580
Re: Feature Request: Simplify Multizone playback to the same ASIO Device
« Reply #1 on: April 23, 2015, 03:03:58 pm »

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.

yup. it is one of the reasons why i dont use the wdm driver from JRiver.

 :)
gab
Logged

mojave

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 3732
  • Requires "iTunes or better" so I installed JRiver
Re: Feature Request: Simplify Multizone playback to the same ASIO Device
« Reply #2 on: April 23, 2015, 04:05:47 pm »

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.
Allowing JRiver to playback to the WDM driver typically creates a loop. You can play to it by setting it as the default in Control Panel and choosing Default Audio Device [Direct Sound] in JRiver.

Quote
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.
Some devices only let you use multi-client if you are using a combination of drivers, like ASIO and WASAPI, or are using Direct Sound output. Perhaps you weren't using ASIO with Foobar2K. However, the RME driver looks like it is multi-client with ASIO.

JRiver also supports 32 channels. Try sending something to channels 1-2 with one zone and something to channels 9-10 with another zone and see if that works rather than trying such high channel counts. Don't forget that you also need to set each zone to resample to the same sample rate. An audio device can only play one sample rate at a time regardless of whether it has a multi-client driver.

The only two driver's I've used that are truly multi-client are Solid State Logic and MOTU. MOTU has a really good implementation.

Quote
My guess here is, that MC allocates all channels from 0 to the last one needed.
JRiver only allocates the number of channels set in Output Format and starting with the offset being used in Tools > Options > Audio > Audio Device > Device Settings.

Quote
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.
JRiver doesn't work with 64-bit hosts or plugins either. The Steinberg ASIO multiclient driver does work fairly well. I put some instructions here.
Logged

Bccc1

  • Junior Woodchuck
  • **
  • Posts: 75
Re: Feature Request: Simplify Multizone playback to the same ASIO Device
« Reply #3 on: April 23, 2015, 05:04:25 pm »

Allowing JRiver to playback to the WDM driver typically creates a loop. You can play to it by setting it as the default in Control Panel and choosing Default Audio Device [Direct Sound] in JRiver.
Not if you have zoneswitch rules and a special zone for WDM. Thanks for the tipp with the default device.

Quote
Some devices only let you use multi-client if you are using a combination of drivers, like ASIO and WASAPI, or are using Direct Sound output. Perhaps you weren't using ASIO with Foobar2K. However, the RME driver looks like it is multi-client with ASIO.
I tested it today, definitely the ASIO driver. It works if JRiver plays to channels 1-8 (output set to 5.1 in 7.1 container, offset 0) and Foobar2k plays to some higher channels.

Quote
JRiver also supports 32 channels. Try sending something to channels 1-2 with one zone and something to channels 9-10 with another zone and see if that works rather than trying such high channel counts. Don't forget that you also need to set each zone to resample to the same sample rate. An audio device can only play one sample rate at a time regardless of whether it has a multi-client driver.
Every zone that plays to the device is a new client. In order to get that working simultaniously, RME would have to implement a mixer in their driver to join the buffers of all clients on the corresponding outputs. They do not want to do that, because that would add latency.
Also, of course I already tried what you said. In fact, I used to do it that way with the Focusrite Saffire Pro 40 which has said internal mixing. With the more "pro" Madiface I now have a feature downgrade -.-

Samplerate is "Set all to 44,1kHz" during tests on all zones.

By the way, I use that high channel counts because of the internal channel mapping of the madiface. Via ASIO, these are the channel number:
1-192   MADI
193/194   Analog
195/196   AES
197/198   Phones

Quote
The only two driver's I've used that are truly multi-client are Solid State Logic and MOTU. MOTU has a really good implementation.
JRiver only allocates the number of channels set in Output Format and starting with the offset being used in Tools > Options > Audio > Audio Device > Device Settings.
Though I, at the moment, cannot disprove that, I doubt it's true.
As said above, Cubase or Foobar can play to higher channel numbers without affecting MC on the lower channels.  But neither they nor MC can play on channels lower than the ones a MC zone is playing to.

Quote
JRiver doesn't work with 64-bit hosts or plugins either. The Steinberg ASIO multiclient driver does work fairly well. I put some instructions here.
Maybe the fault is on my side, but as soon as I start playback to the multiclient driver it crashes. As some googling showed me that I'm not alone on this, I thought it would be a general problem with my 64bit os (Win 8.1)
Logged

mattkhan

  • MC Beta Team
  • Citizen of the Universe
  • *****
  • Posts: 4231
Re: Feature Request: Simplify Multizone playback to the same ASIO Device
« Reply #4 on: April 23, 2015, 05:08:50 pm »

Maybe the fault is on my side, but as soon as I start playback to the multiclient driver it crashes. As some googling showed me that I'm not alone on this, I thought it would be a general problem with my 64bit os (Win 8.1)
FWIW I use win8.1 pro x64 with the steinberg multiclient successfully (with an rme fireface 800 as it happens)
Logged
Pages: [1]   Go Up