In-house Python Library for Acoustic Signal Processing (LASP): fractional octave filter banks, Fourier analysis, code for doing acoustic measurements and beamforming tools. http://code.ascee.nl/ASCEE/lasp
Go to file
Thijs Hekman 77a7e46f9d
Some checks are pending
continuous-integration/drone Build is running
Reset the interrupt frame counter when muting signal generator
2023-08-29 16:23:18 +02:00
cmake Finally: some align_val_t that did not work on Windows! 2023-06-17 07:03:14 -07:00
examples Test virtualenvs and build envs 2023-07-14 10:12:42 +02:00
img Removed old testing code. Improved Doxyfile, added logo to Doxygen. Added pytest testing config. 2022-09-03 16:07:44 +02:00
scripts Execute permissions on build scripts 2023-07-14 10:13:45 +02:00
src/lasp Reset the interrupt frame counter when muting signal generator 2023-08-29 16:23:18 +02:00
test Updated libs. Some comments and tests on cmake with msys2. 2023-05-25 11:41:16 -07:00
third_party Rudymentary portaudio support. A stream callback is running. 2023-06-14 21:23:53 +02:00
.drone.yml Test virtualenvs and build envs 2023-07-14 10:12:42 +02:00
.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 2018-05-02 16:29:53 +02:00
.gitignore Some improvements before stepping over to pyproject.toml 2023-07-14 13:40:43 +02:00
.gitmodules Merge branch 'develop' into windows_ready 2023-06-15 10:00:40 +02:00
CMakeLists.txt Made default preset for compiled in DAQ backends in CMakeLists 2023-06-15 09:57:06 +02:00
Dockerfile Some improvements before stepping over to pyproject.toml 2023-07-14 13:40:43 +02:00
Doxyfile Documentation updates. 2023-01-20 14:22:48 +01:00
LICENSE Initial commit 2018-03-05 20:58:03 +01:00
pytest.ini Test virtualenvs and build envs 2023-07-14 10:12:42 +02:00
README.md Docs for build on Windows with MSYS2 2023-07-14 13:57:02 +02:00
requirements.txt Some improvements before stepping over to pyproject.toml 2023-07-14 13:40:43 +02:00
setup.py Some small changes. 2023-06-11 05:33:16 -07:00

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