changeset 126:b87290781071

README file, some text tweaks, avoid compiler warning
author Chris Cannam <c.cannam@qmul.ac.uk>
date Fri, 16 May 2014 09:06:34 +0100
parents b3f72e67e543
children 8996465e39fc
files COPYING README src/dsp/MathUtilities.cpp
diffstat 3 files changed, 42 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/COPYING	Thu May 15 15:24:56 2014 +0100
+++ b/COPYING	Fri May 16 09:06:34 2014 +0100
@@ -1,5 +1,5 @@
 
-This library is provided to you under the following licence:
+This library is distributed under the following licence:
 
     Copyright (c) 2013-2014 Queen Mary, University of London
 
@@ -28,7 +28,7 @@
     use or other dealings in this Software without prior written
     authorization.
 
-The code in src/ext/kissfft is under the following licence:
+The code in src/ext/kissfft is distributed under the following licence:
 
     Copyright (c) 2003-2010 Mark Borgerding
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/README	Fri May 16 09:06:34 2014 +0100
@@ -0,0 +1,39 @@
+
+Constant-Q Library
+==================
+
+A C++ library and Vamp plugin implementing the Constant-Q transform of
+a time-domain signal.
+
+https://code.soundsoftware.ac.uk/projects/constant-q-cpp
+
+The Constant-Q transform is a time-to-frequency-domain transform
+related to the short-time Fourier transform, but with output bins
+spaced logarithmically in frequency, rather than linearly. The output
+bins are therefore linearly spaced in terms of musical pitch.
+
+This library provides:
+
+ * Forward transform: time-domain to complex Constant-Q bins
+ * Forward spectrogram: time-domain to interpolated Constant-Q
+   magnitude spectrogram
+ * Inverse transform: complex Constant-Q bins to time domain
+
+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 Queen Mary,
+University of London.
+
+The library is provided under a liberal BSD/MIT-style open source
+licence. See the file COPYING for more information.
+
--- a/src/dsp/MathUtilities.cpp	Thu May 15 15:24:56 2014 +0100
+++ b/src/dsp/MathUtilities.cpp	Fri May 16 09:06:34 2014 +0100
@@ -105,7 +105,7 @@
     if (len == 0) return 0;
     
     std::vector<double> scratch;
-    for (int i = 0; i < len; ++i) scratch.push_back(src[i]);
+    for (int i = 0; i < (int)len; ++i) scratch.push_back(src[i]);
     std::sort(scratch.begin(), scratch.end());
 
     int middle = len/2;