annotate nnls-chroma.n3 @ 86:e5c16976513d consonance

implemented note output for estimated chords
author matthiasm
date Sun, 28 Nov 2010 23:10:57 +0900
parents d52884de7d79
children 19f3b33a19fb
rev   line source
Chris@40 1 @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
Chris@40 2 @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
Chris@40 3 @prefix vamp: <http://purl.org/ontology/vamp/> .
Chris@40 4 @prefix plugbase: <http://vamp-plugins.org/rdf/plugins/nnls-chroma#> .
Chris@40 5 @prefix owl: <http://www.w3.org/2002/07/owl#> .
Chris@40 6 @prefix dc: <http://purl.org/dc/elements/1.1/> .
Chris@40 7 @prefix af: <http://purl.org/ontology/af/> .
Chris@40 8 @prefix foaf: <http://xmlns.com/foaf/0.1/> .
Chris@40 9 @prefix cc: <http://web.resource.org/cc/> .
Chris@40 10 @prefix : <#> .
Chris@40 11
Chris@40 12 <> a vamp:PluginDescription ;
Chris@40 13 foaf:maker <http://www.vamp-plugins.org/doap.rdf#template-generator> ;
Chris@40 14 foaf:primaryTopic <http://vamp-plugins.org/rdf/plugins/nnls-chroma> .
Chris@40 15
Chris@40 16 :nnls-chroma a vamp:PluginLibrary ;
Chris@40 17 vamp:identifier "nnls-chroma" ;
Chris@40 18 vamp:available_plugin plugbase:chordino ;
matthiasm@58 19 vamp:available_plugin plugbase:nnls-chroma ;
matthiasm@59 20 vamp:available_plugin plugbase:tuning ;
Chris@64 21 foaf:page <http://www.isophonics.net/nnls-chroma> ;
matthiasm@59 22 foaf:page <http://www.omras2.org/> ;
matthiasm@59 23 foaf:page <http://www.matthiasmauch.net/> ;
Chris@40 24 .
Chris@40 25
Chris@40 26 plugbase:chordino a vamp:Plugin ;
Chris@40 27 dc:title "Chordino" ;
Chris@40 28 vamp:name "Chordino" ;
matthiasm@58 29 dc:description """Chordino provides a simple chord transcription based on NNLS Chroma (as in the NNLS Chroma plugin). Chord profiles given by the user in the file chord.dict are used to calculate frame-wise chord similarities. Two simple (non-state-of-the-art!) algorithms are available that smooth these to provide a chord transcription: a simple chord change method, and a standard HMM/Viterbi approach.""" ;
Chris@40 30 foaf:maker [ foaf:name "Matthias Mauch" ] ; # FIXME could give plugin author's URI here
Chris@40 31 dc:rights """GPL""" ;
Chris@40 32 # cc:license <Place plugin license URI here and uncomment> ;
Chris@40 33 vamp:identifier "chordino" ;
Chris@40 34 vamp:vamp_API_version vamp:api_version_2 ;
Chris@40 35 owl:versionInfo "1" ;
Chris@40 36 vamp:input_domain vamp:FrequencyDomain ;
Chris@40 37
Chris@40 38
matthiasm@58 39 vamp:parameter plugbase:chordino_param_useNNLS ;
matthiasm@58 40 vamp:parameter plugbase:chordino_param_useHMM ;
Chris@40 41 vamp:parameter plugbase:chordino_param_rollon ;
Chris@40 42 vamp:parameter plugbase:chordino_param_tuningmode ;
matthiasm@58 43 vamp:parameter plugbase:chordino_param_whitening ;
matthiasm@58 44 vamp:parameter plugbase:chordino_param_s ;
Chris@40 45
Chris@40 46 vamp:output plugbase:chordino_output_simplechord ;
matthiasm@86 47 vamp:output plugbase:chordino_output_chordnotes ;
mail@60 48 vamp:output plugbase:chordino_output_harmonicchange ;
Chris@40 49 .
matthiasm@58 50 plugbase:chordino_param_useNNLS a vamp:QuantizedParameter ;
matthiasm@58 51 vamp:identifier "useNNLS" ;
matthiasm@58 52 dc:title "use approximate transcription (NNLS)" ;
Chris@40 53 dc:format "" ;
Chris@40 54 vamp:min_value 0 ;
matthiasm@58 55 vamp:max_value 1 ;
Chris@40 56 vamp:unit "" ;
Chris@40 57 vamp:quantize_step 1 ;
matthiasm@58 58 vamp:default_value 1 ;
matthiasm@58 59 vamp:value_names ();
Chris@40 60 .
matthiasm@58 61 plugbase:chordino_param_useHMM a vamp:QuantizedParameter ;
matthiasm@58 62 vamp:identifier "useHMM" ;
matthiasm@58 63 dc:title "HMM (Viterbi decoding)" ;
matthiasm@58 64 dc:format "" ;
matthiasm@58 65 vamp:min_value 0 ;
matthiasm@58 66 vamp:max_value 1 ;
matthiasm@58 67 vamp:unit "" ;
matthiasm@58 68 vamp:quantize_step 1 ;
matthiasm@58 69 vamp:default_value 1 ;
matthiasm@58 70 vamp:value_names ();
matthiasm@58 71 .
matthiasm@58 72 plugbase:chordino_param_rollon a vamp:QuantizedParameter ;
Chris@40 73 vamp:identifier "rollon" ;
Chris@40 74 dc:title "spectral roll-on" ;
Chris@40 75 dc:format "" ;
Chris@40 76 vamp:min_value 0 ;
matthiasm@59 77 vamp:max_value 5 ;
matthiasm@59 78 vamp:unit "%" ;
matthiasm@59 79 vamp:quantize_step 0.5 ;
Chris@40 80 vamp:default_value 0 ;
Chris@40 81 vamp:value_names ();
Chris@40 82 .
Chris@40 83 plugbase:chordino_param_tuningmode a vamp:QuantizedParameter ;
Chris@40 84 vamp:identifier "tuningmode" ;
Chris@40 85 dc:title "tuning mode" ;
Chris@40 86 dc:format "" ;
Chris@40 87 vamp:min_value 0 ;
Chris@40 88 vamp:max_value 1 ;
Chris@40 89 vamp:unit "" ;
Chris@40 90 vamp:quantize_step 1 ;
Chris@40 91 vamp:default_value 0 ;
Chris@40 92 vamp:value_names ( "global tuning" "local tuning");
Chris@40 93 .
matthiasm@58 94 plugbase:chordino_param_whitening a vamp:Parameter ;
matthiasm@58 95 vamp:identifier "whitening" ;
matthiasm@58 96 dc:title "spectral whitening" ;
matthiasm@58 97 dc:format "" ;
matthiasm@58 98 vamp:min_value 0 ;
matthiasm@58 99 vamp:max_value 1 ;
matthiasm@58 100 vamp:unit "" ;
matthiasm@58 101 vamp:default_value 1 ;
matthiasm@58 102 vamp:value_names ();
matthiasm@58 103 .
matthiasm@58 104 plugbase:chordino_param_s a vamp:Parameter ;
matthiasm@58 105 vamp:identifier "s" ;
matthiasm@58 106 dc:title "spectral shape" ;
matthiasm@58 107 dc:format "" ;
matthiasm@58 108 vamp:min_value 0.5 ;
matthiasm@58 109 vamp:max_value 0.9 ;
matthiasm@58 110 vamp:unit "" ;
matthiasm@58 111 vamp:default_value 0.7 ;
matthiasm@58 112 vamp:value_names ();
matthiasm@58 113 .
matthiasm@58 114 plugbase:chordino_output_simplechord a vamp:SparseOutput ;
matthiasm@58 115 vamp:identifier "simplechord" ;
matthiasm@58 116 dc:title "Chord Estimate" ;
matthiasm@58 117 dc:description """Estimated chord times and labels. Two simple (non-state-of-the-art!) algorithms are available that smooth these to provide a chord transcription: a simple chord change method, and a standard HMM/Viterbi approach.""" ;
matthiasm@58 118 vamp:fixed_bin_count "true" ;
matthiasm@59 119 vamp:unit "chord" ;
matthiasm@59 120 a vamp:QuantizedOutput ;
matthiasm@59 121 vamp:quantize_step 1 ;
matthiasm@58 122 vamp:bin_count 0 ;
matthiasm@58 123 vamp:sample_type vamp:VariableSampleRate ;
matthiasm@58 124 vamp:sample_rate 21.5332 ;
matthiasm@59 125 vamp:computes_event_type af:ChordSegment ;
matthiasm@86 126
matthiasm@86 127 plugbase:chordino_output_chordnotes a vamp:SparseOutput ;
matthiasm@86 128 vamp:identifier "chordnotes" ;
matthiasm@86 129 dc:title "Note Representation of Chord Estimate" ;
matthiasm@86 130 dc:description """A simple represenation of the estimated chord with bass note (if applicable) and chord notes.""" ;
matthiasm@86 131 vamp:fixed_bin_count "true" ;
matthiasm@86 132 vamp:unit "MIDI units" ;
matthiasm@86 133 a vamp:QuantizedOutput ;
matthiasm@86 134 vamp:quantize_step 1 ;
matthiasm@86 135 a vamp:KnownExtentsOutput ;
matthiasm@86 136 vamp:min_value 0 ;
matthiasm@86 137 vamp:max_value 127 ;
matthiasm@86 138 vamp:bin_count 1 ;
matthiasm@86 139 vamp:sample_type vamp:VariableSampleRate ;
matthiasm@86 140 vamp:computes_event_type af:Note ;
matthiasm@58 141 .
mail@60 142 plugbase:chordino_output_harmonicchange a vamp:DenseOutput ;
mail@60 143 vamp:identifier "harmonicchange" ;
matthiasm@58 144 dc:title "Harmonic Change Value" ;
matthiasm@58 145 dc:description """An indication of the likelihood of harmonic change. Depends on the chord dictionary. Calculation is different depending on whether the Viterbi algorithm is used for chord estimation, or the simple chord estimate.""" ;
matthiasm@58 146 vamp:fixed_bin_count "true" ;
matthiasm@58 147 vamp:unit "" ;
matthiasm@58 148 a vamp:KnownExtentsOutput ;
matthiasm@58 149 vamp:min_value 0 ;
matthiasm@58 150 vamp:max_value 0.999 ;
matthiasm@58 151 vamp:bin_count 1 ;
matthiasm@59 152 vamp:computes_signal_type af:TonalChangeDetectionFunction;
matthiasm@58 153 .
matthiasm@58 154 plugbase:nnls-chroma a vamp:Plugin ;
matthiasm@58 155 dc:title "NNLS Chroma" ;
matthiasm@58 156 vamp:name "NNLS Chroma" ;
matthiasm@58 157 dc:description """This plugin provides a number of features derived from a DFT-based log-frequency amplitude spectrum: some variants of the log-frequency spectrum, including a semitone spectrum derived from approximate transcription using the NNLS algorithm; and based on this semitone spectrum, different chroma features.""" ;
matthiasm@58 158 foaf:maker [ foaf:name "Matthias Mauch" ] ; # FIXME could give plugin author's URI here
matthiasm@58 159 dc:rights """GPL""" ;
matthiasm@58 160 # cc:license <Place plugin license URI here and uncomment> ;
matthiasm@58 161 vamp:identifier "nnls-chroma" ;
matthiasm@58 162 vamp:vamp_API_version vamp:api_version_2 ;
matthiasm@58 163 owl:versionInfo "1" ;
matthiasm@58 164 vamp:input_domain vamp:FrequencyDomain ;
matthiasm@58 165
matthiasm@58 166
matthiasm@58 167 vamp:parameter plugbase:nnls-chroma_param_useNNLS ;
matthiasm@58 168 vamp:parameter plugbase:nnls-chroma_param_rollon ;
matthiasm@58 169 vamp:parameter plugbase:nnls-chroma_param_tuningmode ;
matthiasm@58 170 vamp:parameter plugbase:nnls-chroma_param_whitening ;
matthiasm@58 171 vamp:parameter plugbase:nnls-chroma_param_s ;
matthiasm@58 172 vamp:parameter plugbase:nnls-chroma_param_chromanormalize ;
matthiasm@58 173
matthiasm@58 174 vamp:output plugbase:nnls-chroma_output_logfreqspec ;
matthiasm@58 175 vamp:output plugbase:nnls-chroma_output_tunedlogfreqspec ;
matthiasm@58 176 vamp:output plugbase:nnls-chroma_output_semitonespectrum ;
matthiasm@58 177 vamp:output plugbase:nnls-chroma_output_chroma ;
matthiasm@58 178 vamp:output plugbase:nnls-chroma_output_basschroma ;
matthiasm@58 179 vamp:output plugbase:nnls-chroma_output_bothchroma ;
matthiasm@58 180 .
matthiasm@58 181 plugbase:nnls-chroma_param_useNNLS a vamp:QuantizedParameter ;
matthiasm@58 182 vamp:identifier "useNNLS" ;
matthiasm@58 183 dc:title "use approximate transcription (NNLS)" ;
matthiasm@58 184 dc:format "" ;
matthiasm@58 185 vamp:min_value 0 ;
matthiasm@58 186 vamp:max_value 1 ;
matthiasm@58 187 vamp:unit "" ;
matthiasm@58 188 vamp:quantize_step 1 ;
matthiasm@58 189 vamp:default_value 1 ;
matthiasm@58 190 vamp:value_names ();
matthiasm@58 191 .
matthiasm@58 192 plugbase:nnls-chroma_param_rollon a vamp:QuantizedParameter ;
matthiasm@58 193 vamp:identifier "rollon" ;
matthiasm@58 194 dc:title "spectral roll-on" ;
matthiasm@58 195 dc:format "" ;
matthiasm@58 196 vamp:min_value 0 ;
matthiasm@59 197 vamp:max_value 5 ;
matthiasm@59 198 vamp:unit "%" ;
matthiasm@59 199 vamp:quantize_step 0.5 ;
matthiasm@58 200 vamp:default_value 0 ;
matthiasm@58 201 vamp:value_names ();
matthiasm@58 202 .
matthiasm@58 203 plugbase:nnls-chroma_param_tuningmode a vamp:QuantizedParameter ;
matthiasm@58 204 vamp:identifier "tuningmode" ;
matthiasm@58 205 dc:title "tuning mode" ;
matthiasm@58 206 dc:format "" ;
matthiasm@58 207 vamp:min_value 0 ;
matthiasm@58 208 vamp:max_value 1 ;
matthiasm@58 209 vamp:unit "" ;
matthiasm@58 210 vamp:quantize_step 1 ;
matthiasm@58 211 vamp:default_value 0 ;
matthiasm@58 212 vamp:value_names ( "global tuning" "local tuning");
matthiasm@58 213 .
matthiasm@58 214 plugbase:nnls-chroma_param_whitening a vamp:Parameter ;
matthiasm@58 215 vamp:identifier "whitening" ;
matthiasm@58 216 dc:title "spectral whitening" ;
matthiasm@58 217 dc:format "" ;
matthiasm@58 218 vamp:min_value 0 ;
matthiasm@58 219 vamp:max_value 1 ;
matthiasm@58 220 vamp:unit "" ;
matthiasm@58 221 vamp:default_value 1 ;
matthiasm@58 222 vamp:value_names ();
matthiasm@58 223 .
matthiasm@58 224 plugbase:nnls-chroma_param_s a vamp:Parameter ;
matthiasm@58 225 vamp:identifier "s" ;
matthiasm@58 226 dc:title "spectral shape" ;
matthiasm@58 227 dc:format "" ;
matthiasm@58 228 vamp:min_value 0.5 ;
matthiasm@58 229 vamp:max_value 0.9 ;
matthiasm@58 230 vamp:unit "" ;
matthiasm@58 231 vamp:default_value 0.7 ;
matthiasm@58 232 vamp:value_names ();
matthiasm@58 233 .
matthiasm@58 234 plugbase:nnls-chroma_param_chromanormalize a vamp:QuantizedParameter ;
Chris@40 235 vamp:identifier "chromanormalize" ;
Chris@40 236 dc:title "chroma normalization" ;
Chris@40 237 dc:format "" ;
Chris@40 238 vamp:min_value 0 ;
Chris@40 239 vamp:max_value 3 ;
Chris@40 240 vamp:unit "" ;
Chris@40 241 vamp:quantize_step 1 ;
Chris@40 242 vamp:default_value 0 ;
Chris@40 243 vamp:value_names ( "none" "maximum norm" "L1 norm" "L2 norm");
Chris@40 244 .
matthiasm@58 245 plugbase:nnls-chroma_output_logfreqspec a vamp:DenseOutput ;
Chris@40 246 vamp:identifier "logfreqspec" ;
Chris@40 247 dc:title "Log-Frequency Spectrum" ;
Chris@40 248 dc:description """A Log-Frequency Spectrum (constant Q) that is obtained by cosine filter mapping.""" ;
Chris@40 249 vamp:fixed_bin_count "true" ;
Chris@40 250 vamp:unit "" ;
Chris@40 251 vamp:bin_count 256 ;
matthiasm@59 252 vamp:computes_signal_type af:Spectrogram ;
Chris@40 253 .
matthiasm@58 254 plugbase:nnls-chroma_output_tunedlogfreqspec a vamp:DenseOutput ;
Chris@40 255 vamp:identifier "tunedlogfreqspec" ;
Chris@40 256 dc:title "Tuned Log-Frequency Spectrum" ;
Chris@40 257 dc:description """A Log-Frequency Spectrum (constant Q) that is obtained by cosine filter mapping, then its tuned using the estimated tuning frequency.""" ;
Chris@40 258 vamp:fixed_bin_count "true" ;
Chris@40 259 vamp:unit "" ;
Chris@40 260 vamp:bin_count 256 ;
matthiasm@59 261 vamp:computes_signal_type af:Spectrogram ;
Chris@40 262 .
matthiasm@58 263 plugbase:nnls-chroma_output_semitonespectrum a vamp:DenseOutput ;
Chris@40 264 vamp:identifier "semitonespectrum" ;
Chris@40 265 dc:title "Semitone Spectrum" ;
Chris@40 266 dc:description """A semitone-spaced log-frequency spectrum derived from the third-of-a-semitone-spaced tuned log-frequency spectrum.""" ;
Chris@40 267 vamp:fixed_bin_count "true" ;
Chris@40 268 vamp:unit "" ;
Chris@40 269 vamp:bin_count 84 ;
matthiasm@59 270 vamp:computes_signal_type af:Spectrogram ;
Chris@40 271 .
matthiasm@58 272 plugbase:nnls-chroma_output_chroma a vamp:DenseOutput ;
Chris@40 273 vamp:identifier "chroma" ;
Chris@40 274 dc:title "Chromagram" ;
matthiasm@58 275 dc:description """Tuning-adjusted chromagram from NNLS approximate transcription, with an emphasis on the medium note range.""" ;
Chris@40 276 vamp:fixed_bin_count "true" ;
Chris@40 277 vamp:unit "" ;
Chris@40 278 vamp:bin_count 12 ;
matthiasm@58 279 vamp:bin_names ( "A" "Bb" "B" "C" "C#" "D" "Eb" "E" "F" "F#" "G" "Ab");
matthiasm@59 280 vamp:computes_signal_type af:Chromagram ;
Chris@40 281 .
matthiasm@58 282 plugbase:nnls-chroma_output_basschroma a vamp:DenseOutput ;
Chris@40 283 vamp:identifier "basschroma" ;
Chris@40 284 dc:title "Bass Chromagram" ;
matthiasm@58 285 dc:description """Tuning-adjusted bass chromagram from NNLS approximate transcription, with an emphasis on the bass note range.""" ;
Chris@40 286 vamp:fixed_bin_count "true" ;
Chris@40 287 vamp:unit "" ;
Chris@40 288 vamp:bin_count 12 ;
matthiasm@58 289 vamp:bin_names ( "A" "Bb" "B" "C" "C#" "D" "Eb" "E" "F" "F#" "G" "Ab");
matthiasm@59 290 vamp:computes_signal_type af:Chromagram ;
Chris@40 291 .
matthiasm@58 292 plugbase:nnls-chroma_output_bothchroma a vamp:DenseOutput ;
Chris@40 293 vamp:identifier "bothchroma" ;
Chris@40 294 dc:title "Chromagram and Bass Chromagram" ;
matthiasm@58 295 dc:description """Tuning-adjusted chromagram and bass chromagram (stacked on top of each other) from NNLS approximate transcription.""" ;
Chris@40 296 vamp:fixed_bin_count "true" ;
Chris@40 297 vamp:unit "" ;
Chris@40 298 vamp:bin_count 24 ;
Chris@40 299 vamp:bin_names ( "A (bass)" "Bb (bass)" "B (bass)" "C (bass)" "C# (bass)" "D (bass)" "Eb (bass)" "E (bass)" "F (bass)" "F# (bass)" "G (bass)" "Ab (bass)" "A" "Bb" "B" "C" "C#" "D" "Eb" "E" "F" "F#" "G" "Ab");
matthiasm@59 300 vamp:computes_signal_type af:Chromagram ;
Chris@40 301 .
Chris@40 302 plugbase:tuning a vamp:Plugin ;
Chris@40 303 dc:title "Tuning" ;
Chris@40 304 vamp:name "Tuning" ;
matthiasm@58 305 dc:description """The tuning plugin can estimate the local and global tuning of piece. The same tuning method is used for the NNLS Chroma and Chordino plugins.""" ;
Chris@40 306 foaf:maker [ foaf:name "Matthias Mauch" ] ; # FIXME could give plugin author's URI here
Chris@40 307 dc:rights """GPL""" ;
Chris@40 308 # cc:license <Place plugin license URI here and uncomment> ;
Chris@40 309 vamp:identifier "tuning" ;
Chris@40 310 vamp:vamp_API_version vamp:api_version_2 ;
Chris@40 311 owl:versionInfo "1" ;
Chris@40 312 vamp:input_domain vamp:FrequencyDomain ;
Chris@40 313
Chris@40 314 vamp:parameter plugbase:tuning_param_rollon ;
Chris@40 315
Chris@40 316 vamp:output plugbase:tuning_output_tuning ;
Chris@40 317 vamp:output plugbase:tuning_output_localtuning ;
Chris@40 318 .
matthiasm@58 319 plugbase:tuning_param_rollon a vamp:QuantizedParameter ;
Chris@40 320 vamp:identifier "rollon" ;
Chris@40 321 dc:title "spectral roll-on" ;
Chris@40 322 dc:format "" ;
Chris@40 323 vamp:min_value 0 ;
matthiasm@59 324 vamp:max_value 5 ;
matthiasm@59 325 vamp:unit "%" ;
matthiasm@59 326 vamp:quantize_step 0.5 ;
Chris@40 327 vamp:default_value 0 ;
Chris@40 328 vamp:value_names ();
Chris@40 329 .
Chris@40 330 plugbase:tuning_output_tuning a vamp:SparseOutput ;
Chris@40 331 vamp:identifier "tuning" ;
Chris@40 332 dc:title "Tuning" ;
matthiasm@58 333 dc:description """Returns a single label (at time 0 seconds) containing an estimate of the concert pitch in Hz.""" ;
Chris@40 334 vamp:fixed_bin_count "true" ;
Chris@40 335 vamp:unit "Hz" ;
Chris@40 336 a vamp:KnownExtentsOutput ;
Chris@40 337 vamp:min_value 427.47 ;
Chris@40 338 vamp:max_value 452.89 ;
mail@71 339 vamp:bin_count 1 ;
Chris@40 340 vamp:sample_type vamp:VariableSampleRate ;
matthiasm@58 341 vamp:sample_rate 2.38221e-44 ;
mail@71 342 vamp:computes_event_type af:Segment;
Chris@40 343 .
Chris@40 344 plugbase:tuning_output_localtuning a vamp:DenseOutput ;
Chris@40 345 vamp:identifier "localtuning" ;
Chris@40 346 dc:title "Local Tuning" ;
matthiasm@58 347 dc:description """Returns a tuning estimate at every analysis frame, an average of the (recent) previous frame-wise estimates of the concert pitch in Hz.""" ;
Chris@40 348 vamp:fixed_bin_count "true" ;
Chris@40 349 vamp:unit "Hz" ;
Chris@40 350 a vamp:KnownExtentsOutput ;
Chris@40 351 vamp:min_value 427.47 ;
Chris@40 352 vamp:max_value 452.89 ;
Chris@40 353 vamp:bin_count 1 ;
Chris@40 354 # vamp:computes_event_type <Place event type URI here and uncomment> ;
Chris@40 355 # vamp:computes_feature <Place feature attribute URI here and uncomment> ;
Chris@40 356 # vamp:computes_signal_type <Place signal type URI here and uncomment> ;
Chris@40 357 .
Chris@40 358