Cinder-WMFVideoPlayer - panning audio / routing to surround channel


#1

Hi guys,

I need to route some video audio to different channels of a surround sound card for a current project on Windows ( card is an ESI Gigaport HD+). My apps are using Cinder-WMFVideo.

The card sets itself up as a single multi channel device AND a series of stereo pairs. I can specify a different audio device / stereo pair when playing multiple videos, which is great but there is no panning so I can’t get 5 video outputs on the 1 x 8 channel card, only 4. I was considering using the built in output for the fifth video but I also need to play some sound samples using Cinder’s audio API which doesn’t support multiple output devices yet according to this thread, so I wouldn’t be able to wire my speakers up in a way that works for both.

The alternative would be to select the 8 channel audio device driver and specify the specific audio channel (no problem with the audio API) but there is nothing implemented in Cinder-WMFVideo along those lines either. I have spent some time staring staring at the WMF code but am having a hard time getting my head around it and sussing out how to tackle this (assuming it is possible). Is anyone able to shed some light on how I might be able to make this happen? Any help would be HUGELY appreciated.

Cheers,
Rene.


#2

Alrighty, so after losing some more time to stepping through the WMF code without any luck I ended up investing in a license for Virtual Audio Cable.

I now have a bat script that gets called on startup that creates 5 virtual audio devices (max is apparently 256!), each of which is mapped to a different audio channel. This works for Cinder-WMFVideo and then for other sounds I’ll be able to use the Cinder audio API with the normal audio device.

Working a treat so far!


#3

Hey Rene,

I’m running into the same issue with a Motu Monitor 8. It shows up as a single 24-channel device and I can’t really route audio with wmfplayer to different channels. I tried to use Virtual Audio Cable to map a cable to separate channel, but no luck so far. Do you have an example of how you did this? (I tried the “scattering some channels to a stream” example in documentation, but it keeps outputting to channels 1-2 (main out) only).

Any help is much appreciated! Thanks,

  • ritesh

#4

Hi Ritesh,

sorry for the slow response, I am away without my computer with me all the time for the next couple weeks. The first thing I had to was run the VAC control panel app and use it to create the number of virtual outputs required. I needed 5 although the trial only supports 3. This was the only setting I changed there.

Then I launched an instance of the audio repeater app as per the VAC documentation and experimented with the settings. Here I am able to map a virtual input created above to a specific audio device output. In my instance I was able to specify the left or right channel of the various stereo devices my card creates, although I could specify a channel within the 8 channel output instead. Note that for the latter I’d need to figure out which channels mapped to the VAC labels such as channel 1 corresponding to FL for front left etc.

Once I had this working I created a bat script to launch multiple instances of the audio repeater like so:

:: launch audio repeater app instances from: http://software.muzychenko.net/eng/vac.htm

START /B "" "C:\Program Files\Virtual Audio Cable\audiorepeater.exe" /Input:"Line 1 (Virtual Audio Cable)" /Output:"GIGA HD 1/2ch (GIGAPort HD Audi" /Channels:1 /ChanCfg:custom=1 /AutoStart /WindowName:"channel_1"
START /B "" "C:\Program Files\Virtual Audio Cable\audiorepeater.exe" /Input:"Line 2 (Virtual Audio Cable)" /Output:"GIGA HD 1/2ch (GIGAPort HD Audi" /Channels:1 /ChanCfg:custom=2 /AutoStart /WindowName:"channel_2"
START /B "" "C:\Program Files\Virtual Audio Cable\audiorepeater.exe" /Input:"Line 3 (Virtual Audio Cable)" /Output:"GIGA HD 3/4ch (GIGAPort HD Audi" /Channels:1 /ChanCfg:custom=1 /AutoStart /WindowName:"channel_3"
START /B "" "C:\Program Files\Virtual Audio Cable\audiorepeater.exe" /Input:"Line 4 (Virtual Audio Cable)" /Output:"GIGA HD 3/4ch (GIGAPort HD Audi" /Channels:1 /ChanCfg:custom=2 /AutoStart /WindowName:"channel_4"
START /B "" "C:\Program Files\Virtual Audio Cable\audiorepeater.exe" /Input:"Line 5 (Virtual Audio Cable)" /Output:"GIGA HD 5/6ch (GIGAPort HD Audi" /Channels:1 /ChanCfg:custom=1 /AutoStart /WindowName:"channel_5"

To get Cinder-WMFVideo to use the virtual device I then pass in the string name of the virtual device into the load function. Sorry for not including more detail but I do not have everything with me at the moment. Let me know how you go.


#5

Hey Rene,

Thanks for the reply, it’s really helpful to know how you’re doing this. Do you remember if you had to disable “Channel Mixing” in cable parameters, for this to work? In the scattering tutorial they mentioned that you need to do that. Although for me, whether it’s disabled or not, it doesn’t seem to be working. Trying something like this:

START /B "" "C:\Program Files\Virtual Audio Cable\audiorepeater.exe" /Input:"Line 1 (Virtual Audio Cable)" /Output:"Out 1-24 (MOTU Pro Audio)" /Channels:2 /ChanCfg:custom=7 /AutoStart /WindowName:"channel_1"

creates an audio repeater with the correct input and output devices, but with 3 Channels, and mapped to FL, FR and FC. So I’m suspecting something’s up with my version of VAC. I’m on Windows 10 with VAC v 4.15.0.7313 ( trial). Can you tell me what version you’re on?

Thank you!

  • ritesh

#6

Hey Ritesh,

I don’t have the machine with me but I was on the latest version of the app (trial and full) that was available at the time of posting. I did not adjust the channel mixing setting although will have to give that a try when back to see if it changes anything. the bat script I sent was exactly what I am using.

Note that when I was testing with the multi channel audio device, some channels did map to multiple output channels, I had to experiment to find some that would have worked for me but decided to use the stereo devices my card creates instead (I realise yours doesn’t do this). I see that you are also using 2 channels instead 1 as I was, which might make that issue trickier too. If you have the option to change which outputs on the card you are using then maybe you can play around to find something that works.


#7

Hey Rene,

Thanks again for the reply! I tried setting it to 1 channel and by experimenting with different /ChanCfg values I can get it to stream to different channels at least on the audio repeater. But Monitor 8 keeps streaming to main out only. After playing a bunch with its Routing settings it looks like this is not going to work. So we’re going to return it and use the Motu 828x instead which lists out the channels separately. Should be much more straightforward to use that. Anyway thanks for all the helpful pointers!

Cheers,

  • ritesh