/wavelet

Wavelet - A library for online estimation of the Continuous Wavelet Transform

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Wavelet - A library for online estimation of the Continuous Wavelet Transform

wavelet is a cross-platform c++ library for online estimation of the Continuous Wavelet Transform (CWT). The online estimation is based on a filterbank implementation of the CWT with minimal delay per scale and optimization based on multi-rate computation. The library also allows for offline estimation of the CWT using FFT.

The following wavelets are currently implemented:

  • Complex Morlet Wavelet (also called Gabor wavelet)
  • Paul wavelet

Contact

Jules Françoise: jules.francoise@ircam.fr

author

This code has been authored by Jules Françoise in the framework of the SkAT-VG European project, with Frederic Bevilacqua, in the Sound Music Movement Interaction team of the STMS Lab - IRCAM - CNRS - UPMC (2011-2015).

Copyright

Copyright (C) 2015 Ircam-Centre Pompidou.

Licence

This project is released under the GPLv3 license. For commercial applications, a proprietary license is available upon request to Frederick Rousseau frederick.rousseau@ircam.fr.

Wavelet is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Wavelet is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with Wavelet. If not, see http://www.gnu.org/licenses/.

Dependencies & Compatibiliy

The library uses a subset of c++11 functions. It depends on the open-source matrix library Armadillo for linear algebra and FFT (only required for offline computation), Boost (header-only), and Catch for unit-testing.

Download

The source code is available on Github: https://github.com/Ircam-RnD/wavelet

The online transform is also implemented as a PiPo external for Cycling'74 Max.

Documentation

The full documentation is available on Github Pages: http://ircam-rnd.github.io/wavelet/

Compilation and Usage

Dependencies

To compile the library, you need the following dependencies installed:

Compiling as a static/dynamic library

XCode

See the xcode project in "ide/xcode/"

CMake

The library can be built using CMake. In the root directory, type the following command to generate the Makefiles:

cmake . -G"Unix Makefiles"

The following commands can be used to build the static library and run the unit tests, and generate the documentation:

make
make tests

The following commands can be used to generate the developer documentation and the api documentation:

make doc
make docapi

Usage

The header file "wavelet_all.h" includes all useful headers of the library.

Building the Python Library

Dependencies

Building

The python module can be built using CMake. In the python directory, type the following command to generate the Makefiles and build the python module:

cmake . -G"Unix Makefiles"
make

The module should be installed in "${wavelet_root}/python/bin/"