changeset 118:4a354c18e688

* Make chromagram and constant-Q plugins start at a somewhat higher low frequency, by default, for speed * Add adaptive spectrogram and DWT to the RDF descriptions, and update version numbers, copyrights etc (Version numbers should now all be correct for the next, 1.6 release)
author Chris Cannam <c.cannam@qmul.ac.uk>
date Fri, 05 Jun 2009 15:22:04 +0000
parents 2199486d2187
children 2416ef0e9319
files plugins/ChromagramPlugin.cpp plugins/ConstantQSpectrogram.cpp plugins/KeyDetect.cpp plugins/MFCCPlugin.cpp plugins/OnsetDetect.cpp plugins/SegmenterPlugin.cpp plugins/SimilarityPlugin.cpp plugins/TonalChangeDetect.cpp qm-vamp-plugins.n3
diffstat 9 files changed, 263 insertions(+), 39 deletions(-) [+]
line wrap: on
line diff
--- a/plugins/ChromagramPlugin.cpp	Tue Jun 02 11:26:31 2009 +0000
+++ b/plugins/ChromagramPlugin.cpp	Fri Jun 05 15:22:04 2009 +0000
@@ -23,7 +23,7 @@
     m_step(0),
     m_block(0)
 {
-    m_minMIDIPitch = 12;
+    m_minMIDIPitch = 36;
     m_maxMIDIPitch = 96;
     m_tuningFrequency = 440;
     m_normalise = MathUtilities::NormaliseNone;
@@ -86,7 +86,7 @@
 string
 ChromagramPlugin::getCopyright() const
 {
-    return "Plugin by Chris Cannam and Christian Landone.  Copyright (c) 2006-2008 QMUL - All Rights Reserved";
+    return "Plugin by Chris Cannam and Christian Landone.  Copyright (c) 2006-2009 QMUL - All Rights Reserved";
 }
 
 ChromagramPlugin::ParameterList
@@ -101,7 +101,7 @@
     desc.description = "MIDI pitch corresponding to the lowest frequency to be included in the chromagram";
     desc.minValue = 0;
     desc.maxValue = 127;
-    desc.defaultValue = 12;
+    desc.defaultValue = 36;
     desc.isQuantized = true;
     desc.quantizeStep = 1;
     list.push_back(desc);
@@ -132,7 +132,7 @@
     desc.unit = "bins";
     desc.description = "Number of constant-Q transform bins per octave, and the number of bins for the chromagram outputs";
     desc.minValue = 2;
-    desc.maxValue = 960;
+    desc.maxValue = 480;
     desc.defaultValue = 12;
     desc.isQuantized = true;
     desc.quantizeStep = 1;
--- a/plugins/ConstantQSpectrogram.cpp	Tue Jun 02 11:26:31 2009 +0000
+++ b/plugins/ConstantQSpectrogram.cpp	Fri Jun 05 15:22:04 2009 +0000
@@ -80,13 +80,13 @@
 int
 ConstantQSpectrogram::getPluginVersion() const
 {
-    return 2;
+    return 3;
 }
 
 string
 ConstantQSpectrogram::getCopyright() const
 {
-    return "Plugin by Chris Cannam and Christian Landone.  Copyright (c) 2006-2008 QMUL - All Rights Reserved";
+    return "Plugin by Chris Cannam and Christian Landone.  Copyright (c) 2006-2009 QMUL - All Rights Reserved";
 }
 
 ConstantQSpectrogram::ParameterList
@@ -121,8 +121,8 @@
     desc.name = "Tuning Frequency";
     desc.unit = "Hz";
     desc.description = "Frequency of concert A";
-    desc.minValue = 420;
-    desc.maxValue = 460;
+    desc.minValue = 360;
+    desc.maxValue = 500;
     desc.defaultValue = 440;
     desc.isQuantized = false;
     list.push_back(desc);
@@ -132,7 +132,7 @@
     desc.unit = "bins";
     desc.description = "Number of constant-Q transform bins per octave";
     desc.minValue = 2;
-    desc.maxValue = 48;
+    desc.maxValue = 480;
     desc.defaultValue = 12;
     desc.isQuantized = true;
     desc.quantizeStep = 1;
--- a/plugins/KeyDetect.cpp	Tue Jun 02 11:26:31 2009 +0000
+++ b/plugins/KeyDetect.cpp	Fri Jun 05 15:22:04 2009 +0000
@@ -70,13 +70,13 @@
 int
 KeyDetector::getPluginVersion() const
 {
-    return 3;
+    return 4;
 }
 
 string
 KeyDetector::getCopyright() const
 {
-    return "Plugin by Katy Noland and Christian Landone.  Copyright (c) 2006-2008 QMUL - All Rights Reserved";
+    return "Plugin by Katy Noland and Christian Landone.  Copyright (c) 2006-2009 QMUL - All Rights Reserved";
 }
 
 KeyDetector::ParameterList
--- a/plugins/MFCCPlugin.cpp	Tue Jun 02 11:26:31 2009 +0000
+++ b/plugins/MFCCPlugin.cpp	Fri Jun 05 15:22:04 2009 +0000
@@ -83,7 +83,7 @@
 string
 MFCCPlugin::getCopyright() const
 {
-    return "Plugin by Nicolas Chetry and Chris Cannam.  Copyright (c) 2008 QMUL - All Rights Reserved";
+    return "Plugin by Nicolas Chetry and Chris Cannam.  Copyright (c) 2009 QMUL - All Rights Reserved";
 }
 
 MFCCPlugin::ParameterList
--- a/plugins/OnsetDetect.cpp	Tue Jun 02 11:26:31 2009 +0000
+++ b/plugins/OnsetDetect.cpp	Fri Jun 05 15:22:04 2009 +0000
@@ -90,7 +90,7 @@
 string
 OnsetDetector::getCopyright() const
 {
-    return "Plugin by Christian Landone, Chris Duxbury and Juan Pablo Bello.  Copyright (c) 2006-2008 QMUL - All Rights Reserved";
+    return "Plugin by Christian Landone, Chris Duxbury and Juan Pablo Bello.  Copyright (c) 2006-2009 QMUL - All Rights Reserved";
 }
 
 OnsetDetector::ParameterList
--- a/plugins/SegmenterPlugin.cpp	Tue Jun 02 11:26:31 2009 +0000
+++ b/plugins/SegmenterPlugin.cpp	Fri Jun 05 15:22:04 2009 +0000
@@ -65,7 +65,7 @@
 string
 SegmenterPlugin::getCopyright() const
 {
-    return "Plugin by Mark Levy.  Copyright (c) 2006-2008 QMUL - All Rights Reserved";
+    return "Plugin by Mark Levy.  Copyright (c) 2006-2009 QMUL - All Rights Reserved";
 }
 
 bool
--- a/plugins/SimilarityPlugin.cpp	Tue Jun 02 11:26:31 2009 +0000
+++ b/plugins/SimilarityPlugin.cpp	Fri Jun 05 15:22:04 2009 +0000
@@ -3,7 +3,7 @@
 /*
  * SimilarityPlugin.cpp
  *
- * Copyright 2008 Centre for Digital Music, Queen Mary, University of London.
+ * Copyright 2009 Centre for Digital Music, Queen Mary, University of London.
  * All rights reserved.
  */
 
@@ -104,7 +104,7 @@
 string
 SimilarityPlugin::getCopyright() const
 {
-    return "Plugin by Mark Levy, Kurt Jacobson and Chris Cannam.  Copyright (c) 2008 QMUL - All Rights Reserved";
+    return "Plugin by Mark Levy, Kurt Jacobson and Chris Cannam.  Copyright (c) 2009 QMUL - All Rights Reserved";
 }
 
 size_t
--- a/plugins/TonalChangeDetect.cpp	Tue Jun 02 11:26:31 2009 +0000
+++ b/plugins/TonalChangeDetect.cpp	Fri Jun 05 15:22:04 2009 +0000
@@ -104,7 +104,7 @@
 
 std::string TonalChangeDetect::getCopyright() const
 {
-    return "Plugin by Martin Gasser and Christopher Harte.  Copyright (c) 2006-2008 QMUL - All Rights Reserved";
+    return "Plugin by Martin Gasser and Christopher Harte.  Copyright (c) 2006-2009 QMUL - All Rights Reserved";
 }
 
 TonalChangeDetect::ParameterList TonalChangeDetect::getParameterDescriptors() const
--- a/qm-vamp-plugins.n3	Tue Jun 02 11:26:31 2009 +0000
+++ b/qm-vamp-plugins.n3	Fri Jun 05 15:22:04 2009 +0000
@@ -15,8 +15,11 @@
 
 :qm-vamp-plugins a  vamp:PluginLibrary ;
     vamp:identifier "qm-vamp-plugins"  ; 
+    vamp:available_plugin plugbase:qm-adaptivespectrogram ; 
+    vamp:available_plugin plugbase:qm-barbeattracker ; 
     vamp:available_plugin plugbase:qm-chromagram ; 
     vamp:available_plugin plugbase:qm-constantq ; 
+    vamp:available_plugin plugbase:qm-dwt ; 
     vamp:available_plugin plugbase:qm-keydetector ; 
     vamp:available_plugin plugbase:qm-mfcc ; 
     vamp:available_plugin plugbase:qm-onsetdetector ; 
@@ -27,16 +30,158 @@
     foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html> ;
     .
 
+plugbase:qm-adaptivespectrogram a   vamp:Plugin ;
+    dc:title              "Adaptive Spectrogram" ;
+    vamp:name             "Adaptive Spectrogram" ;
+    dc:description        """Produce an adaptive spectrogram by adaptive selection from spectrograms at multiple resolutions""" ;
+    foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
+    dc:rights             """Plugin by Wen Xue and Chris Cannam.  Copyright (c) 2009 Wen Xue and QMUL - All Rights Reserved""" ;
+    vamp:identifier       "qm-adaptivespectrogram" ;
+    vamp:vamp_API_version vamp:api_version_2 ;
+    owl:versionInfo       "1" ;
+    vamp:input_domain     vamp:TimeDomain ;
+
+    vamp:parameter   plugbase:qm-adaptivespectrogram_param_n ;
+    vamp:parameter   plugbase:qm-adaptivespectrogram_param_w ;
+    vamp:parameter   plugbase:qm-adaptivespectrogram_param_coarse ;
+    vamp:parameter   plugbase:qm-adaptivespectrogram_param_threaded ;
+
+    vamp:output      plugbase:qm-adaptivespectrogram_output_output ;
+    .
+plugbase:qm-adaptivespectrogram_param_n a  vamp:QuantizedParameter ;
+    vamp:identifier     "n" ;
+    dc:title            "Number of resolutions" ;
+    dc:format           "" ;
+    vamp:min_value       2 ;
+    vamp:max_value       10 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   3 ;
+    vamp:value_names     ();
+    .
+plugbase:qm-adaptivespectrogram_param_w a  vamp:QuantizedParameter ;
+    vamp:identifier     "w" ;
+    dc:title            "Smallest resolution" ;
+    dc:format           "" ;
+    vamp:min_value       1 ;
+    vamp:max_value       14 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   9 ;
+    vamp:value_names     ( "2" "4" "8" "16" "32" "64" "128" "256" "512" "1024" "2048" "4096" "8192" "16384");
+    .
+plugbase:qm-adaptivespectrogram_param_coarse a  vamp:QuantizedParameter ;
+    vamp:identifier     "coarse" ;
+    dc:title            "Omit alternate resolutions" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   0 ;
+    vamp:value_names     ();
+    .
+plugbase:qm-adaptivespectrogram_param_threaded a  vamp:QuantizedParameter ;
+    vamp:identifier     "threaded" ;
+    dc:title            "Multi-threaded processing" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   1 ;
+    vamp:value_names     ();
+    .
+plugbase:qm-adaptivespectrogram_output_output a  vamp:DenseOutput ;
+    vamp:identifier       "output" ;
+    dc:title              "Output" ;
+    dc:description        """The output of the plugin"""  ;
+    vamp:unit             "" ;
+    vamp:computes_signal_type  af:Spectrogram ;
+    .
+plugbase:qm-barbeattracker a   vamp:Plugin ;
+    dc:title              "Bar and Beat Tracker" ;
+    vamp:name             "Bar and Beat Tracker" ;
+    dc:description        """Estimate bar and beat locations""" ;
+    foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
+    dc:rights             """Plugin by Matthew Davies, Christian Landone and Chris Cannam.  Copyright (c) 2006-2009 QMUL - All Rights Reserved""" ;
+    vamp:identifier       "qm-barbeattracker" ;
+    vamp:vamp_API_version vamp:api_version_2 ;
+    owl:versionInfo       "1" ;
+    vamp:input_domain     vamp:TimeDomain ;
+
+    vamp:parameter   plugbase:qm-barbeattracker_param_bpb ;
+
+    vamp:output      plugbase:qm-barbeattracker_output_beats ;
+    vamp:output      plugbase:qm-barbeattracker_output_bars ;
+    vamp:output      plugbase:qm-barbeattracker_output_beatcounts ;
+    vamp:output      plugbase:qm-barbeattracker_output_beatsd ;
+    .
+plugbase:qm-barbeattracker_param_bpb a  vamp:QuantizedParameter ;
+    vamp:identifier     "bpb" ;
+    dc:title            "Beats per Bar" ;
+    dc:format           "" ;
+    vamp:min_value       2 ;
+    vamp:max_value       16 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   4 ;
+    vamp:value_names     ();
+    .
+plugbase:qm-barbeattracker_output_beats a  vamp:SparseOutput ;
+    vamp:identifier       "beats" ;
+    dc:title              "Beats" ;
+    dc:description        """Beat locations labelled with metrical position"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    vamp:bin_count        0 ;
+    vamp:sample_type      vamp:VariableSampleRate ;
+    vamp:sample_rate      86.1326 ;
+    vamp:computes_event_type   af:Beat ;
+    .
+plugbase:qm-barbeattracker_output_bars a  vamp:SparseOutput ;
+    vamp:identifier       "bars" ;
+    dc:title              "Bars" ;
+    dc:description        """Bar locations"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    vamp:bin_count        0 ;
+    vamp:sample_type      vamp:VariableSampleRate ;
+    vamp:sample_rate      86.1326 ;
+#   vamp:computes_event_type   <Place event type URI here and uncomment> ;
+    .
+plugbase:qm-barbeattracker_output_beatcounts a  vamp:SparseOutput ;
+    vamp:identifier       "beatcounts" ;
+    dc:title              "Beat Count" ;
+    dc:description        """Beat counter function"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    vamp:bin_count        1 ;
+    vamp:sample_type      vamp:VariableSampleRate ;
+    vamp:sample_rate      86.1326 ;
+#   vamp:computes_event_type   <Place event type URI here and uncomment> ;
+    .
+plugbase:qm-barbeattracker_output_beatsd a  vamp:SparseOutput ;
+    vamp:identifier       "beatsd" ;
+    dc:title              "Beat Spectral Difference" ;
+    dc:description        """Beat spectral difference function used for bar-line detection"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    vamp:bin_count        1 ;
+    vamp:sample_type      vamp:VariableSampleRate ;
+    vamp:sample_rate      86.1326 ;
+#   vamp:computes_signal_type  <Place signal type URI here and uncomment> ;
+    .
 plugbase:qm-chromagram a   vamp:Plugin ;
     dc:title              "Chromagram" ;
     vamp:name             "Chromagram" ;
     dc:description        """Extract a series of tonal chroma vectors from the audio""" ;
     foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-chromagram> ;
     foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
-    dc:rights             """Plugin by Chris Cannam and Christian Landone.  Copyright (c) 2006-2008 QMUL - All Rights Reserved""" ;
+    dc:rights             """Plugin by Chris Cannam and Christian Landone.  Copyright (c) 2006-2009 QMUL - All Rights Reserved""" ;
     vamp:identifier       "qm-chromagram" ;
     vamp:vamp_API_version vamp:api_version_2 ;
-    owl:versionInfo       "3" ;
+    owl:versionInfo       "4" ;
     vamp:input_domain     vamp:FrequencyDomain ;
 
 
@@ -57,7 +202,7 @@
     vamp:max_value       127 ;
     vamp:unit           "MIDI units" ;
     vamp:quantize_step   1  ;
-    vamp:default_value   12 ;
+    vamp:default_value   36 ;
     vamp:value_names     ();
     .
 plugbase:qm-chromagram_param_maxpitch a  vamp:QuantizedParameter ;
@@ -75,8 +220,8 @@
     vamp:identifier     "tuning" ;
     dc:title            "Tuning Frequency" ;
     dc:format           "Hz" ;
-    vamp:min_value       420 ;
-    vamp:max_value       460 ;
+    vamp:min_value       360 ;
+    vamp:max_value       500 ;
     vamp:unit           "Hz"  ;
     vamp:default_value   440 ;
     vamp:value_names     ();
@@ -86,7 +231,7 @@
     dc:title            "Bins per Octave" ;
     dc:format           "bins" ;
     vamp:min_value       2 ;
-    vamp:max_value       48 ;
+    vamp:max_value       480 ;
     vamp:unit           "bins" ;
     vamp:quantize_step   1  ;
     vamp:default_value   12 ;
@@ -131,7 +276,7 @@
     dc:description        """Extract a spectrogram with constant ratio of centre frequency to resolution from the input audio""" ;
     foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-constantq> ;
     foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
-    dc:rights             """Plugin by Chris Cannam and Christian Landone.  Copyright (c) 2006-2008 QMUL - All Rights Reserved""" ;
+    dc:rights             """Plugin by Chris Cannam and Christian Landone.  Copyright (c) 2006-2009 QMUL - All Rights Reserved""" ;
     vamp:identifier       "qm-constantq" ;
     vamp:vamp_API_version vamp:api_version_2 ;
     owl:versionInfo       "2" ;
@@ -172,8 +317,8 @@
     vamp:identifier     "tuning" ;
     dc:title            "Tuning Frequency" ;
     dc:format           "Hz" ;
-    vamp:min_value       420 ;
-    vamp:max_value       460 ;
+    vamp:min_value       360 ;
+    vamp:max_value       500 ;
     vamp:unit           "Hz"  ;
     vamp:default_value   440 ;
     vamp:value_names     ();
@@ -183,7 +328,7 @@
     dc:title            "Bins per Octave" ;
     dc:format           "bins" ;
     vamp:min_value       2 ;
-    vamp:max_value       48 ;
+    vamp:max_value       480 ;
     vamp:unit           "bins" ;
     vamp:quantize_step   1  ;
     vamp:default_value   12 ;
@@ -207,19 +352,88 @@
     vamp:fixed_bin_count  "true" ;
     vamp:unit             "" ;
     vamp:bin_count        1 ;
-    vamp:bin_names        ( "C");
     vamp:computes_signal_type  af:Spectrogram ;
     .
+plugbase:qm-dwt a   vamp:Plugin ;
+    dc:title              "Discrete Wavelet Transform" ;
+    vamp:name             "Discrete Wavelet Transform" ;
+    dc:description        """Visualisation by scalogram""" ;
+    foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
+    dc:rights             """Plugin by Thomas Wilmering.  Copyright (c) 2009 Thomas Wilmering and QMUL - All Rights Reserved""" ;
+    vamp:identifier       "qm-dwt" ;
+    vamp:vamp_API_version vamp:api_version_2 ;
+    owl:versionInfo       "1" ;
+    vamp:input_domain     vamp:TimeDomain ;
+
+    vamp:parameter   plugbase:qm-dwt_param_scales ;
+    vamp:parameter   plugbase:qm-dwt_param_wavelet ;
+    vamp:parameter   plugbase:qm-dwt_param_threshold ;
+    vamp:parameter   plugbase:qm-dwt_param_absolute ;
+
+    vamp:output      plugbase:qm-dwt_output_wcoeff ;
+    .
+plugbase:qm-dwt_param_scales a  vamp:QuantizedParameter ;
+    vamp:identifier     "scales" ;
+    dc:title            "Scales" ;
+    dc:format           "" ;
+    vamp:min_value       1 ;
+    vamp:max_value       16 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   10 ;
+    vamp:value_names     ();
+    .
+plugbase:qm-dwt_param_wavelet a  vamp:QuantizedParameter ;
+    vamp:identifier     "wavelet" ;
+    dc:title            "Wavelet" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       42 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   0 ;
+    vamp:value_names     ( "Haar" "Daubechies 2" "Daubechies 3" "Daubechies 4" "Daubechies 5" "Daubechies 6" "Daubechies 7" "Daubechies 8" "Daubechies 9" "Daubechies 10" "Daubechies 20" "Daubechies 40" "Symlet 2" "Symlet 3" "Symlet 4" "Symlet 5" "Symlet 6" "Symlet 7" "Symlet 8" "Symlet 9" "Symlet 10" "Symlet 20" "Symlet 30" "Coiflet 1" "Coiflet 2" "Coiflet 3" "Coiflet 4" "Coiflet 5" "Biorthogonal 1.3" "Biorthogonal 1.5" "Biorthogonal 2.2" "Biorthogonal 2.4" "Biorthogonal 2.6" "Biorthogonal 2.8" "Biorthogonal 3.1" "Biorthogonal 3.3" "Biorthogonal 3.5" "Biorthogonal 3.7" "Biorthogonal 3.9" "Biorthogonal 4.4" "Biorthogonal 5.5" "Biorthogonal 6.8" "Meyer");
+    .
+plugbase:qm-dwt_param_threshold a  vamp:Parameter ;
+    vamp:identifier     "threshold" ;
+    dc:title            "Threshold" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       0.01 ;
+    vamp:unit           ""  ;
+    vamp:default_value   0 ;
+    vamp:value_names     ();
+    .
+plugbase:qm-dwt_param_absolute a  vamp:QuantizedParameter ;
+    vamp:identifier     "absolute" ;
+    dc:title            "Absolute values" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   0 ;
+    vamp:value_names     ();
+    .
+plugbase:qm-dwt_output_wcoeff a  vamp:DenseOutput ;
+    vamp:identifier       "wcoeff" ;
+    dc:title              "Wavelet Coefficients" ;
+    dc:description        """Wavelet coefficients"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    vamp:bin_count        10 ;
+#   vamp:computes_signal_type  <Place signal type URI here and uncomment> ;
+    .
 plugbase:qm-keydetector a   vamp:Plugin ;
     dc:title              "Key Detector" ;
     vamp:name             "Key Detector" ;
     dc:description        """Estimate the key of the music""" ;
     foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-keydetector> ;
     foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
-    dc:rights             """Plugin by Katy Noland and Christian Landone.  Copyright (c) 2006-2008 QMUL - All Rights Reserved""" ;
+    dc:rights             """Plugin by Katy Noland and Christian Landone.  Copyright (c) 2006-2009 QMUL - All Rights Reserved""" ;
     vamp:identifier       "qm-keydetector" ;
     vamp:vamp_API_version vamp:api_version_2 ;
-    owl:versionInfo       "3" ;
+    owl:versionInfo       "4" ;
     vamp:input_domain     vamp:TimeDomain ;
 
     vamp:parameter   plugbase:qm-keydetector_param_tuning ;
@@ -314,8 +528,6 @@
     vamp:unit             "" ;
     vamp:bin_count        25 ;
     vamp:bin_names        ( "F# / Gb major" "B major" "E major" "A major" "D major" "G major" "C major" "F major" "Bb major" "Eb major" "Ab major" "Db major" " " "Eb / D# minor" "G# minor" "C# minor" "F# minor" "B minor" "E minor" "A minor" "D minor" "G minor" "C minor" "F minor" "Bb minor");
-#   vamp:computes_event_type   <Place event type URI here and uncomment> ;
-#   vamp:computes_feature      <Place feature attribute URI here and uncomment> ;
 #   vamp:computes_signal_type  <Place signal type URI here and uncomment> ;
     .
 plugbase:qm-mfcc a   vamp:Plugin ;
@@ -324,7 +536,7 @@
     dc:description        """Calculate a series of MFCC vectors from the audio""" ;
     foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-mfcc> ;
     foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
-    dc:rights             """Plugin by Nicolas Chetry and Chris Cannam.  Copyright (c) 2008 QMUL - All Rights Reserved""" ;
+    dc:rights             """Plugin by Nicolas Chetry and Chris Cannam.  Copyright (c) 2009 QMUL - All Rights Reserved""" ;
     vamp:identifier       "qm-mfcc" ;
     vamp:vamp_API_version vamp:api_version_2 ;
     owl:versionInfo       "1" ;
@@ -400,7 +612,7 @@
     dc:description        """Estimate individual note onset positions""" ;
     foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-onsetdetector> ;
     foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
-    dc:rights             """Plugin by Christian Landone, Chris Duxbury and Juan Pablo Bello.  Copyright (c) 2006-2008 QMUL - All Rights Reserved""" ;
+    dc:rights             """Plugin by Christian Landone, Chris Duxbury and Juan Pablo Bello.  Copyright (c) 2006-2009 QMUL - All Rights Reserved""" ;
     vamp:identifier       "qm-onsetdetector" ;
     vamp:vamp_API_version vamp:api_version_2 ;
     owl:versionInfo       "2" ;
@@ -488,7 +700,7 @@
     dc:description        """Divide the track into a sequence of consistent segments""" ;
     foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-segmenter> ;
     foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
-    dc:rights             """Plugin by Mark Levy.  Copyright (c) 2006-2008 QMUL - All Rights Reserved""" ;
+    dc:rights             """Plugin by Mark Levy.  Copyright (c) 2006-2009 QMUL - All Rights Reserved""" ;
     vamp:identifier       "qm-segmenter" ;
     vamp:vamp_API_version vamp:api_version_2 ;
     owl:versionInfo       "2" ;
@@ -556,7 +768,7 @@
     dc:description        """Return a distance matrix for similarity between the input audio channels""" ;
     foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-similarity> ;
     foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
-    dc:rights             """Plugin by Mark Levy, Kurt Jacobson and Chris Cannam.  Copyright (c) 2008 QMUL - All Rights Reserved""" ;
+    dc:rights             """Plugin by Mark Levy, Kurt Jacobson and Chris Cannam.  Copyright (c) 2009 QMUL - All Rights Reserved""" ;
     vamp:identifier       "qm-similarity" ;
     vamp:vamp_API_version vamp:api_version_2 ;
     owl:versionInfo       "1" ;
@@ -660,13 +872,14 @@
     dc:description        """Estimate beat locations and tempo""" ;
     foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-tempotracker> ;
     foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
-    dc:rights             """Plugin by Christian Landone and Matthew Davies.  Copyright (c) 2006-2008 QMUL - All Rights Reserved""" ;
+    dc:rights             """Plugin by Christian Landone and Matthew Davies.  Copyright (c) 2006-2009 QMUL - All Rights Reserved""" ;
     vamp:identifier       "qm-tempotracker" ;
     vamp:vamp_API_version vamp:api_version_2 ;
-    owl:versionInfo       "3" ;
+    owl:versionInfo       "4" ;
     vamp:input_domain     vamp:FrequencyDomain ;
 
 
+    vamp:parameter   plugbase:qm-tempotracker_param_method ;
     vamp:parameter   plugbase:qm-tempotracker_param_dftype ;
     vamp:parameter   plugbase:qm-tempotracker_param_whiten ;
 
@@ -674,6 +887,17 @@
     vamp:output      plugbase:qm-tempotracker_output_detection_fn ;
     vamp:output      plugbase:qm-tempotracker_output_tempo ;
     .
+plugbase:qm-tempotracker_param_method a  vamp:QuantizedParameter ;
+    vamp:identifier     "method" ;
+    dc:title            "Beat Tracking Method" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   1 ;
+    vamp:value_names     ( "Old" "New");
+    .
 plugbase:qm-tempotracker_param_dftype a  vamp:QuantizedParameter ;
     vamp:identifier     "dftype" ;
     dc:title            "Onset Detection Function Type" ;
@@ -736,7 +960,7 @@
     dc:description        """Detect and return the positions of harmonic changes such as chord boundaries""" ;
     foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-tonalchange> ;
     foaf:maker            [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here
-    dc:rights             """Plugin by Martin Gasser and Christopher Harte.  Copyright (c) 2006-2008 QMUL - All Rights Reserved""" ;
+    dc:rights             """Plugin by Martin Gasser and Christopher Harte.  Copyright (c) 2006-2009 QMUL - All Rights Reserved""" ;
     vamp:identifier       "qm-tonalchange" ;
     vamp:vamp_API_version vamp:api_version_2 ;
     owl:versionInfo       "1" ;