comparison README @ 193:8b78ce63f0e1

Docs about building the library
author Chris Cannam <c.cannam@qmul.ac.uk>
date Tue, 28 Nov 2017 09:25:17 +0000
parents 8e64d3da52f5
children
comparison
equal deleted inserted replaced
192:60b34c5c650f 193:8b78ce63f0e1
9 9
10 The Constant-Q transform is a time-to-frequency-domain transform 10 The Constant-Q transform is a time-to-frequency-domain transform
11 related to the short-time Fourier transform, but with output bins 11 related to the short-time Fourier transform, but with output bins
12 spaced logarithmically in frequency, rather than linearly. The output 12 spaced logarithmically in frequency, rather than linearly. The output
13 bins are therefore linearly spaced in terms of musical pitch. 13 bins are therefore linearly spaced in terms of musical pitch.
14
15 This implementation is reasonably fast and is causal, operating
16 block-by-block on the input, though with quite high latency depending
17 on the frequency range specified. By default it produces output at a
18 higher time resolution than some other implementations, using multiple
19 kernel atoms per time block. The inverse transform is approximate
20 rather than exact (see the paper cited below for details).
21
22
23 About this library
24 ------------------
14 25
15 This library provides: 26 This library provides:
16 27
17 * Forward transform: time-domain to complex Constant-Q bins 28 * Forward transform: time-domain to complex Constant-Q bins
18 * Forward spectrogram: time-domain to interpolated Constant-Q 29 * Forward spectrogram: time-domain to interpolated Constant-Q
26 * Constant-Q magnitude spectrogram with high and low frequency 37 * Constant-Q magnitude spectrogram with high and low frequency
27 extents defined as MIDI pitch values 38 extents defined as MIDI pitch values
28 * Pitch chromagram obtained by folding a Constant-Q spectrogram 39 * Pitch chromagram obtained by folding a Constant-Q spectrogram
29 around into a single-octave range 40 around into a single-octave range
30 41
42
43 Building the library and plugin
44 -------------------------------
45
46 To compile this code, use "make -f <file>" where <file> is one of
47 Makefile.linux, Makefile.osx, Makefile.mingw32 depending on
48 platform. These files set up some flags and include Makefile.inc,
49 which defines the input files and so forth. You could equally write
50 your own Makefile which does the same.
51
52 The Vamp plugin part of the build expects to find a compiled version
53 of the Vamp Plugin SDK in a neighbouring folder (../vamp-plugin-sdk).
54 The unit tests also require Boost headers to be available.
55
56 Note that this code uses the KissFFT library (compiled from source
57 bundled here) in its non-default double-precision mode via the use of
58 the flag -Dkiss_fft_scalar=double in Makefile.inc. If you want to
59 build this code using an external KissFFT library or custom build
60 scripts, you may need to do some work to ensure you have the right
61 configuration.
62
63
64 Credits
65 -------
66
31 The method is drawn from Christian Schörkhuber and Anssi Klapuri, 67 The method is drawn from Christian Schörkhuber and Anssi Klapuri,
32 "Constant-Q transform toolbox for music processing", SMC 2010. See the 68 "Constant-Q transform toolbox for music processing", SMC 2010. See the
33 file CITATION for details. If you use this code in research work, 69 file CITATION for details. If you use this code in research work,
34 please cite this paper. 70 please cite this paper.
35
36 The implementation is reasonably fast and is causal, operating
37 block-by-block on the input, though with quite high latency
38 depending on the frequency range specified. By default it produces
39 output at a higher time resolution than some other implementations,
40 using multiple kernel atoms per time block. The inverse transform is
41 approximate rather than exact (see the paper for details).
42 71
43 The C++ implementation is by Chris Cannam, Copyright 2014-2015 Queen 72 The C++ implementation is by Chris Cannam, Copyright 2014-2015 Queen
44 Mary, University of London. 73 Mary, University of London.
45 74
46 The library is provided under a liberal BSD/MIT-style open source 75 The library is provided under a liberal BSD/MIT-style open source