Chris@366: Chris@366: Constant-Q Library Chris@366: ================== Chris@366: Chris@366: A C++ library and Vamp plugin implementing the Constant-Q transform Chris@366: of a time-domain signal. Chris@366: Chris@366: https://code.soundsoftware.ac.uk/projects/constant-q-cpp Chris@366: Chris@366: The Constant-Q transform is a time-to-frequency-domain transform Chris@366: related to the short-time Fourier transform, but with output bins Chris@366: spaced logarithmically in frequency, rather than linearly. The output Chris@366: bins are therefore linearly spaced in terms of musical pitch. Chris@366: Chris@366: This library provides: Chris@366: Chris@366: * Forward transform: time-domain to complex Constant-Q bins Chris@366: * Forward spectrogram: time-domain to interpolated Constant-Q Chris@366: magnitude spectrogram Chris@366: * Inverse transform: complex Constant-Q bins to time domain Chris@366: Chris@366: The Vamp plugin provides: Chris@366: Chris@366: * Constant-Q magnitude spectrogram with high and low frequency Chris@366: extents defined in Hz Chris@366: * Constant-Q magnitude spectrogram with high and low frequency Chris@366: extents defined as MIDI pitch values Chris@366: * Pitch chromagram obtained by folding a Constant-Q spectrogram Chris@366: around into a single-octave range Chris@366: Chris@366: The method is drawn from Christian Schörkhuber and Anssi Klapuri, Chris@366: "Constant-Q transform toolbox for music processing", SMC 2010. See the Chris@366: file CITATION for details. If you use this code in research work, Chris@366: please cite this paper. Chris@366: Chris@366: The implementation is reasonably fast and is causal, operating Chris@366: block-by-block on the input, though with quite high latency Chris@366: depending on the frequency range specified. By default it produces Chris@366: output at a higher time resolution than some other implementations, Chris@366: using multiple kernel atoms per time block. The inverse transform is Chris@366: approximate rather than exact (see the paper for details). Chris@366: Chris@366: The C++ implementation is by Chris Cannam, Copyright 2014-2015 Queen Chris@366: Mary, University of London. Chris@366: Chris@366: The library is provided under a liberal BSD/MIT-style open source Chris@366: licence. See the file COPYING for more information. Chris@366: