How do I install and setup the environment for using PortAudio?
I am quite new to Ubuntu and I find it hard to install programs/libraries. How do I install and build PortAudio in Ubuntu using the terminal?
Installing ALSA Development Kit
The OSS sound API is very old and not well supported. It is recommended that you use the ALSA sound API. The PortAudio configure script will look for the ALSA SDK. You can install the ALSA SDK on Ubuntu using:
sudo apt-get install libasound-dev
You might need to use yum, or some other package manager, instead of apt-get on your machine. If you do not install ALSA then you might get a message when testing that says you have no audio devices.
You can find out more about ALSA here: http://www.alsa-project.org/
Configuring and Compiling PortAudio
You can build PortAudio in Linux Environments using the standard configure/make tools:
./configure && make
That will build PortAudio using Jack, ALSA and OSS in whatever combination they are found on your system. For example, if you have Jack and OSS but not ALSA, it will build using Jack and OSS but not ALSA. This step also builds a number of tests, which can be found in the bin directory of PortAudio. It's a good idea to run some of these tests to make sure PortAudio is working correctly.
Using PortAudio in your Projects
To use PortAudio in your apps, you can simply install the .so files:
sudo make install
Projects built this way will expect PortAudio to be installed on target systems in order to run. If you want to build a more self-contained binary, you may use the libportaudio.a file:
cp lib/.libs/libportaudio.a /YOUR/PROJECT/DIR
On some systems you may need to use:
cp /usr/local/lib/libportaudio.a /YOUR/PROJECT/DIR
You may also need to copy portaudio.h, located in the include/ directory of PortAudio into your project. Note that you will usually need to link with the approriate libraries that you used, such as ALSA and JACK, as well as with librt and libpthread. For example:
gcc main.c libportaudio.a -lrt -lm -lasound -ljack -pthread -o YOUR_BINARY
Reference
The following worked for me on Ubuntu 16.04:
sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0
sudo apt-get install ffmpeg libav-tools