# HG changeset patch # User Chris Cannam # Date 1439378991 -3600 # Node ID e62530cdc1c33f88bcce4e29ffbf96ed410fc04e # Parent dc0f2b2be9e40addeebb3de77bddf3b96c1579dc Build stuff diff -r dc0f2b2be9e4 -r e62530cdc1c3 .hgignore --- a/.hgignore Wed Aug 12 11:46:29 2015 +0100 +++ b/.hgignore Wed Aug 12 12:29:51 2015 +0100 @@ -2,3 +2,6 @@ *~ *.orig *.o +*.so +*.a +*.bak diff -r dc0f2b2be9e4 -r e62530cdc1c3 .hgsub --- a/.hgsub Wed Aug 12 11:46:29 2015 +0100 +++ b/.hgsub Wed Aug 12 12:29:51 2015 +0100 @@ -1,1 +1,2 @@ constant-q-cpp = https://code.soundsoftware.ac.uk/hg/constant-q-cpp +bqvec = https://bitbucket.org/breakfastquay/bqvec diff -r dc0f2b2be9e4 -r e62530cdc1c3 .hgsubstate --- a/.hgsubstate Wed Aug 12 11:46:29 2015 +0100 +++ b/.hgsubstate Wed Aug 12 12:29:51 2015 +0100 @@ -1,1 +1,2 @@ +5c47cf61c391c403a5d57ac0f7d8101ce129018b bqvec 500416b7a651efa2a334ef0ee75fffde0d1f755d constant-q-cpp diff -r dc0f2b2be9e4 -r e62530cdc1c3 Makefile.inc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile.inc Wed Aug 12 12:29:51 2015 +0100 @@ -0,0 +1,77 @@ + +SRC_DIR := src + +VAMPSDK_DIR ?= ../vamp-plugin-sdk + +CQ_DIR ?= constant-q-cpp +BQVEC_DIR ?= bqvec + +PLUGIN_EXT ?= .so + +CXX ?= g++ +CC ?= gcc +AR ?= ar +RANLIB ?= ranlib + +CFLAGS := $(CFLAGS) +CXXFLAGS := $(CFLAGS) -I. -I$(VAMPSDK_DIR) -I$(CQ_DIR) -I$(BQVEC_DIR) -I$(BQVEC_DIR) -I$(CQ_DIR)/src/dsp $(CXXFLAGS) + +LDFLAGS := $(LDFLAGS) +PLUGIN_LDFLAGS := $(LDFLAGS) $(PLUGIN_LDFLAGS) + +LIBRARY := libtipic.a +PLUGIN := tipic-vamp$(PLUGIN_EXT) + +PUBLIC_HEADERS := + +LIB_HEADERS := $(SRC_DIR)/delays.h $(SRC_DIR)/filter-a.h $(SRC_DIR)/filter-b.h $(SRC_DIR)/Filter.h $(SRC_DIR)/PitchFilterbank.h +LIB_SOURCES := $(SRC_DIR)/Filter.cpp $(SRC_DIR)/PitchFilterbank.cpp +LIB_OBJECTS := $(LIB_SOURCES:.cpp=.o) +LIB_OBJECTS := $(LIB_OBJECTS:.c=.o) + +PLUGIN_HEADERS := +PLUGIN_SOURCES := + +BQVEC_HEADERS := $(BQVEC_DIR)/Allocators.h $(BQVEC_DIR)/Restrict.h $(BQVEC_DIR)/VectorOps.h +BQVEC_SOURCES := $(BQVEC_DIR)/src/Allocators.cpp + +HEADERS := $(PUBLIC_HEADERS) $(LIB_HEADERS) $(PLUGIN_HEADERS) $(BQVEC_HEADERS) +SOURCES := $(PUBLIC_SOURCES) $(LIB_SOURCES) $(PLUGIN_SOURCES) $(BQVEC_SOURCES) +OBJECTS := $(SOURCES:.cpp=.o) +OBJECTS := $(OBJECTS:.c=.o) + +LIBS := $(CQ_DIR)/libcq.a $(VAMPSDK_DIR)/libvamp-sdk.a + +all: constant-q-cpp $(LIBRARY) $(PLUGIN) + +.PHONY: constant-q-cpp +constant-q-cpp: + $(MAKE) -C $@ -f Makefile$(MAKEFILE_EXT) libcq.a + +$(PLUGIN): $(PLUGIN_OBJECTS) $(LIBS) + $(CXX) -o $@ $^ $(LIBS) $(PLUGIN_LDFLAGS) + +$(LIBRARY): $(LIB_OBJECTS) + $(RM) -f $@ + $(AR) cr $@ $^ + $(RANLIB) $@ + +clean: + rm -f $(OBJECTS) + $(MAKE) -C constant-q-cpp -f Makefile$(MAKEFILE_EXT) clean + +distclean: clean + rm -f $(PLUGIN) + +depend: + makedepend -I$(BQVEC_DIR) -Y -fMakefile.inc $(SOURCES) $(HEADERS) + +# DO NOT DELETE + +src/Filter.o: src/Filter.h bqvec/bqvec/Restrict.h bqvec/bqvec/VectorOps.h +src/Filter.o: bqvec/bqvec/Restrict.h bqvec/bqvec/Allocators.h +src/Filter.o: bqvec/bqvec/VectorOps.h +src/PitchFilterbank.o: src/PitchFilterbank.h src/Filter.h +src/PitchFilterbank.o: bqvec/bqvec/Restrict.h src/delays.h src/filter-a.h +src/PitchFilterbank.o: src/filter-b.h +src/Filter.o: bqvec/bqvec/Restrict.h diff -r dc0f2b2be9e4 -r e62530cdc1c3 Makefile.linux --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile.linux Wed Aug 12 12:29:51 2015 +0100 @@ -0,0 +1,16 @@ + +CFLAGS := -Wall -O3 -ffast-math -msse -msse2 -mfpmath=sse -ftree-vectorize -fPIC -I../vamp-plugin-sdk/ + +#CFLAGS := -g -fPIC -I../vamp-plugin-sdk + +CXXFLAGS := $(CFLAGS) -std=c++11 + +VAMPSDK_DIR := ../vamp-plugin-sdk +PLUGIN_LDFLAGS := -shared -Wl,-Bsymbolic -Wl,-z,defs -Wl,--version-script=vamp-plugin.map -lpthread + +PLUGIN_EXT := .so + +MAKEFILE_EXT := .linux + +include Makefile.inc + diff -r dc0f2b2be9e4 -r e62530cdc1c3 src/PitchFilterbank.cpp --- a/src/PitchFilterbank.cpp Wed Aug 12 11:46:29 2015 +0100 +++ b/src/PitchFilterbank.cpp Wed Aug 12 12:29:51 2015 +0100 @@ -8,6 +8,8 @@ #include "filter-a.h" #include "filter-b.h" +#include + using namespace std; static const int HIGHEST_FILTER_INDEX_AT_882 = 38; // MIDI pitch 59 @@ -76,14 +78,15 @@ // has effective delay filter_delay[20+n]. vector m_filters; - static int filterIndexForMidiPitch(int pitch) { + int filterIndexForMidiPitch(int pitch) const { return pitch - 21; } - static int filterDelay(int filterIndex) { + int filterDelay(int filterIndex) const { return filter_delay[20 + filterIndex]; } - static int totalDelay(int filterIndex) { - return filterDelay(filterIndex) + resamplerFor(filterIndex).getLatency(); + int totalDelay(int filterIndex) const { + return filterDelay(filterIndex) + + const_cast(this)->resamplerFor(filterIndex).getLatency(); } }; diff -r dc0f2b2be9e4 -r e62530cdc1c3 vamp-plugin.list --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vamp-plugin.list Wed Aug 12 12:29:51 2015 +0100 @@ -0,0 +1,1 @@ +_vampGetPluginDescriptor diff -r dc0f2b2be9e4 -r e62530cdc1c3 vamp-plugin.map --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/vamp-plugin.map Wed Aug 12 12:29:51 2015 +0100 @@ -0,0 +1,4 @@ +{ + global: vampGetPluginDescriptor; + local: *; +};