c@126
|
1
|
c@126
|
2 Constant-Q Library
|
c@126
|
3 ==================
|
c@126
|
4
|
c@130
|
5 A C++ library and Vamp plugin implementing the Constant-Q transform
|
c@130
|
6 of a time-domain signal.
|
c@126
|
7
|
c@126
|
8 https://code.soundsoftware.ac.uk/projects/constant-q-cpp
|
c@126
|
9
|
c@126
|
10 The Constant-Q transform is a time-to-frequency-domain transform
|
c@126
|
11 related to the short-time Fourier transform, but with output bins
|
c@126
|
12 spaced logarithmically in frequency, rather than linearly. The output
|
c@126
|
13 bins are therefore linearly spaced in terms of musical pitch.
|
c@126
|
14
|
c@126
|
15 This library provides:
|
c@126
|
16
|
c@126
|
17 * Forward transform: time-domain to complex Constant-Q bins
|
c@126
|
18 * Forward spectrogram: time-domain to interpolated Constant-Q
|
c@126
|
19 magnitude spectrogram
|
c@126
|
20 * Inverse transform: complex Constant-Q bins to time domain
|
c@126
|
21
|
c@163
|
22 The Vamp plugin provides:
|
c@163
|
23
|
c@163
|
24 * Constant-Q magnitude spectrogram with high and low frequency
|
c@163
|
25 extents defined in Hz
|
c@163
|
26 * Constant-Q magnitude spectrogram with high and low frequency
|
c@163
|
27 extents defined as MIDI pitch values
|
c@163
|
28 * Pitch chromagram obtained by folding a Constant-Q spectrogram
|
c@163
|
29 around into a single-octave range
|
c@163
|
30
|
c@126
|
31 The method is drawn from Christian Schörkhuber and Anssi Klapuri,
|
c@126
|
32 "Constant-Q transform toolbox for music processing", SMC 2010. See the
|
c@126
|
33 file CITATION for details. If you use this code in research work,
|
c@126
|
34 please cite this paper.
|
c@126
|
35
|
c@126
|
36 The implementation is reasonably fast and is causal, operating
|
c@126
|
37 block-by-block on the input, though with quite high latency
|
c@126
|
38 depending on the frequency range specified. By default it produces
|
c@126
|
39 output at a higher time resolution than some other implementations,
|
c@126
|
40 using multiple kernel atoms per time block. The inverse transform is
|
c@126
|
41 approximate rather than exact (see the paper for details).
|
c@126
|
42
|
c@126
|
43 The C++ implementation is by Chris Cannam, Copyright 2014 Queen Mary,
|
c@126
|
44 University of London.
|
c@126
|
45
|
c@126
|
46 The library is provided under a liberal BSD/MIT-style open source
|
c@126
|
47 licence. See the file COPYING for more information.
|
c@126
|
48
|