lasp/README.md

2.4 KiB

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 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.