4.5 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:
- Communication with data acquisition (DAQ) devices, of which:
- Internal sound cards via the RtAudio backend. Many thanks to Gary P. Scavone et al.
- Measurement Computing DT9838A signal analyzer.
- 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 lasp.ascee.nl 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)
Dependencies
One-liner:
$ sudo apt install python3-pybind11 libopenblas-dev python3-pip python3-scipy libusb-1.0-0-dev libpulse-dev cmake-curses-gui python3-h5py python3-dataclasses-json python3-matplotlib python3-appdirs
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
Installation - (x86_64) Windows (with WinPython), build with MSYS2
Prerequisites
-
Download and install WinPython
-
Download and install MSYS2. Make sure to install the x86_64 version.
-
Download and install Git for Windows
-
When unzipping WinPython, make sure to choose a proper and simple path, i.e. C:\winpython
-
Append C:\winpython\ to the PATH environment variable.
-
Run Python and install Pybind11
python -m pip install pybind11
-
Open a msys2 MINGW64 terminal. And run:
pacman -S git
-
Then clone the LASP repo:
git clone https://code.ascee.nl/ascee/lasp
cd lasp
-
Configure MSYS2 further, and run cmake:
scripts/install_msys2_buiddeps.sh
scripts/configur_cmake_msys2.sh
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 .
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.
- Please refer to the documentation for features.