Is it possible to have PD send audio to two different devices/locations? Is it possible for, say, [ dac~ 1 ] to send to your computer's output while [ dac~ 2 ] sends to an external audio interface?
-
PD sending to two devices?
-
You can assign discreet inputs and outputs but not multiple outputs across different audio devices. Sound software has to access sound hardware through it's drivers and it can't handle 2 sets of calls to two different drivers (if someone has the proper tech jargon, please step in).
There are ways of cheating but they all stink in some way:
On windows: VAC/audio repeater combo
You can use 'Virtual Audio cables' to create virtual devices that you can use for input and output between software. You can piggy-back that audio to different hardware devices by using the audiorepeater utility. So you can set up VAC to make 2 cables (VAC1 and VAC2). PD will use VAC1 and VAC2 as outputs. (Since VAC1 or VAC2 aren't hooked up to real hardware, you don't hear anything.) Then you run 2 instances of audiorepeater. One instance routes VAC1 to 'Onboard speaker out' and the other instance will route VAC2 to 'USB audio device out'.Downside: Latency, Latency, Latency
The sound is delayed through each step in the chain, and the audio repeater latency can only go but so low before you get scratchy static and dropouts.On Linux: ALSA virtual device
You can make a virtual soundcard using ALSA that can combine the outputs of two audio cards into one
'virtual' one and then set JACK to output to that device (the setup of which is too complex to explain here).Downside: Latency/Timing
Each soundcard has it's own timing, and there's no way to keep them in synch, so you can control the latency and you'll have clicks, pops, dropouts, and tons of underruns.On Mac OSX:
I haven't tried it, but I believe you can also make an aggregate device
There is also a VAC/audiorepeater type program you can use called Soundflower, but like VAC it's really only for routing sound between apps, not between hardware.Long story short, between the latency introduced by the software and the clock timing differences between soundcards, you can really get anything usable.
-
Virtual Audio cables works will but I would like to have the latency the same
I have tried to use the wet delay on the master output in live 7 to sync things up a bit
To do this you can play a sound sample in pd and them play the same sample in live and use the delay until you get the sample to phases or cancel each other out -
I prefer using Jack on OSX over Soundflower. It's a bit more complicated, but much more flexible. It even seems to reduce processing in Pd compared to the default drivers.
For what you're doing, though, you just need to make an aggregate device in Applications/Utilites/Audio MIDI Setup. (I think you'd have to do that even if you used Jack, now that I think about it.)
-
And is possible to use different ASIO sound devices for input and output in general?
I want to use JACK as input to PD and ASIO4ALL as an output. (JACK has output to another ASIO Device M-AUDIO Quattro). I can set it in pd Audio settings, but after Applying & reopen all devices disappear from pull down menu and I have to restart pd. Any experiences with this bug?
My purpose is to route signal from MIXXX to pd as effect processor (using external mixer):
Mixxx
|
JACK
| \
| \
| pd
| \
| \
| \
M-AUDIO ASIO4ALL
4xOUT 2xOUTI run Win XP, JACK 1.9.7, pd 0.43 vanilla
thanks
ale¨ -
generally no, but AFAIK, the ASIO drivers will load an instance of itself per application. This will work provided each instance is controlling a different piece of audio hardware (which it looks like you have setup). I think windows will see JACK as one application and PD as another...
I haven't used JACK on windows in a while - but see if when you start JACK that an ASIO control panel shows up for it in the system tray. Then see if you get a separate control panel for ASIO drivers controlling the onboard soundcard(?)
So, pd will have for input JACKASIO and for output ASIOv2 - again, provided you get 2 different ASIO control panels, that should work... but then it just comes down to how low you can get the latency down (since your essentially making an effects box)