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.
Go to file
Anne de Jong 43cf2427ea
continuous-integration/drone/push Build is passing Details
Workaround for bug in RtAudio when first channel not equal to 0
2 weeks ago
cmake Textual improvements. Formatting (Neoformat) improvements. Let DataTypeDescriptor be a reference (to a global const std map in Daq class. Improved naming of certain functions. Better DaqData implementation, now we make sure memory alignment is good at all times. Switched functions arguments in DaqData constructor to comply with all other cases of first frame, then channel. Better naming of stream in RtAudio. Better handling of faulty function calling in RtAudio start(). Bugfix in RtAudio, did call right Daq::dtypeDescr() function --> result was that only first channel was copied to all channels. Added extra check in StreamMgr. Removed unnecessary TypedDaqData class. Use a safe queue in threaded in data handler. We can now remove the Boost code for that. 8 months ago
examples Updated tests 5 months ago
img Removed old testing code. Improved Doxyfile, added logo to Doxygen. Added pytest testing config. 9 months ago
scripts Py_filter added for Doxygen 4 months ago
src/lasp Workaround for bug in RtAudio when first channel not equal to 0 2 weeks ago
test Cleanup of tests 5 months ago
third_party Changed remote of uldaq to asceenl 3 weeks ago
.drone.yml Build documentation docker file added to drone 5 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 5 years ago
.gitignore Split timeweighting into different types for each of the possible use cases. 4 months ago
.gitmodules Changed remote of Uldaq to our fork 3 months ago
CMakeLists.txt Added ARMA_NO_DEBUG flag for release mode 8 months ago
Dockerfile Documentation updates. 5 months ago
Doxyfile Documentation updates. 5 months ago
LICENSE Initial commit 5 years ago Some doc update 2 months ago
pytest.ini Removed old testing code. Improved Doxyfile, added logo to Doxygen. Added pytest testing config. 9 months ago
requirements.txt Further on... 5 months ago Take 2 on Ubuntu, better handling of extension code 5 months ago

Library for Acoustic Signal Processing

  • Master branch: Build Status
  • Develop branch: Build Status

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:

  • Communication with data acquisition (DAQ) devices, of which:
  • Configuration of DAQ devices: AC coupling, IEPE, sensitivity physical quantities.
  • Recording of signals from these DAQ devices, and storing in a HDF5 file.
  • Filter designers to create A/C sound pressure weighting
  • Biquad filter designers for low pass, high pass, peaking and notch filters
  • A Peak Programme Meter (PPM) to monitor signal levels from DAQ and to watch for signal clipping.
  • A signal generator to create sine waves, sweeps and noise (white / pink).
  • Equalizers to equalize the output prior to sending.
  • Averaged power spectra and power spectral density determination using Welch' method. Taper functions of Hann, Hamming, Bartlett and Blackman are provided.
  • (One third) octave filter bank filters designed to comply with IEC 61260 (1995).
  • Slow and fast time updates of (A/C/Z) weighted sound pressure levels
  • Full Sound Level Meter implementation
  • Real time Sound Level meter, Power / Transfer function estimator
  • Spectra data smoothing algorithms
  • Sensor calibration for microphones

Future features (wish-list)

  • Conventional and delay-and-sum beam-forming algorithms
  • Impedance tube measurement processing

For now, the source code is well-documented on but it requires some additional documentation (the math behind it). This is maintained in a sister repository lasp-doc.

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

Installation - Linux (Debian-based)


  • $ sudo apt install python3-pybind11 libopenblas-dev python3-pip python3-scipy libusb-1.0-0-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
  • $ cd lasp

For a release build:

  • $ cmake .

or optionally for a custom build:

  • $ ccmake .

Configure and run:

  • $ make -j

Build documentation

In directory:

$ sudo apt install doxygen graphviz $ pip install doxypypy

While still in lasp dir:

$ doxygen

This will build the documentation. It can be read by:

$ <YOUR-BROWSER> doc/html/index.html

Or via docker:

$ docker build -t lasp_ascee_nl:latest .


For an editable install (while developing):

  • $ pip3 install --prefix=$HOME/.local -e .

To install locally, for a fixed version:

  • $ pip3 install --prefix=$HOME/.local


  • See examples directories for IPython notebooks.
  • Please refer to the documentation for features.