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
J.A. de Jong - Redu-Sone B.V., ASCEE V.O.F a1781fa66c
All checks were successful
Building, testing and releasing LASP if it has a tag / Build-Test-Ubuntu (push) Successful in -59s
Building, testing and releasing LASP if it has a tag / Release-Ubuntu (push) Successful in -5m16s
Bump version due to bugfix
2024-06-24 09:45:10 +02:00
.gitea/workflows Checkout v3. v4 seems to be buggy. 2024-06-19 10:15:28 +02:00
cmake Explicit picking of driver for windows. 2024-04-05 06:49:48 -07:00
cpp_src Made code to compile and probably work with 32-bits floating point. This requires quite some testing to be done 2024-06-03 17:28:51 +02:00
examples Renamed test_input.py to example_input.py 2023-10-24 19:47:35 +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
python_src/lasp Bugfix: float129 -> complex128 2024-06-24 09:44:19 +02:00
scripts Updated scripts for building. Documentation follows 2024-03-29 04:34:24 -07:00
test Made code to compile and probably work with 32-bits floating point. This requires quite some testing to be done 2024-06-03 17:28:51 +02:00
third_party Updated portaudio 2024-06-17 15:50:33 +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 Added some stuff to gitignore, removed explicit dependency on Numpy 2024-03-12 15:53:37 +01:00
.gitmodules Merge branch 'develop' into windows_ready 2023-06-15 10:00:40 +02:00
.pre-commit-config.yaml build(Pre-commit-drone-file-cannot-be-checked): Removed check-yaml hook, updated drone config 2023-07-24 18:11:45 +02:00
CHANGELOG.md bump: version 1.0.0 → 1.0.1 2023-07-19 17:00:27 +02:00
CMakeLists.txt Checkout v3. v4 seems to be buggy. 2024-06-19 10:15:28 +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
pyproject.toml Bump version due to bugfix 2024-06-24 09:45:10 +02:00
pytest.ini Test virtualenvs and build envs 2023-07-14 10:12:42 +02:00
README.md Added extra readme 2024-06-18 09:14:58 +02:00

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:
  • 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 (Ubuntu-based)

Prerequisites

Run the following on the command line to install all prerequisites on Debian-based Linux:

  • sudo apt install python3-pip libfftw3-3 libopenblas-base libusb-1.0-0 libpulse0

Go to: LASP releases and download the latest .whl. Then run:

  • pip install lasp-*-linux_x86_64.whl

From source (Ubuntu-based)

Prerequisites

Run the following one-liner:

  • sudo apt install -y git python3 python3-virtualenv python3-venv libopenblas-dev python3-pip libfftw3-dev libusb-1.0-0-dev libpulse-dev python3-build

If building RtAudio with the ALSA backend, you will also require the following packages:

  • sudo apt install libclalsadrv-dev

If building RtAudio with the Jack Audio Connection Kit (JACK) backend, you will also require the following packages:

  • sudo apt install libjack-jackd2-dev

Download & build

  • $ git clone --recursive https://code.ascee.nl/ASCEE/lasp.git
  • $ cd lasp
  • pip install -e .

Installation - (x86_64) Windows (with WinPython), build with MSYS2

Prerequisites

From wheel

  • Download latest wheel from LASP releases and download the latest .whl. Then install with pip.

From source

  • Download and install MSYS2. Make sure to install the x86_64 version.
  • When unzipping WinPython, make sure to choose a proper and simple path, i.e. C:\winpython
  • Download and install Git for Windows
  • Open an MSYS2 MINGW64 terminal, and install some tools we require:
    • $ pacman -S git
  • Create a new virtualenv:
    • $ /c/winpython/<py-distr-dir>/python.exe -m venv venv
  • Add the venv-python to the path (eases a lot of commands)
    • $ export PATH=$PATH:~/venv/Scripts
  • Install build:
    • $ pip install build
  • Clone LASP:
    • $ git clone --recurse-submodules https://code.ascee.nl/ascee/lasp && cd lasp
  • If run for the first time, we have to install the libraries we depend on in MSYS2 (this only has to be done on a fresh MSYS2 installation):
    • $ scripts/install_msys2_builddeps.sh
  • Copy over required DLL's to be included in distribution:
    • scripts/copy_windows_dlls.sh
  • And... build!
    • pyproject-build
  • Lastly: the generated wheel can be installed in the current virtualenv:
    • pip install dist/lasp*.whl

Documentation

Online

Online LASP documentation.

In directory (Linux/Debian)

$ 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

Usage

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

Development docs

Bumping version number

When bumping the version number, please update the number in

  • pyproject.toml
  • CMakeLists.txt

Then, create a commit with tag vX.X.X, and push it.

Updating to latest version (editable mode)

When updating to the latest version of LASP in editable mode:

- $ git pull
- $ git submodule update
- $ pip install -e . -v