mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-06 09:21:18 -05:00
77 lines
3.2 KiB
Plaintext
77 lines
3.2 KiB
Plaintext
|
Building the MS Windows portaudio DLL with ASIO Support
|
||
|
=======================================================
|
||
|
|
||
|
Some MAP65 users may not be able to use WDM/KS hosted audio devices
|
||
|
due to sharing issues with other applications, to circumvent this they
|
||
|
can build a version of the portaudio DLL with ASIO support. We cannot
|
||
|
provide a portaudio DLL with ASIO support as the Steinberg ASIO SDK
|
||
|
license prevents redistribution of drivers or hosting applications
|
||
|
without a commercial license agreement, nor is the Steinberg ASIO SDK
|
||
|
license compatible with the GPL v3 license that MAP65 is released
|
||
|
under. Users may build a portaudio DLL themselves, strictly for
|
||
|
personal use, under the terms of the Steinberg ASIO license.
|
||
|
|
||
|
Building portaudio on MS Windows is done most easily using the MinGW
|
||
|
(GNU) tool-chain which can be installed on MS Windows using the MSYS2
|
||
|
unix like environment which in turn includes a package manager
|
||
|
(pacman) that allows simple installation of necessary prerequisite
|
||
|
packages like the MinGW 64-bit tool-chain. To install MSYS2 download
|
||
|
the latest 64-bit installer from the MSYS2 project web site. This page
|
||
|
contains links to the installer download and detailed instructions to
|
||
|
install and bring up-to-date the base MSYS2 packages.
|
||
|
|
||
|
https://www.msys2.org/wiki/MSYS2-installation/
|
||
|
|
||
|
Take particular care to restart the MSYS2 shell window when directed
|
||
|
to.
|
||
|
|
||
|
Once MSYS2 is installed you will find a start menu entry labelled
|
||
|
"MSYS2 MinGW 64-bit", use that to start a fresh MSYS2 shell window for
|
||
|
the rest of these instructions.
|
||
|
|
||
|
The first step is to install some prerequisite packages which contain
|
||
|
the tools needed to prepare and build the portaudio DLL. Execute the
|
||
|
following command to do that:
|
||
|
|
||
|
pacman -S make diffutils unzip mingw-w64-x86_64-gcc sed tar curl
|
||
|
|
||
|
Then make directories to put downloaded sources in and for building:
|
||
|
|
||
|
mkdir -p ~/src ~/build/portaudio
|
||
|
|
||
|
Fetch and unpack the Steinberg ASIO SDK (note the ASIO SDK license
|
||
|
document included, particularly that it strictly disallows
|
||
|
redistribution of the DLL we will be building here), and portaudio
|
||
|
sources:
|
||
|
|
||
|
curl -Lo ~/src/asiosdk.zip https://www.steinberg.net/asiosdk
|
||
|
(cd ~/src ; unzip asiosdk.zip)
|
||
|
curl -O --output-dir ~/src \
|
||
|
http://files.portaudio.com/archives/pa_stable_v190700_20210406.tgz
|
||
|
tar -C ~/src -xf ~/src/pa_stable_v190700_20210406.tgz
|
||
|
|
||
|
Patch and build the portaudio library:
|
||
|
|
||
|
sed -i -e 's/-luuid//g' ~/src/portaudio/configure
|
||
|
cd ~/build/portaudio
|
||
|
~/src/portaudio/configure --with-winapi=wmme,directx,wdmks,asio \
|
||
|
--with-asiodir=$HOME/src/asiosdk_2.3.3_2019-06-14 \
|
||
|
--disable-static --enable-shared
|
||
|
make -j
|
||
|
|
||
|
You can check the library build is working by running a test program
|
||
|
that was also built:
|
||
|
|
||
|
bin/pa_devs
|
||
|
|
||
|
which should list every audio device on your system by every host API,
|
||
|
if all is well that should include the audio devices on your system
|
||
|
with ASIO drivers.
|
||
|
|
||
|
Copy the new portaudio DLL to your WSJT-X/MAP65 installation directory:
|
||
|
|
||
|
cp lib/.libs/libportaudio-2.dll /c/WSJT/wsjtx/bin/
|
||
|
|
||
|
Note that if you upgrade WSJT-X you will need to copy this DLL again
|
||
|
since it will be overwritten by one with no ASIO support.
|