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