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
2024-07-02 10:56:42 +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 Removed old unused Fir filterbank code. 2024-07-02 10:56:42 +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 Removed old unused Fir filterbank code. 2024-07-02 10:56:42 +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 Removed old unused Fir filterbank code. 2024-07-02 10:56:42 +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 1.6.7 2024-06-28 09:16:23 +02:00
pytest.ini Test virtualenvs and build envs 2023-07-14 10:12:42 +02:00
README.md Updated readme for RPI install 2024-06-24 16:33:31 +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, x86-64:

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

Building and installation for Raspberry Pi (Raspberry Pi OS)

Run the following on the command line to install all prerequisites on Raspberry Pi OS:

  • sudo apt install libfftw3-dev libopenblas64-dev libhdf5-dev libclalsadrv-dev

In a virtualenv: install build

  • $ pip install build

Then run:

  • $ git clone --recursive https://code.ascee.nl/ASCEE/lasp.git
  • $ cd lasp
  • $ pyproject-build

Which will generate a whl in the dist folder, that is redistributable for Raspberry Pis that run Raspberry Pi OS.

When installing the whl, it appears that H5PY takes quite some time to install. To follow this process, run it it verbose mode.

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