Mercurial > hg > mirex2013
changeset 82:7ddbe4d8b23c
Versioning + abstract for key detector
author | Chris Cannam |
---|---|
date | Wed, 31 Jul 2019 10:54:05 +0100 |
parents | f14a44513481 |
children | 7e8238d78414 |
files | audio_key_detection/qm-keydetector-v4/README.txt audio_key_detection/qm-keydetector-v4/qm-keydetector.sh audio_key_detection/qm-keydetector-v4/qm-keydetector.ttl audio_key_detection/qm-keydetector-v4/qm-vamp-plugins.n3 audio_key_detection/qm-keydetector-v4/qm-vamp-plugins.so audio_key_detection/qm-keydetector-v5/README.txt audio_key_detection/qm-keydetector-v5/qm-keydetector.ttl audio_key_detection/qm-keydetector/README.txt audio_key_detection/qm-keydetector/qm-keydetector.sh audio_key_detection/qm-keydetector/qm-keydetector.ttl audio_key_detection/qm-keydetector/qm-vamp-plugins.n3 audio_key_detection/qm-keydetector/qm-vamp-plugins.so vamp-plugins_abstract/qmvamp-mirex2019.tex |
diffstat | 13 files changed, 1213 insertions(+), 1190 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/audio_key_detection/qm-keydetector-v4/README.txt Wed Jul 31 10:54:05 2019 +0100 @@ -0,0 +1,27 @@ +# +# MIREX 2019 submission +# +# QM Key Detector +# Plugin by Katy Noland and Christian Landone. +# Prepared by Chris Cannam, c.cannam@qmul.ac.uk + + +# Architecture + +- Linux 64-bit + +# Dependencies + +- Sonic Annotator v1.5 + http://code.soundsoftware.ac.uk/projects/sonic-annotator/files + +- GNU libc 2.15 or newer, GNU libstdc++ 3.4.15 or newer + +- Typical Unix/GNU shell commands + +# How to run + +In a terminal window run: + +./qm-keydetector.sh input.wav output.txt +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/audio_key_detection/qm-keydetector-v4/qm-keydetector.sh Wed Jul 31 10:54:05 2019 +0100 @@ -0,0 +1,52 @@ + +mydir=`dirname "$0"` +infile="$1" +outfile="$2" + +if [ t"$infile" = "t" ] || [ t"$outfile" = "t" ]; then + echo "Usage: $0 infile.wav outfile.txt" + exit 2 +fi + +mkdir -p "$mydir"/out || exit 1 + +echo "Processing input WAV file $infile, writing results to $outfile..." 1>&2 + +# We want output like +# +# Bb<TAB>minor +# +# Our Sonic Annotator output gives us something like that for each +# detected key change (the feature label, in column 4), but we want +# the modal key (modal in the statistical rather than the musical +# sense!) and Sonic Annotator doesn't retain labels for summaries. So +# let's write to a temporary file, retrieve the modal value, then pick +# the label (from earlier in the file) whose value corresponds to it. + +VAMP_PATH="$mydir" sonic-annotator \ + -t "$mydir"/qm-keydetector.ttl \ + -w csv --csv-separator ";" \ + --csv-basedir "$mydir/out" \ + --csv-force \ + -S mode \ + "$infile" || exit 1 + +inbase=`basename "$infile"` +inbase=${inbase%.*} +tempfile="out/${inbase}_vamp_qm-vamp-plugins_qm-keydetector_key.csv" +if [ ! -f "$tempfile" ]; then + echo "Key output file $tempfile not found! bailing out"; exit 1 +fi + +mode=`grep ';mode;' "$tempfile" | awk -F';' '{ print $4; }'` + +cat "$tempfile" | \ + awk -F';' '{ print $2, $3 }' | \ + grep "^$mode \"" | \ + head -n 1 | \ + sed -e 's/^[^"]*"//' -e 's/"[^"]*$//' -e 's,/ [^ ]* ,,' -e 's/ /\t/' \ + > "$outfile" + + + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/audio_key_detection/qm-keydetector-v4/qm-keydetector.ttl Wed Jul 31 10:54:05 2019 +0100 @@ -0,0 +1,18 @@ +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix vamp: <http://purl.org/ontology/vamp/> . +@prefix : <#> . + +:transform a vamp:Transform ; + vamp:plugin <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins#qm-keydetector> ; + vamp:plugin_version "4" ; + vamp:step_size "32768"^^xsd:int ; + vamp:block_size "32768"^^xsd:int ; + vamp:parameter_binding [ + vamp:parameter [ vamp:identifier "length" ] ; + vamp:value "10"^^xsd:float ; + ] ; + vamp:parameter_binding [ + vamp:parameter [ vamp:identifier "tuning" ] ; + vamp:value "440"^^xsd:float ; + ] ; + vamp:output <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins#qm-keydetector_output_key> .
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/audio_key_detection/qm-keydetector-v4/qm-vamp-plugins.n3 Wed Jul 31 10:54:05 2019 +0100 @@ -0,0 +1,1088 @@ +@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . +@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . +@prefix vamp: <http://purl.org/ontology/vamp/> . +@prefix plugbase: <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins#> . +@prefix owl: <http://www.w3.org/2002/07/owl#> . +@prefix dc: <http://purl.org/dc/elements/1.1/> . +@prefix af: <http://purl.org/ontology/af/> . +@prefix foaf: <http://xmlns.com/foaf/0.1/> . +@prefix cc: <http://web.resource.org/cc/> . +@prefix : <#> . + +<> a vamp:PluginDescription ; + foaf:maker <http://www.vamp-plugins.org/doap.rdf#template-generator> ; + foaf:primaryTopic <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins> . + +: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 ; + vamp:available_plugin plugbase:qm-segmenter ; + vamp:available_plugin plugbase:qm-similarity ; + vamp:available_plugin plugbase:qm-tempotracker ; + vamp:available_plugin plugbase:qm-tonalchange ; + vamp:available_plugin plugbase:qm-transcription ; + 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-2009 QMUL - All Rights Reserved""" ; + vamp:identifier "qm-chromagram" ; + vamp:vamp_API_version vamp:api_version_2 ; + owl:versionInfo "4" ; + vamp:input_domain vamp:FrequencyDomain ; + + + vamp:parameter plugbase:qm-chromagram_param_minpitch ; + vamp:parameter plugbase:qm-chromagram_param_maxpitch ; + vamp:parameter plugbase:qm-chromagram_param_tuning ; + vamp:parameter plugbase:qm-chromagram_param_bpo ; + vamp:parameter plugbase:qm-chromagram_param_normalization ; + + vamp:output plugbase:qm-chromagram_output_chromagram ; + vamp:output plugbase:qm-chromagram_output_chromameans ; + . +plugbase:qm-chromagram_param_minpitch a vamp:QuantizedParameter ; + vamp:identifier "minpitch" ; + dc:title "Minimum Pitch" ; + dc:format "MIDI units" ; + vamp:min_value 0 ; + vamp:max_value 127 ; + vamp:unit "MIDI units" ; + vamp:quantize_step 1 ; + vamp:default_value 36 ; + vamp:value_names (); + . +plugbase:qm-chromagram_param_maxpitch a vamp:QuantizedParameter ; + vamp:identifier "maxpitch" ; + dc:title "Maximum Pitch" ; + dc:format "MIDI units" ; + vamp:min_value 0 ; + vamp:max_value 127 ; + vamp:unit "MIDI units" ; + vamp:quantize_step 1 ; + vamp:default_value 96 ; + vamp:value_names (); + . +plugbase:qm-chromagram_param_tuning a vamp:Parameter ; + vamp:identifier "tuning" ; + dc:title "Tuning Frequency" ; + dc:format "Hz" ; + vamp:min_value 360 ; + vamp:max_value 500 ; + vamp:unit "Hz" ; + vamp:default_value 440 ; + vamp:value_names (); + . +plugbase:qm-chromagram_param_bpo a vamp:QuantizedParameter ; + vamp:identifier "bpo" ; + dc:title "Bins per Octave" ; + dc:format "bins" ; + vamp:min_value 2 ; + vamp:max_value 480 ; + vamp:unit "bins" ; + vamp:quantize_step 1 ; + vamp:default_value 12 ; + vamp:value_names (); + . +plugbase:qm-chromagram_param_normalization a vamp:QuantizedParameter ; + vamp:identifier "normalization" ; + dc:title "Normalization" ; + dc:format "" ; + vamp:min_value 0 ; + vamp:max_value 2 ; + vamp:unit "" ; + vamp:quantize_step 1 ; + vamp:default_value 0 ; + vamp:value_names ( "None" "Unit Sum" "Unit Maximum"); + . +plugbase:qm-chromagram_output_chromagram a vamp:DenseOutput ; + vamp:identifier "chromagram" ; + dc:title "Chromagram" ; + dc:description "Output of chromagram, as a single vector per process block" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 12 ; + vamp:bin_names ( "C" "C#" "D" "D#" "E" "F" "F#" "G" "G#" "A" "A#" "B"); + vamp:computes_signal_type af:Chromagram ; + . +plugbase:qm-chromagram_output_chromameans a vamp:DenseOutput ; + vamp:identifier "chromameans" ; + dc:title "Chroma Means" ; + dc:description "Mean values of chromagram bins across the duration of the input audio" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 12 ; + vamp:bin_names ( "C" "C#" "D" "D#" "E" "F" "F#" "G" "G#" "A" "A#" "B"); +# 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-constantq a vamp:Plugin ; + dc:title "Constant-Q Spectrogram" ; + vamp:name "Constant-Q Spectrogram" ; + 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-2009 QMUL - All Rights Reserved""" ; + vamp:identifier "qm-constantq" ; + vamp:vamp_API_version vamp:api_version_2 ; + owl:versionInfo "2" ; + vamp:input_domain vamp:FrequencyDomain ; + + + vamp:parameter plugbase:qm-constantq_param_minpitch ; + vamp:parameter plugbase:qm-constantq_param_maxpitch ; + vamp:parameter plugbase:qm-constantq_param_tuning ; + vamp:parameter plugbase:qm-constantq_param_bpo ; + vamp:parameter plugbase:qm-constantq_param_normalized ; + + vamp:output plugbase:qm-constantq_output_constantq ; + . +plugbase:qm-constantq_param_minpitch a vamp:QuantizedParameter ; + vamp:identifier "minpitch" ; + dc:title "Minimum Pitch" ; + dc:format "MIDI units" ; + vamp:min_value 0 ; + vamp:max_value 127 ; + vamp:unit "MIDI units" ; + vamp:quantize_step 1 ; + vamp:default_value 36 ; + vamp:value_names (); + . +plugbase:qm-constantq_param_maxpitch a vamp:QuantizedParameter ; + vamp:identifier "maxpitch" ; + dc:title "Maximum Pitch" ; + dc:format "MIDI units" ; + vamp:min_value 0 ; + vamp:max_value 127 ; + vamp:unit "MIDI units" ; + vamp:quantize_step 1 ; + vamp:default_value 84 ; + vamp:value_names (); + . +plugbase:qm-constantq_param_tuning a vamp:Parameter ; + vamp:identifier "tuning" ; + dc:title "Tuning Frequency" ; + dc:format "Hz" ; + vamp:min_value 360 ; + vamp:max_value 500 ; + vamp:unit "Hz" ; + vamp:default_value 440 ; + vamp:value_names (); + . +plugbase:qm-constantq_param_bpo a vamp:QuantizedParameter ; + vamp:identifier "bpo" ; + dc:title "Bins per Octave" ; + dc:format "bins" ; + vamp:min_value 2 ; + vamp:max_value 480 ; + vamp:unit "bins" ; + vamp:quantize_step 1 ; + vamp:default_value 12 ; + vamp:value_names (); + . +plugbase:qm-constantq_param_normalized a vamp:QuantizedParameter ; + vamp:identifier "normalized" ; + dc:title "Normalized" ; + 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-constantq_output_constantq a vamp:DenseOutput ; + vamp:identifier "constantq" ; + dc:title "Constant-Q Spectrogram" ; + dc:description "Output of constant-Q transform, as a single vector per process block" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 1 ; + 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-2009 QMUL - All Rights Reserved""" ; + vamp:identifier "qm-keydetector" ; + vamp:vamp_API_version vamp:api_version_2 ; + owl:versionInfo "4" ; + vamp:input_domain vamp:TimeDomain ; + + vamp:parameter plugbase:qm-keydetector_param_tuning ; + vamp:parameter plugbase:qm-keydetector_param_length ; + + vamp:output plugbase:qm-keydetector_output_tonic ; + vamp:output plugbase:qm-keydetector_output_mode ; + vamp:output plugbase:qm-keydetector_output_key ; + vamp:output plugbase:qm-keydetector_output_keystrength ; + . +plugbase:qm-keydetector_param_tuning a vamp:Parameter ; + vamp:identifier "tuning" ; + dc:title "Tuning Frequency" ; + dc:format "Hz" ; + vamp:min_value 420 ; + vamp:max_value 460 ; + vamp:unit "Hz" ; + vamp:default_value 440 ; + vamp:value_names (); + . +plugbase:qm-keydetector_param_length a vamp:QuantizedParameter ; + vamp:identifier "length" ; + dc:title "Window Length" ; + dc:format "chroma frames" ; + vamp:min_value 1 ; + vamp:max_value 30 ; + vamp:unit "chroma frames" ; + vamp:quantize_step 1 ; + vamp:default_value 10 ; + vamp:value_names (); + . +plugbase:qm-keydetector_output_tonic a vamp:SparseOutput ; + vamp:identifier "tonic" ; + dc:title "Tonic Pitch" ; + dc:description "Tonic of the estimated key (from C = 1 to B = 12)" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + a vamp:QuantizedOutput ; + vamp:quantize_step 1 ; + a vamp:KnownExtentsOutput ; + vamp:min_value 1 ; + vamp:max_value 12 ; + vamp:bin_count 1 ; + vamp:bin_names ( ""); + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 1.34583 ; +# 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-keydetector_output_mode a vamp:SparseOutput ; + vamp:identifier "mode" ; + dc:title "Key Mode" ; + dc:description "Major or minor mode of the estimated key (major = 0, minor = 1)" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + a vamp:QuantizedOutput ; + vamp:quantize_step 1 ; + a vamp:KnownExtentsOutput ; + vamp:min_value 0 ; + vamp:max_value 1 ; + vamp:bin_count 1 ; + vamp:bin_names ( ""); + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 1.34583 ; +# 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-keydetector_output_key a vamp:SparseOutput ; + vamp:identifier "key" ; + dc:title "Key" ; + dc:description "Estimated key (from C major = 1 to B major = 12 and C minor = 13 to B minor = 24)" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + a vamp:QuantizedOutput ; + vamp:quantize_step 1 ; + a vamp:KnownExtentsOutput ; + vamp:min_value 1 ; + vamp:max_value 24 ; + vamp:bin_count 1 ; + vamp:bin_names ( ""); + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 1.34583 ; + vamp:computes_event_type af:KeyChange ; + . +plugbase:qm-keydetector_output_keystrength a vamp:DenseOutput ; + vamp:identifier "keystrength" ; + dc:title "Key Strength Plot" ; + dc:description "Correlation of the chroma vector with stored key profile for each major and minor key" ; + vamp:fixed_bin_count "true" ; + 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_signal_type <Place signal type URI here and uncomment> ; + . +plugbase:qm-mfcc a vamp:Plugin ; + dc:title "Mel-Frequency Cepstral Coefficients" ; + vamp:name "Mel-Frequency Cepstral Coefficients" ; + 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) 2009 QMUL - All Rights Reserved""" ; + vamp:identifier "qm-mfcc" ; + vamp:vamp_API_version vamp:api_version_2 ; + owl:versionInfo "1" ; + vamp:input_domain vamp:FrequencyDomain ; + + + vamp:parameter plugbase:qm-mfcc_param_nceps ; + vamp:parameter plugbase:qm-mfcc_param_logpower ; + vamp:parameter plugbase:qm-mfcc_param_wantc0 ; + + vamp:output plugbase:qm-mfcc_output_coefficients ; + vamp:output plugbase:qm-mfcc_output_means ; + . +plugbase:qm-mfcc_param_nceps a vamp:QuantizedParameter ; + vamp:identifier "nceps" ; + dc:title "Number of Coefficients" ; + dc:format "" ; + vamp:min_value 1 ; + vamp:max_value 40 ; + vamp:unit "" ; + vamp:quantize_step 1 ; + vamp:default_value 20 ; + vamp:value_names (); + . +plugbase:qm-mfcc_param_logpower a vamp:Parameter ; + vamp:identifier "logpower" ; + dc:title "Power for Mel Amplitude Logs" ; + dc:format "" ; + vamp:min_value 0 ; + vamp:max_value 5 ; + vamp:unit "" ; + vamp:default_value 1 ; + vamp:value_names (); + . +plugbase:qm-mfcc_param_wantc0 a vamp:QuantizedParameter ; + vamp:identifier "wantc0" ; + dc:title "Include C0" ; + 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-mfcc_output_coefficients a vamp:DenseOutput ; + vamp:identifier "coefficients" ; + dc:title "Coefficients" ; + dc:description "MFCC values" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 20 ; + vamp:bin_names ( "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""); +# 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_output_means a vamp:DenseOutput ; + vamp:identifier "means" ; + dc:title "Means of Coefficients" ; + dc:description "Mean values of MFCCs across duration of audio input" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 20 ; + vamp:bin_names ( "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""); +# 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-onsetdetector a vamp:Plugin ; + dc:title "Note Onset Detector" ; + vamp:name "Note Onset Detector" ; + 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-2009 QMUL - All Rights Reserved""" ; + vamp:identifier "qm-onsetdetector" ; + vamp:vamp_API_version vamp:api_version_2 ; + owl:versionInfo "2" ; + vamp:input_domain vamp:FrequencyDomain ; + + + vamp:parameter plugbase:qm-onsetdetector_param_dftype ; + vamp:parameter plugbase:qm-onsetdetector_param_sensitivity ; + vamp:parameter plugbase:qm-onsetdetector_param_whiten ; + + vamp:output plugbase:qm-onsetdetector_output_onsets ; + vamp:output plugbase:qm-onsetdetector_output_detection_fn ; + vamp:output plugbase:qm-onsetdetector_output_smoothed_df ; + . +plugbase:qm-onsetdetector_param_dftype a vamp:QuantizedParameter ; + vamp:identifier "dftype" ; + dc:title "Onset Detection Function Type" ; + dc:format "" ; + vamp:min_value 0 ; + vamp:max_value 4 ; + vamp:unit "" ; + vamp:quantize_step 1 ; + vamp:default_value 3 ; + vamp:value_names ( "High-Frequency Content" "Spectral Difference" "Phase Deviation" "Complex Domain" "Broadband Energy Rise"); + . +plugbase:qm-onsetdetector_param_sensitivity a vamp:QuantizedParameter ; + vamp:identifier "sensitivity" ; + dc:title "Onset Detector Sensitivity" ; + dc:format "%" ; + vamp:min_value 0 ; + vamp:max_value 100 ; + vamp:unit "%" ; + vamp:quantize_step 1 ; + vamp:default_value 50 ; + vamp:value_names (); + . +plugbase:qm-onsetdetector_param_whiten a vamp:QuantizedParameter ; + vamp:identifier "whiten" ; + dc:title "Adaptive Whitening" ; + 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-onsetdetector_output_onsets a vamp:SparseOutput ; + vamp:identifier "onsets" ; + dc:title "Note Onsets" ; + dc:description "Perceived note onset positions" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 0 ; + vamp:bin_names (); + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 86.1326 ; + vamp:computes_event_type af:Onset; + . +plugbase:qm-onsetdetector_output_detection_fn a vamp:DenseOutput ; + vamp:identifier "detection_fn" ; + dc:title "Onset Detection Function" ; + dc:description "Probability function of note onset likelihood" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 1 ; + vamp:bin_names ( ""); + vamp:computes_signal_type af:OnsetDetectionFunction ; + . +plugbase:qm-onsetdetector_output_smoothed_df a vamp:SparseOutput ; + vamp:identifier "smoothed_df" ; + dc:title "Smoothed Detection Function" ; + dc:description "Smoothed probability function used for peak-picking" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 1 ; + vamp:bin_names ( ""); + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 86.1326 ; + vamp:computes_signal_type af:OnsetDetectionFunction ; + . +plugbase:qm-segmenter a vamp:Plugin ; + dc:title "Segmenter" ; + vamp:name "Segmenter" ; + 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-2009 QMUL - All Rights Reserved""" ; + vamp:identifier "qm-segmenter" ; + vamp:vamp_API_version vamp:api_version_2 ; + owl:versionInfo "2" ; + vamp:input_domain vamp:TimeDomain ; + + vamp:parameter plugbase:qm-segmenter_param_nSegmentTypes ; + vamp:parameter plugbase:qm-segmenter_param_featureType ; + vamp:parameter plugbase:qm-segmenter_param_neighbourhoodLimit ; + + vamp:output plugbase:qm-segmenter_output_segmentation ; + . +plugbase:qm-segmenter_param_nSegmentTypes a vamp:QuantizedParameter ; + vamp:identifier "nSegmentTypes" ; + dc:title "Number of segment-types" ; + dc:format "" ; + vamp:min_value 2 ; + vamp:max_value 12 ; + vamp:unit "" ; + vamp:quantize_step 1 ; + vamp:default_value 10 ; + vamp:value_names (); + . +plugbase:qm-segmenter_param_featureType a vamp:QuantizedParameter ; + vamp:identifier "featureType" ; + dc:title "Feature Type" ; + dc:format "" ; + vamp:min_value 1 ; + vamp:max_value 3 ; + vamp:unit "" ; + vamp:quantize_step 1 ; + vamp:default_value 1 ; + vamp:value_names ( "Hybrid (Constant-Q)" "Chromatic (Chroma)" "Timbral (MFCC)"); + . +plugbase:qm-segmenter_param_neighbourhoodLimit a vamp:QuantizedParameter ; + vamp:identifier "neighbourhoodLimit" ; + dc:title "Minimum segment duration" ; + dc:format "s" ; + vamp:min_value 1 ; + vamp:max_value 15 ; + vamp:unit "s" ; + vamp:quantize_step 0.2 ; + vamp:default_value 4 ; + vamp:value_names (); + . +plugbase:qm-segmenter_output_segmentation a vamp:SparseOutput ; + vamp:identifier "segmentation" ; + dc:title "Segmentation" ; + dc:description "Segmentation" ; + vamp:fixed_bin_count "true" ; + vamp:unit "segment-type" ; + a vamp:QuantizedOutput ; + vamp:quantize_step 1 ; + a vamp:KnownExtentsOutput ; + vamp:min_value 1 ; + vamp:max_value 10 ; + vamp:bin_count 1 ; + vamp:bin_names ( ""); + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 5 ; + vamp:computes_event_type af:StructuralSegment ; + . +plugbase:qm-similarity a vamp:Plugin ; + dc:title "Similarity" ; + vamp:name "Similarity" ; + 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) 2009 QMUL - All Rights Reserved""" ; + vamp:identifier "qm-similarity" ; + vamp:vamp_API_version vamp:api_version_2 ; + owl:versionInfo "1" ; + vamp:input_domain vamp:TimeDomain ; + + vamp:parameter plugbase:qm-similarity_param_featureType ; + + vamp:output plugbase:qm-similarity_output_distancematrix ; + vamp:output plugbase:qm-similarity_output_distancevector ; + vamp:output plugbase:qm-similarity_output_sorteddistancevector ; + vamp:output plugbase:qm-similarity_output_means ; + vamp:output plugbase:qm-similarity_output_variances ; + vamp:output plugbase:qm-similarity_output_beatspectrum ; + . +plugbase:qm-similarity_param_featureType a vamp:QuantizedParameter ; + vamp:identifier "featureType" ; + dc:title "Feature Type" ; + dc:format "" ; + vamp:min_value 0 ; + vamp:max_value 4 ; + vamp:unit "" ; + vamp:quantize_step 1 ; + vamp:default_value 1 ; + vamp:value_names ( "Timbre" "Timbre and Rhythm" "Chroma" "Chroma and Rhythm" "Rhythm only"); + . +plugbase:qm-similarity_output_distancematrix a vamp:DenseOutput ; + vamp:identifier "distancematrix" ; + dc:title "Distance Matrix" ; + dc:description "Distance matrix for similarity metric. Smaller = more similar. Should be symmetrical." ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 0 ; + vamp:bin_names (); +# 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-similarity_output_distancevector a vamp:DenseOutput ; + vamp:identifier "distancevector" ; + dc:title "Distance from First Channel" ; + dc:description "Distance vector for similarity of each channel to the first channel. Smaller = more similar." ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 0 ; + vamp:bin_names (); +# 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-similarity_output_sorteddistancevector a vamp:DenseOutput ; + vamp:identifier "sorteddistancevector" ; + dc:title "Ordered Distances from First Channel" ; + dc:description "Vector of the order of other channels in similarity to the first, followed by distance vector for similarity of each to the first. Smaller = more similar." ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 0 ; + vamp:bin_names (); +# 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-similarity_output_means a vamp:DenseOutput ; + vamp:identifier "means" ; + dc:title "Feature Means" ; + dc:description "Means of the feature bins. Feature time (sec) corresponds to input channel. Number of bins depends on selected feature type." ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 20 ; + vamp:bin_names ( "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""); +# 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-similarity_output_variances a vamp:DenseOutput ; + vamp:identifier "variances" ; + dc:title "Feature Variances" ; + dc:description "Variances of the feature bins. Feature time (sec) corresponds to input channel. Number of bins depends on selected feature type." ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 20 ; + vamp:bin_names ( "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""); +# 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-similarity_output_beatspectrum a vamp:SparseOutput ; + vamp:identifier "beatspectrum" ; + dc:title "Beat Spectra" ; + dc:description "Rhythmic self-similarity vectors (beat spectra) for the input channels. Feature time (sec) corresponds to input channel. Not returned if rhythm weighting is zero." ; + vamp:fixed_bin_count "false" ; + vamp:unit "" ; + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 1 ; +# 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-tempotracker a vamp:Plugin ; + dc:title "Tempo and Beat Tracker" ; + vamp:name "Tempo and Beat Tracker" ; + 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-2009 QMUL - All Rights Reserved""" ; + vamp:identifier "qm-tempotracker" ; + vamp:vamp_API_version vamp:api_version_2 ; + 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 ; + + vamp:output plugbase:qm-tempotracker_output_beats ; + 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" ; + dc:format "" ; + vamp:min_value 0 ; + vamp:max_value 4 ; + vamp:unit "" ; + vamp:quantize_step 1 ; + vamp:default_value 3 ; + vamp:value_names ( "High-Frequency Content" "Spectral Difference" "Phase Deviation" "Complex Domain" "Broadband Energy Rise"); + . +plugbase:qm-tempotracker_param_whiten a vamp:QuantizedParameter ; + vamp:identifier "whiten" ; + dc:title "Adaptive Whitening" ; + 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-tempotracker_output_beats a vamp:SparseOutput ; + vamp:identifier "beats" ; + dc:title "Beats" ; + dc:description "Estimated metrical beat locations" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 0 ; + vamp:bin_names (); + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 86.1326 ; + vamp:computes_event_type af:Beat; + . +plugbase:qm-tempotracker_output_detection_fn a vamp:DenseOutput ; + vamp:identifier "detection_fn" ; + dc:title "Onset Detection Function" ; + dc:description "Probability function of note onset likelihood" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 1 ; + vamp:bin_names ( ""); + vamp:computes_signal_type af:OnsetDetectionFunction; + . +plugbase:qm-tempotracker_output_tempo a vamp:SparseOutput ; + vamp:identifier "tempo" ; + dc:title "Tempo" ; + dc:description "Locked tempo estimates" ; + vamp:fixed_bin_count "true" ; + vamp:unit "bpm" ; + vamp:bin_count 1 ; + vamp:bin_names ( ""); + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 86.1326 ; + vamp:computes_event_type af:Tempo ; + . +plugbase:qm-tonalchange a vamp:Plugin ; + dc:title "Tonal Change" ; + vamp:name "Tonal Change" ; + 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-2009 QMUL - All Rights Reserved""" ; + vamp:identifier "qm-tonalchange" ; + vamp:vamp_API_version vamp:api_version_2 ; + owl:versionInfo "1" ; + vamp:input_domain vamp:TimeDomain ; + + vamp:parameter plugbase:qm-tonalchange_param_smoothingwidth ; + vamp:parameter plugbase:qm-tonalchange_param_minpitch ; + vamp:parameter plugbase:qm-tonalchange_param_maxpitch ; + vamp:parameter plugbase:qm-tonalchange_param_tuning ; + + vamp:output plugbase:qm-tonalchange_output_tcstransform ; + vamp:output plugbase:qm-tonalchange_output_tcfunction ; + vamp:output plugbase:qm-tonalchange_output_changepositions ; + . +plugbase:qm-tonalchange_param_smoothingwidth a vamp:QuantizedParameter ; + vamp:identifier "smoothingwidth" ; + dc:title "Gaussian smoothing" ; + dc:format "frames" ; + vamp:min_value 0 ; + vamp:max_value 20 ; + vamp:unit "frames" ; + vamp:quantize_step 1 ; + vamp:default_value 5 ; + vamp:value_names (); + . +plugbase:qm-tonalchange_param_minpitch a vamp:QuantizedParameter ; + vamp:identifier "minpitch" ; + dc:title "Chromagram minimum pitch" ; + dc:format "MIDI units" ; + vamp:min_value 0 ; + vamp:max_value 127 ; + vamp:unit "MIDI units" ; + vamp:quantize_step 1 ; + vamp:default_value 32 ; + vamp:value_names (); + . +plugbase:qm-tonalchange_param_maxpitch a vamp:QuantizedParameter ; + vamp:identifier "maxpitch" ; + dc:title "Chromagram maximum pitch" ; + dc:format "MIDI units" ; + vamp:min_value 0 ; + vamp:max_value 127 ; + vamp:unit "MIDI units" ; + vamp:quantize_step 1 ; + vamp:default_value 108 ; + vamp:value_names (); + . +plugbase:qm-tonalchange_param_tuning a vamp:Parameter ; + vamp:identifier "tuning" ; + dc:title "Chromagram tuning frequency" ; + dc:format "Hz" ; + vamp:min_value 420 ; + vamp:max_value 460 ; + vamp:unit "Hz" ; + vamp:default_value 440 ; + vamp:value_names (); + . +plugbase:qm-tonalchange_output_tcstransform a vamp:DenseOutput ; + vamp:identifier "tcstransform" ; + dc:title "Transform to 6D Tonal Content Space" ; + dc:description "" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + a vamp:KnownExtentsOutput ; + vamp:min_value -1 ; + vamp:max_value 1 ; + vamp:bin_count 6 ; + vamp:bin_names ( "" "" "" "" "" ""); + vamp:computes_signal_type af:TonalContentSpace; + . +plugbase:qm-tonalchange_output_tcfunction a vamp:SparseOutput ; + vamp:identifier "tcfunction" ; + dc:title "Tonal Change Detection Function" ; + dc:description "" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 1 ; + vamp:bin_names ( ""); + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 21.5332 ; + vamp:computes_signal_type af:TonalChangeDetectionFunction; + . +plugbase:qm-tonalchange_output_changepositions a vamp:SparseOutput ; + vamp:identifier "changepositions" ; + dc:title "Tonal Change Positions" ; + dc:description "" ; + vamp:fixed_bin_count "true" ; + vamp:unit "" ; + vamp:bin_count 0 ; + vamp:bin_names (); + vamp:sample_type vamp:VariableSampleRate ; + vamp:sample_rate 21.5332 ; + vamp:computes_event_type af:TonalOnset; + . +plugbase:qm-transcription a vamp:Plugin ; + dc:title "Polyphonic Transcription" ; + vamp:name "Polyphonic Transcription" ; + dc:description """Transcribe the input audio to estimated notes""" ; + foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-transcription> ; + foaf:maker [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here + dc:rights """Plugin by Dr. Ruohua Zhou. Copyright (c) 2008-2009 QMUL - All Rights Reserved""" ; + vamp:identifier "qm-transcription" ; + vamp:vamp_API_version vamp:api_version_2 ; + owl:versionInfo "1" ; + vamp:input_domain vamp:TimeDomain ; + vamp:output plugbase:qm-transcription_output_transcription ; + . +plugbase:qm-transcription_output_transcription a vamp:SparseOutput ; + vamp:identifier "transcription" ; + dc:title "Transcription" ; + dc:description """Estimated note pitch (MIDI note number from 0 to 127)""" ; + vamp:fixed_bin_count "true" ; + vamp:unit "MIDI units" ; + a vamp:QuantizedOutput ; + vamp:quantize_step 1 ; + a vamp:KnownExtentsOutput ; + vamp:min_value 0 ; + vamp:max_value 127 ; + vamp:bin_count 1 ; + vamp:sample_type vamp:VariableSampleRate ; + vamp:computes_event_type af:Note ; + . + +
--- a/audio_key_detection/qm-keydetector-v5/README.txt Tue Jul 30 15:45:53 2019 +0100 +++ b/audio_key_detection/qm-keydetector-v5/README.txt Wed Jul 31 10:54:05 2019 +0100 @@ -1,7 +1,7 @@ # # MIREX 2019 submission # -# QM Key Detector +# QM Key Detector v5 # Plugin by Katy Noland and Christian Landone. # Prepared by Chris Cannam, c.cannam@qmul.ac.uk
--- a/audio_key_detection/qm-keydetector-v5/qm-keydetector.ttl Tue Jul 30 15:45:53 2019 +0100 +++ b/audio_key_detection/qm-keydetector-v5/qm-keydetector.ttl Wed Jul 31 10:54:05 2019 +0100 @@ -4,8 +4,9 @@ :transform a vamp:Transform ; vamp:plugin <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins#qm-keydetector> ; + vamp:plugin_version "5" ; vamp:step_size "32768"^^xsd:int ; - vamp:block_size "32768"^^xsd:int ; + vamp:block_size "32768"^^xsd:int ; vamp:parameter_binding [ vamp:parameter [ vamp:identifier "length" ] ; vamp:value "10"^^xsd:float ;
--- a/audio_key_detection/qm-keydetector/README.txt Tue Jul 30 15:45:53 2019 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -# -# MIREX 2019 submission -# -# QM Key Detector -# Plugin by Katy Noland and Christian Landone. -# Prepared by Chris Cannam, c.cannam@qmul.ac.uk - - -# Architecture - -- Linux 64-bit - -# Dependencies - -- Sonic Annotator v1.5 - http://code.soundsoftware.ac.uk/projects/sonic-annotator/files - -- GNU libc 2.15 or newer, GNU libstdc++ 3.4.15 or newer - -- Typical Unix/GNU shell commands - -# How to run - -In a terminal window run: - -./qm-keydetector.sh input.wav output.txt -
--- a/audio_key_detection/qm-keydetector/qm-keydetector.sh Tue Jul 30 15:45:53 2019 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ - -mydir=`dirname "$0"` -infile="$1" -outfile="$2" - -if [ t"$infile" = "t" ] || [ t"$outfile" = "t" ]; then - echo "Usage: $0 infile.wav outfile.txt" - exit 2 -fi - -mkdir -p "$mydir"/out || exit 1 - -echo "Processing input WAV file $infile, writing results to $outfile..." 1>&2 - -# We want output like -# -# Bb<TAB>minor -# -# Our Sonic Annotator output gives us something like that for each -# detected key change (the feature label, in column 4), but we want -# the modal key (modal in the statistical rather than the musical -# sense!) and Sonic Annotator doesn't retain labels for summaries. So -# let's write to a temporary file, retrieve the modal value, then pick -# the label (from earlier in the file) whose value corresponds to it. - -VAMP_PATH="$mydir" sonic-annotator \ - -t "$mydir"/qm-keydetector.ttl \ - -w csv --csv-separator ";" \ - --csv-basedir "$mydir/out" \ - --csv-force \ - -S mode \ - "$infile" || exit 1 - -inbase=`basename "$infile"` -inbase=${inbase%.*} -tempfile="out/${inbase}_vamp_qm-vamp-plugins_qm-keydetector_key.csv" -if [ ! -f "$tempfile" ]; then - echo "Key output file $tempfile not found! bailing out"; exit 1 -fi - -mode=`grep ';mode;' "$tempfile" | awk -F';' '{ print $4; }'` - -cat "$tempfile" | \ - awk -F';' '{ print $2, $3 }' | \ - grep "^$mode \"" | \ - head -n 1 | \ - sed -e 's/^[^"]*"//' -e 's/"[^"]*$//' -e 's,/ [^ ]* ,,' -e 's/ /\t/' \ - > "$outfile" - - - -
--- a/audio_key_detection/qm-keydetector/qm-keydetector.ttl Tue Jul 30 15:45:53 2019 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . -@prefix vamp: <http://purl.org/ontology/vamp/> . -@prefix : <#> . - -:transform a vamp:Transform ; - vamp:plugin <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins#qm-keydetector> ; - vamp:step_size "32768"^^xsd:int ; - vamp:block_size "32768"^^xsd:int ; - vamp:parameter_binding [ - vamp:parameter [ vamp:identifier "length" ] ; - vamp:value "10"^^xsd:float ; - ] ; - vamp:parameter_binding [ - vamp:parameter [ vamp:identifier "tuning" ] ; - vamp:value "440"^^xsd:float ; - ] ; - vamp:output <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins#qm-keydetector_output_key> .
--- a/audio_key_detection/qm-keydetector/qm-vamp-plugins.n3 Tue Jul 30 15:45:53 2019 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1088 +0,0 @@ -@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . -@prefix xsd: <http://www.w3.org/2001/XMLSchema#> . -@prefix vamp: <http://purl.org/ontology/vamp/> . -@prefix plugbase: <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins#> . -@prefix owl: <http://www.w3.org/2002/07/owl#> . -@prefix dc: <http://purl.org/dc/elements/1.1/> . -@prefix af: <http://purl.org/ontology/af/> . -@prefix foaf: <http://xmlns.com/foaf/0.1/> . -@prefix cc: <http://web.resource.org/cc/> . -@prefix : <#> . - -<> a vamp:PluginDescription ; - foaf:maker <http://www.vamp-plugins.org/doap.rdf#template-generator> ; - foaf:primaryTopic <http://vamp-plugins.org/rdf/plugins/qm-vamp-plugins> . - -: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 ; - vamp:available_plugin plugbase:qm-segmenter ; - vamp:available_plugin plugbase:qm-similarity ; - vamp:available_plugin plugbase:qm-tempotracker ; - vamp:available_plugin plugbase:qm-tonalchange ; - vamp:available_plugin plugbase:qm-transcription ; - 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-2009 QMUL - All Rights Reserved""" ; - vamp:identifier "qm-chromagram" ; - vamp:vamp_API_version vamp:api_version_2 ; - owl:versionInfo "4" ; - vamp:input_domain vamp:FrequencyDomain ; - - - vamp:parameter plugbase:qm-chromagram_param_minpitch ; - vamp:parameter plugbase:qm-chromagram_param_maxpitch ; - vamp:parameter plugbase:qm-chromagram_param_tuning ; - vamp:parameter plugbase:qm-chromagram_param_bpo ; - vamp:parameter plugbase:qm-chromagram_param_normalization ; - - vamp:output plugbase:qm-chromagram_output_chromagram ; - vamp:output plugbase:qm-chromagram_output_chromameans ; - . -plugbase:qm-chromagram_param_minpitch a vamp:QuantizedParameter ; - vamp:identifier "minpitch" ; - dc:title "Minimum Pitch" ; - dc:format "MIDI units" ; - vamp:min_value 0 ; - vamp:max_value 127 ; - vamp:unit "MIDI units" ; - vamp:quantize_step 1 ; - vamp:default_value 36 ; - vamp:value_names (); - . -plugbase:qm-chromagram_param_maxpitch a vamp:QuantizedParameter ; - vamp:identifier "maxpitch" ; - dc:title "Maximum Pitch" ; - dc:format "MIDI units" ; - vamp:min_value 0 ; - vamp:max_value 127 ; - vamp:unit "MIDI units" ; - vamp:quantize_step 1 ; - vamp:default_value 96 ; - vamp:value_names (); - . -plugbase:qm-chromagram_param_tuning a vamp:Parameter ; - vamp:identifier "tuning" ; - dc:title "Tuning Frequency" ; - dc:format "Hz" ; - vamp:min_value 360 ; - vamp:max_value 500 ; - vamp:unit "Hz" ; - vamp:default_value 440 ; - vamp:value_names (); - . -plugbase:qm-chromagram_param_bpo a vamp:QuantizedParameter ; - vamp:identifier "bpo" ; - dc:title "Bins per Octave" ; - dc:format "bins" ; - vamp:min_value 2 ; - vamp:max_value 480 ; - vamp:unit "bins" ; - vamp:quantize_step 1 ; - vamp:default_value 12 ; - vamp:value_names (); - . -plugbase:qm-chromagram_param_normalization a vamp:QuantizedParameter ; - vamp:identifier "normalization" ; - dc:title "Normalization" ; - dc:format "" ; - vamp:min_value 0 ; - vamp:max_value 2 ; - vamp:unit "" ; - vamp:quantize_step 1 ; - vamp:default_value 0 ; - vamp:value_names ( "None" "Unit Sum" "Unit Maximum"); - . -plugbase:qm-chromagram_output_chromagram a vamp:DenseOutput ; - vamp:identifier "chromagram" ; - dc:title "Chromagram" ; - dc:description "Output of chromagram, as a single vector per process block" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 12 ; - vamp:bin_names ( "C" "C#" "D" "D#" "E" "F" "F#" "G" "G#" "A" "A#" "B"); - vamp:computes_signal_type af:Chromagram ; - . -plugbase:qm-chromagram_output_chromameans a vamp:DenseOutput ; - vamp:identifier "chromameans" ; - dc:title "Chroma Means" ; - dc:description "Mean values of chromagram bins across the duration of the input audio" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 12 ; - vamp:bin_names ( "C" "C#" "D" "D#" "E" "F" "F#" "G" "G#" "A" "A#" "B"); -# 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-constantq a vamp:Plugin ; - dc:title "Constant-Q Spectrogram" ; - vamp:name "Constant-Q Spectrogram" ; - 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-2009 QMUL - All Rights Reserved""" ; - vamp:identifier "qm-constantq" ; - vamp:vamp_API_version vamp:api_version_2 ; - owl:versionInfo "2" ; - vamp:input_domain vamp:FrequencyDomain ; - - - vamp:parameter plugbase:qm-constantq_param_minpitch ; - vamp:parameter plugbase:qm-constantq_param_maxpitch ; - vamp:parameter plugbase:qm-constantq_param_tuning ; - vamp:parameter plugbase:qm-constantq_param_bpo ; - vamp:parameter plugbase:qm-constantq_param_normalized ; - - vamp:output plugbase:qm-constantq_output_constantq ; - . -plugbase:qm-constantq_param_minpitch a vamp:QuantizedParameter ; - vamp:identifier "minpitch" ; - dc:title "Minimum Pitch" ; - dc:format "MIDI units" ; - vamp:min_value 0 ; - vamp:max_value 127 ; - vamp:unit "MIDI units" ; - vamp:quantize_step 1 ; - vamp:default_value 36 ; - vamp:value_names (); - . -plugbase:qm-constantq_param_maxpitch a vamp:QuantizedParameter ; - vamp:identifier "maxpitch" ; - dc:title "Maximum Pitch" ; - dc:format "MIDI units" ; - vamp:min_value 0 ; - vamp:max_value 127 ; - vamp:unit "MIDI units" ; - vamp:quantize_step 1 ; - vamp:default_value 84 ; - vamp:value_names (); - . -plugbase:qm-constantq_param_tuning a vamp:Parameter ; - vamp:identifier "tuning" ; - dc:title "Tuning Frequency" ; - dc:format "Hz" ; - vamp:min_value 360 ; - vamp:max_value 500 ; - vamp:unit "Hz" ; - vamp:default_value 440 ; - vamp:value_names (); - . -plugbase:qm-constantq_param_bpo a vamp:QuantizedParameter ; - vamp:identifier "bpo" ; - dc:title "Bins per Octave" ; - dc:format "bins" ; - vamp:min_value 2 ; - vamp:max_value 480 ; - vamp:unit "bins" ; - vamp:quantize_step 1 ; - vamp:default_value 12 ; - vamp:value_names (); - . -plugbase:qm-constantq_param_normalized a vamp:QuantizedParameter ; - vamp:identifier "normalized" ; - dc:title "Normalized" ; - 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-constantq_output_constantq a vamp:DenseOutput ; - vamp:identifier "constantq" ; - dc:title "Constant-Q Spectrogram" ; - dc:description "Output of constant-Q transform, as a single vector per process block" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 1 ; - 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-2009 QMUL - All Rights Reserved""" ; - vamp:identifier "qm-keydetector" ; - vamp:vamp_API_version vamp:api_version_2 ; - owl:versionInfo "4" ; - vamp:input_domain vamp:TimeDomain ; - - vamp:parameter plugbase:qm-keydetector_param_tuning ; - vamp:parameter plugbase:qm-keydetector_param_length ; - - vamp:output plugbase:qm-keydetector_output_tonic ; - vamp:output plugbase:qm-keydetector_output_mode ; - vamp:output plugbase:qm-keydetector_output_key ; - vamp:output plugbase:qm-keydetector_output_keystrength ; - . -plugbase:qm-keydetector_param_tuning a vamp:Parameter ; - vamp:identifier "tuning" ; - dc:title "Tuning Frequency" ; - dc:format "Hz" ; - vamp:min_value 420 ; - vamp:max_value 460 ; - vamp:unit "Hz" ; - vamp:default_value 440 ; - vamp:value_names (); - . -plugbase:qm-keydetector_param_length a vamp:QuantizedParameter ; - vamp:identifier "length" ; - dc:title "Window Length" ; - dc:format "chroma frames" ; - vamp:min_value 1 ; - vamp:max_value 30 ; - vamp:unit "chroma frames" ; - vamp:quantize_step 1 ; - vamp:default_value 10 ; - vamp:value_names (); - . -plugbase:qm-keydetector_output_tonic a vamp:SparseOutput ; - vamp:identifier "tonic" ; - dc:title "Tonic Pitch" ; - dc:description "Tonic of the estimated key (from C = 1 to B = 12)" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - a vamp:QuantizedOutput ; - vamp:quantize_step 1 ; - a vamp:KnownExtentsOutput ; - vamp:min_value 1 ; - vamp:max_value 12 ; - vamp:bin_count 1 ; - vamp:bin_names ( ""); - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 1.34583 ; -# 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-keydetector_output_mode a vamp:SparseOutput ; - vamp:identifier "mode" ; - dc:title "Key Mode" ; - dc:description "Major or minor mode of the estimated key (major = 0, minor = 1)" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - a vamp:QuantizedOutput ; - vamp:quantize_step 1 ; - a vamp:KnownExtentsOutput ; - vamp:min_value 0 ; - vamp:max_value 1 ; - vamp:bin_count 1 ; - vamp:bin_names ( ""); - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 1.34583 ; -# 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-keydetector_output_key a vamp:SparseOutput ; - vamp:identifier "key" ; - dc:title "Key" ; - dc:description "Estimated key (from C major = 1 to B major = 12 and C minor = 13 to B minor = 24)" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - a vamp:QuantizedOutput ; - vamp:quantize_step 1 ; - a vamp:KnownExtentsOutput ; - vamp:min_value 1 ; - vamp:max_value 24 ; - vamp:bin_count 1 ; - vamp:bin_names ( ""); - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 1.34583 ; - vamp:computes_event_type af:KeyChange ; - . -plugbase:qm-keydetector_output_keystrength a vamp:DenseOutput ; - vamp:identifier "keystrength" ; - dc:title "Key Strength Plot" ; - dc:description "Correlation of the chroma vector with stored key profile for each major and minor key" ; - vamp:fixed_bin_count "true" ; - 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_signal_type <Place signal type URI here and uncomment> ; - . -plugbase:qm-mfcc a vamp:Plugin ; - dc:title "Mel-Frequency Cepstral Coefficients" ; - vamp:name "Mel-Frequency Cepstral Coefficients" ; - 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) 2009 QMUL - All Rights Reserved""" ; - vamp:identifier "qm-mfcc" ; - vamp:vamp_API_version vamp:api_version_2 ; - owl:versionInfo "1" ; - vamp:input_domain vamp:FrequencyDomain ; - - - vamp:parameter plugbase:qm-mfcc_param_nceps ; - vamp:parameter plugbase:qm-mfcc_param_logpower ; - vamp:parameter plugbase:qm-mfcc_param_wantc0 ; - - vamp:output plugbase:qm-mfcc_output_coefficients ; - vamp:output plugbase:qm-mfcc_output_means ; - . -plugbase:qm-mfcc_param_nceps a vamp:QuantizedParameter ; - vamp:identifier "nceps" ; - dc:title "Number of Coefficients" ; - dc:format "" ; - vamp:min_value 1 ; - vamp:max_value 40 ; - vamp:unit "" ; - vamp:quantize_step 1 ; - vamp:default_value 20 ; - vamp:value_names (); - . -plugbase:qm-mfcc_param_logpower a vamp:Parameter ; - vamp:identifier "logpower" ; - dc:title "Power for Mel Amplitude Logs" ; - dc:format "" ; - vamp:min_value 0 ; - vamp:max_value 5 ; - vamp:unit "" ; - vamp:default_value 1 ; - vamp:value_names (); - . -plugbase:qm-mfcc_param_wantc0 a vamp:QuantizedParameter ; - vamp:identifier "wantc0" ; - dc:title "Include C0" ; - 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-mfcc_output_coefficients a vamp:DenseOutput ; - vamp:identifier "coefficients" ; - dc:title "Coefficients" ; - dc:description "MFCC values" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 20 ; - vamp:bin_names ( "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""); -# 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_output_means a vamp:DenseOutput ; - vamp:identifier "means" ; - dc:title "Means of Coefficients" ; - dc:description "Mean values of MFCCs across duration of audio input" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 20 ; - vamp:bin_names ( "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""); -# 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-onsetdetector a vamp:Plugin ; - dc:title "Note Onset Detector" ; - vamp:name "Note Onset Detector" ; - 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-2009 QMUL - All Rights Reserved""" ; - vamp:identifier "qm-onsetdetector" ; - vamp:vamp_API_version vamp:api_version_2 ; - owl:versionInfo "2" ; - vamp:input_domain vamp:FrequencyDomain ; - - - vamp:parameter plugbase:qm-onsetdetector_param_dftype ; - vamp:parameter plugbase:qm-onsetdetector_param_sensitivity ; - vamp:parameter plugbase:qm-onsetdetector_param_whiten ; - - vamp:output plugbase:qm-onsetdetector_output_onsets ; - vamp:output plugbase:qm-onsetdetector_output_detection_fn ; - vamp:output plugbase:qm-onsetdetector_output_smoothed_df ; - . -plugbase:qm-onsetdetector_param_dftype a vamp:QuantizedParameter ; - vamp:identifier "dftype" ; - dc:title "Onset Detection Function Type" ; - dc:format "" ; - vamp:min_value 0 ; - vamp:max_value 4 ; - vamp:unit "" ; - vamp:quantize_step 1 ; - vamp:default_value 3 ; - vamp:value_names ( "High-Frequency Content" "Spectral Difference" "Phase Deviation" "Complex Domain" "Broadband Energy Rise"); - . -plugbase:qm-onsetdetector_param_sensitivity a vamp:QuantizedParameter ; - vamp:identifier "sensitivity" ; - dc:title "Onset Detector Sensitivity" ; - dc:format "%" ; - vamp:min_value 0 ; - vamp:max_value 100 ; - vamp:unit "%" ; - vamp:quantize_step 1 ; - vamp:default_value 50 ; - vamp:value_names (); - . -plugbase:qm-onsetdetector_param_whiten a vamp:QuantizedParameter ; - vamp:identifier "whiten" ; - dc:title "Adaptive Whitening" ; - 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-onsetdetector_output_onsets a vamp:SparseOutput ; - vamp:identifier "onsets" ; - dc:title "Note Onsets" ; - dc:description "Perceived note onset positions" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 0 ; - vamp:bin_names (); - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 86.1326 ; - vamp:computes_event_type af:Onset; - . -plugbase:qm-onsetdetector_output_detection_fn a vamp:DenseOutput ; - vamp:identifier "detection_fn" ; - dc:title "Onset Detection Function" ; - dc:description "Probability function of note onset likelihood" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 1 ; - vamp:bin_names ( ""); - vamp:computes_signal_type af:OnsetDetectionFunction ; - . -plugbase:qm-onsetdetector_output_smoothed_df a vamp:SparseOutput ; - vamp:identifier "smoothed_df" ; - dc:title "Smoothed Detection Function" ; - dc:description "Smoothed probability function used for peak-picking" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 1 ; - vamp:bin_names ( ""); - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 86.1326 ; - vamp:computes_signal_type af:OnsetDetectionFunction ; - . -plugbase:qm-segmenter a vamp:Plugin ; - dc:title "Segmenter" ; - vamp:name "Segmenter" ; - 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-2009 QMUL - All Rights Reserved""" ; - vamp:identifier "qm-segmenter" ; - vamp:vamp_API_version vamp:api_version_2 ; - owl:versionInfo "2" ; - vamp:input_domain vamp:TimeDomain ; - - vamp:parameter plugbase:qm-segmenter_param_nSegmentTypes ; - vamp:parameter plugbase:qm-segmenter_param_featureType ; - vamp:parameter plugbase:qm-segmenter_param_neighbourhoodLimit ; - - vamp:output plugbase:qm-segmenter_output_segmentation ; - . -plugbase:qm-segmenter_param_nSegmentTypes a vamp:QuantizedParameter ; - vamp:identifier "nSegmentTypes" ; - dc:title "Number of segment-types" ; - dc:format "" ; - vamp:min_value 2 ; - vamp:max_value 12 ; - vamp:unit "" ; - vamp:quantize_step 1 ; - vamp:default_value 10 ; - vamp:value_names (); - . -plugbase:qm-segmenter_param_featureType a vamp:QuantizedParameter ; - vamp:identifier "featureType" ; - dc:title "Feature Type" ; - dc:format "" ; - vamp:min_value 1 ; - vamp:max_value 3 ; - vamp:unit "" ; - vamp:quantize_step 1 ; - vamp:default_value 1 ; - vamp:value_names ( "Hybrid (Constant-Q)" "Chromatic (Chroma)" "Timbral (MFCC)"); - . -plugbase:qm-segmenter_param_neighbourhoodLimit a vamp:QuantizedParameter ; - vamp:identifier "neighbourhoodLimit" ; - dc:title "Minimum segment duration" ; - dc:format "s" ; - vamp:min_value 1 ; - vamp:max_value 15 ; - vamp:unit "s" ; - vamp:quantize_step 0.2 ; - vamp:default_value 4 ; - vamp:value_names (); - . -plugbase:qm-segmenter_output_segmentation a vamp:SparseOutput ; - vamp:identifier "segmentation" ; - dc:title "Segmentation" ; - dc:description "Segmentation" ; - vamp:fixed_bin_count "true" ; - vamp:unit "segment-type" ; - a vamp:QuantizedOutput ; - vamp:quantize_step 1 ; - a vamp:KnownExtentsOutput ; - vamp:min_value 1 ; - vamp:max_value 10 ; - vamp:bin_count 1 ; - vamp:bin_names ( ""); - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 5 ; - vamp:computes_event_type af:StructuralSegment ; - . -plugbase:qm-similarity a vamp:Plugin ; - dc:title "Similarity" ; - vamp:name "Similarity" ; - 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) 2009 QMUL - All Rights Reserved""" ; - vamp:identifier "qm-similarity" ; - vamp:vamp_API_version vamp:api_version_2 ; - owl:versionInfo "1" ; - vamp:input_domain vamp:TimeDomain ; - - vamp:parameter plugbase:qm-similarity_param_featureType ; - - vamp:output plugbase:qm-similarity_output_distancematrix ; - vamp:output plugbase:qm-similarity_output_distancevector ; - vamp:output plugbase:qm-similarity_output_sorteddistancevector ; - vamp:output plugbase:qm-similarity_output_means ; - vamp:output plugbase:qm-similarity_output_variances ; - vamp:output plugbase:qm-similarity_output_beatspectrum ; - . -plugbase:qm-similarity_param_featureType a vamp:QuantizedParameter ; - vamp:identifier "featureType" ; - dc:title "Feature Type" ; - dc:format "" ; - vamp:min_value 0 ; - vamp:max_value 4 ; - vamp:unit "" ; - vamp:quantize_step 1 ; - vamp:default_value 1 ; - vamp:value_names ( "Timbre" "Timbre and Rhythm" "Chroma" "Chroma and Rhythm" "Rhythm only"); - . -plugbase:qm-similarity_output_distancematrix a vamp:DenseOutput ; - vamp:identifier "distancematrix" ; - dc:title "Distance Matrix" ; - dc:description "Distance matrix for similarity metric. Smaller = more similar. Should be symmetrical." ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 0 ; - vamp:bin_names (); -# 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-similarity_output_distancevector a vamp:DenseOutput ; - vamp:identifier "distancevector" ; - dc:title "Distance from First Channel" ; - dc:description "Distance vector for similarity of each channel to the first channel. Smaller = more similar." ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 0 ; - vamp:bin_names (); -# 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-similarity_output_sorteddistancevector a vamp:DenseOutput ; - vamp:identifier "sorteddistancevector" ; - dc:title "Ordered Distances from First Channel" ; - dc:description "Vector of the order of other channels in similarity to the first, followed by distance vector for similarity of each to the first. Smaller = more similar." ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 0 ; - vamp:bin_names (); -# 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-similarity_output_means a vamp:DenseOutput ; - vamp:identifier "means" ; - dc:title "Feature Means" ; - dc:description "Means of the feature bins. Feature time (sec) corresponds to input channel. Number of bins depends on selected feature type." ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 20 ; - vamp:bin_names ( "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""); -# 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-similarity_output_variances a vamp:DenseOutput ; - vamp:identifier "variances" ; - dc:title "Feature Variances" ; - dc:description "Variances of the feature bins. Feature time (sec) corresponds to input channel. Number of bins depends on selected feature type." ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 20 ; - vamp:bin_names ( "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""); -# 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-similarity_output_beatspectrum a vamp:SparseOutput ; - vamp:identifier "beatspectrum" ; - dc:title "Beat Spectra" ; - dc:description "Rhythmic self-similarity vectors (beat spectra) for the input channels. Feature time (sec) corresponds to input channel. Not returned if rhythm weighting is zero." ; - vamp:fixed_bin_count "false" ; - vamp:unit "" ; - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 1 ; -# 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-tempotracker a vamp:Plugin ; - dc:title "Tempo and Beat Tracker" ; - vamp:name "Tempo and Beat Tracker" ; - 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-2009 QMUL - All Rights Reserved""" ; - vamp:identifier "qm-tempotracker" ; - vamp:vamp_API_version vamp:api_version_2 ; - 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 ; - - vamp:output plugbase:qm-tempotracker_output_beats ; - 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" ; - dc:format "" ; - vamp:min_value 0 ; - vamp:max_value 4 ; - vamp:unit "" ; - vamp:quantize_step 1 ; - vamp:default_value 3 ; - vamp:value_names ( "High-Frequency Content" "Spectral Difference" "Phase Deviation" "Complex Domain" "Broadband Energy Rise"); - . -plugbase:qm-tempotracker_param_whiten a vamp:QuantizedParameter ; - vamp:identifier "whiten" ; - dc:title "Adaptive Whitening" ; - 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-tempotracker_output_beats a vamp:SparseOutput ; - vamp:identifier "beats" ; - dc:title "Beats" ; - dc:description "Estimated metrical beat locations" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 0 ; - vamp:bin_names (); - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 86.1326 ; - vamp:computes_event_type af:Beat; - . -plugbase:qm-tempotracker_output_detection_fn a vamp:DenseOutput ; - vamp:identifier "detection_fn" ; - dc:title "Onset Detection Function" ; - dc:description "Probability function of note onset likelihood" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 1 ; - vamp:bin_names ( ""); - vamp:computes_signal_type af:OnsetDetectionFunction; - . -plugbase:qm-tempotracker_output_tempo a vamp:SparseOutput ; - vamp:identifier "tempo" ; - dc:title "Tempo" ; - dc:description "Locked tempo estimates" ; - vamp:fixed_bin_count "true" ; - vamp:unit "bpm" ; - vamp:bin_count 1 ; - vamp:bin_names ( ""); - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 86.1326 ; - vamp:computes_event_type af:Tempo ; - . -plugbase:qm-tonalchange a vamp:Plugin ; - dc:title "Tonal Change" ; - vamp:name "Tonal Change" ; - 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-2009 QMUL - All Rights Reserved""" ; - vamp:identifier "qm-tonalchange" ; - vamp:vamp_API_version vamp:api_version_2 ; - owl:versionInfo "1" ; - vamp:input_domain vamp:TimeDomain ; - - vamp:parameter plugbase:qm-tonalchange_param_smoothingwidth ; - vamp:parameter plugbase:qm-tonalchange_param_minpitch ; - vamp:parameter plugbase:qm-tonalchange_param_maxpitch ; - vamp:parameter plugbase:qm-tonalchange_param_tuning ; - - vamp:output plugbase:qm-tonalchange_output_tcstransform ; - vamp:output plugbase:qm-tonalchange_output_tcfunction ; - vamp:output plugbase:qm-tonalchange_output_changepositions ; - . -plugbase:qm-tonalchange_param_smoothingwidth a vamp:QuantizedParameter ; - vamp:identifier "smoothingwidth" ; - dc:title "Gaussian smoothing" ; - dc:format "frames" ; - vamp:min_value 0 ; - vamp:max_value 20 ; - vamp:unit "frames" ; - vamp:quantize_step 1 ; - vamp:default_value 5 ; - vamp:value_names (); - . -plugbase:qm-tonalchange_param_minpitch a vamp:QuantizedParameter ; - vamp:identifier "minpitch" ; - dc:title "Chromagram minimum pitch" ; - dc:format "MIDI units" ; - vamp:min_value 0 ; - vamp:max_value 127 ; - vamp:unit "MIDI units" ; - vamp:quantize_step 1 ; - vamp:default_value 32 ; - vamp:value_names (); - . -plugbase:qm-tonalchange_param_maxpitch a vamp:QuantizedParameter ; - vamp:identifier "maxpitch" ; - dc:title "Chromagram maximum pitch" ; - dc:format "MIDI units" ; - vamp:min_value 0 ; - vamp:max_value 127 ; - vamp:unit "MIDI units" ; - vamp:quantize_step 1 ; - vamp:default_value 108 ; - vamp:value_names (); - . -plugbase:qm-tonalchange_param_tuning a vamp:Parameter ; - vamp:identifier "tuning" ; - dc:title "Chromagram tuning frequency" ; - dc:format "Hz" ; - vamp:min_value 420 ; - vamp:max_value 460 ; - vamp:unit "Hz" ; - vamp:default_value 440 ; - vamp:value_names (); - . -plugbase:qm-tonalchange_output_tcstransform a vamp:DenseOutput ; - vamp:identifier "tcstransform" ; - dc:title "Transform to 6D Tonal Content Space" ; - dc:description "" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - a vamp:KnownExtentsOutput ; - vamp:min_value -1 ; - vamp:max_value 1 ; - vamp:bin_count 6 ; - vamp:bin_names ( "" "" "" "" "" ""); - vamp:computes_signal_type af:TonalContentSpace; - . -plugbase:qm-tonalchange_output_tcfunction a vamp:SparseOutput ; - vamp:identifier "tcfunction" ; - dc:title "Tonal Change Detection Function" ; - dc:description "" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 1 ; - vamp:bin_names ( ""); - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 21.5332 ; - vamp:computes_signal_type af:TonalChangeDetectionFunction; - . -plugbase:qm-tonalchange_output_changepositions a vamp:SparseOutput ; - vamp:identifier "changepositions" ; - dc:title "Tonal Change Positions" ; - dc:description "" ; - vamp:fixed_bin_count "true" ; - vamp:unit "" ; - vamp:bin_count 0 ; - vamp:bin_names (); - vamp:sample_type vamp:VariableSampleRate ; - vamp:sample_rate 21.5332 ; - vamp:computes_event_type af:TonalOnset; - . -plugbase:qm-transcription a vamp:Plugin ; - dc:title "Polyphonic Transcription" ; - vamp:name "Polyphonic Transcription" ; - dc:description """Transcribe the input audio to estimated notes""" ; - foaf:page <http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html#qm-transcription> ; - foaf:maker [ foaf:name "Queen Mary, University of London" ] ; # FIXME could give plugin author's URI here - dc:rights """Plugin by Dr. Ruohua Zhou. Copyright (c) 2008-2009 QMUL - All Rights Reserved""" ; - vamp:identifier "qm-transcription" ; - vamp:vamp_API_version vamp:api_version_2 ; - owl:versionInfo "1" ; - vamp:input_domain vamp:TimeDomain ; - vamp:output plugbase:qm-transcription_output_transcription ; - . -plugbase:qm-transcription_output_transcription a vamp:SparseOutput ; - vamp:identifier "transcription" ; - dc:title "Transcription" ; - dc:description """Estimated note pitch (MIDI note number from 0 to 127)""" ; - vamp:fixed_bin_count "true" ; - vamp:unit "MIDI units" ; - a vamp:QuantizedOutput ; - vamp:quantize_step 1 ; - a vamp:KnownExtentsOutput ; - vamp:min_value 0 ; - vamp:max_value 127 ; - vamp:bin_count 1 ; - vamp:sample_type vamp:VariableSampleRate ; - vamp:computes_event_type af:Note ; - . - -
--- a/vamp-plugins_abstract/qmvamp-mirex2019.tex Tue Jul 30 15:45:53 2019 +0100 +++ b/vamp-plugins_abstract/qmvamp-mirex2019.tex Wed Jul 31 10:54:05 2019 +0100 @@ -29,9 +29,9 @@ extraction plugins in Vamp format. Most of these plugins were also submitted to the 2013, 2014, 2015, -2016, 2017, and 2018 editions of MIREX. Mostq of the submitted plugins -are unchanged since 2016 and may offer a useful baseline for -comparison across years. +2016, 2017, and 2018 editions of MIREX; most of them are also +unchanged since 2016, and may offer a useful baseline for comparison +across years. The methods implemented in this set of plugins are described in the literature and are referenced throughout this paper. All of the @@ -136,7 +136,7 @@ \subsection{Audio Key Detection} -\subsubsection{QM Key Detector} +\subsubsection{QM Key Detector v4} The QM Key Detector Vamp plugin continuously estimates the key of the music by comparing the degree to which a block-by-block chromagram @@ -147,6 +147,27 @@ analysis of Book I of the Well Tempered Klavier by J S Bach, recorded at A=440 equal temperament, as described in~\cite{noland2007signal}. +The v4 version of the QM Key Detector plugin is identical to that +submitted in 2018 and earlier years. + +The QM Key Detector plugin was written by Katy Noland and +Christian Landone. + +\subsubsection{QM Key Detector v5} + +The QM Key Detector Vamp plugin continuously estimates the key of the +music by comparing the degree to which a block-by-block chromagram +correlates to stored key profiles for each major and minor key. + +This plugin uses the correlation method described in~\cite{krumhansl1990} and~\cite{gomez2006}, but using different tone +profiles. The key profiles used in this implementation are drawn from +analysis of Book I of the Well Tempered Klavier by J S Bach, recorded +at A=440 equal temperament, as described in~\cite{noland2007signal}. + +The v5 version of the QM Key Detector plugin has some internal fixes +to chromagram handling, thanks to Daniel Schürmann. It is expected to +perform slightly better than the v4 submission. + The QM Key Detector plugin was written by Katy Noland and Christian Landone.