You might want Audacity to work with the ASIO drivers supplied with your sound devices. Commmon reasons for this are:
- Only ASIO drivers are available for your hardware (eg Behringer mixers)
- Performance - ASIO has low latency (delays)
- You don't want to use the ASIO4All bridging driver with non ASIO drivers
- Multi channel support - though Audacity is not so good at handling other than Stereo or Mono
Due to licensing restrictions the Audacity team cannot provide a prebuilt version with Windows ASIO driver support. But with this guide and script you can easily build your own Audacity with ASIO support.
This builds the latest Audacity release 3.6.3 by default. Recent other versions can be built with the -v option
Drivers are the glue between an audio program like Audacity and external hardware like a mixer or sound interface. The drivers usually used on Windows have limitations which can be overcome if you use ASIO drivers for your hardware. Specifically, low latency (delay) and multi channel support are available with ASIO drivers.
The Audacity program is the "go to" solution for many audio recording and editing tasks. However, unlike many more advanced DAWs, it doesn't support Windows ASIO drivers "out of the box". Fortunately, Audiacity's standard MME support is fine for most uses. That said, common reasons for needing ASIO include using digital audio or music equipment that only comes with ASIO drivers, such as Behringer mixers (which actually suggest using the less efficient ASIO4ALL ASIO to WDM bridging driver). Another common reason is to take advantage of the low latency or multiple channels supported by ASIO. Note that Audacity really is not a good multichannel solution, so if that is required a DAW might be a better bet.
While it is possible to build your own Audacity with ASIO support by following the instructions this usually requires considerable technical skills.
But have no fear, the instructions and script provided here make it easy to build your own version of Audacity with ASIO support. You just need a suitable Windows PC. The script installs all required tools and builds a 64 bit release version of Audacity with ASIO for you using the official build instructions.
NB. If you do use this to build Audacity with ASIO support you must not redistribute it due to the ASIO SDK licensing terms - see below.
Here's a brief blog post explaining why I needed ASIO and it includes a screen shot. But note, since writing that, I discovered my McMillen K-Mix digital interface mixer facilities alow routing of inputs 3 & 4 to the main outputs on 1 and 2 so can use the default MME Audacity build after all. For playback from PC, I found the HiFi Driver and ASIO Bridge from VB Audio lets me re-route PC audio out to channels 3 & 4 on the K-Mix, Leaving Channels 1 & 2 free for instruments and Mics.
The reason for Audacity's lack of ASIO support is licensing, not technical. Steinberg do not alow the ASIO SDK to be redistributed (as required by open source projects). In addition, Audacity is GPL licensed and so is incompatible with the ASIO SDK licence redistribution rules.
The script installs a set of development tools that are known to build Audacity. Due to the complex nature of such tools, any other versions of them on your PC may interfere with this script. Thus this scipt should be run on a clean PC without any developer tools. No support can be offered otherwise.
If you would rather not install these tools (Git for Windows, Visual Studio, CMake, Python and Conan), or you already have versions of them or even if you are having build problems, you can use a one of the following Vitual Machines:
- Windows Sandbox - Sandbox can be enabled on Windows 10/11 Pro/Enterprise and can also be installed on Windows Home with a bit of effort. If the build experiences memory errors you will need a configuration file to provide more memory than the default 4GB.
- A virtualisation program - install a VM and and a matching Developer Virtual Machine Image from Microsoft. In most cases VirtualBox will be a good choice (import the Microsoft supplied .ova appliance file but the Visual Studio pre installed in the VM must be uninstalled first to avoid problems).
In both cases you can copy the built files to where they will be run from on you PC file system, possibly by sharing a PC folder with the VM.
- Ensure you have a PC (or VM) with Windows 10 or 11 installed.
- Make a new folder
C:\projects
. - Click on the 'raw' button at the top of the script (below) in this Gist.
- Use the browser Save As (right click) feature to save the script as
This PC -> C:\projects\build-audacity.cmd
. To avoid it being saved as a text file type the filename in quotes, eg "build-audacity.cmd". - open a new Windows cmd terminal (Windows + R keys and then type
cmd
) - Type
cd \projects
and enter key. - Install required tools and build by typing
build-audacity.cmd
and enter (use -v3.3.3 if requred).- Follow the prompts, pressing a key to start each tool's installer (when previous has finished).
- NB for Visual Studio, make sure you check the "desktop development with C++" workload
- If you have a non English Windows or Visual Studio then you must also install the English language packs.
- Come back later - it will take at least 10 minutes.
- Audactiy will be launched to test it was built correctly.
- See the program location printed out at the end of the build so you can run it again.
- Optionally copy the specified folder to where you want to run Audacity from, optionally renaming it.
(This video by @Renamesk walks you through the process, but the tool installation method has changed.)
If you have any ASIO drivers installed for active connected hardware you should find ASIO is now available in the the Audacity driver selection combo box which probably currently shows 'MME' selected (you may need to show using menu item View -> Toolbars -> Device toolbar).
NB: The Audacity settings and preferences are stored in a folder "Portable Settings" next to the audacity program. If you want to use settings in the user's home directory then delete this folder.
As with any complex software build there are many moving parts (including Windows itself) and things can sometimes go wrong. Here are some tips if you hit build errors.
If everyhting falls or you just want to shortcut lots of painful debugging then try a Microsoft Windows Virtual machine (VM) as mentioned above.
- make sure you have latest script
- make sure you are in a folder C:\projects in the cmd window
- ensure you are an administrator on your Windows 10 or 11 64 bit PC (ie not a organisational PC)?
- run the script with
--cleanall
and try again - uninstall all the tools and installers (Python, cmake, Visual Studio) and then reboot before trying again
- note having other versions of any of the tools installed may well cause problems - remove them
- ensure you ticked the specified options when installing Visual Studio and Python, reinstall if unsure
- read the error output - clues are often buried in reams of impenetrable text
- disable any Anti Virus - the built-in Microsoft one is usually not a problem
- if your PC is not English make sure you have EN language packs installed for Windows and VS
- @diogodh for finding and fixing the bug with conan installations
- The Audacity team for an fantastic audio tool
Thank you very much, @SteveALee !
I used to get Audacity compiled without any fears, but that was years ago... (Audacity 2.0.3).
Now I tried to get the latest 3.2.1 built, because of the new feature "Real-Time effects" - but failed...
I already had VS2017 installed and thought it would be okay - but it wasn't.
After trying several manual ways and tried to modify your script to use VS2017, I finally found that CMake seems to fail to create x64 configs for VS2017.
My last resort was to download and install a more recent Visual Studio and can now report:
Your script still works for Audacity 3.2.1, CMake 3.25.0, Python 3.11.0 and Visual Studio 2022!
If anyone is interested, here is my modified version for easy selecting the versions of all 4 tools on updates in the future:
https://gist.github.com/Giermann/c3f88ee2a147f9a688a2ca76e1334a54