Hello! I have a multichannel audio device (a motu) and I’m trying to output to most of the channels. However, when I list the channels using audio::Device::printDevicesToString() it comes in as a bunch of devices each with 2 channels, instead of a single device with 12.
My use case is to send separate mono audio to each channel all at the same time. Is it possible to send to multiple devices at the same time? All the samples look like you can only use a single device and you have to route the master context’s audio to just one device.
Are you on Windows? I’ve gotten multichannel output working with the motu ultralite mk3 on windows, however I had to mess with the driver settings so that it appears to the OS as one soundcard with 10 outs, rather than 5 soundcards with 2 outs each. After that it worked great (on Mac OS X it worked out of the box).
AFAIK there is no way to utilize two audio devices at the same time from the same process (application), on any platform.
@rich.e - Perhaps I’m misunderstanding your final statement, but most DJ software (Traktor, Serato, VirtualDJ, etc.) is predicated on using more than a single audio device (typically one for the master output and one for the cue output). I personally use the BASS audio library to output audio to multiple devices. Not from the same thread mind you, but the same process I’d say.
I can’t say as to how well BASS supports outputting individual to each channel, but I’d imagine it’s possible.
@sharkbox Once you figure out the driver settings so you have access to all 10 channels, be sure to check out the MultichannelOutput sample, which shows you how to route a mono signal to specific channel on the OutputDeviceNode.
@Gazoo My understanding is that other audio frameworks consider a hardware device to be a collection of ‘software devices’ that you would want to route a stereo audio signal to. In cinder::audio, as well as the platform specific APIs we use like Core Audio on OS X or WASAPI on Windows, a device is what you see in your OS’s audio properties. Taking the MOTU Ultralite mk3 as an example, it has two modes; one where it shows up under window’s Audio Playback Devices as either a handful of stereo devices, or just one multichannel device with many outputs.
I do recall there being some really sketchy audio api called MMAPI or something that allowed you to open up multiple devices, but it was a hack and the quality / latency was never good.
@rich.e I’m not sure I’m following you. Perhaps because I’m not taking your original statement literal enough. You wrote
AFAIK there is no way to utilize two audio devices at the same time from the same process (application), on any platform.
and perhaps what you mean is claiming ownership of two audio devices simultaneously? I interpreted that as no application being able to supply two different audio devices with output.
I’m not too wise on audio libraries, having only worked with them for a few years.
Just wanted to update this thread with findings for future readers. Cinder works well with the MOTU Ultralite MK3 but only up to 8 analog channels out. I am currently testing on a MOTU 16A on Windows 10, and I think the drivers aren’t updated enough for the device to show up as more than a single 2 channel output when used as an Audio Interface. It also only works over usb, and not thunderbolt.
@sharkbox: Can you recall where you found the setting to enable 8 channels as one hardware ‘device’? I can’t at the moment after reading through their manual, and forgot where I originally found this. Need to do something similar for a different device (or figure out a more generic solution).
@rich.e It was either in the “MOTU Audio Console” app, or it might have just been if you right-clicked on it in Control Panel > Sound. You want to uncheck Stereo Pairs.
Hmm, looks like it’s still showing up as stereo pairs. Unchecking it worked for me immediately, my only recommendation at this point is making sure drivers are up to date, and a good old fashioned restart.
Are you using it over firewire? “MOTU FW USB Out” would suggest possibly that it’s trying to use firewire, and you might have better luck over USB2. That how I used it anyway.
Ah yes, same problem I as running into. You can’t utilize the Headphones/SPDIF/Analog out simultaneously. I’ve heard that people have gotten it to work with Jack audio, but I never got it working myself.
Hello,
I used multiple device and 6 analogs outputs on motu ultralite mk3 with 5.1 wave for the be a bee project
I configured mk3 easily on windows 10 with 8 analogs output on one device with Unchecking stereo pairs!
I used FMOD with this block to control multiple device (stereo via HDMI and 5.1 via MOTU) and to play 5.1 wave file. https://colinbouvry@bitbucket.org/colinbouvry/cinder-soundplayer-fmod.git
I used the last FMOD C++ API dowloaded on FMOD website.
weirdly, it worked with a c# library called NAudio ( http://naudio.codeplex.com/ ). But instead of having 1 device & 4 channels, we did something like acessing 2 devices with 2 channels.
I’ve realized that inevitably we will need to support multiple audio devices on Windows, however the current system was designed for only one so you need an audio interface that sends all of its channels to one ‘device’ instead of stereo pairs (such as the motu ultralite). I’ve opened an issue here for this, hoping to get to it in the near future.
just wondering if you ever circled back to this? I was hoping to use multiple audio device outputs on a current project. 4 stereo pairs from an 8 Channel ESI Gigaport HD+ AND a stereo pair from the built in audio.
Note I I really only need 5 channels but as well as triggering samples need to route video audio and am using Cinder-WMFVideo, which currently has support for specifying the audio device but not for panning, which prevents me from using only the surround card - but will make another post about that.