diff --git a/Source/Processors/ChannelMappingNode/Makefile b/Source/Processors/ChannelMappingNode/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..4a5a7d7dee8d4b9eb0d36ca34beb65e7b6c0a869
--- /dev/null
+++ b/Source/Processors/ChannelMappingNode/Makefile
@@ -0,0 +1,67 @@
+TYPE = filters
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := ChannelMappingNode.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/ChannelMappingEditor.o \
+  $(OBJDIR)/ChannelMappingNode.o \
+  $(OBJDIR)/SpikeDetectorEditor.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/ChannelMappingEditor.o: ChannelMappingEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ChannelMappingEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/ChannelMappingNode.o: ChannelMappingNode.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ChannelMappingNode.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/SpikeDetectorEditor.o: ../SpikeDetector/SpikeDetectorEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SpikeDetectorEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/EventDetector/Makefile b/Source/Processors/EventDetector/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..51ce12d72128c737a48290cca67b1e4a48ffdc55
--- /dev/null
+++ b/Source/Processors/EventDetector/Makefile
@@ -0,0 +1,55 @@
+TYPE = filters
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := EventDetector.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/EventDetector.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/EventDetector.o: EventDetector.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling EventDetector.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/EventNode/Makefile b/Source/Processors/EventNode/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..3d1ec08dd2b072d976e5050c34a9f60f947cd5dd
--- /dev/null
+++ b/Source/Processors/EventNode/Makefile
@@ -0,0 +1,61 @@
+TYPE = filters
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := EventNode.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/EventNodeEditor.o \
+  $(OBJDIR)/EventNode.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/EventNodeEditor.o: EventNodeEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling EventNodeEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/EventNode.o: EventNode.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling EventNode.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/ExampleProcessor/Makefile b/Source/Processors/ExampleProcessor/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..f9ad4af076dc4e1ea7923457c458b4c84b79d1d6
--- /dev/null
+++ b/Source/Processors/ExampleProcessor/Makefile
@@ -0,0 +1,56 @@
+TYPE = sources
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := ExampleProcessor.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/ExampleProcessor.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@rm -rf $(BINDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/ExampleProcessor.o: ExampleProcessor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ExampleProcessor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/FPGAOutput/Makefile b/Source/Processors/FPGAOutput/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..3b0d2976d6910a4f80faebc56f2e94eee98865aa
--- /dev/null
+++ b/Source/Processors/FPGAOutput/Makefile
@@ -0,0 +1,85 @@
+TYPE = sinks
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := FPGAOutput.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/FPGAOutputEditor.o \
+  $(OBJDIR)/FPGAOutput.o \
+	$(OBJDIR)/FPGAThread.o \
+	$(OBJDIR)/DataThread.o \
+	$(OBJDIR)/okFrontPanelDLL.o \
+	$(OBJDIR)/DataBuffer.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/FPGAOutputEditor.o: FPGAOutputEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling FPGAOutputEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/FPGAOutput.o: FPGAOutput.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling FPGAOutput.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/FPGAThread.o: ../DataThreads/FPGAThread.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling FPGAThread.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/DataThread.o: ../DataThreads/DataThread.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling DataThread.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/okFrontPanelDLL.o: ../DataThreads/rhythm-api/okFrontPanelDLL.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling okFrontPanelDLL.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/DataBuffer.o: ../DataThreads/DataBuffer.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling DataBuffer.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/FileReader/Makefile b/Source/Processors/FileReader/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..0e81d8571ba71ff08c73f13bb7a4a2cb821f5bff
--- /dev/null
+++ b/Source/Processors/FileReader/Makefile
@@ -0,0 +1,61 @@
+TYPE = sources
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := FileReader.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/FileReaderEditor.o \
+  $(OBJDIR)/FileReader.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/FileReaderEditor.o: FileReaderEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling FileReaderEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/FileReader.o: FileReader.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling FileReader.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/FilterNode/Makefile b/Source/Processors/FilterNode/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..4c83ffb723edd57b13c6ba63cbad6afd672261ec
--- /dev/null
+++ b/Source/Processors/FilterNode/Makefile
@@ -0,0 +1,163 @@
+TYPE = filters
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := FilterNode.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/FilterEditor.o \
+  $(OBJDIR)/FilterNode.o \
+  $(OBJDIR)/Bessel.o \
+  $(OBJDIR)/Biquad.o \
+  $(OBJDIR)/Butterworth.o \
+  $(OBJDIR)/Cascade.o \
+  $(OBJDIR)/ChebyshevI.o \
+  $(OBJDIR)/ChebyshevII.o \
+  $(OBJDIR)/Custom.o \
+  $(OBJDIR)/Design.o \
+  $(OBJDIR)/Documentation.o \
+  $(OBJDIR)/Elliptic.o \
+  $(OBJDIR)/Filter.o \
+  $(OBJDIR)/Legendre.o \
+  $(OBJDIR)/Param.o \
+  $(OBJDIR)/PoleFilter.o \
+  $(OBJDIR)/RBJ.o \
+  $(OBJDIR)/RootFinder.o \
+  $(OBJDIR)/State.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/FilterEditor.o: FilterEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling FilterEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/FilterNode.o: FilterNode.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling FilterNode.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Bessel.o: ../Dsp/Bessel.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Bessel.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Biquad.o: ../Dsp/Biquad.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Biquad.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Butterworth.o: ../Dsp/Butterworth.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Butterworth.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Cascade.o: ../Dsp/Cascade.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Cascade.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/ChebyshevI.o: ../Dsp/ChebyshevI.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ChebyshevI.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/ChebyshevII.o: ../Dsp/ChebyshevII.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ChebyshevII.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Custom.o: ../Dsp/Custom.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Custom.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Design.o: ../Dsp/Design.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Design.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Documentation.o: ../Dsp/Documentation.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Documentation.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Elliptic.o: ../Dsp/Elliptic.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Elliptic.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Filter.o: ../Dsp/Filter.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Filter.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Legendre.o: ../Dsp/Legendre.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Legendre.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Param.o: ../Dsp/Param.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Param.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/PoleFilter.o: ../Dsp/PoleFilter.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling PoleFilter.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/RBJ.o: ../Dsp/RBJ.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling RBJ.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/RootFinder.o: ../Dsp/RootFinder.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling RootFinder.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/State.o: ../Dsp/State.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling State.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/LfpDisplayNode/Makefile b/Source/Processors/LfpDisplayNode/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..92d2433d4c85b020bb0d1b985f08c74a54ca9c09
--- /dev/null
+++ b/Source/Processors/LfpDisplayNode/Makefile
@@ -0,0 +1,73 @@
+TYPE = sinks
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := LfpDisplayNode.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/LfpDisplayEditor.o \
+  $(OBJDIR)/LfpDisplayNode.o \
+  $(OBJDIR)/LfpDisplayCanvas.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@rm -rf $(BINDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/LfpDisplayEditor.o: LfpDisplayEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling LfpDisplayEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/LfpDisplayCanvas.o: LfpDisplayCanvas.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling LfpDisplayCanvas.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/LfpDisplayNode.o: LfpDisplayNode.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling LfpDisplayNode.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/VisualizerEditor.o: ../Editors/VisualizerEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling VisualizerEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/LfpTriggeredAverageNode/Makefile b/Source/Processors/LfpTriggeredAverageNode/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..db66cc17fe2cd6f9796848df83b57a6e37502183
--- /dev/null
+++ b/Source/Processors/LfpTriggeredAverageNode/Makefile
@@ -0,0 +1,73 @@
+TYPE = sinks
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := LfpTriggeredAverageNode.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/LfpTriggeredAverageEditor.o \
+  $(OBJDIR)/LfpTriggeredAverageNode.o \
+  $(OBJDIR)/LfpTriggeredAverageCanvas.o \
+  $(OBJDIR)/VisualizerEditor.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/LfpTriggeredAverageEditor.o: LfpTriggeredAverageEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling LfpTriggeredAverageEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/LfpTriggeredAverageCanvas.o: LfpTriggeredAverageCanvas.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling LfpTriggeredAverageCanvas.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/LfpTriggeredAverageNode.o: LfpTriggeredAverageNode.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling LfpTriggeredAverageNode.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/VisualizerEditor.o: ../Editors/VisualizerEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling VisualizerEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/Merger/Makefile b/Source/Processors/Merger/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..0c339da29c12c26601c779b2b32fd84e415987c0
--- /dev/null
+++ b/Source/Processors/Merger/Makefile
@@ -0,0 +1,61 @@
+TYPE = utilities
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := Merger.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/MergerEditor.o \
+  $(OBJDIR)/Merger.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/MergerEditor.o: MergerEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling MergerEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Merger.o: Merger.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Merger.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/NetworkEvents/NetworkEvents.h b/Source/Processors/NetworkEvents/NetworkEvents.h
index 2aca9ba512cd47add32b1db789c2e0ce1af154ea..3c7c49887a47fb382c27362aed2cf9a9ca4f6c1a 100644
--- a/Source/Processors/NetworkEvents/NetworkEvents.h
+++ b/Source/Processors/NetworkEvents/NetworkEvents.h
@@ -37,7 +37,7 @@
 
 #endif
 
-#include "../../JuceLibraryCode/JuceHeader.h"
+#include "../../../JuceLibraryCode/JuceHeader.h"
 #include "../GenericProcessor/GenericProcessor.h"
 #include "../ProcessorGraph/ProcessorGraph.h"
 
diff --git a/Source/Processors/PSTH/Makefile b/Source/Processors/PSTH/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..952f9cc1b0aa19bbd975abf3a70e5375b4886c4f
--- /dev/null
+++ b/Source/Processors/PSTH/Makefile
@@ -0,0 +1,73 @@
+TYPE = utilities
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := PeriStimulusTimeHistogramEditor.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/PeriStimulusTimeHistogramEditor.o \
+  $(OBJDIR)/PeriStimulusTimeHistogramNode.o \
+  $(OBJDIR)/TrialCircularBuffer.o \
+  $(OBJDIR)/tictoc.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/PeriStimulusTimeHistogramEditorEditor.o: PeriStimulusTimeHistogramEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling PeriStimulusTimeHistogramEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/PeriStimulusTimeHistogramEditor.o: PeriStimulusTimeHistogramNode.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling PeriStimulusTimeHistogramNode.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/TrialCircularBuffer.o: TrialCircularBuffer.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling TrialCircularBuffer.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/tictoc.o: tictoc.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling tictoc.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/PSTH/PeriStimulusTimeHistogramNode.h b/Source/Processors/PSTH/PeriStimulusTimeHistogramNode.h
index 78660b4154302535c7d28e9f1ec1e4e5d8e8cdcd..cb42a6c9e31ed22efd5fab4d1e0ddfb552301022 100644
--- a/Source/Processors/PSTH/PeriStimulusTimeHistogramNode.h
+++ b/Source/Processors/PSTH/PeriStimulusTimeHistogramNode.h
@@ -24,7 +24,7 @@
 #ifndef PSTHNODE_H_
 #define PSTHNODE_H_
 
-#include "../../JuceLibraryCode/JuceHeader.h"
+#include "../../../JuceLibraryCode/JuceHeader.h"
 //#include "../Editors/SpikeDisplayEditor.h"
 #include "../Editors/VisualizerEditor.h"
 #include "../NetworkEvents/NetworkEvents.h"
diff --git a/Source/Processors/PSTH/TrialCircularBuffer.h b/Source/Processors/PSTH/TrialCircularBuffer.h
index 7706a4f9ae4b833f1552e86148363e1cb58a2883..c2d1e5f96503c841974e94b13546a52bbf100f0e 100644
--- a/Source/Processors/PSTH/TrialCircularBuffer.h
+++ b/Source/Processors/PSTH/TrialCircularBuffer.h
@@ -24,7 +24,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef __TRIALCIRCULARBUFFER_H__
 #define __TRIALCIRCULARBUFFER_H__
 
-#include "../../JuceLibraryCode/JuceHeader.h"
+#include "../../../JuceLibraryCode/JuceHeader.h"
 #include "../GenericProcessor/GenericProcessor.h"
 #include "../Visualization/SpikeObject.h"
 #include "../Visualization/MatlabLikePlot.h"
diff --git a/Source/Processors/PSTH/tictoc.h b/Source/Processors/PSTH/tictoc.h
index ee2490f4669c1c9cba3ac9ee5715ea3214480b7d..8cc2f17c12dbe8b12185edfce4871beaed4bdbdc 100644
--- a/Source/Processors/PSTH/tictoc.h
+++ b/Source/Processors/PSTH/tictoc.h
@@ -25,7 +25,7 @@
 #ifndef __TICTOC_H
 #define __TICTOC_H
 
-#include "../../JuceLibraryCode/JuceHeader.h"
+#include "../../../JuceLibraryCode/JuceHeader.h"
 class TicToc
 {
 public:
diff --git a/Source/Processors/PhaseDetector/Makefile b/Source/Processors/PhaseDetector/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..32ad83683d9ed88fcec75ec8ad8d75dbc8098087
--- /dev/null
+++ b/Source/Processors/PhaseDetector/Makefile
@@ -0,0 +1,61 @@
+TYPE = filters
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := PhaseDetector.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/PhaseDetectorEditor.o \
+  $(OBJDIR)/PhaseDetector.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/PhaseDetectorEditor.o: PhaseDetectorEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling PhaseDetectorEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/PhaseDetector.o: PhaseDetector.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling PhaseDetector.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/PulsePalOutput/Makefile b/Source/Processors/PulsePalOutput/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..e1abe2f48c4a02816ae8106467bbbd7fad9b20ba
--- /dev/null
+++ b/Source/Processors/PulsePalOutput/Makefile
@@ -0,0 +1,73 @@
+TYPE = sinks
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := PulsePalOutput.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/PulsePalOutputEditor.o \
+  $(OBJDIR)/PulsePalOutput.o \
+  $(OBJDIR)/PulsePal.o \
+  $(OBJDIR)/ofSerial.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/PulsePalOutputEditor.o: PulsePalOutputEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling PulsePalOutputEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/PulsePalOutput.o: PulsePalOutput.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling PulsePalOutput.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/PulsePal.o: PulsePal.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling PulsePal.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/ofSerial.o: ../Serial/ofSerial.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ofSerial.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/RecordControl/Makefile b/Source/Processors/RecordControl/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..532d329f105e6afcac34c81993ec9b0cb5a3b802
--- /dev/null
+++ b/Source/Processors/RecordControl/Makefile
@@ -0,0 +1,61 @@
+TYPE = utilities
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := RecordControl.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/RecordControlEditor.o \
+  $(OBJDIR)/RecordControl.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/RecordControlEditor.o: RecordControlEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling RecordControlEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/RecordControl.o: RecordControl.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling RecordControl.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/ResamplingNode/Makefile b/Source/Processors/ResamplingNode/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..4c3942c5d5aebceeb122d078c4185d9b19e26aed
--- /dev/null
+++ b/Source/Processors/ResamplingNode/Makefile
@@ -0,0 +1,163 @@
+TYPE = sources
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := ResamplingNode.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/ResamplingNodeEditor.o \
+  $(OBJDIR)/ResamplingNode.o \
+  $(OBJDIR)/Bessel.o \
+  $(OBJDIR)/Biquad.o \
+  $(OBJDIR)/Butterworth.o \
+  $(OBJDIR)/Cascade.o \
+  $(OBJDIR)/ChebyshevI.o \
+  $(OBJDIR)/ChebyshevII.o \
+  $(OBJDIR)/Custom.o \
+  $(OBJDIR)/Design.o \
+  $(OBJDIR)/Documentation.o \
+  $(OBJDIR)/Elliptic.o \
+  $(OBJDIR)/Filter.o \
+  $(OBJDIR)/Legendre.o \
+  $(OBJDIR)/Param.o \
+  $(OBJDIR)/PoleFilter.o \
+  $(OBJDIR)/RBJ.o \
+  $(OBJDIR)/RootFinder.o \
+  $(OBJDIR)/State.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/ResamplingNodeEditor.o: ResamplingNodeEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ResamplingNodeEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/ResamplingNode.o: ResamplingNode.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ResamplingNode.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Bessel.o: ../Dsp/Bessel.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Bessel.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Biquad.o: ../Dsp/Biquad.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Biquad.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Butterworth.o: ../Dsp/Butterworth.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Butterworth.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Cascade.o: ../Dsp/Cascade.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Cascade.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/ChebyshevI.o: ../Dsp/ChebyshevI.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ChebyshevI.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/ChebyshevII.o: ../Dsp/ChebyshevII.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling ChebyshevII.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Custom.o: ../Dsp/Custom.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Custom.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Design.o: ../Dsp/Design.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Design.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Documentation.o: ../Dsp/Documentation.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Documentation.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Elliptic.o: ../Dsp/Elliptic.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Elliptic.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Filter.o: ../Dsp/Filter.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Filter.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Legendre.o: ../Dsp/Legendre.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Legendre.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Param.o: ../Dsp/Param.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Param.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/PoleFilter.o: ../Dsp/PoleFilter.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling PoleFilter.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/RBJ.o: ../Dsp/RBJ.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling RBJ.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/RootFinder.o: ../Dsp/RootFinder.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling RootFinder.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/State.o: ../Dsp/State.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling State.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/SignalGenerator/Makefile b/Source/Processors/SignalGenerator/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..5d2c248ee02961cdf5c2bc1095a484020142479a
--- /dev/null
+++ b/Source/Processors/SignalGenerator/Makefile
@@ -0,0 +1,68 @@
+TYPE = sources
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := SignalGenerator.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/SignalGeneratorEditor.o \
+  $(OBJDIR)/SignalGenerator.o \
+  $(OBJDIR)/SpikeObject.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} installed.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@rm -rf $(BINDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/SignalGeneratorEditor.o: SignalGeneratorEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SignalGeneratorEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/SignalGenerator.o: SignalGenerator.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SignalGenerator.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/SpikeObject.o: ../Visualization/SpikeObject.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SpikeObject.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/SpikeDetector/Makefile b/Source/Processors/SpikeDetector/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..1b5965658b42e301e9edc3f37846e1e40245fd41
--- /dev/null
+++ b/Source/Processors/SpikeDetector/Makefile
@@ -0,0 +1,68 @@
+TYPE = utilities
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := SpikeDetector.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/SpikeDetector.o \
+  $(OBJDIR)/SpikeDetectorEditor.o \
+  $(OBJDIR)/SpikeObject.o \
+#$(OBJDIR)/Channel.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} linked.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/SpikeDetector.o: ../SpikeDetector/SpikeDetector.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SpikeDetector.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/SpikeDetectorEditor.o: SpikeDetectorEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SpikeDetectorEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/SpikeObject.o: ../Visualization/SpikeObject.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SpikeObject.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/SpikeDisplayNode/Makefile b/Source/Processors/SpikeDisplayNode/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..dbe00688b6b871865a27af4cd99803b26ff0a10c
--- /dev/null
+++ b/Source/Processors/SpikeDisplayNode/Makefile
@@ -0,0 +1,79 @@
+TYPE = sinks
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := SpikeDisplayNode.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/SpikeDisplayEditor.o \
+  $(OBJDIR)/SpikeDisplayNode.o \
+	$(OBJDIR)/SpikeDisplayCanvas.o \
+	$(OBJDIR)/VisualizerEditor.o \
+	$(OBJDIR)/SpikeObject.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} linked.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/SpikeDisplayEditor.o: SpikeDisplayEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SpikeDisplayEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/SpikeDisplayCanvas.o: SpikeDisplayCanvas.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SpikeDisplayCanvas.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/SpikeDisplayNode.o: SpikeDisplayNode.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SpikeDisplayNode.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/VisualizerEditor.o: ../Editors/VisualizerEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling VisualizerEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/SpikeObject.o: ../Visualization/SpikeObject.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SpikeObject.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/SpikeSorter/SpikeSortBoxes.h b/Source/Processors/SpikeSorter/SpikeSortBoxes.h
index 8d58de7228f4b1a9832aba444f355d3f4f8b22db..f55e8328515e9a1b1cf966fb8a272b14b9b32e1e 100644
--- a/Source/Processors/SpikeSorter/SpikeSortBoxes.h
+++ b/Source/Processors/SpikeSorter/SpikeSortBoxes.h
@@ -24,7 +24,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #ifndef __SPIKESORTBOXES_H
 #define __SPIKESORTBOXES_H
 
-#include "../../JuceLibraryCode/JuceHeader.h"
+#include "../../../JuceLibraryCode/JuceHeader.h"
 
 #include "../GenericProcessor/GenericProcessor.h"
 #include "SpikeSorterEditor.h"
diff --git a/Source/Processors/Splitter/Makefile b/Source/Processors/Splitter/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..9a63e5854f35645c5f45c003509df9135f253a46
--- /dev/null
+++ b/Source/Processors/Splitter/Makefile
@@ -0,0 +1,61 @@
+TYPE = utilities
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := Splitter.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/SplitterEditor.o \
+  $(OBJDIR)/Splitter.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} linked.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/SplitterEditor.o: SplitterEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling SplitterEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/Splitter.o: Splitter.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling Splitter.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)
diff --git a/Source/Processors/WiFiOutput/Makefile b/Source/Processors/WiFiOutput/Makefile
new file mode 100755
index 0000000000000000000000000000000000000000..5584273439ec714bd5aca9b71243875edbe0b64d
--- /dev/null
+++ b/Source/Processors/WiFiOutput/Makefile
@@ -0,0 +1,67 @@
+TYPE = sinks
+
+ifeq ($(TARGET_ARCH),)
+  TARGET_ARCH := -march=native
+endif
+
+# (this disables dependency generation if multiple architectures are set)
+DEPFLAGS := $(if $(word 2, $(TARGET_ARCH)), , -MMD)
+
+PLUGINDIR := /usr/local/lib/GUI
+BINDIR := build
+LIBDIR := build
+OBJDIR := build/intermediate/Debug
+OUTDIR := build
+CPPFLAGS := $(DEPFLAGS) -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+CFLAGS += $(CPPFLAGS) $(TARGET_ARCH) -g -ggdb -fPIC -O0
+CXXFLAGS += $(CFLAGS) 
+LDFLAGS += -L$(BINDIR) -L$(LIBDIR) -shared -L/usr/X11R6/lib/ -lGL -lX11 -lXext -lXinerama -lasound -ldl -lfreetype -lpthread -lrt -lephys 
+LDDEPS :=
+RESFLAGS :=  -D "LINUX=1" -D "DEBUG=1" -D "_DEBUG=1" -D "JUCER_LINUX_MAKE_7346DA2A=1" -I /usr/include -I /usr/include/freetype2 -I ../../../JuceLibraryCode
+TARGET := WiFiOutput.so
+BLDCMD = $(CXX) -shared -o $(OUTDIR)/$(TARGET) $(OBJECTS) $(LDFLAGS) $(RESOURCES) $(TARGET_ARCH)
+
+OBJECTS := \
+  $(OBJDIR)/WiFiOutputEditor.o \
+  $(OBJDIR)/WiFiOutput.o \
+  $(OBJDIR)/PracticalSocket.o \
+
+.PHONY: clean install
+
+$(OUTDIR)/$(TARGET): $(OBJECTS) $(LDDEPS) $(RESOURCES)
+	-@mkdir -p $(BINDIR)
+	-@mkdir -p $(LIBDIR)
+	-@mkdir -p $(OUTDIR)
+	@$(BLDCMD)
+
+install:
+	@echo ${TARGET} linked.
+	-@sudo mv $(BINDIR)/$(TARGET) $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+clean:
+	@echo Plugin cleaned.
+	-@rm -f $(OUTDIR)/$(TARGET)
+	-@rm -rf $(OBJDIR)/*
+	-@rm -rf $(OBJDIR)
+	-@sudo rm -rf $(PLUGINDIR)/$(TYPE)/$(TARGET)
+
+strip:
+	@echo Plugin stripped.
+	-@strip --strip-unneeded $(OUTDIR)/$(TARGET)
+
+$(OBJDIR)/WiFiOutputEditor.o: WiFiOutputEditor.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling WiFiOutputEditor.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/WiFiOutput.o: WiFiOutput.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling WiFiOutput.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+$(OBJDIR)/PracticalSocket.o: ../../Network/PracticalSocket.cpp
+	-@mkdir -p $(OBJDIR)
+	@echo "Compiling PracticalSocket.cpp"
+	@$(CXX) $(CXXFLAGS) -o "$@" -c "$<"
+
+-include $(OBJECTS:%.o=%.d)