Mercurial > hg > constant-q-cpp
changeset 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 | 60b34c5c650f |
children | 705be3bb9472 |
files | README |
diffstat | 1 files changed, 36 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/README Wed Jun 21 08:43:59 2017 +0100 +++ b/README Tue Nov 28 09:25:17 2017 +0000 @@ -12,6 +12,17 @@ spaced logarithmically in frequency, rather than linearly. The output bins are therefore linearly spaced in terms of musical pitch. +This implementation is reasonably fast and is causal, operating +block-by-block on the input, though with quite high latency depending +on the frequency range specified. By default it produces output at a +higher time resolution than some other implementations, using multiple +kernel atoms per time block. The inverse transform is approximate +rather than exact (see the paper cited below for details). + + +About this library +------------------ + This library provides: * Forward transform: time-domain to complex Constant-Q bins @@ -28,18 +39,36 @@ * Pitch chromagram obtained by folding a Constant-Q spectrogram around into a single-octave range + +Building the library and plugin +------------------------------- + +To compile this code, use "make -f <file>" where <file> is one of +Makefile.linux, Makefile.osx, Makefile.mingw32 depending on +platform. These files set up some flags and include Makefile.inc, +which defines the input files and so forth. You could equally write +your own Makefile which does the same. + +The Vamp plugin part of the build expects to find a compiled version +of the Vamp Plugin SDK in a neighbouring folder (../vamp-plugin-sdk). +The unit tests also require Boost headers to be available. + +Note that this code uses the KissFFT library (compiled from source +bundled here) in its non-default double-precision mode via the use of +the flag -Dkiss_fft_scalar=double in Makefile.inc. If you want to +build this code using an external KissFFT library or custom build +scripts, you may need to do some work to ensure you have the right +configuration. + + +Credits +------- + The method is drawn from Christian Schörkhuber and Anssi Klapuri, "Constant-Q transform toolbox for music processing", SMC 2010. See the file CITATION for details. If you use this code in research work, please cite this paper. -The implementation is reasonably fast and is causal, operating -block-by-block on the input, though with quite high latency -depending on the frequency range specified. By default it produces -output at a higher time resolution than some other implementations, -using multiple kernel atoms per time block. The inverse transform is -approximate rather than exact (see the paper for details). - The C++ implementation is by Chris Cannam, Copyright 2014-2015 Queen Mary, University of London.