I have only very little programming skills, but I have always managed to compile the current Audacity version with ASIO support.
Unfortunately, in the current version 2.4.2 it does not work for me anymore. I get 38 errors when compiling and I think this is due to the missing ASIO patch that was provided here.
Maybe someone can tell me how exactly I can insert this patch into the source code.
sure, use this tool: Git - git-apply Documentation
it comes with git, so assuming that you managed to clone audacity/wxwidgets with the correct 3.1.3-audacity-fixes branch, then all you need to do is open a terminal in the audacity repo and run
Audacity works, also the ASIO implementation but I still get these 38 errors during the compile process. Strangely enough, those errors do not occur when compiling Audacity 3.0.0 alpha. I will now see if everything I need is working and if necessary open a separate threat for it.
@doubleO7 no worries, Iām thinking that a couple of projects later in the dependency chain were left intentionally broken in the windows build, as two were failing when I built it too
OK, I (finally!) got Audacity 2.4.2 with ASIO to compile on Windows 10.
I would like to share with you my steps, so that you may/might be able to duplicate them. My thanks to steve, Apesbrain and micsthepick whose posts gave me the solution I only had to duplicate and document; and to Steve A Lee for the 2.4.1 version of this cmd file.
copy the following code build-audacity.txt to c:\proj242\build-audacity.cmd [Note .cmd extension!]
This will download the source code for audacity widgets, audacity 2.4.2, then compile, cmake, and build everything. build-audacity.txt (2.68 KB)
copy the next segment of code and save it to c:\proj242\asio2.patch asio2.patch (2.4 KB)
There should be two files and one folder in c:\proj242:
build-audacity.cmd
asio2.patch
ASIOSDK
Press Windows-R and type ācmdā
type ācd c:\proj242ā, then type ābuild-audacityā
The compiled progam will be built to C:\proj242\audacity\win\bin\Release\Audacity.exe
Thank you for putting in this effort and documenting it so thoroughly. To me the fact that you have needed to do this illustrates where the entire process has gone wrong so Iāll be sticking with 2.4.1 and falling back on Studio One as my recording software if necessary.
Iām not sure what that means, but the reason why this is necessary is because:
Building with ASIO support requires using the ASIO SDK source code, but the ASIO SDK license prohibits distribution of the source code. Audacityās open source license requires that the full source code is freely available, so it is impossible to distribute an ASIO version of Audacity without violating one or other license.
would it be possible to have an automated build (such as GH actions) with no artifacts that verifies that the ASIO build succeeds?
Top
Thatās a very good suggestion plus a runtime smoke test too. Itās a real shame to break existing functionality on a release, especially a patch release.
However most cloud-located CI/CD systems like GitHub actions are Linux based
I can only think of Azure DevOps offering Windows VM/Containers. Iāve used it when it was relatively new ) and it was impress if aimed at large corps. II believe now integrates with GitHub. Thereās a free tier and perhaps OSS pricing. I could explore itās used if there is sufficient interest.
Anyway youāre welcome to use my script if it helps. Itās MIT licensed and could easily be adapted to build using any specified release.
As far as Iām aware, the ASIO SDK cannot be included in the source code (that would probably constitute ādistributionā and so violate Steinbergās license), so it would need to be downloaded from Steinberg at build time. I donāt know if Steinberg allow downloading to bypass their license acceptance page, or any form of automated downloading of their SDK. Even if they do allow that now, they have every right to block such downloads at any time without notice.
The current /win/build.txt seems to say that MSVC is only used for building WxWidgets. On Linux, WxWidgets may be built with cmake. Can WxWidgets be built with cmake on Windows? If so, it may be possible to make it easier to use the script by removing the requirement for āVisual Studio Community 2017ā. Perhaps worth looking at?
I followed it step-by-step, however, Iām having a problem somewhere:
ānmakeā is not recognized as an internal or external command,
operable program or batch file.
ā Building for: NMake Makefiles
ā The C compiler identification is unknown
ā The CXX compiler identification is unknown
CMake Error at CMakeLists.txt:81 (project):
The CMAKE_C_COMPILER:
cl
is not a full path and was not found in the PATH.
To use the NMake generator with Visual C++, cmake must be run from a shell
that can use the compiler cl from the command line. This environment is
unable to invoke the cl compiler. To fix this problem, run cmake from the
Visual Studio Command Prompt (vcvarsall.bat).
Tell CMake where to find the compiler by setting either the environment
variable āCCā or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.
CMake Error at CMakeLists.txt:81 (project):
The CMAKE_CXX_COMPILER:
cl
is not a full path and was not found in the PATH.
To use the NMake generator with Visual C++, cmake must be run from a shell
that can use the compiler cl from the command line. This environment is
unable to invoke the cl compiler. To fix this problem, run cmake from the
Visual Studio Command Prompt (vcvarsall.bat).
Tell CMake where to find the compiler by setting either the environment
variable āCXXā or the CMake cache entry CMAKE_CXX_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.