It can be as simple or as complex as you like.
We’ll get into bidule a bit later…for maximum ‘inter-app’ routing flexiblity, I recommend getting ASIO Link Pro up and running first. This way you can mix and match ASIO apps with WDM apps and route AUDIO streams among them all.
Bidule can host plugins, and manipulate anything MIDI and Audio in real time. Rather than ‘scripting or programing’, you can use object oriented ‘bidules’ to manipulate/mix/stage data streams to your needs/likes. It can also trigger audio files, MIDI files/loops, can record, and a whole lot more. You can even build synths and effects of your own, as it includes a variety of arp engines, oscillators, comb filters, envelope bidules, lfo bidules, etc. You even get some bizarre Stochastic/random event generators (they can be set up to trigger notes, send CC events, manipulate VST parameters and more). Yep, you can bind keystrokes to MIDI events, or MIDI events to keystrokes too.
If you don’t have a true ASIO audio interface, you can use the Steinberg Built in ASIO driver, or grab ASIO4ALL to get an instance of ASIO Link Pro working.
I recommend giving ASIO4ALL a try first, as it’s a good bit more ‘tweakable’. Possible to aggregate devices, etc. I.E. If you get clicks and pops, you can tweak buffer sizes and such until it jives with whatever hardware you’re using.
Unfold me and scroll back to the top for loads of Step by Step Goodies and Screen Shots
- Install ASIO4ALL. This utility creates an ASIO backend for any standard Windows WDM driver.
Be careful what you end up clicking on that website to download, as it will spam you with a ton of confusing ads, and if you accidentally click one of them by mistake it’ll attempt to install all sorts of apps and services you probably don’t want or need.
here is a direct link to download it straight away.
https://asio4all.org/downloads/ASIO4ALL_2_16.exe
Or if you want to navigate that web site…
Scroll until you find this link and click it to end up with the latest version of ASIO4ALL.
I recommend toggling the offline setup option ON during installation.
You might not need it, but it’s good to have just in case. the ASIO4ALL Off-line Settings app can come in handy if you have several interfaces plugged in and something is conflicting or otherwise hanging up ASIO4ALL.
I.E. I have a ton of audio devices hooked up to my PC right now. ASIO4ALL kept hanging up when I tried to link it up between my motherboard’s built in Realtek Audio interface and ASIO Link Pro at first. So, I clicked the Windows Start Icon, typed in Off-line Settings, and launched this App.
From here I was able to click the Advanced Settings Cog in the lower right corner of the ASIO4ALL control panel;
Then sort out the exact interface(s) and inputs/outputs I want ASIO4ALL to use.
Note, it is possible to have ASIO4ALL ‘aggregate’ multiple audio devices via their WDM drivers into a single ASIO driver. I don’t recommend aggregating devices in the beginning. Later you might experiment with aggregating stuff. If you do, keep this in mind.
Unless the devices have special options to share clock signals (word clock, SPDIF connection, or special bridge cables or PCI lanes on some advanced audio cards), each interface will have its own clock! This means the two signals could end up with ‘clock drift’ and get out of sync with each other.
Does clock drift matter? When aggregating inputs, it might not be a big deal depending on what you’re trying to record. I.E. Only have a USB Mic or headset handy and want to get it into the matrix? It should be fine for simple projects.
When aggregating outputs, it can be a pretty big deal if all of the outputs need to be rock solid in time together. If that’s not so important…I.E. Just want to send something as an IFB (Interruptible Fold Back) over a USB headset, or to check something briefly on a different set of monitors/headphones/whatever, but won’t be trying to track/mix/etc while listening to this cue…it should be fine. Just be aware that if timing is critical in any way, keep all of those time sensitive outputs on the same device with the same clock, and use one of those for your main monitoring setup!
b. Keep it simple at first. Stick with ONE interface in the beginning. Experiment with aggregating stuff only after you’ve got a solid and predictable setup working off of ONE interface.
- With your Windows 11 Audio tools, set up the sample rate and bit that you desire. I.E. Right Click the speaker icon in the Windows System Tray (Lower Right of the Task bar) and choose Sound Settings. Find the device you ultimately want to use and get it set up here first.
In this example I’ll choose a Realtek interface that’s built into my system motherboard (It came with some ASIO drivers, but they never have worked, oh well, ASIO4ALL to the rescue).
I’m using 24bit at 44.1khz (Go for 48khz if you prefer. I use 44.1khz purely for compatibility with some of my older external kit that can leach a clock signal over the SPDIF port, plus I typically don’t use this interface…this is merely a demo in case your interface has no native ASIO drivers).
- Install ASIO Link Pro if you haven’t already. You can use the Windows Start Bar to search for “ASIO Link”. Open the ASIO Link Pro Tool (The 64bit one, it’s simply named ASIO Link Pro, and you also get one that’s named as a 32bit version) in the System Tray at lower right area of the Windows task bar. For starters I recommend toggling the following settings…
Note that sometimes System Tray icons get ‘folded up’ into a sub menu, so if you are missing the System Tray icons mentioned throughout this post, left click the little up arrow to Show Hidden Icons.
- Getting into ASIO Link Pro…
In case you’re wondering, it does come with Documentation, though it’s easy to miss. Some PDF files end up in whatever directory you’ve installed ASIO Link Pro on your system. I.E. “%System Drive%/Program Files (x86)/ASIOLinkPro”
Once you’ve launched the ASIO Link Pro Tool, Click the START ASIO button.
If it first throws up a dialogue asking you to choose an audio interface, pick ASIO4ALL. (Typical the first time it’s run, or anytime after the Reset settings button gets clicked).
If instead it gives you a Patch bay like this…click the Pick driver button and then select ASIO4ALL as the driver.
You should notice a new Icon in the system tray called asiolinktool.exe. It might be Green (everything connected properly and is good to go), or Pinkish (some kind of problem with the driver, need to trouble shoot it). Left click it at any time to pull a given ASIO Link Pro instance up. You can close them with the red X in the top right corner at any time to get them out of the way, and bring them back via the System Tray.
Hopefully at this point you end up with a working main ASIO Link Pro patch bay. This is where you will manage any output directly to your Audio Interface’s outputs (more on this later), as well as any ‘loopback’ connections that you might want to route off to other ASIO apps. The asiolinktool.exe icon in the System Tray will light up green when it’s properly connected to an interface, and it might even have a few default connections already routed for you.
Go ahead and toggle the Enable multi-clients option on, so it lights up green. When this is enabled, any app that calls on your ASIO Link Pro driver will get a fresh instance of ASIO Link Pro in the System Tray. This makes it possible to have loads of apps sharing the same audio device, all at the same time. You’ll manage INPUTS into your ASIO apps from those unique instances.
Open the ASIO Link Pro Tool panel again, and try the Test Tone.
If you’re getting a tone, then it’s time to try routing something through ASIO Link Pro!
If you’re having trouble getting this far, let me know. I’ll try my best to help trouble shoot.
Note, if you do have trouble getting a connection with ASIO4ALL/ASIO Link Pro, and things seem to ‘lock up’, right click the Windows Start Button, open a Task Manager, kill ASIO Link Pro tasks, and start over (Open the ASIO Link Pro Tool App again, click “Reset settings” and try again. It might be helpful to pop open that ASIO4ALL “Off-line Settings” app to isolate a single Audio Device (Say the internal audio on your motherboard) and then try ASIO Link Pro again.
- Notice the sections of your main asiolinktool.exe instance.
Across the top you have ASIOVADPRO Speakers IN. These correspond to the four 8 channel virtual WDM cables that now show up as a new audio device in Windows. There’s a short-cut to have a look at them with the WinMM CPanel button, or you can right click the speaker icon in your System Tray and pull up the ‘new style’ UI.
In the routing shown above, I’ve made the ASIOVADPRO Speakers 01 the system default. So now whatever plays in Windows routes right out to my speakers that are connected to the ASIO DRIVER OUT MIX pins.
Note, the Audio Interface on my motherboard has 4 INPUTS, and 8 OUTPUTS activated right now. (I can either click the ASIO CPanel button at the top right, or look in the System Tray to bring up the ASIO4ALL interface).
This means that the first four pins for the ASIO DRIVER IN row are my Audio Interface inputs (2 mic, and 2 line).
The first 8 pins in the ASIO DRIVER OUT MIX go to my audio card’s configured outputs.
Note we still have outputs 9 - 64 to use as loopback channels and such. More on that later…
So, at this point, I should be able to hear any windows sounds, stuff I play in the web browser, and any apps that use the ASIOVADPRO Speaker 01 drivers as their output.
The main mix at this point is also being sent out to an ASIOVADPRO MIX OUT; hence, any Windows WDM apps that use the ASIOVADPRO Mix drivers as an INPUT can record over that virtual cable.
- There’s a whole lot more we can get into, as we haven’t even opened an ASIO client (Such as Bidule or Cubase) yet. Before I get into this, please see if you can make it this far.
In general, ASIO Apps, you will choose ASIO Link Pro as the audio device. I could route directly to outputs 1-8 from in such an app, or I could route to higher channels if I want to use the loopback rails to route audio elsewhere besides out of a hardware output. A new instance of the ASIO Link Pro routing panel will be added to the System Tray for each app that calls on the ASIO Link Pro driver.
For starters, you could launch Bidule, set it to use the full duplex ASIO driver: ASIO Link Pro. Here’s an example of how I’ve got mine set up at the moment.
In this case I’m running a pair of Delta 1010 Audio Interfaces that are word-clocked together, and M-Audio was good enough to provide a control panel that more or less treats the two units as one big interface (24 inputs counting the two monitor mixes and full duplex SPDIF connections), and 20 Outputs [16 Analogue and 2 stereo SPDIF])…those are tied into ASIO Link Pro, which has a 64x64 ASIO matrix to work with.
I’m running the Default Windows Audio stuff, all surround sound channels merged down into stereo, into Channels 25 and 26 of Bidule, and I have a Freebie Dead Duck Limiter VST2 plugin there (Even out the volume of a Youtube Playlist…so one doesn’t blow me out of the house, and can barely hear another one). Note, I intentionally went for ‘open ASIO Link Pro channels’ that my audio interface doesn’t use here.
I’ve got MIDI routed (white cables in bidule, the blue cables are audio) from my Arturia MIDI Controller into a MIDI matrix, and then on to my Fantom XR (connected to SPDIF inputs 9 & 10 on a Delta 1010), and an Instance of HALion 7. The XR bidules are for sending MIDI events between different apps over Bidule’s built in OSC servers/clients (networking protocols…I can do it over localhost and it’s even faster/lower latency than virtual MIDI ports).
All of the Audio inputs from my Delta 1010 Array mix down to Outputs 1&2, where my Studio Monitors are connected. From here, I can route anything into and out of Bidule that I like, and send it to any ASIO or WDM app, to any of the Delta 1010 outputs I like, or even out over the LAN to another PC that’s running ASIO Link Pro.
Notice in my main asiolinktool.exe instance, I’ve a few looper OUT connections on the ready. Those allow me to route something like Cubase or Dorico over channels 27 - 32 back into Bidule (or among each other). I.E. I could instruct Dorico to send Audio to channels 27 & 28, Cubase to 29 & 30, Band in a box to 31 & 32, all back into bidule (or directly to other apps via LOOPER).
I’ll come back and get into more detail on Routing various Apps about (to and from each other…both ASIO and WDM). Different DJ software, Skype, whatever. I need a break for now though 
I’ll include some of my favorite stand-alone Bidule instance tricks as well.
It might be a couple days, gotta work some polls (local elections) tomorrow so we’ll see. I’ll jump back on this thread with more tips and examples ASAP.
At first it’s a little daunting to figure out ASIO Link Pro in the multi-client mode, but once you grasp the basics it becomes a major power-house. Route anything almost anywhere. You can even do a bit of mixing/recording directly in ASIO Link Pro itself.