In-house Python Library for Acoustic Signal Processing (LASP): fractional octave filter banks, Fourier analysis, code for doing acoustic measurements and beamforming tools.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Anne de Jong 16390352dc Removed stupid handleMessages from streammanager. 2 months ago
STL-Threadsafe@08b2d9e7f4 Removed stupid handleMessages from streammanager. 2 months ago
fftpack Added some comments, first change to doxyfile 4 years ago
img First work on SLM. Seems to be working properly without pre-filtering and bandpass bank 2 years ago
lasp Removed stupid handleMessages from streammanager. 2 months ago
scripts Change in DaqConfigurations API for consistency 1 year ago
test Throughput of flag LASP_PARALLEL. If not set, some downstream code will be broken as JobQueues will not go empty for this case. For all code in the library, a serial implementation works off the not present job queue 10 months ago
.gitattributes Split up GUI in different Widgets, added revtime, added figure list possibilities, added Qt Resources, added About panel, added lots of comments, export and import of measurements 4 years ago
.gitignore Added export of compile commands. Stop make on first error 5 months ago
.gitmodules Removed stupid handleMessages from streammanager. 2 months ago
CMakeLists.txt Removed stupid handleMessages from streammanager. 2 months ago
Doxyfile Some markup improvements and comments. 4 years ago
LICENSE Initial commit 4 years ago Probable fix of memory leak 6 months ago Forgot to add 32-64 bits definitions to include in wrappers.pyx. Now fixed. Removed constrained on h5py version. This might result in new instabilities, but we expect it to be more fixed. 9 months ago

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.

The main goal of this library will be the processing of data from an array of microphones real time, on a Raspberry PI. 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 in a later stage.

If you have any question(s), please feel free to contact us:

Building from source


Optional dependencies, which can be turned ON/OFF using CMake:

  • Build tools, including
  • FFTW (For really fast FFT's)
  • libUlDAQ, for the Measurement Computing DT9837A USB DAQ box
    • GNU Autotools, for compiling libUlDAQ
  • RtAudio, for Audio DAQ backends
  • Cython, for wrapping the C-code to Python.
  • The following Python packages need also be available:
    • Scipy (which includes Numpy). Install with sudo apt install python3-scipy, or pacman -S scipy.
    • appdirs, which can be grabbed from

Installation of dependencies

Compilation of LASP


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
  • libclalsadrv-dev
  • libopenblas-base
  • libopenblas-dev