aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-02-20 04:22:58 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-02-20 04:22:58 +0000
commit0685d14dc04499029f371c4f5aaafd1044d8730a (patch)
tree9af365dda126256af017c9ad4b1f2f5e658e77ae
parente959167bae830f5474acc82b74fd10cd64bcfd03 (diff)
ported markex library to new Makefile template, then debianize it next
svn path=/trunk/externals/markex/; revision=13177
-rw-r--r--LICENSE.txt (renamed from GnuGPL.LICENSE)0
-rw-r--r--Makefile305
-rw-r--r--README.txt (renamed from README)0
-rw-r--r--abs~-help.pd20
-rw-r--r--hsv2rgb-help.pd28
-rw-r--r--markex-meta.pd8
-rw-r--r--reson~-help.pd34
-rwxr-xr-xrgb2hsv-help.pd32
-rw-r--r--vector+-help.pd4
-rw-r--r--vector--help.pd4
-rw-r--r--vector0x2a-help.pd4
-rw-r--r--vector0x2f-help.pd4
-rw-r--r--vectorabs-help.pd4
-rw-r--r--vectorpack-help.pd4
14 files changed, 386 insertions, 65 deletions
diff --git a/GnuGPL.LICENSE b/LICENSE.txt
index fa0bef4..fa0bef4 100644
--- a/GnuGPL.LICENSE
+++ b/LICENSE.txt
diff --git a/Makefile b/Makefile
index 9665888..dbbb65e 100644
--- a/Makefile
+++ b/Makefile
@@ -1,65 +1,240 @@
-current:
- @echo make pd_linux, MarkEx.pd_linux, pd_darwin, MarkEx.pd_darwin
-
-MarkEx:
- @echo make MarkEx.pd_{linux,darwin}
-
-SOURCES=$(sort $(filter-out MarkEx.c, $(filter %.c, $(wildcard *.c))))
-
-# ----------------------- DARWIN -----------------------
-
-TARGETS = $(SOURCES:.c=.pd_darwin)
-OTARGETS = $(SOURCES:.c=.o_darwin)
-
-.SUFFIXES: .pd_darwin
-
-DARWINCFLAGS = -DMACOSX -DUNIX -DPD -O2 -funroll-loops -fomit-frame-pointer \
- -Wall -W -Wshadow -Wstrict-prototypes -Werror \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-DARWININCLUDE = -I/usr/local/lib/pd/include -I../../pd/src -I /usr/local/include
-
-$(OTARGETS): %.o_darwin : %.c
- $(CC) $(DARWINCFLAGS) $(DARWININCLUDE) -o $*.o_darwin -c $*.c
-
-$(TARGETS): %.pd_darwin : %.o_darwin
- $(CC) -bundle -undefined suppress -flat_namespace -o $*.pd_darwin $*.o -lc -lm
-
-pd_darwin: $(TARGETS)
-
-
-MarkEx.pd_darwin: $(OTARGETS)
- $(CC) $(DARWINCFLAGS) $(DARWININCLUDE) -o MarkEx.o -c MarkEx.c
- $(CC) -bundle -undefined suppress -flat_namespace -o MarkEx.pd_linux *.o_darwin -lc -lm
-
-# ----------------------- LINUX -----------------------
-
-OTARGETS = $(SOURCES:.c=.o_linux)
-TARGETS = $(SOURCES:.c=.pd_linux)
-
-.SUFFIXES: .pd_linux
-
-LINUXCFLAGS = -DUNIX -DPD -O2 -funroll-loops -fomit-frame-pointer -fPIC \
- -Wall -W -Wshadow -Wstrict-prototypes -Werror \
- -Wno-unused -Wno-parentheses -Wno-switch
-
-LINUXINCLUDE = -I/usr/local/lib/pd/include -I../../pd/src
-
-$(OTARGETS): %.o_linux : %.c
- $(CC) $(LINUXCFLAGS) $(LINUXINCLUDE) -o $*.o_linux -c $*.c
-
-$(TARGETS): %.pd_linux : %.o_linux
- $(LD) --export-dynamic -shared -o $*.pd_linux $*.o_linux -lc -lm
- strip --strip-unneeded $*.pd_linux
-
-pd_linux: $(TARGETS)
-
-MarkEx.pd_linux: $(OTARGETS)
- $(CC) $(LINUXCFLAGS) $(LINUXINCLUDE) -o MarkEx.o_linux -c MarkEx.c
- $(LD) --export-dynamic -shared -o MarkEx.pd_linux *.o_linux -lc -lm
- strip --strip-unneeded MarkEx.pd_linux
-
-# ----------------------- CLEAN -----------------------
-
-clean: ; rm -f *.pd_* *.o *.o_* *~
-
+# To use this Makefile for your project, first put the name of your library in
+# LIBRARY_NAME variable. The folder for your project should have the same name
+# as your library.
+LIBRARY_NAME = markex
+LIBRARY_VERSION = 0.85
+
+# Next, add your .c source files to the SOURCES variable. The help files will
+# be included automatically
+SOURCES = abs~.c alternate.c average.c counter.c hsv2rgb.c invert.c multiselect.c oneshot.c randomF.c reson~.c rgb2hsv.c strcat.c tripleLine.c tripleRand.c vector+.c vector-.c vector0x2a.c vector0x2f.c vectorabs.c vectorpack.c
+
+
+# For objects that only build on certain platforms, add those to the SOURCES
+# line for the right platforms.
+SOURCES_android =
+SOURCES_cygwin =
+SOURCES_macosx =
+SOURCES_iphoneos =
+SOURCES_linux =
+SOURCES_windows =
+
+# list all pd objects (i.e. myobject.pd) files here, and their helpfiles will
+# be included automatically
+PDOBJECTS =
+
+# if you want to include any other files in the source and binary tarballs,
+# list them here. This can be anything from header files, READMEs, example
+# patches, documentation, etc.
+EXTRA_DIST = README.txt LICENSE.txt markex.c GEM.LICENSE.TERMS
+
+
+#------------------------------------------------------------------------------#
+#
+# you shouldn't need to edit anything below here, if we did it right :)
+#
+#------------------------------------------------------------------------------#
+
+# where Pd lives
+PD_PATH = ../../pd
+# where to install the library
+prefix = /usr/local
+libdir = $(prefix)/lib
+pkglibdir = $(libdir)/pd-externals
+objectsdir = $(pkglibdir)
+
+
+INSTALL = install
+INSTALL_FILE = $(INSTALL) -p -m 644
+INSTALL_DIR = $(INSTALL) -p -m 755 -d
+
+CFLAGS = -DPD -I$(PD_PATH)/src -Wall -W -g
+LDFLAGS =
+LIBS =
+ALLSOURCES := $(SOURCES) $(SOURCES_android) $(SOURCES_cygwin) $(SOURCES_macosx) \
+ $(SOURCES_iphoneos) $(SOURCES_linux) $(SOURCES_windows)
+
+UNAME := $(shell uname -s)
+ifeq ($(UNAME),Darwin)
+ CPU := $(shell uname -p)
+ ifeq ($(CPU),arm) # iPhone/iPod Touch
+ SOURCES += $(SOURCES_macosx)
+ EXTENSION = pd_darwin
+ OS = iphoneos
+ IPHONE_BASE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
+ CC=$(IPHONE_BASE)/gcc
+ CPP=$(IPHONE_BASE)/cpp
+ CXX=$(IPHONE_BASE)/g++
+ ISYSROOT = -isysroot /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk
+ IPHONE_CFLAGS = -miphoneos-version-min=3.0 $(ISYSROOT) -arch armv6
+ OPT_CFLAGS = -fast -funroll-loops -fomit-frame-pointer
+ CFLAGS := $(IPHONE_CFLAGS) $(OPT_CFLAGS) $(CFLAGS)
+ LDFLAGS += -arch armv6 -bundle -undefined dynamic_lookup $(ISYSROOT)
+ LIBS += -lc
+ STRIP = strip -x
+ DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION)
+ DISTBINDIR=$(DISTDIR)-$(OS)
+ else # Mac OS X
+ SOURCES += $(SOURCES_macosx)
+ EXTENSION = pd_darwin
+ OS = macosx
+ OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
+ FAT_FLAGS = -arch i386 -arch ppc -mmacosx-version-min=10.4
+ CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
+ LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib
+ # if the 'pd' binary exists, check the linking against it to aid with stripping
+ LDFLAGS += $(shell test -e $(PD_PATH)/bin/pd && echo -bundle_loader $(PD_PATH)/bin/pd)
+ LIBS += -lc
+ STRIP = strip -x
+ DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION)
+ DISTBINDIR=$(DISTDIR)-$(OS)
+ endif
+endif
+ifeq ($(UNAME),Linux)
+ SOURCES += $(SOURCES_linux)
+ EXTENSION = pd_linux
+ OS = linux
+ OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
+ CFLAGS += -fPIC
+ LDFLAGS += -Wl,--export-dynamic -shared -fPIC
+ LIBS += -lc
+ STRIP = strip --strip-unneeded -R .note -R .comment
+ DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION)
+ DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
+endif
+ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME)))
+ SOURCES += $(SOURCES_cygwin)
+ EXTENSION = dll
+ OS = cygwin
+ OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
+ CFLAGS +=
+ LDFLAGS += -Wl,--export-dynamic -shared -L$(PD_PATH)/src
+ LIBS += -lc -lpd
+ STRIP = strip --strip-unneeded -R .note -R .comment
+ DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION)
+ DISTBINDIR=$(DISTDIR)-$(OS)
+endif
+ifeq (MINGW,$(findstring MINGW,$(UNAME)))
+ SOURCES += $(SOURCES_windows)
+ EXTENSION = dll
+ OS = windows
+ OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer -march=i686 -mtune=pentium4
+ WINDOWS_HACKS = -D'O_NONBLOCK=1'
+ CFLAGS += -mms-bitfields $(WINDOWS_HACKS)
+ LDFLAGS += -s -shared -Wl,--enable-auto-import
+ LIBS += -L$(PD_PATH)/src -L$(PD_PATH)/bin -L$(PD_PATH)/obj -lpd -lwsock32 -lkernel32 -luser32 -lgdi32
+ STRIP = strip --strip-unneeded -R .note -R .comment
+ DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION)
+ DISTBINDIR=$(DISTDIR)-$(OS)
+endif
+
+CFLAGS += $(OPT_CFLAGS)
+
+
+.PHONY = install libdir_install single_install install-doc install-exec install-examples clean dist etags
+
+all: $(SOURCES:.c=.$(EXTENSION))
+
+%.o: %.c
+ $(CC) $(CFLAGS) -o "$*.o" -c "$*.c"
+
+%.$(EXTENSION): %.o
+ $(CC) $(LDFLAGS) -o "$*.$(EXTENSION)" "$*.o" $(LIBS)
+ chmod a-x "$*.$(EXTENSION)"
+
+# this links everything into a single binary file
+$(LIBRARY_NAME): $(SOURCES:.c=.o) $(LIBRARY_NAME).o
+ $(CC) $(LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) $(LIBRARY_NAME).o $(LIBS)
+ chmod a-x $(LIBRARY_NAME).$(EXTENSION)
+
+
+install: libdir_install
+
+# The meta and help files are explicitly installed to make sure they are
+# actually there. Those files are not optional, then need to be there.
+libdir_install: $(SOURCES:.c=.$(EXTENSION)) install-doc install-examples
+ $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ $(INSTALL_FILE) $(LIBRARY_NAME)-meta.pd \
+ $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ test -z "$(strip $(SOURCES))" || (\
+ $(INSTALL_FILE) $(SOURCES:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) && \
+ $(STRIP) $(addprefix $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/,$(SOURCES:.c=.$(EXTENSION))))
+ test -z "$(strip $(PDOBJECTS))" || \
+ $(INSTALL_FILE) $(PDOBJECTS) \
+ $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+
+# install library linked as single binary
+single_install: $(LIBRARY_NAME) install-doc install-exec
+ $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ $(INSTALL_FILE) $(LIBRARY_NAME).$(EXTENSION) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ $(STRIP) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/$(LIBRARY_NAME).$(EXTENSION)
+
+install-doc:
+ $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ test -z "$(strip $(SOURCES))" || \
+ $(INSTALL_FILE) $(SOURCES:.c=-help.pd) \
+ $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ test -z "$(strip $(PDOBJECTS))" || \
+ $(INSTALL_FILE) $(PDOBJECTS:.pd=-help.pd) \
+ $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+ $(INSTALL_FILE) README.txt $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/README.txt
+
+install-examples:
+ test ! -d examples || (\
+ $(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples && \
+ $(INSTALL_FILE) examples/*.* $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/examples)
+
+
+clean:
+ -rm -f -- $(SOURCES:.c=.o)
+ -rm -f -- $(SOURCES:.c=.$(EXTENSION))
+ -rm -f -- $(LIBRARY_NAME).$(EXTENSION)
+
+distclean: clean
+ -rm -f -- $(DISTBINDIR).tar.gz
+ -rm -rf -- $(DISTBINDIR)
+ -rm -f -- $(DISTDIR).tar.gz
+ -rm -rf -- $(DISTDIR)
+
+
+$(DISTBINDIR):
+ $(INSTALL_DIR) $(DISTBINDIR)
+
+libdir: all $(DISTBINDIR)
+ $(INSTALL_FILE) $(LIBRARY_NAME)-meta.pd $(DISTBINDIR)
+ $(INSTALL_FILE) $(SOURCES) $(DISTBINDIR)
+ $(INSTALL_FILE) $(SOURCES:.c=-help.pd) $(DISTBINDIR)
+ test -z "$(strip $(EXTRA_DIST))" || \
+ $(INSTALL_FILE) $(EXTRA_DIST) $(DISTBINDIR)
+# tar --exclude-vcs -czpf $(DISTBINDIR).tar.gz $(DISTBINDIR)
+
+$(DISTDIR):
+ $(INSTALL_DIR) $(DISTDIR)
+
+dist: $(DISTDIR)
+ $(INSTALL_FILE) Makefile $(DISTDIR)
+ $(INSTALL_FILE) $(LIBRARY_NAME)-meta.pd $(DISTDIR)
+ test -z "$(strip $(ALLSOURCES))" || \
+ $(INSTALL_FILE) $(ALLSOURCES) $(DISTDIR)
+ test -z "$(strip $(ALLSOURCES))" || \
+ $(INSTALL_FILE) $(ALLSOURCES:.c=-help.pd) $(DISTDIR)
+ test -z "$(strip $(PDOBJECTS))" || \
+ $(INSTALL_FILE) $(PDOBJECTS) $(DISTDIR)
+ test -z "$(strip $(PDOBJECTS))" || \
+ $(INSTALL_FILE) $(PDOBJECTS:.pd=-help.pd) $(DISTDIR)
+ test -z "$(strip $(EXTRA_DIST))" || \
+ $(INSTALL_FILE) $(EXTRA_DIST) $(DISTDIR)
+ tar --exclude-vcs -czpf $(DISTDIR).tar.gz $(DISTDIR)
+
+
+etags:
+ etags *.h $(SOURCES) ../../pd/src/*.[ch] /usr/include/*.h /usr/include/*/*.h
+
+showpaths:
+ @echo "PD_PATH: $(PD_PATH)"
+ @echo "objectsdir: $(objectsdir)"
+ @echo "LIBRARY_NAME: $(LIBRARY_NAME)"
+ @echo "SOURCES: $(SOURCES)"
+ @echo "ALLSOURCES: $(ALLSOURCES)"
+ @echo "UNAME: $(UNAME)"
+ @echo "CPU: $(CPU)"
+
diff --git a/README b/README.txt
index a8ee8fb..a8ee8fb 100644
--- a/README
+++ b/README.txt
diff --git a/abs~-help.pd b/abs~-help.pd
new file mode 100644
index 0000000..95032e3
--- /dev/null
+++ b/abs~-help.pd
@@ -0,0 +1,20 @@
+#N canvas 286 197 499 284 10;
+#X obj 19 108 sig~;
+#X obj 71 133 loadbang;
+#X obj 71 157 metro 100;
+#X obj 71 181 snapshot~;
+#X floatatom 19 87 5 0 0 0 - - -;
+#X floatatom 71 206 7 0 0 0 - - -;
+#X text 316 257 updated for Pd version 0.42.;
+#X obj 20 132 abs~;
+#X obj 21 14 abs~;
+#X text 60 14 - absolute value;
+#X text 82 33 Passes nonnegative values unchanged \, but replaces negative
+ones with their (positive) inverses.;
+#X text 81 66 (turn DSP on to test):;
+#X connect 0 0 7 0;
+#X connect 1 0 2 0;
+#X connect 2 0 3 0;
+#X connect 3 0 5 0;
+#X connect 4 0 0 0;
+#X connect 7 0 3 0;
diff --git a/hsv2rgb-help.pd b/hsv2rgb-help.pd
new file mode 100644
index 0000000..16804c0
--- /dev/null
+++ b/hsv2rgb-help.pd
@@ -0,0 +1,28 @@
+#N canvas 344 338 481 346 10;
+#X obj 127 223 unpack 0 0 0;
+#X floatatom 206 245 5 0 0 1 Blue - -;
+#X floatatom 166 265 5 0 0 1 Green - -;
+#X floatatom 127 288 5 0 0 1 Red - -;
+#X obj 127 184 hsv2rgb;
+#X msg 167 119 0 1 1;
+#X msg 189 143 0.6 1 0.5;
+#X floatatom 182 48 5 0 1 1 Value - -;
+#X floatatom 145 30 5 0 1 1 Saturation - -;
+#X floatatom 127 12 5 0 1 1 Hue - -;
+#X obj 127 97 pack 0 0 0;
+#X obj 145 65 t b f;
+#X obj 182 65 t b f;
+#X connect 0 0 3 0;
+#X connect 0 1 2 0;
+#X connect 0 2 1 0;
+#X connect 4 0 0 0;
+#X connect 5 0 4 0;
+#X connect 6 0 4 0;
+#X connect 7 0 12 0;
+#X connect 8 0 11 0;
+#X connect 9 0 10 0;
+#X connect 10 0 4 0;
+#X connect 11 0 10 0;
+#X connect 11 1 10 1;
+#X connect 12 0 10 0;
+#X connect 12 1 10 2;
diff --git a/markex-meta.pd b/markex-meta.pd
new file mode 100644
index 0000000..8e56201
--- /dev/null
+++ b/markex-meta.pd
@@ -0,0 +1,8 @@
+#N canvas 10 22 200 200 10;
+#N canvas 20 22 420 300 META 0;
+#X text 10 10 META this is a prototype of a libdir meta file;
+#X text 10 30 NAME markex;
+#X text 10 50 AUTHOR Mark Danks;
+#X text 10 70 LICENSE GNU GPL;
+#X text 11 90 VERSION 0.85;
+#X restore 10 10 pd META;
diff --git a/reson~-help.pd b/reson~-help.pd
new file mode 100644
index 0000000..2d6b54c
--- /dev/null
+++ b/reson~-help.pd
@@ -0,0 +1,34 @@
+#N canvas 212 185 577 450 10;
+#X text 15 35 Bandpass filter controllable by center frequency and
+Q;
+#X obj 32 382 dac~;
+#X obj 32 343 *~ 0.2;
+#X floatatom 160 294 0 0 0 0 - - -;
+#X msg 133 227 200 \, 10000 4000;
+#X obj 31 210 noise~;
+#X text 36 226 input signal;
+#X text 133 211 center freq;
+#X text 88 250 gain;
+#X text 172 325 optional arguments set values of gain \, center frequency
+\, and Q (default 0 \, 0 \, 0.01);
+#X text 88 182 list sets gain \, cf \, q (works unless there are any
+signal inputs for filter parameters);
+#X text 42 316 filtered output;
+#X text 15 62 reson~ implements the following filter equation: y[n]
+= gain * (x[n] - r * x[n-2]) + c1 * y[n-1] + c2 * y[n-2] \, where r
+\, c1 \, and c2 are parameters calculated from the input center frequency
+and Q. Q is the filter bandwidth divided by center frequency. Inputs
+can be floats or signals. The specification is similar to the nres
+unit generator in cmusic.;
+#X obj 32 294 reson~ 1 200 23;
+#X obj 133 250 Line~ 200;
+#X floatatom 60 254 0 0 0 0 - - -;
+#X text 158 276 Q: Try range of 1-100;
+#X connect 2 0 1 0;
+#X connect 2 0 1 1;
+#X connect 3 0 13 3;
+#X connect 4 0 14 0;
+#X connect 5 0 13 0;
+#X connect 13 0 2 0;
+#X connect 14 0 13 2;
+#X connect 15 0 13 1;
diff --git a/rgb2hsv-help.pd b/rgb2hsv-help.pd
new file mode 100755
index 0000000..3af5339
--- /dev/null
+++ b/rgb2hsv-help.pd
@@ -0,0 +1,32 @@
+#N canvas 172 190 432 490 10;
+#X text 89 388 convert between RGB colorspace and HSV colorspace;
+#X text 91 412 RGB is red \, green \, blue;
+#X text 91 434 HSV is hue \, saturation \, value (luminance);
+#X obj 123 218 rgb2hsv;
+#X msg 163 182 1 0 0;
+#X msg 155 156 0 0.2 0.5;
+#X obj 123 257 unpack 0 0 0;
+#X floatatom 202 279 5 0 0 1 Value - -;
+#X floatatom 162 299 5 0 0 1 Saturation - -;
+#X floatatom 123 322 5 0 0 1 Hue - -;
+#X floatatom 178 84 5 0 1 1 Blue - -;
+#X floatatom 141 67 5 0 1 1 Green - -;
+#X floatatom 123 49 5 0 1 1 Red - -;
+#X obj 123 122 pack 0 0 0;
+#X obj 141 103 t b f;
+#X obj 178 103 t b f;
+#X text 83 9 [rgb2hsv];
+#X connect 3 0 6 0;
+#X connect 4 0 3 0;
+#X connect 5 0 3 0;
+#X connect 6 0 9 0;
+#X connect 6 1 8 0;
+#X connect 6 2 7 0;
+#X connect 10 0 15 0;
+#X connect 11 0 14 0;
+#X connect 12 0 13 0;
+#X connect 13 0 3 0;
+#X connect 14 0 13 0;
+#X connect 14 1 13 1;
+#X connect 15 0 13 0;
+#X connect 15 1 13 2;
diff --git a/vector+-help.pd b/vector+-help.pd
new file mode 100644
index 0000000..5cbfdd2
--- /dev/null
+++ b/vector+-help.pd
@@ -0,0 +1,4 @@
+#N canvas 407 449 450 300 10;
+#X obj 177 112 vector+;
+#X text 138 59 MarkEx vector operation;
+#X text 133 181 (placeholder help patch);
diff --git a/vector--help.pd b/vector--help.pd
new file mode 100644
index 0000000..db26662
--- /dev/null
+++ b/vector--help.pd
@@ -0,0 +1,4 @@
+#N canvas 407 449 450 300 10;
+#X text 138 59 MarkEx vector operation;
+#X text 133 181 (placeholder help patch);
+#X obj 177 112 vector-;
diff --git a/vector0x2a-help.pd b/vector0x2a-help.pd
new file mode 100644
index 0000000..b2f158f
--- /dev/null
+++ b/vector0x2a-help.pd
@@ -0,0 +1,4 @@
+#N canvas 407 449 450 300 10;
+#X text 138 59 MarkEx vector operation;
+#X text 133 181 (placeholder help patch);
+#X obj 177 112 vector*;
diff --git a/vector0x2f-help.pd b/vector0x2f-help.pd
new file mode 100644
index 0000000..5ad6cd8
--- /dev/null
+++ b/vector0x2f-help.pd
@@ -0,0 +1,4 @@
+#N canvas 407 449 450 300 10;
+#X text 138 59 MarkEx vector operation;
+#X text 133 181 (placeholder help patch);
+#X obj 177 112 vector/;
diff --git a/vectorabs-help.pd b/vectorabs-help.pd
new file mode 100644
index 0000000..37128c2
--- /dev/null
+++ b/vectorabs-help.pd
@@ -0,0 +1,4 @@
+#N canvas 407 449 450 300 10;
+#X text 138 59 MarkEx vector operation;
+#X text 133 181 (placeholder help patch);
+#X obj 177 112 vectorabs;
diff --git a/vectorpack-help.pd b/vectorpack-help.pd
new file mode 100644
index 0000000..ed7512a
--- /dev/null
+++ b/vectorpack-help.pd
@@ -0,0 +1,4 @@
+#N canvas 407 449 450 300 10;
+#X text 138 59 MarkEx vector operation;
+#X text 133 181 (placeholder help patch);
+#X obj 177 112 vectorpack;