cmake | ||
examples | ||
img | ||
scripts | ||
src/lasp | ||
test | ||
third_party | ||
.drone.yml | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
CMakeLists.txt | ||
Doxyfile | ||
LICENSE | ||
pyproject.toml | ||
pytest.ini | ||
README.md | ||
requirements.txt | ||
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 acquire and process (multi) sensor data in real time on a PC and output results.
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.
Installation
Dependencies
$ sudo apt install python3-pybind11 libopenblas-dev python3-pip python3-scipy libusb-dev libpulse-dev cmake-curses-gui python3-h5py
$ pip3 install --user -r requirements.txt
If building RtAudio with the ALSA backend, you will also require the following packages:
- libclalsadrv-dev
If building RtAudio with the Jack Audio Connection Kit (JACK) backend, you will also require the following packages:
- libjack-jackd2-dev
Download & build
$ git clone --recursive https://code.ascee.nl/ASCEE/lasp.git
$ cd lasp
For a release build:
$ cmake .
or optionally for a custom build:
$ ccmake .
Configure and run:
$ make -j
Build documentation
$ sudo apt install doxygen
While still in lasp dir:
$ doxygen
This will build the documentation. It can be read by:
$ <YOUR-BROWSER> doc/html/index.html
Install
For an editable install (while developing):
$ pip3 install --prefix=$HOME/.local -e .
To install locally, for a fixed version:
$ pip3 install --prefix=$HOME/.local
Usage
See examples directories for IPython notebooks.