c@27: c@39: #include "PiperExport.h" c@27: c@27: #include "plugins/BeatTrack.h" c@27: #include "plugins/OnsetDetect.h" c@27: #include "plugins/ChromagramPlugin.h" c@27: #include "plugins/ConstantQSpectrogram.h" c@27: #include "plugins/TonalChangeDetect.h" c@27: #include "plugins/KeyDetect.h" c@27: #include "plugins/MFCCPlugin.h" c@27: #include "plugins/SegmenterPlugin.h" c@27: #include "plugins/SimilarityPlugin.h" c@27: #include "plugins/BarBeatTrack.h" c@27: //!!!#include "plugins/AdaptiveSpectrogram.h" c@27: #include "plugins/DWT.h" c@27: #include "plugins/Transcription.h" c@27: c@29: using piper_vamp_js::PiperAdapter; c@29: using piper_vamp_js::PiperPluginLibrary; c@27: c@48: static std::string libname("qm-vamp-plugins"); c@27: c@48: static PiperAdapter c@48: qmTempoTrackerAdapter( c@48: libname, c@48: { "Time", "Tempo" }, c@48: { c@48: { "beats", c@48: { "http://purl.org/ontology/af/Beat" } c@48: }, c@48: { "detection_fn", c@48: { "http://purl.org/ontology/af/OnsetDetectionFunction" } c@48: }, c@48: { "tempo", c@48: { "http://purl.org/ontology/af/Tempo" } c@48: } c@48: } c@48: ); c@48: c@48: static PiperAdapter c@48: qmOnsetDetectorAdapter( c@48: libname, c@48: { "Time", "Onsets" }, c@48: { c@48: { "onsets", c@48: { "http://purl.org/ontology/af/Onset" } c@48: }, c@48: { "detection_fn", c@48: { "http://purl.org/ontology/af/OnsetDetectionFunction" } c@48: }, c@48: { "smoothed_df", c@48: { "http://purl.org/ontology/af/OnsetDetectionFunction" } c@48: } c@48: } c@48: ); c@48: c@48: static PiperAdapter c@48: qmChromagramAdapter( c@48: libname, c@48: { "Visualisation" }, c@48: { c@48: { "chromagram", c@48: { "http://purl.org/ontology/af/Chromagram" } c@48: }, c@48: { "chromameans", c@48: { "" } c@48: } c@48: } c@48: ); c@48: c@48: static PiperAdapter c@48: qmConstantQAdapter( c@48: libname, c@48: { "Visualisation" }, c@48: { c@48: { "constantq", c@48: { "http://purl.org/ontology/af/Spectrogram" } c@48: } c@48: } c@48: ); c@48: c@48: static PiperAdapter c@48: qmTonalChangeAdapter( c@48: libname, c@48: { "Key and Tonality" }, c@48: { c@48: { "tcstransform", c@48: { "http://purl.org/ontology/af/TonalContentSpace" } c@48: }, c@48: { "tcfunction", c@48: { "http://purl.org/ontology/af/TonalChangeDetectionFunction" } c@48: }, c@48: { "changepositions", c@48: { "http://purl.org/ontology/af/TonalOnset" } c@48: } c@48: } c@48: ); c@48: c@48: static PiperAdapter c@48: qmKeyDetectorAdapter( c@48: libname, c@48: { "Key and Tonality" }, c@48: { c@48: { "tonic", c@48: { "" } c@48: }, c@48: { "mode", c@48: { "" } c@48: }, c@48: { "key", c@48: { "http://purl.org/ontology/af/KeyChange" } c@48: }, c@48: { "keystrength", c@48: { "" } c@48: } c@48: } c@48: ); c@48: c@48: static PiperAdapter c@48: qmSegmenterAdapter( c@48: libname, c@48: { "Classification" }, c@48: { c@48: { "segmentation", c@48: { "http://purl.org/ontology/af/StructuralSegment" } c@48: } c@48: } c@48: ); c@48: c@48: static PiperAdapter c@48: qmSimilarityAdapter( c@48: libname, c@48: { "Classification" }, c@48: { c@48: { "distancematrix", c@48: { "" } c@48: }, c@48: { "distancevector", c@48: { "" } c@48: }, c@48: { "sorteddistancevector", c@48: { "" } c@48: }, c@48: { "means", c@48: { "" } c@48: }, c@48: { "variances", c@48: { "" } c@48: }, c@48: { "beatspectrum", c@48: { "" } c@48: } c@48: } c@48: ); c@48: c@48: static PiperAdapter c@48: qmMfccAdapter( c@48: libname, c@48: { "Low Level Features" }, c@48: { c@48: { "coefficients", c@48: { "" } c@48: }, c@48: { "means", c@48: { "" } c@48: } c@48: } c@48: ); c@48: c@48: static PiperAdapter c@48: qmBarBeatTrackerAdapter( c@48: libname, c@48: { "Time", "Tempo" }, c@48: { c@48: { "beats", c@48: { "http://purl.org/ontology/af/Beat" } c@48: }, c@48: { "bars", c@48: { "" } c@48: }, c@48: { "beatcounts", c@48: { "" } c@48: }, c@48: { "beatsd", c@48: { "" } c@48: } c@48: } c@48: ); c@48: c@48: static PiperAdapter c@48: qmDwtAdapter( c@48: libname, c@48: { "Visualisation" }, c@48: { c@48: { "wcoeff", c@48: { "" } c@48: } c@48: } c@48: ); c@48: c@48: /* c@48: static PiperAdapter c@48: qmAdaptiveSpectrogramAdapter( c@48: libname, c@48: { "Visualisation" }, c@48: { c@48: { "output", c@48: { "http://purl.org/ontology/af/Spectrogram" } c@48: } c@48: } c@48: ); c@48: */ c@48: c@48: static PiperAdapter c@48: qmTranscriptionAdapter( c@48: libname, c@48: { "Notes" }, c@48: { c@48: { "transcription", c@48: { "http://purl.org/ontology/af/Note" } c@48: } c@48: } c@48: ); c@27: c@27: static PiperPluginLibrary library({ c@48: &qmTempoTrackerAdapter, c@48: &qmOnsetDetectorAdapter, c@48: &qmChromagramAdapter, c@48: &qmConstantQAdapter, c@48: &qmTonalChangeAdapter, c@48: &qmKeyDetectorAdapter, c@48: &qmSegmenterAdapter, c@48: &qmSimilarityAdapter, c@48: &qmMfccAdapter, c@48: &qmBarBeatTrackerAdapter, c@48: &qmDwtAdapter, c@48: // &qmAdaptivespectrogramAdapter, c@48: &qmTranscriptionAdapter c@39: }); c@27: c@39: PIPER_EXPORT_LIBRARY(library); c@27: