[Manual] Ardour & Windows Environment Configuration

This is a basic configuration manual based on my current environment designed for new Ardour for Windows users. It is not a step-by-step set of instructions and assumes some basic level of technical understanding from the reader. It does not contain third-party links but does include various free third-party applications and drivers as well as brief explanations of their capabilities and use. The software detailed in this manual can be easily found using many popular search engines.

Several things may need to be done depending on your current audio environment. Foremost it is important to understand that by default Ardour uses Windows’ MME to talk to audio devices, this can cause many problems for some users (such as being restricted to very high latencies) as the signal goes through some layers of Windows software before reaching their audio hardware. In order to bypass these layers, a different driver and protocol should be used so that Ardour can talk directly to a system’s audio hardware.

ASIO & ASIO4ALL

ASIO

ASIO (Audio Stream Input/Output) is a driver protocol designed by Steinberg that bypasses the inefficient audio path a signal would normally take to get to hardware on Windows. In many cases this allows for drastically reduced buffer sizes and latencies.

ASIO4ALL

ASIO4ALL is a driver that includes a configuration interface for itself. It requires a running ASIO-capable application to be using ASIO4ALL as a specified input/output in order for the configuration interface to be available. Note that ASIO4ALL spawns a new instance per-application.

Configuring Ardour to use ASIO & Configuring ASIO4ALL

After starting Ardour and choosing a session a “Audio/Midi Setup” window will appear (Window -> Audio/Midi Setup from the menu bar in existing sessions), select ASIO from the “Driver” drop-down list and a low buffer size—I recommend starting off with the lowest amount of samples available and increasing the buffer size as you encounter xruns or “clicks” and “pops”.

If ASIO has been selected (ASIO4ALL should be the default playback/input if no other ASIO drivers are available) you can then use the “Device Control Panel” button to open the ASIO4ALL configuration interface and select the devices you’d like to make available to Ardour accordingly. Make sure the ASIO buffer size is set accordingly as well. If you close this configuration window you can at any time re-open it using the icon found in the notification area of the Windows Taskbar—as long as Ardour is still running.

Once the session is running, make sure your master (or monitor, if it is enabled) is sending to the right device through the audio connections window (Window -> Audio Connections from the menu bar or ALT+P).

I recommend setting up a default session with the proper audio connections in place so you don’t have to go through this or other processes for each new session.

Listening to Windows Application Audio

Because an ASIO4ALL instance prevents other software from using a specified sound device, it is often necessary to use a loopback in order to listen to Windows application audio signals. Commonly known in the Windows audio community as a “Virtual Audio Cable”, a loopback is a software-based audio driver that loops audio routed to its input through its output with minimal or no latency. Those who have used Realtek sound cards in the distant past may understand this term better as a “Stereo Mixer”, although they are not exactly alike.

Loopback Usage

In order to route application audio to a loopback and then listen to that audio through Ardour, make sure ASIO4ALL is using the “recording” (Out) device, but not the “playback” (In) device, then set it as the default audio device for Windows (Right-click the volume icon in the taskbar and select “playback devices”). The output will then need to be routed to a track or bus in Ardour using the audio connection window (Window > Audio Connections from the menu bar or ALT+P). I recommend using an audio bus that is labelled appropriately.

You can also route application audio from a loopback directly to your audio hardware through Ardour, but I do not recommend this as you will not be able to see or control volume levels outside of whatever application is playing back audio. If you do not wish to have the audio signal appear on your master bus levels you can route an audio bus or track directly to your hardware instead of your master bus.

If the option to select In/Out independently is not available in ASIO4ALL, click the wrench button in the lower right of the respective window to enable advanced settings.

HiFi Cable & VB-Cable

VB Audio’s HiFi cable & VB-Cable are loopbacks. They can both be downloaded from VB Audio’s website.

Voicemeeter

VB Audio’s Voicemeeter is a software-based audio device mixer. As an alternative to listening to Windows’ application audio through Ardour, which can add latency to playback, you can instead send Ardour’s audio to a loopback and combine its signal with any other audio device using this software.

There is a more advanced version of Voicemeeter available titled Voicemeeter Banana, which is also free.

Audio Router

Audio Router is an open-source application available for download on Github courtesy of audiorouterdev. As its title implies, it forces a route from Windows applications to specific audio devices available to the system.

Use the releases page on GitHub to download the latest stable version.

JACK for Windows

JACK is a powerful application based on a “Server <-> Client architecture” that is designed to connect audio and midi using a system’s drivers. It uses the PortAudio project on Windows so it can connect using “dsound, wmme, WDMKS, ASIO, WASAPI, and WaveRT”. It is not required for most environments but can be used to prevent an ASIO4ALL instance from taking over an important audio device and resolve compatibility problems with certain hardware.

JACK for Windows requires fairly detailed configuration. I will not include an explanation of its use, but instead leave it up to the reader to decide whether or not JACK would benefit them and do their own research. Much more information can be found on JACK’s capabilities and usage by visiting the JACK for Windows webpage on the JACK Audio website.

The latest release needs to be downloaded from GitHub as the Dropbox links on the website are broken. Some information on the JACK for Windows webpage may be outdated—notably there is a x64 (64-bit) release that also supports x86 (32-bit) applications, contrary to what is currently written in the introductory paragraph.

Final Words

If you use Ardour on a regular basis, please consider a subscription or donation. Many thousands of hours of effort have gone into creating this versatile DAW and it will only get better with more support from the community. The same goes for the rest of the free software listed here.

If you would like to contribute anything to this manual or make any edits please make a post in this thread.

This is not a technical support thread, only post in this thread for support if you have trouble accomplishing something outlined above.

Thanks very much for this. In the future, it would probably be better to get this sort of stuff to us as a pull-request on github or as patch for the manual sent to the ardour-dev mailing list. Either way, thanks, and we’ll get this into the manual ASAP.

Wasn’t sure if that was the right way to go about this due to the reliance on third-party software, In the future I will definitely go over Ardour’s manual instead and have any changes or additions I think could be made sent as a pull-request on GitHub.

Ardour does not use MME by default. The default is ASIO, but Ardour remembers the most recently used config. I suspect that you’ve started Ardour at least once without an ASIO device.

Despite the first sentence saying it’s not a “step-by-step set of instructions”, large parts of the text reads rather like a howto and not like a reference-manual. For the manual I’d prefer a more abstract description of the what settings are about (incl buffered I/O) and not merely a "After starting Ardour and choosing … select ASIO … Make sure that… " walkthrough style.

Still parts of this are suitable for copy/edit into the manual. Cheers!

hmm, looks I was wrong about ASIO being the default. I was sure it’s sorted alphabetically like the Audio System dropdown (and by default the topmost is initial default).

Thanks Eitl. Thanks Thanks thanks.