Build your own Audacity for Windows with ASIO driver support
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 3.3.2.
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 have 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 use the less efficient ASIO4ALL ASIO <> 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 checks all required tools are installed and builds a 64 bit release version of Audacity 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.
Licensing
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.
Detailed instructions
If you'd rather not impact your PC by installing everything described here you can install VirtualBox and use a Microsoft supplied Virtual Machine image as explained here.
Note for developers: These instructions assume a clean PC with no dev tools. If you have existing tools you may hit errors due to differing versions. Perhaps use a VM (difficult with Windows licencing) or a Windows container.
This video by @Renamesk walks you through the process, but the tool installation method has changed.
- ensure you have a PC with modern Windows installed. 11 and 10 are known to work but 7 and 8 should too.
- install "Git For Windows" - click the "download" button.
- 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 feature to save the script as
\projects\build-audacity.cmd
(be careful there's no ".txt") - open a new Windows cmd terminal (Windows + R keys and then type
cmd
) - type
cd \projects
and enter key - install required tools by typing
build-audacity.cmd --install
and enter.- 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 VS English language pack.
- when the install completes open a new cmd terminal and start the build by typing
build-audacity.cmd
and enter. - come back later - it will take at least 10 minutes
- Audactiy will be launched to test it was built correctly
- to it run again see the program location printed out at the end of the build
- or copy the specified folder to where you want to run Audacity from, optionally renaming it
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 shows 'MME' (you may need to show using menu item View -> Toolbars -> Device toolbar).
When things go wrong
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.
- make sure you have latest script
- run the script with
--cleanall
and try again - uninstall all the tools (Python, cmake, Visual Studio and its installer) and then reboot before trying again
- note having other versions of any of the tools installed may well cause problems - remove them
- 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
Thanks
- @diogodh for finding and fixing the bug with conan installations
- The Audacity team for an fantastic audio tool.
Well, sorry to have to retract my enthusiasm now because with actual testing with my Mackie ProFX10V3 the s*** really hits the cooling fan! Although Audacity does run (the startup is extremely slow on my i5 laptop-almost 30 sec to get the splash screen!) the ASIO implementation in this build behaves very strangely when connected to the Mackies. Audacity Audio-Interface choices now add ASIO to the usual Windows MME, WASAPI and Direct Sound. Playback device choice now gives the usual Windows options for my laptop, Realtek HD speakers, headphones, plus ASIO. However the ASIO control panel acts very strangely; the ASIO tray icon has got to two vertical lines (not the fatal warning exclamation marks however) and flashes. ASIO control panel does open but does not display my ProFX bridged drivers correctly. On other ASIO compliant DAWs (such as Tracktion Waveform and Ableton) the ASIO panel correctly shows base ProFX plus two branches, one for the ProFX channel 1-2 and the other for ProFX channel 3-4 and either branch or both can be turned on or off. When the channel branch is ON, the DAW detects and uses that under its Interface-Device pull downs. I suspect these multichannel ASIO devices and drivers cause additional compatibility grief with this version of the audacity-asio build. Lord knows what the Allen Heath 4 channel USB mixers would show! The final (and fatal) defect shows up when Audacity-ASIO is actually connected to the ASIO-Mackie bridge and the input sound turns on for a few seconds, then turns off and keeps cycling and nothing comes through when the Record Monitor is clicked. Guess if I want to pursue this I'll have to dig into the code as to how the version of the ASIO base code is married to the audacity base. I'm pretty rusty on VS Make files so I have to rely on these cookbook scripts for now. I'd really love to hear if any Audacity geeks have any further experiences (good or bad) with the actual nuanced usages and behaviour after building and running audacity-asio. Cheers for now, Mike