-
-
Notifications
You must be signed in to change notification settings - Fork 34
Dependencies
The eDSP project is a header-only library that relies on a C++14 compiler and the standard library (STL). A recent version of CMake is required. The minimum is 3.4, but tested primarily with 3.6 and newer.
However some features relies in other packages for performance reasons. Those are the list of external tools dependencies:
Library | License | Dependencies | Description |
---|---|---|---|
libfftw | GPL | Spectral | Integrates one of the fastest FFT implementations. |
libsamplerate | BSD 2-c | Codec | Integrates an efficient re-sampling algorithm. |
libaudiofile | LGPL | Codec | Integrates an efficient decoder/encoder for different audio formats. |
libsndfile | LGPL | Codec | Integrates an efficient decoder/encoder for different audio formats. |
libgtest-dev | BSD 3-c | Test | Integrates a simple and modern framework for testing. |
libbenchmark | Apache 2 | Benchmark | Integrates a simple and modern framework for benchmarking. |
LibYAML | MIT | IO | YAML files input/output |
TagLib | Mozilla | MIR | Reading audio meta-data tags. |
All the listed dependencies are available in the official repositories of almost all modern distributions. For instance, on Debian/Ubuntu systems:
sudo apt-get install build-essential libyaml-dev libfftw3-dev libaudiofile-dev libsamplerate0-dev libtag1-dev libsndfile1-dev
For the installation of the different packages, we recommend the usage of the Homebrew package manager. To install the dependencies run:
brew install libyaml fftw libsamplerate libtag limaudiofile libsndfile
eDSP relies on a C++14 compiler. There are plenty of cool features not integrated in the standard or developed in latest versions. To keep the compatibility while at the same time provide efficient and modern features, eDSP uses some third-party files. Check this table for details:
File | License | Description |
---|---|---|
nonstd/variant.hpp | BSL 1.0 | Implementation of the C++17 std::variant compatible with older compilers. |
nonstd/optional.hpp | BSL 1.0 | Implementation of the C++17 std::optional compatible with older compilers. |
nonstd/expected.hpp | BSL 1.0 | expected lite is a single-file header-only library for objects that either represent a valid value or an error that you can pass by value. |
nonstd/span.hpp | BSL 1.0 | The class template span describes an object that can refer to a contiguous sequence of objects with the first element of the sequence at position zero. |
nonstd/any.hpp | BSL 1.0 | Implementation of the C++17 std::any compatible with older compilers. |
nonstd/string_view.hpp | BSL 1.0 | Implementation of the C++17 std::string_view compatible with older compilers. |
nonstd/ring_buffer | BSL 1.0 | ring-span lite is a single-file header-only library to represent a circular buffer view on a container. |
easy DSP - A cross-platform Digital Signal Processing library written in modern C++.