Add RDF, optimisation
authorChris Cannam <cannam@all-day-breakfast.com>
Wed, 5 Dec 2012 13:31:31 +0000 (13:31 +0000)
committerChris Cannam <cannam@all-day-breakfast.com>
Wed, 5 Dec 2012 13:31:31 +0000 (13:31 +0000)
Makefile
vamp-aubio.n3 [new file with mode: 0644]

index a655e4d..c50b2eb 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -9,7 +9,7 @@ AUBIODIR        = aubio
 
 # Compile flags
 #
-CFLAGS         := -I. -Iaubio/src $(CFLAGS) -fPIC -DDEBUG -g -Wall -I.
+CFLAGS         := -I. -Iaubio/src $(CFLAGS) -fPIC -DDEBUG -O2 -Wall -I.
 CXXFLAGS       := $(CFLAGS)
 
 # Libraries required for the plugins.
diff --git a/vamp-aubio.n3 b/vamp-aubio.n3
new file mode 100644 (file)
index 0000000..79f46b4
--- /dev/null
@@ -0,0 +1,447 @@
+@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/vamp-aubio#> .
+@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/vamp-aubio> .
+
+:vamp-aubio a  vamp:PluginLibrary ;
+    vamp:identifier "vamp-aubio"  ; 
+    vamp:available_plugin plugbase:aubionotes ; 
+    vamp:available_plugin plugbase:aubioonset ; 
+    vamp:available_plugin plugbase:aubiopitch ; 
+    vamp:available_plugin plugbase:aubiosilence ; 
+    vamp:available_plugin plugbase:aubiotempo ; 
+#   foaf:page <Place more-information HTML page URL here and uncomment> ;
+    .
+
+plugbase:aubionotes a   vamp:Plugin ;
+    dc:title              "Aubio Note Tracker" ;
+    vamp:name             "Aubio Note Tracker" ;
+    dc:description        """Estimate note onset positions, pitches and durations""" ;
+    foaf:maker            [ foaf:name "Paul Brossier (plugin by Chris Cannam)" ] ; # FIXME could give plugin author's URI here
+    dc:rights             """GPL""" ;
+#   cc:license            <Place plugin license URI here and uncomment> ; 
+    vamp:identifier       "aubionotes" ;
+    vamp:vamp_API_version vamp:api_version_2 ;
+    owl:versionInfo       "4" ;
+    vamp:input_domain     vamp:TimeDomain ;
+
+    vamp:parameter   plugbase:aubionotes_param_onsettype ;
+    vamp:parameter   plugbase:aubionotes_param_pitchtype ;
+    vamp:parameter   plugbase:aubionotes_param_minpitch ;
+    vamp:parameter   plugbase:aubionotes_param_maxpitch ;
+    vamp:parameter   plugbase:aubionotes_param_wraprange ;
+    vamp:parameter   plugbase:aubionotes_param_avoidleaps ;
+    vamp:parameter   plugbase:aubionotes_param_peakpickthreshold ;
+    vamp:parameter   plugbase:aubionotes_param_silencethreshold ;
+    vamp:parameter   plugbase:aubionotes_param_minioi ;
+
+    vamp:output      plugbase:aubionotes_output_notes ;
+    .
+plugbase:aubionotes_param_onsettype a  vamp:QuantizedParameter ;
+    vamp:identifier     "onsettype" ;
+    dc:title            "Onset Detection Function Type" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       7 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   3 ;
+    vamp:value_names     ( "Energy Based" "Spectral Difference" "High-Frequency Content" "Complex Domain" "Phase Deviation" "Kullback-Liebler" "Modified Kullback-Liebler" "Spectral Flux");
+    .
+plugbase:aubionotes_param_pitchtype a  vamp:QuantizedParameter ;
+    vamp:identifier     "pitchtype" ;
+    dc:title            "Pitch Detection Function Type" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       4 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   4 ;
+    vamp:value_names     ( "YIN Frequency Estimator" "Spectral Comb" "Schmitt" "Fast Harmonic Comb" "YIN with FFT");
+    .
+plugbase:aubionotes_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   32 ;
+    vamp:value_names     ();
+    .
+plugbase:aubionotes_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   95 ;
+    vamp:value_names     ();
+    .
+plugbase:aubionotes_param_wraprange a  vamp:QuantizedParameter ;
+    vamp:identifier     "wraprange" ;
+    dc:title            "Fold Higher or Lower Notes into Range" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   0 ;
+    vamp:value_names     ();
+    .
+plugbase:aubionotes_param_avoidleaps a  vamp:QuantizedParameter ;
+    vamp:identifier     "avoidleaps" ;
+    dc:title            "Avoid Multi-Octave Jumps" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   0 ;
+    vamp:value_names     ();
+    .
+plugbase:aubionotes_param_peakpickthreshold a  vamp:Parameter ;
+    vamp:identifier     "peakpickthreshold" ;
+    dc:title            "Peak Picker Threshold" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           ""  ;
+    vamp:default_value   0.3 ;
+    vamp:value_names     ();
+    .
+plugbase:aubionotes_param_silencethreshold a  vamp:Parameter ;
+    vamp:identifier     "silencethreshold" ;
+    dc:title            "Silence Threshold" ;
+    dc:format           "dB" ;
+    vamp:min_value       -120 ;
+    vamp:max_value       0 ;
+    vamp:unit           "dB"  ;
+    vamp:default_value   -70 ;
+    vamp:value_names     ();
+    .
+plugbase:aubionotes_param_minioi a  vamp:QuantizedParameter ;
+    vamp:identifier     "minioi" ;
+    dc:title            "Minimum Inter-Onset Interval" ;
+    dc:format           "ms" ;
+    vamp:min_value       0 ;
+    vamp:max_value       40 ;
+    vamp:unit           "ms" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   4 ;
+    vamp:value_names     ();
+    .
+plugbase:aubionotes_output_notes a  vamp:SparseOutput ;
+    vamp:identifier       "notes" ;
+    dc:title              "Notes" ;
+    dc:description        """"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "Hz" ;
+    vamp:bin_count        2 ;
+    vamp:bin_names        ( "Frequency" "Velocity");
+    vamp:sample_type      vamp:VariableSampleRate ;
+#   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:aubioonset a   vamp:Plugin ;
+    dc:title              "Aubio Onset Detector" ;
+    vamp:name             "Aubio Onset Detector" ;
+    dc:description        """Estimate note onset times""" ;
+    foaf:maker            [ foaf:name "Paul Brossier (plugin by Chris Cannam)" ] ; # FIXME could give plugin author's URI here
+    dc:rights             """GPL""" ;
+#   cc:license            <Place plugin license URI here and uncomment> ; 
+    vamp:identifier       "aubioonset" ;
+    vamp:vamp_API_version vamp:api_version_2 ;
+    owl:versionInfo       "2" ;
+    vamp:input_domain     vamp:TimeDomain ;
+
+    vamp:parameter   plugbase:aubioonset_param_onsettype ;
+    vamp:parameter   plugbase:aubioonset_param_peakpickthreshold ;
+    vamp:parameter   plugbase:aubioonset_param_silencethreshold ;
+    vamp:parameter   plugbase:aubioonset_param_minioi ;
+
+    vamp:output      plugbase:aubioonset_output_onsets ;
+    .
+plugbase:aubioonset_param_onsettype a  vamp:QuantizedParameter ;
+    vamp:identifier     "onsettype" ;
+    dc:title            "Onset Detection Function Type" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       7 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   3 ;
+    vamp:value_names     ( "Energy Based" "Spectral Difference" "High-Frequency Content" "Complex Domain" "Phase Deviation" "Kullback-Liebler" "Modified Kullback-Liebler" "Spectral Flux");
+    .
+plugbase:aubioonset_param_peakpickthreshold a  vamp:Parameter ;
+    vamp:identifier     "peakpickthreshold" ;
+    dc:title            "Peak Picker Threshold" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           ""  ;
+    vamp:default_value   0.3 ;
+    vamp:value_names     ();
+    .
+plugbase:aubioonset_param_silencethreshold a  vamp:Parameter ;
+    vamp:identifier     "silencethreshold" ;
+    dc:title            "Silence Threshold" ;
+    dc:format           "dB" ;
+    vamp:min_value       -120 ;
+    vamp:max_value       0 ;
+    vamp:unit           "dB"  ;
+    vamp:default_value   -70 ;
+    vamp:value_names     ();
+    .
+plugbase:aubioonset_param_minioi a  vamp:QuantizedParameter ;
+    vamp:identifier     "minioi" ;
+    dc:title            "Minimum Inter-Onset Interval" ;
+    dc:format           "ms" ;
+    vamp:min_value       0 ;
+    vamp:max_value       40 ;
+    vamp:unit           "ms" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   4 ;
+    vamp:value_names     ();
+    .
+plugbase:aubioonset_output_onsets a  vamp:SparseOutput ;
+    vamp:identifier       "onsets" ;
+    dc:title              "Onsets" ;
+    dc:description        """"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    vamp:bin_count        0 ;
+    vamp:sample_type      vamp:VariableSampleRate ;
+#   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:aubiopitch a   vamp:Plugin ;
+    dc:title              "Aubio Pitch Detector" ;
+    vamp:name             "Aubio Pitch Detector" ;
+    dc:description        """Track estimated note pitches""" ;
+    foaf:maker            [ foaf:name "Paul Brossier (plugin by Chris Cannam)" ] ; # FIXME could give plugin author's URI here
+    dc:rights             """GPL""" ;
+#   cc:license            <Place plugin license URI here and uncomment> ; 
+    vamp:identifier       "aubiopitch" ;
+    vamp:vamp_API_version vamp:api_version_2 ;
+    owl:versionInfo       "3" ;
+    vamp:input_domain     vamp:TimeDomain ;
+
+    vamp:parameter   plugbase:aubiopitch_param_pitchtype ;
+    vamp:parameter   plugbase:aubiopitch_param_minfreq ;
+    vamp:parameter   plugbase:aubiopitch_param_maxfreq ;
+    vamp:parameter   plugbase:aubiopitch_param_wraprange ;
+    vamp:parameter   plugbase:aubiopitch_param_silencethreshold ;
+
+    vamp:output      plugbase:aubiopitch_output_frequency ;
+    .
+plugbase:aubiopitch_param_pitchtype a  vamp:QuantizedParameter ;
+    vamp:identifier     "pitchtype" ;
+    dc:title            "Pitch Detection Function Type" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       4 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   4 ;
+    vamp:value_names     ( "YIN Frequency Estimator" "Spectral Comb" "Schmitt" "Fast Harmonic Comb" "YIN with FFT");
+    .
+plugbase:aubiopitch_param_minfreq a  vamp:Parameter ;
+    vamp:identifier     "minfreq" ;
+    dc:title            "Minimum Fundamental Frequency" ;
+    dc:format           "Hz" ;
+    vamp:min_value       1 ;
+    vamp:max_value       24000 ;
+    vamp:unit           "Hz"  ;
+    vamp:default_value   51.9131 ;
+    vamp:value_names     ();
+    .
+plugbase:aubiopitch_param_maxfreq a  vamp:Parameter ;
+    vamp:identifier     "maxfreq" ;
+    dc:title            "Maximum Fundamental Frequency" ;
+    dc:format           "Hz" ;
+    vamp:min_value       1 ;
+    vamp:max_value       24000 ;
+    vamp:unit           "Hz"  ;
+    vamp:default_value   1975.53 ;
+    vamp:value_names     ();
+    .
+plugbase:aubiopitch_param_wraprange a  vamp:QuantizedParameter ;
+    vamp:identifier     "wraprange" ;
+    dc:title            "Fold Higher or Lower Frequencies into Range" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   0 ;
+    vamp:value_names     ();
+    .
+plugbase:aubiopitch_param_silencethreshold a  vamp:Parameter ;
+    vamp:identifier     "silencethreshold" ;
+    dc:title            "Silence Threshold" ;
+    dc:format           "dB" ;
+    vamp:min_value       -120 ;
+    vamp:max_value       0 ;
+    vamp:unit           "dB"  ;
+    vamp:default_value   -90 ;
+    vamp:value_names     ();
+    .
+plugbase:aubiopitch_output_frequency a  vamp:SparseOutput ;
+    vamp:identifier       "frequency" ;
+    dc:title              "Fundamental Frequency" ;
+    dc:description        """"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "Hz" ;
+    vamp:bin_count        1 ;
+    vamp:sample_type      vamp:VariableSampleRate ;
+#   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:aubiosilence a   vamp:Plugin ;
+    dc:title              "Aubio Silence Detector" ;
+    vamp:name             "Aubio Silence Detector" ;
+    dc:description        """Detect levels below a certain threshold""" ;
+    foaf:maker            [ foaf:name "Paul Brossier (plugin by Chris Cannam)" ] ; # FIXME could give plugin author's URI here
+    dc:rights             """GPL""" ;
+#   cc:license            <Place plugin license URI here and uncomment> ; 
+    vamp:identifier       "aubiosilence" ;
+    vamp:vamp_API_version vamp:api_version_2 ;
+    owl:versionInfo       "4" ;
+    vamp:input_domain     vamp:TimeDomain ;
+
+    vamp:parameter   plugbase:aubiosilence_param_silencethreshold ;
+
+    vamp:output      plugbase:aubiosilence_output_silent ;
+    vamp:output      plugbase:aubiosilence_output_noisy ;
+    vamp:output      plugbase:aubiosilence_output_silencelevel ;
+    .
+plugbase:aubiosilence_param_silencethreshold a  vamp:Parameter ;
+    vamp:identifier     "silencethreshold" ;
+    dc:title            "Silence Threshold" ;
+    dc:format           "dB" ;
+    vamp:min_value       -120 ;
+    vamp:max_value       0 ;
+    vamp:unit           "dB"  ;
+    vamp:default_value   -80 ;
+    vamp:value_names     ();
+    .
+plugbase:aubiosilence_output_silent a  vamp:SparseOutput ;
+    vamp:identifier       "silent" ;
+    dc:title              "Silent Regions" ;
+    dc:description        """Return an interval covering each silent region"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    vamp:bin_count        0 ;
+    vamp:sample_type      vamp:VariableSampleRate ;
+#   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:aubiosilence_output_noisy a  vamp:SparseOutput ;
+    vamp:identifier       "noisy" ;
+    dc:title              "Non-Silent Regions" ;
+    dc:description        """Return an interval covering each non-silent region"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    vamp:bin_count        0 ;
+    vamp:sample_type      vamp:VariableSampleRate ;
+#   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:aubiosilence_output_silencelevel a  vamp:SparseOutput ;
+    vamp:identifier       "silencelevel" ;
+    dc:title              "Silence Test" ;
+    dc:description        """Return a function that switches from 1 to 0 when silence falls, and back again when it ends"""  ;
+    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:sample_type      vamp:VariableSampleRate ;
+#   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:aubiotempo a   vamp:Plugin ;
+    dc:title              "Aubio Beat Tracker" ;
+    vamp:name             "Aubio Beat Tracker" ;
+    dc:description        """Estimate the musical tempo and track beat positions""" ;
+    foaf:maker            [ foaf:name "Paul Brossier (method by Matthew Davies, plugin by Chris Cannam)" ] ; # FIXME could give plugin author's URI here
+    dc:rights             """GPL""" ;
+#   cc:license            <Place plugin license URI here and uncomment> ; 
+    vamp:identifier       "aubiotempo" ;
+    vamp:vamp_API_version vamp:api_version_2 ;
+    owl:versionInfo       "2" ;
+    vamp:input_domain     vamp:TimeDomain ;
+
+    vamp:parameter   plugbase:aubiotempo_param_onsettype ;
+    vamp:parameter   plugbase:aubiotempo_param_peakpickthreshold ;
+    vamp:parameter   plugbase:aubiotempo_param_silencethreshold ;
+
+    vamp:output      plugbase:aubiotempo_output_beats ;
+    .
+plugbase:aubiotempo_param_onsettype a  vamp:QuantizedParameter ;
+    vamp:identifier     "onsettype" ;
+    dc:title            "Onset Detection Function Type" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       7 ;
+    vamp:unit           "" ;
+    vamp:quantize_step   1  ;
+    vamp:default_value   3 ;
+    vamp:value_names     ( "Energy Based" "Spectral Difference" "High-Frequency Content" "Complex Domain" "Phase Deviation" "Kullback-Liebler" "Modified Kullback-Liebler" "Spectral Flux");
+    .
+plugbase:aubiotempo_param_peakpickthreshold a  vamp:Parameter ;
+    vamp:identifier     "peakpickthreshold" ;
+    dc:title            "Peak Picker Threshold" ;
+    dc:format           "" ;
+    vamp:min_value       0 ;
+    vamp:max_value       1 ;
+    vamp:unit           ""  ;
+    vamp:default_value   0.3 ;
+    vamp:value_names     ();
+    .
+plugbase:aubiotempo_param_silencethreshold a  vamp:Parameter ;
+    vamp:identifier     "silencethreshold" ;
+    dc:title            "Silence Threshold" ;
+    dc:format           "dB" ;
+    vamp:min_value       -120 ;
+    vamp:max_value       0 ;
+    vamp:unit           "dB"  ;
+    vamp:default_value   -70 ;
+    vamp:value_names     ();
+    .
+plugbase:aubiotempo_output_beats a  vamp:SparseOutput ;
+    vamp:identifier       "beats" ;
+    dc:title              "Beats" ;
+    dc:description        """"""  ;
+    vamp:fixed_bin_count  "true" ;
+    vamp:unit             "" ;
+    vamp:bin_count        0 ;
+    vamp:sample_type      vamp:VariableSampleRate ;
+#   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> ;
+    .
+