Mercurial > hg > piper-vamp-js-builds
changeset 15:87fc2ac1a25a
Add Constant-Q plugin build
author | Chris Cannam |
---|---|
date | Fri, 10 Mar 2017 15:40:40 +0000 |
parents | 5ff45be86e53 |
children | 618391468c8e |
files | constant-q-cpp/Makefile constant-q-cpp/cqvamp.cpp |
diffstat | 2 files changed, 85 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/constant-q-cpp/Makefile Fri Mar 10 15:40:40 2017 +0000 @@ -0,0 +1,47 @@ +PIPER_VAMP_JS_DIR := ../../piper-vamp-js +PLUGIN_SRC_DIR := ../../constant-q-cpp + +MODULE_NAME := CQ +MODULE_SOURCE := cqvamp.cpp + +LIB_DIR := src +INC_DIR := cq +VAMP_DIR := vamp +KFFT_DIR := src/ext/kissfft + +LIB_SOURCES := \ + $(LIB_DIR)/CQKernel.cpp \ + $(LIB_DIR)/ConstantQ.cpp \ + $(LIB_DIR)/CQSpectrogram.cpp \ + $(LIB_DIR)/CQInverse.cpp \ + $(LIB_DIR)/Chromagram.cpp \ + $(LIB_DIR)/Pitch.cpp \ + $(LIB_DIR)/dsp/FFT.cpp \ + $(LIB_DIR)/dsp/KaiserWindow.cpp \ + $(LIB_DIR)/dsp/MathUtilities.cpp \ + $(LIB_DIR)/dsp/Resampler.cpp \ + $(LIB_DIR)/dsp/SincWindow.cpp + +VAMP_SOURCES := \ + $(VAMP_DIR)/CQVamp.cpp \ + $(VAMP_DIR)/CQChromaVamp.cpp \ + $(VAMP_DIR)/libmain.cpp + +SOURCE_FILES := \ + $(LIB_SOURCES) \ + $(VAMP_SOURCES) + +KFFT_FILES := \ + $(LIB_DIR)/ext/kissfft/kiss_fft.c \ + $(LIB_DIR)/ext/kissfft/tools/kiss_fftr.c + +PLUGIN_SOURCES := $(addprefix $(PLUGIN_SRC_DIR)/,$(SOURCE_FILES)) +PLUGIN_C_SOURCES := $(addprefix $(PLUGIN_SRC_DIR)/,$(KFFT_FILES)) + +EMFLAGS := -s TOTAL_MEMORY=100000000 + +DEFINES := -Dkiss_fft_scalar=double + +INCLUDES := -I$(PLUGIN_SRC_DIR) -I$(PLUGIN_SRC_DIR)/$(LIB_DIR) -I$(PLUGIN_SRC_DIR)/$(INC_DIR) -I$(PLUGIN_SRC_DIR)/$(VAMP_DIR) -I$(PLUGIN_SRC_DIR)/$(KFFT_DIR) -I$(PLUGIN_SRC_DIR)/$(KFFT_DIR)/tools + +include $(PIPER_VAMP_JS_DIR)/Makefile.inc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/constant-q-cpp/cqvamp.cpp Fri Mar 10 15:40:40 2017 +0000 @@ -0,0 +1,38 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +#include "PiperExport.h" +#include "CQVamp.h" +#include "CQChromaVamp.h" + +static std::string soname("cqvamp"); + +class CQVampMIDIParamsAdapter : public piper_vamp_js::PiperAdapterBase<CQVamp> +{ +public: + CQVampMIDIParamsAdapter() : PiperAdapterBase<CQVamp>(soname) { } + virtual Vamp::Plugin *createPlugin(float inputSampleRate) const override { + return new CQVamp(inputSampleRate, true); + } +}; + +class CQVampHzParamsAdapter : public piper_vamp_js::PiperAdapterBase<CQVamp> +{ +public: + CQVampHzParamsAdapter() : PiperAdapterBase<CQVamp>(soname) { } + virtual Vamp::Plugin *createPlugin(float inputSampleRate) const override { + return new CQVamp(inputSampleRate, false); + } +}; + +static CQVampMIDIParamsAdapter cqVampMIDIParamsAdapter; +static CQVampHzParamsAdapter cqVampHzParamsAdapter; + +static piper_vamp_js::PiperAdapter<CQChromaVamp> cqChromaVampAdapter(soname); + +static piper_vamp_js::PiperPluginLibrary library({ + &cqVampMIDIParamsAdapter, + &cqVampHzParamsAdapter, + &cqChromaVampAdapter + }); + +PIPER_EXPORT_LIBRARY(library);