forked from bbc/bbcat-dsp
-
Notifications
You must be signed in to change notification settings - Fork 0
DSP library for the BBC Audio Toolbox
License
anssiuimonen/bbcat-dsp
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Purpose bbcat-dsp is a general purpose DSP library which forms the basis of the Audio Toolbox software and is also integrated into IP Studio Dependencies bbcat-base - [email protected]:aplibs/bbcat-base.git jsoncpp - https://github.com/open-source-parsers/jsoncpp Files autogen.sh - simple autotools script configure.ac - configure configuration for autotools CMakeLists.txt - CMake configuration COPYING - information on copying this library debian/ - Debian control and version information doxygen.am - Doxygen automake file doxygen.cfg - Doxygen configuration m4 - folder for autotools Makefile.am - makefile for automake README - this file src/ - source folder containing C/C++ source and header files src/2DConvolution.h | 2D convolution template src/BiQuad.cpp | Biquad filter implementation src/BiQuad.h | src/BiQuadBlock.cpp | Block processing using biquad filters src/BiQuadBlock.h | src/BlockConvolver.cpp | Single-channel partitioned convolution src/BlockConvolver.h | src/CMakeLists.txt | CMake configuration for source files src/Convolver.cpp | Multi-channel parallelized convolution using BlockConvolver src/Convolver.h | src/FFT.cpp | FFT abstraction base src/FFT.h | src/FFT_FFTW.cpp | FFTW implementation src/FFT_kiss.cpp | KISS FFT implementation src/FilterManager.cpp | Manager class for biquad filters src/FilterManager.h | src/FractionalSample.cpp | Fractional delay line for floating point samples src/FractionalSample.h src/genconversions.php | PHP script to GENERATE SoundFormatRawConverisons.cpp src/Histogram.h | Histogram template class src/Interpolator.h | Simple interpolation class src/ITU1770MultiChannelLoudness.cpp | ITU 1770 loudness calculator src/ITU1770MultiChannelLoudness.h | src/simd_utils.cpp | SIMD utils for FFT and convolution src/simd_utils.h | src/Makefile.am | Makefile for automake src/RingBuffer.h | Ring buffer template src/RunningAverage.h | Running average template src/SOFA.cpp | SOFA file support via the netcdf-bbc libraries src/SOFA.h | src/SoundDelayBuffer.cpp | Delay/ring audio buffer src/SoundDelayBuffer.h | src/SoundFormatConversions.cpp | Sound sample format conversion/transfer routines src/SoundFormatConversions.h | src/SoundFormatRawConversions.cpp | AUTO-GENERATED (by genconversions.php) implementation of efficient sound format conversions src/SoundFormatRawConversions.h | (.h file not auto-generated) src/SoundMixing.cpp | Sound summing functions src/SoundMixing.h | src/register.cpp | Registration function (see below) -------------------------------------------------------------------------------- Initialising the Library (IMPORTANT!) Compilers are clever and try to remove unused code whilst linking applications. However, sometimes they are too clever and remove some code that *appears* not to be used but is. Uses of the SelfRegisteringParametricObject class may particularly suffer from this as it appears as though nothing is using the code. To stop this, each library includes a register.cpp file which explicitly calls a set of initilisation and registration functions. This file also calls the registration functions of any libraries it is dependant upon. For this to work, any application *must* call the registration function of most dependant library it uses. For example, for an application using only this library: #include <bbcat-dsp/register.h> using namespace bbcat; int main(int argc, char *argv[]) { // ensure libraries are set up bbcat_register_bbcat_dsp(); } register.cpp is included in repo but will be updated by the script bbcat-common/findregisterfunctions.sh if autotools is used. The CMake process is also capable of autogenerating this file if the original in the source directory does not exist. -------------------------------------------------------------------------------- Building on Windows (Visual Studio) Follow the installation instructions for bbcat-base (https://github.com/bbcrd/bbcat-base) Use git-bash to change to the directory where the libraries are to be cloned to Clone source code, if necessary: git clone [email protected]:bbcrd/bbcat-dsp.git cd bbcat-dsp mkdir build cd build cmake -G "Visual Studio 14 2015 Win64" .. && cmake --build . --target INSTALL --config Release (or whatever version of Visual Studio you are using) Notes on Windows builds As there is no standardised directories for cmake files, libraries, etc. the build *assumes* that: 1. Library includes, libs and shared files will be stored in c:\local\bbcat 2. CMake configuration files will be stored in c:\local\cmake -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Building on Mac and Linux There are two build mechanisms supported: autotools and cmake autotools: ./autogen.sh && configure && make && sudo make install cmake: mkdir build ; cd build ; cmake .. && make && sudo make install -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- Building without cmake or autotools Using the libraries with other build environments is possible, simply throw the files into the build environment BUT certain defines must be set to enable features. bbcat-dsp uses the following defines: ENABLE_JSON=1 - enables json support OLD_JSON_CPP - define if old version of jsoncpp (version 0.6.0, for example) used _FILE_OFFSET_BITS=64 - enable 64-bit file operations INSTALL_PREFIX=... - locations of installation (e.g. /usr/local, c:/local, etc) USE_PTHREADS - define if using pthreads rather than std::thread --------------------------------------------------------------------------------
About
DSP library for the BBC Audio Toolbox
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published
Languages
- C++ 81.3%
- M4 13.1%
- PHP 3.8%
- C 0.7%
- Makefile 0.6%
- CMake 0.5%