Chris@15: Chris@15: #include "PiperExport.h" Chris@21: Chris@15: #include "CQVamp.h" Chris@15: #include "CQChromaVamp.h" Chris@15: Chris@21: using piper_vamp_js::PiperAdapter; Chris@21: using piper_vamp_js::PiperAdapterBase; Chris@21: using piper_vamp_js::PiperPluginLibrary; Chris@15: Chris@21: static std::string libname("cqvamp"); Chris@21: Chris@21: piper_vamp::StaticOutputInfo cqStaticOutputInfo { Chris@21: { "constantq", Chris@21: { "http://purl.org/ontology/af/Spectrogram" } Chris@21: } Chris@21: }; Chris@21: Chris@21: class CQVampMIDIParamsAdapter : public PiperAdapterBase Chris@15: { Chris@15: public: Chris@21: CQVampMIDIParamsAdapter() : PiperAdapterBase(libname, Chris@21: { "Visualisation" }, Chris@21: cqStaticOutputInfo) { } Chris@15: virtual Vamp::Plugin *createPlugin(float inputSampleRate) const override { Chris@15: return new CQVamp(inputSampleRate, true); Chris@15: } Chris@15: }; Chris@15: Chris@21: class CQVampHzParamsAdapter : public PiperAdapterBase Chris@15: { Chris@15: public: Chris@21: CQVampHzParamsAdapter() : PiperAdapterBase(libname, Chris@21: { "Visualisation" }, Chris@21: cqStaticOutputInfo) { } Chris@15: virtual Vamp::Plugin *createPlugin(float inputSampleRate) const override { Chris@15: return new CQVamp(inputSampleRate, false); Chris@15: } Chris@15: }; Chris@15: Chris@15: static CQVampMIDIParamsAdapter cqVampMIDIParamsAdapter; Chris@15: static CQVampHzParamsAdapter cqVampHzParamsAdapter; Chris@15: Chris@21: static PiperAdapter Chris@21: cqChromaVampAdapter( Chris@21: libname, Chris@21: { "Visualisation" }, Chris@21: { Chris@21: { "chromagram", Chris@21: { "http://purl.org/ontology/af/Chromagram" } Chris@21: } Chris@21: } Chris@21: ); Chris@15: Chris@21: static PiperPluginLibrary library({ Chris@21: &cqVampMIDIParamsAdapter, Chris@21: &cqVampHzParamsAdapter, Chris@21: &cqChromaVampAdapter Chris@21: }); Chris@15: Chris@15: PIPER_EXPORT_LIBRARY(library); Chris@21: