Audaspace 1.5.0
A high level audio library.
Loading...
Searching...
No Matches
Building and Installation

This page describes how to build and install audaspace.

The build system used to build audaspace is CMake and it allows very building the library for very different application scenarios from a very general shared library build with plugins that is suitable for system wide installations to building everything into a single static library to be linked into a standalone program.

Build Dependencies

Audaspace is written in C++ 11 so a fairly recent compiler (g++ 4.8.2, clang 3.3, MSVC 2013) is needed to build it. The build system used is CMake and you need at least version 3.0. The following build dependencies are all optional, but without any it's neither possible to open sound files nor play back through the speakers. For windows a library folder called build-dependencies can be downloaded from https://github.com/audaspace/audaspace/releases.

  • OpenAL (input/output device)
  • SDL (output device)
  • Jack (output device)
  • libsndfile (file access)
  • ffmpeg (file access)
  • Python (language binding, needs NumPy as well)

Getting the Code

The audaspace source code or binary releases can be downloaded from https://github.com/audaspace/audaspace/releases.

For the most recent version you can use git to get the source code.

git clone https://github.com/audaspace/audaspace.git

Plugins

Before diving into the exact build steps for each platform, we will have a look at plugins. There are so far two types of plugins: input and output plugins. Input plugins are for reading audio files in many different formats and output plugins are for output devices on different platforms. During the configuration audaspace's standard plugins can be enabled with their repsective WITH_* and PLUGIN_* configuration option. Plugins are built as shared libraries. By default audaspace looks in the DEFAULT_PLUGIN_PATH for shared libraries it can load. Building with a dependency (WITH_*) but without enabling the respective PLUGIN_* option will compile the plugin directly into the library, so the plugin always gets loaded when the plugins are initialised.

Building for Linux

Configuration

It is highly recommended to build audaspace outside of the actual source code in a specific build directory.

mkdir build
cd build

Configuration is then either done interactively by using ccmake

ccmake ../audaspace

or it can be done by defining variables directly during the run of cmake.

cmake ../build \
-DCMAKE_INSTALL_PREFIX:PATH=/usr \
-DCMAKE_BUILD_TYPE:STRING=Release \
-DBUILD_DEMOS:BOOL=TRUE \
-DSHARED_LIBRARY:BOOL=TRUE \
-DWITH_C:BOOL=TRUE \
-DWITH_FFMPEG:BOOL=TRUE \
-DWITH_JACK:BOOL=TRUE \
-DWITH_LIBSNDFILE:BOOL=TRUE \
-DWITH_OPENAL:BOOL=TRUE \
-DWITH_PYTHON:BOOL=TRUE \
-DWITH_SDL:BOOL=TRUE \
-DDEFAULT_PLUGIN_PATH:PATH=/usr/share/audaspace/plugins

This specific configuration is recommended for a system wide installation of audaspace where all build dependencies are required.

Building

After configuration the building is as easy as running

make

Installation

Installation is then also simple using

make install

Using the library

When audaspace is installed to the system, the required configuration for pkgconfig is also installed and pkgconfig can then be used to compile projects with audaspace.

It is also possible to build audaspace as a static library and use it directly in a project. For this the library has to be configured accordingly with ccmake and after building the resulting library file can be added to the project's build system.

Building for Windows

Configuration

Using cmake-gui select Visual Studio 2013 or 2015 for the architecture you want to build for and choose audaspace's source directory and a build directory. It is highly recommended to build audaspace outside of the source directory. During the first configuration cmake tries to find the dependencies. Dependencies that are not installed on the system are automatically disabled. To prevent this, enable WITH_STRICT_DEPENDENCIES. To use the build dependencies folder from the website, set the LIBRARY_PATH to point to the extracted directory. Also don't forget to set the CMAKE_INSTALL_PREFIX to a path where your user account can install to. Finally enable the dependencies that you want to use (WITH_*), configure and generate.

Building

Open the project in Visual Studio and set the configuration to Release. Then you can simply hit the build button.

Installation

To install audaspace to your target folder, build the INSTALL target. Note that if you don't use the libraries folder provided on the website, the INSTALL target might fail and you need to copy the files manually, including the dlls of the dependencies.

Using the library

To use audaspace in your project, configure the include path and the libraries that you need, which you can find in the include and lib directories in your installation path.

Notes for plugins on windows

  • FFMPEG: Due to a problem with FFMPEG's 32 bit libraries, it is necessary to disable SAFESEH for the audffmpeg build target inside Visual Studio (Properties, Linker, Advanced). This has to be done after each generate step of CMake.
  • Jack: If no jack server is running on windows and your application or one of the demos tries to use the jack plugin, this adds a long delay to the device initialisation. In case you don't need jack, make sure to disable the plugin or for the prebuilt version of audaspace simply delete audjack.dll (and any files with jack in the name to clean up).