Can I use two unique ASIO audio devices at once?
15 次查看(过去 30 天)
显示 更早的评论
I have a test script in which I am evaluating the spatial audio performance of several MEMS microphones placed around a Head and Torso Simulator (HATS). The MEMS microphones are connected via USB to a miniDSP MCHStreamer Lite (https://www.minidsp.com/products/usb-audio-interface/mchstreamer-lite) and I have an array of speakers at various elevation angles being controlled by an RME Fireface UFX+ and external power amplifier.
My question is, is there a way to simultaneously use a miniDSP ASIO driver for input capture and an RME ASIO driver for output playback? I was using the audioPlayerRecorder function with the RME device connected to the speaker array and a single non-MEMS reference microphone. I briefly attempted to use audioDeviceWriter (RME ASIO driver) and audioDeviceReader (miniDSP ASIO Driver) in the same while loop per the following code but then I received the following error:
Device Writer (Playback only)
deviceWriter = audioDeviceWriter(...
'Driver','ASIO',...
'Device','ASIO MADIface USB',...
'SampleRate',fs,...
'ChannelMappingSource','Property',...
'ChannelMapping',33:34);
Device Reader (Capture only)
deviceReader = audioDeviceReader(...
'Driver','ASIO',...
'Device','miniDSP ASIO Driver',...
'SampleRate',fs,...
'ChannelMappingSource','Property',...
'ChannelMapping',1:2:15);
while ~isDone(fileReader)
audioData = fileReader();
deviceWriter(audioData);
acquiredAudio = deviceReader();
fileWriter(acquiredAudio);
end
release(fileReader)
release(deviceWriter)
Error using audioDeviceReader/setup
PortAudio Error: Device unavailable
Error in audioDeviceReader/setupImpl
The MCHStreamer Lite does have a Toslink Optical out cable, so I'm going to see if I can squeeze that into my current hardware setup and just rely on the RME device, but in the meantime I would appreciate any advice.
0 个评论
采纳的回答
Jimmy Lapierre
2022-10-24
Unfortunately, Windows does not allow loading multiple ASIO drivers at the same time, so MATLAB cannot do so. You might be able to get around this limitation using ASIO4ALL if it can be used to specify these devices as input and output. But no guarantee there, and that won't necessarily give you "native" ASIO performance.
8 个评论
Jimmy Lapierre
2022-11-8
In cases where latency changes every run like that, you need to do something similar to what the Impulse Response Measurer app does, which is measure latency and IR without interruption (one quick sweep to measure latency, silence, a measurement sweep, silence). Probably better to also record all mics at the same time using the same device.
Did you try using ASIO4ALL and setting it up to use your two devices? If that works, you could just use audioPlayerRecorder (ASIO).
Rich Herr
2024-3-7
Hi Michael...ex-Leaper here. Say hi to Mark and Joel for me.
I've had some luck with Matlab Parallel toolbox for similar stuff, but I'm not sure if it'll get you both cards as ASIO and you'll probably still have some version of varying delay and needing to time sync with xcorr or impulse response.
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Audio I/O and Waveform Generation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!