How to install Install Portaudio for use with Linrad.
(May 1 2010)

Portaudio.

PortAudio is a free, cross platform, open-source, audio I/O library. It lets you write simple audio programs in 'C' that will compile and run on many platforms including Windows and Linux.

Starting in version 03.09 Linrad can be compiled with portaudio. This means that Jack can be used under Linux to connect other programs to the output of Linrad.

Under Windows the inclusion of Portaudio means that ASIO and other fast drivers become available which is very important for Windows Vista and Windows 7 where output through the old Windows MME drivers is slow.

The portaudio interface in Linrad-03.09 is written for Portaudio version 19. Linrads old direct interface to the soundcards via the MME drivers is left in place and the user can select to use the old routines or to access the sound system through Portaudio.

Linrad may use four soundcard channels:

1. Receiver input (Disabled when SDR-14 or other USB devices are used.)
2. Receiver output (Can be disabled. Typically when writing the output to the network.)
3. Transmitter input (Early development stage).
4. Transmitter output (Early development stage).

Currently only the receiver output can be set to use Portaudio.

Portaudio for Linrad under Windows.

Linrad-03.09 to Linrad-03.11 have three different executables with different alternatives for portaudio. Linrad-03.12 and later have just one executable, linrad.exe It is necessary to have palir-01.dll available to Linrad in order to run Linrad-03.12 and later under Microsoft Windows. Get palir-01.dll from here palir-01.zip (485835 bytes) or compile it from the Portaudio source code as described below.

Portaudio for Linrad under Linux.

Portaudio must be installed after Jack in case you want to use Jack. On a 64 bit system the 32 bit version of Jack has to be installed.

Jack can be installed with the system installer that belongs to your Linux distribution. Install these packages: (The lists may be incomplete. If you have additional information, please send a mail to:


Debian and Ubuntu
jackd
libjack0
libjack0-dev

Mandriva
jack
qjackctl
libalsa-plugins-jack
libsamplerate-progs
libbio2jack0
libjack-devel
libbio2jack-devel
jackit
arts

Fedora
jack-audio-connection-kit
qjackctl

Suse 64bit
jack-32bit
libjack0-32bit
qjackctl
alsa-plugins-jack-32bit

Fedora 64 bit
qjackctl
jack-audio-connection-kit-devel-0.116.1-4.fc11.i586

The installers take care of dependencies. The above lists might contain too many packages. I do not know what is really needed, but with the above lists I have produced working installations of Linrad with Portaudio and Jack under the specified distributions.

Download the latest portaudio source code from http://www.portaudio.com/download.html

Get root privileges (sudo su root under Ubuntu where plain su root does not work.) Place the portaudio archive in /usr/src and unpack it with tar xvfz pa_snapshot.tgz This will generate the directory /usr/src/portaudio. Descend into this directory and execute these commands:

./configure
make
make install
ldconfig


The linrad configure script has to be run after the sucessful installation of portaudio to make Linrad aware of the fact that portaudio is available. Linrad does not use the installed portaudio.h. The file pa-linrad.h which is included in the Linrad package is used instead. It is a renamed copy of portaudio.h from Portaudio V19 which was downloaded Oct 14 2009.

Portaudio for Windows when compiling from source code.

The file palir-01.dll must be present when the configure script (configure.exe under Windows) is run. If it is missing, the resulting linrad.exe will run without the palir-01.dll file but of course without access to soundcards through Portaudio. Download this archive: palir01.tbz (457612 bytes) and extract palir-01.dll from it or complie from the Portaudio source code as described below.

How to generate palir-01.dll from source code.

palir-01.dll provides Hostapi's for MME, DirectSound, WDM-KS, WASAPI and ASIO.

The installation steps are:

1. Install MinGW/GCC 3.4.5 by downloading mingw516nasm.zip (23919121 bytes)
Unzip it in C:\ to get a C:\mingw directory. (DO NOT use older mingw versions or the compilation will fail.)

2. Download the latest portaudio snapshot (pa_snapshot.tgz) from http://portaudio.com/download.html
Unpack it into C:\ to get a C:\portaudio directory.
Files with extention .tgz (short for .tar.gz) may have to be unpacked in two steps.

3. Go to: http://www.steinberg.net/en/company/3rd_party_developer/sdk_download_portal/create_3rd_party_developer_account.html Register and agree to their license agreement. Then you can login as a 3rd party developer here: http://www.steinberg.net/en/company/3rd_party_developer/sdk_download_portal.html
Download the asiosdk2.2.zip file from Steinberg.
Unzip it and copy the ASIOSDK2 folder with its subdirectories to C:\portaudio\src\hostapi\asio\ASIOSDK2

4. Download portaudio_for_linrad.zip (123431 bytes)
Unzip it while preserving the path information to get a folder portaudio_for_linrad with sub-folders in it.
-Copy the folder dx8sdk from portaudio_for_linrad to the C:\portaudio directory.
-Copy the mingw-include folder from portaudio_for_linrad to C:\portaudio\src\hostapi\wdmks\mingw-include
-Copy the files
   Makefile
   make.bat
   clear.bat
from portaudio_for_linrad to the C:\portaudio directory.

5. Activate WDMKS by editing the file C:\portaudio\src\os\win\pa_win_hostapis.c
Use your favourite editor to remove the /* and */ that surround these statements:
#ifndef PA_NO_WDMKS
       PaWinWdm_Initialize,
#endif

6. Open now a command window (DOS prompt) in Windows.
From the DOS prompt, cd to the C:\portaudio directory and enter the command
make.bat

In case there are no fatal errors you would get the palir-01.dll file in the portaudio directory.
The make.bat command will also generate three portaudio test programs in the portaudio directory:
pa_devs.exe
paqa_devs.exe
patest_record.exe

Notes:
5.1 If you want to keep ALL the output of the compilation proces (including error messages) you can route the output to a text file with the following command:
make.bat > make_output.txt 2>&1

5.2 The palir-01.dll file can be generated with a debug option.
This debug option will generate debugging information in the DOS box from which you started linrad.
To activate this debug option you have to modify line 3 in Makefile by adding -DPA_ENABLE_DEBUG_OUTPUT= at the end of the line as follows:
CF1= -c -DWIN32 -D_WIN32 -DWINDOWS -DKSAUDIO_SPEAKER_DIRECTOUT=0 -DMETHOD_NEITHER=3 -DFILE_ANY_ACCESS=0 -DWINVER=0x0501  -DPA_ENABLE_DEBUG_OUTPUT=

7. If the test programs run fine, copy the palir-01.dll file into the linrad directory and recompile Linrad. You have to run configure in between in case you did not copy palir-01.dll to replace an older version with the same name.

All the work of interfacing Linrad to portaudio was done by Pierre, ON5GN who once again made a major contribution to the Linrad development.


To SM 5 BSZ Main Page