annotate README @ 196:da283326bcd3 tip master

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