aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-02-10 04:39:52 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2010-02-10 04:39:52 +0000
commit9d4ee7c75c8bd4c53600331fd55f2a3680135c3c (patch)
treea450f21545c3063f7fdd19875362c3161a0064dd
parentc67bde56d30140981d831fea3b691b3b508362b6 (diff)
setup mapping lib with template Makefile+debian stuff
svn path=/trunk/externals/mapping/; revision=13164
-rw-r--r--Makefile240
-rw-r--r--debian/changelog5
-rw-r--r--debian/compat1
-rw-r--r--debian/control18
-rw-r--r--debian/copyright13
-rwxr-xr-xdebian/rules16
-rw-r--r--desegment12-help.pd84
-rw-r--r--desegment12.pd34
-rw-r--r--desegment24.pd229
-rw-r--r--desegment3-help.pd31
-rw-r--r--desegment3.pd12
-rw-r--r--desegment4-help.pd35
-rw-r--r--desegment4.pd16
-rw-r--r--mapping-meta.pd2
-rw-r--r--mapping2midi-help.pd24
-rw-r--r--midi2mapping-help.pd25
-rw-r--r--segment12.pd35
-rw-r--r--segment24.pd56
-rw-r--r--segment3.pd12
-rw-r--r--segment4-help.pd27
-rw-r--r--segment4.pd16
-rw-r--r--vector-help.pd39
22 files changed, 382 insertions, 588 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..25b84eb
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,240 @@
+# 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 = mapping
+LIBRARY_VERSION = 0.2
+
+# Next, add your .c source files to the SOURCES variable. The help files will
+# be included automatically
+SOURCES =
+
+
+# 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 = amplitude_n.pd autoscale.pd breakpoint.pd breakpoint_smooth.pd buttongate.pd bytemask.pd cartesian2spherical.pd center_point.pd circular.pd circular_seat.pd circular_sigmoid.pd correlation.pd cubic_seat.pd curve_draw.pd curve_exp.pd curve_fade.pd curve_graph.pd curve_log.pd curve.pd debounce.pd debytemask.pd degrees2mapping.pd delay_n.pd desegment.pd diff_n.pd disjoin.pd distance2d.pd distance_n.pd distance.pd downsample.pd elliptic.pd elliptic_seat.pd elliptic_sigmoid.pd env-.pd env.pd env+.pd exponential_curve.pd exponential_seat.pd exponential_sigmoid.pd fir.pd gaussian.pd hysteresis.pd iir.pd join.pd keygate.pd last_n.pd listto.pd local_max.pd local_min.pd logistic_sigmoid.pd lop.pd mapping2degrees.pd mapping2midi.pd mapping2radians.pd max_n.pd mean_n.pd median_3.pd median_5.pd median_7.pd median_n.pd median.pd midi2mapping.pd min_n.pd multi_slider.pd nl.pd notescale.pd one2four.pd one2three.pd one2two.pd oscillo.pd pmattractor_2d.pd pmattractor_3d.pd pmcloud_1d.pd pmcloud_2d.pd pmcloud_3d.pd pmcube_3d.pd pmfilter_2d.pd pmfilter_3d.pd pmfilter.pd pmmulti_stable_2d.pd pmopen_string_1d.pd pmrepulsor_1d.pd pmrepulsor_2d.pd pmrepulsor_3d.pd pmrigid_open_string_2d.pd pmrigid_string_2d.pd pmsquare_2d.pd pmstring_1d.pd polar2cartesian.pd polar.pd quadratic.pd quartic.pd radians2mapping.pd rec_play.pd resample.pd reverse.pd rnd-stat.pd segment.pd sigmoide.pd simplified_cubic_seat.pd simplified_quadratic.pd sinusoid.pd smooth_double.pd smooth.pd smooth_triple.pd speedlimiter-.pd speedlimiter.pd speedlimiter+.pd spherical2cartesian.pd spiral.pd split_n.pd stepper.pd stream_check.pd test_n.pd threshold_max.pd threshold.pd timeroll.pd tolist.pd track_max.pd track_min.pd upsample.pd variance.pd vector.pd wave_loop.pd wave.pd
+
+# 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 TODO
+
+
+#------------------------------------------------------------------------------#
+#
+# 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 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/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..bf8b6b1
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,5 @@
+pd-mapping (0.2-1) unstable; urgency=low
+
+ * Initial release (Closes: #nnnn) <nnnn is the bug number of your ITP>
+
+ -- Hans-Christoph Steiner <hans@eds.org> Thu, 21 Jan 2010 23:27:04 -0500
diff --git a/debian/compat b/debian/compat
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/debian/compat
@@ -0,0 +1 @@
+7
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..fc089ea
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,18 @@
+Source: pd-mapping
+Section: sound
+Priority: optional
+Maintainer: Paul Brossier <piem@debian.org>
+Build-Depends: debhelper (>= 7.0.50~)
+Standards-Version: 3.8.3
+Homepage: http://puredata.info
+
+Package: pd-mapping
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, pd
+Description: library for creatively mapping data
+ The Mapping Library for Pd is a library of mapping primitives for mapping
+ data to controls. Also included are techniques for conditioning sensor data
+ to make it usable in the context of instrument design. It is something like a
+ set of unit generators for mapping, plotting out the most basic building
+ blocks for creating instrument mappings.
+
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..52e118b
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,13 @@
+Debianized-By: Hans-Christoph Steiner <hans@eds.org>
+Debianized-Date: Tue, 9 Feb 2010 17:14:25 -0400
+Files: *
+Copyright: Copyright 2004-2009 Cyrille Henry and Hans-Christoph Steiner
+
+License: GPL-2+
+ This package is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+ .
+ On Debian systems, the complete text of the GNU General Public License
+ version 2 can be found in file "/usr/share/common-licenses/GPL-2".
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..6441f96
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,16 @@
+#!/usr/bin/make -f
+
+LIBRARY_NAME = mapping
+PACKAGE = pd-$(LIBRARY_NAME)
+pkglibdir = /usr/lib/pd/extra
+
+%:
+ dh $@
+
+override_dh_auto_install:
+ make DESTDIR=$(CURDIR)/debian/$(PACKAGE) pkglibdir=$(pkglibdir) install
+
+override_dh_shlibdeps:
+ dpkg-shlibdeps $(CURDIR)/debian/$(PACKAGE)$(pkglibdir)/$(LIBRARY_NAME)/*.pd_linux \
+ -T$(CURDIR)/debian/$(PACKAGE).substvars
+
diff --git a/desegment12-help.pd b/desegment12-help.pd
deleted file mode 100644
index 9fdde7d..0000000
--- a/desegment12-help.pd
+++ /dev/null
@@ -1,84 +0,0 @@
-#N canvas 170 28 756 592 10;
-#X obj 32 17 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 33 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 93 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 100 1;
-#X obj 153 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 213 1;
-#X floatatom 53 336 5 0 0 0 - - -;
-#X floatatom 109 336 5 0 0 0 - - -;
-#X floatatom 169 336 5 0 0 0 - - -;
-#X floatatom 59 128 5 0 0 0 - - -;
-#X obj 150 455 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 212 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 706 1;
-#X floatatom 228 336 5 0 0 0 - - -;
-#X obj 267 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 327 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 387 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X floatatom 287 336 5 0 0 0 - - -;
-#X floatatom 343 336 5 0 0 0 - - -;
-#X floatatom 403 336 5 0 0 0 - - -;
-#X obj 446 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X floatatom 462 336 5 0 0 0 - - -;
-#X obj 497 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 557 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 617 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X floatatom 517 336 5 0 0 0 - - -;
-#X floatatom 573 336 5 0 0 0 - - -;
-#X floatatom 633 336 5 0 0 0 - - -;
-#X obj 676 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X floatatom 692 336 5 0 0 0 - - -;
-#X obj 33 153 segment12 -------------------------------------------
-;
-#X obj 147 426 desegment12 -----------------------------;
-#X connect 0 0 7 0;
-#X connect 0 0 27 0;
-#X connect 1 0 4 0;
-#X connect 1 0 28 0;
-#X connect 2 0 5 0;
-#X connect 2 0 28 1;
-#X connect 3 0 6 0;
-#X connect 3 0 28 2;
-#X connect 9 0 10 0;
-#X connect 9 0 28 3;
-#X connect 11 0 14 0;
-#X connect 11 0 28 4;
-#X connect 12 0 15 0;
-#X connect 12 0 28 5;
-#X connect 13 0 16 0;
-#X connect 13 0 28 6;
-#X connect 17 0 18 0;
-#X connect 17 0 28 7;
-#X connect 19 0 22 0;
-#X connect 19 0 28 8;
-#X connect 20 0 23 0;
-#X connect 20 0 28 9;
-#X connect 21 0 24 0;
-#X connect 21 0 28 10;
-#X connect 25 0 26 0;
-#X connect 25 0 28 11;
-#X connect 27 0 1 0;
-#X connect 27 1 2 0;
-#X connect 27 2 3 0;
-#X connect 27 3 9 0;
-#X connect 27 4 11 0;
-#X connect 27 5 12 0;
-#X connect 27 6 13 0;
-#X connect 27 7 17 0;
-#X connect 27 8 19 0;
-#X connect 27 9 20 0;
-#X connect 27 10 21 0;
-#X connect 27 11 25 0;
-#X connect 28 0 8 0;
diff --git a/desegment12.pd b/desegment12.pd
deleted file mode 100644
index c4db53b..0000000
--- a/desegment12.pd
+++ /dev/null
@@ -1,34 +0,0 @@
-#N canvas 328 208 531 415 10;
-#X obj 148 303 desegment3;
-#X obj 63 205 desegment4;
-#X obj 152 204 desegment4;
-#X obj 238 203 desegment4;
-#X obj 150 350 outlet;
-#X obj 32 74 inlet;
-#X obj 72 74 inlet;
-#X obj 111 74 inlet;
-#X obj 150 74 inlet;
-#X obj 189 74 inlet;
-#X obj 229 74 inlet;
-#X obj 269 74 inlet;
-#X obj 309 74 inlet;
-#X obj 349 74 inlet;
-#X obj 389 74 inlet;
-#X obj 429 74 inlet;
-#X obj 469 74 inlet;
-#X connect 0 0 4 0;
-#X connect 1 0 0 0;
-#X connect 2 0 0 1;
-#X connect 3 0 0 2;
-#X connect 5 0 1 0;
-#X connect 6 0 1 1;
-#X connect 7 0 1 2;
-#X connect 8 0 1 3;
-#X connect 9 0 2 0;
-#X connect 10 0 2 1;
-#X connect 11 0 2 2;
-#X connect 12 0 2 3;
-#X connect 13 0 3 0;
-#X connect 14 0 3 1;
-#X connect 15 0 3 2;
-#X connect 16 0 3 3;
diff --git a/desegment24.pd b/desegment24.pd
deleted file mode 100644
index 50b46a0..0000000
--- a/desegment24.pd
+++ /dev/null
@@ -1,229 +0,0 @@
-#N canvas 328 208 885 585 10;
-#X obj 8 28 inlet;
-#X obj 6 4 namecanvas \$0-segment;
-#X obj 360 290 pack float float;
-#X obj 467 270 *;
-#X msg 459 223 1;
-#X obj 360 311 trigger list list;
-#X obj 274 185 +;
-#X msg 274 165 1;
-#X msg 305 165 0;
-#X obj 274 145 until;
-#X obj 167 4 inlet;
-#X obj 360 262 * 125;
-#X obj 360 240 - 1;
-#N canvas 407 40 498 348 clear 0;
-#X obj 21 28 inlet;
-#X text 72 28 do it bang;
-#X obj 21 71 trigger bang bang bang bang;
-#X obj 26 260 outlet;
-#X text 80 259 to namecanvas [send];
-#X msg 306 203 vis 1 \, editmode 1;
-#X msg 153 167 cut;
-#X msg 216 157 mouse 5 480 0 0 \, mouseup 2000 435 0;
-#X msg 30 165 editmode 0;
-#X connect 0 0 2 0;
-#X connect 2 0 8 0;
-#X connect 2 1 6 0;
-#X connect 2 2 7 0;
-#X connect 2 3 5 0;
-#X connect 5 0 3 0;
-#X connect 6 0 3 0;
-#X connect 7 0 3 0;
-#X connect 8 0 3 0;
-#X restore 287 65 pd clear dynamic objects;
-#X obj 320 401 send \$0-segment;
-#X obj 287 84 send \$0-segment;
-#X obj 167 46 trigger float bang;
-#X obj 167 25 route float;
-#X text -3 416 -----------------------------------------------------------
-;
-#X text -3 481 -----------------------------------------------------------
-keep the above area clear for automatic editing;
-#X text 411 416 -----------------------------------------------------------
-;
-#X text 412 481 -----------------------------------------------------------
-;
-#X obj 304 185 float;
-#X msg 333 334 obj \$1 460 outlet;
-#X msg 473 333 obj \$1 440 disjoin \$2;
-#N canvas 0 22 567 496 connect 0;
-#X obj 290 16 inlet;
-#X obj 234 398 outlet;
-#X obj 339 238 pack float float;
-#X msg 338 262 connect \$1 0 \$2 0;
-#X obj 446 218 + 1;
-#X obj 289 181 trigger float float;
-#X obj 289 134 * 2;
-#X obj 199 239 pack float float;
-#X msg 199 263 connect \$2 1 \$1 0;
-#X obj 306 218 - 2;
-#X text 117 119 object count;
-#X obj 289 161 +;
-#X obj 141 218 select 0;
-#X msg 60 263 connect 0 0 \$1 0;
-#X msg 60 243 32;
-#X msg 61 199 set \$1;
-#X obj 193 158 + 2;
-#X obj 208 95 loadbang;
-#X msg 208 118 30;
-#X connect 0 0 6 0;
-#X connect 2 0 3 0;
-#X connect 3 0 1 0;
-#X connect 4 0 2 1;
-#X connect 5 0 2 0;
-#X connect 5 0 12 0;
-#X connect 5 1 4 0;
-#X connect 5 1 9 0;
-#X connect 6 0 11 0;
-#X connect 7 0 8 0;
-#X connect 8 0 1 0;
-#X connect 9 0 7 1;
-#X connect 11 0 5 0;
-#X connect 12 0 14 0;
-#X connect 12 1 7 0;
-#X connect 13 0 1 0;
-#X connect 14 0 13 0;
-#X connect 15 0 14 0;
-#X connect 16 0 12 1;
-#X connect 16 0 15 0;
-#X connect 17 0 18 0;
-#X connect 18 0 11 1;
-#X connect 18 0 16 0;
-#X restore 185 290 pd connect messages;
-#X obj 484 250 /;
-#X obj 521 223 expr $f2 - $f1 + 1;
-#X obj 274 204 trigger float float float bang float;
-#X msg 299 45 bang;
-#X obj 274 124 trigger float bang float;
-#X obj 0 440 disjoin 0.0416667;
-#X obj 0 460 outlet;
-#X obj 125 440 disjoin 0.0869565;
-#X obj 125 460 outlet;
-#X obj 250 440 disjoin 0.136364;
-#X obj 250 460 outlet;
-#X obj 375 440 disjoin 0.190476;
-#X obj 375 460 outlet;
-#X obj 500 440 disjoin 0.25;
-#X obj 500 460 outlet;
-#X obj 625 440 disjoin 0.315789;
-#X obj 625 460 outlet;
-#X obj 750 440 disjoin 0.388889;
-#X obj 750 460 outlet;
-#X obj 875 440 disjoin 0.470588;
-#X obj 875 460 outlet;
-#X obj 1000 440 disjoin 0.5625;
-#X obj 1000 460 outlet;
-#X obj 1125 440 disjoin 0.666667;
-#X obj 1125 460 outlet;
-#X obj 1250 440 disjoin 0.785714;
-#X obj 1250 460 outlet;
-#X obj 1375 440 disjoin 0.923077;
-#X obj 1375 460 outlet;
-#X obj 1500 440 disjoin 1.08333;
-#X obj 1500 460 outlet;
-#X obj 1625 440 disjoin 1.27273;
-#X obj 1625 460 outlet;
-#X obj 1750 440 disjoin 1.5;
-#X obj 1750 460 outlet;
-#X obj 1875 440 disjoin 1.77778;
-#X obj 1875 460 outlet;
-#X obj 2000 440 disjoin 2.125;
-#X obj 2000 460 outlet;
-#X obj 2125 440 disjoin 2.57143;
-#X obj 2125 460 outlet;
-#X obj 2250 440 disjoin 3.16667;
-#X obj 2250 460 outlet;
-#X obj 2375 440 disjoin 4;
-#X obj 2375 460 outlet;
-#X obj 2500 440 disjoin 5.25;
-#X obj 2500 460 outlet;
-#X obj 2625 440 disjoin 7.33333;
-#X obj 2625 460 outlet;
-#X obj 2750 440 disjoin 11.5;
-#X obj 2750 460 outlet;
-#X obj 2875 440 disjoin 24;
-#X obj 2875 460 outlet;
-#X obj 84 82 purepd/float_argument \$1;
-#X connect 0 0 31 0;
-#X connect 2 0 5 0;
-#X connect 3 0 2 1;
-#X connect 4 0 26 0;
-#X connect 5 0 23 0;
-#X connect 5 1 24 0;
-#X connect 6 0 22 0;
-#X connect 6 0 28 0;
-#X connect 7 0 6 0;
-#X connect 8 0 22 0;
-#X connect 9 0 7 0;
-#X connect 10 0 17 0;
-#X connect 11 0 2 0;
-#X connect 12 0 11 0;
-#X connect 13 0 15 0;
-#X connect 16 0 30 0;
-#X connect 16 1 13 0;
-#X connect 17 0 16 0;
-#X connect 22 0 6 1;
-#X connect 23 0 14 0;
-#X connect 24 0 14 0;
-#X connect 25 0 14 0;
-#X connect 26 0 3 1;
-#X connect 27 0 26 1;
-#X connect 28 0 25 0;
-#X connect 28 1 12 0;
-#X connect 28 2 3 0;
-#X connect 28 3 4 0;
-#X connect 28 4 27 0;
-#X connect 29 0 13 0;
-#X connect 29 0 8 0;
-#X connect 30 0 9 0;
-#X connect 30 1 8 0;
-#X connect 30 2 27 1;
-#X connect 31 0 32 0;
-#X connect 31 1 33 0;
-#X connect 33 0 34 0;
-#X connect 33 1 35 0;
-#X connect 35 0 36 0;
-#X connect 35 1 37 0;
-#X connect 37 0 38 0;
-#X connect 37 1 39 0;
-#X connect 39 0 40 0;
-#X connect 39 1 41 0;
-#X connect 41 0 42 0;
-#X connect 41 1 43 0;
-#X connect 43 0 44 0;
-#X connect 43 1 45 0;
-#X connect 45 0 46 0;
-#X connect 45 1 47 0;
-#X connect 47 0 48 0;
-#X connect 47 1 49 0;
-#X connect 49 0 50 0;
-#X connect 49 1 51 0;
-#X connect 51 0 52 0;
-#X connect 51 1 53 0;
-#X connect 53 0 54 0;
-#X connect 53 1 55 0;
-#X connect 55 0 56 0;
-#X connect 55 1 57 0;
-#X connect 57 0 58 0;
-#X connect 57 1 59 0;
-#X connect 59 0 60 0;
-#X connect 59 1 61 0;
-#X connect 61 0 62 0;
-#X connect 61 1 63 0;
-#X connect 63 0 64 0;
-#X connect 63 1 65 0;
-#X connect 65 0 66 0;
-#X connect 65 1 67 0;
-#X connect 67 0 68 0;
-#X connect 67 1 69 0;
-#X connect 69 0 70 0;
-#X connect 69 1 71 0;
-#X connect 71 0 72 0;
-#X connect 71 1 73 0;
-#X connect 73 0 74 0;
-#X connect 73 1 75 0;
-#X connect 75 0 76 0;
-#X connect 75 1 77 0;
-#X connect 77 0 78 0;
-#X connect 79 0 30 0;
diff --git a/desegment3-help.pd b/desegment3-help.pd
deleted file mode 100644
index 7f27b3e..0000000
--- a/desegment3-help.pd
+++ /dev/null
@@ -1,31 +0,0 @@
-#N canvas 487 22 345 594 10;
-#X obj 32 17 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 12700 1;
-#X obj 33 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 9910 1;
-#X obj 117 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 11607 1;
-#X obj 207 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 12700 1;
-#X obj 33 155 disjoin 0.333;
-#X obj 119 175 disjoin 0.5;
-#X floatatom 53 336 5 0 0 0 - - -;
-#X floatatom 133 336 5 0 0 0 - - -;
-#X floatatom 223 336 5 0 0 0 - - -;
-#X floatatom 59 128 5 0 0 0 - - -;
-#X obj 113 426 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 12700 1;
-#X obj 79 390 desegment3;
-#X connect 0 0 4 0;
-#X connect 0 0 9 0;
-#X connect 1 0 6 0;
-#X connect 1 0 11 0;
-#X connect 2 0 7 0;
-#X connect 2 0 11 1;
-#X connect 3 0 8 0;
-#X connect 3 0 11 2;
-#X connect 4 0 1 0;
-#X connect 4 1 5 0;
-#X connect 5 0 2 0;
-#X connect 5 1 3 0;
-#X connect 11 0 10 0;
diff --git a/desegment3.pd b/desegment3.pd
deleted file mode 100644
index d2113e0..0000000
--- a/desegment3.pd
+++ /dev/null
@@ -1,12 +0,0 @@
-#N canvas 272 200 729 491 10;
-#X obj 162 200 join 0.5;
-#X obj 243 230 join 0.666;
-#X obj 133 90 inlet;
-#X obj 194 89 inlet;
-#X obj 261 90 inlet;
-#X obj 242 325 outlet;
-#X connect 0 0 1 0;
-#X connect 1 0 5 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 1;
-#X connect 4 0 1 1;
diff --git a/desegment4-help.pd b/desegment4-help.pd
deleted file mode 100644
index 7455455..0000000
--- a/desegment4-help.pd
+++ /dev/null
@@ -1,35 +0,0 @@
-#N canvas 487 22 349 598 10;
-#X obj 32 17 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 33 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 117 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 207 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X floatatom 53 336 5 0 0 0 - - -;
-#X floatatom 133 336 5 0 0 0 - - -;
-#X floatatom 223 336 5 0 0 0 - - -;
-#X floatatom 59 128 5 0 0 0 - - -;
-#X obj 150 455 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X obj 147 426 desegment4;
-#X obj 271 205 vsl 15 128 0 1 0 0 empty empty empty 0 -8 0 8 -262144
--1 -1 0 1;
-#X floatatom 287 336 5 0 0 0 - - -;
-#X obj 33 154 segment4 ------------------;
-#X connect 0 0 7 0;
-#X connect 0 0 12 0;
-#X connect 1 0 4 0;
-#X connect 1 0 9 0;
-#X connect 2 0 5 0;
-#X connect 2 0 9 1;
-#X connect 3 0 6 0;
-#X connect 3 0 9 2;
-#X connect 9 0 8 0;
-#X connect 10 0 11 0;
-#X connect 10 0 9 3;
-#X connect 12 0 1 0;
-#X connect 12 1 2 0;
-#X connect 12 2 3 0;
-#X connect 12 3 10 0;
diff --git a/desegment4.pd b/desegment4.pd
deleted file mode 100644
index f3c6fd1..0000000
--- a/desegment4.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 272 200 520 418 10;
-#X obj 162 200 join 0.5;
-#X obj 243 230 join 0.666;
-#X obj 133 90 inlet;
-#X obj 194 89 inlet;
-#X obj 261 90 inlet;
-#X obj 319 328 outlet;
-#X obj 353 88 inlet;
-#X obj 319 277 join 0.75;
-#X connect 0 0 1 0;
-#X connect 1 0 7 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 1;
-#X connect 4 0 1 1;
-#X connect 6 0 7 1;
-#X connect 7 0 5 0;
diff --git a/mapping-meta.pd b/mapping-meta.pd
index 180d54c..c5a66a1 100644
--- a/mapping-meta.pd
+++ b/mapping-meta.pd
@@ -5,5 +5,5 @@
#X text 10 50 AUTHOR Cyrille Henry and Hans-Christoph Steiner;
#X text 10 70 DESCRIPTION objects for mapping data to control;
#X text 10 90 LICENSE GNU GPL;
-#X text 10 110 VERSION ;
+#X text 10 110 VERSION 0.2;
#X restore 10 10 pd META;
diff --git a/mapping2midi-help.pd b/mapping2midi-help.pd
new file mode 100644
index 0000000..f02de03
--- /dev/null
+++ b/mapping2midi-help.pd
@@ -0,0 +1,24 @@
+#N canvas 633 307 475 315 10;
+#X obj 5 2 cnv 15 450 20 empty empty mapping2midi 2 11 1 18 -233017
+-66577 0;
+#X msg 422 3 pddp;
+#X text 254 269 released under the GNU GPL;
+#X text 185 228 For more info:;
+#X obj 289 226 pddp/pddplink ../mapping-about.pd -text mapping-about;
+#X text 40 254 (C) Copyright 2005 Hans-Christoph Steiner <hans@at.or.at>
+;
+#X text 294 161 related objects:;
+#X obj 234 181 radians2mapping;
+#X obj 346 181 degrees2mapping;
+#X obj 288 200 mapping2degrees;
+#X floatatom 69 185 9 0 0 1 radians - -;
+#X obj 72 85 hsl 128 15 0 1 0 0 empty empty mapping 6 7 1 10 -262131
+-1 -1 0 0;
+#X floatatom 95 115 5 0 0 0 - - -;
+#X obj 69 150 mapping2midi;
+#X text 26 34 This object converts numbers from the mapping range (0
+to 1) to radians (-pi to pi) with the 0's lining up in the same place.
+;
+#X connect 11 0 12 0;
+#X connect 11 0 13 0;
+#X connect 13 0 10 0;
diff --git a/midi2mapping-help.pd b/midi2mapping-help.pd
new file mode 100644
index 0000000..5b5cbd5
--- /dev/null
+++ b/midi2mapping-help.pd
@@ -0,0 +1,25 @@
+#N canvas 171 259 533 333 10;
+#X obj 5 2 cnv 15 450 20 empty empty midi2mapping 2 11 1 18 -233017
+-66577 0;
+#X msg 422 3 pddp;
+#X text 254 269 released under the GNU GPL;
+#X text 144 228 For more info:;
+#X text 40 254 (C) Copyright 2005 Hans-Christoph Steiner <hans@at.or.at>
+;
+#X text 254 186 related objects:;
+#X floatatom 69 195 5 0 0 1 mapping - -;
+#X obj 72 95 hsl 128 15 -3.14159 3.14159 0 0 empty empty midi 6 7 1
+10 -262131 -1 -1 5000 0;
+#X floatatom 95 125 9 0 0 0 - - -;
+#X obj 69 160 midi2mapping;
+#X text 21 35 This object converts numbers from radians (-pi to pi)
+to the mapping range (0 to 1) with the 0's lining up in the same place.
+;
+#X obj 252 202 midi2mapping;
+#X obj 140 202 degrees2mapping;
+#X obj 365 202 mapping2degrees;
+#X obj 248 226 pddp/pddplink ../mapping-about.pd -text mapping-about
+;
+#X connect 7 0 8 0;
+#X connect 7 0 9 0;
+#X connect 9 0 6 0;
diff --git a/segment12.pd b/segment12.pd
deleted file mode 100644
index 4af4b67..0000000
--- a/segment12.pd
+++ /dev/null
@@ -1,35 +0,0 @@
-#N canvas 299 188 668 285 10;
-#X obj 8 8 inlet;
-#X obj 167 4 inlet;
-#X obj 0 210 outlet;
-#X obj 55 210 outlet;
-#X obj 110 210 outlet;
-#X obj 165 210 outlet;
-#X obj 220 210 outlet;
-#X obj 275 210 outlet;
-#X obj 330 210 outlet;
-#X obj 385 210 outlet;
-#X obj 440 210 outlet;
-#X obj 495 210 outlet;
-#X obj 550 210 outlet;
-#X obj 605 210 outlet;
-#X obj 100 58 segment3;
-#X obj 52 137 segment4;
-#X obj 244 137 segment4;
-#X obj 457 137 segment4;
-#X connect 0 0 14 0;
-#X connect 14 0 15 0;
-#X connect 14 1 16 0;
-#X connect 14 2 17 0;
-#X connect 15 0 2 0;
-#X connect 15 1 3 0;
-#X connect 15 2 4 0;
-#X connect 15 3 5 0;
-#X connect 16 0 6 0;
-#X connect 16 1 7 0;
-#X connect 16 2 8 0;
-#X connect 16 3 9 0;
-#X connect 17 0 10 0;
-#X connect 17 1 11 0;
-#X connect 17 2 12 0;
-#X connect 17 3 13 0;
diff --git a/segment24.pd b/segment24.pd
deleted file mode 100644
index 1036309..0000000
--- a/segment24.pd
+++ /dev/null
@@ -1,56 +0,0 @@
-#N canvas 25 73 1063 415 10;
-#X obj 277 115 segment12 ------------------;
-#X obj 476 51 disjoin 0.5;
-#X obj 477 19 inlet;
-#X obj 10 210 outlet;
-#X obj 65 210 outlet;
-#X obj 120 210 outlet;
-#X obj 175 210 outlet;
-#X obj 230 210 outlet;
-#X obj 285 210 outlet;
-#X obj 340 210 outlet;
-#X obj 395 210 outlet;
-#X obj 450 210 outlet;
-#X obj 505 210 outlet;
-#X obj 560 210 outlet;
-#X obj 615 210 outlet;
-#X obj 937 115 segment12 ------------------;
-#X obj 670 210 outlet;
-#X obj 725 210 outlet;
-#X obj 780 210 outlet;
-#X obj 835 210 outlet;
-#X obj 890 210 outlet;
-#X obj 945 210 outlet;
-#X obj 1000 210 outlet;
-#X obj 1055 210 outlet;
-#X obj 1110 210 outlet;
-#X obj 1165 210 outlet;
-#X obj 1220 210 outlet;
-#X obj 1275 210 outlet;
-#X connect 0 0 3 0;
-#X connect 0 1 4 0;
-#X connect 0 2 5 0;
-#X connect 0 3 6 0;
-#X connect 0 4 7 0;
-#X connect 0 5 8 0;
-#X connect 0 6 9 0;
-#X connect 0 7 10 0;
-#X connect 0 8 11 0;
-#X connect 0 9 12 0;
-#X connect 0 10 13 0;
-#X connect 0 11 14 0;
-#X connect 1 0 0 0;
-#X connect 1 1 15 0;
-#X connect 2 0 1 0;
-#X connect 15 0 16 0;
-#X connect 15 1 17 0;
-#X connect 15 2 18 0;
-#X connect 15 3 19 0;
-#X connect 15 4 20 0;
-#X connect 15 5 21 0;
-#X connect 15 6 22 0;
-#X connect 15 7 23 0;
-#X connect 15 8 24 0;
-#X connect 15 9 25 0;
-#X connect 15 10 26 0;
-#X connect 15 11 27 0;
diff --git a/segment3.pd b/segment3.pd
deleted file mode 100644
index 0e2dd28..0000000
--- a/segment3.pd
+++ /dev/null
@@ -1,12 +0,0 @@
-#N canvas 0 22 352 298 10;
-#X obj 40 17 inlet;
-#X obj 52 241 outlet;
-#X obj 152 241 outlet;
-#X obj 252 241 outlet;
-#X obj 52 220 disjoin 0.333;
-#X obj 152 220 disjoin 0.5;
-#X connect 0 0 4 0;
-#X connect 4 0 1 0;
-#X connect 4 1 5 0;
-#X connect 5 0 2 0;
-#X connect 5 1 3 0;
diff --git a/segment4-help.pd b/segment4-help.pd
deleted file mode 100644
index 49598ef..0000000
--- a/segment4-help.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 15 380 672 318 10;
-#X obj 62 198 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 195 198 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 328 198 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 461 198 hsl 128 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 62 28 hsl 527 15 0 1 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X floatatom 60 222 5 0 0 0 - - -;
-#X floatatom 196 220 5 0 0 0 - - -;
-#X floatatom 328 222 5 0 0 0 - - -;
-#X floatatom 459 220 5 0 0 0 - - -;
-#X floatatom 46 51 5 0 0 0 - - -;
-#X obj 154 123 segment4;
-#X connect 0 0 5 0;
-#X connect 1 0 6 0;
-#X connect 2 0 7 0;
-#X connect 3 0 8 0;
-#X connect 4 0 9 0;
-#X connect 4 0 10 0;
-#X connect 10 0 0 0;
-#X connect 10 1 1 0;
-#X connect 10 2 2 0;
-#X connect 10 3 3 0;
diff --git a/segment4.pd b/segment4.pd
deleted file mode 100644
index 6da8407..0000000
--- a/segment4.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 0 22 450 300 10;
-#X obj 40 17 inlet;
-#X obj 42 220 disjoin 0.25;
-#X obj 42 241 outlet;
-#X obj 142 241 outlet;
-#X obj 242 241 outlet;
-#X obj 342 241 outlet;
-#X obj 142 220 disjoin 0.333;
-#X obj 242 220 disjoin 0.5;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 1 1 6 0;
-#X connect 6 0 3 0;
-#X connect 6 1 7 0;
-#X connect 7 0 4 0;
-#X connect 7 1 5 0;
diff --git a/vector-help.pd b/vector-help.pd
new file mode 100644
index 0000000..bbb8516
--- /dev/null
+++ b/vector-help.pd
@@ -0,0 +1,39 @@
+#N canvas 396 48 484 395 10;
+#X obj 5 2 cnv 15 450 20 empty empty vector 2 11 1 18 -233017 -66577
+0;
+#X floatatom 100 248 5 0 0 0 x - -;
+#X floatatom 100 335 7 0 0 0 radius-> - -;
+#X text 124 370 For more info:;
+#X obj 228 368 pddp/pddplink ../mapping-about.pd -text mapping-about
+;
+#X floatatom 159 335 7 0 0 1 <-angle - -;
+#X floatatom 158 248 5 0 0 1 y - -;
+#X obj 157 265 t b f;
+#X text 275 283 related objects:;
+#X text 43 86 center:;
+#X obj 207 303 spiral;
+#X obj 95 123 unauthorized/grid grid1 100 0 1 100 0 1 1 0.1 0.1 10
+10 7 243;
+#N canvas 841 235 450 300 c 0;
+#X obj 100 100 bng 30 250 50 0 empty empty empty 17 7 0 10 -262144
+-1 -1;
+#X msg 99 147 goto 49 49;
+#X obj 101 175 outlet;
+#X connect 0 0 1 0;
+#X connect 1 0 2 0;
+#X coords 0 -1 1 1 30 30 1 100 100;
+#X restore 95 85 pd c;
+#X obj 267 303 cartesian;
+#X obj 348 303 mapping2radians;
+#X text 17 29 Converts cartesian coordinates(x \, y) to polar coordinates
+(radius \, angle). The angle is in radians (-pi to pi).;
+#X obj 100 295 vector;
+#X connect 1 0 16 0;
+#X connect 6 0 7 0;
+#X connect 7 0 1 0;
+#X connect 7 1 16 1;
+#X connect 11 0 1 0;
+#X connect 11 1 6 0;
+#X connect 12 0 11 0;
+#X connect 16 0 2 0;
+#X connect 16 1 5 0;