cmake | ||
examples | ||
img | ||
scripts | ||
src/lasp | ||
test | ||
third_party | ||
.drone.yml | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
Doxyfile | ||
LICENSE | ||
pyproject.toml | ||
pytest.ini | ||
README.md | ||
setup.py |
Library for Acoustic Signal Processing
Welcome to LASP: Library for Acoustic Signal Processing. LASP is a C++ library with a Python interface which is supposed to process (multi-) microphone acoustic data in real time on a PC and output results.
At the point in time of this writing, we are yet unsure whether the Raspberry PI will have enough computational power to this end, but may be by the time it is finished, we have a new faster generation :).
Current features that are implemented:
- Compile-time determination of the floating-point accuracy (32/64 bit)
- Fast convolution FIR filter implementation
- Sample rate decimation by an integer factor of 4.
- Octave filterbank FIR filters designed to comply with IEC 61260 (1995).
- Averaged power spectra and power spectral density determination using Welch' method. Taper functions of Hann, Hamming, Bartlett and Blackman are provided.
- A thread-safe job queue including routines to create worker threads.
- Several linear algebra routines (wrappers around BLAS and LAPACK).
- A nice debug tracer implementation
- Third octave filter bank FIR filters designed to comply with IEC 61260 (1995).
- Slow and fast time updates of (A/C/Z) weighted sound pressure levels
Future features (wish-list)
- Conventional and delay-and-sum beam-forming algorithms
For now, the source code is well-documented but it requires some additional documentation (the math behind it). This will be published in a sister repository (https://code.ascee.nl/ascee/lasp-doc).
If you have any question(s), please feel free to contact us: info@ascee.nl.
Building from source
Two commands that install all requirements (for Ubuntu / Linux Mint)
pip install scipy numpy build scikit-build appdirs
sudo apt install libusb-dev libpulse-dev libboost-dev
Runtime dependencies (Linux)
- FFTW (For really fast FFT's). If compiled with Ffftpack, this library is not required.
- libUlDAQ, for the Measurement Computing DT9837A USB DAQ box
- GNU Autotools, for compiling libUlDAQ
- RtAudio, for Audio DAQ backends
- libusb
- BLAS (OpenBLAS, other).
Editable install
In the root directory of the repository, run:
pip3 isntall --user -e .
cmake .
make -j
Build dependencies
Optional dependencies, which can be turned ON/OFF using CMake:
-
Build tools: compiler http://cmake.org, the Python packages:
- Scipy
- Numpy
- appdirs These can all be installed using:
-
The following Python packages need also be available:
Scipy
(which includes Numpy). Install withsudo apt install python3-scipy
, orpacman -S scipy
.appdirs
, which can be grabbed from https://pypi.org
Compilation of LASP
Archlinux
Compiling the code on Archlinux requires the following packages to be available:
- openblas-lapack (AUR)
- Python>=3.7
- Numpy (Python-numpy)
- Cython
Ubuntu / Linux Mint
Only tested with Linux Mint 18.04, we require the following packages for compilation:
- build-essential
- cython
- python3-numpy
- libopenblas
If building RtAudio with the ALSA backend:
- libclalsadrv-dev
- libopenblas-base
- libopenblas-dev
- libusb-1.0-dev