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 22f41b1583
Some checks reported errors
continuous-integration/drone/push Build was killed
Build test split arch
2023-01-12 14:11:12 +01:00
cmake Textual improvements. Formatting (Neoformat) improvements. Let DataTypeDescriptor be a reference (to a global const std map in Daq class. Improved naming of certain functions. Better DaqData implementation, now we make sure memory alignment is good at all times. Switched functions arguments in DaqData constructor to comply with all other cases of first frame, then channel. Better naming of stream in RtAudio. Better handling of faulty function calling in RtAudio start(). Bugfix in RtAudio, did call right Daq::dtypeDescr() function --> result was that only first channel was copied to all channels. Added extra check in StreamMgr. Removed unnecessary TypedDaqData class. Use a safe queue in threaded in data handler. We can now remove the Boost code for that. 2022-10-10 19:17:38 +02:00
examples Cleaned up example code 2022-10-10 19:29:24 +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 DaqConfiguration(s) back in place. Time to couple some stuff to ACME 2022-08-01 17:26:22 +02:00
src/lasp Bugfix: FilterBankDesigner now always returns second order sections with shape (SOS_ORDER, 6), even for the high pass section. Expanded the third octave bank compliance test. Since it passed for all common sample rates, I removed the warning that the filters might be non-compliant for fs unequal to 48 kHz. 2023-01-09 11:59:48 +01:00
test Bugfix: FilterBankDesigner now always returns second order sections with shape (SOS_ORDER, 6), even for the high pass section. Expanded the third octave bank compliance test. Since it passed for all common sample rates, I removed the warning that the filters might be non-compliant for fs unequal to 48 kHz. 2023-01-09 11:59:48 +01:00
third_party Removed Boost dependency 2022-10-11 09:53:50 +02:00
.drone.yml Build test split arch 2023-01-12 14:11:12 +01: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 Merged Pybind11 branch. It is more ~ less ready 2022-10-06 21:45:36 +02:00
.gitmodules Added RtAudio and UlDAQ as subprojects that are compiled in. Fixed proper connection of UlDAQ. Set default sensitity to 1.0 for a new DaqChannel. Segfault bug fixed in DaqData::copyToRaw. Scan in background for devices when StreamMgr() is initialized. Fixed bug in storing of DaqConfigs to lasp_shelve. Set RtAudio to 5.2.0. 2022-10-05 11:27:46 +02:00
CMakeLists.txt Added ARMA_NO_DEBUG flag for release mode 2022-10-18 22:31:25 +02:00
Doxyfile Updated pyproject and doxyfile, and readme 2022-09-22 10:11:47 +02:00
LICENSE Initial commit 2018-03-05 20:58:03 +01:00
pyproject.toml Textual improvements. Formatting (Neoformat) improvements. Let DataTypeDescriptor be a reference (to a global const std map in Daq class. Improved naming of certain functions. Better DaqData implementation, now we make sure memory alignment is good at all times. Switched functions arguments in DaqData constructor to comply with all other cases of first frame, then channel. Better naming of stream in RtAudio. Better handling of faulty function calling in RtAudio start(). Bugfix in RtAudio, did call right Daq::dtypeDescr() function --> result was that only first channel was copied to all channels. Added extra check in StreamMgr. Removed unnecessary TypedDaqData class. Use a safe queue in threaded in data handler. We can now remove the Boost code for that. 2022-10-10 19:17:38 +02:00
pytest.ini Removed old testing code. Improved Doxyfile, added logo to Doxygen. Added pytest testing config. 2022-09-03 16:07:44 +02:00
README.md Further on... 2023-01-12 12:31:12 +01:00
requirements.txt Further on... 2023-01-12 12:31:12 +01:00
setup.py Textual improvements. Formatting (Neoformat) improvements. Let DataTypeDescriptor be a reference (to a global const std map in Daq class. Improved naming of certain functions. Better DaqData implementation, now we make sure memory alignment is good at all times. Switched functions arguments in DaqData constructor to comply with all other cases of first frame, then channel. Better naming of stream in RtAudio. Better handling of faulty function calling in RtAudio start(). Bugfix in RtAudio, did call right Daq::dtypeDescr() function --> result was that only first channel was copied to all channels. Added extra check in StreamMgr. Removed unnecessary TypedDaqData class. Use a safe queue in threaded in data handler. We can now remove the Boost code for that. 2022-10-10 19:17:38 +02:00

Library for Acoustic Signal Processing

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:

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