[SCM] pd-cxc/master: Imported Upstream version 0.5.2

eighthave at users.alioth.debian.org eighthave at users.alioth.debian.org
Fri Jan 18 04:17:44 UTC 2013


The following commit has been merged in the master branch:
commit 047a4e034104c22b67e5f5ccce458313884bf712
Author: Hans-Christoph Steiner <hans at eds.org>
Date:   Thu Jan 17 23:13:15 2013 -0500

    Imported Upstream version 0.5.2

diff --git a/ENV-help.pd b/ENV-help.pd
index 7582c67..6833a1e 100644
--- a/ENV-help.pd
+++ b/ENV-help.pd
@@ -1,22 +1,32 @@
-#N canvas 370 240 625 314 10;
+#N canvas 0 31 625 314 10;
 #X obj 147 203 ENV;
 #X msg 147 163 RAND_MAX;
-#X floatatom 226 253 10 0 0;
+#X floatatom 226 253 10 0 0 0 - - -;
 #X obj 147 277 print;
 #X msg 214 164 getenv \$1;
-#X symbolatom 215 130 10 0 0;
+#X symbolatom 215 130 10 0 0 0 - - -;
 #X obj 295 130 symbol;
 #X msg 311 105 HOSTNAME;
 #X msg 310 80 USERNAME;
 #X obj 147 228 route symbol;
 #X msg 147 253 \$1;
 #X msg 424 110 USERNAME bla;
-#X obj 386 168 cxc.prepend setenv;
 #X obj 395 202 print pre;
 #X msg 425 135 HOSTNAME testi;
 #X msg 312 45 RANDOM;
 #X text 18 7 get and set environment variables etc ...;
 #X msg 244 51 DATE;
+#N canvas 299 125 494 344 META 0;
+#X text 12 145 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 65 DESCRIPTION get and set environment variables;
+#X text 12 85 INLET_0 RAND_MAX getenv;
+#X text 12 105 OUTLET_0 float symbol;
+#X text 12 45 LICENSE GPL v2;
+#X text 12 125 AUTHOR jdl at xdv.org;
+#X text 12 15 KEYWORDS control filesystem;
+#X restore 575 293 pd META;
+#X obj 386 168 cxc_prepend setenv;
 #X connect 0 0 9 0;
 #X connect 1 0 0 0;
 #X connect 4 0 0 0;
@@ -27,8 +37,5 @@
 #X connect 9 0 10 0;
 #X connect 9 1 2 0;
 #X connect 10 0 3 0;
-#X connect 11 0 12 0;
-#X connect 12 0 0 0;
-#X connect 14 0 12 0;
-#X connect 15 0 6 0;
-#X connect 17 0 6 0;
+#X connect 14 0 6 0;
+#X connect 16 0 6 0;
diff --git a/LICENSE.txt b/LICENSE.txt
index 5b6e7c6..d159169 100644
--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,12 +1,12 @@
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 2, June 1991
 
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                       59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  Everyone is permitted to copy and distribute verbatim copies
  of this license document, but changing it is not allowed.
 
-			    Preamble
+                            Preamble
 
   The licenses for most software are designed to take away your
 freedom to share and change it.  By contrast, the GNU General Public
@@ -15,7 +15,7 @@ software--to make sure the software is free for all its users.  This
 General Public License applies to most of the Free Software
 Foundation's software and to any other program whose authors commit to
 using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
+the GNU Lesser General Public License instead.)  You can apply it to
 your programs, too.
 
   When we speak of free software, we are referring to freedom, not
@@ -55,8 +55,8 @@ patent must be licensed for everyone's free use or not licensed at all.
 
   The precise terms and conditions for copying, distribution and
 modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
+
+                    GNU GENERAL PUBLIC LICENSE
    TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
 
   0. This License applies to any program or other work which contains
@@ -110,7 +110,7 @@ above, provided that you also meet all of these conditions:
     License.  (Exception: if the Program itself is interactive but
     does not normally print such an announcement, your work based on
     the Program is not required to print an announcement.)
-
+
 These requirements apply to the modified work as a whole.  If
 identifiable sections of that work are not derived from the Program,
 and can be reasonably considered independent and separate works in
@@ -168,7 +168,7 @@ access to copy from a designated place, then offering equivalent
 access to copy the source code from the same place counts as
 distribution of the source code, even though third parties are not
 compelled to copy the source along with the object code.
-
+
   4. You may not copy, modify, sublicense, or distribute the Program
 except as expressly provided under this License.  Any attempt
 otherwise to copy, modify, sublicense or distribute the Program is
@@ -225,7 +225,7 @@ impose that choice.
 
 This section is intended to make thoroughly clear what is believed to
 be a consequence of the rest of this License.
-
+
   8. If the distribution and/or use of the Program is restricted in
 certain countries either by patents or by copyrighted interfaces, the
 original copyright holder who places the Program under this License
@@ -255,7 +255,7 @@ make exceptions for this.  Our decision will be guided by the two goals
 of preserving the free status of all derivatives of our free software and
 of promoting the sharing and reuse of software generally.
 
-			    NO WARRANTY
+                            NO WARRANTY
 
   11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
 FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
@@ -277,9 +277,9 @@ YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
 
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
 
   If you develop a new program, and you want it to be of the greatest
 possible use to the public, the best way to achieve this is to make it
@@ -303,10 +303,9 @@ the "copyright" line and a pointer to where the full notice is found.
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     GNU General Public License for more details.
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
+    You should have received a copy of the GNU General Public License along
+    with this program; if not, write to the Free Software Foundation, Inc.,
+    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 
 Also add information on how to contact you by electronic and paper mail.
 
@@ -336,5 +335,5 @@ necessary.  Here is a sample; alter the names:
 This General Public License does not permit incorporating your program into
 proprietary programs.  If your program is a subroutine library, you may
 consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
+library.  If this is what you want to do, use the GNU Lesser General
 Public License instead of this License.
diff --git a/Makefile b/Makefile
index 41add97..b4bbd7f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,4 +1,4 @@
-## Pd library template version 1.0.3
+## Pd library template version 1.0.11
 # For instructions on how to use this template, see:
 #  http://puredata.info/docs/developer/MakefileTemplate
 LIBRARY_NAME = cxc
@@ -13,7 +13,7 @@ SOURCES_linux = proc.c
 
 # list all pd objects (i.e. myobject.pd) files here, and their helpfiles will
 # be included automatically
-PDOBJECTS = 
+PDOBJECTS = fader.pd
 
 # example patches and related files, in the 'examples' subfolder
 EXAMPLES = 
@@ -35,9 +35,11 @@ EXTRA_DIST = TODO REFERENCES x_connective_pd034.diff x_connective_pd035.diff cxc
 #
 #------------------------------------------------------------------------------#
 
-CFLAGS = -DPD -I"$(PD_INCLUDE)" -Wall -W -g
-LDFLAGS =  
-LIBS = 
+ALL_CFLAGS = -I"$(PD_INCLUDE)"
+ALL_LDFLAGS =  
+SHARED_LDFLAGS =
+ALL_LIBS = 
+
 
 #------------------------------------------------------------------------------#
 #
@@ -45,12 +47,17 @@ LIBS =
 #
 #------------------------------------------------------------------------------#
 
+# these can be set from outside without (usually) breaking the build
+CFLAGS = -Wall -W -g
+LDFLAGS =
+LIBS =
+
 # get library version from meta file
 LIBRARY_VERSION = $(shell sed -n 's|^\#X text [0-9][0-9]* [0-9][0-9]* VERSION \(.*\);|\1|p' $(LIBRARY_NAME)-meta.pd)
 
-CFLAGS += -DVERSION='"$(LIBRARY_VERSION)"'
+ALL_CFLAGS += -DPD -DVERSION='"$(LIBRARY_VERSION)"'
 
-PD_INCLUDE = $(PD_PATH)/include
+PD_INCLUDE = $(PD_PATH)/include/pd
 # where to install the library, overridden below depending on platform
 prefix = /usr/local
 libdir = $(prefix)/lib
@@ -66,7 +73,7 @@ ALLSOURCES := $(SOURCES) $(SOURCES_android) $(SOURCES_cygwin) $(SOURCES_macosx)
 	         $(SOURCES_iphoneos) $(SOURCES_linux) $(SOURCES_windows)
 
 DISTDIR=$(LIBRARY_NAME)-$(LIBRARY_VERSION)
-ORIGDIR=pd-$(LIBRARY_NAME)_$(LIBRARY_VERSION)
+ORIGDIR=pd-$(LIBRARY_NAME:~=)_$(LIBRARY_VERSION)
 
 UNAME := $(shell uname -s)
 ifeq ($(UNAME),Darwin)
@@ -74,6 +81,7 @@ ifeq ($(UNAME),Darwin)
   ifeq ($(CPU),arm) # iPhone/iPod Touch
     SOURCES += $(SOURCES_iphoneos)
     EXTENSION = pd_darwin
+    SHARED_EXTENSION = dylib
     OS = iphoneos
     PD_PATH = /Applications/Pd-extended.app/Contents/Resources
     IPHONE_BASE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
@@ -83,14 +91,16 @@ ifeq ($(UNAME),Darwin)
     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 
+    ALL_CFLAGS := $(IPHONE_CFLAGS) $(ALL_CFLAGS)
+    ALL_LDFLAGS += -arch armv6 -bundle -undefined dynamic_lookup $(ISYSROOT)
+    SHARED_LDFLAGS += -arch armv6 -dynamiclib -undefined dynamic_lookup $(ISYSROOT)
+    ALL_LIBS += -lc $(LIBS_iphoneos)
     STRIP = strip -x
     DISTBINDIR=$(DISTDIR)-$(OS)
   else # Mac OS X
     SOURCES += $(SOURCES_macosx)
     EXTENSION = pd_darwin
+    SHARED_EXTENSION = dylib
     OS = macosx
     PD_PATH = /Applications/Pd-extended.app/Contents/Resources
     OPT_CFLAGS = -ftree-vectorize -ftree-vectorizer-verbose=2 -fast
@@ -101,27 +111,87 @@ ifeq ($(UNAME),Darwin)
       FAT_FLAGS = -arch ppc -arch i386 -arch x86_64 -mmacosx-version-min=10.4
       SOURCES += $(SOURCES_iphoneos)
     endif
-    CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
-    LDFLAGS += $(FAT_FLAGS) -bundle -undefined dynamic_lookup -L/sw/lib
+    ALL_CFLAGS += $(FAT_FLAGS) -fPIC -I/sw/include
     # 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 
+    BUNDLE_LOADER = $(shell test ! -e $(PD_PATH)/bin/pd || echo -bundle_loader $(PD_PATH)/bin/pd)
+    ALL_LDFLAGS += $(FAT_FLAGS) -bundle $(BUNDLE_LOADER) -undefined dynamic_lookup -L/sw/lib
+    SHARED_LDFLAGS += $(FAT_FLAGS) -dynamiclib -undefined dynamic_lookup \
+	-install_name @loader_path/$(SHARED_LIB) -compatibility_version 1 -current_version 1.0
+    ALL_LIBS += -lc $(LIBS_macosx)
     STRIP = strip -x
     DISTBINDIR=$(DISTDIR)-$(OS)
 # install into ~/Library/Pd on Mac OS X since /usr/local isn't used much
     pkglibdir=$(HOME)/Library/Pd
   endif
 endif
+# Tho Android uses Linux, we use this fake uname to provide an easy way to
+# setup all this things needed to cross-compile for Android using the NDK
+ifeq ($(UNAME),ANDROID)
+  CPU := arm
+  SOURCES += $(SOURCES_android)
+  EXTENSION = pd_linux
+  SHARED_EXTENSION = so
+  OS = android
+  PD_PATH = /usr
+  NDK_BASE := /usr/local/android-ndk
+  NDK_PLATFORM_VERSION := 5
+  NDK_SYSROOT=$(NDK_BASE)/platforms/android-$(NDK_PLATFORM_VERSION)/arch-arm
+  NDK_UNAME := $(shell uname -s | tr '[A-Z]' '[a-z]')
+  NDK_TOOLCHAIN_BASE=$(NDK_BASE)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/$(NDK_UNAME)-x86
+  CC := $(NDK_TOOLCHAIN_BASE)/bin/arm-linux-androideabi-gcc --sysroot=$(NDK_SYSROOT)
+  OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
+  CFLAGS += 
+  LDFLAGS += -rdynamic -shared
+  SHARED_LDFLAGS += -Wl,-soname,$(SHARED_LIB) -shared
+  LIBS += -lc $(LIBS_android)
+  STRIP := $(NDK_TOOLCHAIN_BASE)/bin/arm-linux-androideabi-strip \
+	--strip-unneeded -R .note -R .comment
+  DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
+endif
 ifeq ($(UNAME),Linux)
   CPU := $(shell uname -m)
   SOURCES += $(SOURCES_linux)
   EXTENSION = pd_linux
+  SHARED_EXTENSION = so
+  OS = linux
+  PD_PATH = /usr
+  OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
+  ALL_CFLAGS += -fPIC
+  ALL_LDFLAGS += -rdynamic -shared -fPIC
+  SHARED_LDFLAGS += -Wl,-soname,$(SHARED_LIB) -shared
+  ALL_LIBS += -lc $(LIBS_linux)
+  STRIP = strip --strip-unneeded -R .note -R .comment
+  DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
+endif
+ifeq ($(UNAME),GNU)
+  # GNU/Hurd, should work like GNU/Linux for basically all externals
+  CPU := $(shell uname -m)
+  SOURCES += $(SOURCES_linux)
+  EXTENSION = pd_linux
+  SHARED_EXTENSION = so
   OS = linux
   PD_PATH = /usr
   OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
-  CFLAGS += -fPIC
-  LDFLAGS += -Wl,--export-dynamic  -shared -fPIC
-  LIBS += -lc
+  ALL_CFLAGS += -fPIC
+  ALL_LDFLAGS += -rdynamic -shared -fPIC
+  SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB)
+  ALL_LIBS += -lc $(LIBS_linux)
+  STRIP = strip --strip-unneeded -R .note -R .comment
+  DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
+endif
+ifeq ($(UNAME),GNU/kFreeBSD)
+  # Debian GNU/kFreeBSD, should work like GNU/Linux for basically all externals
+  CPU := $(shell uname -m)
+  SOURCES += $(SOURCES_linux)
+  EXTENSION = pd_linux
+  SHARED_EXTENSION = so
+  OS = linux
+  PD_PATH = /usr
+  OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
+  ALL_CFLAGS += -fPIC
+  ALL_LDFLAGS += -rdynamic -shared -fPIC
+  SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB)
+  ALL_LIBS += -lc $(LIBS_linux)
   STRIP = strip --strip-unneeded -R .note -R .comment
   DISTBINDIR=$(DISTDIR)-$(OS)-$(shell uname -m)
 endif
@@ -129,12 +199,14 @@ ifeq (CYGWIN,$(findstring CYGWIN,$(UNAME)))
   CPU := $(shell uname -m)
   SOURCES += $(SOURCES_cygwin)
   EXTENSION = dll
+  SHARED_EXTENSION = dll
   OS = cygwin
-  PD_PATH = $(cygpath $(PROGRAMFILES))/pd
+  PD_PATH = $(shell cygpath $$PROGRAMFILES)/pd
   OPT_CFLAGS = -O6 -funroll-loops -fomit-frame-pointer
-  CFLAGS += 
-  LDFLAGS += -Wl,--export-dynamic -shared -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin"
-  LIBS += -lc -lpd
+  ALL_CFLAGS += 
+  ALL_LDFLAGS += -rdynamic -shared -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin"
+  SHARED_LDFLAGS += -shared -Wl,-soname,$(SHARED_LIB)
+  ALL_LIBS += -lc -lpd $(LIBS_cygwin)
   STRIP = strip --strip-unneeded -R .note -R .comment
   DISTBINDIR=$(DISTDIR)-$(OS)
 endif
@@ -142,12 +214,16 @@ ifeq (MINGW,$(findstring MINGW,$(UNAME)))
   CPU := $(shell uname -m)
   SOURCES += $(SOURCES_windows)
   EXTENSION = dll
+  SHARED_EXTENSION = dll
   OS = windows
-  PD_PATH = $(shell cd "$(PROGRAMFILES)"/pd && pwd)
+  PD_PATH = $(shell cd "$$PROGRAMFILES/pd" && pwd)
+  # MinGW doesn't seem to include cc so force gcc
+  CC=gcc
   OPT_CFLAGS = -O3 -funroll-loops -fomit-frame-pointer
-  CFLAGS += -mms-bitfields
-  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
+  ALL_CFLAGS += -mms-bitfields
+  ALL_LDFLAGS += -s -shared -Wl,--enable-auto-import -L"$(PD_PATH)/src" -L"$(PD_PATH)/bin" -L"$(PD_PATH)/obj"
+  SHARED_LDFLAGS += -shared
+  ALL_LIBS += -lpd -lwsock32 -lkernel32 -luser32 -lgdi32 $(LIBS_windows)
   STRIP = strip --strip-unneeded -R .note -R .comment
   DISTBINDIR=$(DISTDIR)-$(OS)
 endif
@@ -155,42 +231,57 @@ endif
 # in case somebody manually set the HELPPATCHES above
 HELPPATCHES ?= $(SOURCES:.c=-help.pd) $(PDOBJECTS:.pd=-help.pd)
 
-CFLAGS += $(OPT_CFLAGS)
+ALL_CFLAGS := $(ALL_CFLAGS) $(CFLAGS) $(OPT_CFLAGS)
+ALL_LDFLAGS := $(LDFLAGS) $(ALL_LDFLAGS)
+ALL_LIBS := $(LIBS) $(ALL_LIBS)
 
+SHARED_SOURCE ?= $(shell test ! -e lib$(LIBRARY_NAME).c || \
+	echo lib$(LIBRARY_NAME).c )
+SHARED_HEADER ?= $(shell test ! -e $(LIBRARY_NAME).h || echo $(LIBRARY_NAME).h)
+SHARED_LIB = $(SHARED_SOURCE:.c=.$(SHARED_EXTENSION))
 
-.PHONY = install libdir_install single_install install-doc install-exec install-examples install-manual clean dist etags $(LIBRARY_NAME)
+.PHONY = install libdir_install single_install install-doc install-examples install-manual clean distclean dist etags $(LIBRARY_NAME)
 
-all: $(SOURCES:.c=.$(EXTENSION))
+all: $(SOURCES:.c=.$(EXTENSION)) $(SHARED_LIB)
 
 %.o: %.c
-	$(CC) $(CFLAGS) -o "$*.o" -c "$*.c"
+	$(CC) $(ALL_CFLAGS) -o "$*.o" -c "$*.c"
 
-%.$(EXTENSION): %.o
-	$(CC) $(LDFLAGS) -o "$*.$(EXTENSION)" "$*.o"  $(LIBS)
+%.$(EXTENSION): %.o $(SHARED_LIB)
+	$(CC) $(ALL_LDFLAGS) -o "$*.$(EXTENSION)" "$*.o"  $(ALL_LIBS) $(SHARED_LIB)
 	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)
+	$(CC) $(ALL_LDFLAGS) -o $(LIBRARY_NAME).$(EXTENSION) $(SOURCES:.c=.o) $(LIBRARY_NAME).o $(ALL_LIBS)
 	chmod a-x $(LIBRARY_NAME).$(EXTENSION)
 
+$(SHARED_LIB): $(SHARED_SOURCE:.c=.o)
+	$(CC) $(SHARED_LDFLAGS) -o $(SHARED_LIB) $(SHARED_SOURCE:.c=.o) $(LIBS)
+
 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-manual
+libdir_install: $(SOURCES:.c=.$(EXTENSION)) $(SHARED_LIB) install-doc install-examples install-manual
 	$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
 	$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd \
 		$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
 	test -z "$(strip $(SOURCES))" || (\
 		$(INSTALL_PROGRAM) $(SOURCES:.c=.$(EXTENSION)) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME) && \
 		$(STRIP) $(addprefix $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/,$(SOURCES:.c=.$(EXTENSION))))
+	test -z "$(strip $(SHARED_LIB))" || \
+		$(INSTALL_DATA) $(SHARED_LIB) \
+			$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
+	test -z "$(strip $(wildcard $(SOURCES:.c=.tcl)))" || \
+		$(INSTALL_DATA) $(wildcard $(SOURCES:.c=.tcl)) \
+			$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
 	test -z "$(strip $(PDOBJECTS))" || \
 		$(INSTALL_DATA) $(PDOBJECTS) \
 			$(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
 
 # install library linked as single binary
-single_install: $(LIBRARY_NAME) install-doc install-exec
+single_install: $(LIBRARY_NAME) install-doc install-examples install-manual
 	$(INSTALL_DIR) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
 	$(INSTALL_PROGRAM) $(LIBRARY_NAME).$(EXTENSION) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)
 	$(STRIP) $(DESTDIR)$(objectsdir)/$(LIBRARY_NAME)/$(LIBRARY_NAME).$(EXTENSION)
@@ -219,10 +310,11 @@ install-manual:
 
 
 clean:
-	-rm -f -- $(SOURCES:.c=.o) $(SOURCES_LIB:.c=.o)
+	-rm -f -- $(SOURCES:.c=.o) $(SOURCES_LIB:.c=.o) $(SHARED_SOURCE:.c=.o)
 	-rm -f -- $(SOURCES:.c=.$(EXTENSION))
 	-rm -f -- $(LIBRARY_NAME).o
 	-rm -f -- $(LIBRARY_NAME).$(EXTENSION)
+	-rm -f -- $(SHARED_LIB)
 
 distclean: clean
 	-rm -f -- $(DISTBINDIR).tar.gz
@@ -238,7 +330,7 @@ $(DISTBINDIR):
 
 libdir: all $(DISTBINDIR)
 	$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd  $(DISTBINDIR)
-	$(INSTALL_DATA) $(SOURCES)  $(DISTBINDIR)
+	$(INSTALL_DATA) $(SOURCES) $(SHARED_SOURCE) $(SHARED_HEADER) $(DISTBINDIR)
 	$(INSTALL_DATA) $(HELPPATCHES) $(DISTBINDIR)
 	test -z "$(strip $(EXTRA_DIST))" || \
 		$(INSTALL_DATA) $(EXTRA_DIST)    $(DISTBINDIR)
@@ -257,6 +349,12 @@ dist: $(DISTDIR)
 	$(INSTALL_DATA) $(LIBRARY_NAME)-meta.pd  $(DISTDIR)
 	test -z "$(strip $(ALLSOURCES))" || \
 		$(INSTALL_DATA) $(ALLSOURCES)  $(DISTDIR)
+	test -z "$(strip $(wildcard $(ALLSOURCES:.c=.tcl)))" || \
+		$(INSTALL_DATA) $(wildcard $(ALLSOURCES:.c=.tcl))  $(DISTDIR)
+	test -z "$(strip $(SHARED_HEADER))" || \
+		$(INSTALL_DATA) $(SHARED_HEADER)  $(DISTDIR)
+	test -z "$(strip $(SHARED_SOURCE))" || \
+		$(INSTALL_DATA) $(SHARED_SOURCE)  $(DISTDIR)
 	test -z "$(strip $(PDOBJECTS))" || \
 		$(INSTALL_DATA) $(PDOBJECTS)  $(DISTDIR)
 	test -z "$(strip $(HELPPATCHES))" || \
@@ -289,17 +387,25 @@ etags:
 	etags *.h $(SOURCES) ../../pd/src/*.[ch] /usr/include/*.h /usr/include/*/*.h
 
 showsetup:
+	@echo "CC: $(CC)"
 	@echo "CFLAGS: $(CFLAGS)"
 	@echo "LDFLAGS: $(LDFLAGS)"
 	@echo "LIBS: $(LIBS)"
+	@echo "ALL_CFLAGS: $(ALL_CFLAGS)"
+	@echo "ALL_LDFLAGS: $(ALL_LDFLAGS)"
+	@echo "ALL_LIBS: $(ALL_LIBS)"
 	@echo "PD_INCLUDE: $(PD_INCLUDE)"
 	@echo "PD_PATH: $(PD_PATH)"
 	@echo "objectsdir: $(objectsdir)"
 	@echo "LIBRARY_NAME: $(LIBRARY_NAME)"
 	@echo "LIBRARY_VERSION: $(LIBRARY_VERSION)"
 	@echo "SOURCES: $(SOURCES)"
+	@echo "SHARED_HEADER: $(SHARED_HEADER)"
+	@echo "SHARED_SOURCE: $(SHARED_SOURCE)"
+	@echo "SHARED_LIB: $(SHARED_LIB)"
 	@echo "PDOBJECTS: $(PDOBJECTS)"
 	@echo "ALLSOURCES: $(ALLSOURCES)"
+	@echo "ALLSOURCES TCL: $(wildcard $(ALLSOURCES:.c=.tcl))"
 	@echo "UNAME: $(UNAME)"
 	@echo "CPU: $(CPU)"
 	@echo "pkglibdir: $(pkglibdir)"
diff --git a/ascseq-help.pd b/ascseq-help.pd
index 5038a84..fde0b78 100644
--- a/ascseq-help.pd
+++ b/ascseq-help.pd
@@ -1,10 +1,21 @@
-#N canvas 454 117 570 300 10;
-#X obj 132 168 print ascseq;
+#N canvas 0 31 409 235 10;
+#X obj 131 168 print ascseq;
 #X msg 253 112 bang;
 #X obj 223 70 random_fl -10000 10000;
 #X obj 131 118 ascseq 100;
-#X floatatom 268 137 5 0 0;
+#X floatatom 268 137 5 0 0 0 - - -;
 #X msg 83 34 "abcde 123 dsfjnsdf ewrte 3k4n5 3n hjb5465hj 6";
+#N canvas 42 244 494 344 META 0;
+#X text 12 145 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 45 DESCRIPTION;
+#X text 12 65 INLET_0 anything;
+#X text 12 105 OUTLET_0 float;
+#X text 12 85 INLET_1 float;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 5 KEYWORDS control conversion symbol_op;
+#X text 12 125 AUTHOR jdl at xdv.org;
+#X restore 360 214 pd META;
 #X connect 1 0 2 0;
 #X connect 2 0 3 0;
 #X connect 3 0 0 0;
diff --git a/ascwave-help.pd b/ascwave-help.pd
index bb36502..117759c 100644
--- a/ascwave-help.pd
+++ b/ascwave-help.pd
@@ -1,7 +1,7 @@
-#N canvas 448 258 407 316 10;
+#N canvas 1 2 407 316 10;
 #X msg 80 153 bang;
-#X floatatom 169 176;
-#X floatatom 214 58;
+#X floatatom 169 176 0 0 0 0 - - -;
+#X floatatom 214 58 0 0 0 0 - - -;
 #X obj 151 13 loadbang;
 #X obj 157 97 metro 100;
 #X msg 157 196 1;
@@ -10,9 +10,9 @@
 #X obj 145 221 ascwave;
 #X msg 75 192 fill 1;
 #X msg 74 211 fill 0;
-#X obj 145 262 ixprint;
+#X obj 145 269 ixprint;
 #X msg 145 241 \$1;
-#N canvas 517 176 588 372 modulate 0;
+#N canvas 273 122 588 372 modulate 0;
 #X obj 84 200 outlet;
 #X obj 84 139 random 80;
 #X msg 30 110 bang;
@@ -36,13 +36,26 @@
 #X connect 9 0 4 0;
 #X connect 10 0 3 0;
 #X restore 169 154 page modulate;
-#X floatatom 262 132;
+#X floatatom 262 132 0 0 0 0 - - -;
 #X obj 262 179 min 127;
 #X obj 262 154 max 33;
 #X obj 157 77 f;
 #X obj 210 78 f;
 #X text 200 178 <== here;
 #X text 297 131 <== and here;
+#N canvas 409 221 494 369 META 0;
+#X text 12 185 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 45 DESCRIPTION;
+#X text 12 5 KEYWORDS control symbol_op;
+#X text 12 85 INLET_1 float;
+#X text 12 105 INLET_2 float;
+#X text 12 125 INLET_3 float;
+#X text 12 65 INLET_0 float bang fill;
+#X text 12 145 OUTLET_0 symbol float;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 165 AUTHOR jdl at xdv.org;
+#X restore 356 294 pd META;
 #X connect 0 0 8 0;
 #X connect 1 0 8 2;
 #X connect 2 0 18 0;
diff --git a/ascwave.c b/ascwave.c
index 9b2031b..b2a6654 100644
--- a/ascwave.c
+++ b/ascwave.c
@@ -7,6 +7,13 @@
 #include <malloc.h>
 #endif
 
+/* support older Pd versions without sys_fopen(), sys_fclose(), and, sys_close() */
+#if PD_MAJOR_VERSION == 0 && PD_MINOR_VERSION < 44
+#define sys_fopen fopen
+#define sys_fclose fclose
+#define sys_close close
+#endif
+
 #ifndef RAND_MAX
 #define	RAND_MAX	21
 #endif
@@ -49,7 +56,7 @@ static void ascwave_open(t_ascwave *x, t_symbol *filename)
      post("ascwave: open");
      x->filename = filename;
      post("ascwave: filename = %s",x->filename->s_name);
-     if ((x->x_file = fopen(x->filename->s_name,"w")) < 0)
+     if ((x->x_file = sys_fopen(x->filename->s_name,"w")) < 0)
      {
 	  error("can't create %s",filename->s_name);
 	  return;
diff --git a/bfilt-help.pd b/bfilt-help.pd
index 4be9d45..1af26d1 100644
--- a/bfilt-help.pd
+++ b/bfilt-help.pd
@@ -1,17 +1,31 @@
-#N canvas 203 207 404 226 10;
-#X floatatom 85 119;
+#N canvas 0 31 404 226 10;
+#X floatatom 85 119 0 0 0 0 - - -;
 #X obj 57 175 print;
-#X floatatom 45 120;
+#X floatatom 45 120 0 0 0 0 - - -;
 #X obj 58 146 bfilt 5;
-#X text 43 16 bfilt (at the moment) is: modulo something + select 0;
-#X floatatom 167 120;
+#X text 43 16 bfilt (at the moment) is: modulo something + select 0
+;
+#X floatatom 167 120 0 0 0 0 - - -;
 #X obj 139 176 print;
-#X floatatom 127 121;
+#X floatatom 127 121 0 0 0 0 - - -;
 #X obj 140 147 bfilt2 5;
 #X obj 145 87 metro 100;
 #X msg 145 68 1;
-#X text 42 29 bfilt2: real bangfilter: bangs on first inlet \, internal counter \, only outputs every arg2th bang ...;
+#X text 42 29 bfilt2: real bangfilter: bangs on first inlet \, internal
+counter \, only outputs every arg2th bang ...;
 #X msg 169 67 0;
+#N canvas 176 129 494 344 META 0;
+#X text 12 165 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 45 DESCRIPTION bang on first inlet \, internal counter \,
+only outputs ever arg2th bang;
+#X text 12 5 KEYWORDS control filter bang_op;
+#X text 12 85 INLET_0 bang float;
+#X text 12 105 INLET_1 float;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 145 AUTHOR jdl at xdv.org;
+#X text 12 125 OUTLET_0 bang;
+#X restore 352 205 pd META;
 #X connect 0 0 3 1;
 #X connect 2 0 3 0;
 #X connect 3 0 1 0;
diff --git a/bfilt2-help.pd b/bfilt2-help.pd
index 4be9d45..7ca3b27 100644
--- a/bfilt2-help.pd
+++ b/bfilt2-help.pd
@@ -1,17 +1,31 @@
-#N canvas 203 207 404 226 10;
-#X floatatom 85 119;
+#N canvas 0 31 404 226 10;
+#X floatatom 85 119 0 0 0 0 - - -;
 #X obj 57 175 print;
-#X floatatom 45 120;
+#X floatatom 45 120 0 0 0 0 - - -;
 #X obj 58 146 bfilt 5;
-#X text 43 16 bfilt (at the moment) is: modulo something + select 0;
-#X floatatom 167 120;
+#X text 43 16 bfilt (at the moment) is: modulo something + select 0
+;
+#X floatatom 167 120 0 0 0 0 - - -;
 #X obj 139 176 print;
-#X floatatom 127 121;
+#X floatatom 127 121 0 0 0 0 - - -;
 #X obj 140 147 bfilt2 5;
 #X obj 145 87 metro 100;
 #X msg 145 68 1;
-#X text 42 29 bfilt2: real bangfilter: bangs on first inlet \, internal counter \, only outputs every arg2th bang ...;
+#X text 42 29 bfilt2: real bangfilter: bangs on first inlet \, internal
+counter \, only outputs every arg2th bang ...;
 #X msg 169 67 0;
+#N canvas 176 129 494 344 META 0;
+#X text 12 155 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 45 DESCRIPTION bang on first inlet \, internal counter \,
+only outputs ever arg2th bang;
+#X text 12 5 KEYWORDS control filter bang_op;
+#X text 12 75 INLET_0 bang float;
+#X text 12 95 INLET_1 float;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 115 OUTLET_0 bang;
+#X text 12 135 AUTHOR jdl at xdv.org;
+#X restore 355 203 pd META;
 #X connect 0 0 3 1;
 #X connect 2 0 3 0;
 #X connect 3 0 1 0;
diff --git a/cxavgdev-help.pd b/cxavgdev-help.pd
index d9c75f3..fbf92d0 100644
--- a/cxavgdev-help.pd
+++ b/cxavgdev-help.pd
@@ -1,4 +1,4 @@
-#N canvas 110 368 622 369 10;
+#N canvas 0 31 636 364 10;
 #X obj 64 102 noise~;
 #X obj 463 105 mean~ blir;
 #X obj 21 262 table blir;
@@ -85,6 +85,17 @@
 #X obj 460 304 cxstddev blir;
 #X obj 342 304 cxavgdev blir;
 #X obj 316 251 cxmean blir;
+#N canvas 567 269 494 344 META 0;
+#X text 12 135 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 115 AUTHOR jdl at xdv.org;
+#X text 12 5 KEYWORDS control array;
+#X text 12 45 DESCRIPTION this is supposed to calculate the signal
+mean of an array.;
+#X text 12 95 OUTLET_0 float;
+#X text 12 75 INLET_0 float set;
+#X restore 583 337 pd META;
 #X connect 0 0 10 0;
 #X connect 1 0 9 0;
 #X connect 5 0 4 0;
diff --git a/cxc-meta.pd b/cxc-meta.pd
index c202e65..4fad7e4 100644
--- a/cxc-meta.pd
+++ b/cxc-meta.pd
@@ -3,7 +3,7 @@
 #X text 10 10 META this is a prototype of a libdir meta file;
 #X text 10 30 NAME cxc;
 #X text 10 50 AUTHOR jdl at xdv.org;
-#X text 10 70 DESCRIPTION library of randoms, averages, and system tools;
-#X text 10 90 LICENSE ;
-#X text 10 110 VERSION 0.5.1;
+#X text 10 70 DESCRIPTION library of randoms \, averages \, and system tools;
+#X text 10 90 LICENSE GPL;
+#X text 10 110 VERSION 0.5.2;
 #X restore 10 10 pd META;
diff --git a/cxc_counter-help.pd b/cxc_counter-help.pd
index c1833aa..f7c6596 100644
--- a/cxc_counter-help.pd
+++ b/cxc_counter-help.pd
@@ -1,9 +1,64 @@
-#N canvas 344 237 450 300 10;
-#X obj 192 146 cxc_counter;
-#X floatatom 194 192 5 0 0 0 - - -;
-#X obj 193 90 metro 500;
-#X obj 196 61 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X connect 0 0 1 0;
-#X connect 2 0 0 0;
-#X connect 3 0 2 0;
+#N canvas 0 31 497 450 10;
+#X floatatom 33 260 5 0 0 0 - - -;
+#X obj 33 37 metro 500;
+#X obj 33 12 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1
+;
+#N canvas 144 91 494 389 META 0;
+#X text 12 215 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 95 INLET_1 float;
+#X text 12 45 DESCRIPTION bang on first inlet \, internal counter \,
+only outputs every arg2th bang;
+#X text 12 75 INLET_0 bang;
+#X text 12 115 INLET_2 float;
+#X text 12 135 INLET_3 float;
+#X text 12 155 OUTLET_0 float;
+#X text 12 175 OUTLET_1 bang;
+#X text 12 5 KEYWORDS control filter bang_op storage;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 195 AUTHOR jdl at xdv.org;
+#X restore 444 427 pd META;
+#X msg 245 31 fl1 1;
+#X msg 245 51 fl1 2;
+#X msg 245 71 fl1 3;
+#X text 288 31 count up;
+#X text 288 51 count down;
+#X text 288 71 count up and down;
+#X text 30 308 Args:;
+#X text 22 324 with no arguments: start at 1 \, count to 10 \, repeat
+;
+#X text 22 349 with one argument a: start at 1 \, count up to a \,
+repeat;
+#X text 22 369 with two arguments a \, b: start at a \, count up to
+b \, repeat;
+#X text 22 389 with three args a \, b \, c: start at a \, count to
+b \, in direction c;
+#X msg 245 96 fl2 3;
+#X text 288 96 set low boundary;
+#X text 288 121 set high boundary;
+#X msg 245 121 fl3 6;
+#X msg 47 106 reset;
+#X msg 47 136 clear;
+#X floatatom 54 168 5 0 0 0 - - -;
+#X text 90 168 direction (1=up \, 2=down \, 3=up & down);
+#X floatatom 75 189 5 0 0 0 - - -;
+#X text 114 187 low value;
+#X floatatom 96 210 5 0 0 0 - - -;
+#X text 132 210 high value;
+#X text 124 8 For some reason you can also send the following messages
+to the leftmost inlet:;
+#X text 89 120 not sure how these;
+#X text 101 136 differ...;
+#X obj 96 260 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
+-1;
+#X text 115 259 bang each time the counter reaches high/low limit;
+#X obj 33 233 cxc_counter;
+#X connect 1 0 32 0;
+#X connect 2 0 1 0;
+#X connect 19 0 32 0;
+#X connect 20 0 32 0;
+#X connect 21 0 32 1;
+#X connect 23 0 32 2;
+#X connect 25 0 32 3;
+#X connect 32 0 0 0;
+#X connect 32 1 30 0;
diff --git a/cxc_prepend-help.pd b/cxc_prepend-help.pd
index bc05e5d..06cab2d 100644
--- a/cxc_prepend-help.pd
+++ b/cxc_prepend-help.pd
@@ -1,11 +1,22 @@
-#N canvas 322 265 450 300 10;
+#N canvas 0 31 450 300 10;
 #X obj 186 244 print;
 #X msg 200 102 itsch ni san chi;
 #X obj 186 187 cxc_prepend /bla;
 #X obj 186 210 cxc_prepend send;
-#X floatatom 155 79 5 0 0;
+#X floatatom 155 79 5 0 0 0 - - -;
 #X msg 214 138 qui qua 2 3.4555 "bla ha";
 #X text 25 11 prepend arbitrary length lists/anythings with stuff;
+#N canvas 397 200 494 344 META 0;
+#X text 12 135 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 45 DESCIPTION prepend arbitrary length lists/anythings with
+stuff;
+#X text 12 5 KEYWORDS control anything_op;
+#X text 12 75 INLET_0 anything set;
+#X text 12 95 OUTLET_0 anything;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 115 AUTHOR jdl at xdv.org;
+#X restore 395 277 pd META;
 #X connect 1 0 2 0;
 #X connect 2 0 3 0;
 #X connect 3 0 0 0;
diff --git a/cxc_split-help.pd b/cxc_split-help.pd
index 26442d7..61cbc07 100644
--- a/cxc_split-help.pd
+++ b/cxc_split-help.pd
@@ -1,4 +1,4 @@
-#N canvas 100 100 576 380 10;
+#N canvas 0 31 576 417 10;
 #X msg 239 145 set x;
 #X msg 172 144 set .;
 #X obj 25 324 unpack f f f f;
@@ -27,6 +27,17 @@
 #X text 26 5 split or tokenize the incoming string at the specified
 delimiter \, digit-only substrings (including the .) are converted
 to numbers.;
+#N canvas 397 200 494 344 META 0;
+#X text 12 135 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 5 KEYWORDS control list_op symbol_op;
+#X text 12 45 DESCIPTION split or tokenize the incoming string at the
+specified delimiter;
+#X text 12 75 INLET_0 anything;
+#X text 12 95 OUTLET_0 list float symbol;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 115 AUTHOR jdl at xdv.org;
+#X restore 516 392 pd META;
 #X connect 0 0 14 0;
 #X connect 1 0 14 0;
 #X connect 2 0 3 0;
diff --git a/cxmean-help.pd b/cxmean-help.pd
index d9c75f3..3548033 100644
--- a/cxmean-help.pd
+++ b/cxmean-help.pd
@@ -1,4 +1,4 @@
-#N canvas 110 368 622 369 10;
+#N canvas 0 31 645 382 10;
 #X obj 64 102 noise~;
 #X obj 463 105 mean~ blir;
 #X obj 21 262 table blir;
@@ -85,6 +85,17 @@
 #X obj 460 304 cxstddev blir;
 #X obj 342 304 cxavgdev blir;
 #X obj 316 251 cxmean blir;
+#N canvas 567 269 494 344 META 0;
+#X text 12 135 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 115 AUTHOR jdl at xdv.org;
+#X text 12 5 KEYWORDS control array;
+#X text 12 45 DESCRIPTION this is supposed to calculate the signal
+mean of an array.;
+#X text 12 95 OUTLET_0 float;
+#X text 12 75 INLET_0 float set;
+#X restore 583 337 pd META;
 #X connect 0 0 10 0;
 #X connect 1 0 9 0;
 #X connect 5 0 4 0;
diff --git a/cxstddev-help.pd b/cxstddev-help.pd
index d9c75f3..83e5129 100644
--- a/cxstddev-help.pd
+++ b/cxstddev-help.pd
@@ -1,4 +1,4 @@
-#N canvas 110 368 622 369 10;
+#N canvas 0 31 640 382 10;
 #X obj 64 102 noise~;
 #X obj 463 105 mean~ blir;
 #X obj 21 262 table blir;
@@ -85,6 +85,17 @@
 #X obj 460 304 cxstddev blir;
 #X obj 342 304 cxavgdev blir;
 #X obj 316 251 cxmean blir;
+#N canvas 567 269 494 344 META 0;
+#X text 12 135 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 115 AUTHOR jdl at xdv.org;
+#X text 12 5 KEYWORDS control array;
+#X text 12 45 DESCRIPTION this is supposed to calculate the signal
+mean of an array.;
+#X text 12 95 OUTLET_0 float;
+#X text 12 75 INLET_0 float set;
+#X restore 573 327 pd META;
 #X connect 0 0 10 0;
 #X connect 1 0 9 0;
 #X connect 5 0 4 0;
diff --git a/delta~-help.pd b/delta~-help.pd
index 7f0bf8b..94bb718 100644
--- a/delta~-help.pd
+++ b/delta~-help.pd
@@ -1,44 +1,57 @@
-#N canvas 9 51 986 579 10;
+#N canvas 0 31 986 618 10;
 #X obj 139 177 delta~;
 #X obj 80 44 noise~;
 #X obj 83 268 print a;
 #X obj 143 267 print b;
 #X obj 329 312 dac~;
 #X obj 226 47 osc~ 400;
-#X graph graph1 0 -1 999 1 497 206 697 66;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array orig 1000 float 0;
-#X pop;
-#X graph graph2 0 -1 999 1 431 563 931 203;
+#X coords 0 1 999 -1 200 140 1;
+#X restore 487 66 graph;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array diff 1000 float 0;
-#X pop;
+#X coords 0 1 999 -1 500 360 1;
+#X restore 421 223 graph;
 #X obj 129 390 tabwrite~ diff;
 #X msg 220 340 bang;
-#X floatatom 225 24 5 0 0;
+#X floatatom 225 24 5 0 0 0 - - -;
 #X obj 139 468 table test;
 #X msg 139 442 resize 2205;
 #X obj 242 389 tabwrite~ test;
 #X obj 243 415 tabwrite~ orig;
-#X obj 403 515 print;
-#X msg 350 441 bang;
-#X obj 346 530 t b;
-#X obj 332 552 spigot;
-#X obj 375 528 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0
+#X obj 363 515 print;
+#X msg 320 441 bang;
+#X obj 316 530 t b;
+#X obj 302 552 spigot;
+#X obj 345 528 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0
 1;
-#X obj 320 474 tabread~ test;
-#X obj 201 532 phasor~ 10;
-#X floatatom 201 510 5 0 0;
-#X obj 201 556 *~ 2205;
+#X obj 290 474 tabread~ test;
+#X obj 171 532 phasor~ 10;
+#X floatatom 171 510 5 0 0 0 - - -;
+#X obj 171 556 *~ 2205;
 #X obj 147 45 phasor~ 1;
 #X obj 160 93 nop~;
 #X obj 287 224 metro 100;
 #X obj 287 198 tgl 15 0 empty empty empty 20 8 0 8 -262144 -1 -1 0
 1;
-#X floatatom 173 18 5 0 0;
+#X floatatom 173 18 5 0 0 0 - - -;
 #X obj 109 77 *~ 0.1;
-#X floatatom 86 103 5 0 0;
+#X floatatom 86 103 5 0 0 0 - - -;
 #X text 308 36 if this sample is larger than last \, value is positive
 \, else negative ...;
 #X text 308 18 delta~: difference between this and last sample;
+#N canvas 397 200 494 344 META 0;
+#X text 12 145 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 5 KEYWORDS signal;
+#X text 12 105 LIBRARY external cxc;
+#X text 12 45 DESCRIPTION difference between this and last sample;
+#X text 12 65 INLET_0 signal;
+#X text 12 85 OUTLET_0 signal;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 125 AUTHOR jdl at xdv.org;
+#X restore 935 557 pd META;
 #X connect 0 0 4 1;
 #X connect 0 0 8 0;
 #X connect 1 0 29 0;
@@ -46,7 +59,6 @@
 #X connect 9 0 13 0;
 #X connect 9 0 14 0;
 #X connect 10 0 5 0;
-#X connect 12 0 11 0;
 #X connect 17 0 18 0;
 #X connect 19 0 18 1;
 #X connect 21 0 23 0;
diff --git a/dist_normal-help.pd b/dist_normal-help.pd
index d913f39..3f7d704 100644
--- a/dist_normal-help.pd
+++ b/dist_normal-help.pd
@@ -1,4 +1,4 @@
-#N canvas 33 162 966 505 10;
+#N canvas 0 31 966 505 10;
 #X msg 197 150 bang;
 #X floatatom 244 150 5 0 0 0 - - -;
 #X floatatom 197 218 10 0 0 0 - - -;
@@ -23,7 +23,6 @@
 #X floatatom 289 278 5 0 0 0 - - -;
 #X text 193 251 random_icg lowerlimit \, upperlimit;
 #X msg 368 288 help;
-#X text 253 10 the random number generatorse;
 #X obj 539 406 dist_normal;
 #X msg 540 356 bang;
 #X obj 579 357 metro 100;
@@ -32,7 +31,7 @@
 #X obj 196 309 random_tw 0 1;
 #X floatatom 637 334 5 0 0 0 - - -;
 #N canvas 0 0 600 400 streamview 0;
-#N canvas 0 0 450 300 graph2 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randstream 100 float 0;
 #X coords 0 2 99 -2 200 140 1;
 #X restore 92 222 graph;
@@ -48,7 +47,7 @@
 #X connect 5 0 4 0;
 #X restore 570 433 pd streamview;
 #N canvas 306 24 679 400 distview 0;
-#N canvas 0 0 450 300 graph1 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randview1 100 float 0;
 #X coords 0 200 99 0 400 200 1;
 #X restore 248 31 graph;
@@ -148,10 +147,10 @@ argument \, so yu can specify which generator is being used.;
 #X text 198 106 they all output floats);
 #X text 540 311 also \, there is some burst at the upper and lower
 limits;
-#N canvas 622 685 592 356 signalversions 1;
+#N canvas 198 89 592 356 signalversions 0;
 #X obj 68 131 random1~;
 #X obj 368 239 tabwrite~ randomix_test;
-#N canvas 0 0 450 300 graph1 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randomix_test 64 float 1;
 #A 0 -0.599965 0.178987 -0.501604 -1.10592 0.426163 -0.481499 -0.553236
 0.0961931 0.554738 -0.695487 0.541875 -0.415309 -0.419922 -0.871908
@@ -189,6 +188,18 @@ limits;
 #X connect 13 0 7 0;
 #X connect 13 1 7 1;
 #X restore 98 421 pd signalversions;
+#N canvas 739 383 494 344 META 0;
+#X text 12 145 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 125 AUTHOR jdl at xdv.org;
+#X text 12 105 OUTLET_0 float;
+#X text 12 65 INLET_0 bang;
+#X text 12 85 INLET_1 float;
+#X text 12 5 KEYWORDS control random;
+#X text 12 45 DESCRIPTION normal distribution mean;
+#X restore 903 467 pd META;
+#X text 253 10 the random number generators;
 #X connect 0 0 11 0;
 #X connect 1 0 11 1;
 #X connect 4 0 6 0;
@@ -203,21 +214,21 @@ limits;
 #X connect 14 0 17 1;
 #X connect 16 0 17 2;
 #X connect 17 0 15 0;
-#X connect 18 0 29 0;
-#X connect 19 0 29 1;
-#X connect 21 0 29 2;
-#X connect 23 0 29 0;
-#X connect 25 0 31 0;
+#X connect 18 0 28 0;
+#X connect 19 0 28 1;
+#X connect 21 0 28 2;
+#X connect 23 0 28 0;
+#X connect 24 0 30 0;
+#X connect 24 0 31 0;
+#X connect 24 0 33 0;
 #X connect 25 0 32 0;
-#X connect 25 0 34 0;
-#X connect 26 0 33 0;
-#X connect 27 0 33 0;
-#X connect 28 0 27 0;
-#X connect 29 0 20 0;
-#X connect 30 0 27 1;
-#X connect 33 0 25 0;
-#X connect 35 0 6 0;
-#X connect 35 1 11 0;
-#X connect 35 2 12 0;
-#X connect 35 3 17 0;
-#X connect 35 4 29 0;
+#X connect 26 0 32 0;
+#X connect 27 0 26 0;
+#X connect 28 0 20 0;
+#X connect 29 0 26 1;
+#X connect 32 0 24 0;
+#X connect 34 0 6 0;
+#X connect 34 1 11 0;
+#X connect 34 2 12 0;
+#X connect 34 3 17 0;
+#X connect 34 4 28 0;
diff --git a/fader-help.pd b/fader-help.pd
new file mode 100644
index 0000000..2957b2e
--- /dev/null
+++ b/fader-help.pd
@@ -0,0 +1,24 @@
+#N canvas 288 386 450 300 10;
+#X obj 158 159 fader;
+#X obj 158 204 dac~;
+#X floatatom 191 131 5 0 0 0 - - -;
+#X obj 196 102 hsl 128 15 0.1 127 1 0 empty empty empty -2 -8 0 10
+-262144 -1 -1 0 1;
+#X obj 162 74 noise~;
+#X text 84 25 control the output volume of two channels;
+#N canvas 42 244 494 344 META 0;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 165 AUTHOR jdl at xdv.org;
+#X text 12 105 INLET_0 audio for left channel;
+#X text 12 125 INLET_1 audio for right channel;
+#X text 12 145 INLET_2 volume level (0-100);
+#X text 12 85 OUTLET_1 audio for right channel;
+#X text 12 65 OUTLET_0 audio for left channel;
+#X text 12 45 DESCRIPTION simple volume control;
+#X restore 386 267 pd META;
+#X connect 0 0 1 0;
+#X connect 0 1 1 1;
+#X connect 2 0 0 2;
+#X connect 3 0 2 0;
+#X connect 4 0 0 0;
+#X connect 4 0 0 1;
diff --git a/fader.pd b/fader.pd
new file mode 100644
index 0000000..745d7de
--- /dev/null
+++ b/fader.pd
@@ -0,0 +1,30 @@
+#N canvas 264 258 450 300 10;
+#X obj 63 245 outlet~;
+#X obj 63 76 inlet~;
+#X obj 253 39 inlet;
+#X obj 63 216 *~;
+#X obj 327 22 loadbang;
+#X obj 327 44 float \$1;
+#X obj 253 85 / 100;
+#X obj 143 245 outlet~;
+#X obj 143 76 inlet~;
+#X obj 143 216 *~;
+#X obj 253 132 line~;
+#X msg 253 109 \$1 50;
+#X obj 253 153 *~;
+#X obj 253 173 *~;
+#X connect 1 0 3 0;
+#X connect 2 0 6 0;
+#X connect 3 0 0 0;
+#X connect 4 0 5 0;
+#X connect 5 0 6 0;
+#X connect 6 0 11 0;
+#X connect 8 0 9 0;
+#X connect 9 0 7 0;
+#X connect 10 0 12 0;
+#X connect 10 0 12 1;
+#X connect 11 0 10 0;
+#X connect 12 0 13 0;
+#X connect 12 0 13 1;
+#X connect 13 0 9 1;
+#X connect 13 0 3 1;
diff --git a/hex2dec-help.pd b/hex2dec-help.pd
index 0bd39ce..0e907bd 100644
--- a/hex2dec-help.pd
+++ b/hex2dec-help.pd
@@ -1,8 +1,22 @@
-#N canvas 0 22 450 300 10;
+#N canvas 0 31 450 300 10;
 #X obj 138 153 hex2dec;
 #X floatatom 137 189 5 0 0 0 - - -;
 #X msg 139 105 symbol fff;
 #X msg 237 123 123;
+#X obj 257 194 print;
+#X text 136 51 doesn't seem to work;
+#N canvas 397 200 494 344 META 0;
+#X text 12 135 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 55 DESCIPTION hexadecimal to decimal conversion;
+#X text 12 75 INLET_0 symbol float;
+#X text 12 95 OUTLET_0 float symbol;
+#X text 12 5 KEYWORDS control conversion symbol_op needs_work (object
+doesn't work);
+#X text 12 35 LICENSE GPL v2;
+#X text 12 115 AUTHOR jdl at xdv.org;
+#X restore 394 274 pd META;
 #X connect 0 0 1 0;
+#X connect 0 0 4 0;
 #X connect 2 0 0 0;
 #X connect 3 0 0 0;
diff --git a/ixprint-help.pd b/ixprint-help.pd
index b6b0949..63963db 100644
--- a/ixprint-help.pd
+++ b/ixprint-help.pd
@@ -1,8 +1,18 @@
-#N canvas 160 134 450 300 10;
+#N canvas 0 31 450 300 10;
 #X obj 123 115 ixprint;
 #X msg 122 59 1 2 3;
 #X obj 173 83 pointer;
-#X msg 172 54 bang;
+#X msg 172 54 traverse pd-ixprint-help.pd \, bang;
+#N canvas 397 200 494 287 META 0;
+#X text 12 105 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 65 INLET_0 anything;
+#X text 12 5 KEYWORDS control deprecated;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 45 DESCIPTION print with "print:";
+#X text 12 85 AUTHOR jdl at xdv.org;
+#X restore 396 272 pd META;
+#X text 112 168 Deprecated: use [print -n];
 #X connect 1 0 0 0;
 #X connect 2 0 0 0;
 #X connect 3 0 2 0;
diff --git a/mean~-help.pd b/mean~-help.pd
index d9c75f3..73452b1 100644
--- a/mean~-help.pd
+++ b/mean~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 110 368 622 369 10;
+#N canvas 0 31 690 382 10;
 #X obj 64 102 noise~;
 #X obj 463 105 mean~ blir;
 #X obj 21 262 table blir;
@@ -85,6 +85,16 @@
 #X obj 460 304 cxstddev blir;
 #X obj 342 304 cxavgdev blir;
 #X obj 316 251 cxmean blir;
+#N canvas 739 383 494 344 META 0;
+#X text 12 125 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 105 AUTHOR jdl at xdv.org;
+#X text 12 85 OUTLET_0 float;
+#X text 12 45 DESCRIPTION normal distribution mean;
+#X text 12 65 INLET_0 signal mean ad sd;
+#X text 12 5 KEYWORDS signal array;
+#X restore 633 337 pd META;
 #X connect 0 0 10 0;
 #X connect 1 0 9 0;
 #X connect 5 0 4 0;
diff --git a/proc-help.pd b/proc-help.pd
index 65411ae..e56f68d 100644
--- a/proc-help.pd
+++ b/proc-help.pd
@@ -1,11 +1,11 @@
-#N canvas 179 113 717 546 10;
+#N canvas 0 31 658 496 10;
 #X obj 151 118 proc;
 #X text 96 15 interface to the linux proc filesystem;
 #X msg 88 80 cpuinfo;
 #X obj 27 281 unpack f f f;
-#X floatatom 25 304 5 0 0;
-#X floatatom 67 305 5 0 0;
-#X floatatom 109 304 5 0 0;
+#X floatatom 25 304 5 0 0 0 - - -;
+#X floatatom 67 305 5 0 0 0 - - -;
+#X floatatom 109 304 5 0 0 0 - - -;
 #X text 37 254 cpu-id \, cpu-mhz \, bogomips;
 #X obj 151 147 print proc_raw;
 #X msg 151 94 proc \$1;
@@ -16,17 +16,17 @@
 #X msg 389 38 blubb;
 #X obj 242 276 unpack f f;
 #X text 241 255 uptime in s \, idle-time in s;
-#X floatatom 241 301 5 0 0;
-#X floatatom 302 305 5 0 0;
+#X floatatom 241 301 5 0 0 0 - - -;
+#X floatatom 302 305 5 0 0 0 - - -;
 #X msg 237 38 loadavg;
 #X msg 297 39 version;
 #X obj 174 349 unpack f f f f f f;
-#X floatatom 172 373 5 0 0;
-#X floatatom 187 397 5 0 0;
-#X floatatom 220 373 5 0 0;
-#X floatatom 238 397 5 0 0;
-#X floatatom 271 372 5 0 0;
-#X floatatom 289 396 5 0 0;
+#X floatatom 172 373 5 0 0 0 - - -;
+#X floatatom 187 397 5 0 0 0 - - -;
+#X floatatom 220 373 5 0 0 0 - - -;
+#X floatatom 238 397 5 0 0 0 - - -;
+#X floatatom 271 372 5 0 0 0 - - -;
+#X floatatom 289 396 5 0 0 0 - - -;
 #X text 315 345 apparently the loadavg format is something liek this
 ;
 #X text 318 359 my manpage seems outdated ...;
@@ -38,12 +38,23 @@
 #X text 339 438 5: num of processes now total;
 #X obj 27 234 route cpuinfo uptime loadavg version stat;
 #X obj 458 241 unpack f f f;
-#X floatatom 458 267 5 0 0;
-#X floatatom 484 293 5 0 0;
-#X floatatom 516 266 5 0 0;
+#X floatatom 458 267 5 0 0 0 - - -;
+#X floatatom 484 293 5 0 0 0 - - -;
+#X floatatom 516 266 5 0 0 0 - - -;
 #X text 462 215 uname -r;
 #X text 307 82 really useless stuff but maybe good for estimating number
 of voices in self-generating patches;
+#N canvas 176 129 494 344 META 0;
+#X text 12 145 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 5 GENRE help;
+#X text 12 25 KEYWORDS control filesystem;
+#X text 12 65 DESCRIPTION interface to the linux proc filesystem;
+#X text 12 85 INLET_0 anything;
+#X text 12 105 OUTLET_0 anything;
+#X text 12 45 LICENSE GPL v2;
+#X text 12 125 AUTHOR jdl at xdv.org;
+#X restore 605 473 pd META;
 #X connect 0 0 8 0;
 #X connect 0 0 36 0;
 #X connect 2 0 0 0;
diff --git a/proc.c b/proc.c
index 1bb633c..339ee11 100644
--- a/proc.c
+++ b/proc.c
@@ -12,6 +12,13 @@
 // later for number of users
 // #include <utmp.h>
 
+/* support older Pd versions without sys_fopen(), sys_fclose(), and, sys_close() */
+#if PD_MAJOR_VERSION == 0 && PD_MINOR_VERSION < 44
+#define sys_fopen fopen
+#define sys_fclose fclose
+#define sys_close close
+#endif
+
 #ifndef SSIZE_MAX
 #define SSIZE_MAX 255
 #endif
@@ -57,7 +64,7 @@ void proc_cpuinfo(t_proc *x)
   restf = 0;
   ac    = 0;
   
-  fp = fopen(name,"r");
+  fp = sys_fopen(name,"r");
   if (!fp) {
     post("cxc/proc.c: unable to open %s",name);
     return;
@@ -121,7 +128,7 @@ void proc_proc(t_proc *x, t_symbol *s)
   restf = 0;
   ac    = 0;
   
-  fp = fopen(name,"r");
+  fp = sys_fopen(name,"r");
   if (!fp) {
     post("cxc/proc.c: unable to open %s",name);
     return;
diff --git a/random1-help.pd b/random1-help.pd
index d913f39..88fc70b 100644
--- a/random1-help.pd
+++ b/random1-help.pd
@@ -1,4 +1,4 @@
-#N canvas 33 162 966 505 10;
+#N canvas 0 31 966 505 10;
 #X msg 197 150 bang;
 #X floatatom 244 150 5 0 0 0 - - -;
 #X floatatom 197 218 10 0 0 0 - - -;
@@ -32,7 +32,7 @@
 #X obj 196 309 random_tw 0 1;
 #X floatatom 637 334 5 0 0 0 - - -;
 #N canvas 0 0 600 400 streamview 0;
-#N canvas 0 0 450 300 graph2 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randstream 100 float 0;
 #X coords 0 2 99 -2 200 140 1;
 #X restore 92 222 graph;
@@ -48,7 +48,7 @@
 #X connect 5 0 4 0;
 #X restore 570 433 pd streamview;
 #N canvas 306 24 679 400 distview 0;
-#N canvas 0 0 450 300 graph1 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randview1 100 float 0;
 #X coords 0 200 99 0 400 200 1;
 #X restore 248 31 graph;
@@ -148,11 +148,10 @@ argument \, so yu can specify which generator is being used.;
 #X text 198 106 they all output floats);
 #X text 540 311 also \, there is some burst at the upper and lower
 limits;
-#N canvas 622 685 592 356 signalversions 1;
+#N canvas 289 428 592 356 signalversions 0;
 #X obj 68 131 random1~;
-#X obj 368 239 tabwrite~ randomix_test;
-#N canvas 0 0 450 300 graph1 0;
-#X array randomix_test 64 float 1;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-randomix_test 64 float 1;
 #A 0 -0.599965 0.178987 -0.501604 -1.10592 0.426163 -0.481499 -0.553236
 0.0961931 0.554738 -0.695487 0.541875 -0.415309 -0.419922 -0.871908
 0.0688377 -1.03721 -0.136159 -0.207339 -1.18947 -0.25981 -0.628915
@@ -176,19 +175,32 @@ limits;
 #X text 120 98 etc ..;
 #X obj 229 131 random_icg~;
 #X obj 81 241 fader 75;
-#X connect 0 0 13 0;
-#X connect 3 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 1 0;
-#X connect 6 0 1 0;
-#X connect 8 0 13 2;
-#X connect 9 0 0 0;
-#X connect 10 0 13 1;
-#X connect 12 0 1 0;
-#X connect 12 0 13 0;
-#X connect 13 0 7 0;
-#X connect 13 1 7 1;
+#X obj 368 239 tabwrite~ \$0-randomix_test;
+#X connect 0 0 12 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 7 0 12 2;
+#X connect 8 0 0 0;
+#X connect 9 0 12 1;
+#X connect 11 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 6 0;
+#X connect 12 1 6 1;
 #X restore 98 421 pd signalversions;
+#N canvas 645 314 494 359 META 0;
+#X text 12 165 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 145 AUTHOR jdl at xdv.org;
+#X text 12 125 OUTLET_0 float;
+#X text 12 65 INLET_0 bang seed;
+#X text 12 85 INLET_1 float;
+#X text 12 105 INLET_2 float;
+#X text 12 5 KEYWORDS control random;
+#X text 12 45 DESCRIPTION linear congruential generator;
+#X restore 905 472 pd META;
 #X connect 0 0 11 0;
 #X connect 1 0 11 1;
 #X connect 4 0 6 0;
diff --git a/random1~-help.pd b/random1~-help.pd
index d913f39..4c14cb6 100644
--- a/random1~-help.pd
+++ b/random1~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 33 162 966 505 10;
+#N canvas 0 31 966 505 10;
 #X msg 197 150 bang;
 #X floatatom 244 150 5 0 0 0 - - -;
 #X floatatom 197 218 10 0 0 0 - - -;
@@ -32,7 +32,7 @@
 #X obj 196 309 random_tw 0 1;
 #X floatatom 637 334 5 0 0 0 - - -;
 #N canvas 0 0 600 400 streamview 0;
-#N canvas 0 0 450 300 graph2 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randstream 100 float 0;
 #X coords 0 2 99 -2 200 140 1;
 #X restore 92 222 graph;
@@ -48,7 +48,7 @@
 #X connect 5 0 4 0;
 #X restore 570 433 pd streamview;
 #N canvas 306 24 679 400 distview 0;
-#N canvas 0 0 450 300 graph1 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randview1 100 float 0;
 #X coords 0 200 99 0 400 200 1;
 #X restore 248 31 graph;
@@ -148,11 +148,10 @@ argument \, so yu can specify which generator is being used.;
 #X text 198 106 they all output floats);
 #X text 540 311 also \, there is some burst at the upper and lower
 limits;
-#N canvas 622 685 592 356 signalversions 1;
+#N canvas 217 91 592 356 signalversions 0;
 #X obj 68 131 random1~;
-#X obj 368 239 tabwrite~ randomix_test;
-#N canvas 0 0 450 300 graph1 0;
-#X array randomix_test 64 float 1;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-randomix_test 64 float 1;
 #A 0 -0.599965 0.178987 -0.501604 -1.10592 0.426163 -0.481499 -0.553236
 0.0961931 0.554738 -0.695487 0.541875 -0.415309 -0.419922 -0.871908
 0.0688377 -1.03721 -0.136159 -0.207339 -1.18947 -0.25981 -0.628915
@@ -176,19 +175,30 @@ limits;
 #X text 120 98 etc ..;
 #X obj 229 131 random_icg~;
 #X obj 81 241 fader 75;
-#X connect 0 0 13 0;
-#X connect 3 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 1 0;
-#X connect 6 0 1 0;
-#X connect 8 0 13 2;
-#X connect 9 0 0 0;
-#X connect 10 0 13 1;
-#X connect 12 0 1 0;
-#X connect 12 0 13 0;
-#X connect 13 0 7 0;
-#X connect 13 1 7 1;
+#X obj 368 239 tabwrite~ \$0-randomix_test;
+#X connect 0 0 12 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 7 0 12 2;
+#X connect 8 0 0 0;
+#X connect 9 0 12 1;
+#X connect 11 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 6 0;
+#X connect 12 1 6 1;
 #X restore 98 421 pd signalversions;
+#N canvas 739 383 494 344 META 0;
+#X text 12 125 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 105 AUTHOR jdl at xdv.org;
+#X text 12 5 KEYWORDS signal random;
+#X text 12 45 DESCRIPTION linear congruential generator;
+#X text 12 65 INLET_0 seed;
+#X text 12 85 OUTLET_0 signal;
+#X restore 904 469 pd META;
 #X connect 0 0 11 0;
 #X connect 1 0 11 1;
 #X connect 4 0 6 0;
diff --git a/random_fl-help.pd b/random_fl-help.pd
index d913f39..46b9215 100644
--- a/random_fl-help.pd
+++ b/random_fl-help.pd
@@ -1,4 +1,4 @@
-#N canvas 33 162 966 505 10;
+#N canvas 0 31 966 505 10;
 #X msg 197 150 bang;
 #X floatatom 244 150 5 0 0 0 - - -;
 #X floatatom 197 218 10 0 0 0 - - -;
@@ -32,7 +32,7 @@
 #X obj 196 309 random_tw 0 1;
 #X floatatom 637 334 5 0 0 0 - - -;
 #N canvas 0 0 600 400 streamview 0;
-#N canvas 0 0 450 300 graph2 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randstream 100 float 0;
 #X coords 0 2 99 -2 200 140 1;
 #X restore 92 222 graph;
@@ -48,7 +48,7 @@
 #X connect 5 0 4 0;
 #X restore 570 433 pd streamview;
 #N canvas 306 24 679 400 distview 0;
-#N canvas 0 0 450 300 graph1 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randview1 100 float 0;
 #X coords 0 200 99 0 400 200 1;
 #X restore 248 31 graph;
@@ -148,11 +148,10 @@ argument \, so yu can specify which generator is being used.;
 #X text 198 106 they all output floats);
 #X text 540 311 also \, there is some burst at the upper and lower
 limits;
-#N canvas 622 685 592 356 signalversions 1;
+#N canvas 622 668 592 356 signalversions 0;
 #X obj 68 131 random1~;
-#X obj 368 239 tabwrite~ randomix_test;
-#N canvas 0 0 450 300 graph1 0;
-#X array randomix_test 64 float 1;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-randomix_test 64 float 1;
 #A 0 -0.599965 0.178987 -0.501604 -1.10592 0.426163 -0.481499 -0.553236
 0.0961931 0.554738 -0.695487 0.541875 -0.415309 -0.419922 -0.871908
 0.0688377 -1.03721 -0.136159 -0.207339 -1.18947 -0.25981 -0.628915
@@ -176,19 +175,32 @@ limits;
 #X text 120 98 etc ..;
 #X obj 229 131 random_icg~;
 #X obj 81 241 fader 75;
-#X connect 0 0 13 0;
-#X connect 3 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 1 0;
-#X connect 6 0 1 0;
-#X connect 8 0 13 2;
-#X connect 9 0 0 0;
-#X connect 10 0 13 1;
-#X connect 12 0 1 0;
-#X connect 12 0 13 0;
-#X connect 13 0 7 0;
-#X connect 13 1 7 1;
+#X obj 368 239 tabwrite~ \$0-randomix_test;
+#X connect 0 0 12 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 7 0 12 2;
+#X connect 8 0 0 0;
+#X connect 9 0 12 1;
+#X connect 11 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 6 0;
+#X connect 12 1 6 1;
 #X restore 98 421 pd signalversions;
+#N canvas 549 327 494 344 META 0;
+#X text 12 165 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 145 AUTHOR jdl at xdv.org;
+#X text 12 45 DESCRIPTION another lcg method ..;
+#X text 12 85 INLET_1 float;
+#X text 12 105 INLET_2 float;
+#X text 12 125 OUTLET_0 float;
+#X text 12 5 KEYWORDS control random;
+#X text 12 65 INLET_0 bang seed;
+#X restore 907 478 pd META;
 #X connect 0 0 11 0;
 #X connect 1 0 11 1;
 #X connect 4 0 6 0;
diff --git a/random_fl~-help.pd b/random_fl~-help.pd
index d913f39..53e2c81 100644
--- a/random_fl~-help.pd
+++ b/random_fl~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 33 162 966 505 10;
+#N canvas 0 31 966 505 10;
 #X msg 197 150 bang;
 #X floatatom 244 150 5 0 0 0 - - -;
 #X floatatom 197 218 10 0 0 0 - - -;
@@ -32,7 +32,7 @@
 #X obj 196 309 random_tw 0 1;
 #X floatatom 637 334 5 0 0 0 - - -;
 #N canvas 0 0 600 400 streamview 0;
-#N canvas 0 0 450 300 graph2 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randstream 100 float 0;
 #X coords 0 2 99 -2 200 140 1;
 #X restore 92 222 graph;
@@ -48,7 +48,7 @@
 #X connect 5 0 4 0;
 #X restore 570 433 pd streamview;
 #N canvas 306 24 679 400 distview 0;
-#N canvas 0 0 450 300 graph1 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randview1 100 float 0;
 #X coords 0 200 99 0 400 200 1;
 #X restore 248 31 graph;
@@ -148,11 +148,10 @@ argument \, so yu can specify which generator is being used.;
 #X text 198 106 they all output floats);
 #X text 540 311 also \, there is some burst at the upper and lower
 limits;
-#N canvas 622 685 592 356 signalversions 1;
+#N canvas 242 366 592 356 signalversions 0;
 #X obj 68 131 random1~;
-#X obj 368 239 tabwrite~ randomix_test;
-#N canvas 0 0 450 300 graph1 0;
-#X array randomix_test 64 float 1;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-randomix_test 64 float 1;
 #A 0 -0.599965 0.178987 -0.501604 -1.10592 0.426163 -0.481499 -0.553236
 0.0961931 0.554738 -0.695487 0.541875 -0.415309 -0.419922 -0.871908
 0.0688377 -1.03721 -0.136159 -0.207339 -1.18947 -0.25981 -0.628915
@@ -176,19 +175,30 @@ limits;
 #X text 120 98 etc ..;
 #X obj 229 131 random_icg~;
 #X obj 81 241 fader 75;
-#X connect 0 0 13 0;
-#X connect 3 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 1 0;
-#X connect 6 0 1 0;
-#X connect 8 0 13 2;
-#X connect 9 0 0 0;
-#X connect 10 0 13 1;
-#X connect 12 0 1 0;
-#X connect 12 0 13 0;
-#X connect 13 0 7 0;
-#X connect 13 1 7 1;
+#X obj 369 238 tabwrite~ \$0-randomix_test;
+#X connect 0 0 12 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 7 0 12 2;
+#X connect 8 0 0 0;
+#X connect 9 0 12 1;
+#X connect 11 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 6 0;
+#X connect 12 1 6 1;
 #X restore 98 421 pd signalversions;
+#N canvas 560 294 494 344 META 0;
+#X text 12 125 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 105 AUTHOR jdl at xdv.org;
+#X text 12 45 DESCRIPTION another lcg method ..;
+#X text 12 65 INLET_0 seed;
+#X text 12 85 OUTLET_0 signal;
+#X text 12 5 KEYWORDS signal random;
+#X restore 867 464 pd META;
 #X connect 0 0 11 0;
 #X connect 1 0 11 1;
 #X connect 4 0 6 0;
diff --git a/random_icg-help.pd b/random_icg-help.pd
index d913f39..c651bde 100644
--- a/random_icg-help.pd
+++ b/random_icg-help.pd
@@ -1,4 +1,4 @@
-#N canvas 33 162 966 505 10;
+#N canvas 0 31 966 505 10;
 #X msg 197 150 bang;
 #X floatatom 244 150 5 0 0 0 - - -;
 #X floatatom 197 218 10 0 0 0 - - -;
@@ -32,7 +32,7 @@
 #X obj 196 309 random_tw 0 1;
 #X floatatom 637 334 5 0 0 0 - - -;
 #N canvas 0 0 600 400 streamview 0;
-#N canvas 0 0 450 300 graph2 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randstream 100 float 0;
 #X coords 0 2 99 -2 200 140 1;
 #X restore 92 222 graph;
@@ -48,7 +48,7 @@
 #X connect 5 0 4 0;
 #X restore 570 433 pd streamview;
 #N canvas 306 24 679 400 distview 0;
-#N canvas 0 0 450 300 graph1 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randview1 100 float 0;
 #X coords 0 200 99 0 400 200 1;
 #X restore 248 31 graph;
@@ -148,11 +148,10 @@ argument \, so yu can specify which generator is being used.;
 #X text 198 106 they all output floats);
 #X text 540 311 also \, there is some burst at the upper and lower
 limits;
-#N canvas 622 685 592 356 signalversions 1;
+#N canvas 622 668 592 356 signalversions 0;
 #X obj 68 131 random1~;
-#X obj 368 239 tabwrite~ randomix_test;
-#N canvas 0 0 450 300 graph1 0;
-#X array randomix_test 64 float 1;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-randomix_test 64 float 1;
 #A 0 -0.599965 0.178987 -0.501604 -1.10592 0.426163 -0.481499 -0.553236
 0.0961931 0.554738 -0.695487 0.541875 -0.415309 -0.419922 -0.871908
 0.0688377 -1.03721 -0.136159 -0.207339 -1.18947 -0.25981 -0.628915
@@ -176,19 +175,32 @@ limits;
 #X text 120 98 etc ..;
 #X obj 229 131 random_icg~;
 #X obj 81 241 fader 75;
-#X connect 0 0 13 0;
-#X connect 3 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 1 0;
-#X connect 6 0 1 0;
-#X connect 8 0 13 2;
-#X connect 9 0 0 0;
-#X connect 10 0 13 1;
-#X connect 12 0 1 0;
-#X connect 12 0 13 0;
-#X connect 13 0 7 0;
-#X connect 13 1 7 1;
+#X obj 368 239 tabwrite~ \$0-randomix_test;
+#X connect 0 0 12 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 7 0 12 2;
+#X connect 8 0 0 0;
+#X connect 9 0 12 1;
+#X connect 11 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 6 0;
+#X connect 12 1 6 1;
 #X restore 98 421 pd signalversions;
+#N canvas 394 360 494 344 META 0;
+#X text 12 165 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 65 INLET_0 bang;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 145 AUTHOR jdl at xdv.org;
+#X text 12 85 INLET_1 float;
+#X text 12 105 INLET_2 float;
+#X text 12 125 OUTLET_0 float;
+#X text 12 45 DESCRIPTION inverse linear congruential generator;
+#X text 12 5 KEYWORDS control random;
+#X restore 907 468 pd META;
 #X connect 0 0 11 0;
 #X connect 1 0 11 1;
 #X connect 4 0 6 0;
diff --git a/random_icg~-help.pd b/random_icg~-help.pd
index d913f39..7a466d6 100644
--- a/random_icg~-help.pd
+++ b/random_icg~-help.pd
@@ -1,4 +1,4 @@
-#N canvas 33 162 966 505 10;
+#N canvas 0 31 966 505 10;
 #X msg 197 150 bang;
 #X floatatom 244 150 5 0 0 0 - - -;
 #X floatatom 197 218 10 0 0 0 - - -;
@@ -32,7 +32,7 @@
 #X obj 196 309 random_tw 0 1;
 #X floatatom 637 334 5 0 0 0 - - -;
 #N canvas 0 0 600 400 streamview 0;
-#N canvas 0 0 450 300 graph2 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randstream 100 float 0;
 #X coords 0 2 99 -2 200 140 1;
 #X restore 92 222 graph;
@@ -48,7 +48,7 @@
 #X connect 5 0 4 0;
 #X restore 570 433 pd streamview;
 #N canvas 306 24 679 400 distview 0;
-#N canvas 0 0 450 300 graph1 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randview1 100 float 0;
 #X coords 0 200 99 0 400 200 1;
 #X restore 248 31 graph;
@@ -148,11 +148,10 @@ argument \, so yu can specify which generator is being used.;
 #X text 198 106 they all output floats);
 #X text 540 311 also \, there is some burst at the upper and lower
 limits;
-#N canvas 622 685 592 356 signalversions 1;
+#N canvas 622 668 592 356 signalversions 0;
 #X obj 68 131 random1~;
-#X obj 368 239 tabwrite~ randomix_test;
-#N canvas 0 0 450 300 graph1 0;
-#X array randomix_test 64 float 1;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-randomix_test 64 float 1;
 #A 0 -0.599965 0.178987 -0.501604 -1.10592 0.426163 -0.481499 -0.553236
 0.0961931 0.554738 -0.695487 0.541875 -0.415309 -0.419922 -0.871908
 0.0688377 -1.03721 -0.136159 -0.207339 -1.18947 -0.25981 -0.628915
@@ -176,19 +175,32 @@ limits;
 #X text 120 98 etc ..;
 #X obj 229 131 random_icg~;
 #X obj 81 241 fader 75;
-#X connect 0 0 13 0;
-#X connect 3 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 1 0;
-#X connect 6 0 1 0;
-#X connect 8 0 13 2;
-#X connect 9 0 0 0;
-#X connect 10 0 13 1;
-#X connect 12 0 1 0;
-#X connect 12 0 13 0;
-#X connect 13 0 7 0;
-#X connect 13 1 7 1;
+#X obj 368 239 tabwrite~ \$0-randomix_test;
+#X connect 0 0 12 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 7 0 12 2;
+#X connect 8 0 0 0;
+#X connect 9 0 12 1;
+#X connect 11 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 6 0;
+#X connect 12 1 6 1;
 #X restore 98 421 pd signalversions;
+#N canvas 176 129 494 344 META 0;
+#X text 12 165 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 5 KEYWORDS control time;
+#X text 12 65 INLET_0 bang;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 145 AUTHOR jdl at xdv.org;
+#X text 12 45 DESCRIPTION inverse linear congruential generator;
+#X text 12 85 INLET_1 float;
+#X text 12 105 INLET_2 float;
+#X text 12 125 OUTLET_0 float;
+#X restore 907 458 pd META;
 #X connect 0 0 11 0;
 #X connect 1 0 11 1;
 #X connect 4 0 6 0;
diff --git a/random_tw-help.pd b/random_tw-help.pd
index d913f39..b70ccb8 100644
--- a/random_tw-help.pd
+++ b/random_tw-help.pd
@@ -1,4 +1,4 @@
-#N canvas 33 162 966 505 10;
+#N canvas 0 31 966 505 10;
 #X msg 197 150 bang;
 #X floatatom 244 150 5 0 0 0 - - -;
 #X floatatom 197 218 10 0 0 0 - - -;
@@ -32,7 +32,7 @@
 #X obj 196 309 random_tw 0 1;
 #X floatatom 637 334 5 0 0 0 - - -;
 #N canvas 0 0 600 400 streamview 0;
-#N canvas 0 0 450 300 graph2 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randstream 100 float 0;
 #X coords 0 2 99 -2 200 140 1;
 #X restore 92 222 graph;
@@ -48,7 +48,7 @@
 #X connect 5 0 4 0;
 #X restore 570 433 pd streamview;
 #N canvas 306 24 679 400 distview 0;
-#N canvas 0 0 450 300 graph1 0;
+#N canvas 0 0 450 300 (subpatch) 0;
 #X array randview1 100 float 0;
 #X coords 0 200 99 0 400 200 1;
 #X restore 248 31 graph;
@@ -148,11 +148,10 @@ argument \, so yu can specify which generator is being used.;
 #X text 198 106 they all output floats);
 #X text 540 311 also \, there is some burst at the upper and lower
 limits;
-#N canvas 622 685 592 356 signalversions 1;
+#N canvas 622 668 592 356 signalversions 0;
 #X obj 68 131 random1~;
-#X obj 368 239 tabwrite~ randomix_test;
-#N canvas 0 0 450 300 graph1 0;
-#X array randomix_test 64 float 1;
+#N canvas 0 0 450 300 (subpatch) 0;
+#X array \$0-randomix_test 64 float 1;
 #A 0 -0.599965 0.178987 -0.501604 -1.10592 0.426163 -0.481499 -0.553236
 0.0961931 0.554738 -0.695487 0.541875 -0.415309 -0.419922 -0.871908
 0.0688377 -1.03721 -0.136159 -0.207339 -1.18947 -0.25981 -0.628915
@@ -176,19 +175,32 @@ limits;
 #X text 120 98 etc ..;
 #X obj 229 131 random_icg~;
 #X obj 81 241 fader 75;
-#X connect 0 0 13 0;
-#X connect 3 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 1 0;
-#X connect 6 0 1 0;
-#X connect 8 0 13 2;
-#X connect 9 0 0 0;
-#X connect 10 0 13 1;
-#X connect 12 0 1 0;
-#X connect 12 0 13 0;
-#X connect 13 0 7 0;
-#X connect 13 1 7 1;
+#X obj 368 239 tabwrite~ \$0-randomix_test;
+#X connect 0 0 12 0;
+#X connect 2 0 4 0;
+#X connect 3 0 4 1;
+#X connect 4 0 13 0;
+#X connect 5 0 13 0;
+#X connect 7 0 12 2;
+#X connect 8 0 0 0;
+#X connect 9 0 12 1;
+#X connect 11 0 12 0;
+#X connect 11 0 13 0;
+#X connect 12 0 6 0;
+#X connect 12 1 6 1;
 #X restore 98 421 pd signalversions;
+#N canvas 697 364 494 344 META 0;
+#X text 12 165 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 145 AUTHOR jdl at xdv.org;
+#X text 12 65 INLET_0 bang seed help;
+#X text 12 85 INLET_1 float;
+#X text 12 105 INLET_2 float;
+#X text 12 125 OUTLET_0 float;
+#X text 12 45 DESCIPTION random_icg lowerlimit \, upperlimit;
+#X text 12 5 KEYWORDS control random;
+#X restore 903 475 pd META;
 #X connect 0 0 11 0;
 #X connect 1 0 11 1;
 #X connect 4 0 6 0;
diff --git a/reson~-help.pd b/reson~-help.pd
index d90c159..71602cf 100644
--- a/reson~-help.pd
+++ b/reson~-help.pd
@@ -1,3 +1,16 @@
-#N canvas 0 22 454 304 10;
+#N canvas 0 4 454 304 10;
 #X obj 183 119 reson~;
 #X text 104 237 An interpolating reson filter;
+#N canvas 358 105 494 359 META 0;
+#X text 12 185 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 5 KEYWORDS signal filter needs_work (example patch);
+#X text 12 45 DESCRIPTION an interpolating reson filter;
+#X text 12 65 INLET_0 signal;
+#X text 12 85 INLET_1 signal;
+#X text 12 105 INLET_2 signal;
+#X text 12 125 INLET_3 signal;
+#X text 12 145 OUTLET_0 signal;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 165 AUTHOR jdl at xdv.org;
+#X restore 405 282 pd META;
diff --git a/utime-help.pd b/utime-help.pd
index aa5af83..4ce18e4 100644
--- a/utime-help.pd
+++ b/utime-help.pd
@@ -1,9 +1,21 @@
-#N canvas 305 149 450 300 10;
-#X obj 199 94 utime;
-#X msg 192 55 bang;
-#X floatatom 259 170 8 0 0;
-#X floatatom 174 129 20 0 0;
+#N canvas 0 31 347 149 10;
+#X obj 42 74 utime;
+#X msg 42 35 bang;
+#X floatatom 69 102 8 0 0 0 - - -;
+#X floatatom 42 129 20 0 0 0 - - -;
 #X text 25 8 output seconds since epoch and microsecond fraction;
+#N canvas 176 129 494 344 META 0;
+#X text 12 155 HELP_PATCH_AUTHORS Jonathan Wilkes revised the patch
+to conform to the PDDP template for Pd version 0.42.;
+#X text 12 5 KEYWORDS control time;
+#X text 12 45 DESCRIPTION output seconds since epoch and microsecond
+fraction;
+#X text 12 75 INLET_0 bang;
+#X text 12 95 OUTLET_0 float;
+#X text 12 115 OUTLET_1 float;
+#X text 12 25 LICENSE GPL v2;
+#X text 12 135 AUTHOR jdl at xdv.org;
+#X restore 297 128 pd META;
 #X connect 0 0 3 0;
 #X connect 0 1 2 0;
 #X connect 1 0 0 0;

-- 
pd-cxc packaging



More information about the pkg-multimedia-commits mailing list