diff --git a/externals/creb-old/CHANGES.LOG b/externals/creb-old/CHANGES.LOG
deleted file mode 100644
index 9b5c8776f442aa286eb8efaef218504f85b4dc7d..0000000000000000000000000000000000000000
--- a/externals/creb-old/CHANGES.LOG
+++ /dev/null
@@ -1,42 +0,0 @@
-0.1-0.7:	the dark ages
-0.8:		2003/02/18
-		fixed makefiles, added window~
-		(0.8.1) some bugfixes + gcc 3 compilation problems
-
-0.9:		lots of bugfixes and new objects & abstractions
-
-		bugfixes:
-			exponential envelopes no longer have a 'hold feature' 
-			(use eadsr~ or ear~ combined with a del obj to get a hold)
-			fdn~ blowup fixed
-			lattice~ blowup fixed
-			
-		new objects:
-			blocknorm~: normalizes a set of blocks to rms = 1
-			sbosc~: smallband pitched complex oscillator (i.e. for formant synth)
-			bitsplit~: splits a signal into a binary representation
-			clog~/cexp~: complex log and exp (clib functions)
-			nfft~/nifft~: normalized versions of the fft~/ifft~ objects
-			blosc~: minimum phase filtered bandlimited oscillators + comparator
-			resofilt~: some vintage filters with all-signal input and proper interpolation
-			scrollgrid1D~: chaotic scroll grid oscillator
-			
-		new abstractions:
-			step_*: some array readers/writers (for step sequencer)
-			cstate~/cstate+~: complex dynwav state read & write
-			pulsor~: pulse with duty cycle for dynwav spectral filtering
-			frequor~: a phasor for frequencies (fft traversal)
-			dsfosc~: complex discrete summation formula oscillator
-			idsfosc~: infinite series version (cheaper, but aliased)
-			cosc~: complex oscillator (complex phasor)
-			ucnorm~: complex unit circle normalization
-			ucmod~: complex unit circle modulation
-			lattice3: expand a (3d) harmonic lattice vector to a frequency ratio
-			ccmap~: complex conformal map of the unit disk
-			cinv~: complex inverse
-			cmul~: complex multipy
-			cadd~/csub~: complex add/sub
-			cconj~: complex conjugate
-			fmop~: fm operator
-			cep~/icep~: cepstrum transform and inverse
-			sin~: sine
diff --git a/externals/creb-old/COPYING b/externals/creb-old/COPYING
deleted file mode 100644
index 7f87ef8bc91148faed40be7e930f55c2d5c59036..0000000000000000000000000000000000000000
--- a/externals/creb-old/COPYING
+++ /dev/null
@@ -1,340 +0,0 @@
-
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-                          675 Mass Ave, Cambridge, MA 02139, USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-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
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-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
-   TERMS AND CONDITIONS FOR PDP.LICENSE, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    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
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-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
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-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
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-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
-
-  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
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-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
-
-	Appendix: 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
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) 19yy  <name of author>
-
-    This program 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.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) 19yy name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-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
-Public License instead of this License.
diff --git a/externals/creb-old/Makefile b/externals/creb-old/Makefile
deleted file mode 100644
index fa5b56309e87d45af7a9c6ecb07a1d276dae87d1..0000000000000000000000000000000000000000
--- a/externals/creb-old/Makefile
+++ /dev/null
@@ -1,40 +0,0 @@
-include Makefile.config
-
-all: 
-	make -C modules
-	make -C modules++
-
-	rm -f $(LIBNAME)
-	$(CXX) $(LIBFLAGS) -o $(LIBNAME) modules/*.o modules++/*.o -lm
-
-clean:
-	make -C modules clean
-	make -C modules++ clean
-	rm -f $(LIBNAME)
-	rm -f *~
-
-tags:
-	etags --language=auto */*.c */*.h */*.cpp
-
-tagsclean:
-	rm -f TAGS
-
-install:
-	test -d $(prefix)/lib/pd
-	install -d $(prefix)/lib/pd/extra
-	install -m 755 $(LIBNAME) $(prefix)/lib/pd/extra
-	install -m 644 abs/*.pd $(prefix)/lib/pd/extra
-	install -m 644 doc/*.pd $(prefix)/lib/pd/doc/5.reference
-	install -d $(prefix)/lib/pd/doc/creb
-	install -m 644 doc/examples/*.pd $(prefix)/lib/pd/doc/creb
-
-
-bootstrap:
-	. bootstrap
-
-# snapshot after release
-snapshot: bootstrap
-	bin/dist-snapshot -d
-
-# to make a release, increment the version number in darcs and run
-# 	bin/dist-snapshot
diff --git a/externals/creb-old/Makefile.config.in b/externals/creb-old/Makefile.config.in
deleted file mode 100644
index 204525c61137bb1cd3c91e4b1733f89ab1f2545e..0000000000000000000000000000000000000000
--- a/externals/creb-old/Makefile.config.in
+++ /dev/null
@@ -1,18 +0,0 @@
-PD_INCLUDE_DIR = @PD_INCLUDE_DIR@
-LIBNAME = @LIBNAME@
-LIBFLAGS = @LIBFLAGS@
-
-prefix=@prefix@
-CREB_VERSION = 0.9.2
-
-DEFS = -DPD -DCREB_VERSION=\"$(CREB_VERSION)\"
-CFLAGS = $(DEFS) -O2 -funroll-loops -fomit-frame-pointer \
-    -Wall -W -Wstrict-prototypes \
-    -Wno-unused -Wno-parentheses -Wno-switch # -Wshadow
-INCLUDE =  -I$(PD_INCLUDE_DIR) -I../include -I../include/dspi
-
-.c.o:
-	$(CC) $(CFLAGS) $(INCLUDE) -o $*.o -c $*.c 
-.cc.o:
-	$(CXX) $(CFLAGS) $(INCLUDE) -o $*.o -c $*.cc
-
diff --git a/externals/creb-old/README b/externals/creb-old/README
deleted file mode 100644
index 3eb5cdd66f6535cf0d6c43a82c3483e46e064fee..0000000000000000000000000000000000000000
--- a/externals/creb-old/README
+++ /dev/null
@@ -1,44 +0,0 @@
-CREB - compl. red. ext. blk.
-some externals for pure data
-
-Copyright (c) by Tom Schouten <tom@zwizwa.be>
-
-This program 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.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-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., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-The GNU Public Licence can be found in the file COPYING
-
-
-------------------------------------------------------------------
-
-This is a collection of pd externals. My bag of tricks.
-
-To build:
-./configure
-make
-
-To run:
-add the library to the pd startup line, and specify the
-path for the included abstractions (<crebdir>/abs)
-
-To figure out how it works:
-Documentation patches in doc/
-See doc/reference.txt for a list of objects
-
-Should build on linux and darwin (OSX).
-
-Enjoy,
-
-Tom
-
diff --git a/externals/creb-old/README.darcs b/externals/creb-old/README.darcs
deleted file mode 100644
index 774657e3049382cc7990496e481cc89e670f1e53..0000000000000000000000000000000000000000
--- a/externals/creb-old/README.darcs
+++ /dev/null
@@ -1,11 +0,0 @@
-to update type
-
-	darcs pull
-
-after getting/pulling, do
-
-	. bootstrap
-
-this will generate the configure scripts, so you can
-
-	./configure && make
diff --git a/externals/creb-old/README.extcvs b/externals/creb-old/README.extcvs
deleted file mode 100644
index 0f8bbc0e08168f2b97fa5526451bfa939ac47940..0000000000000000000000000000000000000000
--- a/externals/creb-old/README.extcvs
+++ /dev/null
@@ -1,16 +0,0 @@
-
-NOTE FOR THE PURE DATA EXTERNALS CVS
-
-if you need to change anything to the source files here, let me know at <tom@zwizwa.be>
-to prevent i overwrite your changes when i update the CVS from my darcs archive at:
-
-	http://zwizwa.be/darcs/creb
-
-i update like this:
-
- * update from darcs tree
- * update from sourceforge cvs
- * briefly look over changes, take mine as master
- * commit darcs + sourceforge
-
-
diff --git a/externals/creb-old/TODO b/externals/creb-old/TODO
deleted file mode 100644
index 981a605c15f1fde420e9db5a972a5aa9824cc597..0000000000000000000000000000000000000000
--- a/externals/creb-old/TODO
+++ /dev/null
@@ -1,3 +0,0 @@
-* rename or remove matrix~
-* fix nan/denorm problems in recursive filters
-* rewrite iir (c++) stuff -> filters.h
diff --git a/externals/creb-old/abs/64k.pd b/externals/creb-old/abs/64k.pd
deleted file mode 100644
index 9a919b152dbc9d97b89695dc3f84197d55c9edb4..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/64k.pd
+++ /dev/null
@@ -1,96 +0,0 @@
-#N canvas 0 0 968 634 10;
-#X obj 501 74 soundfiler;
-#X obj 45 125 * 65536;
-#X obj 197 414 +~;
-#X obj 212 383 *~ 65536;
-#X obj 268 232 metro 62.5;
-#X obj 213 347 phasor~ 1;
-#X obj 272 271 sel 0;
-#X msg 270 296 0;
-#X obj 561 181 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 45 35 +;
-#X obj 45 10 *;
-#X obj 683 196 bpm;
-#X msg 265 177 reset;
-#X obj 189 133 count 32;
-#X obj 478 -63 loadbang;
-#X obj 265 55 mod 16;
-#X obj 257 2 *;
-#X obj 45 97 +;
-#X obj 257 79 / 16;
-#X text 41 -46 sample shuffle;
-#X text 257 -44 beat shuffle;
-#X obj 265 28 +;
-#X obj 497 -16 symbol \$1;
-#X obj 273 -23 inlet;
-#X obj 498 99 / 65536;
-#X obj 499 128 - 1;
-#X obj 45 62 mod;
-#X obj 61 -25 inlet;
-#X obj 171 -25 inlet;
-#X text 151 -46 sample offset;
-#X obj 377 -23 inlet;
-#X text 357 -44 beat offset;
-#X obj 601 278 f;
-#X obj 681 144 inlet;
-#X text 688 123 bpm;
-#X msg 500 43 read -resize -raw 0 1 2 l \$1 \$2;
-#X obj 501 17 pack s s;
-#X obj 571 -47 t b b;
-#X obj 589 144 inlet;
-#X text 589 123 reset;
-#X obj 193 477 outlet~;
-#X obj 580 -17 symbol \$0-table;
-#X obj 795 95 table \$0-table;
-#X obj 201 441 tabread4~ \$0-table;
-#X text 433 459 reset;
-#X obj 433 480 outlet;
-#X obj 362 480 outlet;
-#X text 362 459 counter;
-#X connect 0 0 24 0;
-#X connect 1 0 2 0;
-#X connect 2 0 43 0;
-#X connect 3 0 2 1;
-#X connect 4 0 13 0;
-#X connect 5 0 3 0;
-#X connect 6 0 7 0;
-#X connect 7 0 5 1;
-#X connect 7 0 45 0;
-#X connect 8 0 4 0;
-#X connect 8 0 7 0;
-#X connect 8 0 12 0;
-#X connect 8 0 32 0;
-#X connect 9 0 26 0;
-#X connect 10 0 9 0;
-#X connect 11 0 4 1;
-#X connect 11 1 32 0;
-#X connect 12 0 13 0;
-#X connect 13 0 6 0;
-#X connect 13 0 10 0;
-#X connect 13 0 16 0;
-#X connect 13 0 46 0;
-#X connect 14 0 8 0;
-#X connect 14 0 37 0;
-#X connect 15 0 18 0;
-#X connect 16 0 21 0;
-#X connect 17 0 1 0;
-#X connect 18 0 17 1;
-#X connect 21 0 15 0;
-#X connect 22 0 36 0;
-#X connect 23 0 16 1;
-#X connect 24 0 25 0;
-#X connect 25 0 26 1;
-#X connect 26 0 17 0;
-#X connect 27 0 10 1;
-#X connect 28 0 9 1;
-#X connect 30 0 21 1;
-#X connect 32 0 5 0;
-#X connect 33 0 11 0;
-#X connect 35 0 0 0;
-#X connect 36 0 35 0;
-#X connect 37 0 22 0;
-#X connect 37 1 41 0;
-#X connect 38 0 8 0;
-#X connect 41 0 36 1;
-#X connect 43 0 40 0;
diff --git a/externals/creb-old/abs/bdft.pd b/externals/creb-old/abs/bdft.pd
deleted file mode 100644
index a979df43ca1d09373a84d733c317d2b08819b036..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/bdft.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 520 402 300 195 10;
-#X obj 106 9 inlet;
-#X obj 169 11 inlet;
-#X obj 121 90 pack \$1 0 0;
-#X obj 136 150 outlet;
-#X obj 167 41 t b f;
-#X obj 110 41 t b f;
-#X msg 100 125 timefreq \$1 \$2 \$3;
-#X connect 0 0 5 0;
-#X connect 1 0 4 0;
-#X connect 2 0 6 0;
-#X connect 4 0 2 0;
-#X connect 4 1 2 1;
-#X connect 5 0 2 0;
-#X connect 5 1 2 2;
-#X connect 6 0 3 0;
diff --git a/externals/creb-old/abs/bdfts.pd b/externals/creb-old/abs/bdfts.pd
deleted file mode 100644
index 1926d4f61dfe6eaa0cc62e742a5e0509734d304f..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/bdfts.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 520 402 300 195 10;
-#X obj 106 9 inlet;
-#X obj 169 11 inlet;
-#X obj 121 90 pack \$1 0 0;
-#X obj 136 150 outlet;
-#X obj 166 60 t b f;
-#X obj 109 60 t b f;
-#X msg 100 125 timefreq \$1 \$2 \$3;
-#X obj 170 36 * 1000;
-#X connect 0 0 5 0;
-#X connect 1 0 7 0;
-#X connect 2 0 6 0;
-#X connect 4 0 2 0;
-#X connect 4 1 2 1;
-#X connect 5 0 2 0;
-#X connect 5 1 2 2;
-#X connect 6 0 3 0;
-#X connect 7 0 4 0;
diff --git a/externals/creb-old/abs/bhip~.pd b/externals/creb-old/abs/bhip~.pd
deleted file mode 100644
index f7c925f44b2cb15a73cfb0a710d739813db8afd4..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/bhip~.pd
+++ /dev/null
@@ -1,10 +0,0 @@
-#N canvas 399 553 450 300 10;
-#X obj 87 196 biquadseries~ \$1;
-#X obj 81 134 inlet~;
-#X obj 138 134 inlet;
-#X obj 82 236 outlet~;
-#X msg 107 162 butterHP \$1;
-#X connect 0 0 3 0;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 4 0 0 0;
diff --git a/externals/creb-old/abs/blop~.pd b/externals/creb-old/abs/blop~.pd
deleted file mode 100644
index 5a32c9869c9e2935a96f0d3ffd0f18f82852f3c7..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/blop~.pd
+++ /dev/null
@@ -1,10 +0,0 @@
-#N canvas 399 553 450 300 10;
-#X obj 87 196 biquadseries~ \$1;
-#X msg 107 162 butterLP \$1;
-#X obj 81 134 inlet~;
-#X obj 138 134 inlet;
-#X obj 82 236 outlet~;
-#X connect 0 0 4 0;
-#X connect 1 0 0 0;
-#X connect 2 0 0 0;
-#X connect 3 0 1 0;
diff --git a/externals/creb-old/abs/bpm.pd b/externals/creb-old/abs/bpm.pd
deleted file mode 100644
index 97d31e6d84b79b72ec489c20bea6581a5d0c3855..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/bpm.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 385 419 372 239 10;
-#X obj 48 40 inlet;
-#X obj 52 155 outlet;
-#X obj 213 157 outlet;
-#X text 30 185 quarter note time;
-#X text 184 188 measure frequency;
-#X text 46 18 bpm input;
-#X obj 55 126 /;
-#X obj 36 67 t b f;
-#X obj 200 101 / 240;
-#X msg 44 99 15000;
-#X connect 0 0 7 0;
-#X connect 0 0 8 0;
-#X connect 6 0 1 0;
-#X connect 7 0 9 0;
-#X connect 7 1 6 1;
-#X connect 8 0 2 0;
-#X connect 9 0 6 0;
diff --git a/externals/creb-old/abs/cadd~.pd b/externals/creb-old/abs/cadd~.pd
deleted file mode 100644
index 47a31c0c8763438fb9624d5ef53b0da2cfdf0ec0..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/cadd~.pd
+++ /dev/null
@@ -1,12 +0,0 @@
-#N canvas 800 696 381 197 10;
-#X obj 58 49 inlet~;
-#X obj 58 159 outlet~;
-#X text 49 5 complex addition;
-#X obj 195 49 inlet~;
-#X obj 114 49 inlet~;
-#X obj 114 159 outlet~;
-#X obj 251 49 inlet~;
-#X connect 0 0 1 0;
-#X connect 3 0 1 0;
-#X connect 4 0 5 0;
-#X connect 6 0 5 0;
diff --git a/externals/creb-old/abs/ccmap~.pd b/externals/creb-old/abs/ccmap~.pd
deleted file mode 100644
index 8fbeb315a19ec33b94c09760c6cb5df70d72838f..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/ccmap~.pd
+++ /dev/null
@@ -1,36 +0,0 @@
-#N canvas 725 589 450 300 10;
-#X obj 39 85 inlet~;
-#X obj 139 254 outlet~;
-#X obj 210 86 inlet~;
-#X obj 98 85 inlet~;
-#X obj 198 254 outlet~;
-#X obj 269 86 inlet~;
-#X text 63 58 z;
-#X text 237 60 a;
-#X obj 159 206 cinv~;
-#X obj 138 230 cmul~;
-#X obj 211 117 cconj~;
-#X obj 159 167 -~ 1;
-#X obj 64 169 csub~;
-#X text 23 10 conformal self map of the unit disk (z-a)/(1-conj(a)z)
-;
-#X obj 182 142 cmul~;
-#X connect 0 0 12 2;
-#X connect 0 0 14 0;
-#X connect 2 0 10 0;
-#X connect 2 0 12 0;
-#X connect 3 0 12 3;
-#X connect 3 0 14 1;
-#X connect 5 0 10 1;
-#X connect 5 0 12 1;
-#X connect 8 0 9 2;
-#X connect 8 1 9 3;
-#X connect 9 0 1 0;
-#X connect 9 1 4 0;
-#X connect 10 0 14 2;
-#X connect 10 1 14 3;
-#X connect 11 0 8 0;
-#X connect 12 0 9 0;
-#X connect 12 1 9 1;
-#X connect 14 0 11 0;
-#X connect 14 1 8 1;
diff --git a/externals/creb-old/abs/cconj~.pd b/externals/creb-old/abs/cconj~.pd
deleted file mode 100644
index dcf2f5f0fd4baa104bc79c49e571ab383ced159e..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/cconj~.pd
+++ /dev/null
@@ -1,10 +0,0 @@
-#N canvas 700 418 285 166 10;
-#X obj 58 49 inlet~;
-#X obj 57 105 outlet~;
-#X obj 195 49 inlet~;
-#X obj 194 105 outlet~;
-#X obj 194 75 *~ -1;
-#X text 49 5 complex conjugate;
-#X connect 0 0 1 0;
-#X connect 2 0 4 0;
-#X connect 4 0 3 0;
diff --git a/externals/creb-old/abs/cep~.pd b/externals/creb-old/abs/cep~.pd
deleted file mode 100644
index cbebf0e486a29bdfa654153a49eb6b5693027e5a..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/cep~.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 203 382 521 228 10;
-#X obj 70 42 inlet~;
-#X obj 124 42 inlet~;
-#X obj 94 66 nfft~;
-#X obj 94 95 clog~;
-#X obj 94 124 nifft~;
-#X obj 68 164 outlet~;
-#X obj 126 164 outlet~;
-#X text 229 45 forward cepstrum;
-#X text 229 64 using normalized fft/ifft objects;
-#X connect 0 0 2 0;
-#X connect 1 0 2 1;
-#X connect 2 0 3 0;
-#X connect 2 1 3 1;
-#X connect 3 0 4 0;
-#X connect 3 1 4 1;
-#X connect 4 0 5 0;
-#X connect 4 1 6 0;
diff --git a/externals/creb-old/abs/cinv~.pd b/externals/creb-old/abs/cinv~.pd
deleted file mode 100644
index c7d4fa3ff1f002ebdb11cbbd93366ed949b094a3..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/cinv~.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 808 178 381 297 10;
-#X obj 58 49 inlet~;
-#X obj 58 207 outlet~;
-#X obj 59 182 *~;
-#X obj 110 84 *~;
-#X obj 195 49 inlet~;
-#X obj 179 208 outlet~;
-#X obj 180 183 *~;
-#X obj 145 83 *~;
-#X obj 94 119 /~;
-#X obj 196 111 *~ -1;
-#X obj 73 85 +~ 1;
-#X text 49 5 complex inverse;
-#X connect 0 0 2 0;
-#X connect 0 0 3 0;
-#X connect 0 0 3 1;
-#X connect 2 0 1 0;
-#X connect 3 0 8 1;
-#X connect 4 0 7 0;
-#X connect 4 0 7 1;
-#X connect 4 0 9 0;
-#X connect 6 0 5 0;
-#X connect 7 0 8 1;
-#X connect 8 0 2 1;
-#X connect 8 0 6 0;
-#X connect 9 0 6 1;
-#X connect 10 0 8 0;
diff --git a/externals/creb-old/abs/cmul~.pd b/externals/creb-old/abs/cmul~.pd
deleted file mode 100644
index f7e9b5aa3b4934b70233050dd30bd5a5b525376a..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/cmul~.pd
+++ /dev/null
@@ -1,28 +0,0 @@
-#N canvas 24 618 381 197 10;
-#X obj 58 49 inlet~;
-#X obj 58 159 outlet~;
-#X obj 177 154 outlet~;
-#X text 49 5 complex multiplication;
-#X obj 178 131 +~;
-#X obj 58 136 -~;
-#X obj 58 105 *~;
-#X obj 108 49 inlet~;
-#X obj 108 105 *~;
-#X obj 192 49 inlet~;
-#X obj 177 106 *~;
-#X obj 242 49 inlet~;
-#X obj 227 106 *~;
-#X connect 0 0 6 0;
-#X connect 0 0 12 0;
-#X connect 4 0 2 0;
-#X connect 5 0 1 0;
-#X connect 6 0 5 0;
-#X connect 7 0 8 0;
-#X connect 7 0 10 0;
-#X connect 8 0 5 1;
-#X connect 9 0 6 1;
-#X connect 9 0 10 1;
-#X connect 10 0 4 0;
-#X connect 11 0 8 1;
-#X connect 11 0 12 1;
-#X connect 12 0 4 1;
diff --git a/externals/creb-old/abs/cosc~.pd b/externals/creb-old/abs/cosc~.pd
deleted file mode 100644
index b2762f406bf33a133f526407cee5be34beb3abe5..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/cosc~.pd
+++ /dev/null
@@ -1,22 +0,0 @@
-#N canvas 267 527 381 197 10;
-#X obj 57 52 inlet~;
-#X obj 58 78 phasor~;
-#X obj 151 51 inlet;
-#X text 48 25 frequency;
-#X text 154 25 phase;
-#X text 49 5 complex oscillator (unit norm exponential);
-#X obj 59 131 cos~;
-#X obj 118 132 sin~;
-#X obj 58 159 outlet~;
-#X obj 119 158 outlet~;
-#X obj 221 52 inlet;
-#X obj 59 105 *~ 1;
-#X text 211 24 phase synchronous harmonic;
-#X connect 0 0 1 0;
-#X connect 1 0 11 0;
-#X connect 2 0 1 1;
-#X connect 6 0 8 0;
-#X connect 7 0 9 0;
-#X connect 10 0 11 1;
-#X connect 11 0 7 0;
-#X connect 11 0 6 0;
diff --git a/externals/creb-old/abs/count.pd b/externals/creb-old/abs/count.pd
deleted file mode 100644
index 44001b5e00a1bc99e2b2fe17af6dab33b8801219..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/count.pd
+++ /dev/null
@@ -1,20 +0,0 @@
-#N canvas 245 395 450 300 10;
-#X obj 51 24 inlet;
-#X obj 63 144 f 0;
-#X obj 64 180 + 1;
-#X obj 99 144 mod \$1;
-#X msg 75 108 0;
-#X obj 41 246 outlet;
-#X obj 44 66 route reset;
-#X msg 13 109 bang;
-#X obj 161 20 inlet;
-#X connect 0 0 6 0;
-#X connect 1 0 2 0;
-#X connect 1 0 5 0;
-#X connect 2 0 3 0;
-#X connect 3 0 1 1;
-#X connect 4 0 1 1;
-#X connect 6 0 4 0;
-#X connect 6 1 7 0;
-#X connect 7 0 1 0;
-#X connect 8 0 3 1;
diff --git a/externals/creb-old/abs/cstate+~.pd b/externals/creb-old/abs/cstate+~.pd
deleted file mode 100644
index cfba48e5d16f59199b14b838b52bc88ba6ecb05b..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/cstate+~.pd
+++ /dev/null
@@ -1,9 +0,0 @@
-#N canvas 441 639 286 142 10;
-#X obj 23 12 table \$1-real \$2;
-#X obj 23 33 table \$1-imag \$2;
-#X obj 23 101 tabsend~ \$1-real;
-#X obj 143 101 tabsend~ \$1-imag;
-#X obj 22 70 inlet~;
-#X obj 143 69 inlet~;
-#X connect 4 0 2 0;
-#X connect 5 0 3 0;
diff --git a/externals/creb-old/abs/cstate~.pd b/externals/creb-old/abs/cstate~.pd
deleted file mode 100644
index f437c8411e2c95038a1126df1f225a3357fccaa9..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/cstate~.pd
+++ /dev/null
@@ -1,7 +0,0 @@
-#N canvas 441 639 416 164 10;
-#X obj 18 23 tabreceive~ \$1-real;
-#X obj 17 52 outlet~;
-#X obj 164 53 outlet~;
-#X obj 165 24 tabreceive~ \$1-imag;
-#X connect 0 0 1 0;
-#X connect 3 0 2 0;
diff --git a/externals/creb-old/abs/csub~.pd b/externals/creb-old/abs/csub~.pd
deleted file mode 100644
index eaf2b068f6e0ce6292f3876693800ee697828ec7..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/csub~.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 703 725 381 197 10;
-#X obj 58 49 inlet~;
-#X obj 58 159 outlet~;
-#X obj 195 49 inlet~;
-#X obj 59 101 -~;
-#X obj 116 49 inlet~;
-#X obj 116 159 outlet~;
-#X obj 253 49 inlet~;
-#X obj 117 101 -~;
-#X text 49 5 complex subtraction;
-#X connect 0 0 3 0;
-#X connect 2 0 3 1;
-#X connect 3 0 1 0;
-#X connect 4 0 7 0;
-#X connect 6 0 7 1;
-#X connect 7 0 5 0;
diff --git a/externals/creb-old/abs/dsfosc~.pd b/externals/creb-old/abs/dsfosc~.pd
deleted file mode 100644
index 2bb3675182a47091e3741564e16ad5448866830a..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/dsfosc~.pd
+++ /dev/null
@@ -1,73 +0,0 @@
-#N canvas 162 88 557 519 10;
-#X obj 201 473 outlet~;
-#X obj 258 473 outlet~;
-#X text 59 21 complex form of the discrete summation oscillator;
-#X text 62 38 (1-az^n)/(1-az) \, with z = e^(jw);
-#X obj 118 122 inlet~;
-#X text 93 100 frequency;
-#X obj 263 119 inlet;
-#X obj 118 284 cosc~;
-#X obj 233 258 *~ \$1;
-#X obj 118 350 *~;
-#X obj 149 350 *~;
-#X obj 233 283 cosc~;
-#X obj 232 340 *~;
-#X obj 263 340 *~;
-#X obj 118 378 +~ 1;
-#X obj 233 368 +~ 1;
-#X obj 119 404 cinv~;
-#X obj 213 446 cmul~;
-#X obj 354 122 inlet;
-#X obj 354 170 * -1;
-#X obj 166 327 lop~ 10;
-#X text 195 100 harmonics (N);
-#X text 317 102 modulation (r);
-#X obj 384 217 abs;
-#X obj 354 194 t f f;
-#X obj 354 278 *;
-#X obj 354 236 /;
-#X obj 384 256 pow \$1;
-#X floatatom 368 316 5 0 0 0 - - -;
-#X floatatom 192 270 5 0 0 0 - - -;
-#X obj 264 150 t b f;
-#X obj 354 148 f;
-#X obj 298 333 lop~ 10;
-#X connect 4 0 8 0;
-#X connect 4 0 7 0;
-#X connect 6 0 30 0;
-#X connect 7 0 9 0;
-#X connect 7 1 10 0;
-#X connect 8 0 11 0;
-#X connect 9 0 14 0;
-#X connect 10 0 16 1;
-#X connect 11 0 12 0;
-#X connect 11 1 13 0;
-#X connect 12 0 15 0;
-#X connect 13 0 17 3;
-#X connect 14 0 16 0;
-#X connect 15 0 17 2;
-#X connect 16 0 17 0;
-#X connect 16 1 17 1;
-#X connect 17 0 0 0;
-#X connect 17 1 1 0;
-#X connect 18 0 31 0;
-#X connect 19 0 24 0;
-#X connect 19 0 20 0;
-#X connect 20 0 10 1;
-#X connect 20 0 9 1;
-#X connect 23 0 26 1;
-#X connect 23 0 27 0;
-#X connect 24 0 26 0;
-#X connect 24 1 23 0;
-#X connect 25 0 32 0;
-#X connect 26 0 25 0;
-#X connect 27 0 25 1;
-#X connect 28 0 32 1;
-#X connect 28 0 29 0;
-#X connect 29 0 20 1;
-#X connect 30 0 31 0;
-#X connect 30 1 8 1;
-#X connect 30 1 27 1;
-#X connect 31 0 19 0;
-#X connect 32 0 13 1;
-#X connect 32 0 12 1;
diff --git a/externals/creb-old/abs/eadh~.pd b/externals/creb-old/abs/eadh~.pd
deleted file mode 100644
index 0f00345f62966c9df42e06b24e818f7bef978a58..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/eadh~.pd
+++ /dev/null
@@ -1,22 +0,0 @@
-#N canvas 127 436 262 228 10;
-#X obj 34 27 inlet;
-#X obj 84 27 inlet;
-#X obj 133 27 inlet;
-#X msg 44 108 start;
-#X msg 92 107 stop;
-#X obj 179 27 inlet;
-#X msg 34 49 bang;
-#X obj 44 187 outlet~;
-#X text 14 6 trigger - attack - decay - hold;
-#X obj 44 144 ear~ \$1 \$2;
-#X obj 68 78 del \$3;
-#X connect 0 0 6 0;
-#X connect 1 0 9 1;
-#X connect 2 0 9 2;
-#X connect 3 0 9 0;
-#X connect 4 0 9 0;
-#X connect 5 0 10 1;
-#X connect 6 0 3 0;
-#X connect 6 0 10 0;
-#X connect 9 0 7 0;
-#X connect 10 0 4 0;
diff --git a/externals/creb-old/abs/eadsrh~.pd b/externals/creb-old/abs/eadsrh~.pd
deleted file mode 100644
index a1c7da55c039dd0006be6d4ca424c7263ed76bab..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/eadsrh~.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 127 436 524 279 10;
-#X obj 34 27 inlet;
-#X obj 84 27 inlet;
-#X obj 133 27 inlet;
-#X msg 44 108 start;
-#X msg 306 113 stop;
-#X obj 354 31 inlet;
-#X msg 34 49 bang;
-#X obj 44 187 outlet~;
-#X text 13 6 trigger - attack - decay - sustain - release - duration
-;
-#X obj 44 144 eadsr~ \$1 \$2 \$3 \$4;
-#X obj 306 84 del \$5;
-#X obj 211 27 inlet;
-#X obj 260 27 inlet;
-#X connect 0 0 6 0;
-#X connect 1 0 9 1;
-#X connect 2 0 9 2;
-#X connect 3 0 9 0;
-#X connect 4 0 9 0;
-#X connect 5 0 10 1;
-#X connect 6 0 3 0;
-#X connect 6 0 10 0;
-#X connect 9 0 7 0;
-#X connect 10 0 4 0;
-#X connect 11 0 9 3;
-#X connect 12 0 9 4;
diff --git a/externals/creb-old/abs/expmap~.pd b/externals/creb-old/abs/expmap~.pd
deleted file mode 100644
index 902b856bf80d08529cbcb2828ab589a45707f77c..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/expmap~.pd
+++ /dev/null
@@ -1,38 +0,0 @@
-#N canvas 754 478 456 394 10;
-#X obj 75 47 inlet~;
-#X obj 134 47 inlet;
-#X obj 186 47 inlet;
-#X obj 167 138 /;
-#X obj 167 160 log;
-#X text 138 29 min;
-#X text 193 30 max;
-#X text 80 9 exponential map from (-1 \, 1) to (min \, max);
-#X obj 75 244 *~;
-#X obj 75 302 *~;
-#X obj 74 335 outlet~;
-#X obj 214 114 f \$1;
-#X obj 167 114 f \$2;
-#X obj 75 268 exp~;
-#X obj 271 70 t b b;
-#X obj 271 49 loadbang;
-#X obj 134 71 t b f;
-#X obj 74 137 +~ 1;
-#X obj 74 162 *~ 0.5;
-#X connect 0 0 17 0;
-#X connect 1 0 16 0;
-#X connect 2 0 12 0;
-#X connect 3 0 4 0;
-#X connect 4 0 8 1;
-#X connect 8 0 13 0;
-#X connect 9 0 10 0;
-#X connect 11 0 3 1;
-#X connect 11 0 9 1;
-#X connect 12 0 3 0;
-#X connect 13 0 9 0;
-#X connect 14 0 12 0;
-#X connect 14 1 11 0;
-#X connect 15 0 14 0;
-#X connect 16 0 12 0;
-#X connect 16 1 11 0;
-#X connect 17 0 18 0;
-#X connect 18 0 8 0;
diff --git a/externals/creb-old/abs/fblock.pd b/externals/creb-old/abs/fblock.pd
deleted file mode 100644
index a3d08287497d5636e37fd91374a1baf9745ee0c2..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/fblock.pd
+++ /dev/null
@@ -1,24 +0,0 @@
-#N canvas 290 132 617 246 10;
-#X obj 36 36 inlet;
-#X obj 101 35 inlet;
-#X obj 42 196 outlet;
-#X obj 104 83 samplerate~;
-#X obj 101 115 / \$1;
-#X obj 59 158 +;
-#X obj 103 144 *;
-#X obj 103 59 t b b f;
-#X text 200 79 right inlet is also "active";
-#X text 201 119 main usage is to compute block synchronous frequencies
-;
-#X text 200 134 for spectral domain processing;
-#X text 201 49 out = left + right * (sys samplerate / blocksize);
-#X text 200 35 fblock: compute block relative frequencies;
-#X connect 0 0 5 0;
-#X connect 1 0 7 0;
-#X connect 3 0 4 0;
-#X connect 4 0 6 0;
-#X connect 5 0 2 0;
-#X connect 6 0 5 1;
-#X connect 7 0 5 0;
-#X connect 7 1 3 0;
-#X connect 7 2 6 1;
diff --git a/externals/creb-old/abs/fblock~.pd b/externals/creb-old/abs/fblock~.pd
deleted file mode 100644
index 256c5c8847d4a4c69b861a9c94066525fd25bf04..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/fblock~.pd
+++ /dev/null
@@ -1,22 +0,0 @@
-#N canvas 64 291 617 246 10;
-#X text 201 77 main usage is to compute block synchronous frequencies
-;
-#X text 200 92 for spectral domain processing;
-#X text 201 49 out = left + right * (sys samplerate / blocksize);
-#X obj 36 36 inlet~;
-#X obj 37 198 outlet~;
-#X obj 102 110 samplerate~;
-#X text 200 35 fblock~: compute block relative frequencies;
-#X obj 102 83 loadbang;
-#X obj 57 165 *~;
-#X obj 101 35 inlet~;
-#X obj 102 138 / \$1;
-#X obj 171 86 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X connect 3 0 4 0;
-#X connect 5 0 10 0;
-#X connect 7 0 5 0;
-#X connect 8 0 4 0;
-#X connect 9 0 8 0;
-#X connect 10 0 8 1;
-#X connect 11 0 5 0;
diff --git a/externals/creb-old/abs/fmod.pd b/externals/creb-old/abs/fmod.pd
deleted file mode 100644
index 8cff45c04b053b87e314d6f47d1080d70568c0a2..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/fmod.pd
+++ /dev/null
@@ -1,25 +0,0 @@
-#N canvas 714 472 443 338 10;
-#X obj 52 36 inlet;
-#X obj 52 255 outlet;
-#X obj 110 36 inlet;
-#X obj 52 64 / \$1;
-#X obj 52 230 * \$1;
-#X obj 82 122 int;
-#X obj 52 96 t f f;
-#X obj 52 148 -;
-#X text 175 90 floating point version of;
-#X text 361 91 [mod];
-#X obj 52 175 moses 0;
-#X obj 52 203 + 1;
-#X connect 0 0 3 0;
-#X connect 2 0 3 1;
-#X connect 2 0 4 1;
-#X connect 3 0 6 0;
-#X connect 4 0 1 0;
-#X connect 5 0 7 1;
-#X connect 6 0 7 0;
-#X connect 6 1 5 0;
-#X connect 7 0 10 0;
-#X connect 10 0 11 0;
-#X connect 10 1 4 0;
-#X connect 11 0 4 0;
diff --git a/externals/creb-old/abs/fmop~.pd b/externals/creb-old/abs/fmop~.pd
deleted file mode 100644
index e68f8e5e9c8cc4675f03f6dd027a8bd82fa5277e..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/fmop~.pd
+++ /dev/null
@@ -1,20 +0,0 @@
-#N canvas 662 414 450 300 10;
-#X obj 82 154 cos~;
-#X obj 82 89 phasor~;
-#X obj 160 96 osc~;
-#X obj 160 122 *~;
-#X obj 82 190 outlet~;
-#X obj 82 61 inlet~;
-#X obj 160 60 inlet~;
-#X obj 230 60 inlet~;
-#X text 76 12 fm operator;
-#X text 234 38 mod depth;
-#X text 157 40 mod freq;
-#X text 59 39 carrier freq;
-#X connect 0 0 4 0;
-#X connect 1 0 0 0;
-#X connect 2 0 3 0;
-#X connect 3 0 0 0;
-#X connect 5 0 1 0;
-#X connect 6 0 2 0;
-#X connect 7 0 3 1;
diff --git a/externals/creb-old/abs/frequor~.pd b/externals/creb-old/abs/frequor~.pd
deleted file mode 100644
index e12aace5f9f9949054a963a1914f66b71c70f756..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/frequor~.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 649 489 450 300 10;
-#X obj 133 212 *~ 2;
-#X obj 134 235 -~ 1;
-#X obj 230 141 + 0.5;
-#X obj 133 188 phasor~;
-#X msg 190 112 0;
-#X obj 190 90 loadbang;
-#X obj 135 258 outlet~;
-#X obj 133 165 fblock \$1;
-#X msg 190 141 1;
-#X obj 132 92 inlet;
-#X text 28 4 frequor~: frequency domain phasor~ (for traversing spectra)
-;
-#X text 98 75 nb windings;
-#X text 102 25 output: (0 \, N/2-1) -> (0 \, 1);
-#X text 152 41 (N/2 \, N-1) -> (-1 \, 0);
-#X connect 0 0 1 0;
-#X connect 1 0 6 0;
-#X connect 2 0 3 1;
-#X connect 3 0 0 0;
-#X connect 4 0 2 0;
-#X connect 4 0 8 0;
-#X connect 5 0 4 0;
-#X connect 7 0 3 0;
-#X connect 8 0 7 1;
-#X connect 9 0 7 1;
diff --git a/externals/creb-old/abs/icep~.pd b/externals/creb-old/abs/icep~.pd
deleted file mode 100644
index ec05a9353563b96dc285b9d95ba4f8f1a0714e37..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/icep~.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 318 596 521 228 10;
-#X obj 70 42 inlet~;
-#X obj 124 42 inlet~;
-#X obj 94 66 nfft~;
-#X obj 94 124 nifft~;
-#X obj 68 164 outlet~;
-#X obj 126 164 outlet~;
-#X text 229 45 backward cepstrum;
-#X obj 94 95 cexp~;
-#X text 229 64 using normalized fft/ifft objects;
-#X connect 0 0 2 0;
-#X connect 1 0 2 1;
-#X connect 2 0 7 0;
-#X connect 2 1 7 1;
-#X connect 3 0 4 0;
-#X connect 3 1 5 0;
-#X connect 7 0 3 0;
-#X connect 7 1 3 1;
diff --git a/externals/creb-old/abs/idsfosc~.pd b/externals/creb-old/abs/idsfosc~.pd
deleted file mode 100644
index 76db5bff08dff62296941c7da8b8c29a48cdb12e..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/idsfosc~.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 414 255 527 400 10;
-#X obj 118 339 outlet~;
-#X obj 175 339 outlet~;
-#X obj 118 122 inlet~;
-#X text 93 100 frequency;
-#X obj 118 162 cosc~;
-#X obj 118 228 *~;
-#X obj 149 228 *~;
-#X obj 118 256 +~ 1;
-#X obj 119 282 cinv~;
-#X text 59 21 complex form of the (infinite) discrete summation oscillator
-;
-#X text 62 38 1/(1-az) \, with z = e^(jw);
-#X text 178 103 modulation (a);
-#X obj 215 123 inlet~;
-#X obj 214 192 *~ -1;
-#X connect 2 0 4 0;
-#X connect 4 0 5 0;
-#X connect 4 1 6 0;
-#X connect 5 0 7 0;
-#X connect 6 0 8 1;
-#X connect 7 0 8 0;
-#X connect 8 0 0 0;
-#X connect 8 1 1 0;
-#X connect 12 0 13 0;
-#X connect 13 0 6 1;
-#X connect 13 0 5 1;
diff --git a/externals/creb-old/abs/inv.pd b/externals/creb-old/abs/inv.pd
deleted file mode 100644
index b465178e47d25c56763b92f22315137b87296efc..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/inv.pd
+++ /dev/null
@@ -1,8 +0,0 @@
-#N canvas 329 434 450 300 10;
-#X obj 68 45 inlet;
-#X obj 67 130 outlet;
-#X obj 68 71 + 1;
-#X obj 68 96 mod 2;
-#X connect 0 0 2 0;
-#X connect 2 0 3 0;
-#X connect 3 0 1 0;
diff --git a/externals/creb-old/abs/lattice3.pd b/externals/creb-old/abs/lattice3.pd
deleted file mode 100644
index dadae9c01a66dc4749babdecdc1de23a57f2e4cd..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/lattice3.pd
+++ /dev/null
@@ -1,31 +0,0 @@
-#N canvas 178 387 450 300 10;
-#X obj 59 138 pow;
-#X msg 59 116 2;
-#X obj 106 139 pow;
-#X obj 159 136 pow;
-#X msg 106 117 1.5;
-#X msg 159 114 1.25;
-#X obj 106 166 *;
-#X obj 59 197 *;
-#X obj 130 47 unpack 0 0 0;
-#X obj 59 46 t b b b a;
-#X obj 59 226 outlet;
-#X obj 59 24 inlet;
-#X text 22 4 expand harmonic lattice vector in the (2 \, 3/2 \, 5/4)
-basis;
-#X connect 0 0 7 0;
-#X connect 1 0 0 0;
-#X connect 2 0 6 0;
-#X connect 3 0 6 1;
-#X connect 4 0 2 0;
-#X connect 5 0 3 0;
-#X connect 6 0 7 1;
-#X connect 7 0 10 0;
-#X connect 8 0 0 1;
-#X connect 8 1 2 1;
-#X connect 8 2 3 1;
-#X connect 9 0 1 0;
-#X connect 9 1 4 0;
-#X connect 9 2 5 0;
-#X connect 9 3 8 0;
-#X connect 11 0 9 0;
diff --git a/externals/creb-old/abs/lpifft~.pd b/externals/creb-old/abs/lpifft~.pd
deleted file mode 100644
index 60dde2d4a5243f364239072bb3d09d9941d326b2..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/lpifft~.pd
+++ /dev/null
@@ -1,61 +0,0 @@
-#N canvas 261 505 536 346 10;
-#X obj 407 227 f;
-#X obj 351 251 * -1;
-#X obj 73 189 *~;
-#X obj 104 189 *~;
-#X obj 49 41 inlet~;
-#X obj 103 42 inlet~;
-#X obj 64 242 +~;
-#X obj 112 246 -~;
-#X obj 361 35 inlet;
-#X obj 377 59 fblock \$1;
-#X msg 434 38 1;
-#X obj 361 85 /;
-#X obj 392 299 +~;
-#X obj 361 109 moses 1;
-#X msg 361 131 1;
-#X obj 407 154 t b f;
-#X msg 407 176 0.5;
-#X obj 409 204 /;
-#X obj 407 275 pulsor~ \$1;
-#X obj 329 275 pulsor~ \$1;
-#X obj 446 15 loadbang;
-#X obj 48 315 outlet~;
-#X obj 123 312 outlet~;
-#X text 18 265 xform s.t. real spectrum = mono;
-#X text 18 7 ifft with rectangular lowpass for anti-aliased dynwav
-;
-#X text 9 18 creation arg = fft size \, right inlet = dynwav cutoff
-freq;
-#X obj 122 165 +~;
-#X obj 73 214 nifft~;
-#X connect 0 0 1 0;
-#X connect 0 0 18 0;
-#X connect 1 0 19 0;
-#X connect 2 0 27 0;
-#X connect 3 0 27 1;
-#X connect 4 0 2 0;
-#X connect 5 0 3 0;
-#X connect 6 0 21 0;
-#X connect 7 0 22 0;
-#X connect 8 0 11 0;
-#X connect 9 0 11 1;
-#X connect 10 0 9 1;
-#X connect 11 0 13 0;
-#X connect 12 0 26 0;
-#X connect 13 0 14 0;
-#X connect 13 1 15 0;
-#X connect 14 0 15 0;
-#X connect 15 0 16 0;
-#X connect 15 1 17 1;
-#X connect 16 0 17 0;
-#X connect 17 0 0 0;
-#X connect 18 0 12 1;
-#X connect 19 1 12 0;
-#X connect 20 0 10 0;
-#X connect 26 0 3 1;
-#X connect 26 0 2 1;
-#X connect 27 0 6 0;
-#X connect 27 0 7 0;
-#X connect 27 1 6 1;
-#X connect 27 1 7 1;
diff --git a/externals/creb-old/abs/pdynwav~.pd b/externals/creb-old/abs/pdynwav~.pd
deleted file mode 100644
index a4da3f187c462ab5e9edfbf878e3c9d970a9acb6..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/pdynwav~.pd
+++ /dev/null
@@ -1,10 +0,0 @@
-#N canvas 164 313 194 151 10;
-#X obj 30 24 inlet~;
-#X obj 110 23 inlet;
-#X obj 30 98 outlet~;
-#X obj 110 49 phasor~;
-#X obj 30 67 dynwav~;
-#X connect 0 0 4 0;
-#X connect 1 0 3 0;
-#X connect 3 0 4 1;
-#X connect 4 0 2 0;
diff --git a/externals/creb-old/abs/pulsor~.pd b/externals/creb-old/abs/pulsor~.pd
deleted file mode 100644
index 706998685d616538416c587c1b2a9fa1abdc4d17..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/pulsor~.pd
+++ /dev/null
@@ -1,39 +0,0 @@
-#N canvas 641 469 535 446 10;
-#X obj 96 90 fblock \$1;
-#X obj 203 102 bang~;
-#X msg 203 126 0;
-#X obj 96 179 phasor~;
-#X obj 159 179 phasor~;
-#X obj 133 216 -~;
-#X msg 154 64 1;
-#X obj 154 37 loadbang;
-#X obj 203 151 +;
-#X obj 266 78 inlet;
-#X text 251 57 duty cycle;
-#X text 46 11 pulsor~: rectangular window w. duty cycle;
-#X obj 133 243 +~;
-#X obj 266 126 fmod 1;
-#X obj 132 273 onecomp~;
-#X obj 133 301 outlet~;
-#X text 115 332 pulse outlet;
-#X obj 266 104 * -1;
-#X obj 232 301 outlet~;
-#X text 228 331 complement;
-#X connect 0 0 4 0;
-#X connect 0 0 3 0;
-#X connect 1 0 2 0;
-#X connect 2 0 8 0;
-#X connect 2 0 3 1;
-#X connect 3 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 12 0;
-#X connect 6 0 0 1;
-#X connect 7 0 6 0;
-#X connect 8 0 4 1;
-#X connect 9 0 17 0;
-#X connect 12 0 14 0;
-#X connect 12 0 18 0;
-#X connect 13 0 8 1;
-#X connect 13 0 12 1;
-#X connect 14 0 15 0;
-#X connect 17 0 13 0;
diff --git a/externals/creb-old/abs/rms~.pd b/externals/creb-old/abs/rms~.pd
deleted file mode 100644
index a75534019d7678957342afd4a5199a3f7c3655ac..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/rms~.pd
+++ /dev/null
@@ -1,8 +0,0 @@
-#N canvas 190 209 347 206 10;
-#X obj 113 45 inlet~;
-#X obj 114 72 env~;
-#X obj 115 98 dbtorms;
-#X obj 113 134 outlet;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
diff --git a/externals/creb-old/abs/scale7.pd b/externals/creb-old/abs/scale7.pd
deleted file mode 100644
index b4f0935474233e8bf58b165c1ccc2b3ef103c0f7..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/scale7.pd
+++ /dev/null
@@ -1,40 +0,0 @@
-#N canvas 647 521 450 373 10;
-#X obj 152 175 select 0 1 2 3 4 5 6;
-#X obj 224 115 unpack 0 0 0 0 0 0 0;
-#X obj 225 59 inlet;
-#X obj 57 51 inlet;
-#X obj 154 97 mod 7;
-#X text 219 37 scale input;
-#X text 48 29 note input;
-#X obj 224 287 outlet;
-#X obj 153 220 f;
-#X obj 185 221 f;
-#X obj 217 221 f;
-#X obj 248 220 f;
-#X obj 280 218 f;
-#X obj 311 214 f;
-#X obj 343 212 f;
-#X connect 0 0 8 0;
-#X connect 0 1 9 0;
-#X connect 0 2 10 0;
-#X connect 0 3 11 0;
-#X connect 0 4 12 0;
-#X connect 0 5 13 0;
-#X connect 0 6 14 0;
-#X connect 1 0 8 1;
-#X connect 1 1 9 1;
-#X connect 1 2 10 1;
-#X connect 1 3 11 1;
-#X connect 1 4 12 1;
-#X connect 1 5 13 1;
-#X connect 1 6 14 1;
-#X connect 2 0 1 0;
-#X connect 3 0 4 0;
-#X connect 4 0 0 0;
-#X connect 8 0 7 0;
-#X connect 9 0 7 0;
-#X connect 10 0 7 0;
-#X connect 11 0 7 0;
-#X connect 12 0 7 0;
-#X connect 13 0 7 0;
-#X connect 14 0 7 0;
diff --git a/externals/creb-old/abs/sin~.pd b/externals/creb-old/abs/sin~.pd
deleted file mode 100644
index c9b09ba155b9fb0778d4842a5276a525afdbfb8d..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/sin~.pd
+++ /dev/null
@@ -1,8 +0,0 @@
-#N canvas 843 64 157 187 10;
-#X obj 29 28 inlet~;
-#X obj 29 59 -~ 0.25;
-#X obj 29 90 cos~;
-#X obj 29 117 outlet~;
-#X connect 0 0 1 0;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
diff --git a/externals/creb-old/abs/step_16.pd b/externals/creb-old/abs/step_16.pd
deleted file mode 100644
index 317bf6a9f34c8fb5bac5d6a64dd9092459305d94..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/step_16.pd
+++ /dev/null
@@ -1,53 +0,0 @@
-#N canvas 347 311 817 158 10;
-#X obj 42 62 inlet;
-#X obj 84 62 inlet;
-#X obj 125 62 inlet;
-#X obj 166 62 inlet;
-#X obj 209 62 inlet;
-#X obj 251 62 inlet;
-#X obj 292 62 inlet;
-#X obj 333 62 inlet;
-#X obj 374 62 inlet;
-#X obj 416 62 inlet;
-#X obj 457 62 inlet;
-#X obj 498 62 inlet;
-#X obj 541 62 inlet;
-#X obj 583 62 inlet;
-#X obj 624 62 inlet;
-#X obj 665 62 inlet;
-#X text 51 14 16 part step sequencer array input;
-#X obj 185 41 + 4;
-#X obj 42 110 step_4 \$1;
-#X obj 209 110 step_4 \$1;
-#X obj 374 41 + 4;
-#X obj 374 110 step_4 \$1;
-#X obj 541 110 step_4 \$1;
-#X obj 540 40 + 4;
-#X obj 737 40 inlet;
-#X obj 100 40 f 0;
-#X obj 341 15 loadbang;
-#X connect 0 0 18 0;
-#X connect 1 0 18 1;
-#X connect 2 0 18 2;
-#X connect 3 0 18 3;
-#X connect 4 0 19 0;
-#X connect 5 0 19 1;
-#X connect 6 0 19 2;
-#X connect 7 0 19 3;
-#X connect 8 0 21 0;
-#X connect 9 0 21 1;
-#X connect 10 0 21 2;
-#X connect 11 0 21 3;
-#X connect 12 0 22 0;
-#X connect 13 0 22 1;
-#X connect 14 0 22 2;
-#X connect 15 0 22 3;
-#X connect 17 0 19 4;
-#X connect 17 0 20 0;
-#X connect 20 0 21 4;
-#X connect 20 0 23 0;
-#X connect 23 0 22 4;
-#X connect 24 0 25 0;
-#X connect 25 0 17 0;
-#X connect 25 0 18 4;
-#X connect 26 0 25 0;
diff --git a/externals/creb-old/abs/step_16r.pd b/externals/creb-old/abs/step_16r.pd
deleted file mode 100644
index aaa16a0052ff6d602d0e37d98d8308ea09ef436b..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/step_16r.pd
+++ /dev/null
@@ -1,50 +0,0 @@
-#N canvas 602 279 442 438 10;
-#X obj 135 64 inlet;
-#X text 43 21 4 part building block (read) for a step sequencer array
-input;
-#X obj 135 148 + 4;
-#X obj 135 173 step_4r \$1;
-#X obj 200 203 outlet;
-#X obj 178 229 outlet;
-#X obj 156 252 outlet;
-#X obj 135 278 outlet;
-#X obj 21 176 step_4r \$1;
-#X obj 86 206 outlet;
-#X obj 64 232 outlet;
-#X obj 42 255 outlet;
-#X obj 21 281 outlet;
-#X obj 363 166 step_4r \$1;
-#X obj 428 196 outlet;
-#X obj 406 222 outlet;
-#X obj 384 245 outlet;
-#X obj 363 271 outlet;
-#X obj 249 169 step_4r \$1;
-#X obj 314 199 outlet;
-#X obj 292 225 outlet;
-#X obj 270 248 outlet;
-#X obj 249 274 outlet;
-#X obj 249 144 + 8;
-#X obj 363 141 + 12;
-#X connect 0 0 2 0;
-#X connect 0 0 8 0;
-#X connect 0 0 23 0;
-#X connect 0 0 24 0;
-#X connect 2 0 3 0;
-#X connect 3 0 7 0;
-#X connect 3 1 6 0;
-#X connect 3 2 5 0;
-#X connect 3 3 4 0;
-#X connect 8 0 12 0;
-#X connect 8 1 11 0;
-#X connect 8 2 10 0;
-#X connect 8 3 9 0;
-#X connect 13 0 17 0;
-#X connect 13 1 16 0;
-#X connect 13 2 15 0;
-#X connect 13 3 14 0;
-#X connect 18 0 22 0;
-#X connect 18 1 21 0;
-#X connect 18 2 20 0;
-#X connect 18 3 19 0;
-#X connect 23 0 18 0;
-#X connect 24 0 13 0;
diff --git a/externals/creb-old/abs/step_4.pd b/externals/creb-old/abs/step_4.pd
deleted file mode 100644
index 226173fee22822d1d90fdb3d8f9404de4e7c9c95..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/step_4.pd
+++ /dev/null
@@ -1,36 +0,0 @@
-#N canvas 241 612 442 251 10;
-#X obj 59 51 inlet;
-#X obj 90 186 tabwrite \$1;
-#X obj 59 79 t f b;
-#X msg 89 104 0;
-#X obj 102 51 inlet;
-#X obj 102 79 t f b;
-#X obj 145 51 inlet;
-#X obj 145 79 t f b;
-#X obj 188 51 inlet;
-#X obj 188 79 t f b;
-#X msg 132 104 1;
-#X msg 175 104 2;
-#X msg 218 104 3;
-#X text 43 21 4 part building block for a step sequencer array input
-;
-#X obj 293 50 inlet;
-#X obj 162 157 +;
-#X connect 0 0 2 0;
-#X connect 2 0 1 0;
-#X connect 2 1 3 0;
-#X connect 3 0 15 0;
-#X connect 4 0 5 0;
-#X connect 5 0 1 0;
-#X connect 5 1 10 0;
-#X connect 6 0 7 0;
-#X connect 7 0 1 0;
-#X connect 7 1 11 0;
-#X connect 8 0 9 0;
-#X connect 9 0 1 0;
-#X connect 9 1 12 0;
-#X connect 10 0 15 0;
-#X connect 11 0 15 0;
-#X connect 12 0 15 0;
-#X connect 14 0 15 1;
-#X connect 15 0 1 1;
diff --git a/externals/creb-old/abs/step_4r.pd b/externals/creb-old/abs/step_4r.pd
deleted file mode 100644
index 6b5849b78ccc8c4253a9b22bb9a2e86af1d913bd..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/step_4r.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 241 612 442 251 10;
-#X obj 59 173 tabread \$1;
-#X obj 59 199 outlet;
-#X obj 135 64 inlet;
-#X obj 135 173 tabread \$1;
-#X obj 135 199 outlet;
-#X obj 210 173 tabread \$1;
-#X obj 210 199 outlet;
-#X obj 288 173 tabread \$1;
-#X obj 288 199 outlet;
-#X obj 135 148 + 1;
-#X obj 210 148 + 2;
-#X obj 288 148 + 3;
-#X text 43 21 4 part building block (read) for a step sequencer array
-input;
-#X connect 0 0 1 0;
-#X connect 2 0 0 0;
-#X connect 2 0 9 0;
-#X connect 2 0 10 0;
-#X connect 2 0 11 0;
-#X connect 3 0 4 0;
-#X connect 5 0 6 0;
-#X connect 7 0 8 0;
-#X connect 9 0 3 0;
-#X connect 10 0 5 0;
-#X connect 11 0 7 0;
diff --git a/externals/creb-old/abs/tblock.pd b/externals/creb-old/abs/tblock.pd
deleted file mode 100644
index 1682b4950d726b88ef2a5fff0e27ac78694d5e4e..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/tblock.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 506 229 617 246 10;
-#X obj 36 36 inlet;
-#X obj 101 35 inlet;
-#X obj 42 196 outlet;
-#X obj 144 99 samplerate~;
-#X obj 59 158 +;
-#X text 222 78 right inlet is also "active";
-#X text 222 133 for spectral domain processing;
-#X text 222 34 tblock: compute block relative time delays;
-#X text 223 48 out = left + right * (blocksize / sys_samplerate);
-#X obj 104 115 /;
-#X obj 101 92 * \$1;
-#X obj 103 59 t b f b;
-#X text 223 118 main usage is to compute block synchronous time delays
-;
-#X obj 95 141 * 1000;
-#X connect 0 0 4 0;
-#X connect 1 0 11 0;
-#X connect 3 0 9 1;
-#X connect 4 0 2 0;
-#X connect 9 0 13 0;
-#X connect 10 0 9 0;
-#X connect 11 0 4 0;
-#X connect 11 1 10 0;
-#X connect 11 2 3 0;
-#X connect 13 0 4 1;
diff --git a/externals/creb-old/abs/ti_hihat.pd b/externals/creb-old/abs/ti_hihat.pd
deleted file mode 100644
index 9cd560a7ff306aeaa233149683fbdf70012a60fd..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/ti_hihat.pd
+++ /dev/null
@@ -1,164 +0,0 @@
-#N canvas 172 85 810 555 10;
-#X obj -27 21 inlet;
-#X obj 91 224 ead~;
-#X obj 90 272 *~;
-#N canvas 413 387 659 494 hihat 0;
-#X obj 27 324 square~;
-#X obj 87 324 square~;
-#X obj 60 360 *~;
-#X obj 156 326 square~;
-#X obj 216 326 square~;
-#X obj 189 362 *~;
-#X obj 289 329 square~;
-#X obj 349 329 square~;
-#X obj 322 365 *~;
-#X obj 418 331 square~;
-#X obj 478 331 square~;
-#X obj 451 367 *~;
-#X obj 320 396 +~;
-#X obj 165 408 +~;
-#X obj 217 444 outlet~;
-#X obj 212 181 f;
-#X obj 251 183 + 1;
-#X obj 211 155 until;
-#X msg 210 131 8;
-#X msg 242 130 0;
-#X obj 210 108 t b b;
-#X obj 210 79 t b f;
-#X obj 277 212 random 20000;
-#X msg 309 128 seed \$1;
-#X obj 211 211 t f b;
-#X obj 212 256 pack 0 0;
-#X obj 212 278 route 0 1 2 3 4 5 6 7;
-#X obj 210 34 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 600.246 256;
-#X floatatom 28 304 5 0 0 0 - - -;
-#X floatatom 93 305 5 0 0 0 - - -;
-#X floatatom 161 305 5 0 0 0 - - -;
-#X floatatom 219 307 5 0 0 0 - - -;
-#X floatatom 292 307 5 0 0 0 - - -;
-#X floatatom 353 305 5 0 0 0 - - -;
-#X floatatom 421 307 5 0 0 0 - - -;
-#X floatatom 481 311 5 0 0 0 - - -;
-#X obj 279 237 + 0;
-#X text 193 16 magic number;
-#X obj 355 37 nbx 5 14 20 20000 1 1 empty empty empty 0 -6 0 10 -262144
--1 -1 10752.2 256;
-#X text 344 18 freq range;
-#X obj 464 37 nbx 5 14 20 20000 1 1 empty empty empty 0 -6 0 10 -262144
--1 -1 95.6572 256;
-#X text 433 16 bottom freq;
-#X obj 143 31 inlet;
-#X obj 307 38 inlet;
-#X obj 424 36 inlet;
-#X obj 143 62 * 1000;
-#X obj 210 55 f 0;
-#X obj 456 79 t b f;
-#X obj 354 59 t b f;
-#X connect 0 0 2 0;
-#X connect 1 0 2 1;
-#X connect 2 0 13 0;
-#X connect 3 0 5 0;
-#X connect 4 0 5 1;
-#X connect 5 0 13 1;
-#X connect 6 0 8 0;
-#X connect 7 0 8 1;
-#X connect 8 0 12 0;
-#X connect 9 0 11 0;
-#X connect 10 0 11 1;
-#X connect 11 0 12 1;
-#X connect 12 0 14 0;
-#X connect 13 0 14 0;
-#X connect 15 0 16 0;
-#X connect 15 0 24 0;
-#X connect 16 0 15 1;
-#X connect 17 0 15 0;
-#X connect 18 0 17 0;
-#X connect 19 0 15 1;
-#X connect 20 0 18 0;
-#X connect 20 1 19 0;
-#X connect 21 0 20 0;
-#X connect 21 1 23 0;
-#X connect 22 0 36 0;
-#X connect 23 0 22 0;
-#X connect 24 0 25 0;
-#X connect 24 1 22 0;
-#X connect 25 0 26 0;
-#X connect 26 0 28 0;
-#X connect 26 1 29 0;
-#X connect 26 2 30 0;
-#X connect 26 3 31 0;
-#X connect 26 4 32 0;
-#X connect 26 5 33 0;
-#X connect 26 6 34 0;
-#X connect 26 7 35 0;
-#X connect 27 0 46 0;
-#X connect 28 0 0 0;
-#X connect 29 0 1 0;
-#X connect 30 0 3 0;
-#X connect 31 0 4 0;
-#X connect 32 0 6 0;
-#X connect 33 0 7 0;
-#X connect 34 0 9 0;
-#X connect 35 0 10 0;
-#X connect 36 0 25 1;
-#X connect 38 0 48 0;
-#X connect 40 0 36 1;
-#X connect 40 0 47 0;
-#X connect 42 0 45 0;
-#X connect 43 0 38 0;
-#X connect 44 0 40 0;
-#X connect 45 0 27 0;
-#X connect 46 0 21 0;
-#X connect 47 0 46 0;
-#X connect 47 1 36 1;
-#X connect 48 0 46 0;
-#X connect 48 1 22 1;
-#X restore 105 248 pd hihat;
-#X obj 130 294 nbx 5 14 20 20000 1 1 empty empty HP -20 7 0 10 -24198
--1 -1 20 256;
-#X obj 89 313 bhip~ 1;
-#X obj 189 42 nbx 3 14 -1e+37 1e+37 0 1 empty empty A' -14 7 0 10 -225271
--1 -1 5 256;
-#X obj 76 174 +;
-#X obj 38 39 nbx 3 14 -1e+37 1e+37 0 1 empty empty A -10 7 0 10 -260818
--1 -1 5 256;
-#X obj 145 180 +;
-#X obj 101 39 nbx 3 14 -1e+37 1e+37 0 1 empty empty D -10 7 0 10 -260818
--1 -1 36 256;
-#X obj 76 141 *;
-#X obj 145 142 *;
-#X obj 89 339 outlet~;
-#X obj 258 41 nbx 3 14 -1e+37 1e+37 0 1 empty empty D' -14 7 0 10 -225271
--1 -1 36 256;
-#X obj -20 82 t b f;
-#X obj 101 17 inlet;
-#X obj 38 18 inlet;
-#X obj 257 19 inlet;
-#X obj 188 18 inlet;
-#X obj 327 21 inlet;
-#X obj 379 21 inlet;
-#X connect 0 0 15 0;
-#X connect 1 0 2 0;
-#X connect 2 0 5 0;
-#X connect 3 0 2 1;
-#X connect 4 0 5 1;
-#X connect 5 0 13 0;
-#X connect 6 0 11 1;
-#X connect 7 0 1 1;
-#X connect 8 0 7 1;
-#X connect 9 0 1 2;
-#X connect 10 0 9 1;
-#X connect 11 0 7 0;
-#X connect 12 0 9 0;
-#X connect 14 0 12 1;
-#X connect 15 0 1 0;
-#X connect 15 1 11 0;
-#X connect 15 1 12 0;
-#X connect 16 0 10 0;
-#X connect 17 0 8 0;
-#X connect 18 0 14 0;
-#X connect 19 0 6 0;
-#X connect 20 0 4 0;
-#X connect 21 0 3 0;
-#X coords 0 0 0.00245098 0.00260417 200 50 0;
diff --git a/externals/creb-old/abs/ti_snare.pd b/externals/creb-old/abs/ti_snare.pd
deleted file mode 100644
index 467a9b2fbfda2de3542fddc220ddf7b1ff386d9a..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/ti_snare.pd
+++ /dev/null
@@ -1,74 +0,0 @@
-#N canvas 448 117 288 79 10;
-#X obj 143 84 inlet;
-#X obj 243 84 inlet;
-#X obj 112 323 vol~;
-#X obj 222 52 nbx 3 14 -1e+37 1e+37 0 1 empty empty VOL -20 7 0 10
--262144 -1 -1 99.47 256;
-#X obj 140 30 nbx 5 14 20 20000 1 1 empty empty T1 -20 7 0 10 -24198
--1 -1 552.632 256;
-#X obj 74 30 nbx 3 14 -1e+37 1e+37 0 1 empty empty A' -14 7 0 10 -225271
--1 -1 0 256;
-#X obj 43 106 +;
-#X obj 12 29 nbx 3 14 -1e+37 1e+37 0 1 empty empty A -10 7 0 10 -260818
--1 -1 -1 256;
-#X obj 44 172 +;
-#X obj 13 50 nbx 3 14 -1e+37 1e+37 0 1 empty empty D -10 7 0 10 -260818
--1 -1 113 256;
-#X obj 43 83 *;
-#X obj 44 134 *;
-#X obj 101 347 outlet~;
-#X obj 80 4 tgl 15 1 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1;
-#X obj 178 153 spigot;
-#X obj 74 50 nbx 3 14 -1e+37 1e+37 0 1 empty empty D' -14 7 0 10 -225271
--1 -1 45 256;
-#X obj 140 51 nbx 5 14 20 20000 1 1 empty empty T2 -20 7 0 10 -24198
--1 -1 151.334 256;
-#X obj 222 30 nbx 5 14 20 20000 1 1 empty empty T3 -20 7 0 10 -24198
--1 -1 9652.14 256;
-#X text 9 2 ti_snare;
-#X obj 186 209 ead~;
-#X obj 236 247 osc~;
-#X obj 122 172 osc~;
-#X obj 109 286 *~;
-#X obj 242 178 noise~;
-#X obj 240 210 lop~;
-#X obj 151 209 *~;
-#X obj 82 250 *~;
-#X obj 103 207 *~;
-#X obj 154 109 t b b;
-#X obj 116 110 f 0;
-#X connect 0 0 28 0;
-#X connect 1 0 29 0;
-#X connect 2 0 12 0;
-#X connect 3 0 2 1;
-#X connect 4 0 21 0;
-#X connect 5 0 10 1;
-#X connect 6 0 19 1;
-#X connect 7 0 6 1;
-#X connect 8 0 19 2;
-#X connect 9 0 8 1;
-#X connect 10 0 6 0;
-#X connect 11 0 8 0;
-#X connect 13 0 14 1;
-#X connect 14 0 19 0;
-#X connect 15 0 11 1;
-#X connect 16 0 20 0;
-#X connect 17 0 24 1;
-#X connect 19 0 22 1;
-#X connect 19 0 25 1;
-#X connect 19 0 26 1;
-#X connect 20 0 22 0;
-#X connect 21 0 25 0;
-#X connect 21 0 27 0;
-#X connect 22 0 2 0;
-#X connect 23 0 24 0;
-#X connect 24 0 22 0;
-#X connect 24 0 27 1;
-#X connect 25 0 22 0;
-#X connect 26 0 22 1;
-#X connect 27 0 26 0;
-#X connect 28 0 14 0;
-#X connect 28 1 29 0;
-#X connect 29 0 10 0;
-#X connect 29 0 11 0;
-#X coords 0 0 1 1 270 50 1;
diff --git a/externals/creb-old/abs/ucmod~.pd b/externals/creb-old/abs/ucmod~.pd
deleted file mode 100644
index 9257300462b42278d1ec1ed450eb067567ba5a97..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/ucmod~.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 0 0 450 300 10;
-#X obj 74 72 inlet~;
-#X obj 121 72 inlet~;
-#X obj 150 147 *~ -1;
-#X obj 87 114 *~;
-#X obj 124 114 *~;
-#X obj 179 71 inlet~;
-#X obj 86 146 +~ 1;
-#X obj 88 236 cmul~;
-#X obj 135 193 cinv~;
-#X obj 87 266 outlet~;
-#X obj 144 267 outlet~;
-#X text 84 18 unit circle modulator. (1+r conj(z)/(1+rz);
-#X connect 0 0 3 0;
-#X connect 1 0 4 0;
-#X connect 2 0 8 1;
-#X connect 3 0 6 0;
-#X connect 4 0 7 1;
-#X connect 4 0 2 0;
-#X connect 5 0 4 1;
-#X connect 5 0 3 1;
-#X connect 6 0 7 0;
-#X connect 6 0 8 0;
-#X connect 7 0 9 0;
-#X connect 7 1 10 0;
-#X connect 8 0 7 2;
-#X connect 8 1 7 3;
diff --git a/externals/creb-old/abs/ucnorm~.pd b/externals/creb-old/abs/ucnorm~.pd
deleted file mode 100644
index 6a524f710c472dafeb46c228b78281e92d2f68f0..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/ucnorm~.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 0 0 450 300 10;
-#X text 59 21 normalize complex number to unit magnitude;
-#X obj 117 70 inlet~;
-#X obj 131 99 *~;
-#X obj 187 70 inlet~;
-#X obj 203 99 *~;
-#X obj 226 157 +~ 1;
-#X obj 226 185 /~;
-#X obj 226 213 sqrt~;
-#X obj 116 242 *~;
-#X obj 116 264 outlet~;
-#X obj 186 242 *~;
-#X obj 186 264 outlet~;
-#X connect 1 0 2 0;
-#X connect 1 0 2 1;
-#X connect 1 0 8 0;
-#X connect 2 0 6 1;
-#X connect 3 0 4 0;
-#X connect 3 0 4 1;
-#X connect 3 0 10 0;
-#X connect 4 0 6 1;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 7 0 10 1;
-#X connect 7 0 8 1;
-#X connect 8 0 9 0;
-#X connect 10 0 11 0;
diff --git a/externals/creb-old/abs/vols~.pd b/externals/creb-old/abs/vols~.pd
deleted file mode 100644
index aa87a8d1fd80354f8a732e5bd1375a2d1e172ef2..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/vols~.pd
+++ /dev/null
@@ -1,24 +0,0 @@
-#N canvas 441 433 450 300 10;
-#X obj 68 21 inlet~;
-#X obj 122 22 inlet;
-#X obj 80 104 *~;
-#X obj 77 141 outlet~;
-#X obj 116 42 dbtorms;
-#X obj 114 92 line~;
-#X msg 112 66 \$1 5;
-#X obj 215 34 loadbang;
-#X obj 218 66 f \$1;
-#X obj 6 22 inlet~;
-#X obj 18 105 *~;
-#X obj 15 142 outlet~;
-#X connect 0 0 2 0;
-#X connect 1 0 4 0;
-#X connect 2 0 3 0;
-#X connect 4 0 6 0;
-#X connect 5 0 2 1;
-#X connect 5 0 10 1;
-#X connect 6 0 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
diff --git a/externals/creb-old/abs/vol~.pd b/externals/creb-old/abs/vol~.pd
deleted file mode 100644
index 2fcc9956c91e20e75c1442d836b133f48bfd0a8c..0000000000000000000000000000000000000000
--- a/externals/creb-old/abs/vol~.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 441 433 450 300 10;
-#X obj 68 21 inlet~;
-#X obj 122 22 inlet;
-#X obj 80 104 *~;
-#X obj 77 141 outlet~;
-#X obj 116 42 dbtorms;
-#X obj 114 92 line~;
-#X msg 112 66 \$1 5;
-#X obj 215 34 loadbang;
-#X obj 218 66 f \$1;
-#X connect 0 0 2 0;
-#X connect 1 0 4 0;
-#X connect 2 0 3 0;
-#X connect 4 0 6 0;
-#X connect 5 0 2 1;
-#X connect 6 0 5 0;
-#X connect 7 0 8 0;
-#X connect 8 0 4 0;
diff --git a/externals/creb-old/bootstrap b/externals/creb-old/bootstrap
deleted file mode 100644
index ebee4b9acfd1b183a0cdf0a2257c660f3bc8f81c..0000000000000000000000000000000000000000
--- a/externals/creb-old/bootstrap
+++ /dev/null
@@ -1,3 +0,0 @@
-#!/bin/bash
-autoconf
-chmod +x bin/*
diff --git a/externals/creb-old/configure.ac b/externals/creb-old/configure.ac
deleted file mode 100644
index c3b788d1ef4f93554ed4b6810572c19e2f1daa0f..0000000000000000000000000000000000000000
--- a/externals/creb-old/configure.ac
+++ /dev/null
@@ -1,42 +0,0 @@
-AC_INIT(modules/setup.c)
-AC_PROG_CC
-AC_HEADER_STDC
-
-
-echo -n "checking architecture... "
-ARCH=`uname -s`
-if test $ARCH == Linux;
-then
-	PD_INCLUDE_DIR=$prefix/pd/src
-	LIBNAME=creb.pd_linux
-	LIBFLAGS="-export_dynamic -shared"
-	echo "Linux"
-
-elif test $ARCH == Darwin;
-then
-	PD_INCLUDE_DIR=$prefix/pd/src
-	LIBNAME=creb.pd_darwin
-	LIBFLAGS="-bundle -bundle_loader $prefix/pd/bin/pd"
-	echo "Darwin"
-
-else
-	echo WARNING: Architecture `uname -s` not supported.
-	exit;
-fi
-
-
-CPPFLAGS="$CPPFLAGS -I$prefix/pd/src"
-
-AC_CHECK_HEADER(m_pd.h,,
-	echo "WARNING: m_pd.h not found in the standard include path."
-	echo "         If PD_DIR in Makefile.config.in is set correctly you can ignore this warning." )
-
-AC_CHECK_LIB(m,sin,,
-	echo "Math library not found. sorry..." || exit)
-
-
-AC_SUBST(PD_INCLUDE_DIR)
-AC_SUBST(LIBNAME)
-AC_SUBST(LIBFLAGS)
-AC_CONFIG_FILES(Makefile.config)
-AC_OUTPUT
diff --git a/externals/creb-old/doc/64k-help.pd b/externals/creb-old/doc/64k-help.pd
deleted file mode 100644
index f9a27bdd229eb3faf4a9d4c7e549c4d834334e6b..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/64k-help.pd
+++ /dev/null
@@ -1,21 +0,0 @@
-#N canvas 0 0 450 300 10;
-#X text 102 32 a beat shuffler using raw 64k/break sample banks;
-#N canvas 331 92 494 506 META 0;
-#X text 12 265 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 85 INLET_1 float;
-#X text 12 45 DESCRIPTION an overlap add tabread~ clone;
-#X text 12 65 INLET_0 float;
-#X text 12 105 INLET_2 float;
-#X text 12 125 INLET_3 bang;
-#X text 12 145 INLET_4 float;
-#X text 12 165 INLET_5 float;
-#X text 12 185 OUTLET_0 signal;
-#X text 12 205 OUTLET_1 float;
-#X text 12 225 OUTLET_2 float;
-#X text 12 5 KEYWORDS signal abstraction array needs_work (example
-patch);
-#X text 12 245 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 398 277 pd META;
-#X obj 33 32 64k ------;
diff --git a/externals/creb-old/doc/bdft-help.pd b/externals/creb-old/doc/bdft-help.pd
deleted file mode 100644
index 21f201491124d99e5349a7406af5b6cc59982095..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/bdft-help.pd
+++ /dev/null
@@ -1,13 +0,0 @@
-#N canvas 0 0 450 300 10;
-#N canvas 145 112 494 314 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS Added by Jonathan Wilkes.;
-#X text 12 5 KEYWORDS control abstraction;
-#X text 12 45 DESCRIPTION set decay time for [bdiag~];
-#X text 12 65 INLET_0 float;
-#X text 12 85 INLET_1 float;
-#X text 12 105 OUTLET_0 anything;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 398 279 pd META;
-#X text 114 58 set decay time (ms/sec) for [bdiag~];
-#X obj 71 58 bdft;
diff --git a/externals/creb-old/doc/bdfts-help.pd b/externals/creb-old/doc/bdfts-help.pd
deleted file mode 100644
index cced97f1bbd018858816cbbf66e7bc836a7faea2..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/bdfts-help.pd
+++ /dev/null
@@ -1,14 +0,0 @@
-#N canvas 0 0 450 300 10;
-#N canvas 145 112 494 314 META 0;
-#X text 12 165 HELP_PATCH_AUTHORS Added by Jonathan Wilkes.;
-#X text 12 125 LIBRARY external creb;
-#X text 12 5 KEYWORDS control abstraction;
-#X text 12 65 INLET_0 float;
-#X text 12 85 INLET_1 float;
-#X text 12 105 OUTLET_0 anything;
-#X text 12 45 DESCRIPTION set osc frequency for [bdiag~];
-#X text 12 145 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 398 279 pd META;
-#X text 114 58 set osc frequency for [bdiag~];
-#X obj 71 58 bdfts;
diff --git a/externals/creb-old/doc/bdiag~-help.pd b/externals/creb-old/doc/bdiag~-help.pd
deleted file mode 100644
index 8ace8049fa2b8ad29086b8779aef3401759a8096..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/bdiag~-help.pd
+++ /dev/null
@@ -1,108 +0,0 @@
-#N canvas 0 26 650 407 10;
-#X obj 34 45 metro;
-#X msg 34 20 bang;
-#X floatatom 76 20 5 0 0 0 - - -;
-#X obj 34 327 dist~ 1;
-#X obj 24 359 dac~;
-#N canvas 11 6 262 403 systemparams 0;
-#X floatatom 81 47 5 0 0 0 - - -;
-#X floatatom 125 47 5 0 0 0 - - -;
-#X floatatom 81 74 5 0 0 0 - - -;
-#X floatatom 125 74 5 0 0 0 - - -;
-#X floatatom 81 102 5 0 0 0 - - -;
-#X floatatom 125 102 5 0 0 0 - - -;
-#X floatatom 81 129 5 0 0 0 - - -;
-#X floatatom 125 129 5 0 0 0 - - -;
-#X floatatom 81 157 5 0 0 0 - - -;
-#X floatatom 125 157 5 0 0 0 - - -;
-#X floatatom 81 184 5 0 0 0 - - -;
-#X floatatom 125 184 5 0 0 0 - - -;
-#X floatatom 81 212 5 0 0 0 - - -;
-#X floatatom 125 212 5 0 0 0 - - -;
-#X floatatom 81 239 5 0 0 0 - - -;
-#X floatatom 125 239 5 0 0 0 - - -;
-#X obj 28 65 bdft 1;
-#X obj 27 93 bdft 2;
-#X obj 28 120 bdft 3;
-#X obj 28 175 bdft 7;
-#X obj 28 202 bdft 11;
-#X obj 28 230 bdft 17;
-#X obj 28 257 bdft 30;
-#X obj 28 319 outlet;
-#X text 20 23 frequency detune and damping;
-#X text 49 283 bdft argument = harmonic;
-#X obj 28 147 bdft 5;
-#X connect 0 0 16 0;
-#X connect 1 0 16 1;
-#X connect 2 0 17 0;
-#X connect 3 0 17 1;
-#X connect 4 0 18 0;
-#X connect 5 0 18 1;
-#X connect 6 0 26 0;
-#X connect 7 0 26 1;
-#X connect 8 0 19 0;
-#X connect 9 0 19 1;
-#X connect 10 0 20 0;
-#X connect 11 0 20 1;
-#X connect 12 0 21 0;
-#X connect 13 0 21 1;
-#X connect 14 0 22 0;
-#X connect 15 0 22 1;
-#X connect 16 0 23 0;
-#X connect 17 0 23 0;
-#X connect 18 0 23 0;
-#X connect 19 0 23 0;
-#X connect 20 0 23 0;
-#X connect 21 0 23 0;
-#X connect 22 0 23 0;
-#X connect 26 0 23 0;
-#X restore 89 76 pd systemparams;
-#X obj 34 93 bdiag~;
-#X obj 34 232 dynwav~;
-#X obj 34 283 vol~;
-#X floatatom 57 257 5 0 0 0 - - -;
-#X floatatom 78 168 5 0 0 0 - - -;
-#X obj 78 196 phasor~;
-#X text 258 168 the [eig <index> <real> <imag>] message sets the eigenvalue
-for the corresponding block. there are n/2 blocks \, with n the dsp
-blocksize.;
-#X text 259 223 you can use [timefreq <index> <60dB time> <frequency>]
-for a more appropriate initialization of the eigenvalues using decay
-time in milliseconds and oscillation frequency in Hz.;
-#X text 256 18 bdiag~: parallel block diagonal state space model (parallel
-2d rotations) see bdiag.c for more info. the state equations for one
-block are:;
-#X text 300 70 state1 = real * state1 - imag * state2 + input1;
-#X text 300 85 state2 = real * state2 + imag * state1 + input2;
-#X text 258 121 this module is intended to "filter" spectral data produced
-by bfft or other short time spectral transforms like dwt.;
-#X text 256 279 [bang] or [random] set the state vector to a random
-value. [reset] sets it to 0;
-#X text 256 327 this patch uses of bdiag~ \, ibfft~ and dynwav~ to
-build a 32 voice harmonic modal synth \, with the state excited with
-white noise on bang.;
-#N canvas 379 254 494 344 META 0;
-#X text 12 135 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION parallel block diagonal state space model
-(parallel 2d rotations);
-#X text 12 75 INLET_0 bang signal random reset timefreq eig;
-#X text 12 95 OUTLET_0 signal;
-#X text 11 5 KEYWORDS signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 115 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 600 386 pd META;
-#X obj 34 129 ibfft~;
-#X connect 0 0 6 0;
-#X connect 1 0 0 0;
-#X connect 2 0 0 1;
-#X connect 3 0 4 0;
-#X connect 3 0 4 1;
-#X connect 5 0 6 0;
-#X connect 6 0 21 0;
-#X connect 7 0 8 0;
-#X connect 8 0 3 0;
-#X connect 9 0 8 1;
-#X connect 10 0 11 0;
-#X connect 11 0 7 1;
-#X connect 21 0 7 0;
diff --git a/externals/creb-old/doc/bfft~-help.pd b/externals/creb-old/doc/bfft~-help.pd
deleted file mode 100644
index 7d46ef27c8b296b08e812a6173541e6c8d2ed3d1..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/bfft~-help.pd
+++ /dev/null
@@ -1,29 +0,0 @@
-#N canvas 0 26 480 309 10;
-#X obj 17 62 osc~ 500;
-#X floatatom 17 -11 5 0 0 0 - - -;
-#X obj 17 23 * 187.5;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array \$0-scope 64 float 0;
-#X coords 0 1 63 -1 200 140 1 0 0;
-#X restore 233 16 graph;
-#X obj 18 113 bfft~;
-#X obj 71 112 ibfft~;
-#X text 13 -74 like fft~ but normalized and;
-#N canvas 379 254 494 344 META 0;
-#X text 12 135 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal block_oriented;
-#X text 12 45 DESCRIPTION like fft~ but normalized and spectrum: (DC
-\, NY) \, (R1 \, I1) \, ...(RN-1 \, IN-1);
-#X text 12 75 INLET_0 signal;
-#X text 12 95 OUTLET_0 signal;
-#X text 12 115 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 428 216 pd META;
-#X text 12 -60 spectrum: (DC \, NY) \, (R1 \, I1) \, ...(RN-1 \, IN-1)
-;
-#X obj 17 180 tabsend~ \$0-scope;
-#X connect 0 0 4 0;
-#X connect 1 0 2 0;
-#X connect 2 0 0 0;
-#X connect 4 0 9 0;
diff --git a/externals/creb-old/doc/bhip~-help.pd b/externals/creb-old/doc/bhip~-help.pd
deleted file mode 100644
index 25830f00b6b7b12eb9cc40e45fb5b6f5de6dcc00..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/bhip~-help.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 0 0 450 300 10;
-#X obj 130 55 bhip~;
-#X text 175 53 butterworth high pass filter;
-#N canvas 331 92 494 327 META 0;
-#X text 12 175 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 135 LIBRARY external creb;
-#X text 12 95 INLET_1 float;
-#X text 12 115 OUTLET_0 signal;
-#X text 12 5 KEYWORDS signal abstraction filter needs_work (example
-patch);
-#X text 12 55 DESCRIPTION butterworth high pass filter;
-#X text 12 75 INLET_0 signal;
-#X text 12 155 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 35 LICENSE GPL v2;
-#X restore 398 277 pd META;
diff --git a/externals/creb-old/doc/biquadseries~-help.pd b/externals/creb-old/doc/biquadseries~-help.pd
deleted file mode 100644
index 8b025fc0dd3a2f7426ae52126e74be7f737b4a8c..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/biquadseries~-help.pd
+++ /dev/null
@@ -1,33 +0,0 @@
-#N canvas 0 26 533 299 10;
-#X obj 37 246 dac~;
-#X msg 81 132 butterLP \$1;
-#X msg 173 131 butterHP \$1;
-#X floatatom 81 105 5 0 0 0 - - -;
-#X floatatom 173 104 5 0 0 0 - - -;
-#X obj 48 78 *~;
-#X floatatom 82 55 5 0 0 0 - - -;
-#X obj 48 35 noise~;
-#X text 269 132 butterworth lowpass and highpass;
-#X text 181 178 creation argument: number of 2nd order sections;
-#X obj 48 178 biquadseries~ 4;
-#X text 173 22 biquadseries~ second order iir series section;
-#N canvas 379 254 494 344 META 0;
-#X text 12 125 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal block_oriented filter;
-#X text 12 45 DESCRIPTION biquadseries~ 2nd order iir series section
-;
-#X text 12 65 INLET_0 signal butterLP butterHP;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 482 277 pd META;
-#X connect 1 0 10 0;
-#X connect 2 0 10 0;
-#X connect 3 0 1 0;
-#X connect 4 0 2 0;
-#X connect 5 0 10 0;
-#X connect 6 0 5 1;
-#X connect 7 0 5 0;
-#X connect 10 0 0 0;
-#X connect 10 0 0 1;
diff --git a/externals/creb-old/doc/bitsplit~-help.pd b/externals/creb-old/doc/bitsplit~-help.pd
deleted file mode 100644
index dbb9f960e1d076def5e92024980e916578d0e40c..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/bitsplit~-help.pd
+++ /dev/null
@@ -1,60 +0,0 @@
-#N canvas 0 26 536 243 10;
-#X obj 111 51 osc~;
-#X floatatom 111 29 5 0 0 0 - - -;
-#X obj 112 93 bitsplit~ 4;
-#X obj 81 177 dac~;
-#X obj 81 153 vol~;
-#X floatatom 110 136 5 0 0 0 - - -;
-#X obj 183 178 dac~;
-#X obj 183 154 vol~;
-#X floatatom 212 137 5 0 0 0 - - -;
-#X floatatom 178 50 5 0 0 0 - - -;
-#X obj 112 72 *~ 1;
-#X text 267 25 split a signal into a parallel binary word.;
-#X text 267 43 MSB = left \, LSB = right.;
-#X obj 339 127 *~;
-#X obj 367 127 / 2;
-#X obj 402 127 *~;
-#X obj 430 127 / 2;
-#N canvas 0 0 450 300 s 0;
-#X obj 152 123 *~;
-#X obj 152 89 inlet~;
-#X obj 206 90 inlet;
-#X obj 206 121 / 2;
-#X obj 152 150 outlet~;
-#X obj 206 151 outlet;
-#X connect 0 0 4 0;
-#X connect 1 0 0 0;
-#X connect 2 0 0 1;
-#X connect 2 0 3 0;
-#X connect 3 0 5 0;
-#X restore 383 178 pd s;
-#N canvas 379 254 494 400 META 0;
-#X text 12 205 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 165 LIBRARY external creb;
-#X text 12 5 KEYWORDS signal;
-#X text 12 45 DESCRIPTION split a signal into a parallel binary word
-;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 105 OUTLET_1 signal;
-#X text 12 125 OUTLET_2 signal;
-#X text 12 145 OUTLET_3 signal;
-#X text 12 185 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 485 221 pd META;
-#X connect 0 0 10 0;
-#X connect 1 0 0 0;
-#X connect 2 0 4 0;
-#X connect 2 3 7 0;
-#X connect 4 0 3 0;
-#X connect 4 0 3 1;
-#X connect 5 0 4 1;
-#X connect 7 0 6 0;
-#X connect 7 0 6 1;
-#X connect 8 0 7 1;
-#X connect 9 0 10 1;
-#X connect 10 0 2 0;
-#X connect 14 0 15 1;
-#X connect 14 0 16 0;
diff --git a/externals/creb-old/doc/blocknorm~-help.pd b/externals/creb-old/doc/blocknorm~-help.pd
deleted file mode 100644
index 0bde7c2cc69a1cc60926f54041226e97ddf769c4..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/blocknorm~-help.pd
+++ /dev/null
@@ -1,88 +0,0 @@
-#N canvas 3 0 565 484 10;
-#X text 62 14 blocknorm~: normalize a dsp block to RMS = 1;
-#X text 144 33 creation argument = nb channels;
-#X obj 96 349 lop~;
-#X obj 95 410 tabsend~ state;
-#X obj 95 384 blocknorm~ 1;
-#X obj 95 320 hip~;
-#X obj 134 298 hsl 128 15 100 10000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 3800 1;
-#X obj 93 131 tabreceive~ state;
-#X obj 138 222 fblock 64;
-#X obj 352 388 pdynwav~;
-#X obj 351 429 vol~;
-#X obj 350 458 dac~;
-#X floatatom 389 408 5 0 0 0 - - -;
-#X floatatom 406 365 5 0 0 0 - - -;
-#X obj 13 144 ead~ 0 20;
-#X obj 30 168 noise~;
-#X obj 14 191 *~;
-#X obj 13 121 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 237 134 1;
-#X floatatom 237 157 5 0 0 0 - - -;
-#X floatatom 138 202 5 0 0 0 - - -;
-#X text 11 64 example: a waveform folding oscillator: power is shifted
-up or down in frequency by contraction/dilatation \, and filtered \,
-but normalized to preserve total state energy.;
-#X obj 466 281 table state 64;
-#X obj 94 270 dynwav~;
-#X obj 138 245 phasor~;
-#X obj 310 181 bang~;
-#X msg 268 133 2;
-#X obj 310 205 f;
-#X floatatom 358 200 5 0 0 0 - - -;
-#X msg 357 179 0;
-#X msg 387 179 0.03;
-#X msg 425 179 0.17;
-#X obj 310 241 spigot;
-#X obj 348 223 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X text 403 201 phase offset;
-#X text 182 201 mod freq;
-#X text 366 222 phase sync;
-#X obj 134 326 hsl 128 15 100 10000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 8100 1;
-#X text 282 157 relative formant shift;
-#N canvas 379 254 494 344 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 105 LIBRARY external creb;
-#X text 12 5 KEYWORDS signal block_oriented;
-#X text 12 45 DESCRIPTION normalize a dsp block to RMS = 1;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 514 462 pd META;
-#X connect 2 0 4 0;
-#X connect 2 0 9 0;
-#X connect 4 0 3 0;
-#X connect 5 0 2 0;
-#X connect 6 0 5 1;
-#X connect 7 0 23 0;
-#X connect 8 0 24 0;
-#X connect 9 0 10 0;
-#X connect 10 0 11 0;
-#X connect 10 0 11 1;
-#X connect 12 0 10 1;
-#X connect 13 0 9 1;
-#X connect 14 0 16 0;
-#X connect 15 0 16 1;
-#X connect 16 0 5 0;
-#X connect 17 0 14 0;
-#X connect 18 0 19 0;
-#X connect 19 0 8 1;
-#X connect 20 0 8 0;
-#X connect 23 0 5 0;
-#X connect 24 0 23 1;
-#X connect 25 0 27 0;
-#X connect 26 0 19 0;
-#X connect 27 0 32 0;
-#X connect 28 0 27 1;
-#X connect 29 0 28 0;
-#X connect 30 0 28 0;
-#X connect 31 0 28 0;
-#X connect 32 0 24 1;
-#X connect 33 0 32 1;
-#X connect 37 0 2 1;
diff --git a/externals/creb-old/doc/blop~-help.pd b/externals/creb-old/doc/blop~-help.pd
deleted file mode 100644
index c9af4a5c1e1d19a2830613076c9deb027b7fa86d..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/blop~-help.pd
+++ /dev/null
@@ -1,15 +0,0 @@
-#N canvas 0 0 450 300 10;
-#N canvas 331 92 494 327 META 0;
-#X text 12 155 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 95 INLET_1 float;
-#X text 12 115 OUTLET_0 signal;
-#X text 12 5 KEYWORDS signal abstraction filter needs_work (example
-patch);
-#X text 12 75 INLET_0 signal;
-#X text 12 55 DESCRIPTION butterworth low pass filter;
-#X text 12 135 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 35 LICENSE GPL v2;
-#X restore 398 277 pd META;
-#X obj 130 55 blop~;
-#X text 175 53 butterworth low pass filter;
diff --git a/externals/creb-old/doc/blosc~-help.pd b/externals/creb-old/doc/blosc~-help.pd
deleted file mode 100644
index ec5e99d8597efc398043bffc6b9414b057d63a88..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/blosc~-help.pd
+++ /dev/null
@@ -1,123 +0,0 @@
-#N canvas 0 26 763 649 10;
-#X obj 80 243 dac~;
-#X obj 80 219 vol~;
-#X floatatom 103 195 5 0 0 0 - - -;
-#X obj 80 158 blosc~ pulse;
-#X floatatom 80 128 5 0 0 0 - - -;
-#X text 59 106 one-sided impulse;
-#X obj 255 243 dac~;
-#X obj 255 219 vol~;
-#X floatatom 278 195 5 0 0 0 - - -;
-#X floatatom 255 128 5 0 0 0 - - -;
-#X text 234 106 two-sided impulse;
-#X obj 255 158 blosc~ pulse2;
-#X obj 433 241 dac~;
-#X obj 433 217 vol~;
-#X floatatom 456 193 5 0 0 0 - - -;
-#X floatatom 433 126 5 0 0 0 - - -;
-#X text 442 105 sawtooth;
-#X obj 596 245 dac~;
-#X obj 596 221 vol~;
-#X floatatom 619 197 5 0 0 0 - - -;
-#X floatatom 596 130 5 0 0 0 - - -;
-#X text 571 106 hard synced sawtooth;
-#X text 53 18 blosc~ - some bandlimited oscillators based on minimal
-phase impulse and step functions. (inspired by Eli Brandt's paper "Hard
-Sync Without Aliasing".);
-#X obj 433 156 blosc~ saw;
-#X obj 596 160 blosc~ syncsaw;
-#X floatatom 642 130 5 0 0 0 - - -;
-#X obj 416 625 dac~;
-#X obj 416 590 vol~;
-#X floatatom 439 566 5 0 0 0 - - -;
-#X text 255 284 bandlimited comparator;
-#X obj 416 529 blosc~ comparator;
-#X obj 416 415 phasor~;
-#X obj 416 499 -~;
-#X floatatom 416 360 5 0 0 0 - - -;
-#X floatatom 416 335 5 0 0 0 - - -;
-#X obj 80 371 phasor~;
-#X floatatom 80 347 5 0 0 0 - - -;
-#X obj 80 428 blosc~ comparator;
-#X obj 80 518 dac~;
-#X obj 80 483 vol~;
-#X floatatom 103 459 5 0 0 0 - - -;
-#X obj 80 400 -~ 0.5;
-#X text 75 321 (square - pulse wave);
-#X floatatom 150 382 5 0 0 0 - - -;
-#X obj 153 364 hsl 50 15 0.01 0.99 0 0 empty empty empty -2 -6 0 8
--262144 -1 -1 0 1;
-#X msg 150 343 0.5;
-#X text 411 312 (pwm);
-#X obj 511 396 osc~;
-#X floatatom 511 363 5 0 0 0 - - -;
-#X obj 511 426 *~;
-#X floatatom 561 408 5 0 0 0 - - -;
-#X obj 564 386 hsl 50 15 0 0.99 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X text 626 386 depth;
-#X obj 514 342 hsl 50 15 0.1 10 1 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X text 578 342 mod freq;
-#X obj 416 440 *~ 2;
-#X obj 416 465 -~ 1;
-#N canvas 379 254 494 344 META 0;
-#X text 12 175 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION bandlimited oscillators based on minimal
-phase impulse and step functions.;
-#X text 12 5 KEYWORDS signal bandlimited;
-#X text 12 75 INLET_0 float signal;
-#X text 12 95 INLET_1 float signal;
-#X text 12 115 INLET_2 float;
-#X text 12 135 OUTLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 155 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 714 628 pd META;
-#X connect 1 0 0 0;
-#X connect 1 0 0 1;
-#X connect 2 0 1 1;
-#X connect 3 0 1 0;
-#X connect 4 0 3 0;
-#X connect 7 0 6 0;
-#X connect 7 0 6 1;
-#X connect 8 0 7 1;
-#X connect 9 0 11 0;
-#X connect 11 0 7 0;
-#X connect 13 0 12 0;
-#X connect 13 0 12 1;
-#X connect 14 0 13 1;
-#X connect 15 0 23 0;
-#X connect 18 0 17 0;
-#X connect 18 0 17 1;
-#X connect 19 0 18 1;
-#X connect 20 0 24 0;
-#X connect 23 0 13 0;
-#X connect 24 0 18 0;
-#X connect 25 0 24 1;
-#X connect 27 0 26 0;
-#X connect 27 0 26 1;
-#X connect 28 0 27 1;
-#X connect 30 0 27 0;
-#X connect 31 0 55 0;
-#X connect 32 0 30 0;
-#X connect 33 0 31 0;
-#X connect 34 0 33 0;
-#X connect 35 0 41 0;
-#X connect 36 0 35 0;
-#X connect 37 0 39 0;
-#X connect 39 0 38 0;
-#X connect 39 0 38 1;
-#X connect 40 0 39 1;
-#X connect 41 0 37 0;
-#X connect 43 0 41 1;
-#X connect 44 0 43 0;
-#X connect 45 0 44 0;
-#X connect 47 0 49 0;
-#X connect 48 0 47 0;
-#X connect 49 0 32 1;
-#X connect 50 0 49 1;
-#X connect 51 0 50 0;
-#X connect 53 0 48 0;
-#X connect 55 0 56 0;
-#X connect 56 0 32 0;
diff --git a/externals/creb-old/doc/bmatrix~-help.pd b/externals/creb-old/doc/bmatrix~-help.pd
deleted file mode 100644
index a6a20a1b6c2bd9867de68a6904da55f8421fbee5..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/bmatrix~-help.pd
+++ /dev/null
@@ -1,21 +0,0 @@
-#N canvas 0 26 418 231 10;
-#X msg 69 127 load matrix.bin;
-#X text 27 39 added for completeness. mainly intended for spectral
-transfos;
-#X text 26 73 the file format is binary floating point \, column encoded.
-;
-#X obj 46 174 bmatrix~;
-#X text 29 23 bmatrix multiplies a signal block with an arbitrary matrix
-;
-#N canvas 200 154 494 344 META 0;
-#X text 12 125 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal;
-#X text 12 45 DESCRIPTION multiply a signal block with an arbitrary
-matrix;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 65 INLET_0 signal load;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 369 209 pd META;
-#X connect 0 0 3 0;
diff --git a/externals/creb-old/doc/bpm-help.pd b/externals/creb-old/doc/bpm-help.pd
deleted file mode 100644
index d7cd7cc26ec73300a01b6217699e62e53cae5cc9..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/bpm-help.pd
+++ /dev/null
@@ -1,15 +0,0 @@
-#N canvas 0 0 450 300 10;
-#N canvas 331 92 494 398 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION convert bpm to metro time and phasor freq
-;
-#X text 12 65 INLET_0 float;
-#X text 12 85 OUTLET_0 float;
-#X text 12 105 OUTLET_1 float;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 5 KEYWORDS control conversion needs_work (example);
-#X restore 398 277 pd META;
-#X text 150 50 convert bpm to metro time and phasor freq;
-#X obj 105 52 bpm;
diff --git a/externals/creb-old/doc/bwin~-help.pd b/externals/creb-old/doc/bwin~-help.pd
deleted file mode 100644
index 6849bfa0930bcb973a2ed1b041c2c045622accea..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/bwin~-help.pd
+++ /dev/null
@@ -1,63 +0,0 @@
-#N canvas 0 26 450 300 10;
-#N canvas 5 5 639 472 windowing 0;
-#X obj 62 441 outlet~;
-#X obj 62 65 inlet~;
-#X obj 62 142 bfft~;
-#X obj 62 365 ibfft~;
-#X floatatom 85 173 5 0 0 0 - - -;
-#X obj 62 199 vol~;
-#X text 60 6 bwin~ multiplies a signal block with a window;
-#X text 211 310 after maximizing the spectrum is multiplied by a pink
-noise envelope;
-#X obj 62 250 dist~ 1;
-#X text 211 105 apply analysis window;
-#X text 211 172 set drive;
-#X text 212 251 soft clip spectral data;
-#X text 212 133 transform block to freq domain;
-#X text 210 360 transform block back to time domain;
-#X text 212 401 undo analysis window + apply synthesis window;
-#X text 212 39 this example is a poor man's spectral maximizer using
-bwin~ bfft~ bifft~ and dist~;
-#X obj 62 225 bwin~ bfft_blue;
-#X obj 62 327 bwin~ bfft_pink;
-#X obj 62 401 bwin~ hann/hamming;
-#X obj 62 106 bwin~ hamming;
-#X msg 344 207 type bfft_db/octave \$1;
-#X floatatom 517 172 5 0 0 0 - - -;
-#X msg 345 277 type bfft_db/octave \$1;
-#X floatatom 519 244 5 0 0 0 - - -;
-#X obj 554 437 block~ 1024 2;
-#X connect 1 0 19 0;
-#X connect 2 0 5 0;
-#X connect 3 0 18 0;
-#X connect 4 0 5 1;
-#X connect 5 0 16 0;
-#X connect 8 0 17 0;
-#X connect 16 0 8 0;
-#X connect 17 0 3 0;
-#X connect 18 0 0 0;
-#X connect 19 0 2 0;
-#X connect 20 0 16 0;
-#X connect 21 0 20 0;
-#X connect 22 0 17 0;
-#X connect 23 0 22 0;
-#X restore 53 88 pd windowing;
-#X obj 41 219 dac~;
-#X obj 53 150 vol~;
-#X floatatom 76 124 5 0 0 0 - - -;
-#X obj 53 41 adc~ 1;
-#N canvas 379 254 494 344 META 0;
-#X text 12 125 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal block_oriented;
-#X text 12 45 DESCRIPTION multiply a signal block with a window;
-#X text 12 65 INLET_0 signal type;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 400 279 pd META;
-#X connect 0 0 2 0;
-#X connect 2 0 1 0;
-#X connect 2 0 1 1;
-#X connect 3 0 2 1;
-#X connect 4 0 0 0;
diff --git a/externals/creb-old/doc/cadd~-help.pd b/externals/creb-old/doc/cadd~-help.pd
deleted file mode 100644
index 2012efdb7d6bdd278089d3c9750041723ed06dcf..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/cadd~-help.pd
+++ /dev/null
@@ -1,17 +0,0 @@
-#N canvas 0 0 450 300 10;
-#N canvas 331 92 494 398 META 0;
-#X text 12 205 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION complex addition;
-#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 165 OUTLET_1 signal;
-#X text 12 185 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 5 KEYWORDS signal needs_work (example);
-#X restore 398 277 pd META;
-#X obj 105 52 cadd~;
-#X text 150 50 complex addition;
diff --git a/externals/creb-old/doc/ccmap~-help.pd b/externals/creb-old/doc/ccmap~-help.pd
deleted file mode 100644
index d66f17ec05ff091c3c3e7b3ee2520f14effbc06e..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/ccmap~-help.pd
+++ /dev/null
@@ -1,19 +0,0 @@
-#N canvas 0 26 450 300 10;
-#X text 23 10 conformal self map of the unit disk (z-a)/(1-conj(a)z)
-;
-#N canvas 331 92 494 392 META 0;
-#X text 12 205 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 145 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION conformal self map of the unit disk;
-#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 165 OUTLET_1 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 185 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 398 277 pd META;
-#X obj 24 90 ccmap~;
diff --git a/externals/creb-old/doc/cconj~-help.pd b/externals/creb-old/doc/cconj~-help.pd
deleted file mode 100644
index 42921178406e5166803906f37f315a9172cf2eb8..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/cconj~-help.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 0 26 285 166 10;
-#X text 49 5 complex conjugate;
-#N canvas 331 92 494 353 META 0;
-#X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 105 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION complex conjugate;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 125 OUTLET_1 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 145 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 236 144 pd META;
-#X obj 49 55 cconj~;
diff --git a/externals/creb-old/doc/cep~-help.pd b/externals/creb-old/doc/cep~-help.pd
deleted file mode 100644
index 8f40c661961e34bca0831958769fdc2789adb46d..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/cep~-help.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 0 26 521 228 10;
-#X text 229 45 forward cepstrum;
-#X text 229 64 using normalized fft/ifft objects;
-#N canvas 21 119 494 354 META 0;
-#X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 105 OUTLET_0 signal;
-#X text 12 125 OUTLET_1 signal;
-#X text 12 145 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 45 DESCRIPTION complex cepstrum;
-#X text 12 5 KEYWORDS signal abstraction needs_work;
-#X restore 448 207 pd META;
-#X obj 72 111 cep~;
diff --git a/externals/creb-old/doc/cexp~-help.pd b/externals/creb-old/doc/cexp~-help.pd
deleted file mode 100644
index faaf2c0cf84c8937c3935667bcf7efa7603f332b..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/cexp~-help.pd
+++ /dev/null
@@ -1,21 +0,0 @@
-#N canvas 0 26 475 207 10;
-#X obj 85 82 clog~;
-#X obj 145 82 cexp~;
-#X text 235 81 complex log and exp.;
-#X text 237 105 see also;
-#X obj 309 104 cep~;
-#X text 351 103 and;
-#X obj 384 105 icep~;
-#N canvas 379 254 494 344 META 0;
-#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 85 INLET_0 signal;
-#X text 12 105 INLET_1 signal;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 145 OUTLET_1 signal;
-#X text 12 5 NAME clog~ cexp~;
-#X text 12 165 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 45 LICENSE GPL v2;
-#X text 12 25 KEYWORDS signal needs_work needs_work (example);
-#X text 12 65 DESCRIPTION complex log and exp;
-#X restore 424 185 pd META;
diff --git a/externals/creb-old/doc/cheby~-help.pd b/externals/creb-old/doc/cheby~-help.pd
deleted file mode 100644
index 86008920c334105dc7089456a17cda5c2960e8ef..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/cheby~-help.pd
+++ /dev/null
@@ -1,53 +0,0 @@
-#N canvas 1 0 494 348 10;
-#X obj 130 230 cheby~ 4;
-#X msg 147 149 coef 1 \$1;
-#X floatatom 147 93 5 0 0 0 - - -;
-#X obj 147 117 dbtorms;
-#X obj 124 313 dac~;
-#X obj 130 281 vol~;
-#X floatatom 156 261 5 0 0 0 - - -;
-#X obj 40 113 osc~;
-#X floatatom 40 88 5 0 0 0 - - -;
-#X floatatom 226 94 5 0 0 0 - - -;
-#X obj 226 118 dbtorms;
-#X floatatom 305 94 5 0 0 0 - - -;
-#X obj 305 118 dbtorms;
-#X floatatom 384 93 5 0 0 0 - - -;
-#X obj 384 117 dbtorms;
-#X msg 226 150 coef 2 \$1;
-#X msg 305 150 coef 3 \$1;
-#X msg 384 150 coef 4 \$1;
-#X text 96 3 chebyshev waveshaper;
-#X text 207 229 creation argument: order of polynomial;
-#X text 135 47 coef n x sets coefficient of nth order cheby poly to
-x;
-#X text 135 60 if the input is a sine wave \, these are the amplitudes
-for the harmonics.;
-#N canvas 379 254 494 344 META 0;
-#X text 12 125 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal;
-#X text 12 45 DESCRIPTION Chebyshev waveshaper;
-#X text 12 65 INLET_0 signal coef;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 444 327 pd META;
-#X connect 0 0 5 0;
-#X connect 1 0 0 0;
-#X connect 2 0 3 0;
-#X connect 3 0 1 0;
-#X connect 5 0 4 1;
-#X connect 5 0 4 0;
-#X connect 6 0 5 1;
-#X connect 7 0 0 0;
-#X connect 8 0 7 0;
-#X connect 9 0 10 0;
-#X connect 10 0 15 0;
-#X connect 11 0 12 0;
-#X connect 12 0 16 0;
-#X connect 13 0 14 0;
-#X connect 14 0 17 0;
-#X connect 15 0 0 0;
-#X connect 16 0 0 0;
-#X connect 17 0 0 0;
diff --git a/externals/creb-old/doc/cinv~-help.pd b/externals/creb-old/doc/cinv~-help.pd
deleted file mode 100644
index af048b262681be48076f3c2f6fa2bbc1a211b990..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/cinv~-help.pd
+++ /dev/null
@@ -1,17 +0,0 @@
-#N canvas 0 26 381 297 10;
-#X text 49 5 complex inverse;
-#N canvas 331 92 494 345 META 0;
-#X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 105 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION complex inverse;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 125 OUTLET_1 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 145 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 145 comment;
-#X restore 332 275 pd META;
-#X obj 81 56 cinv~;
diff --git a/externals/creb-old/doc/clog~-help.pd b/externals/creb-old/doc/clog~-help.pd
deleted file mode 100644
index e4fb4b9361a01f4e390814344712bf1261498f7e..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/clog~-help.pd
+++ /dev/null
@@ -1,21 +0,0 @@
-#N canvas 0 26 475 207 10;
-#X obj 85 82 clog~;
-#X obj 145 82 cexp~;
-#X text 235 81 complex log and exp.;
-#X text 237 105 see also;
-#X obj 309 104 cep~;
-#X text 351 103 and;
-#X obj 384 105 icep~;
-#N canvas 379 254 494 344 META 0;
-#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 65 DESCRIPTION complex log and exp.;
-#X text 12 85 INLET_0 signal;
-#X text 12 105 INLET_1 signal;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 145 OUTLET_1 signal;
-#X text 12 5 NAME clog~ cexp~;
-#X text 12 165 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 45 LICENSE GPL v2;
-#X text 12 25 KEYWORDS signal needs_work needs_work (example);
-#X restore 424 185 pd META;
diff --git a/externals/creb-old/doc/cmul~-help.pd b/externals/creb-old/doc/cmul~-help.pd
deleted file mode 100644
index 3411e945874a0ec47eab8735e5b590ad8de62062..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/cmul~-help.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 0 26 381 197 10;
-#X text 49 5 complex multiplication;
-#N canvas 331 92 494 393 META 0;
-#X text 12 205 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 145 OUTLET_0 signal;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 165 OUTLET_1 signal;
-#X text 12 45 DESCRIPTION complex multiplication;
-#X text 12 105 INLET_2 signal;
-#X text 12 125 INLET_3 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 185 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 331 175 pd META;
-#X obj 92 78 cmul~;
diff --git a/externals/creb-old/doc/cosc~-help.pd b/externals/creb-old/doc/cosc~-help.pd
deleted file mode 100644
index 631daeab0ac5a828968ffea33bafbffebf192cb1..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/cosc~-help.pd
+++ /dev/null
@@ -1,17 +0,0 @@
-#N canvas 0 31 381 197 10;
-#X text 49 5 complex oscillator (unit norm exponential);
-#N canvas 331 92 494 369 META 0;
-#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 65 INLET_0 signal;
-#X text 12 45 DESCRIPTION complex oscillator;
-#X text 12 85 INLET_1 float;
-#X text 12 105 INLET_2 float;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 145 OUTLET_1 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 165 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 331 176 pd META;
-#X obj 63 64 cosc~;
diff --git a/externals/creb-old/doc/count-help.pd b/externals/creb-old/doc/count-help.pd
deleted file mode 100644
index 0cc07ca39f4b4fde8ba4e6d0257be65a196758ff..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/count-help.pd
+++ /dev/null
@@ -1,27 +0,0 @@
-#N canvas 0 26 450 300 10;
-#N canvas 331 92 494 345 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS control storage;
-#X text 12 45 DESCRIPTION modulo counter;
-#X text 12 85 INLET_1 float;
-#X text 12 65 INLET_0 bang reset;
-#X text 12 105 OUTLET_0 float;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 392 275 pd META;
-#X obj 164 162 count;
-#X text 157 32 modulo counter;
-#X floatatom 164 189 5 0 0 0 - - -;
-#X obj 106 85 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
-1;
-#X floatatom 191 136 5 0 0 0 - - -;
-#X obj 106 110 metro 275;
-#X floatatom 106 189 5 0 0 0 - - -;
-#X obj 106 162 count 5;
-#X connect 1 0 3 0;
-#X connect 4 0 6 0;
-#X connect 5 0 1 1;
-#X connect 6 0 1 0;
-#X connect 6 0 8 0;
-#X connect 8 0 7 0;
diff --git a/externals/creb-old/doc/csub~-help.pd b/externals/creb-old/doc/csub~-help.pd
deleted file mode 100644
index c32cc8b1ffc39fa623c16594b6b77a248f40309e..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/csub~-help.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 0 26 381 197 10;
-#X text 49 5 complex subtraction;
-#N canvas 162 93 494 386 META 0;
-#X text 12 205 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION complex subtraction;
-#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 165 OUTLET_1 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 185 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 331 175 pd META;
-#X obj 54 96 csub~;
diff --git a/externals/creb-old/doc/diag~-help.pd b/externals/creb-old/doc/diag~-help.pd
deleted file mode 100644
index 6941efd4c490b2f3dfdd5895229f950de765c69b..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/diag~-help.pd
+++ /dev/null
@@ -1,26 +0,0 @@
-#N canvas 3 26 450 300 10;
-#X obj 36 29 diag~;
-#X text 83 31 diagonal state space system;
-#X text 38 67 treats input dsp block as n parallel signals;
-#X text 40 92 s1 = (a * s1) + (b * s2) + u1;
-#X text 41 109 s2 = (a * s2) - (b * s1) + u2;
-#N canvas 145 112 494 314 META 0;
-#X text 12 5 KEYWORDS signal needs_work (example patch);
-#X text 12 45 DESCRIPTION diagonal state space system;
-#X text 12 65 INLET_0 signal bang reset random time eigen;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 125 HELP_PATCH_AUTHORS Added by Jonathan Wilkes.;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 395 275 pd META;
-#X msg 108 140 reset;
-#X obj 108 262 diag~;
-#X msg 118 163 random;
-#X msg 127 184 bang;
-#X msg 144 232 eigen;
-#X msg 137 206 time;
-#X connect 6 0 7 0;
-#X connect 8 0 7 0;
-#X connect 9 0 7 0;
-#X connect 10 0 7 0;
-#X connect 11 0 7 0;
diff --git a/externals/creb-old/doc/dist~-help.pd b/externals/creb-old/doc/dist~-help.pd
deleted file mode 100644
index df5ebafb51bd56f927f1bbb66f9bd5d4dbb1ad7b..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/dist~-help.pd
+++ /dev/null
@@ -1,28 +0,0 @@
-#N canvas 3 4 450 300 10;
-#X text 156 35 dist~ waveshaper;
-#X text 154 53 creation argument: type (see dist.c);
-#X floatatom 136 120 5 0 0 0 - - -;
-#X obj 64 121 osc~;
-#X obj 66 206 dac~;
-#X floatatom 63 84 5 0 0 0 - - -;
-#X text 189 119 right inlet: pre gain;
-#X obj 148 95 hsl 128 15 0.5 20 0 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 64 157 dist~ 1;
-#N canvas 379 254 494 344 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal;
-#X text 12 45 DESCRIPTION waveshaper;
-#X text 12 85 INLET_1 float;
-#X text 12 65 INLET_0 signal;
-#X text 12 105 OUTLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 400 279 pd META;
-#X connect 2 0 8 1;
-#X connect 3 0 8 0;
-#X connect 5 0 3 0;
-#X connect 7 0 2 0;
-#X connect 8 0 4 0;
-#X connect 8 0 4 1;
diff --git a/externals/creb-old/doc/dsfosc~-help.pd b/externals/creb-old/doc/dsfosc~-help.pd
deleted file mode 100644
index 29955846bc26f5b8172dad6b7c0e7ad68b9b2f8d..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/dsfosc~-help.pd
+++ /dev/null
@@ -1,19 +0,0 @@
-#N canvas 0 26 447 341 10;
-#X text 59 21 complex form of the discrete summation oscillator;
-#X text 62 38 (1-az^n)/(1-az) \, with z = e^(jw);
-#N canvas 331 92 494 393 META 0;
-#X text 12 205 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 105 INLET_1 float;
-#X text 12 125 INLET_2 float;
-#X text 12 145 OUTLET_0 signal;
-#X text 12 85 INLET_0 signal;
-#X text 12 165 OUTLET_1 signal;
-#X text 12 5 KEYWORDS signal abstraction oscillator needs_work (example
-patch);
-#X text 12 185 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 35 LICENSE GPL v2;
-#X text 12 55 DESCRIPTION complex form of the discrete summation oscillator
-;
-#X restore 394 317 pd META;
-#X obj 72 104 dsfosc~;
diff --git a/externals/creb-old/doc/dwt~-help.pd b/externals/creb-old/doc/dwt~-help.pd
deleted file mode 100644
index 6cc58bf12ef15376ac3cc62da8dfc0aad6eea784..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/dwt~-help.pd
+++ /dev/null
@@ -1,84 +0,0 @@
-#N canvas 0 26 952 611 10;
-#X obj 17 62 osc~ 500;
-#X msg 83 -115 predict 0.5 0.5 \, update 0.25 0.25;
-#X msg 83 -76 predict -0.0625 0.5625 0.5625 -0.0625 \, update -0.03125
-0.28125 0.28125 -0.03125;
-#X floatatom 24 10 5 0 0 0 - - -;
-#X msg 201 144 mask -1 9 9 -1;
-#X obj 67 279 r coef;
-#X obj 82 -30 s coef;
-#X obj 195 337 s coef;
-#X msg 201 167 mask 3 -25 150 150 -25 3;
-#X msg 216 189 mask -5 49 -245 1225 1225 -245 49 -5;
-#X obj 196 39 pack;
-#X floatatom 222 8 5 0 0 0 - - -;
-#X floatatom 166 -4 5 0 0 0 - - -;
-#X msg 171 64 coef \$1 \$2;
-#X msg 191 120 mask 1 1;
-#X msg 228 212 mask 35 -405 2268 -8820 39690 39690 -8820 2268 -405
-35;
-#X msg 244 246 mask -63 847 -5445 22869 -76230 320166 320166 -76230
-22869 -5445 847 -63;
-#X msg 245 306 predict 1 0 \, update 0 0.5;
-#X obj 36 31 * 187.5;
-#X obj 26 341 dwt~ 1;
-#X obj 80 343 idwt~ 1;
-#X msg 469 376 mask 0 0 0 35 140 -70 28 -5;
-#X msg 469 352 mask 7 -45 126 -210 315 63 0 0 0 0;
-#X msg 469 328 mask -21 154 -495 924 -1155 1386 231 0 0 0 0 0;
-#X obj 26 443 tabsend~ scope;
-#N canvas 0 0 450 300 (subpatch) 0;
-#X array scope 256 float 0;
-#X coords 0 1 255 -1 200 140 1;
-#X restore 718 -98 graph;
-#X text 61 165 print out coefs;
-#X msg 100 184 print;
-#X text 315 -24 dwt~ performs a discrete wavelet transform;
-#X text 315 -10 idwt~ performs the inverse transform;
-#X text 309 105 mask sets the predict mask \, and uses the corresponding
-update mask;
-#X text 266 63 coef sets half of a symmetric predict mask;
-#X text 243 286 predict and update masks can be specified explicitly
-;
-#X text 433 307 haar wavelet;
-#X msg 672 189 even \$1;
-#X floatatom 672 167 5 0 0 0 - - -;
-#X text 570 134 even <n> is the order symmetric interpolating biorthogonal
-wavelet with n vanishing moments.;
-#N canvas 379 254 494 344 META 0;
-#X text 12 155 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 25 KEYWORDS signal;
-#X text 12 65 DESCRIPTION dwt~ performas a descrete wavelet transform/
-idwt~ performs the inverse transform;
-#X text 12 95 INLET_0 signal print mask predict update even;
-#X text 12 5 NAME dwt~ idwt~;
-#X text 12 115 OUTLET_0 signal;
-#X text 12 45 LICENSE GPL v2;
-#X text 12 135 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 884 465 pd META;
-#X connect 0 0 19 0;
-#X connect 1 0 6 0;
-#X connect 2 0 6 0;
-#X connect 3 0 18 0;
-#X connect 4 0 7 0;
-#X connect 5 0 20 0;
-#X connect 5 0 19 0;
-#X connect 8 0 7 0;
-#X connect 9 0 7 0;
-#X connect 10 0 13 0;
-#X connect 11 0 10 1;
-#X connect 12 0 10 0;
-#X connect 13 0 7 0;
-#X connect 14 0 7 0;
-#X connect 15 0 7 0;
-#X connect 16 0 7 0;
-#X connect 17 0 7 0;
-#X connect 18 0 0 0;
-#X connect 19 0 24 0;
-#X connect 21 0 7 0;
-#X connect 22 0 7 0;
-#X connect 23 0 7 0;
-#X connect 27 0 7 0;
-#X connect 34 0 7 0;
-#X connect 35 0 34 0;
diff --git a/externals/creb-old/doc/dynwav~-help.pd b/externals/creb-old/doc/dynwav~-help.pd
deleted file mode 100644
index bcd38d0decdc35c5931e1be030ecb71705180d97..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/dynwav~-help.pd
+++ /dev/null
@@ -1,37 +0,0 @@
-#N canvas 0 26 450 300 10;
-#X text 96 6 dynwav~: dynamic wavetable oscillator;
-#X obj 61 98 osc~;
-#X floatatom 60 56 5 0 0 0 - - -;
-#X obj 60 151 dynwav~;
-#X obj 60 214 vol~;
-#X floatatom 85 190 5 0 0 0 - - -;
-#X obj 50 256 dac~;
-#X obj 172 105 phasor~;
-#X floatatom 172 80 5 0 0 0 - - -;
-#X obj 107 54 bang~;
-#X text 171 22 (scanned synthesis);
-#X text 165 143 left inlet's dsp block = wavetable;
-#X msg 107 78 0.25;
-#X text 242 157 right inlet = phase (0-1);
-#N canvas 379 254 494 344 META 0;
-#X text 12 155 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 75 INLET_0 signal;
-#X text 12 95 INLET_1 signal;
-#X text 12 115 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION dynamic wavetable oscillator ( scanned synthesis
-);
-#X text 12 5 KEYWORDS signal oscillator;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 135 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 400 279 pd META;
-#X connect 1 0 3 0;
-#X connect 2 0 1 0;
-#X connect 3 0 4 0;
-#X connect 4 0 6 1;
-#X connect 4 0 6 0;
-#X connect 5 0 4 1;
-#X connect 7 0 3 1;
-#X connect 8 0 7 0;
-#X connect 9 0 12 0;
-#X connect 12 0 1 1;
diff --git a/externals/creb-old/doc/eadh~-help.pd b/externals/creb-old/doc/eadh~-help.pd
deleted file mode 100644
index c44af7f4a84f6173a7ba226f51fc6ce59e9e3cc0..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/eadh~-help.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 0 26 319 228 10;
-#N canvas 36 104 494 367 META 0;
-#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 85 INLET_1 float;
-#X text 12 165 AUTHOR Tom Shouten;
-#X text 12 105 INLET_2 float;
-#X text 12 145 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION exponential attack decay (with hold == duration)
-;
-#X text 12 65 INLET_0 bang;
-#X text 12 125 INLET_3 float;
-#X text 12 5 KEYWORDS signal abstraction ramp needs_work (example patch)
-;
-#X text 12 25 LICENSE GPL v2;
-#X restore 268 207 pd META;
-#X obj 63 81 eadh~;
-#X text 12 31 exponential attack decay (with hold == duration);
diff --git a/externals/creb-old/doc/eadsrh~-help.pd b/externals/creb-old/doc/eadsrh~-help.pd
deleted file mode 100644
index ad31d785a59240a7328c4c5bf0d933de329470c9..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/eadsrh~-help.pd
+++ /dev/null
@@ -1,20 +0,0 @@
-#N canvas 0 26 430 230 10;
-#N canvas 331 92 494 388 META 0;
-#X text 12 215 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 95 INLET_1 float;
-#X text 12 115 INLET_2 float;
-#X text 12 155 INLET_4 float;
-#X text 12 175 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION exponential attack decay sustain release
-(with hold == duration);
-#X text 12 75 INLET_0 bang;
-#X text 12 135 INLET_3 float;
-#X text 12 5 KEYWORDS signal abstraction ramp needs_work (example patch)
-;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 195 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 378 207 pd META;
-#X obj 105 92 eadsrh~;
-#X text 22 15 exponential attack decay sustain release (with hold ==
-duration);
diff --git a/externals/creb-old/doc/eadsr~-help.pd b/externals/creb-old/doc/eadsr~-help.pd
deleted file mode 100644
index 33b7cfe0793ec3e48642952df9fe6a2ff945ce5f..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/eadsr~-help.pd
+++ /dev/null
@@ -1,72 +0,0 @@
-#N canvas 0 26 581 306 10;
-#X obj 89 227 *~;
-#X obj 105 40 metro;
-#X obj 26 203 osc~;
-#X floatatom 26 171 5 0 0 0 - - -;
-#X floatatom 135 12 5 0 0 0 - - -;
-#X floatatom 209 117 5 0 0 0 - - -;
-#X floatatom 208 139 5 0 0 0 - - -;
-#X obj 81 277 dac~;
-#X msg 58 12 stop;
-#X msg 26 124 start;
-#X msg 71 123 stop;
-#X obj 105 77 del;
-#X floatatom 159 50 5 0 0 0 - - -;
-#X obj 105 197 eadsr~ 0 0;
-#X text 191 81 exponential attack/decay/sustain/release envelope;
-#X text 265 125 60db attack and decay time;
-#X floatatom 209 160 5 0 0 0 - - -;
-#X floatatom 209 180 5 0 0 0 - - -;
-#X text 264 159 sustain level;
-#X obj 88 253 vol~;
-#X floatatom 132 238 5 0 0 0 - - -;
-#X obj 343 228 table t 10000;
-#X obj 343 267 tabwrite~ t;
-#X obj 343 247 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 103 13 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X obj 262 276 del;
-#X floatatom 276 225 5 0 0 0 - - -;
-#X text 265 182 60db release time;
-#N canvas 379 254 494 372 META 0;
-#X text 12 215 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION exponential attack/decay/sustain/release
-envelope;
-#X text 12 5 KEYWORDS signal ramp;
-#X text 12 175 OUTLET_0 signal;
-#X text 12 95 INLET_1 float;
-#X text 12 115 INLET_2 float;
-#X text 12 135 INLET_3 float;
-#X text 12 155 INLET_4 float;
-#X text 12 75 INLET_0 start stop;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 195 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 531 285 pd META;
-#X connect 0 0 19 0;
-#X connect 1 0 9 0;
-#X connect 1 0 11 0;
-#X connect 2 0 0 0;
-#X connect 3 0 2 0;
-#X connect 4 0 1 1;
-#X connect 5 0 13 1;
-#X connect 6 0 13 2;
-#X connect 8 0 1 0;
-#X connect 9 0 13 0;
-#X connect 10 0 13 0;
-#X connect 11 0 10 0;
-#X connect 12 0 11 1;
-#X connect 13 0 0 1;
-#X connect 13 0 22 0;
-#X connect 16 0 13 3;
-#X connect 17 0 13 4;
-#X connect 19 0 7 1;
-#X connect 19 0 7 0;
-#X connect 20 0 19 1;
-#X connect 23 0 22 0;
-#X connect 23 0 25 0;
-#X connect 23 0 9 0;
-#X connect 24 0 1 0;
-#X connect 25 0 10 0;
-#X connect 26 0 25 1;
diff --git a/externals/creb-old/doc/ead~-help.pd b/externals/creb-old/doc/ead~-help.pd
deleted file mode 100644
index b8bf90ea7f8e608d422916f71c7ec6e42c182f36..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/ead~-help.pd
+++ /dev/null
@@ -1,52 +0,0 @@
-#N canvas 0 26 413 265 10;
-#X obj 105 111 ead~ 0 0;
-#X obj 89 179 *~;
-#X obj 105 40 metro;
-#X obj 41 144 osc~;
-#X floatatom 41 112 5 0 0 0 - - -;
-#X floatatom 135 12 5 0 0 0 - - -;
-#X floatatom 130 64 5 0 0 0 - - -;
-#X floatatom 156 86 5 0 0 0 - - -;
-#X obj 78 242 dac~;
-#X text 202 71 60db attack and decay time;
-#X obj 70 76 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 58 12 stop;
-#X text 201 51 exponential attack/decay envelope;
-#X obj 89 212 vol~;
-#X floatatom 117 193 5 0 0 0 - - -;
-#X obj 265 119 table t 5000;
-#X obj 265 176 tabwrite~ t;
-#X obj 265 152 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 105 13 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#N canvas 379 254 494 344 META 0;
-#X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION exponential attack/decay envelope;
-#X text 12 5 KEYWORDS signal ramp;
-#X text 12 85 INLET_1 float;
-#X text 12 65 INLET_0 bang;
-#X text 12 105 INLET_2 float;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 145 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 362 242 pd META;
-#X connect 0 0 1 1;
-#X connect 0 0 16 0;
-#X connect 1 0 13 0;
-#X connect 2 0 0 0;
-#X connect 3 0 1 0;
-#X connect 4 0 3 0;
-#X connect 5 0 2 1;
-#X connect 6 0 0 1;
-#X connect 7 0 0 2;
-#X connect 10 0 0 0;
-#X connect 11 0 2 0;
-#X connect 13 0 8 0;
-#X connect 13 0 8 1;
-#X connect 14 0 13 1;
-#X connect 17 0 16 0;
-#X connect 17 0 0 0;
-#X connect 18 0 2 0;
diff --git a/externals/creb-old/doc/ear~-help.pd b/externals/creb-old/doc/ear~-help.pd
deleted file mode 100644
index 0229df0e883632517913759e3c977b7eff48257f..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/ear~-help.pd
+++ /dev/null
@@ -1,47 +0,0 @@
-#N canvas 0 26 421 306 10;
-#X obj 89 227 *~;
-#X obj 105 40 metro;
-#X obj 105 12 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 41 192 osc~;
-#X floatatom 41 160 5 0 0 0 - - -;
-#X floatatom 135 12 5 0 0 0 - - -;
-#X floatatom 130 112 5 0 0 0 - - -;
-#X floatatom 157 134 5 0 0 0 - - -;
-#X obj 77 265 dac~;
-#X msg 58 12 stop;
-#X msg 26 124 start;
-#X msg 71 123 stop;
-#X obj 105 159 ear~ 0 0;
-#X obj 105 77 del;
-#X floatatom 159 50 5 0 0 0 - - -;
-#X text 201 99 exponential attack/release envelope;
-#X text 202 119 60db attack and release time;
-#N canvas 379 254 494 344 META 0;
-#X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION exponential attack/release envelope;
-#X text 12 5 KEYWORDS signal ramp;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 85 INLET_1 float;
-#X text 12 105 INLET_2 float;
-#X text 12 65 INLET_0 start stop;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 145 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 372 286 pd META;
-#X connect 0 0 8 0;
-#X connect 0 0 8 1;
-#X connect 1 0 10 0;
-#X connect 1 0 13 0;
-#X connect 2 0 1 0;
-#X connect 3 0 0 0;
-#X connect 4 0 3 0;
-#X connect 5 0 1 1;
-#X connect 6 0 12 1;
-#X connect 7 0 12 2;
-#X connect 9 0 1 0;
-#X connect 10 0 12 0;
-#X connect 11 0 12 0;
-#X connect 12 0 0 1;
-#X connect 13 0 11 0;
-#X connect 14 0 13 1;
diff --git a/externals/creb-old/doc/examples/formantdynwav.pd b/externals/creb-old/doc/examples/formantdynwav.pd
deleted file mode 100644
index 60afd118e74f0232f94bb26b58cc8e419f4cd881..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/examples/formantdynwav.pd
+++ /dev/null
@@ -1,198 +0,0 @@
-#N canvas 131 302 276 242 10;
-#N canvas 342 154 748 636 stuff 1;
-#X obj 59 376 outlet~;
-#X obj 59 348 vol~;
-#X floatatom 176 317 5 0 0;
-#X obj 197 29 bang~;
-#X obj 59 290 pdynwav~;
-#X floatatom 189 221 5 0 0;
-#X obj 46 103 osc~;
-#X obj 91 103 osc~;
-#X obj 135 102 osc~;
-#X obj 104 223 *~;
-#X obj 345 87 phasor~;
-#X obj 277 185 *~;
-#X obj 346 136 *~;
-#X obj 346 108 onecomp~;
-#X obj 346 164 *~;
-#X text 38 33 formant frequencies;
-#N canvas 139 0 533 326 to_formant 0;
-#X obj 339 217 /;
-#X obj 391 149 t b f;
-#X obj 291 182 samplerate~;
-#X floatatom 335 243 5 0 0;
-#X obj 369 47 inlet;
-#X obj 405 126 * 1024;
-#X obj 30 158 *~;
-#X obj 88 159 *~;
-#X obj 150 156 *~;
-#X obj 30 192 outlet~;
-#X obj 88 193 outlet~;
-#X obj 150 190 outlet~;
-#X obj 150 100 inlet~;
-#X obj 88 103 inlet~;
-#X obj 30 102 inlet~;
-#X connect 0 0 3 0;
-#X connect 0 0 8 1;
-#X connect 0 0 7 1;
-#X connect 0 0 6 1;
-#X connect 1 0 2 0;
-#X connect 1 1 0 1;
-#X connect 2 0 0 0;
-#X connect 4 0 5 0;
-#X connect 5 0 1 0;
-#X connect 6 0 9 0;
-#X connect 7 0 10 0;
-#X connect 8 0 11 0;
-#X connect 12 0 8 0;
-#X connect 13 0 7 0;
-#X connect 14 0 6 0;
-#X restore 45 71 pd to_formant;
-#X obj 189 260 +;
-#X obj 227 261 -;
-#X obj 136 374 outlet~;
-#X obj 136 346 vol~;
-#X obj 127 290 pdynwav~;
-#X floatatom 244 210 5 0 0;
-#X obj 253 237 t b f;
-#X obj 520 332 block~ 1024;
-#X obj 277 28 fblock 1024;
-#X obj 469 163 random 120;
-#X obj 469 191 - 60;
-#X obj 466 139 metro 750;
-#X obj 470 111 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0
-1;
-#X obj 43 -75 *~;
-#X floatatom 59 -99 5 0 0;
-#X obj 43 -121 osc~;
-#X floatatom 43 -151 5 0 0;
-#X obj 113 -75 *~;
-#X floatatom 129 -99 5 0 0;
-#X obj 113 -121 osc~;
-#X floatatom 113 -151 5 0 0;
-#X obj 180 -74 *~;
-#X floatatom 196 -98 5 0 0;
-#X obj 180 -120 osc~;
-#X floatatom 180 -150 5 0 0;
-#X floatatom 531 106 5 0 0;
-#X floatatom 84 128 5 0 0;
-#X obj 44 157 vol~;
-#X floatatom 125 128 5 0 0;
-#X obj 85 157 vol~;
-#X floatatom 173 129 5 0 0;
-#X obj 133 158 vol~;
-#X floatatom 304 -126 5 0 0;
-#X msg 349 6 1;
-#X obj 277 159 phasor~;
-#X obj 94 199 *~ 1;
-#X msg 389 58 0;
-#X msg 197 60 0.25;
-#X obj 346 189 *~;
-#X msg 194 92 100;
-#X obj 374 242 tabsend~ period;
-#X obj 494 213 table period 1024;
-#X floatatom 298 322 5 0 0;
-#X obj 343 -83 loadbang;
-#X floatatom 198 -52 5 0 0;
-#X obj 182 -28 +~;
-#X floatatom 125 -49 5 0 0;
-#X obj 109 -25 +~;
-#X floatatom 65 -45 5 0 0;
-#X obj 49 -21 +~;
-#X connect 1 0 0 0;
-#X connect 2 0 1 1;
-#X connect 2 0 20 1;
-#X connect 3 0 54 0;
-#X connect 3 0 53 0;
-#X connect 4 0 1 0;
-#X connect 5 0 16 3;
-#X connect 5 0 17 0;
-#X connect 5 0 18 0;
-#X connect 6 0 44 0;
-#X connect 7 0 46 0;
-#X connect 8 0 48 0;
-#X connect 9 0 4 0;
-#X connect 9 0 21 0;
-#X connect 9 0 57 0;
-#X connect 10 0 13 0;
-#X connect 11 0 9 1;
-#X connect 12 0 14 0;
-#X connect 12 0 14 1;
-#X connect 13 0 12 1;
-#X connect 13 0 12 0;
-#X connect 14 0 55 0;
-#X connect 14 0 55 1;
-#X connect 14 0 11 1;
-#X connect 16 0 6 0;
-#X connect 16 1 7 0;
-#X connect 16 2 8 0;
-#X connect 17 0 4 1;
-#X connect 18 0 21 1;
-#X connect 20 0 19 0;
-#X connect 21 0 20 0;
-#X connect 22 0 17 1;
-#X connect 22 0 23 0;
-#X connect 23 0 18 0;
-#X connect 23 0 17 0;
-#X connect 23 1 18 1;
-#X connect 23 1 17 1;
-#X connect 25 0 10 0;
-#X connect 25 0 51 0;
-#X connect 26 0 27 0;
-#X connect 27 0 5 0;
-#X connect 28 0 26 0;
-#X connect 29 0 28 0;
-#X connect 30 0 66 0;
-#X connect 31 0 30 1;
-#X connect 32 0 30 0;
-#X connect 33 0 32 0;
-#X connect 34 0 64 0;
-#X connect 35 0 34 1;
-#X connect 36 0 34 0;
-#X connect 37 0 36 0;
-#X connect 38 0 62 0;
-#X connect 39 0 38 1;
-#X connect 40 0 38 0;
-#X connect 41 0 40 0;
-#X connect 42 0 28 1;
-#X connect 43 0 44 1;
-#X connect 44 0 52 0;
-#X connect 45 0 46 1;
-#X connect 46 0 52 0;
-#X connect 47 0 48 1;
-#X connect 48 0 52 0;
-#X connect 50 0 25 1;
-#X connect 51 0 11 0;
-#X connect 52 0 9 0;
-#X connect 53 0 10 1;
-#X connect 54 0 8 1;
-#X connect 54 0 7 1;
-#X connect 54 0 6 1;
-#X connect 56 0 47 0;
-#X connect 56 0 45 0;
-#X connect 56 0 43 0;
-#X connect 60 0 50 0;
-#X connect 61 0 62 1;
-#X connect 62 0 16 2;
-#X connect 63 0 64 1;
-#X connect 64 0 16 1;
-#X connect 65 0 66 1;
-#X connect 66 0 16 0;
-#X restore 18 14 pd stuff;
-#X obj 19 75 dac~;
-#X obj 94 79 vols~;
-#X obj 96 54 fdn~;
-#X floatatom 140 53 5 0 0;
-#X floatatom 108 24 5 0 0;
-#X floatatom 154 24 5 0 0;
-#X connect 0 0 1 0;
-#X connect 0 0 3 0;
-#X connect 0 1 1 1;
-#X connect 0 1 3 0;
-#X connect 2 0 1 0;
-#X connect 2 1 1 1;
-#X connect 3 0 2 0;
-#X connect 3 1 2 1;
-#X connect 4 0 2 2;
-#X connect 5 0 3 1;
-#X connect 6 0 3 2;
diff --git a/externals/creb-old/doc/examples/xfmdelay.pd b/externals/creb-old/doc/examples/xfmdelay.pd
deleted file mode 100644
index 078733a9e503efb71f2e94d98642dcbc9a1eba14..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/examples/xfmdelay.pd
+++ /dev/null
@@ -1,106 +0,0 @@
-#N canvas 25 206 921 653 10;
-#X obj 289 329 xfm~ 0 0 0 0;
-#X obj 279 280 *~;
-#X obj 398 233 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 862.744 256;
-#X obj 306 279 *~;
-#X obj 398 250 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 795.103 256;
-#X obj 332 279 *~;
-#X obj 399 266 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 23.7527 256;
-#X obj 359 278 *~;
-#X obj 398 284 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 224.294 256;
-#X obj 251 170 xfm~ 0 0 0 0;
-#X obj 392 111 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 703.454 256;
-#X obj 392 132 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 675.315 256;
-#X obj 304 138 *~;
-#X obj 393 148 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 51.5902 256;
-#X obj 331 137 *~;
-#X obj 392 166 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 49.5265 256;
-#X obj 191 403 vols~;
-#X floatatom 233 374 5 0 0;
-#X obj 195 525 dac~;
-#X obj 274 51 vd~ del1;
-#X obj 274 24 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 73 256;
-#X obj 339 23 nbx 5 14 -1e+37 1e+37 0 1 empty empty empty 0 -6 0 10
--262144 -1 -1 339 256;
-#X obj 339 50 vd~ del2;
-#X obj 296 393 delwrite~ del1 1000;
-#X obj 448 393 delwrite~ del2 1000;
-#X msg 136 125 type 0;
-#X msg 137 146 type 1;
-#X obj 464 110 hsl 300 15 0.1 20000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 21700 1;
-#X obj 464 130 hsl 300 15 0.1 20000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 21600 1;
-#X obj 463 150 hsl 300 15 0.1 20000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 15300 1;
-#X obj 464 168 hsl 300 15 0.1 20000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 15200 1;
-#X obj 465 232 hsl 300 15 0.1 20000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 22200 1;
-#X obj 465 252 hsl 300 15 0.1 20000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 22000 1;
-#X obj 464 271 hsl 300 15 0.1 20000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 13400 1;
-#X obj 465 289 hsl 300 15 0.1 20000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 18900 1;
-#X text 479 29 2 xfm oscillators coupled by 2 delay lines;
-#X obj 188 475 *~;
-#X obj 217 474 *~;
-#X obj 270 458 osc~;
-#X obj 269 433 hsl 300 15 0.1 20000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 18900 1;
-#X connect 0 0 23 0;
-#X connect 0 1 24 0;
-#X connect 1 0 0 0;
-#X connect 2 0 1 1;
-#X connect 3 0 0 1;
-#X connect 4 0 3 1;
-#X connect 5 0 0 2;
-#X connect 6 0 5 1;
-#X connect 7 0 0 3;
-#X connect 8 0 7 1;
-#X connect 9 0 3 0;
-#X connect 9 0 5 0;
-#X connect 9 0 16 0;
-#X connect 9 1 1 0;
-#X connect 9 1 7 0;
-#X connect 9 1 16 1;
-#X connect 10 0 9 0;
-#X connect 11 0 9 1;
-#X connect 12 0 9 2;
-#X connect 13 0 12 1;
-#X connect 14 0 9 3;
-#X connect 15 0 14 1;
-#X connect 16 0 36 0;
-#X connect 16 1 37 0;
-#X connect 17 0 16 2;
-#X connect 19 0 12 0;
-#X connect 20 0 19 0;
-#X connect 21 0 22 0;
-#X connect 22 0 14 0;
-#X connect 25 0 9 0;
-#X connect 25 0 0 0;
-#X connect 26 0 9 0;
-#X connect 26 0 0 0;
-#X connect 27 0 10 0;
-#X connect 28 0 11 0;
-#X connect 29 0 13 0;
-#X connect 30 0 15 0;
-#X connect 31 0 2 0;
-#X connect 32 0 4 0;
-#X connect 33 0 6 0;
-#X connect 34 0 8 0;
-#X connect 36 0 18 0;
-#X connect 37 0 18 1;
-#X connect 38 0 37 1;
-#X connect 38 0 36 1;
-#X connect 39 0 38 0;
diff --git a/externals/creb-old/doc/expmap~-help.pd b/externals/creb-old/doc/expmap~-help.pd
deleted file mode 100644
index 94609ff41a38d53a7efe562eda259026c51f0314..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/expmap~-help.pd
+++ /dev/null
@@ -1,17 +0,0 @@
-#N canvas 0 26 352 368 10;
-#X text 80 9 exponential map from (-1 \, 1) to (min \, max);
-#N canvas 331 92 494 345 META 0;
-#X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 85 INLET_1 float;
-#X text 12 45 DESCRIPTION exponential map from (-1 \, 1) to (min \,
-max);
-#X text 12 65 INLET_0 signal;
-#X text 12 105 INLET_2 float;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 145 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 302 347 pd META;
-#X obj 103 141 expmap~;
diff --git a/externals/creb-old/doc/fblock-help.pd b/externals/creb-old/doc/fblock-help.pd
deleted file mode 100644
index dc186f48b05d761d6ee90cadd7de29bf9a271d00..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/fblock-help.pd
+++ /dev/null
@@ -1,20 +0,0 @@
-#N canvas 0 26 551 236 10;
-#X text 200 79 right inlet is also "active";
-#X text 201 119 main usage is to compute block synchronous frequencies
-;
-#X text 200 134 for spectral domain processing;
-#X text 201 49 out = left + right * (sys samplerate / blocksize);
-#X text 200 35 fblock: compute block relative frequencies;
-#N canvas 198 157 494 345 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 65 INLET_0 float;
-#X text 12 85 INLET_1 float;
-#X text 12 105 OUTLET_0 float;
-#X text 12 45 DESCRIPTION compute block relative frequencies;
-#X text 12 5 KEYWORDS control abstraction needs_work (example patch)
-;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 502 215 pd META;
-#X obj 40 67 fblock;
diff --git a/externals/creb-old/doc/fdn~-help.pd b/externals/creb-old/doc/fdn~-help.pd
deleted file mode 100644
index 2cc5f60d7c3fb7f3d78acc77d7ae4b90b27d4b2a..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/fdn~-help.pd
+++ /dev/null
@@ -1,74 +0,0 @@
-#N canvas 4 4 680 586 10;
-#X obj 146 529 vols~;
-#X floatatom 203 509 5 0 0 0 - - -;
-#X obj 143 562 dac~;
-#X obj 128 131 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 10 415 print;
-#X floatatom 216 431 5 0 0 0 - - -;
-#X floatatom 267 432 5 0 0 0 - - -;
-#X obj 54 144 noise~;
-#X obj 94 190 *~;
-#X floatatom 203 111 5 0 0 0 - - -;
-#X obj 146 157 ead~;
-#X msg 360 119 lines 501 752 5003 7504 105 206 307 408;
-#X floatatom 152 110 5 0 0 0 - - -;
-#X msg 361 248 linear 32 100 105;
-#X msg 360 271 linear 32 1000 1005;
-#X msg 12 465 reset;
-#X obj 142 463 fdn~ 64 40000;
-#X msg 358 327 exponential 32 10 5000;
-#X msg 360 292 linear 32 100 2015;
-#X msg 361 224 linear 8 75 100;
-#X msg 361 201 linear 32 50 2175;
-#X msg 360 374 exponential 8 50 175;
-#X text 186 20 fdn~ a feedback delay network;
-#X text 316 468 creation arguments: <max nb delaylines> <total delay
-memory in ms>;
-#X text 3 396 print delay lengths;
-#X text 2 448 reset state;
-#X text 316 512 nb delay lines is always a multiple of 4;
-#X text 358 96 specify delay line lengths manually;
-#X text 359 152 specify a linear/exponential delay length range;
-#X text 361 170 <type> <nb lines> <min length> <max length>;
-#X text 359 430 inlets: low/high frequency reverb time (60dB time)
-;
-#X msg 358 351 exponential 64 1000 10;
-#N canvas 379 254 494 359 META 0;
-#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal;
-#X text 12 45 DESCRIPTION a feedback delay network;
-#X text 12 85 INLET_1 float;
-#X text 12 65 INLET_0 signal lines linear exponential;
-#X text 12 105 INLET_2 float;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 145 OUTLET_1 signal;
-#X text 12 165 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 622 562 pd META;
-#X connect 0 0 2 0;
-#X connect 0 1 2 1;
-#X connect 1 0 0 2;
-#X connect 3 0 10 0;
-#X connect 4 0 16 0;
-#X connect 5 0 16 1;
-#X connect 6 0 16 2;
-#X connect 7 0 8 0;
-#X connect 8 0 16 0;
-#X connect 9 0 10 2;
-#X connect 10 0 8 1;
-#X connect 10 0 16 0;
-#X connect 11 0 16 0;
-#X connect 12 0 10 1;
-#X connect 13 0 16 0;
-#X connect 14 0 16 0;
-#X connect 15 0 16 0;
-#X connect 16 0 0 0;
-#X connect 16 1 0 1;
-#X connect 17 0 16 0;
-#X connect 18 0 16 0;
-#X connect 19 0 16 0;
-#X connect 20 0 16 0;
-#X connect 21 0 16 0;
-#X connect 31 0 16 0;
diff --git a/externals/creb-old/doc/ffpoly-help.pd b/externals/creb-old/doc/ffpoly-help.pd
deleted file mode 100644
index cf6172ca216123e2f959ebcfc26910114a4f18c5..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/ffpoly-help.pd
+++ /dev/null
@@ -1,45 +0,0 @@
-#N canvas 0 26 461 404 10;
-#X text 85 14 ffpoly - compute a finite field polynomial;
-#X msg 103 89 coef 0 \$1;
-#X floatatom 103 65 5 0 0 0 - - -;
-#X floatatom 181 65 5 0 0 0 - - -;
-#X floatatom 257 65 5 0 0 0 - - -;
-#X floatatom 334 64 5 0 0 0 - - -;
-#X msg 181 89 coef 1 \$1;
-#X msg 257 89 coef 2 \$1;
-#X msg 334 89 coef 3 \$1;
-#X floatatom 38 106 5 0 0 0 - - -;
-#X obj 38 350 ffpoly 3 5;
-#X text 125 350 creation args: <poly order> <field order>;
-#X floatatom 38 384 5 0 0 0 - - -;
-#X msg 334 150 order \$1;
-#X floatatom 334 125 5 0 0 0 - - -;
-#X text 332 174 finite field order;
-#X floatatom 335 217 5 0 0 0 - - -;
-#X msg 335 242 coefficients \$1;
-#X text 271 279 set coefs in packed form;
-#X text 203 292 digit representation in base = field order;
-#N canvas 379 254 494 344 META 0;
-#X text 12 125 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS control;
-#X text 12 45 DESCRIPTION compute a finite field polynomial;
-#X text 12 65 INLET_0 float coef order;
-#X text 12 85 OUTLET_0 float;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 412 384 pd META;
-#X connect 1 0 10 0;
-#X connect 2 0 1 0;
-#X connect 3 0 6 0;
-#X connect 4 0 7 0;
-#X connect 5 0 8 0;
-#X connect 6 0 10 0;
-#X connect 7 0 10 0;
-#X connect 8 0 10 0;
-#X connect 9 0 10 0;
-#X connect 10 0 12 0;
-#X connect 13 0 10 0;
-#X connect 14 0 13 0;
-#X connect 16 0 17 0;
-#X connect 17 0 10 0;
diff --git a/externals/creb-old/doc/filterortho~-help.pd b/externals/creb-old/doc/filterortho~-help.pd
deleted file mode 100644
index 9b455979ffb78a4c6981bd20d77d40fc39afc5ea..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/filterortho~-help.pd
+++ /dev/null
@@ -1,69 +0,0 @@
-#N canvas 0 26 525 473 10;
-#X obj 146 452 dac~;
-#X floatatom 255 83 7 0 0 0 - - -;
-#X floatatom 194 83 7 0 0 0 - - -;
-#X obj 158 405 filterortho~;
-#X obj 194 123 t b f;
-#X floatatom 29 31 5 0 0 0 - - -;
-#X obj 13 9 noise~;
-#X floatatom 133 83 7 0 0 0 - - -;
-#X obj 150 123 t b f;
-#X obj 13 52 *~;
-#X text 333 9 orthogonal biquad object;
-#X obj 157 330 pack s 0 0 0;
-#X obj 237 122 t b f;
-#X text 137 61 freq;
-#X text 213 61 Q;
-#X msg 335 126 setEQ;
-#X msg 335 150 setLP;
-#X msg 158 363 \$1 \$2 \$3 \$4;
-#X msg 336 175 setHP;
-#X msg 336 201 setBP;
-#X msg 336 225 setBR;
-#X msg 336 251 setHS;
-#X msg 337 275 setLS;
-#X msg 338 299 setAP;
-#X text 391 127 parametric equalizer;
-#X text 390 150 lowpass;
-#X text 391 175 highpass;
-#X text 391 201 bandpass;
-#X text 391 224 bandreject;
-#X text 390 252 highshelf;
-#X text 390 277 lowshelf;
-#X text 391 300 allpass;
-#X text 265 62 gain (only for EQ \, LS \, HS);
-#N canvas 379 254 494 344 META 0;
-#X text 12 135 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal filter;
-#X text 12 45 DESCRIPTION orthogonal biquad object;
-#X text 12 65 INLET_0 signal setEQ setLP setHP setBP setBR setHS setLS
-setAP;
-#X text 12 95 OUTLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 115 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 472 453 pd META;
-#X connect 1 0 12 0;
-#X connect 2 0 4 0;
-#X connect 3 0 0 0;
-#X connect 3 0 0 1;
-#X connect 4 0 11 0;
-#X connect 4 1 11 2;
-#X connect 5 0 9 1;
-#X connect 6 0 9 0;
-#X connect 7 0 8 0;
-#X connect 8 0 11 0;
-#X connect 8 1 11 1;
-#X connect 9 0 3 0;
-#X connect 11 0 17 0;
-#X connect 12 0 11 0;
-#X connect 12 1 11 3;
-#X connect 15 0 11 0;
-#X connect 16 0 11 0;
-#X connect 17 0 3 0;
-#X connect 18 0 11 0;
-#X connect 19 0 11 0;
-#X connect 20 0 11 0;
-#X connect 21 0 11 0;
-#X connect 22 0 11 0;
-#X connect 23 0 11 0;
diff --git a/externals/creb-old/doc/fmod-help.pd b/externals/creb-old/doc/fmod-help.pd
deleted file mode 100644
index 0b25bd9271a81cbd965526dd065cdb46cb9dc32d..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/fmod-help.pd
+++ /dev/null
@@ -1,15 +0,0 @@
-#N canvas 0 26 418 289 10;
-#X text 175 90 floating point version of;
-#X text 361 91 [mod];
-#N canvas 45 93 494 329 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 85 INLET_1 float;
-#X text 12 45 DESCRIPTION floating point version of [mod];
-#X text 12 65 INLET_0 float;
-#X text 12 105 OUTLET_0 float;
-#X text 12 5 KEYWORDS control needs_work (example patch);
-#X text 12 25 LICENSE GPL v2;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 368 267 pd META;
-#X obj 67 87 fmod;
diff --git a/externals/creb-old/doc/fmop~-help.pd b/externals/creb-old/doc/fmop~-help.pd
deleted file mode 100644
index e3f0f506cd04b28a66bca0d4ba24cfc02690d7cb..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/fmop~-help.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 0 26 344 223 10;
-#X text 76 12 fm operator;
-#N canvas 21 119 494 354 META 0;
-#X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 45 DESCRIPTION frequency modulation operator;
-#X text 12 105 INLET_2 signal;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 145 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 288 197 pd META;
-#X obj 79 101 fmop~;
diff --git a/externals/creb-old/doc/frequor~-help.pd b/externals/creb-old/doc/frequor~-help.pd
deleted file mode 100644
index 41cb2c485acd2352b787812666128da02a5045f6..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/frequor~-help.pd
+++ /dev/null
@@ -1,18 +0,0 @@
-#N canvas 0 26 405 288 10;
-#X text 28 4 frequor~: frequency domain phasor~ (for traversing spectra)
-;
-#X text 102 25 output: (0 \, N/2-1) -> (0 \, 1);
-#X text 152 41 (N/2 \, N-1) -> (-1 \, 0);
-#N canvas 331 92 494 345 META 0;
-#X text 12 135 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 95 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION frequency domain phasor~ (for traversing
-spectra);
-#X text 12 75 INLET_0 float;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 115 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 352 267 pd META;
-#X obj 128 131 frequor~;
diff --git a/externals/creb-old/doc/fwarp-help.pd b/externals/creb-old/doc/fwarp-help.pd
deleted file mode 100644
index 71667a559a724301071e455f7ad21641092a2234..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/fwarp-help.pd
+++ /dev/null
@@ -1,48 +0,0 @@
-#N canvas 0 26 448 408 10;
-#X obj 18 85 fwarp;
-#X floatatom 18 53 5 0 0 0 - - -;
-#X floatatom 18 121 7 0 0 0 - - -;
-#X text 112 49 fwarp - warps a frequency using the formula;
-#X obj 173 261 xfm~ 0 0 0 0;
-#X obj 173 218 fwarp;
-#X floatatom 173 186 5 0 0 0 - - -;
-#X obj 117 260 osc~;
-#X obj 152 324 vol~;
-#X obj 152 350 dac~;
-#X floatatom 212 298 5 0 0 0 - - -;
-#X obj 351 263 xfm~ 0 0 0 0;
-#X floatatom 351 188 5 0 0 0 - - -;
-#X obj 295 262 osc~;
-#X obj 330 326 vol~;
-#X obj 330 352 dac~;
-#X floatatom 390 300 5 0 0 0 - - -;
-#X text 132 126 example: xfm~ uses warped frequencies;
-#X text 112 67 out = tan(2pi*in/sr) * (sr/2pi);
-#N canvas 482 199 494 344 META 0;
-#X text 12 135 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS control;
-#X text 12 45 DESCRIPTION warp a frequency using the formula out =
-tan(2pi*in/sr) * (sr/2pi);
-#X text 12 75 INLET_0 float;
-#X text 12 95 OUTLET_0 float;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 115 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 399 388 pd META;
-#X connect 0 0 2 0;
-#X connect 1 0 0 0;
-#X connect 4 0 8 0;
-#X connect 5 0 4 0;
-#X connect 6 0 5 0;
-#X connect 6 0 7 0;
-#X connect 7 0 8 0;
-#X connect 8 0 9 0;
-#X connect 8 0 9 1;
-#X connect 10 0 8 1;
-#X connect 11 0 14 0;
-#X connect 12 0 13 0;
-#X connect 12 0 11 0;
-#X connect 13 0 14 0;
-#X connect 14 0 15 0;
-#X connect 14 0 15 1;
-#X connect 16 0 14 1;
diff --git a/externals/creb-old/doc/icep~-help.pd b/externals/creb-old/doc/icep~-help.pd
deleted file mode 100644
index fa8a80f67f4a360119e02afe2398a01dcfabe6bf..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/icep~-help.pd
+++ /dev/null
@@ -1,17 +0,0 @@
-#N canvas 0 26 488 228 10;
-#X text 229 45 backward cepstrum;
-#X text 229 64 using normalized fft/ifft objects;
-#N canvas 331 92 494 506 META 0;
-#X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 105 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION backward cepstrum;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 125 OUTLET_1 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 145 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 438 207 pd META;
-#X obj 151 51 icep~;
diff --git a/externals/creb-old/doc/idsfosc~-help.pd b/externals/creb-old/doc/idsfosc~-help.pd
deleted file mode 100644
index 132f60e8b09b0cc0bfdc06d8bbdf8edb595b249d..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/idsfosc~-help.pd
+++ /dev/null
@@ -1,19 +0,0 @@
-#N canvas 0 26 454 368 10;
-#X text 59 21 complex form of the (infinite) discrete summation oscillator
-;
-#X text 62 38 1/(1-az) \, with z = e^(jw);
-#N canvas 331 92 494 345 META 0;
-#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 85 INLET_0 signal;
-#X text 12 105 INLET_1 signal;
-#X text 12 145 OUTLET_1 signal;
-#X text 12 55 DESCRIPTION complex form of the (infinite) discrete summation
-oscillator;
-#X text 12 5 KEYWORDS signal abstraction oscillator needs_work (example
-patch);
-#X text 12 35 LICENSE GPL v2;
-#X text 12 165 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 401 345 pd META;
-#X obj 80 110 idsfosc~;
diff --git a/externals/creb-old/doc/inv-help.pd b/externals/creb-old/doc/inv-help.pd
deleted file mode 100644
index bfb658363a9b0627afd438b15df1bb0be4c05c07..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/inv-help.pd
+++ /dev/null
@@ -1,13 +0,0 @@
-#N canvas 0 26 450 300 10;
-#N canvas 331 92 494 307 META 0;
-#X text 12 125 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION inverse;
-#X text 12 65 INLET_0 float;
-#X text 12 85 OUTLET_0 float;
-#X text 12 5 KEYWORDS control abstraction needs_work (example patch)
-;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 25 LICENSE GPL v2;
-#X restore 391 275 pd META;
-#X obj 139 143 inv;
diff --git a/externals/creb-old/doc/junction~-help.pd b/externals/creb-old/doc/junction~-help.pd
deleted file mode 100644
index f405ce6cb0fdf29cbf817fede36866780af3d928..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/junction~-help.pd
+++ /dev/null
@@ -1,72 +0,0 @@
-#N canvas 0 26 390 300 10;
-#X obj 181 138 junction~ 4;
-#X obj 253 167 delwrite~ del1 1000;
-#X obj 123 51 vd~ del1;
-#X obj 183 51 vd~ del2;
-#X obj 244 51 vd~ del3;
-#X obj 304 51 vd~ del4;
-#X obj 123 30 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--262144 -1 -1 0 256;
-#X obj 183 30 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--262144 -1 -1 0 256;
-#X obj 245 31 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--262144 -1 -1 0 256;
-#X obj 305 31 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--262144 -1 -1 0 256;
-#X obj 63 262 dac~;
-#X obj 13 121 ead~;
-#X obj 30 97 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--262144 -1 -1 0 256;
-#X obj 90 97 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--262144 -1 -1 0 256;
-#X obj 4 97 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1
-;
-#X obj 229 189 delwrite~ del2 1000;
-#X obj 205 210 delwrite~ del3 1000;
-#X obj 181 232 delwrite~ del4 1000;
-#X msg 313 111 random \$1;
-#X obj 314 85 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--262144 -1 -1 0 256;
-#X text 61 5 junction~: a circular lossless signal junction;
-#X obj 58 238 vols~;
-#X obj 105 221 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10
--262144 -1 -1 0 256;
-#N canvas 379 250 494 421 META 0;
-#X text 12 245 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION a circular lossless signal junction;
-#X text 12 65 INLET_0 signal random;
-#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 165 OUTLET_1 signal;
-#X text 12 185 OUTLET_2 signal;
-#X text 12 205 OUTLET_3 signal;
-#X text 12 5 KEYWORDS signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 225 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 341 280 pd META;
-#X connect 0 0 17 0;
-#X connect 0 0 21 0;
-#X connect 0 1 16 0;
-#X connect 0 1 21 1;
-#X connect 0 2 15 0;
-#X connect 0 3 1 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 1;
-#X connect 4 0 0 2;
-#X connect 5 0 0 3;
-#X connect 6 0 2 0;
-#X connect 7 0 3 0;
-#X connect 8 0 4 0;
-#X connect 9 0 5 0;
-#X connect 11 0 0 0;
-#X connect 12 0 11 1;
-#X connect 13 0 11 2;
-#X connect 14 0 11 0;
-#X connect 18 0 0 0;
-#X connect 19 0 18 0;
-#X connect 21 0 10 0;
-#X connect 21 1 10 1;
-#X connect 22 0 21 2;
diff --git a/externals/creb-old/doc/lattice3-help.pd b/externals/creb-old/doc/lattice3-help.pd
deleted file mode 100644
index ffd951da3330a9e81b2ca209ff087d500b6dbb51..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/lattice3-help.pd
+++ /dev/null
@@ -1,15 +0,0 @@
-#N canvas 0 26 450 300 10;
-#X text 22 4 expand harmonic lattice vector in the (2 \, 3/2 \, 5/4)
-basis;
-#N canvas 331 92 494 345 META 0;
-#X text 12 125 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 65 INLET_0 signal;
-#X text 12 45 DESCRIPTION expand a 3D harmonic lattice vector;
-#X text 12 5 KEYWORDS control abstraction needs_work (example patch)
-;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 391 275 pd META;
-#X obj 74 93 lattice3;
diff --git a/externals/creb-old/doc/lattice~-help.pd b/externals/creb-old/doc/lattice~-help.pd
deleted file mode 100644
index 5e0a72d87b36d1977e3e063944ad17b7b3b66213..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/lattice~-help.pd
+++ /dev/null
@@ -1,75 +0,0 @@
-#N canvas 0 26 433 557 10;
-#X obj 57 -77 vsl 15 250 -1 1 0 1 empty empty empty 20 8 0 8 -262144
--1 -1 12500 1;
-#X msg 57 223 rc 0 \$1;
-#X obj 88 -78 vsl 15 250 -1 1 0 1 empty empty empty 20 8 0 8 -262144
--1 -1 6432 1;
-#X obj 119 -77 vsl 15 250 -1 1 0 1 empty empty empty 20 8 0 8 -262144
--1 -1 3732 1;
-#X obj 149 -77 vsl 15 250 -1 1 0 1 empty empty empty 20 8 0 8 -262144
--1 -1 4332 1;
-#X obj 179 -77 vsl 15 250 -1 1 0 1 empty empty empty 20 8 0 8 -262144
--1 -1 21232 1;
-#X obj 210 -78 vsl 15 250 -1 1 0 1 empty empty empty 20 8 0 8 -262144
--1 -1 24900 1;
-#X obj 241 -78 vsl 15 250 -1 1 0 1 empty empty empty 20 8 0 8 -262144
--1 -1 18232 1;
-#X obj 271 -77 vsl 15 250 -1 1 0 1 empty empty empty 20 8 0 8 -262144
--1 -1 16932 1;
-#X msg 86 199 rc 1 \$1;
-#X msg 118 224 rc 2 \$1;
-#X msg 147 200 rc 3 \$1;
-#X msg 179 223 rc 4 \$1;
-#X msg 208 199 rc 5 \$1;
-#X msg 240 224 rc 6 \$1;
-#X msg 269 200 rc 7 \$1;
-#X floatatom 154 -125 5 -1 1 0 - - -;
-#X obj 64 302 lattice~ 8;
-#X obj 6 254 noise~;
-#X obj 63 363 vol~;
-#X obj 63 397 dac~;
-#X floatatom 85 333 5 0 0 0 - - -;
-#X text 159 298 lattice~ a lattice filter;
-#X text 139 333 [rc <index> <val>] sets reflection coefficient;
-#X text 159 311 creation argument sets order;
-#X obj 27 330 dist~ 1;
-#N canvas 379 254 494 344 META 0;
-#X text 12 125 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 25 LICENSE;
-#X text 12 45 DESCRIPTION a lattic filter;
-#X text 12 5 KEYWORDS signal filter;
-#X text 12 65 INLET_0 signal rc;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 383 409 pd META;
-#X connect 0 0 1 0;
-#X connect 1 0 17 0;
-#X connect 2 0 9 0;
-#X connect 3 0 10 0;
-#X connect 4 0 11 0;
-#X connect 5 0 12 0;
-#X connect 6 0 13 0;
-#X connect 7 0 14 0;
-#X connect 8 0 15 0;
-#X connect 9 0 17 0;
-#X connect 10 0 17 0;
-#X connect 11 0 17 0;
-#X connect 12 0 17 0;
-#X connect 13 0 17 0;
-#X connect 14 0 17 0;
-#X connect 15 0 17 0;
-#X connect 16 0 0 0;
-#X connect 16 0 2 0;
-#X connect 16 0 3 0;
-#X connect 16 0 4 0;
-#X connect 16 0 5 0;
-#X connect 16 0 6 0;
-#X connect 16 0 7 0;
-#X connect 16 0 8 0;
-#X connect 17 0 25 0;
-#X connect 18 0 17 0;
-#X connect 19 0 20 1;
-#X connect 19 0 20 0;
-#X connect 21 0 19 1;
-#X connect 25 0 19 0;
diff --git a/externals/creb-old/doc/lpifft~-help.pd b/externals/creb-old/doc/lpifft~-help.pd
deleted file mode 100644
index 8a4510c91fae2dc347dc7c5aec50c5f92cda3a09..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/lpifft~-help.pd
+++ /dev/null
@@ -1,20 +0,0 @@
-#N canvas 0 26 463 346 10;
-#X text 18 7 ifft with rectangular lowpass for anti-aliased dynwav
-;
-#X text 9 18 creation arg = fft size \, right inlet = dynwav cutoff
-freq;
-#N canvas 331 92 494 386 META 0;
-#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 145 OUTLET_1 signal;
-#X text 12 105 INLET_2 float;
-#X text 12 45 DESCRIPTION ifft + lowpass (for anti-aliased dynwav)
-;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 165 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example);
-#X restore 412 324 pd META;
-#X obj 57 112 lpifft~;
diff --git a/externals/creb-old/doc/pdynwav~-help.pd b/externals/creb-old/doc/pdynwav~-help.pd
deleted file mode 100644
index e4f4f0ec5d6f1b9ce31fb1d30bc1fdf191a9f099..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/pdynwav~-help.pd
+++ /dev/null
@@ -1,14 +0,0 @@
-#N canvas 0 26 194 151 10;
-#X obj 35 15 pdynwav~;
-#N canvas 80 80 494 326 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 125 AUTHOR Tom Shouten;
-#X text 12 105 OUTLET_0 signal;
-#X text 12 65 INLET_0 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 85 INLET_1 float;
-#X text 12 45 DESCRIPTION phasor~ + dynwav~;
-#X text 12 25 LICENSE GPL v2;
-#X restore 143 129 pd META;
diff --git a/externals/creb-old/doc/permut~-help.pd b/externals/creb-old/doc/permut~-help.pd
deleted file mode 100644
index 131281e25b7dd7e3efb2571edcbe7033d03a6d80..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/permut~-help.pd
+++ /dev/null
@@ -1,30 +0,0 @@
-#N canvas 0 26 443 234 10;
-#X text 29 10 permut~ performs a random permutation on a signal block
-;
-#X text 30 27 mainly intended for shuffling spectral data (dynwav)
-;
-#X obj 73 127 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 96 126 random;
-#X text 154 124 bang or random create a new random permutation;
-#X obj 30 91 osc~;
-#X obj 30 166 permut~;
-#X obj 29 210 dac~;
-#X floatatom 30 61 5 0 0 0 - - -;
-#N canvas 379 254 494 344 META 0;
-#X text 12 125 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal random;
-#X text 12 45 DESCRIPTION perform a random permutation on a signal
-block;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 65 INLET_0 signal bang random;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 385 210 pd META;
-#X connect 2 0 6 0;
-#X connect 3 0 6 0;
-#X connect 5 0 6 0;
-#X connect 6 0 7 0;
-#X connect 6 0 7 1;
-#X connect 8 0 5 0;
diff --git a/externals/creb-old/doc/qmult~-help.pd b/externals/creb-old/doc/qmult~-help.pd
deleted file mode 100644
index 74e698d510f4d2b48125b4a07e2299f381d96b2a..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/qmult~-help.pd
+++ /dev/null
@@ -1,83 +0,0 @@
-#N canvas 0 26 658 342 10;
-#X obj 111 145 qnorm~;
-#X obj 38 71 osc~ 30;
-#X obj 101 71 osc~ 40;
-#X obj 163 70 osc~ 50;
-#X obj 229 71 osc~ 60;
-#X obj 143 319 dac~;
-#X obj 123 244 vol~;
-#X obj 163 244 vol~;
-#X floatatom 230 230 5 0 0 0 - - -;
-#X floatatom 58 36 5 0 0 0 - - -;
-#X floatatom 107 36 5 0 0 0 - - -;
-#X floatatom 159 36 5 0 0 0 - - -;
-#X floatatom 208 36 5 0 0 0 - - -;
-#X obj 167 282 hip~ 10;
-#X obj 103 281 hip~ 10;
-#X text 402 190 qmult multiplies 2 quaternion signals;
-#X floatatom 347 35 5 0 0 0 - - -;
-#X floatatom 396 35 5 0 0 0 - - -;
-#X floatatom 448 35 5 0 0 0 - - -;
-#X floatatom 497 35 5 0 0 0 - - -;
-#X obj 327 70 osc~ 70;
-#X obj 390 70 osc~ 80;
-#X obj 452 69 osc~ 90;
-#X obj 518 70 osc~ 100;
-#X obj 410 136 qnorm~;
-#X obj 106 195 qmult~ 0 0 0 0 0;
-#X text 410 208 "quaternion ring modulation";
-#X text 403 245 the inlets are in 1 x real 3 x imag form;
-#N canvas 375 135 494 397 META 0;
-#X text 12 325 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal;
-#X text 12 45 DESCRIPTION multiply 2 quarternion signals;
-#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 INLET_4 signal;
-#X text 12 165 INLET_5 signal;
-#X text 12 185 INLET_6 signal;
-#X text 12 205 INLET_7 signal;
-#X text 12 225 OUTLET_0 signal;
-#X text 12 245 OUTLET_1 signal;
-#X text 12 265 OUTLET_2 signal;
-#X text 12 285 OUTLET_3 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 305 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 598 319 pd META;
-#X connect 0 0 25 0;
-#X connect 0 1 25 1;
-#X connect 0 2 25 2;
-#X connect 0 3 25 3;
-#X connect 1 0 0 0;
-#X connect 2 0 0 1;
-#X connect 3 0 0 2;
-#X connect 4 0 0 3;
-#X connect 6 0 14 0;
-#X connect 7 0 13 0;
-#X connect 8 0 7 1;
-#X connect 8 0 6 1;
-#X connect 9 0 1 0;
-#X connect 10 0 2 0;
-#X connect 11 0 3 0;
-#X connect 12 0 4 0;
-#X connect 13 0 5 1;
-#X connect 14 0 5 0;
-#X connect 16 0 20 0;
-#X connect 17 0 21 0;
-#X connect 18 0 22 0;
-#X connect 19 0 23 0;
-#X connect 20 0 24 0;
-#X connect 21 0 24 1;
-#X connect 22 0 24 2;
-#X connect 23 0 24 3;
-#X connect 24 0 25 4;
-#X connect 24 1 25 5;
-#X connect 24 2 25 6;
-#X connect 24 3 25 7;
-#X connect 25 0 6 0;
-#X connect 25 1 6 0;
-#X connect 25 2 7 0;
-#X connect 25 3 7 0;
diff --git a/externals/creb-old/doc/qnorm~-help.pd b/externals/creb-old/doc/qnorm~-help.pd
deleted file mode 100644
index 789ee5dbf973056074b2788e23fb8bb63bcb4603..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/qnorm~-help.pd
+++ /dev/null
@@ -1,52 +0,0 @@
-#N canvas 0 26 352 287 10;
-#X obj 119 137 qnorm~;
-#X obj 96 68 osc~ 30;
-#X obj 159 68 osc~ 40;
-#X obj 221 67 osc~ 50;
-#X obj 287 68 osc~ 60;
-#X obj 131 265 dac~;
-#X obj 111 190 vol~;
-#X obj 151 190 vol~;
-#X floatatom 185 154 5 0 0 0 - - -;
-#X floatatom 116 33 5 0 0 0 - - -;
-#X floatatom 165 33 5 0 0 0 - - -;
-#X floatatom 217 33 5 0 0 0 - - -;
-#X floatatom 266 33 5 0 0 0 - - -;
-#X obj 155 228 hip~ 10;
-#X obj 91 227 hip~ 10;
-#X text 45 -2 qnorm normalizes a quaternion signal to unit norm;
-#N canvas 350 117 494 537 META 0;
-#X text 12 245 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal;
-#X text 12 45 DESCRIPTION normalize a quaternion signal to unit norm
-;
-#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 165 OUTLET_1 signal;
-#X text 12 185 OUTLET_2 signal;
-#X text 12 205 OUTLET_3 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 225 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 301 265 pd META;
-#X connect 0 0 6 0;
-#X connect 0 1 6 0;
-#X connect 0 2 7 0;
-#X connect 0 3 7 0;
-#X connect 1 0 0 0;
-#X connect 2 0 0 1;
-#X connect 3 0 0 2;
-#X connect 4 0 0 3;
-#X connect 6 0 14 0;
-#X connect 7 0 13 0;
-#X connect 8 0 7 1;
-#X connect 8 0 6 1;
-#X connect 9 0 1 0;
-#X connect 10 0 2 0;
-#X connect 11 0 3 0;
-#X connect 12 0 4 0;
-#X connect 13 0 5 1;
-#X connect 14 0 5 0;
diff --git a/externals/creb-old/doc/ramp~-help.pd b/externals/creb-old/doc/ramp~-help.pd
deleted file mode 100644
index ed90a0b2f91452423cb193b6692bccb8dcd78623..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/ramp~-help.pd
+++ /dev/null
@@ -1,16 +0,0 @@
-#N canvas 0 26 450 300 10;
-#X obj 29 19 ramp~;
-#X obj 153 21 blockramp~;
-#N canvas 107 51 494 364 META 0;
-#X text 12 5 ALIAS blockramp~;
-#X text 12 95 INLET_0 bang;
-#X text 12 75 DESCRIPTION retriggerable counter for dsp signals;
-#X text 12 135 LIBRARY external creb;
-#X text 12 115 OUTLET_0 signal;
-#X text 12 175 HELP_PATCH_AUTHORS Jonathan Wilkes for PDDP.;
-#X text 12 25 KEYWORDS signal conversion ramp block_oriented needs_work
-(example patch);
-#X text 12 55 LICENSE GPL v2;
-#X text 12 155 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 395 276 pd META;
-#X text 95 121 needs an example;
diff --git a/externals/creb-old/doc/ratio-help.pd b/externals/creb-old/doc/ratio-help.pd
deleted file mode 100644
index a63e7b878f8e352d23dce85f5cbfc8dd84e078c0..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/ratio-help.pd
+++ /dev/null
@@ -1,28 +0,0 @@
-#N canvas 0 26 414 244 10;
-#X obj 75 99 ratio;
-#X obj 103 192 osc~;
-#X floatatom 131 122 5 0 0 0 - - -;
-#X obj 103 150 *;
-#X obj 103 223 dac~;
-#X floatatom 75 51 5 0 0 0 - - -;
-#X floatatom 35 135 5 0 0 0 - - -;
-#X text 189 32 ratio is an octave shifter.;
-#X text 188 46 output is between 1 and 2;
-#X text 189 62 it computes 2^(log2(x)-int(log2(x)));
-#N canvas 379 254 494 344 META 0;
-#X text 12 125 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS control;
-#X text 12 45 DESCRIPTION octave shifter;
-#X text 12 65 INLET_0 float;
-#X text 12 85 OUTLET_0 float;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 105 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 364 223 pd META;
-#X connect 0 0 3 0;
-#X connect 0 0 6 0;
-#X connect 1 0 4 0;
-#X connect 1 0 4 1;
-#X connect 2 0 3 1;
-#X connect 3 0 1 0;
-#X connect 5 0 0 0;
diff --git a/externals/creb-old/doc/reference.txt b/externals/creb-old/doc/reference.txt
deleted file mode 100644
index ff314e0cbf0230ff15c17e4a138b27f0d55d33f1..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/reference.txt
+++ /dev/null
@@ -1,82 +0,0 @@
-abstractions
-
-64k		a beat shuffler using raw 64k/break sample banks
-bdft,bdfts	set decay time (ms/sec) and osc frequency (for bdiag~)
-bhip~		butterworth high pass filter
-blop~		butterworth low pass filter
-bpm		convert bpm to metro time and phasor freq
-cadd~		complex add
-ccmap~		conformal self map of the unit disk
-cconj~		complex conjugate
-cep~/icep~	complex cepstrum and inverse
-cinv~		complex inverse
-cmul~		complex multiplication
-count		modulo counter
-cosc~		complex oscillator
-csub~		complex subtraction
-dsfosc~		(finite) discrete summation formula oscillator
-eadh~		exponential attack decay (with hold == duration)
-eadsrh~		exponential attack decay sustain release (..)
-expmap~		exponential map
-fblock		block relative frequency conversion
-fmod		floating point modulo
-fmop~		fm operator
-frequor~	like phasor, but for block spectra
-idsfosc~	infinite discrete summation formula
-inv		inverse
-lattice3	expand a 3D harmonic lattice vector
-lpfft~		ifft + lowpass (for anti-aliased dynwav)
-pdynwav~	phasor~ + dynwav~
-scale7		arbitrary 7 tone scale
-ti_hihat	hihat gop object
-ti_snare	snare drum gop object
-tblock		block relative time conversion
-ucnorm~		normalize a complex signal to unit norm
-ucmod~		unit circle modulator
-vols~		volume for a stereo signal
-vol~		volume for a mono signal
-
-externs
-
-ffpoly		finite field polynomial
-fwarp		tangent warp frequency
-ratio		multiply by 2^k so result is 1<=r<2 (transposer)		
-
-
-tilde externs
-
-abs~		absolute value
-bdiag~		block diagonal state space system (spectral processor)
-bfft~		reordered fft
-bitsplit~	convert signal to binary vector
-bwin~		several windowing functions and spectral envelopes
-biquadseries~	biquad second order sections (i.e. butterworth)
-bitsplit~	convert a signal to binary representation
-blocknorm~	normalize a (set of) dsp block(s) (i.e. for spectral processing)
-blosc~		several bandlimited oscillators
-cheby~		chebyshev polynomial waveshaper
-clog~		complex log
-diag~		diagonal state space system (spectral processor)
-dist~		several distortions & waveshaping functions
-dwt~		discrete wavelet transform
-idwt~		inverse
-dynwav~		dynamic wavetable: use a signal block as wavetable
-ead~		exp. attack decay
-eadsr~		exp. attack decay sustain release
-ear~		exp. attack release
-filterortho~	several biquad filters, orthogonal implementation
-fdn~		a feedback delay network
-junction~	a circulant lossless signal junction
-lattice~	lattice filter
-matrix~		multiply a signal block with an arbitrary matrix
-permut~		random permute a signal block
-qmult~		multiply 2 quaternion signals
-qnorm~		normalize a quaternion signal (or any 4 channel sig)
-ramp~		generates an integer ramp
-resofilt~	a reso filter (4pole, 3pole)
-sbosc~		smallband oscillator (i.e. for formant synthesis)
-statwav~	a tabread4~ clone with 8 point interpolation
-scrollgrid1D~	a stabilized scroll grid chaotic oscillator
-tabreadmix~	a tabread~ clone with overlap add (for smooth time stretch)
-xfm~		coupled frequency modulation
-
diff --git a/externals/creb-old/doc/resofilt~-help.pd b/externals/creb-old/doc/resofilt~-help.pd
deleted file mode 100644
index ce77ba41514902d39ddbe8e031089fb1742220f0..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/resofilt~-help.pd
+++ /dev/null
@@ -1,92 +0,0 @@
-#N canvas 0 26 638 489 10;
-#X floatatom 50 203 5 0 0 0 - - -;
-#X obj 118 433 vol~;
-#X floatatom 157 409 5 0 0 0 - - -;
-#X obj 110 468 dac~;
-#X floatatom 291 252 5 0 0 0 - - -;
-#X floatatom 290 301 5 0 0 0 - - -;
-#X obj 119 341 vol~;
-#X floatatom 142 318 5 0 0 0 - - -;
-#X obj 295 232 hsl 128 15 20 20000 1 1 empty empty empty -2 -6 0 8
--262144 -1 -1 7900 1;
-#X obj 294 282 hsl 128 15 0 1 0 1 empty empty empty -2 -6 0 8 -262144
--1 -1 5600 1;
-#X obj 242 225 ead~;
-#X obj 243 268 *~;
-#X obj 235 203 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 259 203 5 0 0 0 - - -;
-#X floatatom 305 202 5 0 0 0 - - -;
-#X obj 19 170 ead~;
-#X obj 20 273 *~;
-#X obj 19 102 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X floatatom 35 147 5 0 0 0 - - -;
-#X floatatom 76 147 5 0 0 0 - - -;
-#X obj 86 71 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 87 44 metro 125;
-#X obj 88 20 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1
-;
-#X floatatom 147 16 5 0 0 0 - - -;
-#X msg 34 126 10;
-#X msg 76 126 400;
-#X msg 268 180 20;
-#X obj 36 225 blosc~ saw;
-#X obj 37 248 -~;
-#X msg 141 297 70;
-#X text 281 96 all inputs are signal inlets. frequency and reso are
-interpolated from their average (rms) value.;
-#X msg 305 181 500;
-#X text 279 28 resofilt~: high-quality implementations of the moog
-4-pole and tb303 3-pole reso ladder filter. state-limited which means
-it distorts on high reso input \, and can go into self oscillation
-when reso > 1;
-#X msg 53 182 70;
-#X obj 119 377 resofilt~ 4;
-#X text 222 378 creation argument 4 = 4pole \, 3 = 3pole;
-#N canvas 379 254 494 344 META 0;
-#X text 12 175 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal filter;
-#X text 12 45 DESCRIPTION high-quality implementations of the moog
-4-pole and tb303 3-pole res ladder filter;
-#X text 12 75 INLET_0 signal;
-#X text 12 95 INLET_1 signal;
-#X text 12 115 INLET_2 signal;
-#X text 12 135 OUTLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 155 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 588 468 pd META;
-#X connect 0 0 27 0;
-#X connect 1 0 3 0;
-#X connect 1 0 3 1;
-#X connect 2 0 1 1;
-#X connect 4 0 11 1;
-#X connect 6 0 34 0;
-#X connect 7 0 6 1;
-#X connect 8 0 4 0;
-#X connect 9 0 5 0;
-#X connect 10 0 11 0;
-#X connect 12 0 10 0;
-#X connect 13 0 10 1;
-#X connect 14 0 10 2;
-#X connect 15 0 16 0;
-#X connect 16 0 6 0;
-#X connect 17 0 15 0;
-#X connect 18 0 15 1;
-#X connect 19 0 15 2;
-#X connect 20 0 12 0;
-#X connect 20 0 17 0;
-#X connect 21 0 20 0;
-#X connect 22 0 21 0;
-#X connect 23 0 21 1;
-#X connect 24 0 18 0;
-#X connect 25 0 19 0;
-#X connect 26 0 13 0;
-#X connect 27 0 28 0;
-#X connect 28 0 16 1;
-#X connect 29 0 7 0;
-#X connect 31 0 14 0;
-#X connect 33 0 0 0;
-#X connect 34 0 1 0;
diff --git a/externals/creb-old/doc/sbosc~-help.pd b/externals/creb-old/doc/sbosc~-help.pd
deleted file mode 100644
index a033aeab4b43a140b931f7538318fe89eae2fa37..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/sbosc~-help.pd
+++ /dev/null
@@ -1,49 +0,0 @@
-#N canvas 0 26 349 360 10;
-#X obj 70 158 sbosc~;
-#X floatatom 101 285 5 0 0 0 - - -;
-#X obj 70 308 vol~;
-#X obj 58 340 dac~;
-#X floatatom 70 68 5 0 0 0 - - -;
-#X floatatom 136 106 5 0 0 0 - - -;
-#X msg 129 139 0;
-#X text 171 139 phase;
-#X text 56 44 pitch;
-#X text 119 84 center freq;
-#X text 38 14 sbosc~: smallband periodic complex oscillator.;
-#X obj 134 53 hsl 128 15 20 20000 1 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 213 91 hsl 128 15 20 20000 1 0 empty empty empty -2 -6 0 8 -262144
--1 -1 0 1;
-#X obj 85 228 idsfosc~;
-#X obj 70 256 *~;
-#X floatatom 136 206 5 0 0 0 - - -;
-#X obj 194 191 hsl 128 15 -0.99 0.99 0 0 empty empty empty -2 -6 0
-8 -262144 -1 -1 0 1;
-#X text 136 188 bw;
-#N canvas 379 254 494 366 META 0;
-#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION smallband periodic complex oscillator;
-#X text 12 5 KEYWORDS signal oscillator;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 105 INLET_2 float;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 145 OUTLET_1 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 165 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 299 340 pd META;
-#X connect 0 0 14 0;
-#X connect 1 0 2 1;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X connect 4 0 0 0;
-#X connect 4 0 13 0;
-#X connect 5 0 0 1;
-#X connect 6 0 0 2;
-#X connect 11 0 4 0;
-#X connect 12 0 5 0;
-#X connect 13 0 14 1;
-#X connect 14 0 2 0;
-#X connect 15 0 13 1;
-#X connect 16 0 15 0;
diff --git a/externals/creb-old/doc/scale7-help.pd b/externals/creb-old/doc/scale7-help.pd
deleted file mode 100644
index b29c6601fb232587b0c67161e1512deaf8f6b0f6..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/scale7-help.pd
+++ /dev/null
@@ -1,14 +0,0 @@
-#N canvas 0 26 450 373 10;
-#N canvas 331 92 494 323 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 65 INLET_0 float;
-#X text 12 85 INLET_1 list;
-#X text 12 105 OUTLET_0 float;
-#X text 12 5 KEYWORDS control abstraction needs_work (example patch)
-;
-#X text 12 45 DESCRIPTION arbitrary 7 tone scale;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 398 347 pd META;
-#X obj 151 152 scale7;
diff --git a/externals/creb-old/doc/scrollgrid1D~-help.pd b/externals/creb-old/doc/scrollgrid1D~-help.pd
deleted file mode 100644
index 45695deec749f8ba1652d811dd4eb334c1573b2e..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/scrollgrid1D~-help.pd
+++ /dev/null
@@ -1,127 +0,0 @@
-#N canvas 0 26 659 650 10;
-#X obj 116 111 scrollgrid1D~;
-#X msg 36 87 reset;
-#X floatatom 111 82 5 0 0 0 - - -;
-#X floatatom 187 82 5 0 0 0 - - -;
-#X floatatom 237 81 5 0 0 0 - - -;
-#X floatatom 290 80 5 0 0 0 - - -;
-#X obj 401 190 tabwrite~ t;
-#X obj 401 142 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 504 196 table t 10000;
-#X obj 123 217 vol~;
-#X floatatom 146 191 5 0 0 0 - - -;
-#X text 103 42 frequency;
-#X text 197 40 T1;
-#X text 249 40 T2;
-#X text 301 41 N;
-#X msg 111 61 350;
-#X msg 235 61 1;
-#X msg 291 60 3;
-#X msg 188 60 12;
-#X obj 379 212 tabwrite~ t;
-#X obj 379 142 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X obj 353 233 tabwrite~ t;
-#X obj 353 143 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X text 253 255 parameters:;
-#X text 286 322 N = number of scrolls or unstable rotation centers
-in attractor;
-#X text 253 357 outputs:;
-#X text 250 407 some remarks;
-#X text 286 375 the first output is alongside the scoll centers \,
-the other two are orthogonal to this line.;
-#X text 368 125 X Y Z;
-#X obj 178 217 vol~;
-#X floatatom 201 191 5 0 0 0 - - -;
-#X obj 64 218 vol~;
-#X floatatom 87 192 5 0 0 0 - - -;
-#X obj 63 277 hip~ 10;
-#X floatatom 133 281 5 0 0 0 - - -;
-#X obj 63 300 blop~ 4;
-#X msg 132 258 500;
-#X msg 163 258 5000;
-#X text 285 288 T1 = unstable time constant in ms ("attack" time);
-#X text 285 305 T2 = stable time constant in ms ("release" time);
-#X text 285 572 the entire circuit is clipped \, which means that for
-some parameter values that would normally cause a blowup \, its behaviour
-is limited to that of an oscillator.;
-#X obj 4 278 hip~ 10;
-#X obj 4 301 blop~ 4;
-#X floatatom 180 165 5 0 0 0 - - -;
-#X obj 4 397 tabwrite~ t;
-#X obj 21 375 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 142 61 5000;
-#X text 284 272 freq = spiral frequency in Hz;
-#X text 45 11 stabilized scroll grid chaotic oscillator with scroll
-centers located on a line.;
-#X msg 204 257 17000;
-#X text 285 427 this chaotic system is a switched unstable linear system.
-it consists of N scrolls (outward spirals). when the amplitude of the
-spiral has reached a certain threshold \, it is switched to be attracted
-by a neighbouring scroll. the freq parameter determines the frequency
-of the outward spiralling motion on a scroll. T1 is the outward spiralling
-time constant. T1 large means slow buildup or mild chaotic motion \,
-T1 small means fast buildup or turbulent chaotic motion. T2 is the
-time constant with which a trajectory is attracted to the plane of
-a scroll. T2 small means fast attraction \, T2 large means slow attraction.
-;
-#X obj 94 373 dac~ 4;
-#N canvas 375 235 494 405 META 0;
-#X text 12 235 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION stabilized scroll grid chaotic oscillator
-with scroll centers located on a line;
-#X text 12 75 INLET_0 signal reset;
-#X text 12 95 INLET_1 signal;
-#X text 12 115 INLET_2 signal;
-#X text 12 135 INLET_3 signal;
-#X text 12 155 OUTLET_0 signal;
-#X text 12 175 OUTLET_1 signal;
-#X text 12 195 OUTLET_2 signal;
-#X text 12 5 KEYWORDS signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 215 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 589 623 pd META;
-#X connect 0 0 21 0;
-#X connect 0 0 31 0;
-#X connect 0 1 9 0;
-#X connect 0 1 19 0;
-#X connect 0 2 6 0;
-#X connect 0 2 29 0;
-#X connect 1 0 0 0;
-#X connect 2 0 0 0;
-#X connect 3 0 0 1;
-#X connect 4 0 0 2;
-#X connect 5 0 0 3;
-#X connect 7 0 6 0;
-#X connect 9 0 41 0;
-#X connect 10 0 9 1;
-#X connect 15 0 2 0;
-#X connect 16 0 4 0;
-#X connect 17 0 5 0;
-#X connect 18 0 3 0;
-#X connect 20 0 19 0;
-#X connect 22 0 21 0;
-#X connect 29 0 33 0;
-#X connect 30 0 29 1;
-#X connect 31 0 33 0;
-#X connect 31 0 41 0;
-#X connect 32 0 31 1;
-#X connect 33 0 35 0;
-#X connect 34 0 35 1;
-#X connect 34 0 42 1;
-#X connect 35 0 44 0;
-#X connect 35 0 51 0;
-#X connect 36 0 34 0;
-#X connect 37 0 34 0;
-#X connect 41 0 42 0;
-#X connect 42 0 44 0;
-#X connect 42 0 51 0;
-#X connect 43 0 10 0;
-#X connect 43 0 30 0;
-#X connect 45 0 44 0;
-#X connect 46 0 2 0;
-#X connect 49 0 34 0;
diff --git a/externals/creb-old/doc/statwav~-help.pd b/externals/creb-old/doc/statwav~-help.pd
deleted file mode 100644
index 381a4614747bca3a8efc3b13a0b4ffb7daeae016..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/statwav~-help.pd
+++ /dev/null
@@ -1,15 +0,0 @@
-#N canvas 0 0 450 300 10;
-#X obj 52 29 statwav~;
-#X text 124 29 static wavetable oscillator;
-#N canvas 127 170 494 344 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 105 LIBRARY external creb;
-#X text 12 85 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION static wavetable oscillator;
-#X text 12 65 INLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 5 KEYWORDS signal array needs_work (example patch);
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 398 276 pd META;
-#X text 135 120 needs an example;
diff --git a/externals/creb-old/doc/tabreadmix~-help.pd b/externals/creb-old/doc/tabreadmix~-help.pd
deleted file mode 100644
index 006385023d9ef280f8ff54d06811a0bc1d79a348..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/tabreadmix~-help.pd
+++ /dev/null
@@ -1,56 +0,0 @@
-#N canvas 0 26 513 405 10;
-#X floatatom 199 254 5 0 0 0 - - -;
-#X obj 48 315 dac~;
-#X floatatom 38 40 5 0 0 0 - - -;
-#X text 135 7 tabreadmix~ an overlap add tabread clone;
-#X obj 288 362 soundfiler;
-#X text 203 236 right inlet: window hop size;
-#X text 249 247 (window size = 2x hop size);
-#X obj 38 77 phasor~;
-#X obj 38 124 *~;
-#X text 136 40 usage analogous to tabread~;
-#X text 136 58 only sample adressing is modulo length;
-#X obj 288 311 openpanel;
-#X obj 288 291 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 171 97 bang;
-#X text 219 97 reset windowing;
-#X msg 171 150 pitch \$1;
-#X floatatom 171 132 5 0 0 0 - - -;
-#X text 245 151 set window hop size corresponding to pitch;
-#X floatatom 172 178 5 0 0 0 - - -;
-#X msg 172 196 chunks \$1;
-#X text 246 196 set hop size to 1/xth of length;
-#X obj 374 304 table sample123;
-#X msg 288 338 read -resize \$1 sample123;
-#X obj 288 386 s length;
-#X obj 54 100 r length;
-#X obj 57 275 tabreadmix~ sample123;
-#X text 136 24 simple (sample rate synchronous) playback;
-#N canvas 379 254 494 344 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal array;
-#X text 12 65 INLET_0 bang signal pitch chunks;
-#X text 12 85 INLET_1 float;
-#X text 12 105 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION an overlap add tabread~ clone;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 464 386 pd META;
-#X connect 0 0 25 1;
-#X connect 2 0 7 0;
-#X connect 4 0 23 0;
-#X connect 7 0 8 0;
-#X connect 8 0 25 0;
-#X connect 11 0 22 0;
-#X connect 12 0 11 0;
-#X connect 13 0 25 0;
-#X connect 15 0 25 0;
-#X connect 16 0 15 0;
-#X connect 18 0 19 0;
-#X connect 19 0 25 0;
-#X connect 22 0 4 0;
-#X connect 24 0 8 1;
-#X connect 25 0 1 0;
-#X connect 25 0 1 1;
diff --git a/externals/creb-old/doc/tblock-help.pd b/externals/creb-old/doc/tblock-help.pd
deleted file mode 100644
index f936ca1b567a61e10d535224b07219042b1bb5cc..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/tblock-help.pd
+++ /dev/null
@@ -1,20 +0,0 @@
-#N canvas 0 26 467 246 10;
-#X text 95 58 right inlet is also "active";
-#X text 95 113 for spectral domain processing;
-#X text 95 14 tblock: compute block relative time delays;
-#X text 96 28 out = left + right * (blocksize / sys_samplerate);
-#X text 96 98 main usage is to compute block synchronous time delays
-;
-#X obj 22 20 tblock;
-#N canvas 200 78 494 325 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 65 INLET_0 float;
-#X text 12 85 INLET_1 float;
-#X text 12 105 OUTLET_0 float;
-#X text 12 45 DESCRIPTION block relative time conversion;
-#X text 12 5 KEYWORDS control abstraction needs_work (example patch)
-;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 416 225 pd META;
diff --git a/externals/creb-old/doc/ti_hihat-help.pd b/externals/creb-old/doc/ti_hihat-help.pd
deleted file mode 100644
index fab07b3d7feac72d130489370d55030efa2dc10e..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/ti_hihat-help.pd
+++ /dev/null
@@ -1,20 +0,0 @@
-#N canvas 0 26 333 350 10;
-#N canvas 200 78 494 529 META 0;
-#X text 12 245 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION hihat gop object;
-#X text 12 5 KEYWORDS signal abstraction GUI needs_work (example patch)
-;
-#X text 12 65 INLET_0 float;
-#X text 12 85 INLET_1 float;
-#X text 12 105 INLET_2 float;
-#X text 12 125 INLET_3 float;
-#X text 12 145 INLET_4 float;
-#X text 12 165 INLET_5 float;
-#X text 12 185 INLET_6 float;
-#X text 12 205 OUTLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 225 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 278 327 pd META;
-#X obj 9 52 ti_hihat ----;
-#X coords 0 0 0.00245098 0.00260417 200 50 0;
diff --git a/externals/creb-old/doc/ti_snare-help.pd b/externals/creb-old/doc/ti_snare-help.pd
deleted file mode 100644
index dd14ccab134c23518d9c0f7bce8bbdd3c6f5d520..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/ti_snare-help.pd
+++ /dev/null
@@ -1,22 +0,0 @@
-#N canvas 1 26 449 391 10;
-#N canvas 200 78 494 332 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal abstraction GUI needs_work (example patch)
-;
-#X text 12 105 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION snare drum gop object;
-#X text 12 65 INLET_0 bang;
-#X text 12 85 INLET_1 float;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 395 359 pd META;
-#X obj 77 59 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
--1;
-#X obj 77 92 ti_snare;
-#X obj 76 159 output~;
-#X text 132 16 snare drum gop object;
-#X connect 1 0 2 0;
-#X connect 2 0 3 0;
-#X connect 2 0 3 1;
-#X coords 0 0 1 1 270 50 0;
diff --git a/externals/creb-old/doc/ucmod~-help.pd b/externals/creb-old/doc/ucmod~-help.pd
deleted file mode 100644
index 6e7c3ecdc07d3196f46b23872331d837cd6f9551..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/ucmod~-help.pd
+++ /dev/null
@@ -1,17 +0,0 @@
-#N canvas 0 0 404 300 10;
-#X text 84 18 unit circle modulator. (1+r conj(z)/(1+rz);
-#N canvas 331 92 494 366 META 0;
-#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 145 OUTLET_1 signal;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 45 DESCRIPTION unit circle modulator;
-#X text 12 105 INLET_2 signal;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 165 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 352 275 pd META;
-#X obj 95 121 ucmod~;
diff --git a/externals/creb-old/doc/ucnorm~-help.pd b/externals/creb-old/doc/ucnorm~-help.pd
deleted file mode 100644
index 177cbb83d50ea3490b00252aed3b7621b31bc8f0..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/ucnorm~-help.pd
+++ /dev/null
@@ -1,17 +0,0 @@
-#N canvas 0 0 450 300 10;
-#X text 59 21 normalize complex number to unit magnitude;
-#N canvas 200 78 494 353 META 0;
-#X text 12 165 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 45 DESCRIPTION normalize complex number to unit magnitude
-;
-#X text 12 5 KEYWORDS signal abstraction needs_work (example patch)
-;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 105 OUTLET_0 signal;
-#X text 12 125 OUTLET_1 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 145 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 398 277 pd META;
-#X obj 183 126 ucnorm~;
diff --git a/externals/creb-old/doc/vols~-help.pd b/externals/creb-old/doc/vols~-help.pd
deleted file mode 100644
index e9056d5c84b273d0cb3a9b33cb3559fbb6e3939c..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/vols~-help.pd
+++ /dev/null
@@ -1,25 +0,0 @@
-#N canvas 0 26 450 300 10;
-#N canvas 248 148 494 372 META 0;
-#X text 12 185 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 125 OUTLET_0 signal;
-#X text 12 65 INLET_0 signal;
-#X text 12 165 AUTHOR Tom Shouten;
-#X text 12 45 DESCRIPTION volume for a stereo signal;
-#X text 12 85 INLET_1 signal;
-#X text 12 105 INLET_2 float;
-#X text 12 145 OUTLET_1 signal;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 5 KEYWORDS signal filter abstraction;
-#X restore 393 274 pd META;
-#X obj 152 129 vols~;
-#X obj 137 36 osc~ 440;
-#X floatatom 176 95 5 0 100 0 - - -;
-#X obj 153 165 dac~;
-#X obj 156 66 osc~ 440.1;
-#X text 210 126 volume for a stereo signal;
-#X connect 1 0 4 0;
-#X connect 1 1 4 1;
-#X connect 2 0 1 0;
-#X connect 3 0 1 2;
-#X connect 5 0 1 1;
diff --git a/externals/creb-old/doc/vol~-help.pd b/externals/creb-old/doc/vol~-help.pd
deleted file mode 100644
index 0d17c0e49c6a351a54fdeffcfe33b6b1ffcdd800..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/vol~-help.pd
+++ /dev/null
@@ -1,20 +0,0 @@
-#N canvas 0 26 450 300 10;
-#N canvas 379 254 494 344 META 0;
-#X text 12 145 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 105 OUTLET_0 signal;
-#X text 12 45 DESCRIPTION volume for a mono signal;
-#X text 12 5 KEYWORDS signal filter;
-#X text 12 65 INLET_0 signal;
-#X text 12 85 INLET_1 float;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 125 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 392 273 pd META;
-#X obj 172 144 vol~;
-#X obj 171 83 osc~ 880;
-#X floatatom 193 118 5 0 100 0 - - -;
-#X obj 172 212 dac~;
-#X connect 1 0 4 0;
-#X connect 1 0 4 1;
-#X connect 2 0 1 0;
-#X connect 3 0 1 1;
diff --git a/externals/creb-old/doc/xfm~-help.pd b/externals/creb-old/doc/xfm~-help.pd
deleted file mode 100644
index 8cbb2493cb753d0da785bd2c5a2f15ef2e3d1dd4..0000000000000000000000000000000000000000
--- a/externals/creb-old/doc/xfm~-help.pd
+++ /dev/null
@@ -1,120 +0,0 @@
-#N canvas 0 26 604 604 10;
-#X text 298 24 xfm~ cross frequency modulation;
-#X msg 180 308 reset;
-#X floatatom 231 255 5 0 0 0 - - -;
-#X floatatom 282 255 5 0 0 0 - - -;
-#X floatatom 332 255 5 0 0 0 - - -;
-#X floatatom 382 255 5 0 0 0 - - -;
-#X obj 287 514 dac~;
-#X obj 231 282 lop~ 1;
-#X obj 282 282 lop~ 1;
-#X obj 332 282 lop~ 1;
-#X obj 382 282 lop~ 1;
-#X floatatom 444 268 5 0 0 0 - - -;
-#X text 228 232 freq1;
-#X text 279 232 freq2;
-#X text 337 233 fb1;
-#X text 381 234 fb2;
-#X text 297 43 freq_osc1 = freq1 + wave_out2*fb1;
-#X text 297 58 freq_osc2 = freq2 + wave_out1*fb2;
-#X obj 275 99 hsl 300 15 1 20000 1 1 empty empty empty -2 -6 0 8 -262144
--1 -1 15200 1;
-#X obj 275 121 hsl 300 15 1 20000 1 1 empty empty empty -2 -6 0 8 -262144
--1 -1 14400 1;
-#X obj 276 146 hsl 300 15 1 20000 1 1 empty empty empty -2 -6 0 8 -262144
--1 -1 18938 1;
-#X obj 276 171 hsl 300 15 1 20000 1 1 empty empty empty -2 -6 0 8 -262144
--1 -1 21000 1;
-#X floatatom 487 377 5 0 0 0 - - -;
-#X floatatom 534 375 5 0 0 0 - - -;
-#X obj 462 348 metro;
-#X floatatom 534 335 5 0 0 0 - - -;
-#X obj 463 324 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1
--1;
-#X msg 534 306 500;
-#X msg 565 305 125;
-#X msg 444 241 0.1;
-#X msg 495 306 1000;
-#X msg 150 223 type 0;
-#X msg 151 263 type 1;
-#X text 42 213 square phasor;
-#X text 45 158 algo type;
-#X text 37 257 circular phasor;
-#X text 7 371 remark: all frequencies are warped;
-#X text 8 388 (f_real = arctan(2pi*f_in)/2pi);
-#X obj 288 485 vols~;
-#X floatatom 352 453 5 0 0 0 - - -;
-#X text 7 416 for frequencies under 1000Hz;
-#X text 8 430 this effect is minimal;
-#X text 9 465 use the fwarp to convert from;
-#X text 9 478 real to warped;
-#X text 9 505 the square phasor type is warped too;
-#X text 9 520 but not in such a nice way as the;
-#X text 9 534 circular phasor;
-#X text 36 229 (chaotic 4DOF);
-#X text 5 272 (quasiperiodic 2DOF);
-#X obj 462 411 ead~ 0 0;
-#X obj 442 517 dac~;
-#X obj 435 451 *~;
-#X obj 472 451 *~;
-#X obj 443 488 vols~;
-#X floatatom 507 456 5 0 0 0 - - -;
-#X text 2 173 (can be set by creation argument);
-#N canvas 515 145 494 383 META 0;
-#X text 12 205 HELP_PATCH_AUTHORS "pd meta" information added by Jonathan
-Wilkes for Pd version 0.42.;
-#X text 12 5 KEYWORDS signal;
-#X text 12 45 DESCRIPTION cross frequency modulation;
-#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 165 OUTLET_1 signal;
-#X text 12 65 INLET_0 signal type reset;
-#X text 12 25 LICENSE GPL v2;
-#X text 12 185 AUTHOR Tom Schouten <tom@zwizwa.be>;
-#X restore 552 582 pd META;
-#X obj 277 325 xfm~;
-#X connect 1 0 57 0;
-#X connect 2 0 7 0;
-#X connect 3 0 8 0;
-#X connect 4 0 9 0;
-#X connect 5 0 10 0;
-#X connect 7 0 57 0;
-#X connect 8 0 57 1;
-#X connect 9 0 57 2;
-#X connect 10 0 57 3;
-#X connect 11 0 10 1;
-#X connect 11 0 9 1;
-#X connect 11 0 7 1;
-#X connect 11 0 8 1;
-#X connect 18 0 2 0;
-#X connect 19 0 3 0;
-#X connect 20 0 4 0;
-#X connect 21 0 5 0;
-#X connect 22 0 49 1;
-#X connect 23 0 49 2;
-#X connect 24 0 49 0;
-#X connect 25 0 24 1;
-#X connect 25 0 23 0;
-#X connect 26 0 24 0;
-#X connect 27 0 25 0;
-#X connect 28 0 25 0;
-#X connect 29 0 11 0;
-#X connect 30 0 25 0;
-#X connect 31 0 57 0;
-#X connect 32 0 57 0;
-#X connect 38 0 6 0;
-#X connect 38 1 6 1;
-#X connect 39 0 38 2;
-#X connect 49 0 51 1;
-#X connect 49 0 52 1;
-#X connect 51 0 53 0;
-#X connect 52 0 53 1;
-#X connect 53 0 50 0;
-#X connect 53 1 50 1;
-#X connect 54 0 53 2;
-#X connect 57 0 51 0;
-#X connect 57 0 38 0;
-#X connect 57 1 52 0;
-#X connect 57 1 38 1;
diff --git a/externals/creb-old/modules++/DSPI.h b/externals/creb-old/modules++/DSPI.h
deleted file mode 100644
index d9e2acf0530286949f51828896fe549b42bf1c83..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules++/DSPI.h
+++ /dev/null
@@ -1,16 +0,0 @@
-#ifndef DSPI_h
-#define DSPI_h
-
-#define DSPImin(x,y)			(((x)<(y)) ? (x) : (y))
-#define DSPImax(x,y)			(((x)>(y)) ? (x) : (y))
-#define DSPIclip(min, x, max)	(DSPImin(DSPImax((min), (x)), max))
-
-
-// test if floating point number is denormal
-#define DSPI_IS_DENORMAL(f) (((*(unsigned int *)&(f))&0x7f800000) == 0) 
-
-// test if almost denormal, choose whichever is fastest
-#define DSPI_IS_ALMOST_DENORMAL(f) (((*(unsigned int *)&(f))&0x7f800000) < 0x08000000)
-//#define DSPI_IS_ALMOST_DENORMAL(f) (fabs(f) < 3.e-34) 
-
-#endif
diff --git a/externals/creb-old/modules++/DSPIcomplex.h b/externals/creb-old/modules++/DSPIcomplex.h
deleted file mode 100644
index ad3e041338e5c087467f7b082c3f1823e45c4443..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules++/DSPIcomplex.h
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- *   DSPIcomplex.h - Quick and dirty inline class for complex numbers 
- *   (mainly to compute filter poles/zeros, not to be used inside loops)
- *   Copyright (c) 2000 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef DSPIcomplex_h
-#define DSPIcomplex_h
-
-#include <math.h>
-#include <iostream>
-
-class DSPIcomplex
-{
-    public:
-        inline DSPIcomplex() {_r = _i = 0;}
-        inline DSPIcomplex(const float &a, const float &b) {setCart(a, b);}
-        inline DSPIcomplex(const float &phasor) {setAngle(phasor);}
-        
-        inline void setAngle(const float &angle) {_r = cos(angle); _i = sin(angle);}
-        inline void setPolar(const float &phasor, const float &norm) 
-        {_r = norm * cos(phasor); _i = norm * sin(phasor);}
-        inline void setCart(const float &a, const float &b) {_r = a; _i = b;}
-        
-        inline const float& r() const {return _r;}
-        inline const float& i() const {return _i;}
-        
-        inline float norm2() const {return _r*_r+_i*_i;}
-        inline float norm() const {return sqrt(norm2());}
-        inline void normalize() {float n = 1.0f / norm(); _r *= n; _i *= n;}
-        
-        inline DSPIcomplex conj() const {return DSPIcomplex(_r, -_i);}
-
-        inline float angle() const {return atan2(_i, _r);}
-
-
-        inline DSPIcomplex operator+ (const DSPIcomplex &a) const
-        {
-            return DSPIcomplex(_r + a.r(), _i + a.i());
-        }
-        inline DSPIcomplex operator+ (float f) const
-        {
-            return DSPIcomplex(_r + f, _i);
-        }
-        inline DSPIcomplex operator- (const DSPIcomplex &a) const
-        {
-            return DSPIcomplex(_r - a.r(), _i - a.i());
-        }
-        inline DSPIcomplex operator- (float f) const
-        {
-            return DSPIcomplex(_r - f, _i);
-        }
-
-        inline DSPIcomplex operator* (const DSPIcomplex &a) const 
-        {
-            return DSPIcomplex(_r * a.r() - _i * a.i(), _i * a.r() + _r * a.i());
-        }
-        inline DSPIcomplex operator* (float f) const
-        {
-            return DSPIcomplex(_r * f, _i * f);
-        }
-        inline DSPIcomplex operator/ (const DSPIcomplex &a) const 
-        {
-            float n_t = 1.0f / a.norm2();
-            return DSPIcomplex(n_t * (_r * a.r() + _i * a.i()), n_t * (_i * a.r() - _r * a.i()));
-        }
-        inline DSPIcomplex operator/ (float f) const 
-        {
-            float n_t = 1.0f / f;
-            return DSPIcomplex(n_t * _r, n_t * _i);
-        }
-        
-        inline friend std::ostream& operator<< (std::ostream& o, DSPIcomplex& a)
-        {
-            return o << "(" << a.r() << "," << a.i() << ")";
-        }
-
-        inline friend DSPIcomplex operator+ (float f, DSPIcomplex& a)
-        {
-            return(DSPIcomplex(a.r() + f, a.i()));
-        }
-        
-        inline friend DSPIcomplex operator- (float f, DSPIcomplex& a)
-        {
-            return(DSPIcomplex(f - a.r(), - a.i()));
-        }
-        
-        inline friend DSPIcomplex operator/ (float f, DSPIcomplex& a)
-        {
-            return(DSPIcomplex(f,0) / a);
-        }
-        
-        // ????
-        inline friend DSPIcomplex operator* (float f, DSPIcomplex& a)
-        {
-            return(DSPIcomplex(f*a.r(), f*a.i()));
-        }
-        
-        
-        inline DSPIcomplex& operator *= (float f)
-        {
-            _r *= f;
-            _i *= f;
-            return *this;
-        }
-
-        inline DSPIcomplex& operator /= (float f)
-        {
-            _r /= f;
-            _i /= f;
-            return *this;
-        }
-
-        inline DSPIcomplex& operator *= (DSPIcomplex& a)
-        {
-            float r_t = _r * a.r() - _i * a.i();
-                   _i = _r * a.i() + _i * a.r();
-                   _r = r_t;
-                   
-            return *this;
-        }
-
-        inline DSPIcomplex& operator /= (DSPIcomplex& a)
-        {
-            float n_t = a.norm2();
-            float r_t = n_t * (_r * a.r() + _i * a.i());
-                   _i = n_t * (_i * a.r() - _r * a.i());
-                   _r = r_t;
-                   
-            return *this;
-        }
-
-        
-        float _r;
-        float _i;
-};
-
-
-// COMPLEX LOG
-
-inline DSPIcomplex dspilog(DSPIcomplex a) /* complex log */
-{
-    float r_t = log(a.norm());
-    float i_t = a.angle();
-    return DSPIcomplex(r_t, i_t);
-}
-
-// COMPLEX EXP
-
-inline DSPIcomplex dspiexp(DSPIcomplex a) /* complex exp */
-{
-    return (DSPIcomplex(a.i()) * exp(a.r()));
-}
-
-// BILINEAR TRANSFORM analog -> digital
-
-inline DSPIcomplex bilin_stoz(DSPIcomplex a)
-{
-    DSPIcomplex a2 = a * 0.5f;
-    return((1.0f + a2)/(1.0f - a2));
-}    
-
-// BILINEAR TRANSFORM digital -> analog
-
-inline DSPIcomplex bilin_ztos(DSPIcomplex a)
-{
-    return ((a - 1.0f) / (a + 1.0f))*2.0f;
-}
-
-// not really a complex function but a nice complement to the bilinear routines
-
-inline float bilin_prewarp(float freq)
-{
-    return 2.0f * tan(M_PI * freq);
-}    
-
-#endif //DSPIcomplex_h
diff --git a/externals/creb-old/modules++/DSPIfilters.h b/externals/creb-old/modules++/DSPIfilters.h
deleted file mode 100644
index 09268de923208b80b24e08c5dfccb66ab30f5733..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules++/DSPIfilters.h
+++ /dev/null
@@ -1,496 +0,0 @@
-/*
- *   DSPIfilters.h - Inline classes for biquad filters 
- *   Copyright (c) 2000 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef DSPIfilters_h
-#define DSPIfilters_h
-
-
-#include "DSPIcomplex.h"
-#include "DSPI.h"
-//#include <stdio.h>
-
-/* orthogonal biquad */
-
-class DSPIfilterOrtho {
-    public:
-
-        inline DSPIfilterOrtho(){resetState();resetCoef();resetSCoef();}
-        inline ~DSPIfilterOrtho(){}
-
-        inline void resetState(){d1A = d1B = d2A = d2B = 0.0f;}
-        inline void resetCoef(){ai = ar = c0 = c1 = c2 = 0.0f;}
-        inline void resetSCoef(){s_ai = s_ar = s_c0 = s_c1 = s_c2 = 0.0f;}
-        
-        /*
-         *		Biquad filters remarks
-         *
-         *		Q is defined with reference to the analog prototype:
-         *		poles/zeros = w0 * (1/Q +- sqrt(1 - 1/Q^2))
-         *
-         *		the num/den polynomial then has the form:
-         *		1 + 2s/Qw0 + (s/w0)^2
-         *
-         *		if Q < 1 => real valued poles/zeros
-         *		if Q > 1 => complex values poles/zeros
-         *		if Q = inf => imaginary poles/zeros
-         *		if Q = sqrt(2) => 'maximally flat' poles/zeros
-         *
-         *		the analog prototypes are converted to the digital domain
-         *		using the bilinear transform. hence the prewarping.
-         */
-        
-        // make sure freq and Q are positive and within bounds
-        inline void checkBounds(float &freq, float &Q)
-        {
-            freq = fabs(freq);
-            Q = fabs(Q);
-
-            float epsilon = .0001f; // stability guard
-            float fmin = 0.0f + epsilon;
-            float fmax = 0.5f - epsilon;
-            float Qmin = 1.1f;
-
-            if (freq < fmin) freq = fmin; 
-            if (freq > fmax) freq = fmax;
-            
-            if (Q < Qmin) Q = Qmin;
-            
-        }
-        
-        inline void setAP(float freq, float Q) // allpass
-        {
-    
-            // prototype: H(s) = (1 - 2s/Qw0 + (s/w0)^2) / (1 + 2s/Qw0 + (s/w0)^2)
-            // s_p = - s_z (analog: symmetric wrt. im axis)
-            // z_p = 1/z_z (digiatl: summ wrt. unit circle)
-            checkBounds(freq, Q);
-
-            // prewarp for bilin transfo
-            freq = bilin_prewarp(freq);
-            float zeta = 1.0f/Q;
-        
-            DSPIcomplex p = bilin_stoz(DSPIcomplex(-zeta, (1.0f-zeta*zeta))*freq);
-            DSPIcomplex z = 1.0f / p;
-            setPoleZeroNormalized(p, z, DSPIcomplex(1,0));
-        
-        
-        }
-        inline void setLP(float freq, float Q) // low pass
-        {
-            // prototype: H(s) = 1 / (1 + 2s/Qw0 + (s/w0)^2)
-            // the bilinear transform has 2 zeros at NY
-             
-            checkBounds(freq, Q);
-            freq = bilin_prewarp(freq);
-            float zeta = 1/Q;
-            
-            DSPIcomplex p = bilin_stoz(DSPIcomplex(-zeta, (1.0f-zeta*zeta))*freq);
-            setPoleZeroNormalized(p, DSPIcomplex(-1, 0), DSPIcomplex(1, 0));
-            
-        }
-        inline void setHP(float freq, float Q) // hi pass
-        {
-            // prototype: H(s) = (s/w0)^2 / (1 + 2s/Qw0 + (s/w0)^2)
-            // the bilinear transform has 2 zeros at DC
-             
-            checkBounds(freq, Q);
-            freq = bilin_prewarp(freq);
-            float zeta = 1/Q;
-            
-            DSPIcomplex p = bilin_stoz(DSPIcomplex(-zeta, (1.0f-zeta*zeta))*freq);
-            setPoleZeroNormalized(p, DSPIcomplex(1, 0), DSPIcomplex(-1, 0));
-            
-        }
-
-        inline void setBP(float freq, float Q) // band pass (1-allpass)
-        {
-            // prototype: 1/2 * (1 - H_allpass(z))
-            setAP(freq, Q);
-            float h = -0.5f;
-            c0 *= h;
-            c1 *= h;
-            c2 *= h;
-            c0 -= h;
-  
-        }
-
-        inline void setBR(float freq, float Q) // band reject
-        {
-            // prototype: H(s) = (1 - (s/w0)^2) / (1 + 2s/Qw0 + (s/w0)^2)
-            checkBounds(freq, Q);
-            // pole phasor
-            DSPIcomplex z = DSPIcomplex(2.0f * M_PI * freq);
-            
-            // prewarp for bilin transfo
-            freq = bilin_prewarp(freq);
-            float zeta = 1/Q;
-        
-            DSPIcomplex p = bilin_stoz(DSPIcomplex(-zeta, (1.0f-zeta*zeta))*freq);
-            setPoleZeroNormalized(p, z, DSPIcomplex(1,0)); 
-        }
-        
-        inline void setHS(float freq, float gain) // low shelf
-        {
-            // hi shelf = LP - g(LP-1)
-            float Q = M_SQRT2;
-            setLP(freq, Q); 
-            c0 -= gain * (c0 - 1.0f);
-            c1 -= gain * (c1);
-            c2 -= gain * (c2);
-        }
-
-        inline void setLS(float freq, float gain) // low shelf
-        {
-            // hi shelf = HP - g(HP-1)
-            float Q = M_SQRT2;
-            setHP(freq, Q); 
-            c0 -= gain * (c0 - 1.0f);
-            c1 -= gain * (c1);
-            c2 -= gain * (c2);
-        }
-        inline void setEQ(float freq, float Q, float gain)// param EQ
-        {
-            // EQ = (1+A)/2 + (1-A)/2 AP
-
-            float a0 = 0.5f * (1.0f + gain);
-            float a1 = 0.5f * (1.0f - gain);
-            setAP(freq, Q);
-            c0 *= a1;
-            c1 *= a1;
-            c2 *= a1;
-            c0 += a0;
-        }
-        
-        inline void setPoleZero
-        (
-            const DSPIcomplex& a, // pole
-            const DSPIcomplex& b  // zero
-        )
-        {
-            ar = a.r();
-            ai = a.i();
-            
-            c0 = 1.0f;
-            c1 = 2.0f * (a.r() - b.r());
-            c2 = (a.norm2() - b.norm2() - c1 * a.r()) / a.i();
-        }
-
-        
-        inline void setPoleZeroNormalized
-        (
-            const DSPIcomplex& a, // pole
-            const DSPIcomplex& b, // zero
-            const DSPIcomplex& c  // gain = 1 at this freq
-        )
-        {
-            setPoleZero(a, b);
-            DSPIcomplex invComplexGain = ((c-a)*(c-a.conj()))/((c-b)*(c-b.conj()));
-            float invGain = invComplexGain.norm();
-            c0 *= invGain;
-            c1 *= invGain;
-            c2 *= invGain;
-            
-        }        
-
-        
-        // one channel bang
-        inline void Bang
-        (
-            float &input, 
-            float &output
-        )
-        {
-            float d1t = ar * d1A + ai * d2A + input;
-            float d2t = ar * d2A - ai * d1A;
-            output = c0 * input + c1 * d1A + c2 * d2A;
-            d1A = d1t;
-            d2A = d2t;
-        }
-        
-        // one channel bang smooth
-        // a default s could be s = (1 - (.1)^(1/n))
-        inline void BangSmooth
-        (
-            float &input, 	// input ref
-            float &output,	// output ref
-            float s 		// smooth pole
-        )
-        {
-            float d1t = s_ar * d1A + s_ai * d2A + input;
-            float d2t = s_ar * d2A - s_ai * d1A;
-            s_ar += s * (ar - s_ar);
-            s_ai += s * (ai - s_ai);
-            output = s_c0 * input + s_c1 * d1A + s_c2 * d2A;
-            d1A = d1t;
-            d2A = d2t;
-            s_c0 += s * (c0 - s_c0);
-            s_c1 += s * (c1 - s_c1);
-            s_c2 += s * (c2 - s_c2);
-        }
-        
-        // two channel bang
-        inline void Bang2
-        (
-            float &input1, 
-            float &input2, 
-            float &output1, 
-            float &output2 
-        )
-        {
-            float d1tA = ar * d1A + ai * d2A + input1;
-            float d1tB = ar * d1B + ai * d2B + input2;
-            float d2tA = ar * d2A - ai * d1A;
-            float d2tB = ar * d2B - ai * d1B;
-            output1 = c0 * input1 + d1A * c1 + d2A * c2;
-            output2 = c0 * input2 + d1B * c1 + d2B * c2;
-            d1A = d1tA;
-            d2A = d2tA;
-            d1B = d1tB;
-            d2B = d2tB;
-        }
-
-        // two channel bang smooth
-        inline void Bang2Smooth
-        (
-            float &input1, 
-            float &input2, 
-            float &output1, 
-            float &output2,
-            float s 
-        )
-        {
-            float d1tA = s_ar * d1A + s_ai * d2A + input1;
-            float d1tB = s_ar * d1B + s_ai * d2B + input2;
-            float d2tA = s_ar * d2A - s_ai * d1A;
-            float d2tB = s_ar * d2B - s_ai * d1B;
-            s_ar += s * (ar - s_ar);
-            s_ai += s * (ai - s_ai);
-            output1 = s_c0 * input1 + d1A * s_c1 + d2A * s_c2;
-            output2 = s_c0 * input2 + d1B * s_c1 + d2B * s_c2;
-            d1A = d1tA;
-            d2A = d2tA;
-            d1B = d1tB;
-            d2B = d2tB;
-            s_c0 += s * (c0 - s_c0);
-            s_c1 += s * (c1 - s_c1);
-            s_c2 += s * (c2 - s_c2);
-        }
-
-	inline void killDenormals()
-	{
-
-	    // state data
-	    float zero = 0.0f;
-
-	    d1A = DSPI_IS_DENORMAL(d1A) ? zero : d1A;
-	    d2A = DSPI_IS_DENORMAL(d2A) ? zero : d2A;
-	    d1B = DSPI_IS_DENORMAL(d1B) ? zero : d1B;
-	    d2B = DSPI_IS_DENORMAL(d2B) ? zero : d2B;
-
-
-	    /* test on athlon showed nuking smooth data does not
-	     * present a noticable difference in performance however
-	     * nuking state data is really necessary
-
-
-	    // smooth data
-	    float dai = ai - s_ai;
- 	    float dar = ar - s_ar;
-	    float dc0 = c0 - s_c0;
-	    float dc1 = c1 - s_c1;
-	    float dc2 = c2 - s_c2;
-
-
-	    s_ai = DSPI_IS_DENORMAL(dai) ? ai : s_ai;
-	    s_ar = DSPI_IS_DENORMAL(dar) ? ar : s_ar;
-	    s_c0 = DSPI_IS_DENORMAL(dc0) ? c0 : s_c0;
-	    s_c1 = DSPI_IS_DENORMAL(dc0) ? c1 : s_c1;
-	    s_c2 = DSPI_IS_DENORMAL(dc0) ? c2 : s_c2;
-
-	    */
-
-
-
-	}
-        
-    private:
-    
-        // state data
-        float d1A;
-        float d2A;
-
-        float d1B;
-        float d2B;
-        
-        // pole data
-        float ai;
-        float s_ai;
-        float ar;
-        float s_ar;
-        
-        // zero data
-        float c0;
-        float s_c0;
-        float c1;
-        float s_c1;
-        float c2;
-        float s_c2;
-        
-
-};
-
-
-
-class DSPIfilterSeries{
-    public:
-        inline DSPIfilterSeries() {DSPIfilterSeries(1);}
-        inline ~DSPIfilterSeries() {delete [] biquad;};
-        
-        inline DSPIfilterSeries(int numberOfSections)
-        {
-            // create a set of biquads
-            sections = numberOfSections;
-            biquad = new DSPIfilterOrtho[numberOfSections];
-        }
-
-        inline void setButterHP(float freq)
-        {
-            /*  This member function computes the poles for a highpass butterworth filter.
-             *  The filter is transformed to the digital domain using a bilinear transform.
-             *  Every biquad section is normalized at NY.
-             */
-             
-            float epsilon = .0001f; // stability guard
-            float min = 0.0f + epsilon;
-            float max = 0.5f - epsilon;
-
-            if (freq < min) freq = min; 
-            if (freq > max) freq = max; 
-
-            // prewarp cutoff frequency
-            float omega = bilin_prewarp(freq);
-
-            DSPIcomplex NY(-1,0);  //normalize at NY
-            DSPIcomplex DC(1,0);  //all zeros will be at DC
-            DSPIcomplex pole( (2*sections + 1) * M_PI / (4*sections)); // first pole of lowpass filter with omega == 1
-            DSPIcomplex pole_inc(M_PI / (2*sections)); // phasor to get to next pole, see Porat p. 331
-            
-            for (int i=0; i<sections; i++)
-            {
-                // setup the biquad with the computed pole and zero and unit gain at NY
-                biquad[i].setPoleZeroNormalized(
-                    bilin_stoz(omega/pole),	// LP -> HP -> digital transfo 
-                    DC, 					// all zeros at DC
-                    NY);					// normalized (gain == 1) at NY
-                pole *= pole_inc;			// compe next (lowpass) pole
-            }
-             
-        }
-        
-        inline void setButterLP(float freq)
-        {
-            /*  This member function computes the poles for a lowpass butterworth filter.
-             *  The filter is transformed to the digital domain using a bilinear transform.
-             *  Every biquad section is normalized at DC.
-             *  Doing it this way, only the pole locations need to be transformed.
-             *  The constant gain factor can be computed by setting the DC gain of every section to 1.
-             *  An analog butterworth is all-pole, meaning the bilinear transform has all zeros at -1
-             */
-
-
-            float epsilon = .0001f; // stability guard
-            float min = 0.0f + epsilon;
-            float max = 0.5f - epsilon;
-
-
-            if (freq < min) freq = min; 
-            if (freq > max) freq = max; 
-
-            // prewarp cutoff frequency
-            float omega = bilin_prewarp(freq);
-            
-            DSPIcomplex DC(1,0);  //normalize at DC
-            DSPIcomplex NY(-1,0); //all zeros will be at NY
-            DSPIcomplex pole( (2*sections + 1) * M_PI / (4*sections)); 
-            pole *= omega; // first pole, see Porat p. 331
-            DSPIcomplex pole_inc(M_PI / (2*sections)); // phasor to get to next pole, see Porat p. 331
-            
-            for (int i=0; i<sections; i++)
-            {
-                // setup the biquad with the computed pole and zero and unit gain at DC
-                biquad[i].setPoleZeroNormalized(bilin_stoz(pole), NY, DC);
-                pole *= pole_inc;
-            }
-        }
-        
-        inline void resetState()
-        {
-            for (int i=0; i<sections; i++) biquad[i].resetState();
-        }
-        
-        inline void Bang(float &input, float &output)
-        {
-            float x = input;
-            for (int i=0; i<sections; i++)
-            {
-                biquad[i].Bang(x, x);
-            }
-            output = x;
-        }
-        inline void Bang2(float &input1, float &input2, float &output1, float &output2)
-        {
-            float x = input1;
-            float y = input2;
-            for (int i=0; i<sections; i++)
-            {
-                biquad[i].Bang2(x, y, x, y);
-            }
-            output1 = x;
-            output2 = y;
-        }
-        
-        inline void BangSmooth(float &input, float &output, float s)
-        {
-            float x = input;
-            for (int i=0; i<sections; i++)
-            {
-                biquad[i].BangSmooth(x, x, s);
-            }
-            output = x;
-        }
-        inline void Bang2(float &input1, float &input2, float &output1, float &output2, float s)
-        {
-            float x = input1;
-            float y = input2;
-            for (int i=0; i<sections; i++)
-            {
-                biquad[i].Bang2Smooth(x, y, x, y, s);
-            }
-            output1 = x;
-            output2 = y;
-        }
-
-    private:
-        int sections;
-        DSPIfilterOrtho *biquad;
-        float gain;
-};
-
-#endif //DSPIfilters_h
-
diff --git a/externals/creb-old/modules++/Makefile b/externals/creb-old/modules++/Makefile
deleted file mode 100644
index e6842fdc1e5e0b3caf60b92cdead8999016f0ced..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules++/Makefile
+++ /dev/null
@@ -1,10 +0,0 @@
-include ../Makefile.config
-current: all
-
-all: biquadseries~.o filterortho~.o blosc~.o
-
-
-clean:
-	rm -f *~
-	rm -f *.o
-
diff --git a/externals/creb-old/modules++/biquadseries~.cc b/externals/creb-old/modules++/biquadseries~.cc
deleted file mode 100644
index 40b3aef7b3af515a6acf63059eb865df35fa581a..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules++/biquadseries~.cc
+++ /dev/null
@@ -1,128 +0,0 @@
-/*
- *   biquadseries.cc  -  second order section filter pd interface 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-#include <math.h>
-
-#include "DSPIcomplex.h"
-#include "DSPIfilters.h"
-
-
-
-typedef struct biquadseries_struct
-{
-    t_object x_obj;
-    t_float x_f;
-    DSPIfilterSeries* biquadseries;
-} t_biquadseries;
-
-void biquadseries_bang(t_biquadseries *x)
-{
-
-}
-
-void biquadseries_butterLP(t_biquadseries *x,  t_floatarg f)
-{
-    x->biquadseries->setButterLP(f / sys_getsr());
-}
-
-void biquadseries_butterHP(t_biquadseries *x,  t_floatarg f)
-{
-    x->biquadseries->setButterHP(f / sys_getsr());
-}
-
-
-
-static t_int *biquadseries_perform(t_int *w)
-{
-
-
-  t_float *in    = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  DSPIfilterSeries* biquadseries  = (DSPIfilterSeries *)(w[1]);
-  t_int n = (t_int)(w[2]);
-  t_int i;
-  t_float x;
-
-  // dit kan beter 
-  float smooth = .01;
-  //1.0f - pow(.9f,1.0f/(float)(n));
-
-  for (i = 0; i < n; i++)
-  {
-      x  = *in++;
-      biquadseries->BangSmooth(x, x, smooth);
-      *out++ = x;
-  }
-
-  return (w+5);
-}
-
-static void biquadseries_dsp(t_biquadseries *x, t_signal **sp)
-{
-    dsp_add(biquadseries_perform, 4, x->biquadseries, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-
-}                                  
-void biquadseries_free(void)
-{
-
-}
-
-t_class *biquadseries_class;
-
-void *biquadseries_new(t_floatarg fsections)
-{
-    t_biquadseries *x = (t_biquadseries *)pd_new(biquadseries_class);
-
-    int sections = (int)fsections;
-    if (sections < 1) sections = 1;
-    // post("biquadseries~: %d sections", sections);
-    x->biquadseries = new DSPIfilterSeries(sections);
-
-    //    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("freq"));  
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    biquadseries_butterLP(x, 10000);
-
-    return (void *)x;
-}
-
-
-extern "C" {
-
-void biquadseries_tilde_setup(void)
-{
-    //post("biquadseries~ v0.1");
-
-    biquadseries_class = class_new(gensym("biquadseries~"), (t_newmethod)biquadseries_new,
-    	(t_method)biquadseries_free, sizeof(t_biquadseries), 0, A_DEFFLOAT, 0);
-
-    CLASS_MAINSIGNALIN(biquadseries_class, t_biquadseries, x_f); 
-
-    class_addmethod(biquadseries_class, (t_method)biquadseries_bang, gensym("bang"), (t_atomtype)0);
-
-    class_addmethod(biquadseries_class, (t_method)biquadseries_dsp, gensym("dsp"), (t_atomtype)0); 
-
-    class_addmethod(biquadseries_class, (t_method)biquadseries_butterLP, gensym("butterLP"), A_FLOAT, A_NULL); 
-    class_addmethod(biquadseries_class, (t_method)biquadseries_butterHP, gensym("butterHP"), A_FLOAT, A_NULL); 
-
-}
-
-}
diff --git a/externals/creb-old/modules++/blosc~.cc b/externals/creb-old/modules++/blosc~.cc
deleted file mode 100644
index 8a4dd4b2e8eeae4defac94d4868cb7963b9f5650..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules++/blosc~.cc
+++ /dev/null
@@ -1,773 +0,0 @@
-/*
- *   blosc.c  - bandlimited oscillators 
- *   using minimum phase impulse, step & ramp
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>  
-
-
-#include "DSPIcomplex.h"
-#include "DSPIfilters.h"
-
-typedef unsigned long long u64;
-typedef unsigned long u32;
-
-
-
-#define LPHASOR      (8*sizeof(u32)) // the phasor logsize
-#define VOICES       8 // the number of waveform voices
-#define LLENGTH      6 // the loglength of a fractional delayed basic waveform
-#define LOVERSAMPLE  6 // the log of the oversampling factor (nb of fract delayed waveforms)
-#define LPAD         1 // the log of the time padding factor (to reduce time aliasing) 
-#define LTABLE       (LLENGTH+LOVERSAMPLE)
-#define N            (1<<LTABLE)
-#define M            (1<<(LTABLE+LPAD))
-#define S            (1<<LOVERSAMPLE)
-#define L            (1<<LLENGTH)
-#define LMASK        (L-1)
-
-#define WALPHA       0.1f // windowing alpha (0 = cos -> 1 = rect)
-#define CUTOFF       0.8f // fraction of nyquist for impulse cutoff
-#define NBPERIODS    ((float)(L) * CUTOFF / 2.0f)
-
-/* sample buffers */
-static float bli[N]; // band limited impulse
-static float bls[N]; // band limited step
-static float blr[N]; // band limited ramp
-
-
-typedef struct bloscctl
-{
-    t_int c_index[VOICES];      // array of indices in sample table
-    t_float c_frac[VOICES];     // array of fractional indices
-    t_float c_vscale[VOICES];   // array of scale factors
-    t_int c_next_voice;         // next voice to steal (round robin)
-    u32 c_phase;                // phase of main oscillator
-    u32 c_phase2;               // phase of secondairy oscillator
-    t_float c_state;            // state of the square wave
-    t_float c_prev_amp;         // previous input of comparator
-    t_float c_phase_inc_scale;
-    t_float c_scale;
-    t_float c_scale_update;
-    DSPIfilterSeries* c_butter; // the series filter 
-    t_symbol *c_waveform;
-
-} t_bloscctl;
-
-typedef struct blosc
-{
-  t_object x_obj;
-  t_float x_f;
-  t_bloscctl x_ctl;
-} t_blosc;
-
-
-/* phase converters */
-static inline float _phase_to_float(u32 p){return ((float)p) * (1.0f / 4294967296.0f);}
-static inline u32 _float_to_phase(float f){return ((u32)(f * 4294967296.0f)) & ~(S-1);}
-
-
-/* flat table: better for linear interpolation */
-static inline float _play_voice_lint(float *table, t_int *index, float frac, float scale)
-{
-    int i = *index;
-
-    /* perform linear interpolation */
-    float f = (((1.0f - frac) * table[i]) + (table[i+1] * frac)) * scale;
-
-    /* increment phase index if next 2 elements will still be inside table
-       if not there's no increment and the voice will keep playing the same sample */
-
-    i += (((i+S+1) >> LTABLE) ^ 1) << LOVERSAMPLE; 
-
-    *index = i;
-    return f;
-}
-
-/* get one sample from the bandlimited discontinuity wavetable playback syth */
-static inline t_float _get_bandlimited_discontinuity(t_bloscctl *ctl, float *table)
-{
-    float sum = 0.0f;
-    int i;
-    /* sum  all voices */
-    for (i=0; i<VOICES; i++){
-	sum += _play_voice_lint(table, ctl->c_index+i, ctl->c_frac[i], ctl->c_vscale[i]);
-    }
-
-    return sum;
-}
-
-
-/* update waveplayers on zero cross */
-static void _bang_comparator(t_bloscctl *ctl, float prev, float curr)
-{
-
-    /* check for sign change */
-    if ((prev * curr) < 0.0f){
-
-	int voice;
-
-	/* determine the location of the discontinuity (in oversampled coordiates
- 	  using linear interpolation */
-
-	float f = (float)S * curr / (curr - prev);
-
-	/* get the offset in the oversample table */
-
-	u32 table_index = (u32)f;
-
-	/* determine the fractional part (in oversampled coordinates)
-	   for linear interpolation */
-
-	float table_frac_index = f - (float)table_index;
-
-	/* set state (+ or -) */
-
-	ctl->c_state =  (curr > 0.0f) ? 0.5f : -0.5f;
-	
-	/* steal the oldest voice */
-
-	voice = ctl->c_next_voice++;
-	ctl->c_next_voice &= VOICES-1;
-	    
-	/* initialize the new voice index and interpolation fraction */
-
-	ctl->c_index[voice] = table_index;
-	ctl->c_frac[voice] = table_frac_index;
-	ctl->c_vscale[voice] = -ctl->c_scale * 2.0f * ctl->c_state;
-
-    }
-
-}
-
-
-/* advance phasor and update waveplayers on phase wrap */
-static void _bang_phasor(t_bloscctl *ctl, float freq)
-{
-    u32 phase = ctl->c_phase;
-    u32 phase_inc; 
-    u32 oldphase;
-    int voice;
-    float scale = ctl->c_scale;
-
-    /* get increment */
-    float inc = freq * ctl->c_phase_inc_scale;
-
-    /* calculate new phase
-       the increment (and the phase) should be a multiple of S */
-    if (inc < 0.0f) inc = -inc;
-    phase_inc = ((u32)inc) & ~(S-1);
-    oldphase = phase;
-    phase += phase_inc;
-
-
-    /* check for phase wrap */
-    if (phase < oldphase){
-	u32 phase_inc_decimated = phase_inc >> LOVERSAMPLE;
-	u32 table_index;
-	u32 table_phase;
-	
-	/* steal the oldest voice if we have a phase wrap */
-	    
-	voice = ctl->c_next_voice++;
-	ctl->c_next_voice &= VOICES-1;
-	    
-	/* determine the location of the discontinuity (in oversampled coordinates)
-	   which is S * (new phase) / (increment) */
-	    
-	table_index = phase / phase_inc_decimated;
-	    
-	/* determine the fractional part (in oversampled coordinates)
-	   for linear interpolation */
-
-	table_phase = phase - (table_index * phase_inc_decimated);
-	    
-	/* use it to initialize the new voice index and interpolation fraction */
-	    
-	ctl->c_index[voice] = table_index;
-	ctl->c_frac[voice] = (float)table_phase / (float)phase_inc_decimated;
-	ctl->c_vscale[voice] = scale;
-	scale = scale * ctl->c_scale_update;
-
-    }
-
-    /* save state */
-    ctl->c_phase = phase;
-    ctl->c_scale = scale;
-}
-
-
-/* the 2 oscillator version:
-   the second osc can reset the first osc's phase (hence it determines the pitch)
-   the first osc determines the waveform */
-
-static void _bang_hardsync_phasor(t_bloscctl *ctl, float freq, float freq2)
-{
-    u32 phase = ctl->c_phase;
-    u32 phase2 = ctl->c_phase2;
-    u32 phase_inc; 
-    u32 phase_inc2; 
-    u32 oldphase;
-    u32 oldphase2;
-    int voice;
-    float scale = ctl->c_scale;
-
-
-    /* get increment */
-    float inc = freq * ctl->c_phase_inc_scale;
-    float inc2 = freq2 * ctl->c_phase_inc_scale;
-
-    /* calculate new phases
-       the increment (and the phase) should be a multiple of S */
-
-    /* save previous phases */
-    oldphase = phase;
-    oldphase2 = phase2;
-
-    /* update second osc */
-    if (inc2 < 0.0f) inc2 = -inc2;
-    phase_inc2 = ((u32)inc2) & ~(S-1);
-    phase2 += phase_inc2;
-    
-    /* update first osc (freq should be >= freq of sync osc */
-    if (inc < 0.0f) inc = -inc;
-    phase_inc = ((u32)inc) & ~(S-1);
-    if (phase_inc < phase_inc2) phase_inc = phase_inc2;
-    phase += phase_inc;
-
-
-    /* check for sync discontinuity (osc 2) */
-    if (phase2 < oldphase2) {
-
-	/* adjust phase depending on the location of the discontinuity in phase2:
-	   phase/phase_inc == phase2/phase_inc2 */
-	
-	u64 pi = phase_inc >> LOVERSAMPLE;
-	u64 pi2 = phase_inc2 >> LOVERSAMPLE;
-	u64 lphase = ((u64)phase2 * pi) / pi2;
-	phase = lphase & ~(S-1);
-    }
-
-
-    /* check for phase discontinuity (osc 1) */
-    if (phase < oldphase){
-	u32 phase_inc_decimated = phase_inc >> LOVERSAMPLE;
-	u32 table_index;
-	u32 table_phase;
-	float stepsize;
-	
-	/* steal the oldest voice if we have a phase wrap */
-	    
-	voice = ctl->c_next_voice++;
-	ctl->c_next_voice &= VOICES-1;
-	    
-	/* determine the location of the discontinuity (in oversampled coordinates)
-	   which is S * (new phase) / (increment) */
-
-	table_index = phase / phase_inc_decimated;
-	    
-	/* determine the fractional part (in oversampled coordinates)
-	   for linear interpolation */
-
-	table_phase = phase - (table_index * phase_inc_decimated);
-
-	/* determine the step size
-	   as opposed to saw/impulse waveforms, the step is not always equal to one. it is:
-           oldphase - phase + phase_inc 
-	   but for the unit step this will overflow to zero, so we
-	   reduce the bit depth to prevent overflow */
-
-	stepsize = _phase_to_float(((oldphase-phase) >> LOVERSAMPLE)
-				   + phase_inc_decimated) * (float)S;
-	    
-	/* use it to initialize the new voice index and interpolation fraction */
-	    
-	ctl->c_index[voice] = table_index;
-	ctl->c_frac[voice] = (float)table_phase / (float)phase_inc_decimated;
-	ctl->c_vscale[voice] = scale * stepsize;
-	scale = scale * ctl->c_scale_update;
-
-    }
-
-    /* save state */
-    ctl->c_phase = phase;
-    ctl->c_phase2 = phase2;
-    ctl->c_scale = scale;
-}
-
-
-static t_int *blosc_perform_hardsync_saw(t_int *w)
-{
-    t_float *freq     = (float *)(w[3]);
-    t_float *freq2     = (float *)(w[4]);
-    t_float *out      = (float *)(w[5]);
-    t_bloscctl *ctl  = (t_bloscctl *)(w[1]);
-    t_int n           = (t_int)(w[2]);
-    t_int i;
-
-    /* set postfilter cutoff */
-    ctl->c_butter->setButterHP(0.85f * (*freq / sys_getsr()));
-    
-    while (n--) {
-	float frequency = *freq++;
-	float frequency2 = *freq2++;
-
-	/* get the bandlimited discontinuity */
-	float sample = _get_bandlimited_discontinuity(ctl, bls);
-
-	/* add aliased sawtooth wave */
-	sample += _phase_to_float(ctl->c_phase) - 0.5f;
-
-	/* highpass filter output to remove DC offset and low frequency aliasing */
-	ctl->c_butter->BangSmooth(sample, sample, 0.05f);
-
-	/* send to output */
-	*out++ = sample;
-
-	/* advance phasor */
-	_bang_hardsync_phasor(ctl, frequency2, frequency);
-	
-    }
-    
-    return (w+6);
-}
-
-static t_int *blosc_perform_saw(t_int *w)
-{
-    t_float *freq     = (float *)(w[3]);
-    t_float *out      = (float *)(w[4]);
-    t_bloscctl *ctl  = (t_bloscctl *)(w[1]);
-    t_int n           = (t_int)(w[2]);
-    t_int i;
-    
-    while (n--) {
-	float frequency = *freq++;
-
-	/* get the bandlimited discontinuity */
-	float sample = _get_bandlimited_discontinuity(ctl, bls);
-
-	/* add aliased sawtooth wave */
-	sample += _phase_to_float(ctl->c_phase) - 0.5f;
-
-	/* send to output */
-	*out++ = sample;
-
-	/* advance phasor */
-	_bang_phasor(ctl, frequency);
-	
-    }
-    
-    return (w+5);
-}
-
-
-
-static t_int *blosc_perform_pulse(t_int *w)
-{
-    t_float *freq     = (float *)(w[3]);
-    t_float *out      = (float *)(w[4]);
-    t_bloscctl *ctl  = (t_bloscctl *)(w[1]);
-    t_int n           = (t_int)(w[2]);
-    t_int i;
-
-
-    /* set postfilter cutoff */
-    ctl->c_butter->setButterHP(0.85f * (*freq / sys_getsr()));
-    
-    while (n--) {
-	float frequency = *freq++;
-
-	/* get the bandlimited discontinuity */
-	float sample = _get_bandlimited_discontinuity(ctl, bli);
-
-	/* highpass filter output to remove DC offset and low frequency aliasing */
-	ctl->c_butter->BangSmooth(sample, sample, 0.05f);
-
-	/* send to output */
-	*out++ = sample;
-
-	/* advance phasor */
-	_bang_phasor(ctl, frequency);
-	
-    }
-    
-    return (w+5);
-}
-
-static t_int *blosc_perform_comparator(t_int *w)
-{
-    t_float *amp      = (float *)(w[3]);
-    t_float *out      = (float *)(w[4]);
-    t_bloscctl *ctl  = (t_bloscctl *)(w[1]);
-    t_int n           = (t_int)(w[2]);
-    t_int i;
-    t_float prev_amp = ctl->c_prev_amp;
-    
-    while (n--) {
-	float curr_amp = *amp++;
-
-	/* exact zero won't work for zero detection (sic) */
-	if (curr_amp == 0.0f) curr_amp = 0.0000001f;
-
-	/* get the bandlimited discontinuity */
-	float sample = _get_bandlimited_discontinuity(ctl, bls);
-
-	/* add the block wave state */
-	sample += ctl->c_state;
-
-	/* send to output */
-	*out++ = sample;
-
-	/* advance phasor */
-	_bang_comparator(ctl, prev_amp, curr_amp);
-
-	prev_amp = curr_amp;
-	
-    }
-
-    ctl->c_prev_amp = prev_amp;
-    
-    return (w+5);
-}
-
-static void blosc_phase(t_blosc *x, t_float f)
-{
-    x->x_ctl.c_phase = _float_to_phase(f);
-    x->x_ctl.c_phase2 = _float_to_phase(f);
-}
-
-static void blosc_phase1(t_blosc *x, t_float f)
-{
-    x->x_ctl.c_phase = _float_to_phase(f);
-}
-
-static void blosc_phase2(t_blosc *x, t_float f)
-{
-    x->x_ctl.c_phase2 = _float_to_phase(f);
-}
-
-static void blosc_dsp(t_blosc *x, t_signal **sp)
-{
-  int n = sp[0]->s_n;
-
-  /* set sampling rate scaling for phasors */
-  x->x_ctl.c_phase_inc_scale = 4.0f * (float)(1<<(LPHASOR-2)) / sys_getsr();
-
-
-  /* setup & register the correct process routine depending on the waveform */
-
-  /* 2 osc */
-  if (x->x_ctl.c_waveform == gensym("syncsaw")){
-      x->x_ctl.c_scale = 1.0f;
-      x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(blosc_perform_hardsync_saw, 5, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
-  }
-
-  /* 1 osc */
-  else if (x->x_ctl.c_waveform == gensym("pulse")){
-      x->x_ctl.c_scale = 1.0f;
-      x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-  }
-  else if (x->x_ctl.c_waveform == gensym("pulse2")){
-      x->x_ctl.c_phase_inc_scale *= 2;
-      x->x_ctl.c_scale = 1.0f;
-      x->x_ctl.c_scale_update = -1.0f;
-      dsp_add(blosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-  }
-  else if (x->x_ctl.c_waveform == gensym("comparator")){
-      x->x_ctl.c_scale = 1.0f;
-      x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(blosc_perform_comparator, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-  }
-  else{
-       x->x_ctl.c_scale = 1.0f;
-      x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(blosc_perform_saw, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-  }
-
-
-
-}                                  
-static void blosc_free(t_blosc *x)
-{
-    delete x->x_ctl.c_butter;
-}
-
-t_class *blosc_class;
-
-static void *blosc_new(t_symbol *s)
-{
-    t_blosc *x = (t_blosc *)pd_new(blosc_class);
-    int i;
-
-    /* out 1 */
-    outlet_new(&x->x_obj, gensym("signal"));
-
-    /* optional signal inlets */
-    if (s == gensym("syncsaw")){
-	inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-    }
-
-    /* optional phase inlet */
-    if (s != gensym("comparator")){
-	inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("phase"));  
-    }
-
-    /* create the postfilter */
-    x->x_ctl.c_butter = new DSPIfilterSeries(3);
-
-    /* init oscillators */
-    for (i=0; i<VOICES; i++) {
-      x->x_ctl.c_index[i] = N-2;
-      x->x_ctl.c_frac[i] = 0.0f;
-    }
-
-    /* init rest of state data */
-    blosc_phase(x, 0);
-    blosc_phase2(x, 0);
-    x->x_ctl.c_state = 0.0;
-    x->x_ctl.c_prev_amp = 0.0;
-    x->x_ctl.c_next_voice = 0;
-    x->x_ctl.c_scale = 1.0f;
-    x->x_ctl.c_scale_update = 1.0f;
-    x->x_ctl.c_waveform = s;
-
-    return (void *)x;
-}
-
-
-
-
-
-
-
-/* CLASS DATA INIT (tables) */
-
-
-/* some vector ops */
-
-/* clear a buffer */
-static inline void _clear(float *array, int size)
-{
-  memset(array, 0, sizeof(float)*size);
-}
-
-/* compute complex log */
-static inline void _clog(float *real, float *imag, int size)
-{
-    int k;
-    for (k=0; k<size; k++){
-	float r = real[k];
-	float i = imag[k];
-	float radius = sqrt(r*r+i*i);
-	real[k] = log(radius);
-	imag[k] = atan2(i,r);
-    }
-}
-
-/* compute complex exp */
-static inline void _cexp(float *real, float *imag, int size)
-{
-    int k;
-    for (k=0; k<size; k++){
-	float r = exp(real[k]);
-	float i = imag[k];
-	real[k] = r * cos(i);
-	imag[k] = r * sin(i);
-    }
-}
-
-
-/* compute fft */
-static inline void _fft(float *real, float *imag, int size)
-{
-    int i;
-    float scale = 1.0f / sqrt((float)size);
-    for (i=0; i<size; i++){
-	real[i] *= scale;
-	imag[i] *= scale;
-	// if (isnan(real[i])) post("fftpanic %d", i);
-    }
-    mayer_fft(size, real, imag);
-}
-/* compute ifft */
-static inline void _ifft(float *real, float *imag, int size)
-{
-    int i;
-    float scale = 1.0f / sqrt((float)size);
-    for (i=0; i<size; i++){
-	real[i] *= scale;
-	imag[i] *= scale;
-	// if (isnan(real[i])) post("ifftpanic %d", i);
-    }
-    mayer_ifft(size, real, imag);
-}
-
-/* convert an integer index to a phase: [0 -> pi, -pi -> 0] */
-static inline float _i2theta(int i, int size){
-    float p = 2.0f * M_PI * (float)i / (float)size;
-    if (p >= M_PI) p -= 2.0f * M_PI;
-    return p;
-}
-
-
-/* print matlab array */
-static void _printm(float *array, char *name, int size)
-{
-    int i;
-    fprintf(stderr, "%s = [", name);
-    for (i=0; i<size; i++){
-	fprintf(stderr, "%f;", array[i]);
-    }
-    fprintf(stderr, "];\n");
-}
-
-/* store oversampled waveform as decimated chunks */
-static void _store_decimated(float *dst, float *src, float scale, int size)
-{
-    int i;
-    for (i=0; i<size; i++){
-	int offset = (i % S) * L;
-	int index = i / S;
-	dst[offset+index] = scale * src[i];
-    }    
-
-}
-
-/* store waveform as one chunk */
-static void _store(float *dst, float *src, float scale, int size)
-{
-    int i;
-    for (i=0; i<size; i++){
-	dst[i] = scale * src[i];
-    }    
-
-}
-
-/* create a minimum phase bandlimited impulse */
-static void build_tables(void)
-{
-
-  /* table size = M>=N (time padding to reduce time aliasing) */
-
-  /* we work in the complex domain to eliminate the need to avoid
-     negative spectral components */
-
-    float real[M];
-    float imag[M];
-    float sum,scale;
-    int i,j;
-
-
-    /* create windowed sinc */
-    _clear(imag, M); 
-    real[0] = 1.0f;
-    for (i=1; i<M; i++){
-	float tw = _i2theta(i,M);
-	float ts = tw * NBPERIODS * (float)(M) / (float)(N);
-
-	/* sinc */
-	real[i] = sin(ts)/ts;
-
-	/* blackman window */
-	real[i] *= 0.42f + 0.5f * (cos(tw)) + 0.08f * (cos(2.0f*tw));
-
-	//real[i] *= 0.5f * (1.0f + WALPHA) + 0.5f * (1.0f - WALPHA) * (cos(tw)); 
-
-	/* check for nan */
-	//if (isnan(real[i])) post("sinc NaN panic %d", i);
-	//if (isinf(real[i])) post("sinc Inf panic %d", i);
-
-    }
-
-
-    /* compute cepstrum */
-    _fft(real, imag, M);
-    _clog(real, imag, M);
-    _ifft(real, imag, M);
-
-
-    /* kill anti-causal part (contribution of non minimum phase zeros) */
-    /* should we kill nyquist too ?? */
-    for (i=M/2+1; i<M; i++){
-	real[i] *= 0.0000f;
-	imag[i] *= 0.0000f;
-    }
-
-
-    /* compute inverse cepstrum */
-    _fft(real, imag, M);
-    _cexp(real, imag, M);
-    _ifft(real, imag, M);
-
-
-
-    /* from here on, discard the padded part [N->M-1]
-       and work with the first N samples */
-
-    /* normalize impulse (integral = 1) */
-    sum = 0.0f;
-    for (i=0; i<N; i++){sum += real[i];}
-    scale = 1.0f / sum;
-    for (i=0; i<N; i++){real[i] *= scale;}
-
-
-    /* store bli table */
-    _store(bli, real, (float)S, N);
-    //_printm(bli, "h", N);
-
-
-    /* integrate impulse and invert to produce a step function
-       from 1->0 */
-    sum = 0.0f;
-    for (i=0; i<N; i++){
-	sum += real[i];
-	real[i] = (1.0f - sum);
-    }
-
-    /* store decimated bls tables */
-    _store(bls, real, 1.0f, N);
-
-
-}
-
-extern "C"
-{
-    void blosc_tilde_setup(void)
-    {
-	//post("blosc~ v0.1");
-	
-	build_tables();
-	
-	blosc_class = class_new(gensym("blosc~"), (t_newmethod)blosc_new,
-				(t_method)blosc_free, sizeof(t_blosc), 0, A_DEFSYMBOL, A_NULL);
-	CLASS_MAINSIGNALIN(blosc_class, t_blosc, x_f);
-	class_addmethod(blosc_class, (t_method)blosc_dsp, gensym("dsp"), A_NULL); 
-	class_addmethod(blosc_class, (t_method)blosc_phase, gensym("phase"), A_FLOAT, A_NULL); 
-	class_addmethod(blosc_class, (t_method)blosc_phase2, gensym("phase2"), A_FLOAT, A_NULL); 
-
-	
-    }
-
-}
diff --git a/externals/creb-old/modules++/filterortho~.cc b/externals/creb-old/modules++/filterortho~.cc
deleted file mode 100644
index c80552b81f31d33b8ef7ecbac22d4dc5eb4e12a0..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules++/filterortho~.cc
+++ /dev/null
@@ -1,133 +0,0 @@
-/*
- *   filterortho.cc  -  orthogonal biquad filter pd interface 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-#include <math.h>
-
-#include "DSPIcomplex.h"
-#include "DSPIfilters.h"
-
-
-
-typedef struct filterortho_struct
-{
-    t_object x_obj;
-    t_float x_f;
-    DSPIfilterOrtho *filterortho;
-} t_filterortho;
-
-void filterortho_bang(t_filterortho *x)
-{
-
-}
-
-
-static t_int *filterortho_perform(t_int *w)
-{
-
-
-  t_float *in    = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  DSPIfilterOrtho* filterortho  = (DSPIfilterOrtho *)(w[1]);
-  t_int n = (t_int)(w[2]);
-  t_int i;
-  t_float x;
-
-
-  // dit kan beter 
-  float smooth = 1.0f - pow(.05f,1.0f/(float)(n));
-
-  for (i = 0; i < n; i++)
-  {
-      x  = *in++;
-      filterortho->BangSmooth(x, x, smooth);
-      *out++ = x;
-  }
-
-  filterortho->killDenormals();
-
-  return (w+5);
-}
-
-static void filterortho_dsp(t_filterortho *x, t_signal **sp)
-{
-    dsp_add(filterortho_perform, 4, x->filterortho, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-
-}                                  
-void filterortho_free(t_filterortho *x)
-{
-    delete x->filterortho;
-
-}
-
-t_class *filterortho_class;
-
-
-
-void setLP(t_filterortho *x,  t_floatarg f, t_floatarg Q) {x->filterortho->setLP(f / sys_getsr(), Q);}
-void setHP(t_filterortho *x,  t_floatarg f, t_floatarg Q) {x->filterortho->setHP(f / sys_getsr(), Q);}
-void setBP(t_filterortho *x,  t_floatarg f, t_floatarg Q) {x->filterortho->setBP(f / sys_getsr(), Q);}
-void setBR(t_filterortho *x,  t_floatarg f, t_floatarg Q) {x->filterortho->setBR(f / sys_getsr(), Q);}
-void setAP(t_filterortho *x,  t_floatarg f, t_floatarg Q) {x->filterortho->setAP(f / sys_getsr(), Q);}
-
-void setLS(t_filterortho *x,  t_floatarg f, t_floatarg A) {x->filterortho->setLS(f / sys_getsr(), A);}
-void setHS(t_filterortho *x,  t_floatarg f, t_floatarg A) {x->filterortho->setHS(f / sys_getsr(), A);}
-
-void setEQ(t_filterortho *x,  t_floatarg f, t_floatarg Q, t_floatarg A) {x->filterortho->setEQ(f / sys_getsr(), Q, A);}
-
-
-void *filterortho_new()
-{
-    t_filterortho *x = (t_filterortho *)pd_new(filterortho_class);
-    x->filterortho = new DSPIfilterOrtho();
-    outlet_new(&x->x_obj, gensym("signal")); 
-    setLP(x, 10000, 2);
-    return (void *)x;
-}
-
-
-
-extern "C" {
-
-void filterortho_tilde_setup(void)
-{
-    //post("filterortho~ v0.1");
-    filterortho_class = class_new(gensym("filterortho~"), (t_newmethod)filterortho_new,
-    	(t_method)filterortho_free, sizeof(t_filterortho), 0, A_NULL);
-
-    CLASS_MAINSIGNALIN(filterortho_class, t_filterortho, x_f); 
-
-
-    class_addmethod(filterortho_class, (t_method)filterortho_bang, gensym("bang"), A_NULL);
-
-    class_addmethod(filterortho_class, (t_method)filterortho_dsp, gensym("dsp"), A_NULL); 
-
-    class_addmethod(filterortho_class, (t_method)setLP, gensym("setLP"), A_FLOAT, A_FLOAT, A_NULL); 
-    class_addmethod(filterortho_class, (t_method)setHP, gensym("setHP"), A_FLOAT, A_FLOAT, A_NULL); 
-    class_addmethod(filterortho_class, (t_method)setBP, gensym("setBP"), A_FLOAT, A_FLOAT, A_NULL); 
-    class_addmethod(filterortho_class, (t_method)setBR, gensym("setBR"), A_FLOAT, A_FLOAT, A_NULL); 
-    class_addmethod(filterortho_class, (t_method)setAP, gensym("setAP"), A_FLOAT, A_FLOAT, A_NULL); 
-    class_addmethod(filterortho_class, (t_method)setLS, gensym("setLS"), A_FLOAT, A_FLOAT, A_NULL); 
-    class_addmethod(filterortho_class, (t_method)setHS, gensym("setHS"), A_FLOAT, A_FLOAT, A_NULL); 
-    class_addmethod(filterortho_class, (t_method)setEQ, gensym("setEQ"), A_FLOAT, A_FLOAT, A_FLOAT, A_NULL); 
- 
-}
-
-}
diff --git a/externals/creb-old/modules++/filters.h b/externals/creb-old/modules++/filters.h
deleted file mode 100644
index e0d1c497998a49f230067abc9f7495deea59c9ef..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules++/filters.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/* this file contains a 37th attempt to write a general purpose iir filter toolset */
-
-/* defined as inline functions with call by reference to enable compiler ref/deref optim */
-
-/* the typedef */
-#ifndef T
-#define T float
-#endif
-
-
-/* the prototype for a word */
-#define P static inline void
-#define PP static void
-
-
-/* the 'reference' arguments */
-#define A *a
-#define B *b
-#define C *c
-#define D *d
-#define X *x
-#define Y *y
-#define S *s
-
-
-/* the opcodes */
-
-/* add */
-P cadd  (T X, T Y, T A, T B, T C, T D) { X = A + C; Y = B + D;}
-P cadd2 (T A, T B, T C, T D)           { A += C; B += D;}
-P vcadd  (T X, T A, T C)                { cadd(x,x+1,a,a+1,c,c+1); }
-P vcadd2 (T A, T C)                     { cadd2(a,a+1,c,c+1); }
-
-
-/* mul */
-P cmul_r (T X, T A, T B, T C, T D)    { X = A * C - B * D;}
-P cmul_i (T Y, T A, T B, T C, T D)    { Y = A * D + B * C;}
-P cmul (T X, T Y, T A, T B, T C, T D) 
-{
-    cmul_r (x, a, b, c, d);
-    cmul_i (y, a, b, c, d);
-}
-P cmul2 (T A, T B, T C, T D)
-{
-    T x = A;
-    T y = B;
-    cmul (&x, &y, a, b, c, d);
-    A = x;
-    B = y;
-}
-
-P vcmul  (T X, T A, T C)  { cmul(x,x+1,a,a+1,c,c+1); }
-P vcmul2 (T A, T C)       { cmul2(a,a+1,c,c+1); }
-
-
-/* norm */
-static inline float vcnorm(T X) { return hypot(x[0], x[1]); }
-
-
-
-/* swap */
-P vcswap(T Y, T X)
-{
-    float t[2] = {x[0], x[1]};
-    x[0] = y[0];
-    x[1] = y[1];
-    y[0] = t[0];
-    y[1] = t[1];
-}
-
-
-/* inverse */
-P vcinv(T Y, T X)
-{
-    float scale = 1.0f / vcnorm(x);
-    y[0] = scale * x[0];
-    y[1] = scale * x[1];
-}
-
-P vcinv1(T X)
-{
-    float scale = 1.0f / vcnorm(x);
-    x[0] *= scale;
-    x[1] *= scale;
-}
-
-/* exp */
-
-/* X = exp(Y) */
-P vcexp2 (T Y, T X)
-{
-    T r = exp(x[0]);
-    y[0] = cos (x[1]);
-    y[1] = sin (x[1]);
-    y[0] *= r;
-    y[1] *= r;
-}
-
-P vcexp1 (T X)
-{
-    T y[2];
-    vcexp2(y,x);
-    x[0] = y[0];
-    x[1] = y[1];
-}
-
-/* 
-   FILTERS
-
-   the transfer function is defined in terms of the "engineering" 
-   bilateral z-transform of the discrete impulse response h[n].
-
-   H(z) = Sum{n = -inf -> inf} h[n] z^(-n)
-
-   a unit delay operating on a singnal S(z) is therefore 
-   represented as z^(-1) S(z)
-
-*/
-
-
-
-
-
-
-
-/* biquads */
-
-/* biquad, orthogonal (poles & zeros), real in, out, state, pole, output */
-P biq_orth_r (T X, T Y, T S, T A, T C)
-{
-    Y = X + c[0] * s[0] - c[1] * s[1]; /* mind sign of c[1] */
-    vcmul2(s, a);
-    S += X;
-}
-
-
-/* biquad, orthogonal, complex one-pole, with scaling */
-
-/* complex one pole: (output = s[0] + is[1]): C / (1-A z^(-1))  */
-
-P one_pole_complex (T X, T Y, T S, T A, T C)
-{
-    vcmul(y, s, a);
-    vcadd2(y, x);
-    s[0] = y[0];
-    s[1] = y[1];
-    vcmul(y, s, c);
-}
-
-/* complex conj two pole:  (output = s[0]  : (Re(C) - Re(C*Conj(A))) / (1 - A z^(-1)) (1 - Conj(A) z^(-1)) */
-
-P two_pole_complex_conj (T X, T Y, T S, T A, T C)
-{
-    vcmul2(s, a);
-    s[0] += x[0];
-    y[0] = s[0] * c[0] - s[1] * c[1];
-}
-
-
-
-/* support functions for IIR filter design */
-
-/* evaluate pole and allzero TF in z^-1 given the complex zeros/poles:
-   p(z) (or p(z)^-1) = \product (1-z_i z^-1) */
-PP eval_zero_poly(float *val, float *arg, float *zeros, int nb_zeros)
-{
-    int i;
-    float a[2] = {arg[0], arg[1]};
-    vcinv1(a);
-    val[0] = 1.0f;
-    val[1] = 0.0f;
-    a[0] *= -1;
-    a[1] *= -1;
-    for (i=0; i<nb_zeros; i++){
-	float t[2];
-	vcmul(t, a, zeros + 2*i);
-	t[0] += 1.0f;
-	vcmul2(val, t);
-    }
-}
-
-PP eval_pole_poly(float *val, float *arg, float *poles, int nb_poles)
-{
-    eval_zero_poly(val, arg, poles, nb_poles);
-    vcinv1(val);
-}
-
-
-/* since it's more efficient to store half of the poles for a real impulse
-   response, these functions compute p(z) conj(p(conj(z)))  */
-
-PP eval_conj_zero_poly(float *val, float *arg, float *zeros, int nb_zeros)
-{
-    float t[2];
-    float a[2] = {arg[0], arg[1]};
-    eval_zero_poly(t, a, zeros, nb_zeros);
-    a[1] *= -1;
-    eval_zero_poly(val, a, zeros, nb_zeros);
-    val[1] *= -1;
-    vcmul2(val, t);
-}
-
-PP eval_conj_pole_poly(float *val, float *arg, float *poles, int nb_poles)
-{
-    eval_conj_zero_poly(val, arg, poles, nb_poles);
-    vcinv1(val);
-}
-
-PP eval_conj_pole_zero_ratfunc(float *val, float *arg, float *poles, float *zeros, int nb_poles, int nb_zeros)
-{
-    float t[2];
-    eval_conj_zero_poly(t, arg, zeros, nb_zeros);
-    eval_conj_pole_poly(val, arg, poles, nb_zeros);
-    vcmul2(val, t);
-}
-
-
-
-/* bandlimited IIR impulse:
-
-   * design analog butterworth filter
-   * obtain the partial fraction expansion of the transfer function
-   * determine the state increment as a function of fractional delay of impulse location 
-   (sample the impulse response)
-
-*/
diff --git a/externals/creb-old/modules/Makefile b/externals/creb-old/modules/Makefile
deleted file mode 100644
index 91f89fae0008cf7326eed9ca690338dde505ce8f..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/Makefile
+++ /dev/null
@@ -1,19 +0,0 @@
-include ../Makefile.config
-
-current: ead~.o ear~.o eadsr~.o dist~.o \
-        tabreadmix~.o xfm~.o qmult~.o qnorm~.o \
-	cheby~.o abs~.o ramp~.o \
-        bfft~.o dynwav~.o statwav~.o bdiag~.o \
-	diag~.o matrix~.o permut~.o lattice~.o ratio.o ffpoly.o fwarp.o \
-	junction~.o fdn~.o bwin~.o eblosc~.o bitsplit~.o sbosc~.o \
-	blocknorm~.o resofilt~.o scrollgrid1D~.o \
-	\
-	dwt.o cmath.o \
-	\
-	setup.o
-
-
-clean:
-	rm -f *.o
-	rm -f *~
-
diff --git a/externals/creb-old/modules/abs~.c b/externals/creb-old/modules/abs~.c
deleted file mode 100644
index 0cb3d4d01275211d90a6e882fd2fca226c977605..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/abs~.c
+++ /dev/null
@@ -1,51 +0,0 @@
-
-// since this is present in a lot of libs, it is conditionally compiled
-#ifdef HAVE_ABS_TILDE
-
-#include "m_pd.h"
-#include <math.h>
-
-/* ------------------------- abs~ -------------------------- */
-static t_class *abs_class;
-
-typedef struct _abs
-{
-    t_object x_obj;
-} t_abs;
-
-static t_int *abs_perform(t_int *w)
-{
-    t_abs *x = (t_abs *)(w[1]);
-    t_float *in = (t_float *)(w[2]);
-    t_float *out = (t_float *)(w[3]);
-    int n = (int)(w[4]);
-    while (n--)
-    {
-    	float f = *in++;
-    	if (f < 0) f = -f;
-    	*out++ = f;
-    }
-    return (w+5);
-}
-
-static void abs_dsp(t_abs *x, t_signal **sp)
-{
-    dsp_add(abs_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-}
-
-static void *abs_new(void)
-{
-    t_abs *x = (t_abs *)pd_new(abs_class);
-    outlet_new(&x->x_obj, &s_signal);
-    return (x);
-}
-
-void abs_tilde_setup(void)
-{
-    abs_class = class_new(gensym("abs~"), (t_newmethod)abs_new, 0,
-    	sizeof(t_abs), 0, A_NULL);
-    class_addmethod(abs_class, (t_method)nullfn, &s_signal, A_NULL);
-    class_addmethod(abs_class, (t_method)abs_dsp, gensym("dsp"), A_NULL);
-}
-
-#endif
diff --git a/externals/creb-old/modules/bdiag~.c b/externals/creb-old/modules/bdiag~.c
deleted file mode 100644
index ac0a363f67c19988416c00a7108ed43cb3cf822b..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/bdiag~.c
+++ /dev/null
@@ -1,279 +0,0 @@
-/*
- *   bdiag.c  - block diagonal state space system
- *   treats input dsp block as n parallel signals
- *
- *     s1 = (a * s1) + (b * s2) + u1;
- *     s2 = (a * s2) - (b * s1) + u2;
- *
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "extlib_util.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-#define MAXORDER 64
-
-typedef struct bdiagctl
-{
-  t_float *c_state;
-  t_float *c_eigen;
-  t_int c_order;
-} t_bdiagctl;
-
-typedef struct bdiag
-{
-  t_object x_obj;
-  t_float x_f;
-  t_bdiagctl x_ctl;
-} t_bdiag;
-
-
-static float randfloat(void){
-  float r = rand ();
-  r /= (RAND_MAX/2);
-  r -= 1;
-  return r;
-
-}
-
-static void bdiag_random(t_bdiag *x)
-{
-  int i;
-
-  for (i=0; i<x->x_ctl.c_order; i++)
-    { 
-      x->x_ctl.c_state[i] = randfloat();
-    }
-  
-}
-
-
-static void bdiag_reset(t_bdiag *x)
-{
-  int i;
-
-  for (i=0; i<x->x_ctl.c_order; i++)
-    { 
-      x->x_ctl.c_state[i] = 0;
-    }
-  
-}
-
-
-
-
-
-
-static void bdiag_eigen(t_bdiag *x, t_floatarg index, 
-			t_floatarg aval, t_floatarg bval)
-{
-  int i = (int)index;
-  if (i<0) return;
-  if (i>=x->x_ctl.c_order/2) return;
-  x->x_ctl.c_eigen[2*i+0] = aval;
-  x->x_ctl.c_eigen[2*i+1] = bval;
-  
-}
-
-/* set decay time and frequency of pole at index */
-static void bdiag_timefreq(t_bdiag *x, t_floatarg index, 
-			   t_floatarg time, t_floatarg freq)
-{
-  float r,a,b,n;
-  float sr = sys_getsr() / (float)x->x_ctl.c_order;
-
-  /* time in ms */
-  time *= 0.001;
-
-  if (time < 0.0f) time = 0.0f;
-  r = pow(0.001f, 1.0f / (time * sr));
-  if (r < 0.0f) r = 0.0f;
-  if (r > 1.0f) r = 1.0f;
-
-  a = cos(2*M_PI*freq/sr);
-  b = sin(2*M_PI*freq/sr);
- 
-  /* normalize to be sure */
-  n = 1.0f / sqrt(a*a + b*b);
-  a *= n;
-  b *= n;
-
-  bdiag_eigen(x, index, r*a, r*b);
-}
-
-static void bdiag_preset(t_bdiag *x, t_floatarg preset)
-{
-  int p = preset;
-  int i;
-  float a, b, w, r;
-
-  switch(p){
-  case 0:
-    post("preset 0");
-    for (i=0; i<x->x_ctl.c_order/2; i++){
-      w = randfloat() * .001;
-      r = 1. - (((float)i + 1.)/1000.);
-      a = cos(w) * r;
-      b = sin(w) * r;
-      post("%f %f %f %f", w, r, a, b);
-      bdiag_eigen(x,i,a,b);
-    }
-    break;
-  case 1:
-  default:
-    break;
-  
-  }
-}
-
-static t_int *bdiag_perform(t_int *w)
-{
-
-
-  t_float *in     = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_bdiagctl *ctl  = (t_bdiagctl *)(w[1]);
-
-  t_float *eigen = ctl->c_eigen;
-  t_float *state = ctl->c_state;
-  t_int n = (t_int)(w[2]);
-
-  t_float u1,u2,a,b,s1,s2,s1new,s2new;
-
-  int i;
-
-  for (i=0; i<n; i+=2)
-    {
-      u1 = *in++;
-      u2 = *in++;
-      a = *eigen++; /* real part */
-      b = *eigen++; /* imag part */
-      s1 = state[0];
-      s2 = state[1];
-
-
-      s1new = (a * s1) - (b * s2) + u1; /* update state */
-      s2new = (a * s2) + (b * s1) + u2;
-
-      s1new = IS_DENORMAL(s1new) ? 0 : s1new; /* clear denormals */
-      s2new = IS_DENORMAL(s2new) ? 0 : s2new;
-
-      *state++ = s1new; /* store state */
-      *state++ = s2new;
-
-      *out++ = s1new; /* output state */
-      *out++ = s2new;
-    }
-
-  return (w+5);
-}
-
-
-static void bdiag_dsp(t_bdiag *x, t_signal **sp)
-{
-
-  int n = sp[0]->s_n;
-  int i;
-
-  if (n == 1)
-    {
-      post("bdiag: doesnt work with blocksize == 1");
-      dsp_add_copy(sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-    }
-  else
-    {
-      if (x->x_ctl.c_order != n)
-	{
-	  if (x->x_ctl.c_state) free(x->x_ctl.c_state);
-	  if (x->x_ctl.c_eigen) free(x->x_ctl.c_eigen);
-	  
-	  x->x_ctl.c_state = (t_float *)malloc(n*sizeof(t_float));
-	  x->x_ctl.c_eigen = (t_float *)malloc(n*sizeof(t_float));
-	  
-	  for(i=0;i<n;i++)
-	    {
-	      x->x_ctl.c_state[i] = 0;
-	      x->x_ctl.c_eigen[i] = 0;
-	    }
-	  
-	  x->x_ctl.c_order = n;
-	}
-      
-           
-      dsp_add(bdiag_perform, 4, &x->x_ctl, sp[0]->s_n, 
-	      sp[0]->s_vec, sp[1]->s_vec);
-    }
-
-}
-                                  
-static void bdiag_free(t_bdiag *x)
-{
-
-  if (x->x_ctl.c_state) free(x->x_ctl.c_state);
-  if (x->x_ctl.c_eigen) free(x->x_ctl.c_eigen);
-
-
-}
-
-t_class *bdiag_class;
-
-
-static void *bdiag_new(t_floatarg permute)
-{
-    t_bdiag *x = (t_bdiag *)pd_new(bdiag_class);
-    int i, n=64;
-
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    x->x_ctl.c_state = (t_float *)malloc(n*sizeof(t_float));
-    x->x_ctl.c_eigen = (t_float *)malloc(n*sizeof(t_float));
-
-    for(i=0;i<n;i++)
-      {
-	x->x_ctl.c_state[i] = 0;
-	x->x_ctl.c_eigen[i] = 0;
-      }
-    
-    x->x_ctl.c_order = n;
-
-
-    return (void *)x;
-
-
-}
-
-
-void bdiag_tilde_setup(void)
-{
-  //post("bdiag~ v0.1");
-    bdiag_class = class_new(gensym("bdiag~"), (t_newmethod)bdiag_new,
-    	(t_method)bdiag_free, sizeof(t_bdiag), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(bdiag_class, t_bdiag, x_f);
-    class_addmethod(bdiag_class, (t_method)bdiag_random, gensym("random"), 0);
-    class_addmethod(bdiag_class, (t_method)bdiag_random, gensym("bang"), 0);
-    class_addmethod(bdiag_class, (t_method)bdiag_reset, gensym("reset"), 0);
-    class_addmethod(bdiag_class, (t_method)bdiag_dsp, gensym("dsp"), 0); 
-
-    class_addmethod(bdiag_class, (t_method)bdiag_eigen, gensym("eigen"), 
-		    A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); 
-    class_addmethod(bdiag_class, (t_method)bdiag_timefreq, gensym("timefreq"), 
-		    A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); 
-    class_addmethod(bdiag_class, (t_method)bdiag_preset, gensym("preset"), 
-		    A_DEFFLOAT, 0); 
-}
-
diff --git a/externals/creb-old/modules/bfft~.c b/externals/creb-old/modules/bfft~.c
deleted file mode 100644
index b57f028f623c9fecbddaf38aa10012c891b40dc1..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/bfft~.c
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- *   bfft.c - Code for some fourrier transform variants and utility
- *   functions. Data organization is in (real, imag) pairs the first 2
- *   components are (DC, NY)
- *
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-
-#define MAXORDER 64
-
-typedef struct bfftctl
-{
-    t_int c_levels;
-    char c_name[16];
-    t_int *c_clutter;
-    t_int *c_unclutter;
-    t_int c_kill_DC;
-    t_int c_kill_NY;
-} t_bfftctl;
-
-typedef struct bfft
-{
-    t_object x_obj;
-    t_float x_f;
-    t_bfftctl x_ctl;
-} t_bfft;
-
-t_class *bfft_class, *ibfft_class, *fht_class;
-
-
-static inline void bfft_perform_permutation(t_float *S, int n, t_int *f)
-{
-  t_int k,l;
-  t_float swap;
-  for(k=0; k<n; k++)
-    {
-      l = f[k];
-      while (l<k) l = f[l];
-      swap = S[k];
-      S[k] = S[l];
-      S[l] = swap;
-    }
-}
-
-static void bfft_permutation(t_bfft *x, t_int n){
-
-  t_bfftctl *ctl = &x->x_ctl;
-  int i;
-
-  if (ctl->c_clutter)   free(ctl->c_clutter);
-  if (ctl->c_unclutter) free(ctl->c_unclutter);
-  
-  ctl->c_clutter = (t_int *)malloc(n*sizeof(t_int));
-  ctl->c_unclutter = (t_int *)malloc(n*sizeof(t_int));
-
-
-  ctl->c_unclutter[0] = 0;
-  ctl->c_unclutter[1] = n/2;
-  for (i=1; i<n/2; i++){
-    ctl->c_unclutter[2*i] = i;
-    ctl->c_unclutter[2*i+1] = n-i;
-  }
-
-  for(i=0; i<n; i++)
-    ctl->c_clutter[ctl->c_unclutter[i]] = i;
-
-  return;
-
-  /* debug */
-  /*  for(k=0; k<n; k++)
-  **    printf("clutter[%d] = %d\n", k, ctl->c_clutter[k]);
-  **  for(k=0; k<n; k++)
-  **    printf("unclutter[%d] = %d\n", k, ctl->c_unclutter[k]);
-  **
-  ** exit(1);
-  */
-}
-
-
-
-static t_int *bfft_perform(t_int *w)
-{
-
-
-  t_float *in     = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_bfftctl *ctl  = (t_bfftctl *)(w[1]);
-  t_int n = (t_int)(w[2]);
-  t_float scale = sqrt(1.0f / (float)(n));
-
-  mayer_fht(out, n);
-  bfft_perform_permutation(out, n, ctl->c_unclutter);
-
-  while (n--) *out++ *= scale;
-
-  return (w+5);
-}
-
-
-
-
-static t_int *ibfft_perform(t_int *w)
-{
-
-
-  t_float *in     = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_bfftctl *ctl  = (t_bfftctl *)(w[1]);
-  t_int n = (t_int)(w[2]);
-  t_float scale = sqrt(1.0f / (float)(n));
-
-
-  if (ctl->c_kill_DC) {out[0] = 0.0f;}
-  if (ctl->c_kill_NY) {out[1] = 0.0f;}
-
-  bfft_perform_permutation(out, n, ctl->c_clutter);
-  mayer_fht(out, n);
-
-
-  while (n--) *out++ *= scale;
-
-  
-
-  return (w+5);
-}
-
-
-static t_int *fht_perform(t_int *w)
-{
-
-
-  t_float *in     = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_bfftctl *ctl  = (t_bfftctl *)(w[1]);
-
-
-  t_int n = (t_int)(w[2]);
-
-  mayer_fht(out, n);
-
-  return (w+5);
-}
-
-
-static void bfft_dsp(t_bfft *x, t_signal **sp)
-{
-
-  int n = sp[0]->s_n;
-  t_float *in = sp[0]->s_vec;
-  t_float *out = sp[1]->s_vec;
-
-  bfft_permutation(x, n);
-
-  if (in != out)
-    {
-      dsp_add_copy(in,out,n);
-      in = out;
-    }
-
-  dsp_add(bfft_perform, 4, &x->x_ctl, n, in, out);
-
-}
-
-static void ibfft_dsp(t_bfft *x, t_signal **sp)
-{
-
-  int n = sp[0]->s_n;
-  t_float *in = sp[0]->s_vec;
-  t_float *out = sp[1]->s_vec;
-
-  bfft_permutation(x, n);
-
-  if (in != out)
-    {
-      dsp_add_copy(in,out,n);
-      in = out;
-    }
-
-  dsp_add(ibfft_perform, 4, &x->x_ctl, n, in, out);
-
-}
-
-static void fht_dsp(t_bfft *x, t_signal **sp)
-{
-
-  int n = sp[0]->s_n;
-  t_float *in = sp[0]->s_vec;
-  t_float *out = sp[1]->s_vec;
-
-
-  if (in != out)
-    {
-      dsp_add_copy(in,out,n);
-      in = out;
-    }
-
-  dsp_add(fht_perform, 4, &x->x_ctl, n, in, out);
-
-}
-
-
-                                  
-static void bfft_free(t_bfft *x)
-{
-
-  if (x->x_ctl.c_clutter)   free(x->x_ctl.c_clutter);
-  if (x->x_ctl.c_unclutter) free(x->x_ctl.c_unclutter);
-
-}
-
-
-
-
-static void *bfft_new(void)
-{
-    t_bfft *x = (t_bfft *)pd_new(bfft_class);
-    int i;
-
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-
-    sprintf(x->x_ctl.c_name,"bfft");
-
-    x->x_ctl.c_clutter = NULL;
-    x->x_ctl.c_unclutter = NULL;
-
-    return (void *)x;
-
-
-}
-
-static void *ibfft_new(t_symbol *s)
-{
-    t_bfft *x = (t_bfft *)pd_new(ibfft_class);
-    int i;
-
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    if (s == gensym("killDCNY")){
-	x->x_ctl.c_kill_DC = 1;
-	x->x_ctl.c_kill_NY = 1;
-	post("ibfft: removing DC and NY components.");
-    }
-    else{
-	x->x_ctl.c_kill_DC = 0;
-	x->x_ctl.c_kill_NY = 0;
-    }
-
-    x->x_ctl.c_clutter = NULL;
-    x->x_ctl.c_unclutter = NULL;
-
-    sprintf(x->x_ctl.c_name,"ibfft");
-
-    return (void *)x;
-}
-
-static void *fht_new(void)
-{
-    t_bfft *x = (t_bfft *)pd_new(fht_class);
-    int i;
-
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-
-    x->x_ctl.c_clutter = NULL;
-    x->x_ctl.c_unclutter = NULL;
-
-    sprintf(x->x_ctl.c_name,"fht");
-
-    return (void *)x;
-}
-
-
-
-
-void bfft_tilde_setup(void)
-{
-  //post("bfft~ v0.1");
-    bfft_class = class_new(gensym("bfft~"), (t_newmethod)bfft_new,
-    	(t_method)bfft_free, sizeof(t_bfft), 0, 0);
-    CLASS_MAINSIGNALIN(bfft_class, t_bfft, x_f);
-    class_addmethod(bfft_class, (t_method)bfft_dsp, gensym("dsp"), 0); 
-
-
-
-    ibfft_class = class_new(gensym("ibfft~"), (t_newmethod)ibfft_new,
-    	(t_method)bfft_free, sizeof(t_bfft), 0, A_DEFSYMBOL, A_NULL);
-
-    /* add the more logical bifft~ alias */
-    class_addcreator((t_newmethod)ibfft_new, 
-		     gensym("bifft~"), 0, A_DEFSYMBOL, A_NULL);
-
-    CLASS_MAINSIGNALIN(ibfft_class, t_bfft, x_f);
-    class_addmethod(ibfft_class, (t_method)ibfft_dsp, gensym("dsp"), 0); 
-
- 
-
-   fht_class = class_new(gensym("fht~"), (t_newmethod)fht_new,
-    	(t_method)bfft_free, sizeof(t_bfft), 0, 0);
-
-    CLASS_MAINSIGNALIN(fht_class, t_bfft, x_f);
-    class_addmethod(fht_class, (t_method)fht_dsp, gensym("dsp"), 0); 
-
-
-
-}
diff --git a/externals/creb-old/modules/bitsplit~.c b/externals/creb-old/modules/bitsplit~.c
deleted file mode 100644
index e89b078694dddbe1eaf19b8e6f82554d0dfb034b..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/bitsplit~.c
+++ /dev/null
@@ -1,107 +0,0 @@
-/*
- *   bitsplit.c  - Convert a signal to a binary vector.
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-
-#define MAXCHANNELS 24
-
-typedef struct bitsplitctl
-{
-    t_int c_outputs;
-    t_float *c_input;
-    t_float **c_output;
-} t_bitsplitctl;
-
-typedef struct bitsplit
-{
-  t_object x_obj;
-  t_float x_f;
-  t_bitsplitctl x_ctl;
-} t_bitsplit;
-
-
-static t_int *bitsplit_perform(t_int *word)
-{
-
-    t_bitsplitctl *ctl  = (t_bitsplitctl *)(word[1]);
-    t_int n             = (t_int)(word[2]);
-    t_float *in         = ctl->c_input;
-    t_int outputs       = ctl->c_outputs;
-    t_float **out       = ctl->c_output;
-    t_int i,j;
-
-    for (i=0;i<n;i++){
-	long word = (in[i] * (float)(0x7fffffff));
-	for (j=0; j<outputs; j++){
-	    out[j][i] = (float)((word >> 31) & 1);
-	    word <<= 1;
-	}
-    }
-
-    return (word+3);
-}
-
-
-
-static void bitsplit_dsp(t_bitsplit *x, t_signal **sp)
-{
-
-    int i;
-    x->x_ctl.c_input = sp[0]->s_vec;
-    for (i=0;i<x->x_ctl.c_outputs;i++){
-	x->x_ctl.c_output[i] = sp[i+1]->s_vec;
-    }
-    dsp_add(bitsplit_perform, 2, &x->x_ctl, sp[0]->s_n);
-}                                  
-
-
-static void bitsplit_free(t_bitsplit *x)
-{
-    free (x->x_ctl.c_output);
-}
-
-t_class *bitsplit_class;
-
-static void *bitsplit_new(t_floatarg channels)
-{
-    int i = (int)channels;
-    t_bitsplit *x = (t_bitsplit *)pd_new(bitsplit_class);
-
-    if (i<1) i = 1;
-    if (i>MAXCHANNELS) i = MAXCHANNELS;
-    x->x_ctl.c_outputs = i;
-    x->x_ctl.c_output = malloc(sizeof(float)*i);
-
-    while (i--) outlet_new(&x->x_obj, gensym("signal")); 
-
-    return (void *)x;
-}
-
-void bitsplit_tilde_setup(void)
-{
-    bitsplit_class = class_new(gensym("bitsplit~"), (t_newmethod)bitsplit_new,
-    	(t_method)bitsplit_free, sizeof(t_bitsplit), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(bitsplit_class, t_bitsplit, x_f); 
-    class_addmethod(bitsplit_class, (t_method)bitsplit_dsp, gensym("dsp"), 0); 
-}
-
diff --git a/externals/creb-old/modules/blocknorm~.c b/externals/creb-old/modules/blocknorm~.c
deleted file mode 100644
index 1c8e3df0d0c041126171654ff57936c2f27f73fb..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/blocknorm~.c
+++ /dev/null
@@ -1,132 +0,0 @@
-/*
- *   blocknorm.c - Normalize an array of dsp blocks. (spectral
- *   processing primitive)
- *
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-
-#define MAXCHANNELS 32
-
-typedef struct blocknormctl
-{
-    t_int c_channels;
-    t_float **c_input;
-    t_float **c_output;
-} t_blocknormctl;
-
-typedef struct blocknorm
-{
-  t_object x_obj;
-  t_float x_f;
-  t_blocknormctl x_ctl;
-} t_blocknorm;
-
-
-static t_int *blocknorm_perform(t_int *word)
-{
-
-    t_blocknormctl *ctl  = (t_blocknormctl *)(word[1]);
-    t_int n             = (t_int)(word[2]);
-    t_float **in        = ctl->c_input;
-    t_float **out       = ctl->c_output;
-    t_int c             = ctl->c_channels;
-    t_int i,j;
-
-    t_float p = 0.0f;
-    t_float x, s;
-
-    /* get power */
-    for (j=0;j<c;j++){
-	for (i=0;i<n;i++){
-	    x = in[j][i];
-	    p += x*x;
-	}
-    }
-
-    /* compute normalization */
-    if (p == 0.0f) s = 1.0f;
-    else s =sqrt(((float)(c * n)) /  p);
-
-    /* normalize */
-    for (j=0;j<c;j++){
-	for (i=0;i<n;i++){
-	    out[j][i] *= s;  // FIXME: clockwize addressing problem
-	}
-    }
-
-    
-
-    return (word+3);
-}
-
-
-
-static void blocknorm_dsp(t_blocknorm *x, t_signal **sp)
-{
-
-    int i;
-    int c = x->x_ctl.c_channels;
-    for (i=0;i<c;i++){
-	x->x_ctl.c_input[i] = sp[i]->s_vec;
-	x->x_ctl.c_output[i] = sp[c+i]->s_vec;
-    }
-    dsp_add(blocknorm_perform, 2, &x->x_ctl, sp[0]->s_n);
-}                                  
-
-
-static void blocknorm_free(t_blocknorm *x)
-{
-    free (x->x_ctl.c_output);
-    free (x->x_ctl.c_input);
-}
-
-t_class *blocknorm_class;
-
-static void *blocknorm_new(t_floatarg channels)
-{
-    int i = (int)channels;
-    int j;
-    t_blocknorm *x = (t_blocknorm *)pd_new(blocknorm_class);
-
-    if (i<1) i = 1;
-    if (i>MAXCHANNELS) i = MAXCHANNELS;
-    x->x_ctl.c_channels = i;
-    x->x_ctl.c_input = malloc(sizeof(float)*i);
-    x->x_ctl.c_output = malloc(sizeof(float)*i);
-
-    j = i;
-    while (--j) inlet_new(&x->x_obj, &x->x_obj.ob_pd, 
-			  gensym("signal"), gensym("signal"));  
-    while (i--) outlet_new(&x->x_obj, gensym("signal")); 
-
-    return (void *)x;
-}
-
-void blocknorm_tilde_setup(void)
-{
-    blocknorm_class = class_new(gensym("blocknorm~"), (t_newmethod)blocknorm_new,
-    	(t_method)blocknorm_free, sizeof(t_blocknorm), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(blocknorm_class, t_blocknorm, x_f); 
-    class_addmethod(blocknorm_class, (t_method)blocknorm_dsp, gensym("dsp"), 0); 
-}
-
diff --git a/externals/creb-old/modules/bmatrix~.c b/externals/creb-old/modules/bmatrix~.c
deleted file mode 100644
index b59d4d6616153a9c353e85d4654b5b98ace12474..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/bmatrix~.c
+++ /dev/null
@@ -1,154 +0,0 @@
-/*
- *   matrix.c  - applies a matrix transform to a signal block
- *   intended for spectral processing, dynwav
- *
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>  
-
-#define MAXORDER 1024
-
-typedef struct matrixctl
-{
-  t_float *c_A; /* matrix */
-  t_float *c_x; /* vector */
-  t_int c_order;
-
-} t_matrixctl;
-
-typedef struct matrix
-{
-  t_object x_obj;
-  t_float x_f;
-  t_matrixctl x_ctl;
-} t_matrix;
-
-static void matrix_load(t_matrix *x, t_symbol *s)
-{
-  FILE *matrix;
-  
-  if(s && s->s_name)
-    {
-      post("matrix: loading %s",s->s_name);
-      if(matrix = fopen(s->s_name, "r"))
-	{
-	  int n = x->x_ctl.c_order;
-	  fread(x->x_ctl.c_A, sizeof(float), n*n, matrix);
-	}
-      else post("matrix: error, cant open file.");
-    }
-}
-
-
-static t_int *matrix_perform(t_int *w)
-{
-
-
-  t_float *in       = (float *)(w[3]);
-  t_float *out      = (float *)(w[4]);
-  t_matrixctl *ctl  = (t_matrixctl *)(w[1]);
-  t_int n           = (t_int)(w[2]);
-
-  t_int i,j;
-  t_float *A = ctl->c_A;
-  t_float *x = ctl->c_x;
-
-  if (in == out) /* store input if ness. */
-    {
-      memcpy(x, in, sizeof(t_float)*n);
-      in = x;
-    }
-  bzero(out, sizeof(t_float)*n); /* init output */
-
-  for (j=0; j<n; j++)
-      for (i=0; i<n; i++) 
-	out[i] += A[i+j*n] * in[j];
-
-  return (w+5);
-}
-
-static void matrix_dsp(t_matrix *x, t_signal **sp)
-{
-  int n = sp[0]->s_n;
-  int k,i;
-
-  if (x->x_ctl.c_order != n)
-    {
-      if (x->x_ctl.c_A) free (x->x_ctl.c_A);
-
-      x->x_ctl.c_A = (t_float *)calloc(n*n,sizeof(t_float));
-      x->x_ctl.c_x = (t_float *)calloc(n,sizeof(t_float));
-      x->x_ctl.c_order = n;
-    }
-  
-  for (i=0;i<n;i++) x->x_ctl.c_A[i] = 1;
-
-  dsp_add(matrix_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-
-
-}                                  
-static void matrix_free(t_matrix *x)
-{
-
-  if (x->x_ctl.c_A) free (x->x_ctl.c_A);
-  if (x->x_ctl.c_x) free (x->x_ctl.c_x);
-
-}
-
-t_class *matrix_class;
-
-static void *matrix_new(t_floatarg order)
-{
-    t_matrix *x = (t_matrix *)pd_new(matrix_class);
-    int iorder = (int)order;
-    int i, n=64, k;
-
-
-    /* out 1 */
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-
-
-    /* init data */
-
-    x->x_ctl.c_A = (t_float *)calloc(n*n,sizeof(t_float));
-    x->x_ctl.c_x = (t_float *)calloc(n,sizeof(t_float));
-
-
-    for (i=0;i<n;i++) x->x_ctl.c_A[i] = 1;
-    x->x_ctl.c_order = n;
-
-    return (void *)x;
-}
-
-void bmatrix_tilde_setup(void)
-{
-  //post("matrix~ v0.1");
-    matrix_class = class_new(gensym("bmatrix~"), (t_newmethod)matrix_new,
-    	(t_method)matrix_free, sizeof(t_matrix), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(matrix_class, t_matrix, x_f);
-    class_addmethod(matrix_class, (t_method)matrix_dsp, gensym("dsp"), 0); 
-    class_addmethod(matrix_class, (t_method)matrix_load, gensym("load"), A_SYMBOL,0); 
-
-
-}
-
diff --git a/externals/creb-old/modules/bwin~.c b/externals/creb-old/modules/bwin~.c
deleted file mode 100644
index 90a9e2a9091918c022ad0a7358383f663e52f26d..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/bwin~.c
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- *   window.c  - window generation abstraction
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdlib.h>
-
-
-static t_class *window_class;
-
-typedef struct _window
-{
-    t_object x_obj;
-    t_float x_f;
-    t_float *x_window;
-    t_int x_size;
-    t_symbol *x_type;
-    t_float x_typearg;
-    
-} t_window;
-
-static t_int *window_perform(t_int *w)
-{
-    t_window *x = (t_window *)(w[1]);
-    t_float *in = (t_float *)(w[2]);
-    t_float *out = (t_float *)(w[3]);
-    t_float *window = x->x_window;
-    int n = (int)(w[4]);
-    while (n--)
-    {
-    	*out++ = (*in++) * (*window++);
-    }
-    return (w+5);
-}
-
-static void window_size(t_window *x, t_int n)
-{
-    if (x->x_size != n){
-	if (x->x_window) free(x->x_window);
-	x->x_window = malloc(sizeof(float)*n);
-	x->x_size = n;
-    }
-}
-
-
-static void window_type(t_window *x, t_symbol *s, t_float f)
-{
-    int i;
-    float a = 0;
-    float a_inc = 2 * M_PI / (float)(x->x_size);
-    if (!s) s = gensym("hamming");
-    if (s == gensym("hamming")){
-	for (i=0; i<x->x_size; i++){
-	    float c = cos(a);
-	    x->x_window[i] = (0.54 - 0.46 * c);
-	    a += a_inc;
-	}
-    }
-    else if (s == gensym("hann")){
-	for (i=0; i<x->x_size; i++){
-	    float c = cos(a);
-	    x->x_window[i] = (0.5 - 0.5 * c);
-	    a += a_inc;
-	}
-    }
-    else if (s == gensym("hann/hamming")){
-	for (i=0; i<x->x_size; i++) {
-	    float c = cos(a);
-	    x->x_window[i] = (0.5 - 0.5 * c) / (0.54 - 0.46 * c);
-	    a += a_inc;
-	}
-    }
-    else if (s == gensym("bfft_pink")){
-	x->x_window[0] = 1.0f; //DC
-	x->x_window[1] = 1.0f / sqrt((double)(x->x_size>>1)); //NY
-	for (i=2; i<x->x_size; i+=2) {
-	    double freq = (double)(i>>1);
-	    float amp = sqrt(1.0 / freq);
-	    x->x_window[i] = amp;
-	    x->x_window[i+1] = amp;
-	}
-    }   
-    else if (s == gensym("bfft_blue")){
-	x->x_window[0] = 1.0f; //DC
-	x->x_window[1] = sqrt((double)(x->x_size>>1)); //NY
-	for (i=2; i<x->x_size; i+=2) {
-	    double freq = (double)(i>>1);
-	    float amp = sqrt(freq);
-	    x->x_window[i] = amp;
-	    x->x_window[i+1] = amp;
-	}
-    }   
-    else if (s == gensym("bfft_db/octave")){
-	float power = f/6.0;
-	x->x_window[0] = 1.0f; //DC
-	x->x_window[1] = pow((double)(x->x_size>>1), power); //NY
-	for (i=2; i<x->x_size; i+=2) {
-	    double freq = (double)(i>>1);
-	    float amp = pow(freq, power);
-	    x->x_window[i] = amp;
-	    x->x_window[i+1] = amp;
-	}
-    }   
-
-
-    /* default is no window */
-    else{
-	post("bwin~: unknown window type, using rectangular");
-	for (i=0; i<x->x_size; i++) x->x_window[i] = 1.0f;
-    }
-
-    x->x_type = s;
-    x->x_typearg = f;
-
-}
-
-static void window_dsp(t_window *x, t_signal **sp)
-{
-    int n =  sp[0]->s_n;
-    if (x->x_size != n){
-	window_size(x, n);
-	window_type(x, x->x_type, x->x_typearg);
-    }
-
-    dsp_add(window_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, n);
-}
-
-static void window_free(t_window *x)
-{
-    free(x->x_window);
-}
-
-
-static void *window_new(t_symbol *s)
-{
-    t_window *x = (t_window *)pd_new(window_class);
-    outlet_new(&x->x_obj, &s_signal);
-    x->x_window = 0;
-    window_size(x, 64);
-    window_type(x, s, 0);
-    return (x);
-}
-
-void bwin_tilde_setup(void)
-{
-    window_class = class_new(gensym("bwin~"), 
-			     (t_newmethod)window_new, (t_method)window_free,
-			     sizeof(t_window), 0, A_DEFSYMBOL, A_NULL);
-    CLASS_MAINSIGNALIN(window_class, t_window, x_f);
-    class_addmethod(window_class, (t_method)window_dsp,
-		    gensym("dsp"), A_NULL);
-    class_addmethod(window_class, (t_method)window_type,
-		    gensym("type"), A_SYMBOL, A_DEFFLOAT, A_NULL);
-}
-
diff --git a/externals/creb-old/modules/cexp~.c b/externals/creb-old/modules/cexp~.c
deleted file mode 100644
index d93a316e15bd16cfab8ba3ef227725e0faf261d5..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/cexp~.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "cmath~.c"
-
-void cexp_tilde_setup(void)
-{
-    cmath_tilde_setup();
-}
diff --git a/externals/creb-old/modules/cheby~.c b/externals/creb-old/modules/cheby~.c
deleted file mode 100644
index 7bf97b2d28cb1c958a2750149a1de05386433b79..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/cheby~.c
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
- *   cheby.c  - chebyshev polynomial evaluation 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "m_pd.h"
-#include <math.h>
-
-
-#define MAX_ORDER 1024
-#define DEFAULT_ORDER 4
-
-typedef struct chebyctl
-{
-  t_float c_gain[MAX_ORDER];
-  t_int c_order;
-} t_chebyctl;
-
-typedef struct cheby
-{
-  t_object x_obj;
-  t_float x_f;
-  t_chebyctl x_ctl;
-} t_cheby;
-
-static void cheby_bang(t_cheby *x)
-{
-
-}
-
-static void cheby_coef(t_cheby *x, t_floatarg coef, t_floatarg f)
-{
-  int i = (int)coef;
-  if ((i > 0) && (i < x->x_ctl.c_order + 1)){
-    x->x_ctl.c_gain[i-1] = f;
-  /*   post("cheby: harmonic %d set to %f", i, f); */
-  }
-}
-
-
-static t_int *cheby_perform(t_int *w)
-{
-
-
-  t_float *in    = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_chebyctl *ctl  = (t_chebyctl *)(w[1]);
-  t_float *gain  = ctl->c_gain;
-  t_int i;
-  t_int n = (t_int)(w[2]), k;
-  t_float x,y,t1,t2,t,acc;
-
-    
-  for (i = 0; i < n; i++) 
-    {
-      x = *in++;
-      
-      gain = ctl->c_gain;
-      t2 = 1;                      /* T_0 */
-      t1 = x;                      /* T_1 */
-      
-      acc = *gain++ * x;           /* a_1 T_1 */
-      for (k=2; k<=ctl->c_order; k++){
-	t = 2*x*t1 - t2;           /* T_k = 2 x T_{k-1} - T_{k-2} */
-	acc += *gain++ * t;        /* a_k T_k */
-	t2 = t1;
-	t1 = t;
-      }
-
-      *out++ = acc;
-      
-    }
-  
-    
-  return (w+5);
-}
-
-static void cheby_dsp(t_cheby *x, t_signal **sp)
-{
-    dsp_add(cheby_perform, 4, &x->x_ctl, sp[0]->s_n, 
-	    sp[0]->s_vec, sp[1]->s_vec);
-
-}                                  
-static void cheby_free(void)
-{
-
-}
-
-t_class *cheby_class;
-
-static void *cheby_new(t_floatarg order_f)
-{
-  int i;
-  int order = (int)order_f;
-
-    t_cheby *x = (t_cheby *)pd_new(cheby_class);
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    if (order < 1)         order = DEFAULT_ORDER;  /* default */
-    if (order > MAX_ORDER) order = MAX_ORDER;      /* maximum */
-
-
-    //post("cheby: order = %d", order);
-
-    x->x_ctl.c_order = order;
-    cheby_coef(x, 1, 1);
-    for (i=2; i<order+1; i++){
-      cheby_coef(x, 0, i);
-    }
-
-    return (void *)x;
-}
-
-void cheby_tilde_setup(void)
-{
-  //post("cheby~ v0.1");
-    cheby_class = class_new(gensym("cheby~"), (t_newmethod)cheby_new,
-    	(t_method)cheby_free, sizeof(t_cheby), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(cheby_class, t_cheby, x_f); 
-    class_addmethod(cheby_class, (t_method)cheby_bang, gensym("bang"), 0);
-    class_addmethod(cheby_class, (t_method)cheby_dsp, gensym("dsp"), 0); 
-    class_addmethod(cheby_class, (t_method)cheby_coef, gensym("coef"), 
-		    A_DEFFLOAT, A_DEFFLOAT, 0); 
-
-}
-
diff --git a/externals/creb-old/modules/clog~.c b/externals/creb-old/modules/clog~.c
deleted file mode 100644
index 84e935b160ddfd52b64eff7ec70563ceb19543b6..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/clog~.c
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "cmath~.c"
-
-void clog_tilde_setup(void)
-{
-    cmath_tilde_setup();
-}
diff --git a/externals/creb-old/modules/cmath~.c b/externals/creb-old/modules/cmath~.c
deleted file mode 100644
index 5526b9f9e379a521b1d2b5e0b3b893593c8b0ff2..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/cmath~.c
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- *   cmath.c  - some complex math dsp objects
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-#include <math.h>
-
-#define MINNORM 0.0000000001
-
-typedef struct cmath
-{
-    t_object x_obj;
-    t_float x_f;
-    t_perfroutine x_perf;
-} t_cmath;
-
-
-static t_int *cmath_perform_clog(t_int *w)
-{
-    t_float *inx    = (float *)(w[2]);
-    t_float *iny    = (float *)(w[3]);
-    t_float *outx    = (float *)(w[5]); // clockwize addressing
-    t_float *outy    = (float *)(w[4]);
-    t_int i;
-    t_int n = (t_int)(w[1]);
-    t_float x;
-
-    while (n--){
-	float x = *inx++;
-	float y = *iny++;
- 	float norm = sqrt(x*x + y*y);
-	float arg = atan2(y, x);
-	if (norm < MINNORM){
-	    norm = MINNORM;
-	}
-	*outx++ = log(norm);
-	*outy++ = arg;
-    }
-    
-    return (w+6);
-}
-
-
-static t_int *cmath_perform_cexp(t_int *w)
-{
-    t_float *inx    = (float *)(w[2]);
-    t_float *iny    = (float *)(w[3]);
-    t_float *outx    = (float *)(w[5]); // clockwize addressing
-    t_float *outy    = (float *)(w[4]);
-    t_int i;
-    t_int n = (t_int)(w[1]);
-    t_float x;
-
-    while (n--){
-	float x = *inx++;
-	float y = *iny++;
-	float norm = exp(x);
-	*outx++ = norm * cos(y);
-	*outy++ = norm * sin(y);
-    }
-    
-    return (w+6);
-}
-
-static t_int *cmath_perform_nfft(t_int *w)
-{
-    t_float *inx    = (float *)(w[2]);
-    t_float *iny    = (float *)(w[3]);
-    t_float *outx    = (float *)(w[5]); // clockwize addressing
-    t_float *outy    = (float *)(w[4]);
-    t_int i;
-    t_int n = (t_int)(w[1]);
-    t_float x;
-    t_float scale = 1.0f / (sqrt((float)n));
-
-    mayer_fft(n, inx, outx);
-
-    while (n--){
-	float x = *inx++;
-	float y = *iny++;
-	*outx++ = scale * x;
-	*outy++ = scale * y;
-    }
-    
-    return (w+6);
-}
-
-static t_int *cmath_perform_nifft(t_int *w)
-{
-    t_float *inx    = (float *)(w[2]);
-    t_float *iny    = (float *)(w[3]);
-    t_float *outx    = (float *)(w[5]); // clockwize addressing
-    t_float *outy    = (float *)(w[4]);
-    t_int i;
-    t_int n = (t_int)(w[1]);
-    t_float x;
-    t_float scale = 1.0f / (sqrt((float)n));
-
-    mayer_ifft(n, inx, outx);
-
-    while (n--){
-	float x = *inx++;
-	float y = *iny++;
-	*outx++ = scale * x;
-	*outy++ = scale * y;
-    }
-    
-    return (w+6);
-}
-
-static void cmath_dsp(t_cmath *x, t_signal **sp)
-{
-    dsp_add(x->x_perf, 5, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec);
-
-}                                  
-void cmath_free(void)
-{
-
-}
-
-t_class *cmath_class;
-
-t_cmath *cmath_new_common(void)
-{
-    t_cmath *x = (t_cmath *)pd_new(cmath_class);
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-    outlet_new(&x->x_obj, gensym("signal")); 
-    outlet_new(&x->x_obj, gensym("signal")); 
-    return x;
-}
-
-#define DEFNEWCMATH(name, perfmethod)		\
-void * name (void)				\
-{						\
-    t_cmath *x = cmath_new_common();		\
-    x->x_perf = perfmethod ;			\
-    return (void*)x;				\
-}
-
-DEFNEWCMATH(cmath_new_clog, cmath_perform_clog)
-DEFNEWCMATH(cmath_new_cexp, cmath_perform_cexp)
-DEFNEWCMATH(cmath_new_nfft, cmath_perform_nfft)
-DEFNEWCMATH(cmath_new_nifft, cmath_perform_nifft)
-
-
-void cmath_tilde_setup(void)
-{
-  //post("cmath~ v0.1");
-    cmath_class = class_new(gensym("clog~"), (t_newmethod)cmath_new_clog,
-    	(t_method)cmath_free, sizeof(t_cmath), 0, 0);
-
-    class_addcreator((t_newmethod)cmath_new_cexp, gensym("cexp~"), A_NULL);
-    class_addcreator((t_newmethod)cmath_new_nfft, gensym("nfft~"), A_NULL);
-    class_addcreator((t_newmethod)cmath_new_nifft, gensym("nifft~"), A_NULL);
-
-    CLASS_MAINSIGNALIN(cmath_class, t_cmath, x_f);
-
-    class_addmethod(cmath_class, (t_method)cmath_dsp, gensym("dsp"), 0); 
-}
-
diff --git a/externals/creb-old/modules/diag~.c b/externals/creb-old/modules/diag~.c
deleted file mode 100644
index 1e6bd96e65a6f6d5aa8ba73550ea8d9664cba056..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/diag~.c
+++ /dev/null
@@ -1,216 +0,0 @@
-/*
- *   diag.c  - diagonal state space system.
- *   treats input dsp block as n parallel signals
- *
- *     s1 = (a * s1) + (b * s2) + u1;
- *     s2 = (a * s2) - (b * s1) + u2;
- *
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "extlib_util.h"
-#include <stdio.h>
-#include <stdlib.h>
-
-#define MAXORDER 64
-
-typedef struct diagctl
-{
-  t_float *c_state;
-  t_float *c_eigen;
-  t_int c_order;
-} t_diagctl;
-
-typedef struct diag
-{
-  t_object x_obj;
-  t_float x_f;
-  t_diagctl x_ctl;
-} t_diag;
-
-
-static float randfloat(void){
-  float r = rand ();
-  r /= (RAND_MAX/2);
-  r -= 1;
-  return r;
-
-}
-
-static void diag_eigen(t_diag *x, t_floatarg index, t_floatarg val)
-{
-  int i = (int)index;
-  if (i<0) return;
-  if (i>=x->x_ctl.c_order) return;
-  x->x_ctl.c_eigen[i] = val;
-}
-
-/* set decay time of pole at index */
-static void diag_time(t_diag *x, t_floatarg index, t_floatarg time)
-{
-  float r;
-
-  /* time in ms */
-  time *= 0.001;
-
-  if (time < 0.0f) time = 0.0f;
-  r = pow(0.001f, (float)x->x_ctl.c_order / (time * sys_getsr()));
-  if (r < 0.0f) r = 0.0f;
-  if (r > 1.0f) r = 1.0f;
-
-  diag_eigen(x, index, r);
-}
-
-
-
-static void diag_reset(t_diag *x)
-{
-  int i;
-
-  for (i=0; i<x->x_ctl.c_order; i++)
-    { 
-      x->x_ctl.c_state[i] = 0;
-    }
-  
-}
-
-static void diag_random(t_diag *x)
-{
-  int i;
-
-  for (i=0; i<x->x_ctl.c_order; i++)
-    { 
-      x->x_ctl.c_state[i] = randfloat();
-    }
-  
-}
-
-
-
-static t_int *diag_perform(t_int *w)
-{
-
-
-  t_float *in     = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_diagctl *ctl  = (t_diagctl *)(w[1]);
-
-  t_float *eigen = ctl->c_eigen;
-  t_float *state = ctl->c_state;
-  t_int n = (t_int)(w[2]);
-  t_float newstate;
-
-  int i;
-
-  for (i=0; i<n; i++)
-    {
-      newstate = (*state + *in) * (*eigen);
-      newstate = IS_DENORMAL(newstate) ? 0 : newstate;
-      *state   = newstate;
-      *out     = newstate;
-
-      in++;
-      out++;
-      state++;
-      eigen++;
-    }
-
-
-
-  return (w+5);
-}
-
-
-static void diag_dsp(t_diag *x, t_signal **sp)
-{
-
-  int n = sp[0]->s_n;
-  int i;
-
-  if (x->x_ctl.c_order != n)
-    {
-      if (x->x_ctl.c_state) free(x->x_ctl.c_state);
-      if (x->x_ctl.c_eigen) free(x->x_ctl.c_eigen);
-
-      x->x_ctl.c_state = (t_float *)malloc(n*sizeof(t_float));
-      x->x_ctl.c_eigen = (t_float *)malloc(n*sizeof(t_float));
-
-      for(i=0;i<n;i++)
-	{
-	  x->x_ctl.c_state[i] = 0;
-	  x->x_ctl.c_eigen[i] = 0;
-	}
-
-      x->x_ctl.c_order = n;
-    }
-
-
-
-  dsp_add(diag_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-
-}
-                                  
-static void diag_free(t_diag *x)
-{
-
-  if (x->x_ctl.c_state) free(x->x_ctl.c_state);
-  if (x->x_ctl.c_eigen) free(x->x_ctl.c_eigen);
-
-
-}
-
-t_class *diag_class;
-
-
-static void *diag_new(t_floatarg permute)
-{
-    t_diag *x = (t_diag *)pd_new(diag_class);
-    int i, n=64;
-
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    x->x_ctl.c_state = (t_float *)malloc(n*sizeof(t_float));
-    x->x_ctl.c_eigen = (t_float *)malloc(n*sizeof(t_float));
-
-    for(i=0;i<n;i++)
-      {
-	x->x_ctl.c_state[i] = 0;
-	x->x_ctl.c_eigen[i] = 0;
-      }
-    
-    x->x_ctl.c_order = n;
-
-
-    return (void *)x;
-}
-
-
-void diag_tilde_setup(void)
-{
-  //post("diag~ v0.1");
-    diag_class = class_new(gensym("diag~"), (t_newmethod)diag_new,
-    	(t_method)diag_free, sizeof(t_diag), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(diag_class, t_diag, x_f);
-    class_addmethod(diag_class, (t_method)diag_dsp, gensym("dsp"), 0); 
-    class_addmethod(diag_class, (t_method)diag_reset, gensym("reset"), 0); 
-    class_addmethod(diag_class, (t_method)diag_random, gensym("random"), 0); 
-    class_addmethod(diag_class, (t_method)diag_random, gensym("bang"), 0); 
-    class_addmethod(diag_class, (t_method)diag_eigen, gensym("eigen"), A_DEFFLOAT, A_DEFFLOAT, 0); 
-    class_addmethod(diag_class, (t_method)diag_time, gensym("time"), A_DEFFLOAT, A_DEFFLOAT, 0); 
-
-}
-
diff --git a/externals/creb-old/modules/dist~.c b/externals/creb-old/modules/dist~.c
deleted file mode 100644
index 1206b179cd590b9845e1adbe7b8dd8cd2067d1f3..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/dist~.c
+++ /dev/null
@@ -1,275 +0,0 @@
-/*
- *   dist.c  -  wave shaping extern 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "extlib_util.h"
-
-
-#define     CLIP          0
-#define     INVERSE       1
-#define     INVERSESQ     2
-#define     INVERSECUB    3
-#define     RAT1          4
-#define     RAT2          5
-#define     FULLRECT      6
-#define     HALFRECT      7
-#define     PULSE         8
-#define     NEWTON1       9
-#define     UPPERCLIP    10
-#define     COMPARATOR   11
-
-
-
-typedef struct distctl
-{
-  t_float c_gain;
-  t_float c_delay;
-  char c_type;
-} t_distctl;
-
-typedef struct dist
-{
-  t_object x_obj;
-  t_float x_f;
-  t_distctl x_ctl;
-} t_dist;
-
-void dist_bang(t_dist *x)
-{
-
-}
-
-void dist_gain(t_dist *x,  t_floatarg f)
-{
-  x->x_ctl.c_gain = f;
-
-}
-
-
-static t_int *dist_perform(t_int *w)
-{
-
-
-  t_float *in    = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_distctl *ctl  = (t_distctl *)(w[1]);
-  t_float gain  = ctl->c_gain;
-  t_int i;
-  t_int n = (t_int)(w[2]);
-  t_float x,y,v;
-  t_float z = ctl->c_delay;
-
-  switch(ctl->c_type){
-  case CLIP:	
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-	x = (x >  1) ? ( 1.) : x;
-	x = (x < -1) ? (-1.) : x;
-	*out++ = 0.9999 * x;
-
-      }
-    break;
-
-  case INVERSE:	
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-	x = (x > 1) ? (2. - 1/x) : x;
-	x = (x < -1) ? (-2. - 1/x) : x;
-	*out++ = x/2.0001;
-
-      }
-    break;
-
-  case INVERSESQ:	
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-	x = (x > 1) ? (2. - 1/x) : x;
-	x = (x < -1) ? (-2. - 1/x) : x;
-	x /= 2;
-	*out++ = 1.999*x*x-1;
-
-      }
-    break;
-
-  case INVERSECUB:	
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-	x = (x > 1) ? (2. - 1/x) : x;
-	x = (x < -1) ? (-2. - 1/x) : x;
-	x /= 2;
-	*out++ = .9999 * x*x*x;
-
-      }
-    break;
-
-  case RAT1: /*(2*d./((1+(d).^2)))*/   
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-	y = (1. + x*x);
-	x = 1.9999*x/y;
-	*out++ = x;
-      }
-    break;
-
-  case RAT2: /*(2*d./((1+(d).^16)))*/   
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-	y = x*x;
-	y *= y;
-	y *= y;
-	y *= y;
-	y = (1. + y);
-	x = 1.2*x/y;
-	*out++ = x;
-      }
-    break;
-
-  case FULLRECT:
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-	x = (x>0) ? x : -x;
-	x = (x>1) ? 1 : x;
-	*out++ = 1.9999*(x-.5);
-      }
-    break;
-
-  case HALFRECT:
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-	x = (x>0) ? x : 0;
-	x = (x>1) ? 1 : x;
-	*out++ = 1.9999*(x-.5);
-      }
-    break;
-
-  case PULSE:
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-	y = (x>0) ? (1):(-1);
-	x = (z*y > 0) ? (0) : (y);
-	*out++ = .9999 * x;
-	z = x;
-	
-      }
-    ctl->c_delay = z;
-    break;
-
-  case NEWTON1:
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-	y = 1./(1.+x*x);
-
-	z = .5;
-	z = .5*(y/z + z);
-	z = .5*(y/z + z);
-	z = .5*(y/z + z);
-
-	/*	z = .5*(y/z + z);
-	 *	z = .5*(y/z + z);
-	 *	z = .5*(y/z + z);
-	 */
-
-	*out++ = x * z; 
-	
-      }
-    ctl->c_delay = z;
-    break;
-
-  case UPPERCLIP:
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-
-	x = (x < 0.0f) ? 0.0f : x;
-	x = (x > 0.9999f) ? 0.9999f : x;
-
-	*out++ = x; 
-	
-      }
-    break;
-
-  case COMPARATOR:
-    for (i = 0; i < n; i++)
-      {
-	x = *in++ * gain;
-
-	x = (x > 0.0f) ? 1.0f : -1.0f;
-
-	*out++ = x; 
-	
-      }
-    break;
-
-  default:
-    
-    for (i = 0; i < n; i++) *out++ = *in++;
-    break;
-
-  }
-    
-  return (w+5);
-}
-
-static void dist_dsp(t_dist *x, t_signal **sp)
-{
-    dsp_add(dist_perform, 4, &x->x_ctl, sp[0]->s_n, 
-	    sp[0]->s_vec, sp[1]->s_vec);
-
-}                                  
-void dist_free(void)
-{
-
-}
-
-t_class *dist_class;
-
-void *dist_new(t_floatarg type)
-{
-    t_dist *x = (t_dist *)pd_new(dist_class);
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("gain"));  
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    dist_gain(x, 1);
-    x->x_ctl.c_type = (char)type;
-    x->x_ctl.c_delay = 0;
-
-    return (void *)x;
-}
-
-void dist_tilde_setup(void)
-{
-  //post("dist~ v0.1");
-    dist_class = class_new(gensym("dist~"), (t_newmethod)dist_new,
-    	(t_method)dist_free, sizeof(t_dist), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(dist_class, t_dist, x_f); 
-    class_addmethod(dist_class, (t_method)dist_bang, gensym("bang"), 0);
-    class_addmethod(dist_class, (t_method)dist_dsp, gensym("dsp"), 0); 
-    class_addmethod(dist_class, (t_method)dist_gain, gensym("gain"), A_FLOAT, 0); 
-
-}
-
diff --git a/externals/creb-old/modules/dwt~.c b/externals/creb-old/modules/dwt~.c
deleted file mode 100644
index 9ab3bcc75cc9c0a94b15b379d08721c50de94673..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/dwt~.c
+++ /dev/null
@@ -1,893 +0,0 @@
-/*
- *   dwt.c  - code for discrete wavelet transform 
- *   (symmetric interpolating biorthogonal wavelets using the lifting transform) 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#define MAXORDER 64
-
-typedef enum{DWT,IDWT,DWT16,IDWT16} t_dwttype;
-
-typedef struct dwtctl
-{
-  t_float c_update[MAXORDER];
-  t_float c_predict[MAXORDER];
-  t_int c_nupdate;
-  t_int c_npredict;
-  t_int c_levels;
-  t_int c_fakein;
-  t_float c_fakeval;
-  t_int c_mask;
-  char c_name[16];
-  t_int *c_clutter;
-  t_int *c_unclutter;
-  t_int c_permute;
-  t_dwttype c_type;
-} t_dwtctl;
-
-typedef struct dwt
-{
-  t_object x_obj;
-  t_float x_f;
-  t_dwtctl x_ctl;
-} t_dwt;
-
-
-static void dwt_even(t_dwt *x, t_floatarg f)
-{
-  int k = (int)f;
-  int i, j;
-  float *p = x->x_ctl.c_predict;
-  float *u = x->x_ctl.c_update;
-  float  l, xi, xj;
-
-  if ((k>0) && (k<MAXORDER/2))
-    {
-      for (i=0; i<k; i++){
-	l = 1;
-	xi = 1+2*i;
-	for (j=0; j<k; j++)
-	  {
-	    xj = 1+2*j;
-	    if (i != j)  l /= (1 - ((xi*xi) / (xj*xj)));
-	  }
-	l *= .5;
-
-	p[k-i-1] = l;
-	p[k+i] = l;
-	u[k-i-1] = l/2;
-	u[k+i] = l/2;
-      }
-
-      x->x_ctl.c_npredict = 2*k;
-      x->x_ctl.c_nupdate  = 2*k;
-    }
-}
-
-static void dwt_wavelet(t_dwt *x, t_floatarg f)
-{
-  int k = (int)f;
-  t_float *p = x->x_ctl.c_predict;
-  t_float *u = x->x_ctl.c_update;
-  t_int *np = &x->x_ctl.c_npredict;
-  t_int *nu = &x->x_ctl.c_nupdate;
-  
-  switch(k)
-    {
-    default:
-    case 1: /* haar */
-      *np = *nu = 2; /* actual order is one */
-      p[0] = 1;
-      p[1] = 0;
-      u[0] = 0;
-      u[1] = .5;
-      break;
-
-    case 2: /* hat */
-    case 3:
-      *np = *nu = 2;
-      p[0] = .5;
-      p[1] = .5;
-      u[0] = .25;
-      u[1] = .25;
-      break;
-
-    case 4: /* N = 4, N~ = 4 */
-    case 5:
-      *np = *nu = 4;
-      p[0] = -0.0625;
-      p[1] =  0.5625;
-      p[2] =  0.5625;
-      p[3] = -0.0625;
-      u[0] = -0.03125;
-      u[1] =  0.28125;
-      u[2] =  0.28125;
-      u[3] = -0.03125;
-      break;
-
-    case 6:
-    case 7:
-      *np = *nu = 6;
-      p[0] =    0.01171875000000;
-      p[1] =   -0.09765625000000;
-      p[2] =    0.58593750000000;
-      p[3] =    0.58593750000000;
-      p[4] =   -0.09765625000000;
-      p[5] =    0.01171875000000;
-      u[0] =    0.00585937500000;
-      u[1] =   -0.04882812500000;
-      u[2] =    0.29296875000000;
-      u[3] =    0.29296875000000;
-      u[4] =   -0.04882812500000;
-      u[5] =    0.00585937500000;
-      break;
-    }
-}
-
-static inline void dwt_perform_permutation(t_float *S, int n, t_int *f)
-{
-  t_int k,l;
-  t_float swap;
-  for(k=0; k<n; k++)
-    {
-      l = f[k];
-      while (l<k) l = f[l];
-      swap = S[k];
-      S[k] = S[l];
-      S[l] = swap;
-    }
-}
-
-static void dwt_permutation(t_dwt *x, t_int n){
-
-  t_dwtctl *ctl = &x->x_ctl;
-  t_int k, L=0, l, start, power;
-  t_int nsave = n;
-
-  while(nsave>>=1) L++; 
-
-  if (ctl->c_clutter)   free(ctl->c_clutter);
-  if (ctl->c_unclutter) free(ctl->c_unclutter);
-  
-  ctl->c_clutter = (t_int *)malloc(n*sizeof(t_int));
-  ctl->c_unclutter = (t_int *)malloc(n*sizeof(t_int));
-
-
-  for(l = L, start = n/2, power=1; l>0; l--, start /=2, power *=2)
-    {
-      for(k=0; k<start; k++)
-	{
-	  ctl->c_unclutter[start+k] = (1 + 2*k) * power;
-	}
-    }
-  ctl->c_unclutter[0] = 0;
-
-  for(k=0; k<n; k++)
-    ctl->c_clutter[ctl->c_unclutter[k]] = k;
-
-  return;
-
-  /* debug */
-  for(k=0; k<n; k++)
-    printf("clutter[%d] = %d\n", (int)k, (int)ctl->c_clutter[k]);
-  for(k=0; k<n; k++)
-    printf("unclutter[%d] = %d\n", (int)k, (int)ctl->c_unclutter[k]);
-
-  exit(1);
-}
-
-
-
-static void idwt_coef(t_dwt *x, t_floatarg index, t_floatarg value)
-{
-  x->x_ctl.c_fakein = (int)index;
-  x->x_ctl.c_fakeval = value;
- 
-}
-
-static void dwt_print(t_dwt *x)
-{
-  int i;
-
-  printf("%s: predict: [ ", x->x_ctl.c_name);
-  for (i=0; i<x->x_ctl.c_npredict; i++) printf("%f ", x->x_ctl.c_predict[i]);
-  printf("], ");
-
-  printf("update: [ ");
-  for (i=0; i<x->x_ctl.c_nupdate; i++) printf("%f ", x->x_ctl.c_update[i]);
-  printf("]\n");
-
-
-  
-}
-
-
-static void dwt_filter(t_dwt *x,  t_symbol *s, int argc, t_atom *argv)
-{
-  int invalid_argument = 0;
-  int i;
-  
-  char *name = x->x_ctl.c_name;
-
-  float *pfilter = x->x_ctl.c_predict; 
-  float *ufilter = x->x_ctl.c_update; 
-  float *mask = NULL;
-
-  t_int *length = NULL;
-  float sum = 0;
-
-  if (s == gensym("predict"))
-    {
-      mask = pfilter;
-      length = &(x->x_ctl.c_npredict);
-    }
-  else if (s == gensym("update"))
-    {
-      mask = ufilter;
-      length = &(x->x_ctl.c_nupdate);
-    }
-  else if (s == gensym("mask"))
-    {
-      mask = NULL;
-    }
-  else
-    {
-      return;
-    }
-
-  if (argc >= MAXORDER) post("%s: error, maximum order exceeded.",name);
-  else if ((x->x_ctl.c_type == DWT16 || x->x_ctl.c_type == IDWT16 ) && (argc != 16))
-    post("%s: error, need to have 16 coefficients.",name);
-  else if (argc == 0) post("%s: no arguments given.",name);
-  else if (argc & 1) post("%s: error, only an even number of coefficients is allowed.", name);
-  else
-    {
-      for (i=0; i<argc; i++){
-	if (argv[i].a_type != A_FLOAT )
-	  {
-	    invalid_argument = 1;
-	    break;
-	  }
-      }
-      
-      if (invalid_argument) post("%s: invalid argument, must be a number.", name);
-      else
-	{
-	  if (mask) /* one of update / predict */
-	    {
-	      for (i=0; i<argc; i++) mask[i] = argv[i].a_w.w_float;
-	      *length = argc;
-	    }
-	  else /* both + normalization */
-	    {
-	      for (i=0; i<argc; i++) sum +=  argv[i].a_w.w_float;
-	      for (i=0; i<argc; i++)
-		{
-		  pfilter[i] =  argv[i].a_w.w_float / sum;
-		  ufilter[i] =  argv[i].a_w.w_float / (sum*2);
-		}
-	      x->x_ctl.c_npredict = argc;
-	      x->x_ctl.c_nupdate = argc;
-	    }
-	}
-
-    }
-
-}
-
-
-
-static inline void dwtloop(float *vector, 
-			   int source,
-			   int dest,
-		     int increment,
-		     int backup,
-		     int numcoef, 
-		     int mask,
-		     float *filter,
-		     int filtlength,
-		     float sign)
-{
-
-  int k,m;
-  float acc;
-
-  for (k = 0; k < numcoef; k++)
-    {
-      acc = 0;
-      for (m = 0; m < filtlength; m++)
-	{
-
-	  acc += filter[m] * vector[source];
-	  source += increment;
-	  source &= mask;
-	}
-      vector[dest] += sign * acc;
-      dest += increment;
-      source -= backup;
-      source &= mask;
-    }
-
-}
-
-static inline void dwtloop16(float *vector, 
-		     int source,
-		     int dest,
-		     int increment,
-		     int backup,
-		     int numcoef, 
-		     int mask,
-		     float *filter,
-		     int filtlength, /* ignored, set to 16 */
-		     float sign)
-{
-
-  int k,m;
-  float acc;
-
-  for (k = 0; k < numcoef; k++)
-    {
-      acc = 0;
-
-      acc += filter[0] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[1] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[2] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[3] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[4] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[5] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[6] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[7] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[8] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[9] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[10] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[11] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[12] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[13] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[14] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      acc += filter[15] * vector[source];
-      source += increment;
-      source &= mask;
-      
-      vector[dest] += sign * acc;
-      dest += increment;
-      source -= backup;
-      source &= mask;
-    }
-
-}
-
-
-
-
-
-static t_int *dwt_perform(t_int *w)
-{
-
-
-  t_float *in     = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_dwtctl *ctl  = (t_dwtctl *)(w[1]);
-
-
-  t_int n = (t_int)(w[2]);
-
-  int i;
-
-  int numcoef = n/2;
-  /*  int source_u = ((1 - ctl->c_nupdate)/2 - 1);
-   *  int source_p = ((1 - ctl->c_npredict)/2);
-   */
-  int source_u = ((2 - ctl->c_nupdate) - 1);
-  int source_p = ((2 - ctl->c_npredict));
-  int increment = 2;
-  int dest = 1;
-  int backup_u = (ctl->c_nupdate-1)*2;
-  int backup_p = (ctl->c_npredict-1)*2;
-
-  /* copy input to output */
-  if (in != out)
-    for (i=0; i<n; i++) out[i]=in[i];
-
-
-  /* fake input */
-  /*    for (i=0; i<n; i++) out[i]=0; out[n/8]=1;*/
-
-
-
-  /* backward transform */
-
-
-  /* iterate over all levels */
-  for (i=0; i < ctl->c_levels; i++){
-
-
-    /* foreward predict */
-    dwtloop(out, (source_p & (n-1)), dest, increment, backup_p, numcoef, n-1, ctl->c_predict, ctl->c_npredict, -1);
-
-
-    /* foreward update */
-    dwtloop(out, (source_u & (n-1)), 0,    increment, backup_u, numcoef, n-1, ctl->c_update,  ctl->c_nupdate,  +1);
-
-
-    /* update control parameters */
-    numcoef /= 2;
-    source_p *= 2;
-    source_u *= 2;
-    backup_p *= 2;
-    backup_u *= 2;
-    increment *= 2;
-    dest *= 2;
-  }
-  
-  if (ctl->c_permute) 
-    dwt_perform_permutation(out, n, ctl->c_unclutter);
-
-
-  return (w+5);
-}
-
-
-
-
-static t_int *idwt_perform(t_int *w)
-{
-
-
-  t_float *in     = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_dwtctl *ctl  = (t_dwtctl *)(w[1]);
-
-
-  t_int n = (t_int)(w[2]);
-
-  int i;
-
-  int numcoef = 1;
-  int source_u = ((2 - ctl->c_nupdate) - 1) * (n/2);
-  int source_p = ((2 - ctl->c_npredict)) * (n/2);
-  int increment = n;
-  int dest = n/2;
-  int backup_u = (ctl->c_nupdate-1)*n;
-  int backup_p = (ctl->c_npredict-1)*n;
-  int fake_in = ctl->c_fakein;
-  float fake_val = ctl->c_fakeval;
-
-  /* copy input to output */
-  if (in != out)
-    for (i=0; i<n; i++) out[i]=in[i];
-
-
-  /* fake input */
-  
-  if ((fake_in >= 0) && (fake_in<n)){
-    for (i=0; i<n; i++) out[i]=0; 
-    out[fake_in]=fake_val;
-  }
-
-
-  if (ctl->c_permute) 
-    dwt_perform_permutation(out, n, ctl->c_clutter);
-
-
-  /* backward transform */
-
-
-  /* iterate over all levels */
-  for (i=0; i < ctl->c_levels; i++){
-
-    /* backward update */
-    dwtloop(out, (source_u & (n-1)), 0,    increment, backup_u, numcoef, n-1, ctl->c_update,  ctl->c_nupdate,  -1);
-
-
-    /* backward predict */
-    dwtloop(out, (source_p & (n-1)), dest, increment, backup_p, numcoef, n-1, ctl->c_predict, ctl->c_npredict, +1);
-
-    /* update control parameters */
-    numcoef *= 2;
-    source_p /= 2;
-    source_u /= 2;
-    backup_p /= 2;
-    backup_u /= 2;
-    increment /= 2;
-    dest /= 2;
-  }
-  
-
-
-  return (w+5);
-}
-
-static t_int *dwt16_perform(t_int *w)
-{
-
-
-  t_float *in     = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_dwtctl *ctl  = (t_dwtctl *)(w[1]);
-
-
-  t_int n = (t_int)(w[2]);
-
-  int i;
-
-  int numcoef = n/2;
-  /*  int source_u = ((1 - ctl->c_nupdate)/2 - 1);
-   *  int source_p = ((1 - ctl->c_npredict)/2);
-   */
-  int source_u = ((2 - ctl->c_nupdate) - 1);
-  int source_p = ((2 - ctl->c_npredict));
-  int increment = 2;
-  int dest = 1;
-  int backup_u = (ctl->c_nupdate-1)*2;
-  int backup_p = (ctl->c_npredict-1)*2;
-
-  /* copy input to output */
-  if (in != out)
-    for (i=0; i<n; i++) out[i]=in[i];
-
-
-  /* fake input */
-  /*    for (i=0; i<n; i++) out[i]=0; out[n/8]=1;*/
-
-
-
-  /* backward transform */
-
-
-  /* iterate over all levels */
-  for (i=0; i < ctl->c_levels; i++){
-
-
-    /* foreward predict */
-    dwtloop16(out, (source_p & (n-1)), dest, increment, backup_p, numcoef, n-1, ctl->c_predict, 16, -1);
-
-
-    /* foreward update */
-    dwtloop16(out, (source_u & (n-1)), 0,    increment, backup_u, numcoef, n-1, ctl->c_update,  16,  +1);
-
-
-    /* update control parameters */
-    numcoef /= 2;
-    source_p *= 2;
-    source_u *= 2;
-    backup_p *= 2;
-    backup_u *= 2;
-    increment *= 2;
-    dest *= 2;
-  }
-  
-  if (ctl->c_permute) 
-    dwt_perform_permutation(out, n, ctl->c_unclutter);
-
-
-  return (w+5);
-}
-
-
-
-
-static t_int *idwt16_perform(t_int *w)
-{
-
-
-  t_float *in     = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_dwtctl *ctl  = (t_dwtctl *)(w[1]);
-
-
-  t_int n = (t_int)(w[2]);
-
-  int i;
-
-  int numcoef = 1;
-  int source_u = ((2 - ctl->c_nupdate) - 1) * (n/2);
-  int source_p = ((2 - ctl->c_npredict)) * (n/2);
-  int increment = n;
-  int dest = n/2;
-  int backup_u = (ctl->c_nupdate-1)*n;
-  int backup_p = (ctl->c_npredict-1)*n;
-  int fake_in = ctl->c_fakein;
-  float fake_val = ctl->c_fakeval;
-
-  /* copy input to output */
-  if (in != out)
-    for (i=0; i<n; i++) out[i]=in[i];
-
-
-  /* fake input */
-  
-  if ((fake_in >= 0) && (fake_in<n)){
-    for (i=0; i<n; i++) out[i]=0; 
-    out[fake_in]=fake_val;
-  }
-
-
-  if (ctl->c_permute) 
-    dwt_perform_permutation(out, n, ctl->c_clutter);
-
-
-  /* backward transform */
-
-
-  /* iterate over all levels */
-  for (i=0; i < ctl->c_levels; i++){
-
-    /* backward update */
-    dwtloop16(out, (source_u & (n-1)), 0,    increment, backup_u, numcoef, n-1, ctl->c_update,  16,  -1);
-
-
-    /* backward predict */
-    dwtloop16(out, (source_p & (n-1)), dest, increment, backup_p, numcoef, n-1, ctl->c_predict, 16, +1);
-
-    /* update control parameters */
-    numcoef *= 2;
-    source_p /= 2;
-    source_u /= 2;
-    backup_p /= 2;
-    backup_u /= 2;
-    increment /= 2;
-    dest /= 2;
-  }
-  
-
-
-  return (w+5);
-}
-
-
-
-static void dwt_dsp(t_dwt *x, t_signal **sp)
-{
-
-  int n = sp[0]->s_n;
-  int ln = 0;
-
-  dwt_permutation(x, n);
-
-  x->x_ctl.c_mask = n-1;
-  while (n >>= 1) ln++;     
-  x->x_ctl.c_levels = ln;
-
-  switch(x->x_ctl.c_type){
-  case DWT:
-    dsp_add(dwt_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-    break;
-  case IDWT:
-    dsp_add(idwt_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-    break;
-  case DWT16:
-    dsp_add(dwt16_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-    break;
-  case IDWT16:
-    dsp_add(idwt16_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-    break;
-
-
-  }
-}
-
-                                  
-void dwt_free(t_dwt *x)
-{
-
-  if (x->x_ctl.c_clutter)   free(x->x_ctl.c_clutter);
-  if (x->x_ctl.c_unclutter) free(x->x_ctl.c_unclutter);
-
-
-}
-
-t_class *dwt_class, *idwt_class, *dwt16_class, *idwt16_class;
-
-
-static void dwt_reset(t_dwt *x)
-{
-  bzero(x->x_ctl.c_update, 16*sizeof(t_float));
-  bzero(x->x_ctl.c_predict, 16*sizeof(t_float));
-
-    x->x_ctl.c_update[7] = .25;
-    x->x_ctl.c_update[8] = .25;
-    x->x_ctl.c_nupdate = 16;
-
-    x->x_ctl.c_predict[7] = .5;
-    x->x_ctl.c_predict[8] = .5;
-    x->x_ctl.c_npredict = 16;
-    
-    x->x_ctl.c_fakein = -1;
-    x->x_ctl.c_fakeval = 0;
-
-}
-
-
-static void *dwt_new_common(t_floatarg permute)
-{
-    t_dwt *x = (t_dwt *)pd_new(dwt_class);
-    int i;
-
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    /* init data */
-    dwt_reset(x);
-
-    x->x_ctl.c_clutter = NULL;
-    x->x_ctl.c_unclutter = NULL;
-    x->x_ctl.c_permute = (t_int) permute;
-
-    return (void *)x;
-
-
-}
-
-static void *dwt_new(t_floatarg permute)
-{
-    t_dwt *x = dwt_new_common(permute);
-    sprintf(x->x_ctl.c_name,"dwt");
-    x->x_ctl.c_type = DWT;
-    return (void *)x;
-}
-
-
-static void *idwt_new(t_floatarg permute)
-{
-    t_dwt *x = dwt_new_common(permute);
-    sprintf(x->x_ctl.c_name,"idwt");
-    x->x_ctl.c_type = IDWT;
-    return (void *)x;
-}
-
-static void *dwt16_new(t_floatarg permute)
-{
-    t_dwt *x = dwt_new_common(permute);
-    sprintf(x->x_ctl.c_name,"dwt16");
-    x->x_ctl.c_type = DWT16;
-    return (void *)x;
-}
-
-
-static void *idwt16_new(t_floatarg permute)
-{
-    t_dwt *x = dwt_new_common(permute);
-    sprintf(x->x_ctl.c_name,"idwt16");
-    x->x_ctl.c_type = IDWT16;
-    return (void *)x;
-}
-
-
-void dwt_tilde_setup(void)
-{
-  //post("dwt~ v0.1");
-
-
-    dwt_class = class_new(gensym("dwt~"), (t_newmethod)dwt_new,
-    	(t_method)dwt_free, sizeof(t_dwt), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(dwt_class, t_dwt, x_f);
-    class_addmethod(dwt_class, (t_method)dwt_print, gensym("print"), 0);
-    class_addmethod(dwt_class, (t_method)dwt_reset, gensym("reset"), 0);
-    class_addmethod(dwt_class, (t_method)dwt_dsp, gensym("dsp"), 0); 
-
-    class_addmethod(dwt_class, (t_method)dwt_filter, gensym("predict"), A_GIMME, 0); 
-    class_addmethod(dwt_class, (t_method)dwt_filter, gensym("update"), A_GIMME, 0); 
-    class_addmethod(dwt_class, (t_method)dwt_filter, gensym("mask"), A_GIMME, 0);
-
-    class_addmethod(dwt_class, (t_method)dwt_even, gensym("even"), A_DEFFLOAT, 0);
-    class_addmethod(dwt_class, (t_method)idwt_coef, gensym("coef"), A_DEFFLOAT, A_DEFFLOAT, 0); 
-
-    
-
-    /*class_addmethod(dwt_class, (t_method)dwt_wavelet, gensym("wavelet"), A_DEFFLOAT, 0); */
-
-
-    idwt_class = class_new(gensym("idwt~"), (t_newmethod)idwt_new,
-    	(t_method)dwt_free, sizeof(t_dwt), 0, A_DEFFLOAT, 0);
-
-    CLASS_MAINSIGNALIN(idwt_class, t_dwt, x_f);
-    class_addmethod(idwt_class, (t_method)dwt_print, gensym("print"), 0);
-    class_addmethod(idwt_class, (t_method)dwt_dsp, gensym("dsp"), 0); 
-
-    class_addmethod(idwt_class, (t_method)dwt_filter, gensym("predict"), A_GIMME, 0); 
-    class_addmethod(idwt_class, (t_method)dwt_filter, gensym("update"), A_GIMME, 0); 
-    class_addmethod(idwt_class, (t_method)dwt_filter, gensym("mask"), A_GIMME, 0); 
-
-    class_addmethod(idwt_class, (t_method)idwt_coef, gensym("coef"), A_DEFFLOAT, A_DEFFLOAT, 0); 
-
-    class_addmethod(idwt_class, (t_method)dwt_even, gensym("even"), A_DEFFLOAT, 0);
-
-
-
-    dwt16_class = class_new(gensym("dwt16~"), (t_newmethod)dwt16_new,
-    	(t_method)dwt_free, sizeof(t_dwt), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(dwt16_class, t_dwt, x_f);
-    class_addmethod(dwt16_class, (t_method)dwt_print, gensym("print"), 0);
-    class_addmethod(dwt16_class, (t_method)dwt_reset, gensym("reset"), 0);
-    class_addmethod(dwt16_class, (t_method)dwt_dsp, gensym("dsp"), 0); 
-
-    class_addmethod(dwt16_class, (t_method)dwt_filter, gensym("predict"), A_GIMME, 0); 
-    class_addmethod(dwt16_class, (t_method)dwt_filter, gensym("update"), A_GIMME, 0); 
-    class_addmethod(dwt16_class, (t_method)dwt_filter, gensym("mask"), A_GIMME, 0);
-
-
-
-
-    idwt16_class = class_new(gensym("idwt16~"), (t_newmethod)idwt16_new,
-    	(t_method)dwt_free, sizeof(t_dwt), 0, A_DEFFLOAT, 0);
-
-    CLASS_MAINSIGNALIN(idwt16_class, t_dwt, x_f);
-    class_addmethod(idwt16_class, (t_method)dwt_print, gensym("print"), 0);
-    class_addmethod(idwt16_class, (t_method)dwt_dsp, gensym("dsp"), 0); 
-
-    class_addmethod(idwt16_class, (t_method)dwt_filter, gensym("predict"), A_GIMME, 0); 
-    class_addmethod(idwt16_class, (t_method)dwt_filter, gensym("update"), A_GIMME, 0); 
-    class_addmethod(idwt16_class, (t_method)dwt_filter, gensym("mask"), A_GIMME, 0); 
-
-    class_addmethod(idwt16_class, (t_method)idwt_coef, gensym("coef"), A_DEFFLOAT, A_DEFFLOAT, 0); 
-
-
-
-
-}
-
diff --git a/externals/creb-old/modules/dynwav~.c b/externals/creb-old/modules/dynwav~.c
deleted file mode 100644
index 3645f5877edbb8081b1cfe166f8280aacbd65400..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/dynwav~.c
+++ /dev/null
@@ -1,319 +0,0 @@
-/*
- *   dynwav~.c  - dynamic wavetable oscillators
- *
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>  
-
-#define MAXORDER 1024
-
-typedef struct dynwavctl
-{
-  t_float *c_buf1; /* current */
-  t_float *c_buf2; /* old */
-  t_int c_order;
-
-} t_dynwavctl;
-
-typedef struct dynwav
-{
-  t_object x_obj;
-  t_float x_f;
-  t_dynwavctl x_ctl;
-} t_dynwav;
-
-
-static t_int *dynwav_perform(t_int *w)
-{
-
-
-  t_float *wave     = (float *)(w[3]);
-  t_float *freq     = (float *)(w[4]);
-  t_float *out      = (float *)(w[5]);
-  t_dynwavctl *ctl  = (t_dynwavctl *)(w[1]);
-  t_int n           = (t_int)(w[2]);
-
-  t_float *buf, *dbuf, *swap;
-
-  int i;
-  int mask = n-1;
-
-
-  /* swap buffer pointers */
-  swap = ctl->c_buf1;               /* this is the last one stored */
-  buf  = ctl->c_buf1 = ctl->c_buf2; /* put oldest in newest to overwrite */
-  dbuf = ctl->c_buf2 = swap;        /* put last one in oldest */
-  
-
-  if (buf && dbuf)
-    {
-
-      /* store input wavetable in buffer */
-      memcpy(buf, wave, n*sizeof(t_float));
-      
-      
-      for (i = 0; i < n; i++)
-	{
-	  float findex = *freq++ * (t_float)n;
-	  int index = findex;
-	  float frac,  a,  b,  c,  d, cminusb, q, r;
-	  int ia, ib, ic, id;
-	  
-	  frac = findex - index; 
-
-	  ia = (index-1) & mask;
-	  ib = (index  ) & mask;
-	  ic = (index+1) & mask;
-	  id = (index+2) & mask;
-
-	  q = i+1;
-	  q /= n;
-
-	  r = n-1-i;
-	  r /= n;
-	  
-	  /* get 4 points, wrap index */
-	  a = q * buf[ia] + r * dbuf[ia];
-	  b = q * buf[ib] + r * dbuf[ib];
-	  c = q * buf[ic] + r * dbuf[ic];
-	  d = q * buf[id] + r * dbuf[id];
-	  
-	  cminusb = c-b;
-	  *out++ = b + frac * (cminusb - 0.5f * (frac-1.) * 
-			       ((a - d + 3.0f * cminusb) * frac + 
-				(b - a - cminusb)));
-	}    
-      
-    }
-  return (w+6);
-}
-
-static t_int *dynwav_perform_8point(t_int *w) 
-/* FIXME: i thought this was broken. */
-{
-
-
-  t_float *wave     = (float *)(w[3]);
-  t_float *freq     = (float *)(w[4]);
-  t_float *out      = (float *)(w[5]);
-  t_dynwavctl *ctl  = (t_dynwavctl *)(w[1]);
-  t_int n           = (t_int)(w[2]);
-
-  t_float *buf, *dbuf, *swap;
-
-  int i;
-  int mask = n-1;
-
-
-  /* swap buffer pointers */
-  swap = ctl->c_buf1;               /* this is the last one stored */
-  buf  = ctl->c_buf1 = ctl->c_buf2; /* put oldest in newest to overwrite */
-  dbuf = ctl->c_buf2 = swap;        /* put last one in oldest */
-  
-
-  if (buf && dbuf)
-    {
-
-/* const float N1 = 1 / (   2      * (1-(1/9))  * (1-(1/25))  * (1-(1/49))  );
-** const float N2 = 1 / ( (1-(9))  *      2     * (1-(9/25))  * (1-(9/49))  );
-** const float N3 = 1 / ( (1-(25)) * (1-(25/9)) *      2      * (1-(25/49)) );
-** const float N4 = 1 / ( (1-(49)) * (1-(49/9)) * (1-(49/25)) *    2        );
-*/
-
-      const float N1 =   0.59814453125;
-      const float N2 =  -0.11962890625;
-      const float N3 =   0.02392578125;
-      const float N4 =  -0.00244140625;
-
-
-      /* store input wavetable in buffer */
-      memcpy(buf, wave, n*sizeof(t_float));
-      
-      
-      for (i = 0; i < n; i++)
-	{
-	  float findex = *freq++ * (t_float)n;
-	  int index = findex;
-	  float frac, q, r, fm, fp, fe, fo;
-	  float x1, x2, x3, x4;
-	  float g1, g2, g3, g4;
-	  float gg, g2g3g4, g1g3g4, g1g2g4, g1g2g3;
-	  float acc;
-	  int im, ip;
-	  
-	  frac = 2 *(findex - index) - 1; 
-
-	  x1 = frac;
-	  x2 = frac/3;
-	  x3 = frac/5;
-	  x4 = frac/7;
-
-	  g1 = 1 - x1*x1;
-	  g2 = 1 - x2*x2;
-	  g3 = 1 - x3*x3;
-	  g4 = 1 - x4*x4;
-
-	  gg       = g3 * g4;
-	  g2g3g4   = g2 * gg;       /* 1 */
-	  g1g3g4   = g1 * gg;       /* 2 */
-	  gg       = g1 * g2;
-	  g1g2g4   = g4 * gg;       /* 3 */
-	  g1g2g3   = g3 * gg;       /* 4 */
-
-
-	  /* triangle interpolation between current and past wavetable*/
-	  q = i+1;
-	  q /= n;
-
-	  r = n-1-i;
-	  r /= n;
-
-
-	  /* 1, -1*/
-	  im =  (index  ) & mask;
-	  ip =  (index+1) & mask;
-	  fm =  q * buf[im] + r * dbuf[im];
-	  fp =  q * buf[ip] + r * dbuf[ip];
-	  fe = fp + fm;
-	  fo = fp - fm;
-
-	  acc = N1 * g2g3g4 * (fe + x1*fo);
-
-	  /* 2, -2 */
-	  im =  (index-1) & mask;
-	  ip =  (index+2) & mask;
-	  fm =  q * buf[im] + r * dbuf[im];
-	  fp =  q * buf[ip] + r * dbuf[ip];
-	  fe = fp + fm;
-	  fo = fp - fm;
-
-	  acc += N2 * g1g3g4 * (fe + x2*fo);
-
-	  /* 3, -3 */
-	  im =  (index-2) & mask;
-	  ip =  (index+3) & mask;
-	  fm =  q * buf[im] + r * dbuf[im];
-	  fp =  q * buf[ip] + r * dbuf[ip];
-	  fe = fp + fm;
-	  fo = fp - fm;
-
-	  acc += N3 * g1g2g4 * (fe + x3*fo);
-
-	  /* 4, -4 */
-	  im =  (index-3) & mask;
-	  ip =  (index+4) & mask;
-	  fm =  q * buf[im] + r * dbuf[im];
-	  fp =  q * buf[ip] + r * dbuf[ip];
-	  fe = fp + fm;
-	  fo = fp - fm;
-
-	  acc += N4 * g1g2g3 * (fe + x4*fo);
-
-
-	  *out++ = acc;
-
-	}    
-      
-    }
-  return (w+6);
-}
-
-
-static void dynwav_dsp(t_dynwav *x, t_signal **sp)
-{
-  int n = sp[0]->s_n;
-  int k;
-
-  if (x->x_ctl.c_order != n)
-    {
-      if (x->x_ctl.c_buf1) free (x->x_ctl.c_buf1);
-      if (x->x_ctl.c_buf2) free (x->x_ctl.c_buf2);
-
-      x->x_ctl.c_buf1 = (t_float *)malloc(n*sizeof(t_float));
-      x->x_ctl.c_buf2 = (t_float *)malloc(n*sizeof(t_float));
-
-      for(k=0; k<n; k++)
-	{
-	  x->x_ctl.c_buf1[k] = 0;
-	  x->x_ctl.c_buf2[k] = 0;
-	}
-
-      x->x_ctl.c_order = n;
-    }
-
-
-  dsp_add(dynwav_perform_8point, 5, &x->x_ctl, sp[0]->s_n, 
-	  sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
-
-
-}                                  
-static void dynwav_free(t_dynwav *x)
-{
-
-  if (x->x_ctl.c_buf1) free (x->x_ctl.c_buf1);
-  if (x->x_ctl.c_buf2) free (x->x_ctl.c_buf2);
-
-}
-
-t_class *dynwav_class;
-
-static void *dynwav_new(t_floatarg order)
-{
-    t_dynwav *x = (t_dynwav *)pd_new(dynwav_class);
-    int iorder = (int)order;
-    int i, n=64, k;
-
-    /* in 2 */
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-
-    /* out 1 */
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-
-
-    /* init data */
-    x->x_ctl.c_buf1 = (t_float *)malloc(n*sizeof(t_float));
-    x->x_ctl.c_buf2 = (t_float *)malloc(n*sizeof(t_float));
-    
-    for(k=0; k<n; k++)
-      {
-	x->x_ctl.c_buf1[k] = 0;
-	x->x_ctl.c_buf2[k] = 0;
-      }
-    
-    x->x_ctl.c_order = n;
-
-    return (void *)x;
-}
-
-void dynwav_tilde_setup(void)
-{
-  //post("dynwav~ v0.1");
-    dynwav_class = class_new(gensym("dynwav~"), (t_newmethod)dynwav_new,
-    	(t_method)dynwav_free, sizeof(t_dynwav), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(dynwav_class, t_dynwav, x_f);
-    class_addmethod(dynwav_class, (t_method)dynwav_dsp, gensym("dsp"), 0); 
-
-
-}
-
diff --git a/externals/creb-old/modules/eadsr~.c b/externals/creb-old/modules/eadsr~.c
deleted file mode 100644
index d2a19683e4bce492a7be20a17c167e00b4f44bd8..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/eadsr~.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- *   eadsr.c  -  exponential attack decay sustain release envelope 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "extlib_util.h"
-
-typedef struct eadsrctl
-{
-  t_float c_attack;
-  t_float c_decay;
-  t_float c_sustain;
-  t_float c_release;
-  t_float c_state;
-  t_float c_target;
-} t_eadsrctl;
-
-typedef struct eadsr
-{
-  t_object x_obj;
-  t_float x_sr;
-  t_eadsrctl x_ctl;
-} t_eadsr;
-
-void eadsr_attack(t_eadsr *x, t_floatarg f)
-{
-  x->x_ctl.c_attack = milliseconds_2_one_minus_realpole(f);
-}
-
-void eadsr_decay(t_eadsr *x, t_floatarg f)
-{
-  x->x_ctl.c_decay = milliseconds_2_one_minus_realpole(f);
-}
-
-void eadsr_sustain(t_eadsr *x, t_floatarg f)
-{
-  if (f>ENVELOPE_MAX) f = ENVELOPE_MAX;
-  if (f<ENVELOPE_MIN) f = ENVELOPE_MIN;
-
-  x->x_ctl.c_sustain = f;
-}
-
-void eadsr_release(t_eadsr *x, t_floatarg f)
-{
-  x->x_ctl.c_release = milliseconds_2_one_minus_realpole(f);
-
-}
-
-void eadsr_start(t_eadsr *x)
-{
-    x->x_ctl.c_target = 1;
-    x->x_ctl.c_state = 0.0f;
-
-}
-
-void eadsr_stop(t_eadsr *x)
-{
-    x->x_ctl.c_target = 0;
-
-}
-
-void eadsr_float(t_eadsr *x, t_floatarg f)
-{
-    if (f == 0.0f) eadsr_stop(x);
-    else eadsr_start(x);
-}
-
-static t_int *eadsr_perform(t_int *w)
-{
-    t_float *out    = (float *)(w[3]);
-    t_eadsrctl *ctl  = (t_eadsrctl *)(w[1]);
-    t_float attack  = ctl->c_attack;
-    t_float decay   = ctl->c_decay;
-    t_float sustain = ctl->c_sustain;
-    t_float release = ctl->c_release;
-    t_float state   = ctl->c_state;
-    t_float target  = ctl->c_target;
-    t_int n = (t_int)(w[2]);
-
-    t_int i;
-
-
-    for (i = 0; i < n; i++){
-	if (target == 1.0f){
-	    /* attack */
-	    *out++ = state;
-	    state += attack*(1 - state);
-	    target = (state > ENVELOPE_MAX) ? sustain : 1.0f;
-	}
-	else if (target == 0.0f){
-	    /* release */
-	    *out++ = state;
-	    state -= release*state;
-	}
-	else{
-	    /* decay */
-	    *out++ = state;
-	    state -= decay*(state-sustain);
-	}
-    }
-
-    /* save state */
-    ctl->c_state = IS_DENORMAL(state) ? 0 : state;
-    ctl->c_target = target;
-    return (w+4);
-}
-
-static void eadsr_dsp(t_eadsr *x, t_signal **sp)
-{
-    x->x_sr = sp[0]->s_sr;
-    dsp_add(eadsr_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
-
-}                                  
-void eadsr_free(void)
-{
-
-}
-
-t_class *eadsr_class;
-
-void *eadsr_new(t_floatarg attack, t_floatarg decay, 
-		t_floatarg sustain, t_floatarg release)
-{
-    t_eadsr *x = (t_eadsr *)pd_new(eadsr_class);
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("attack"));  
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("decay"));  
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("sustain"));
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("release"));
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    x->x_ctl.c_state  = 0;
-    x->x_ctl.c_target = 0;
-    eadsr_attack(x, attack);
-    eadsr_decay(x, decay);
-    eadsr_sustain(x, sustain);
-    eadsr_release(x, release);
-
-
-    return (void *)x;
-}
-
-void eadsr_tilde_setup(void)
-{
-    //post("eadsr~ v0.1");
-    eadsr_class = class_new(gensym("eadsr~"), (t_newmethod)eadsr_new,
-    	(t_method)eadsr_free, sizeof(t_eadsr), 0,  A_DEFFLOAT, 
-			    A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0);
-    class_addmethod(eadsr_class, (t_method)eadsr_float,
-		    gensym("float"), A_FLOAT, 0);
-    class_addmethod(eadsr_class, (t_method)eadsr_start,
-		    gensym("start"), 0);
-    class_addmethod(eadsr_class, (t_method)eadsr_start, gensym("bang"), 0);
-    class_addmethod(eadsr_class, (t_method)eadsr_stop, gensym("stop"), 0);
-    class_addmethod(eadsr_class, (t_method)eadsr_dsp, gensym("dsp"), 0); 
-    class_addmethod(eadsr_class, (t_method)eadsr_attack,
-		    gensym("attack"), A_FLOAT, 0);
-    class_addmethod(eadsr_class, (t_method)eadsr_decay,
-		    gensym("decay"), A_FLOAT, 0);
-    class_addmethod(eadsr_class, (t_method)eadsr_sustain,
-		    gensym("sustain"), A_FLOAT, 0);
-    class_addmethod(eadsr_class, (t_method)eadsr_release,
-		    gensym("release"), A_FLOAT, 0);
-
-
-}
-
diff --git a/externals/creb-old/modules/ead~.c b/externals/creb-old/modules/ead~.c
deleted file mode 100644
index 3d79312d7bd393cfdf38da9e45ce463835c2ed62..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/ead~.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- *   ead.c  -  exponential attack decay envelope 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "extlib_util.h"
-
-/* pointer to */
-t_class *ead_class;
-
-
-/* state data fpr attack/decay dsp plugin */
-typedef struct eadctl
-{
-  t_float c_attack;
-  t_float c_decay;
-  t_float c_state;
-  t_int c_target;
-} t_eadctl;
-
-
-/* object data structure */
-typedef struct ead
-{
-  t_object x_obj;  
-  t_eadctl x_ctl;   
-} t_ead;
-
-
-
-static void ead_attack(t_ead *x, t_floatarg f)
-{
-  x->x_ctl.c_attack = milliseconds_2_one_minus_realpole(f);
-}
-
-static void ead_decay(t_ead *x, t_floatarg f)
-{
-  x->x_ctl.c_decay = milliseconds_2_one_minus_realpole(f);
-}
-
-static void ead_start(t_ead *x)
-{
-    /* reset state if necessary to prevent skipping */
-
-    // always reset, seems to be safest
-    //if (x->x_ctl.c_target == 1)
-
-    x->x_ctl.c_state = 0.0f; 
-    x->x_ctl.c_target = 1;
-}
-
-
-/* dsp callback function, not a method */
-static t_int *ead_perform(t_int *w)
-{
-
-  /* interprete arguments */
-    t_float *out    = (float *)(w[3]);
-    t_eadctl *ctl  = (t_eadctl *)(w[1]);
-    t_float attack  = ctl->c_attack;
-    t_float decay   = ctl->c_decay;
-    t_float state   = ctl->c_state;
-    t_int n = (t_int)(w[2]);
-
-    t_int i;
-
-
-    /* A/D code */
-
-    for (i = 0; i < n; i++){
-	switch(ctl->c_target){
-	case 1:
-	    /* attack phase */
-	    *out++ = state;
-	    state += attack*(1 - state);
-	    ctl->c_target = (state <= ENVELOPE_MAX);
-	    break;
-	default:
-	    /* decay phase */
-	    *out++ = state;
-	    state -= decay*state;
-	    break;
-	}
-	
-    }
-
-    /* save state */
-    ctl->c_state = IS_DENORMAL(state) ? 0 : state;
-
-    return (w+4); 
-}
-
-
-static void ead_dsp(t_ead *x, t_signal **sp)
-{
-  dsp_add(ead_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
-}                                  
-
-/* destructor */
-static void ead_free(void)
-{
-
-}
-
-
-
-/* constructor */
-static void *ead_new(t_floatarg attack, t_floatarg decay, 
-		     t_floatarg sustain, t_floatarg release)
-{
-    /* create instance */
-    t_ead *x = (t_ead *)pd_new(ead_class);
-    /* create new inlets, convert incoming message float to attack/decay */
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("attack"));  
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("decay"));  
-    /* create a dsp outlet */
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    /* initialize */
-    x->x_ctl.c_state  = 0;
-    x->x_ctl.c_target = 0;
-    ead_attack(x, attack);
-    ead_decay(x, decay);
-
-    /* return instance */
-    return (void *)x;
-}
-
-void ead_tilde_setup(void)
-{
-  //post("ead~ v0.1");
-
-    ead_class = class_new(gensym("ead~"), (t_newmethod)ead_new,
-    	(t_method)ead_free, sizeof(t_ead), 0,  A_DEFFLOAT, A_DEFFLOAT, 0);
-
-
-    class_addmethod(ead_class, (t_method)ead_start, gensym("start"), 0);
-    class_addmethod(ead_class, (t_method)ead_start, gensym("bang"), 0);
-    class_addmethod(ead_class, (t_method)ead_dsp, gensym("dsp"), 0); 
-    class_addmethod(ead_class, (t_method)ead_attack,
-		    gensym("attack"), A_FLOAT, 0);
-    class_addmethod(ead_class, (t_method)ead_decay,
-		    gensym("decay"), A_FLOAT, 0);
-}
diff --git a/externals/creb-old/modules/ear~.c b/externals/creb-old/modules/ear~.c
deleted file mode 100644
index 28fe0974d5312c8d7664547a9cc673e01ee0f467..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/ear~.c
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- *   ear.c  -  exponential attack release envelope 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "extlib_util.h"
-
-typedef struct earctl
-{
-  t_float c_attack;
-  t_float c_release;
-  t_float c_state;
-  t_float c_target;
-} t_earctl;
-
-typedef struct ear
-{
-  t_object x_obj;
-  t_float x_sr;
-  t_earctl x_ctl;
-} t_ear;
-
-void ear_attack(t_ear *x, t_floatarg f)
-{
-  x->x_ctl.c_attack = milliseconds_2_one_minus_realpole(f);
-}
-
-void ear_release(t_ear *x, t_floatarg f)
-{
-  x->x_ctl.c_release = milliseconds_2_one_minus_realpole(f);
-}
-
-void ear_start(t_ear *x)
-{
-    x->x_ctl.c_target = 1;
-    x->x_ctl.c_state = 0.0f;
-
-}
-
-void ear_stop(t_ear *x)
-{
-    x->x_ctl.c_target = 0;
-
-}
-
-void ear_float(t_ear *x, t_floatarg f)
-{
-    if (f == 0.0f) ear_stop(x);
-    else ear_start(x);
-}
-
-static t_int *ear_perform(t_int *w)
-{
-    t_float *out   = (float *)(w[3]);
-    t_earctl *ctl = (t_earctl *)(w[1]);
-    t_float attack = ctl->c_attack;
-    t_float release  = ctl->c_release;
-    t_float state  = ctl->c_state;
-    t_float target = ctl->c_target;
-    t_int n = (t_int)(w[2]);
-
-    t_int i;
-
-    if (target) /* attack phase */
-      for (i = 0; i < n; i++)
-	{
-	  *out++ = state;
-	  state += attack*(1 - state);
-	} 
-    else /* release phase */
-      for (i = 0; i < n; i++)
-	{
-	  *out++ = state;
-	  state -= release*state;
-	}
-
-    ctl->c_state = IS_DENORMAL(state) ? 0 : state;
-    return (w+4);
-}
-
-static void ear_dsp(t_ear *x, t_signal **sp)
-{
-    x->x_sr = sp[0]->s_sr;
-    dsp_add(ear_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
-
-}                                  
-void ear_free(void)
-{
-
-}
-
-
-t_class *ear_class;  /* attack - release */
-
-void *ear_new(t_floatarg attack, t_floatarg release)
-{
-    t_ear *x = (t_ear *)pd_new(ear_class);
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("attack"));  
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("release"));
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    ear_attack(x,attack);
-    ear_release(x,release);
-    x->x_ctl.c_state  = 0;
-    x->x_ctl.c_target = 0;
-
-    return (void *)x;
-}
-
-
-void ear_tilde_setup(void)
-{
-    //post("ear~ v0.1");
-    ear_class = class_new(gensym("ear~"), (t_newmethod)ear_new,
-    	(t_method)ear_free, sizeof(t_ear), 0, A_DEFFLOAT, A_DEFFLOAT, 0);
-    class_addmethod(ear_class, (t_method)ear_float, gensym("float"), A_FLOAT, 0);
-    class_addmethod(ear_class, (t_method)ear_start, gensym("start"), 0);
-    class_addmethod(ear_class, (t_method)ear_start, gensym("bang"), 0);
-    class_addmethod(ear_class, (t_method)ear_stop, gensym("stop"), 0);
-    class_addmethod(ear_class, (t_method)ear_dsp, gensym("dsp"), 0); 
-    class_addmethod(ear_class, 
-		    (t_method)ear_attack, gensym("attack"), A_FLOAT, 0);
-    class_addmethod(ear_class, 
-		    (t_method)ear_release, gensym("release"), A_FLOAT, 0);
-
-
-}
-
diff --git a/externals/creb-old/modules/eblosc~.c b/externals/creb-old/modules/eblosc~.c
deleted file mode 100644
index b2c6199f8edf7545fc5c2ca729ffb5cb1fc7ac76..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/eblosc~.c
+++ /dev/null
@@ -1,614 +0,0 @@
-/*
- *   eblosc.c  - bandlimited oscillators with infinite support discontinuities 
- *   using minimum phase impulse, step & ramp
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>  
-
-#include "filters.h"
-
-
-typedef unsigned long long u64;
-typedef unsigned long u32;
-
-
-
-#define LPHASOR      (8*sizeof(u32)) // the phasor logsize
-#define VOICES       8 // the number of oscillators
-#define CUTOFF       0.8f // fraction of nyquist for impulse cutoff
-
-
-
-typedef struct ebloscctl
-{
-    t_float c_pole[VOICES*2];      // complex poles
-    t_float c_gain[VOICES*2];      // complex gains (waveform specific constants)
-    t_float c_state[VOICES*2];     // complex state
-
-    u32 c_phase;                // phase of main oscillator
-    u32 c_phase2;               // phase of secondairy oscillator
-    t_float c_prev_amp;         // previous input of comparator
-    t_float c_phase_inc_scale;
-    t_float c_scale;
-    t_float c_scale_update;
-    t_symbol *c_waveform;
-
-} t_ebloscctl;
-
-typedef struct eblosc
-{
-  t_object x_obj;
-  t_float x_f;
-  t_ebloscctl x_ctl;
-} t_eblosc;
-
-
-/* phase converters */
-static inline float _phase_to_float(u32 p){
-    return ((float)p) * (1.0f / 4294967296.0f);
-}
-static inline u32 _float_to_phase(float f){
-    return (u32)(f * 4294967296.0f);
-}
-
-
-
-/* get one sample from the oscillator bank and perform time tick */
-static inline t_float _osc_tick(t_ebloscctl *ctl)
-{
-    float sum = 0.0f;
-    int i;
-    /* sum  all voices */
-    for (i=0; i<VOICES*2; i+=2){
-	/* rotate state */
-	vcmul2(ctl->c_state+i, ctl->c_pole+i);
-
-	/* get real part and add to output */
-	sum += ctl->c_state[0];
-    }
-
-    return sum;
-}
-
-/* add shifted impulse */
-static inline void _add_impulse(t_ebloscctl *ctl, t_float t0)
-{
-    int i;
-    for (i=0; i<VOICES*2; i+=2){
-	/* contribution is a_i z_i^t_0 */
-
-	float real = 1.0f;
-	float imag = 0.0f;
-	    
-	ctl->c_state[0] += real;
-	ctl->c_state[1] += imag;
-    }
-}
-
-
-/* add step */
-static inline void _add_step(t_ebloscctl *ctl)
-{
-    int i;
-    for (i=0; i<VOICES*2; i+=2){
-	/* contribution is a_i (1 - z_i) */
-
-	float real = 1.0f;
-	float imag = 0.0f;
-	    
-	ctl->c_state[0] += real;
-	ctl->c_state[1] += imag;
-    }
-}
-
-
-/* add shifted step */
-static inline void _add_shifted_step(t_ebloscctl *ctl, t_float t0)
-{
-    int i;
-    for (i=0; i<VOICES*2; i+=2){
-	/* contribution is a_i (1 - z_i^t_0) */
-
-	float real = 1.0f;
-	float imag = 0.0f;
-	    
-	ctl->c_state[0] += real;
-	ctl->c_state[1] += imag;
-    }
-}
-
-
-#if 0
-/* update waveplayers on zero cross */
-static void _bang_comparator(t_ebloscctl *ctl, float prev, float curr)
-{
-
-    /* check for sign change */
-    if ((prev * curr) < 0.0f){
-
-	int voice;
-
-	/* determine the location of the discontinuity (in oversampled
- 	  coordiates using linear interpolation */
-
-	float f = (float)S * curr / (curr - prev);
-
-	/* get the offset in the oversample table */
-
-	u32 table_index = (u32)f;
-
-	/* determine the fractional part (in oversampled coordinates)
-	   for linear interpolation */
-
-	float table_frac_index = f - (float)table_index;
-
-	/* set state (+ or -) */
-
-	ctl->c_state =  (curr > 0.0f) ? 0.5f : -0.5f;
-	
-	/* steal the oldest voice */
-
-	voice = ctl->c_next_voice++;
-	ctl->c_next_voice &= VOICES-1;
-	    
-	/* initialize the new voice index and interpolation fraction */
-
-	ctl->c_index[voice] = table_index;
-	ctl->c_frac[voice] = table_frac_index;
-	ctl->c_vscale[voice] = -ctl->c_scale * 2.0f * ctl->c_state;
-
-    }
-
-}
-
-/* advance phasor and update waveplayers on phase wrap */
-static void _bang_phasor(t_ebloscctl *ctl, float freq)
-{
-    u32 phase = ctl->c_phase;
-    u32 phase_inc; 
-    u32 oldphase;
-    int voice;
-    float scale = ctl->c_scale;
-
-    /* get increment */
-    float inc = freq * ctl->c_phase_inc_scale;
-
-    /* calculate new phase
-       the increment (and the phase) should be a multiple of S */
-    if (inc < 0.0f) inc = -inc;
-    phase_inc = ((u32)inc) & ~(S-1);
-    oldphase = phase;
-    phase += phase_inc;
-
-
-    /* check for phase wrap */
-    if (phase < oldphase){
-	u32 phase_inc_decimated = phase_inc >> LOVERSAMPLE;
-	u32 table_index;
-	u32 table_phase;
-	
-	/* steal the oldest voice if we have a phase wrap */
-	    
-	voice = ctl->c_next_voice++;
-	ctl->c_next_voice &= VOICES-1;
-	    
-	/* determine the location of the discontinuity (in oversampled
-	   coordinates) which is S * (new phase) / (increment) */
-	    
-	table_index = phase / phase_inc_decimated;
-	    
-	/* determine the fractional part (in oversampled coordinates)
-	   for linear interpolation */
-
-	table_phase = phase - (table_index * phase_inc_decimated);
-	    
-	/* use it to initialize the new voice index and interpolation
-	 * fraction */
-	    
-	ctl->c_index[voice] = table_index;
-	ctl->c_frac[voice] = (float)table_phase / (float)phase_inc_decimated;
-	ctl->c_vscale[voice] = scale;
-	scale = scale * ctl->c_scale_update;
-
-    }
-
-    /* save state */
-    ctl->c_phase = phase;
-    ctl->c_scale = scale;
-}
-
-
-/* the 2 oscillator version: the second osc can reset the first osc's
-   phase (hence it determines the pitch) the first osc determines the
-   waveform */
-
-static void _bang_hardsync_phasor(t_ebloscctl *ctl, float freq, float freq2)
-{
-    u32 phase = ctl->c_phase;
-    u32 phase2 = ctl->c_phase2;
-    u32 phase_inc; 
-    u32 phase_inc2; 
-    u32 oldphase;
-    u32 oldphase2;
-    int voice;
-    float scale = ctl->c_scale;
-
-
-    /* get increment */
-    float inc = freq * ctl->c_phase_inc_scale;
-    float inc2 = freq2 * ctl->c_phase_inc_scale;
-
-    /* calculate new phases
-       the increment (and the phase) should be a multiple of S */
-
-    /* save previous phases */
-    oldphase = phase;
-    oldphase2 = phase2;
-
-    /* update second osc */
-    if (inc2 < 0.0f) inc2 = -inc2;
-    phase_inc2 = ((u32)inc2) & ~(S-1);
-    phase2 += phase_inc2;
-    
-    /* update first osc (freq should be >= freq of sync osc */
-    if (inc < 0.0f) inc = -inc;
-    phase_inc = ((u32)inc) & ~(S-1);
-    if (phase_inc < phase_inc2) phase_inc = phase_inc2;
-    phase += phase_inc;
-
-
-    /* check for sync discontinuity (osc 2) */
-    if (phase2 < oldphase2) {
-
-	/* adjust phase depending on the location of the discontinuity in phase2:
-	   phase/phase_inc == phase2/phase_inc2 */
-	
-	u64 pi = phase_inc >> LOVERSAMPLE;
-	u64 pi2 = phase_inc2 >> LOVERSAMPLE;
-	u64 lphase = ((u64)phase2 * pi) / pi2;
-	phase = lphase & ~(S-1);
-    }
-
-
-    /* check for phase discontinuity (osc 1) */
-    if (phase < oldphase){
-	u32 phase_inc_decimated = phase_inc >> LOVERSAMPLE;
-	u32 table_index;
-	u32 table_phase;
-	float stepsize;
-	
-	/* steal the oldest voice if we have a phase wrap */
-	    
-	voice = ctl->c_next_voice++;
-	ctl->c_next_voice &= VOICES-1;
-	    
-	/* determine the location of the discontinuity (in oversampled
-	   coordinates) which is S * (new phase) / (increment) */
-
-	table_index = phase / phase_inc_decimated;
-	    
-	/* determine the fractional part (in oversampled coordinates)
-	   for linear interpolation */
-
-	table_phase = phase - (table_index * phase_inc_decimated);
-
-	/* determine the step size. as opposed to saw/impulse
-	   waveforms, the step is not always equal to one. it is:
-	   oldphase - phase + phase_inc but for the unit step this
-	   will overflow to zero, so we reduce the bit depth to
-	   prevent overflow */
-
-	stepsize = _phase_to_float(((oldphase-phase) >> LOVERSAMPLE)
-				   + phase_inc_decimated) * (float)S;
-	    
-	/* use it to initialize the new voice index and interpolation fraction */
-	    
-	ctl->c_index[voice] = table_index;
-	ctl->c_frac[voice] = (float)table_phase / (float)phase_inc_decimated;
-	ctl->c_vscale[voice] = scale * stepsize;
-	scale = scale * ctl->c_scale_update;
-
-    }
-
-    /* save state */
-    ctl->c_phase = phase;
-    ctl->c_phase2 = phase2;
-    ctl->c_scale = scale;
-}
-
-
-static t_int *eblosc_perform_hardsync_saw(t_int *w)
-{
-    t_float *freq     = (float *)(w[3]);
-    t_float *freq2     = (float *)(w[4]);
-    t_float *out      = (float *)(w[5]);
-    t_ebloscctl *ctl  = (t_ebloscctl *)(w[1]);
-    t_int n           = (t_int)(w[2]);
-    t_int i;
-
-    /* set postfilter cutoff */
-    ctl->c_butter->setButterHP(0.85f * (*freq / sys_getsr()));
-    
-    while (n--) {
-	float frequency = *freq++;
-	float frequency2 = *freq2++;
-
-	/* get the bandlimited discontinuity */
-	float sample = _get_bandlimited_discontinuity(ctl, bls);
-
-	/* add aliased sawtooth wave */
-	sample += _phase_to_float(ctl->c_phase) - 0.5f;
-
-	/* highpass filter output to remove DC offset and low
-	 * frequency aliasing */
-	ctl->c_butter->BangSmooth(sample, sample, 0.05f);
-
-	/* send to output */
-	*out++ = sample;
-
-	/* advance phasor */
-	_bang_hardsync_phasor(ctl, frequency2, frequency);
-	
-    }
-    
-    return (w+6);
-}
-
-static t_int *eblosc_perform_saw(t_int *w)
-{
-    t_float *freq     = (float *)(w[3]);
-    t_float *out      = (float *)(w[4]);
-    t_ebloscctl *ctl  = (t_ebloscctl *)(w[1]);
-    t_int n           = (t_int)(w[2]);
-    t_int i;
-    
-    while (n--) {
-	float frequency = *freq++;
-
-	/* get the bandlimited discontinuity */
-	float sample = _get_bandlimited_discontinuity(ctl, bls);
-
-	/* add aliased sawtooth wave */
-	sample += _phase_to_float(ctl->c_phase) - 0.5f;
-
-	/* send to output */
-	*out++ = sample;
-
-	/* advance phasor */
-	_bang_phasor(ctl, frequency);
-	
-    }
-    
-    return (w+5);
-}
-
-
-
-static t_int *eblosc_perform_pulse(t_int *w)
-{
-    t_float *freq     = (float *)(w[3]);
-    t_float *out      = (float *)(w[4]);
-    t_ebloscctl *ctl  = (t_ebloscctl *)(w[1]);
-    t_int n           = (t_int)(w[2]);
-    t_int i;
-
-
-    /* set postfilter cutoff */
-    ctl->c_butter->setButterHP(0.85f * (*freq / sys_getsr()));
-    
-    while (n--) {
-	float frequency = *freq++;
-
-	/* get the bandlimited discontinuity */
-	float sample = _get_bandlimited_discontinuity(ctl, bli);
-
-	/* highpass filter output to remove DC offset and low
-	 * frequency aliasing */
-	ctl->c_butter->BangSmooth(sample, sample, 0.05f);
-
-	/* send to output */
-	*out++ = sample;
-
-	/* advance phasor */
-	_bang_phasor(ctl, frequency);
-	
-    }
-    
-    return (w+5);
-}
-
-static t_int *eblosc_perform_comparator(t_int *w)
-{
-    t_float *amp      = (float *)(w[3]);
-    t_float *out      = (float *)(w[4]);
-    t_ebloscctl *ctl  = (t_ebloscctl *)(w[1]);
-    t_int n           = (t_int)(w[2]);
-    t_int i;
-    t_float prev_amp = ctl->c_prev_amp;
-    
-    while (n--) {
-	float curr_amp = *amp++;
-
-	/* exact zero won't work for zero detection (sic) */
-	if (curr_amp == 0.0f) curr_amp = 0.0000001f;
-
-	/* get the bandlimited discontinuity */
-	float sample = _get_bandlimited_discontinuity(ctl, bls);
-
-	/* add the block wave state */
-	sample += ctl->c_state;
-
-	/* send to output */
-	*out++ = sample;
-
-	/* advance phasor */
-	_bang_comparator(ctl, prev_amp, curr_amp);
-
-	prev_amp = curr_amp;
-	
-    }
-
-    ctl->c_prev_amp = prev_amp;
-    
-    return (w+5);
-}
-
-static void eblosc_phase(t_eblosc *x, t_float f)
-{
-    x->x_ctl.c_phase = _float_to_phase(f);
-    x->x_ctl.c_phase2 = _float_to_phase(f);
-}
-
-static void eblosc_phase1(t_eblosc *x, t_float f)
-{
-    x->x_ctl.c_phase = _float_to_phase(f);
-}
-
-static void eblosc_phase2(t_eblosc *x, t_float f)
-{
-    x->x_ctl.c_phase2 = _float_to_phase(f);
-}
-
-static void eblosc_dsp(t_eblosc *x, t_signal **sp)
-{
-  int n = sp[0]->s_n;
-
-  /* set sampling rate scaling for phasors */
-  x->x_ctl.c_phase_inc_scale = 4.0f * (float)(1<<(LPHASOR-2)) / sys_getsr();
-
-
-  /* setup & register the correct process routine depending on the waveform */
-
-  /* 2 osc */
-  if (x->x_ctl.c_waveform == gensym("syncsaw")){
-      x->x_ctl.c_scale = 1.0f;
-      x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(eblosc_perform_hardsync_saw, 5, &x->x_ctl, sp[0]->s_n,
-	      sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec);
-  }
-
-  /* 1 osc */
-  else if (x->x_ctl.c_waveform == gensym("pulse")){
-      x->x_ctl.c_scale = 1.0f;
-      x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(eblosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n,
-	      sp[0]->s_vec, sp[1]->s_vec);
-  }
-  else if (x->x_ctl.c_waveform == gensym("pulse2")){
-      x->x_ctl.c_phase_inc_scale *= 2;
-      x->x_ctl.c_scale = 1.0f;
-      x->x_ctl.c_scale_update = -1.0f;
-      dsp_add(eblosc_perform_pulse, 4, &x->x_ctl, sp[0]->s_n,
-	      sp[0]->s_vec, sp[1]->s_vec);
-  }
-  else if (x->x_ctl.c_waveform == gensym("comparator")){
-      x->x_ctl.c_scale = 1.0f;
-      x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(eblosc_perform_comparator, 4, &x->x_ctl,
-	      sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-  }
-  else{
-       x->x_ctl.c_scale = 1.0f;
-      x->x_ctl.c_scale_update = 1.0f;
-      dsp_add(eblosc_perform_saw, 4, &x->x_ctl, sp[0]->s_n,
-	      sp[0]->s_vec, sp[1]->s_vec);
-  }
-
-
-
-}                                  
-static void eblosc_free(t_eblosc *x)
-{
-    delete x->x_ctl.c_butter;
-}
-
-t_class *eblosc_class;
-
-static void *eblosc_new(t_symbol *s)
-{
-    t_eblosc *x = (t_eblosc *)pd_new(eblosc_class);
-    int i;
-
-    /* out 1 */
-    outlet_new(&x->x_obj, gensym("signal"));
-
-    /* optional signal inlets */
-    if (s == gensym("syncsaw")){
-	inlet_new(&x->x_obj, &x->x_obj.ob_pd,
-		  gensym("signal"), gensym("signal"));  
-    }
-
-    /* optional phase inlet */
-    if (s != gensym("comparator")){
-	inlet_new(&x->x_obj, &x->x_obj.ob_pd,
-		  gensym("float"), gensym("phase"));  
-    }
-
-    /* create the postfilter */
-    x->x_ctl.c_butter = new DSPIfilterSeries(3);
-
-    /* init oscillators */
-    for (i=0; i<VOICES; i++) {
-      x->x_ctl.c_index[i] = N-2;
-      x->x_ctl.c_frac[i] = 0.0f;
-    }
-
-    /* init rest of state data */
-    eblosc_phase(x, 0);
-    eblosc_phase2(x, 0);
-    x->x_ctl.c_state = 0.0;
-    x->x_ctl.c_prev_amp = 0.0;
-    x->x_ctl.c_next_voice = 0;
-    x->x_ctl.c_scale = 1.0f;
-    x->x_ctl.c_scale_update = 1.0f;
-    x->x_ctl.c_waveform = s;
-
-    return (void *)x;
-}
-
-
-
-
-
-extern "C"
-{
-    void eblosc_tilde_setup(void)
-    {
-	//post("eblosc~ v0.1");
-	
-	build_tables();
-	
-	eblosc_class = class_new(gensym("eblosc~"), (t_newmethod)eblosc_new,
-				(t_method)eblosc_free, sizeof(t_eblosc),
-				 0, A_DEFSYMBOL, A_NULL);
-	CLASS_MAINSIGNALIN(eblosc_class, t_eblosc, x_f);
-	class_addmethod(eblosc_class, (t_method)eblosc_dsp,
-			gensym("dsp"), A_NULL); 
-	class_addmethod(eblosc_class, (t_method)eblosc_phase,
-			gensym("phase"), A_FLOAT, A_NULL); 
-	class_addmethod(eblosc_class, (t_method)eblosc_phase2,
-			gensym("phase2"), A_FLOAT, A_NULL); 
-    }
-}
-
-#endif
diff --git a/externals/creb-old/modules/extlib_util.h b/externals/creb-old/modules/extlib_util.h
deleted file mode 100644
index 195d85f183635c4aa9bb025ae5d655d0b515aa20..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/extlib_util.h
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *   Prototypes for utility functions used in pd externals 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef CREB_EXTLIB_UTIL_H
-#define CREB_EXTLIB_UTIL_H
-
-#include <math.h>
-#include "m_pd.h"
-
-/* envelope stuff */
-
-/* exponential range for envelopes is 60dB */
-#define ENVELOPE_RANGE 0.001f
-#define ENVELOPE_MAX   (1.0f - ENVELOPE_RANGE)
-#define ENVELOPE_MIN   ENVELOPE_RANGE
-
-/* convert milliseconds to 1-p, with p a real pole */
-static inline float milliseconds_2_one_minus_realpole(float time)
-{
-  float r;
-
-  if (time < 0.0f) time = 0.0f;
-  r = -expm1(1000.0f * log(ENVELOPE_RANGE) / (sys_getsr() * time));
-  if (!(r < 1.0f)) r = 1.0f;
-
-  //post("%f",r);
-  return r;
-}
-
-
-typedef union
-{
-    unsigned int i;
-    float f;
-} t_flint;
-
-/* check if floating point number is denormal */
-
-//#define IS_DENORMAL(f) (((*(unsigned int *)&(f))&0x7f800000) == 0) 
-
-#define IS_DENORMAL(f) (((((t_flint)(f)).i) & 0x7f800000) == 0)
-
-
-#endif /* CREB_EXTLIB_UTIL_H */
-
diff --git a/externals/creb-old/modules/fdn~.c b/externals/creb-old/modules/fdn~.c
deleted file mode 100644
index aa67d74213c1ef04903edfd8d8d0a6c36f612d37..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/fdn~.c
+++ /dev/null
@@ -1,509 +0,0 @@
-/*
- *   fdn.c  - a feedback delay network (reverb tail)
- *   using a housholder reflection feedback matrix (In - 2/n 11T)
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-/* TODO: CLEAN UP THIS MESS
-
-add delay time generation code
-add prime calculation routine (for prime delay line lengths)
-add more diffuse feedback matrix (hadamard)
-check filtering code
-
-*/
-
-#include "extlib_util.h"
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
-#define FDN_MIN_DECAY_TIME .01f
-
-/*
-
-#define NBPRIMES
-int prime[NBPRIMES];
-
-static int isprime(int n)
-{
-  int i=1;
-  int d,m,p;
-  while(1){
-    p = prime[i++];
-    m = n % p;
-    if (m == 0) return 0; // it is a prime
-    d = n / p;
-    if (d < p) return 1;  // it is not a prime
-  }
-}
-
-static int initprimes(void)
-{
-  int i, curprime;
-  prime[0] = 1;
-  prime[1] = 2;
-  curprime = 3;
-  
-  for(i=2; i<NBPRIMES; i++){
-    while (!isprime(curprime)) curprime++;
-    prime[i] = curprime;
-    //printf("%d, ", curprime);
-    curprime++;
-  }
-  printf("\n");
-  return 0;
-}
-*/
-
-
-//static int find_nearest_prime(int n){ return n;}
-
-typedef struct fdnctl
-{
-  t_int c_order;      /* veelvoud van 4 */
-  t_int c_maxorder;
-  t_float c_leak;
-  t_float c_input;
-  t_float c_output;
-  t_float *c_buf;
-  t_float *c_gain_in;
-  t_float *c_gain_state;
-  t_float c_timehigh;
-  t_float c_timelow;
-  t_int *c_tap;       /* cirular feed: N+1 pointers: 1 read, (N-1)r/w, 1 write */ 
-  t_float *c_length;  /* delay lengths in ms */
-  t_int c_bufsize;
-  t_float c_fsample;
-  t_float *c_vector[2];
-  t_float *c_vectorbuffer;
-  t_int c_curvector;
-} t_fdnctl;
-
-typedef struct fdn
-{
-  t_object x_obj;
-  t_float x_f;
-  t_fdnctl x_ctl;
-} t_fdn;
-
-
-static void fdn_order(t_fdn *x, t_int order){
-  if (order > x->x_ctl.c_maxorder) {
-    post("fdn: this should not happen (panic!) order %d "
-	 "is larger than maxorder %d:", 
-	 order, x->x_ctl.c_maxorder ); 
-    exit(1);
-  }
-  x->x_ctl.c_order = order;
-  x->x_ctl.c_leak = -2./ order;
-  x->x_ctl.c_input = 1./ sqrt(order); //????????????????
- 
-}
-
-static void fdn_print(t_fdn *x)
-{
-  int i;
-  fprintf(stderr, "fdn: delay coefficients (ms)\n");
-  for (i=0;i<x->x_ctl.c_order;i++) {
-    fprintf(stderr, "%f ", x->x_ctl.c_length[i]);
-  }
-  fprintf(stderr, "\n");
-
-}
-
-
-static void fdn_reset(t_fdn *x)
-{
-  int i;
-  if (x->x_ctl.c_buf) 
-      memset(x->x_ctl.c_buf, 0, x->x_ctl.c_bufsize 
-	     * sizeof(float));
-  if (x->x_ctl.c_vectorbuffer) 
-      memset(x->x_ctl.c_vectorbuffer,
-	     0, x->x_ctl.c_maxorder * 2 * sizeof(float));
-}
-
-
-
-
-static t_int *fdn_perform(t_int *w)
-{
-
-
-  t_float *in      = (float *)(w[3]);
-  t_float *outr    = (float *)(w[4]);
-  t_float *outl    = (float *)(w[5]);
-  t_fdnctl *ctl    = (t_fdnctl *)(w[1]);
-  t_int n          = (t_int)(w[2]);
-  t_float input    = ctl->c_input;
-  t_float output   = ctl->c_output;
-  t_float *gain_in    = ctl->c_gain_in;
-  t_float *gain_state = ctl->c_gain_state;
-  t_int order      = ctl->c_order;
-  t_int *tap       = ctl->c_tap;
-  t_float *buf     = ctl->c_buf;
-  t_int mask       = ctl->c_bufsize - 1;
-
-  t_int i,j;
-  t_float x,y,v,left,right,z;
-  t_float filt_in, filt_last;
-
-  t_float *cvec, *lvec;
-  
-  t_float save;
-
-
-  for(i=0;i<n;i++){
-
-    x = *in++;
-    y = 0;
-    left = 0;
-    right = 0;
-
-    /* get temporary vector buffers */
-    cvec = ctl->c_vector[ctl->c_curvector];
-    lvec = ctl->c_vector[ctl->c_curvector ^ 1];
-    ctl->c_curvector ^= 1;
-
-
-    /* read input vector + get sum and left/right output*/
-    for(j=0;j<order;) 
-      {
-	z = buf[tap[j]];
-	cvec[j] = z;
-	y     += z;
-	left  += z;
-	right += z;
-	j++;
-
-	z = buf[tap[j]];
-	cvec[j] = z;
-	y     += z;
-	left  -= z;
-	right += z;
-	j++;
-
-	z = buf[tap[j]];
-	cvec[j] = z;
-	y     += z;
-	left  += z;
-	right -= z;
-	j++;
-
-	z = buf[tap[j]];
-	cvec[j] = z;
-	y     += z;
-	left  -= z;
-	right -= z;
-	j++;
-      }	
-
-
-    /* write output */
-    *outl++ = left;
-    *outr++ = right;
-
-    /* y == leak to all inputs */
-    y *=  ctl->c_leak;
-
-
-
-    /* perform feedback */
-    /* todo: decouple feedback & permutation */
-    save = cvec[0];
-    for (j=0; j<order-1; j++){
-      cvec[j] = cvec[j+1] + y + x; 
-    }
-    cvec[order-1] = save + y + x;
-
-
-
-    /* apply gain + store result vector in delay lines + increment taps*/
-    tap[0] = (tap[0]+1)&mask;
-    for(j=0;j<order;j++) {
-	save = gain_in[j] * cvec[j] + gain_state[j] * lvec[j];
-	save = IS_DENORMAL(save) ? 0 : save;
-	cvec[j] = save;
-	buf[tap[j+1]] = save;
-	tap[j+1] = (tap[j+1] + 1) & mask;
-    }	
-  }
-
-    
-  return (w+6);
-}
-
-static void fdn_dsp(t_fdn *x, t_signal **sp)
-{
-  
-  x->x_ctl.c_fsample = sp[0]->s_sr;
-  dsp_add(fdn_perform, 
-	  5, 
-	  &x->x_ctl, 
-	  sp[0]->s_n, 
-	  sp[0]->s_vec, 
-	  sp[1]->s_vec, 
-	  sp[2]->s_vec);
-
-
-}                                  
-static void fdn_free(t_fdn *x)
-{
-  if ( x->x_ctl.c_tap) free( x->x_ctl.c_tap);
-  if ( x->x_ctl.c_length) free( x->x_ctl.c_length);
-  if ( x->x_ctl.c_gain_in) free( x->x_ctl.c_gain_in);
-  if ( x->x_ctl.c_gain_state) free( x->x_ctl.c_gain_state);
-  if ( x->x_ctl.c_buf) free ( x->x_ctl.c_buf);
-  if ( x->x_ctl.c_vectorbuffer) free ( x->x_ctl.c_vectorbuffer );
-}
-
-
-/*
-
-each delay line is filtered with a first order iir filter:
-(gl: dc gain, gh: ny gain)
-
-H(z) = 2 gl gh / (gl + gh - z^-1 (gl - gh))
-
-this results in the difference equation
-
-yk = (2 gl gh ) / (gl + gh) x + (gl - gh) / (gl + gh) yk-1
-
-*/
-
-
-static void fdn_time(t_fdn *x, t_float timelow, t_float timehigh){
-  t_float elow, ehigh;
-  t_int i;
-  t_float gainlow, gainhigh, gainscale;
-
-  if (timelow < FDN_MIN_DECAY_TIME) timelow = FDN_MIN_DECAY_TIME;
-  if (timehigh < FDN_MIN_DECAY_TIME) timehigh = FDN_MIN_DECAY_TIME;
-
-  elow = -.003 / (timelow);
-  ehigh = -.003 / (timehigh);
-
-  /* setup gains */
-  for(i=0;i<x->x_ctl.c_order;i++){
-    gainlow = pow(10, elow * (x->x_ctl.c_length[i]));
-    gainhigh = pow(10, ehigh * (x->x_ctl.c_length[i]));
-    gainscale = 1.0f / (gainlow + gainhigh);
-    x->x_ctl.c_gain_in[i]    = 2.0f * gainlow * gainhigh * gainscale;
-    x->x_ctl.c_gain_state[i] = (gainlow - gainhigh) * gainscale;
-  }
-  x->x_ctl.c_timehigh = timehigh;
-  x->x_ctl.c_timelow = timelow;
-}
-
-static void fdn_updatedamping(t_fdn *x)
-{
-  fdn_time(x, x->x_ctl.c_timelow, x->x_ctl.c_timehigh);
-}
-
-static void fdn_timelow(t_fdn *x, t_float f){
-  x->x_ctl.c_timelow = fabs(f);
-  fdn_updatedamping(x);
-}
-static void fdn_timehigh(t_fdn *x, t_float f){
-  x->x_ctl.c_timehigh = fabs(f);
-  fdn_updatedamping(x);
-}
-
-
-static void fdn_setupdelayline(t_fdn *x){
-  int sum, t, n;
-  int mask = x->x_ctl.c_bufsize - 1;
-  int start =  x->x_ctl.c_tap[0];
-  t_int *tap = x->x_ctl.c_tap;
-  float *length = x->x_ctl.c_length;
-  float scale = sys_getsr() * .001f;
-
-  sum = 0;
-  tap[0] = (start & mask);
-  for (t=1; t<= x->x_ctl.c_order; t++){
-    sum += (int)(length[t-1] * scale);
-    tap[t]=(start+sum)&mask;
-  }
-
-  if (sum > mask){ 
-    post("fdn: warning: not enough delay memory, behaviour "
-	 "is undefined (this could lead to instability...)");
-  }
-    
-
-}
-
-static void fdn_list (t_fdn *x,  t_symbol *s, int argc, t_atom *argv){
-  int i;
-  float l;
-  int sum=0;
-
-  int order = argc & 0xfffffffc;
-
-  if (order < 4) return;
-  if (order > x->x_ctl.c_maxorder) return;
-
-
-  fdn_order(x, order);
-  for(i=0; i<order; i++)
-      if (argv[i].a_type == A_FLOAT) x->x_ctl.c_length[i] = argv[i].a_w.w_float;
-
-  fdn_setupdelayline(x);
-  fdn_updatedamping(x);
-}
-
-static void fdn_linear(t_fdn *x, t_float forder, t_float min, t_float max)
-{
-    t_int order = ((int)forder) & 0xfffffffc;
-    t_float length, inc;
-    t_int i;
-
-    if (order < 4) return;
-    if (order > x->x_ctl.c_maxorder) return;
-    if (min <= 0) return;
-    if (max <= 0) return;
-
-    inc = (max - min) / (float)(order - 1);
-    length = min;
-    
-    for (i=0; i<order; i++){
-	x->x_ctl.c_length[i] = length;
-	length += inc;
-    }
-
-    fdn_order(x, order);
-    fdn_setupdelayline(x);
-    fdn_updatedamping(x);
-} 
-
-
-
-static void fdn_exponential(t_fdn *x, t_float forder, t_float min, t_float max)
-{
-    t_int order = ((int)forder) & 0xfffffffc;
-    t_float length, inc;
-    t_int i;
-
-    if (order < 4) return;
-    if (order > x->x_ctl.c_maxorder) return;
-    if (min <= 0) return;
-    if (max <= 0) return;
-
-    inc = pow (max / min, 1.0f / ((float)(order - 1)));
-    length = min;
-    
-    for (i=0; i<order; i++){
-	x->x_ctl.c_length[i] = length;
-	length *= inc;
-    }
-
-    fdn_order(x, order);
-    fdn_setupdelayline(x);
-    fdn_updatedamping(x);
-} 
-
-
-
-
-
-t_class *fdn_class;
-
-static void *fdn_new(t_floatarg maxiorder, t_floatarg maxibufsize)
-{
-  t_int order = maxiorder;
-  t_int bufround;
-  t_fdn *x = (t_fdn *)pd_new(fdn_class);
-  t_float scale = sys_getsr() * .001f;
-  t_int bufsize = (t_int)(scale * maxibufsize);
-
-
-  inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("timelow"));  
-  inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("timehigh"));  
-  outlet_new(&x->x_obj, gensym("signal")); 
-  outlet_new(&x->x_obj, gensym("signal")); 
-  
-  /* init data */
-  if (order < 4) order = 8;
-  if (bufsize < 64) bufsize = 65536;
-  
-  bufround = 1;
-  while (bufround < bufsize) bufround *= 2;
-  bufsize = bufround;
-  
-
-  post("fdn: maximum nb of delay lines %d, total buffer "
-       "size %d samples (%f seconds)", 
-       order, bufsize, ((float)bufsize) / sys_getsr());
-  
-  
-  x->x_ctl.c_maxorder = order;
-  x->x_ctl.c_buf = (float *)malloc(sizeof(float) * bufsize);
-  x->x_ctl.c_bufsize = bufsize;
-  x->x_ctl.c_fsample = sys_getsr();
-  x->x_ctl.c_tap = (t_int *)malloc((order + 1) * sizeof(t_int)); 
-  x->x_ctl.c_length = (t_float *)malloc(order * sizeof(t_int)); 
-  x->x_ctl.c_gain_in = (t_float *)malloc(order * sizeof(t_float));
-  x->x_ctl.c_gain_state = (t_float *)malloc(order * sizeof(t_float));
-  x->x_ctl.c_vectorbuffer = (t_float *)malloc(order * 2 * sizeof(float));
-  memset(x->x_ctl.c_vectorbuffer, 0, order * 2 * sizeof(float));
-  x->x_ctl.c_curvector = 0;
-  x->x_ctl.c_vector[0] = &x->x_ctl.c_vectorbuffer[0];
-  x->x_ctl.c_vector[1] = &x->x_ctl.c_vectorbuffer[order];
-  
-  /* preset */
-  fdn_order(x,8);
-  x->x_ctl.c_length[0]= 29.0f;
-  x->x_ctl.c_length[1]= 31.0f;
-  x->x_ctl.c_length[2]= 37.0f;
-  x->x_ctl.c_length[3]= 67.0f;
-  x->x_ctl.c_length[4]= 82.0f;
-  x->x_ctl.c_length[5]= 110.0f;
-  x->x_ctl.c_length[6]= 172.0f;
-  x->x_ctl.c_length[7]= 211.0f;
-  fdn_setupdelayline(x);
-  fdn_time(x, 4, 1);
-
-  /* reset delay memory to zero */
-  fdn_reset(x);
-
-  
-  return (void *)x;
-}
-
-
-void fdn_tilde_setup(void)
-{
-  //post("fdn~ v0.1");
-    fdn_class = class_new(gensym("fdn~"), (t_newmethod)fdn_new,
-    	(t_method)fdn_free, sizeof(t_fdn), 0, A_DEFFLOAT, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(fdn_class, t_fdn, x_f); 
-    class_addmethod(fdn_class, (t_method)fdn_print, gensym("print"), 0);
-    class_addmethod(fdn_class, (t_method)fdn_reset, gensym("reset"), 0);
-    class_addmethod(fdn_class, (t_method)fdn_timehigh,
-		    gensym("timehigh"), A_DEFFLOAT, 0);
-    class_addmethod(fdn_class, (t_method)fdn_timelow,
-		    gensym("timelow"), A_DEFFLOAT, 0);
-    class_addmethod(fdn_class, (t_method)fdn_list, gensym("lines"), A_GIMME, 0);
-    class_addmethod(fdn_class, (t_method)fdn_dsp, gensym("dsp"), 0); 
-    class_addmethod(fdn_class, (t_method)fdn_linear,
-		    gensym("linear"), A_FLOAT, A_FLOAT, A_FLOAT, 0); 
-    class_addmethod(fdn_class, (t_method)fdn_exponential,
-		    gensym("exponential"), A_FLOAT, A_FLOAT, A_FLOAT, 0); 
-
-}
-
diff --git a/externals/creb-old/modules/ffpoly.c b/externals/creb-old/modules/ffpoly.c
deleted file mode 100644
index 097891c0f56a2799dc6fd94c8c9cf31e7cdebeb0..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/ffpoly.c
+++ /dev/null
@@ -1,173 +0,0 @@
-/*
- *   ffpoly.c - compute a finite field polynomial
- *   Copyright (c) by Tom Schouten <tom@ziwzwa.be>
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-
-
-#include "m_pd.h"
-#include <stdlib.h>
-
-
-
-
-typedef struct ffpoly_struct
-{
-    t_object x_obj;
-    t_float x_f;
-
-    t_outlet *x_outlet;
-    t_int *x_coef;
-    t_int x_poly_order;
-    t_int x_field_order;
-
-    t_int x_lastpackedcoef;
-
-
-
-} t_ffpoly;
-
-
-
-
-static void ffpoly_compute(t_ffpoly *x, t_floatarg fcoef)
-{
-    int in = (int)fcoef;
-    int fo = x->x_field_order;
-    int po = x->x_poly_order;
-    t_int* c = x->x_coef;
-    int i, out;
-
-    in %= fo;
-    if (in < 0) in += fo;
-
-    out = c[po];
-    for (i=po-1; i>=0; i--){
-	out *= in;
-	out += c[i];
-	out %= fo;
-    }
-    
-
-    outlet_float(x->x_outlet, (float)out);
-}
-
-
-/* this sets all coefficients given one float */
-static void ffpoly_coefficients(t_ffpoly *x, t_floatarg fcoef)
-{
-    int coef = (int)fcoef;
-    int i;
-    if (coef < 0) coef = -coef;
-
-    x->x_lastpackedcoef = coef;
-
-    for (i=0; i<x->x_poly_order + 1; i++){
-	x->x_coef[i] = coef % x->x_field_order;
-	coef = coef / x->x_field_order;
-    }
-
-
-}
-
-/* this sets one coefficient */
-static void ffpoly_coef(t_ffpoly *x, t_floatarg index, t_floatarg val)
-{
-  int i = (int)index;
-  int v = (int)val;
-  if (i<0) return;
-  if (i>x->x_poly_order) return;
-
-  v %= x->x_field_order;
-  if (v<0) v += x->x_field_order;
-
-  x->x_coef[i] = v;
-
-
-}
-
-static void ffpoly_fieldorder(t_ffpoly *x, t_floatarg ffieldorder)
-{
-    int i;
-    int order = (int)ffieldorder;
-    if (order < 2) order = 2;
-    x->x_field_order = order;
-
-    for (i=0; i<x->x_poly_order+1; i++)
-      x->x_coef[i] %= x->x_field_order;
-
-    //ffpoly_coefficients(x, x->x_lastpackedcoef);
-}
-
-static void ffpoly_free(t_ffpoly *x)
-{
-    free (x->x_coef);
-}
-
-t_class *ffpoly_class;
-
-
-
-static void *ffpoly_new(t_floatarg fpolyorder, t_floatarg ffieldorder)
-{
-    t_int polyorder = (int)fpolyorder;
-    t_int fieldorder = (int)ffieldorder;
-
-    t_ffpoly *x = (t_ffpoly *)pd_new(ffpoly_class);
-
-    if (polyorder < 1) polyorder = 1;
-    if (fieldorder < 2) fieldorder = 2;
-
-    x->x_poly_order = polyorder;
-    x->x_field_order = fieldorder;
-
-    x->x_coef = (t_int *)malloc((x->x_poly_order  + 1) * sizeof(int));
-
-    /* set poly to f(x) = x */
-    ffpoly_coefficients(x, x->x_field_order);
-
-    x->x_outlet = outlet_new(&x->x_obj, &s_float); 
-
-    return (void *)x;
-}
-
-
-#ifdef __cplusplus
-extern "C"
-{
-#endif
-
-
-void ffpoly_setup(void)
-{
-
-
-    ffpoly_class = class_new(gensym("ffpoly"), (t_newmethod)ffpoly_new,
-    	(t_method)ffpoly_free, sizeof(t_ffpoly), 0, A_DEFFLOAT, A_DEFFLOAT, A_NULL);
-    
-    class_addmethod(ffpoly_class, (t_method)ffpoly_coefficients, gensym("coefficients"),  A_FLOAT, A_NULL);
-
-    class_addmethod(ffpoly_class, (t_method)ffpoly_coef, gensym("coef"),  A_FLOAT, A_FLOAT, A_NULL);
-    class_addmethod(ffpoly_class, (t_method)ffpoly_fieldorder, gensym("order"),  A_FLOAT, A_NULL);
-    class_addfloat(ffpoly_class, (t_method)ffpoly_compute);
-
-
-}
-
-#ifdef __cplusplus
-}
-#endif
diff --git a/externals/creb-old/modules/filters.h b/externals/creb-old/modules/filters.h
deleted file mode 100644
index e0d1c497998a49f230067abc9f7495deea59c9ef..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/filters.h
+++ /dev/null
@@ -1,226 +0,0 @@
-/* this file contains a 37th attempt to write a general purpose iir filter toolset */
-
-/* defined as inline functions with call by reference to enable compiler ref/deref optim */
-
-/* the typedef */
-#ifndef T
-#define T float
-#endif
-
-
-/* the prototype for a word */
-#define P static inline void
-#define PP static void
-
-
-/* the 'reference' arguments */
-#define A *a
-#define B *b
-#define C *c
-#define D *d
-#define X *x
-#define Y *y
-#define S *s
-
-
-/* the opcodes */
-
-/* add */
-P cadd  (T X, T Y, T A, T B, T C, T D) { X = A + C; Y = B + D;}
-P cadd2 (T A, T B, T C, T D)           { A += C; B += D;}
-P vcadd  (T X, T A, T C)                { cadd(x,x+1,a,a+1,c,c+1); }
-P vcadd2 (T A, T C)                     { cadd2(a,a+1,c,c+1); }
-
-
-/* mul */
-P cmul_r (T X, T A, T B, T C, T D)    { X = A * C - B * D;}
-P cmul_i (T Y, T A, T B, T C, T D)    { Y = A * D + B * C;}
-P cmul (T X, T Y, T A, T B, T C, T D) 
-{
-    cmul_r (x, a, b, c, d);
-    cmul_i (y, a, b, c, d);
-}
-P cmul2 (T A, T B, T C, T D)
-{
-    T x = A;
-    T y = B;
-    cmul (&x, &y, a, b, c, d);
-    A = x;
-    B = y;
-}
-
-P vcmul  (T X, T A, T C)  { cmul(x,x+1,a,a+1,c,c+1); }
-P vcmul2 (T A, T C)       { cmul2(a,a+1,c,c+1); }
-
-
-/* norm */
-static inline float vcnorm(T X) { return hypot(x[0], x[1]); }
-
-
-
-/* swap */
-P vcswap(T Y, T X)
-{
-    float t[2] = {x[0], x[1]};
-    x[0] = y[0];
-    x[1] = y[1];
-    y[0] = t[0];
-    y[1] = t[1];
-}
-
-
-/* inverse */
-P vcinv(T Y, T X)
-{
-    float scale = 1.0f / vcnorm(x);
-    y[0] = scale * x[0];
-    y[1] = scale * x[1];
-}
-
-P vcinv1(T X)
-{
-    float scale = 1.0f / vcnorm(x);
-    x[0] *= scale;
-    x[1] *= scale;
-}
-
-/* exp */
-
-/* X = exp(Y) */
-P vcexp2 (T Y, T X)
-{
-    T r = exp(x[0]);
-    y[0] = cos (x[1]);
-    y[1] = sin (x[1]);
-    y[0] *= r;
-    y[1] *= r;
-}
-
-P vcexp1 (T X)
-{
-    T y[2];
-    vcexp2(y,x);
-    x[0] = y[0];
-    x[1] = y[1];
-}
-
-/* 
-   FILTERS
-
-   the transfer function is defined in terms of the "engineering" 
-   bilateral z-transform of the discrete impulse response h[n].
-
-   H(z) = Sum{n = -inf -> inf} h[n] z^(-n)
-
-   a unit delay operating on a singnal S(z) is therefore 
-   represented as z^(-1) S(z)
-
-*/
-
-
-
-
-
-
-
-/* biquads */
-
-/* biquad, orthogonal (poles & zeros), real in, out, state, pole, output */
-P biq_orth_r (T X, T Y, T S, T A, T C)
-{
-    Y = X + c[0] * s[0] - c[1] * s[1]; /* mind sign of c[1] */
-    vcmul2(s, a);
-    S += X;
-}
-
-
-/* biquad, orthogonal, complex one-pole, with scaling */
-
-/* complex one pole: (output = s[0] + is[1]): C / (1-A z^(-1))  */
-
-P one_pole_complex (T X, T Y, T S, T A, T C)
-{
-    vcmul(y, s, a);
-    vcadd2(y, x);
-    s[0] = y[0];
-    s[1] = y[1];
-    vcmul(y, s, c);
-}
-
-/* complex conj two pole:  (output = s[0]  : (Re(C) - Re(C*Conj(A))) / (1 - A z^(-1)) (1 - Conj(A) z^(-1)) */
-
-P two_pole_complex_conj (T X, T Y, T S, T A, T C)
-{
-    vcmul2(s, a);
-    s[0] += x[0];
-    y[0] = s[0] * c[0] - s[1] * c[1];
-}
-
-
-
-/* support functions for IIR filter design */
-
-/* evaluate pole and allzero TF in z^-1 given the complex zeros/poles:
-   p(z) (or p(z)^-1) = \product (1-z_i z^-1) */
-PP eval_zero_poly(float *val, float *arg, float *zeros, int nb_zeros)
-{
-    int i;
-    float a[2] = {arg[0], arg[1]};
-    vcinv1(a);
-    val[0] = 1.0f;
-    val[1] = 0.0f;
-    a[0] *= -1;
-    a[1] *= -1;
-    for (i=0; i<nb_zeros; i++){
-	float t[2];
-	vcmul(t, a, zeros + 2*i);
-	t[0] += 1.0f;
-	vcmul2(val, t);
-    }
-}
-
-PP eval_pole_poly(float *val, float *arg, float *poles, int nb_poles)
-{
-    eval_zero_poly(val, arg, poles, nb_poles);
-    vcinv1(val);
-}
-
-
-/* since it's more efficient to store half of the poles for a real impulse
-   response, these functions compute p(z) conj(p(conj(z)))  */
-
-PP eval_conj_zero_poly(float *val, float *arg, float *zeros, int nb_zeros)
-{
-    float t[2];
-    float a[2] = {arg[0], arg[1]};
-    eval_zero_poly(t, a, zeros, nb_zeros);
-    a[1] *= -1;
-    eval_zero_poly(val, a, zeros, nb_zeros);
-    val[1] *= -1;
-    vcmul2(val, t);
-}
-
-PP eval_conj_pole_poly(float *val, float *arg, float *poles, int nb_poles)
-{
-    eval_conj_zero_poly(val, arg, poles, nb_poles);
-    vcinv1(val);
-}
-
-PP eval_conj_pole_zero_ratfunc(float *val, float *arg, float *poles, float *zeros, int nb_poles, int nb_zeros)
-{
-    float t[2];
-    eval_conj_zero_poly(t, arg, zeros, nb_zeros);
-    eval_conj_pole_poly(val, arg, poles, nb_zeros);
-    vcmul2(val, t);
-}
-
-
-
-/* bandlimited IIR impulse:
-
-   * design analog butterworth filter
-   * obtain the partial fraction expansion of the transfer function
-   * determine the state increment as a function of fractional delay of impulse location 
-   (sample the impulse response)
-
-*/
diff --git a/externals/creb-old/modules/fwarp.c b/externals/creb-old/modules/fwarp.c
deleted file mode 100644
index 28fe0241fb19dc9a03613539ae77c82d9184b1aa..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/fwarp.c
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- *   fwarp.c  - converts a frequency to a "standard" tangent warped freq
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-#include <math.h>
-
-#define SEQL 16
-
- 
-typedef struct fwarp
-{
-  t_object t_ob;
-  t_outlet *x_out;
-} t_fwarp;
-
-static void fwarp_float(t_fwarp *x, t_floatarg f)
-{
-    float twopi = 2.0f * M_PI;
-    float sr = sys_getsr();
-    f /= sr;
-    f = tan(twopi * f) / twopi;
-    outlet_float(x->x_out, f * sr);
-}
-
-static void fwarp_free(void)
-{
-}
-
-t_class *fwarp_class;
-
-static void *fwarp_new(void)
-{
-    t_fwarp *x = (t_fwarp *)pd_new(fwarp_class);
-    x->x_out = outlet_new(&x->t_ob, gensym("float"));
-    return (void *)x;
-}
-
-void fwarp_setup(void)
-{
-    fwarp_class = class_new(gensym("fwarp"), (t_newmethod)fwarp_new,
-    	(t_method)fwarp_free, sizeof(t_fwarp), 0, 0);
-    class_addfloat(fwarp_class, fwarp_float);
-}
-
diff --git a/externals/creb-old/modules/junction~.c b/externals/creb-old/modules/junction~.c
deleted file mode 100644
index 71476da950c338df5bcf92fa1e389eed685385b4..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/junction~.c
+++ /dev/null
@@ -1,207 +0,0 @@
-/*
- *   junction.c  - computes a lossless circulant junction 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-
-
-typedef struct junctionctl
-{
-  t_int c_channels;
-  t_float **c_in;
-  t_float **c_out;
-  t_float *c_buffer;
-  t_float *c_coef;
-  t_float c_norm;
-} t_junctionctl;
-
-typedef struct junction
-{
-  t_object x_obj;
-  t_float x_f;
-  t_junctionctl x_ctl;
-} t_junction;
-
-void junction_bang(t_junction *x)
-{
-  int i, n       = x->x_ctl.c_channels;
-  t_float *coef  = x->x_ctl.c_coef;
-  t_float r;
-
-  for (i=1; i<n/2; i++)
-    {
-      r = rand();
-      r *= ((2 * M_PI)/RAND_MAX);
-      coef[i]= cos(r);
-      coef[n-i] = sin(r);
-    }
-
-  coef[0] = (rand() & 1) ? 1 : -1;
-  coef[n/2] = (rand() & 1) ? 1 : -1;
-
-  /*  mayer_realfft(n, coef); */
-  
-
-}
-
-void junction_random(t_junction *x, t_floatarg f)
-{
-  srand((int)f);
-  junction_bang(x);
-}
-
-static t_int *junction_perform(t_int *w)
-{
-
-
-
-  t_junctionctl *ctl  = (t_junctionctl *)(w[1]);
-  t_int n             = (t_int)(w[2]);
-  t_int i,j;
-  t_float x,y;
-
-  t_int c             = ctl->c_channels;
-  t_float **in        = ctl->c_in;
-  t_float **out       = ctl->c_out;
-  t_float *buf        = ctl->c_buffer;
-  t_float *coef       = ctl->c_coef;
-
-  t_float norm        = ctl->c_norm;
-
- 
-  for (i=0;i<n;i++)
-    {
-
-      /* read input */
-      for (j=0; j<c; j++)
-	{
-	  buf[j] = in[j][i];
-	}
-      
-      /* transform */
-      mayer_realfft(c, buf);
-      for (j=1; j<c/2; j++)
-	{
-	  float x,y,a,b;
-	  x = buf[j];
-	  y = buf[c-j];
-	  a = coef[j];
-	  b = coef[c-j];
-	  buf[j]   = a * x - b * y;
-	  buf[c-j] = a * y + b * x;
-	}
-      buf[0] *= coef[0];
-      buf[c/2] *= coef[c/2];
-
-
-      mayer_realifft(c, buf);
-      
-
-      /* write output */
-      for (j=0; j<c; j++) 
-	{ 
-	  out[j][i] = buf[j] * norm;
-	}  
-    }
-
-   
-  return (w+3);
-}
-
-
-
-static void junction_dsp(t_junction *x, t_signal **sp)
-{
-  int i, c = x->x_ctl.c_channels;
-  float norm;
-
-  for (i=0;i<c;i++)
-    {
-      x->x_ctl.c_in[i] = sp[i]->s_vec;
-      x->x_ctl.c_out[i] = sp[i+c]->s_vec;
-    }
-
-  norm = c;
-  norm = 1. / (norm);
-  x->x_ctl.c_norm =  norm; 
-
-
-  dsp_add(junction_perform, 2, &x->x_ctl, sp[0]->s_n);
-
-    /*    dsp_add(junction_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);*/
-
-}                                  
-
-
-void junction_free(t_junction *x)
-{
-
-  if (x->x_ctl.c_in) free (x->x_ctl.c_in);
-  if (x->x_ctl.c_out) free (x->x_ctl.c_out);
-  if (x->x_ctl.c_buffer) free (x->x_ctl.c_buffer);
-  if (x->x_ctl.c_coef) free (x->x_ctl.c_coef);
-
-}
-
-t_class *junction_class;
-
-void *junction_new(t_floatarg channels)
-{
-
-  int l = ilog2(channels);
-  int i,n;
-
-  t_junction *x = (t_junction *)pd_new(junction_class);
-
-
-  if (l<2) l = 2;
-  if (l>4) l = 4;
-
-  n=1;
-  while (l--) n *= 2;
-
-  for (i=1;i<n;i++) inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal")); 
-  for (i=0;i<n;i++) outlet_new(&x->x_obj, gensym("signal")); 
-
-  x->x_ctl.c_in = (float **)malloc(n*sizeof(float *));
-  x->x_ctl.c_out = (float **)malloc(n*sizeof(float *));
-  x->x_ctl.c_buffer = (float *)malloc(n*sizeof(float));
-  x->x_ctl.c_coef = (float *)malloc(n*sizeof(float));
-  x->x_ctl.c_channels = n;
-
-  junction_bang(x);
-
-  return (void *)x;
-}
-
-void junction_tilde_setup(void)
-{
-  //post("junction~ v0.1");
-    junction_class = class_new(gensym("junction~"), (t_newmethod)junction_new,
-    	(t_method)junction_free, sizeof(t_junction), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(junction_class, t_junction, x_f); 
-    class_addmethod(junction_class, (t_method)junction_bang, gensym("bang"), 0);
-    class_addmethod(junction_class, (t_method)junction_random, gensym("random"), A_FLOAT, 0);
-    class_addmethod(junction_class, (t_method)junction_dsp, gensym("dsp"), 0); 
-
-}
-
diff --git a/externals/creb-old/modules/lattice~.c b/externals/creb-old/modules/lattice~.c
deleted file mode 100644
index 28adf19e806a65ecfeccf0b5c8b5c9cc33ef258f..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/lattice~.c
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- *   lattice.c  - a lattice filter for pd
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-
-#include "m_pd.h"
-#include <math.h>
-
-#define MAXORDER 1024
-#define MAXREFCO 0.9999f
-
-typedef struct latticesegment
-{
-    t_float delay; // delay element
-    t_float rc;    // reflection coefficient
-} t_latticesegment;
-
-typedef struct latticectl
-{
-    t_latticesegment c_segment[MAXORDER]; // array of lattice segment data
-    t_int c_segments;
-} t_latticectl;
-
-typedef struct lattice
-{
-  t_object x_obj;
-  t_float x_f;
-  t_latticectl x_ctl;
-} t_lattice;
-
-
-
-static t_int *lattice_perform(t_int *w)
-{
-
-
-  t_float *in    = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_latticectl *ctl  = (t_latticectl *)(w[1]);
-  t_int i,j;
-  t_int n = (t_int)(w[2]);
-  t_float x,rc,d;
-
-  t_latticesegment* seg = ctl->c_segment;
-  t_int segments = ctl->c_segments;
-  for (i=0; i<n; i++)
-  {
-      x = *in++;
-      // section 0
-      rc = seg[0].rc;
-      x += seg[0].delay * rc;
-      
-      // section 1 to segments-1
-      for (j=1; j < segments; j++)
-      {
-	  rc = seg[j].rc;
-	  d  = seg[j].delay;
-	  x += d * rc;
-	  seg[j-1].delay = d - rc * x; 
-      }
-      // stub
-      seg[segments-1].delay = x;
-
-      *out++ = x;
-  }
-
-  return (w+5);
-}
-
-static void lattice_dsp(t_lattice *x, t_signal **sp)
-{
-    dsp_add(lattice_perform, 4, &x->x_ctl, sp[0]->s_n,
-	    sp[0]->s_vec, sp[1]->s_vec);
-
-}                                  
-static void lattice_free(void)
-{
-
-}
-
-t_class *lattice_class;
-
-static void lattice_rc(t_lattice *x, t_float segment, t_float refco)
-{
-    t_int seg = (t_float)segment;
-    if ((seg >= 0) && (seg < x->x_ctl.c_segments)){
-	if (refco >= MAXREFCO) refco = MAXREFCO;
-	if (refco <= -MAXREFCO) refco = -MAXREFCO;
-	x->x_ctl.c_segment[seg].rc = refco;
-    }
-}
-
-static void lattice_reset(t_lattice *x)
-{
-    t_float* buf = (t_float *)x->x_ctl.c_segment;
-    t_int n = x->x_ctl.c_segments;
-    t_int i;
-    for (i=0; i<n; i++) buf[i]=0;
-}
-
-static void *lattice_new(t_floatarg segments)
-{
-    t_lattice *x = (t_lattice *)pd_new(lattice_class);
-    t_int seg = (t_int)segments;
-
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    if (seg < 1) seg = 1;
-    if (seg > MAXORDER) seg = MAXORDER;
-
-    x->x_ctl.c_segments = seg;
-
-    lattice_reset(x);
-
-    return (void *)x;
-}
-
-void lattice_tilde_setup(void)
-{
-  //post("lattice~ v0.1");
-    lattice_class = class_new(gensym("lattice~"), (t_newmethod)lattice_new,
-    	(t_method)lattice_free, sizeof(t_lattice), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(lattice_class, t_lattice, x_f); 
-    class_addmethod(lattice_class, (t_method)lattice_dsp, gensym("dsp"), 0); 
-    class_addmethod(lattice_class, (t_method)lattice_reset, gensym("reset"), 0); 
-    class_addmethod(lattice_class, (t_method)lattice_rc,
-		    gensym("rc"), A_FLOAT, A_FLOAT, 0); 
-
-}
-
diff --git a/externals/creb-old/modules/permut~.c b/externals/creb-old/modules/permut~.c
deleted file mode 100644
index 7a4f10138eb32cf81655827f185aee217c6c19be..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/permut~.c
+++ /dev/null
@@ -1,180 +0,0 @@
-/*
- *   permut.c  - applies a (random) permutation on a signal block
- *   intended for spectral processing, dynwav
- *
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include <math.h>
-#include <stdlib.h>
-//#include "m_pd.h"
-#include "extlib_util.h"
-                               
-
-
-typedef struct permutctl
-{
-  char c_type;
-  t_int *c_permutationtable;
-  int c_blocksize;
-} t_permutctl;
-
-typedef struct permut
-{
-  t_object x_obj;
-  t_float x_f;
-  t_permutctl x_ctl;
-} t_permut;
-
-
-static inline void permut_perform_permutation(t_float *S, int n, t_int *f)
-{
-  t_int k,l;
-  t_float swap;
-  for(k=0; k<n; k++)
-    {
-      l = f[k];
-      while (l<k) l = f[l];
-      swap = S[k];
-      S[k] = S[l];
-      S[l] = swap;
-    }
-}
-
-
-static void permut_random(t_permut *x, t_floatarg seed)
-{
-  int i,j;
-  int N = x->x_ctl.c_blocksize;
-  int mask = N-1;
-  t_int *p = x->x_ctl.c_permutationtable;
-  int r, last = 0;
-
-  //srand(* ((unsigned int *)(&seed)));
-  srand (((t_flint)seed).i);
-
-  if(p)
-    {
-      p[0] = rand() & mask;
-      for (i=1;i<N;i++)
-	{
-	  r = rand() & mask;
-	  j = 0;
-	  while(j<i)
-	    {
-	      if (p[j] == r)
-		{
-		  r = (r + 1) & mask;
-		  j = 0;
-		}
-	      else j++;
-	    }
-	  p[i] = r;
-	  
-	}
-    }
-}
-
-static void permut_bang(t_permut *x)
-{
-    unsigned int r = rand();
-    //permut_random(x, *((float *)(&r)));
-    permut_random(x, ((t_flint)r).f);
-}
-
-static void permut_resize_table(t_permut *x, int size)
-{
-  if (x->x_ctl.c_blocksize != size)
-    {
-      if (x->x_ctl.c_permutationtable)
-	free(x->x_ctl.c_permutationtable);
-      x->x_ctl.c_permutationtable = (t_int *)malloc(sizeof(int)*size);
-      x->x_ctl.c_blocksize = size;
-
-      /* make sure it's initialized */
-      permut_bang(x);
-
-
-    } 
-}
-
-
-
-
-static t_int *permut_perform(t_int *w)
-{
-
-
-  t_float *in    = (float *)(w[3]);
-  t_float *out    = (float *)(w[4]);
-  t_permutctl *ctl  = (t_permutctl *)(w[1]);
-  t_int i;
-  t_int n = (t_int)(w[2]);
-  t_float x,y;
-  t_int *p =  ctl->c_permutationtable;
-
-
-  if (in != out)
-    for (i=0; i<n; i++) out[i] = in[i];
-
-
-  permut_perform_permutation(out, n, p);
-
-  return (w+5);
-}
-
-static void permut_dsp(t_permut *x, t_signal **sp)
-{
-  permut_resize_table(x, sp[0]->s_n);
-  dsp_add(permut_perform, 4, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec, sp[1]->s_vec);
-
-}
-                                  
-static void permut_free(t_permut *x)
-{
-  if (x->x_ctl.c_permutationtable) free(x->x_ctl.c_permutationtable);
-
-}
-
-t_class *permut_class;
-
-static void *permut_new(void)
-{
-    t_permut *x = (t_permut *)pd_new(permut_class);
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-    x->x_ctl.c_permutationtable = 0;
-    x->x_ctl.c_blocksize = 0;
-    permut_resize_table(x, 64);
-    permut_random(x, 0);
-    
-    return (void *)x;
-}
-
-void permut_tilde_setup(void)
-{
-  //post("permut~ v0.1");
-    permut_class = class_new(gensym("permut~"), (t_newmethod)permut_new,
-    	(t_method)permut_free, sizeof(t_permut), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(permut_class, t_permut, x_f); 
-    class_addmethod(permut_class, (t_method)permut_random, gensym("random"), A_FLOAT, 0);
-    class_addmethod(permut_class, (t_method)permut_bang, gensym("bang"), 0);
-    class_addmethod(permut_class, (t_method)permut_dsp, gensym("dsp"), 0); 
-
-}
-
diff --git a/externals/creb-old/modules/qmult~.c b/externals/creb-old/modules/qmult~.c
deleted file mode 100644
index 56898ac31450c9df1dfff2a7d7b15c8563c9b6af..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/qmult~.c
+++ /dev/null
@@ -1,166 +0,0 @@
-/*
- *   qmult.c  - quaternion multiplication dsp object 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-
-
-typedef struct qmultctl
-{
-  t_float *c_inputleft[4];
-  t_float *c_inputright[4];
-  t_float *c_output[4];
-} t_qmultctl;
-
-typedef struct qmult
-{
-  t_object x_obj;
-  t_float x_f;
-  t_qmultctl x_ctl;
-} t_qmult;
-
-
-static t_int *qmult_perform(t_int *word)
-{
-
-
-
-  t_qmultctl *ctl     = (t_qmultctl *)(word[1]);
-  t_int n             = (t_int)(word[2]);
-  t_int i;
-
-  t_float *in0l        = ctl->c_inputleft[0];
-  t_float *in1l        = ctl->c_inputleft[1];
-  t_float *in2l        = ctl->c_inputleft[2];
-  t_float *in3l        = ctl->c_inputleft[3];
-
-  t_float *in0r        = ctl->c_inputright[0];
-  t_float *in1r        = ctl->c_inputright[1];
-  t_float *in2r        = ctl->c_inputright[2];
-  t_float *in3r        = ctl->c_inputright[3];
-
-  t_float *out0       = ctl->c_output[0];
-  t_float *out1       = ctl->c_output[1];
-  t_float *out2       = ctl->c_output[2];
-  t_float *out3       = ctl->c_output[3];
-
-  t_float wl, xl, yl, zl;
-  t_float wr, xr, yr, zr;
-  t_float w, x, y, z;
-
-  for (i=0;i<n;i++)
-    {
-
-	/* read input quaternions */
-	wl = *in0l++;
-	xl = *in1l++;
-	yl = *in2l++;
-	zl = *in3l++;
-
-	wr = *in0r++;
-	xr = *in1r++;
-	yr = *in2r++;
-	zr = *in3r++;
-
-
-	/* multiply quaternions */
-	w = wl * wr;
-	x = wl * xr;
-	y = wl * yr;
-	z = wl * zr;
-
-	w -= xl * xr;
-	x += xl * wr;
-	y -= xl * zr;
-	z += xl * yr;
-
-	w -= yl * yr;
-	x += yl * zr;
-	y += yl * wr;
-	z -= yl * xr;
-
-	w -= zl * zr;
-	x -= zl * yr;
-	y += zl * xr;
-	z += zl * wr;
-
-
-
-	/* write output quaternion */
-	*out0++ = w;
-	*out1++ = x;
-	*out2++ = y;
-	*out3++ = z;
-    }
-
-   
-  return (word+3);
-}
-
-
-
-static void qmult_dsp(t_qmult *x, t_signal **sp)
-{
-
-    int i;
-  for (i=0;i<4;i++)
-    {
-      x->x_ctl.c_inputleft[i] = sp[i]->s_vec;
-      x->x_ctl.c_inputright[i] = sp[i+4]->s_vec;
-      x->x_ctl.c_output[i] = sp[i+8]->s_vec;
-    }
-
-  dsp_add(qmult_perform, 2, &x->x_ctl, sp[0]->s_n);
-
-
-}                                  
-
-
-static void qmult_free(t_qmult *x)
-{
-
-}
-
-t_class *qmult_class;
-
-static void *qmult_new(t_floatarg channels)
-{
-    int i;
-    t_qmult *x = (t_qmult *)pd_new(qmult_class);
-
-    for (i=1;i<8;i++) inlet_new(&x->x_obj, &x->x_obj.ob_pd,
-				gensym("signal"), gensym("signal")); 
-    for (i=0;i<4;i++) outlet_new(&x->x_obj, gensym("signal")); 
-
-    return (void *)x;
-}
-
-void qmult_tilde_setup(void)
-{
-  //post("qmult~ v0.1");
-    qmult_class = class_new(gensym("qmult~"), (t_newmethod)qmult_new,
-    	(t_method)qmult_free, sizeof(t_qmult), 0, 0);
-    CLASS_MAINSIGNALIN(qmult_class, t_qmult, x_f); 
-    class_addmethod(qmult_class, (t_method)qmult_dsp, gensym("dsp"), 0); 
-
-}
-
diff --git a/externals/creb-old/modules/qnorm~.c b/externals/creb-old/modules/qnorm~.c
deleted file mode 100644
index 98548d92fa3681b267b7923245b6f9ff534d2fff..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/qnorm~.c
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- *   qnorm.c  - quaternion normalization dsp object 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <math.h>
-
-
-typedef struct qnormctl
-{
-  t_float *c_input[4];
-  t_float *c_output[4];
-} t_qnormctl;
-
-typedef struct qnorm
-{
-  t_object x_obj;
-  t_float x_f;
-  t_qnormctl x_ctl;
-} t_qnorm;
-
-
-static t_int *qnorm_perform(t_int *word)
-{
-
-
-
-  t_qnormctl *ctl     = (t_qnormctl *)(word[1]);
-  t_int n             = (t_int)(word[2]);
-  t_int i;
-
-  t_float *in0        = ctl->c_input[0];
-  t_float *in1        = ctl->c_input[1];
-  t_float *in2        = ctl->c_input[2];
-  t_float *in3        = ctl->c_input[3];
-
-  t_float *out0       = ctl->c_output[0];
-  t_float *out1       = ctl->c_output[1];
-  t_float *out2       = ctl->c_output[2];
-  t_float *out3       = ctl->c_output[3];
-
-  t_float w, x, y, z;
-  t_float norm;
-  t_float inorm;
-
-  for (i=0;i<n;i++)
-    {
-
-	/* read input */
-	w = *in0++;
-	x = *in1++;
-	y = *in2++;
-	z = *in3++;
-
-	/* transform */
-	norm = w * w;
-	norm += x * x;
-	norm += y * y;
-	norm += z * z;
-	
-	inorm = (norm == 0.0f) ? (0.0f) : (1.0f / sqrt(norm));
-
-	/* write output */
-	*out0++ = w * inorm;
-	*out1++ = x * inorm;
-	*out2++ = y * inorm;
-	*out3++ = z * inorm;
-    }
-
-   
-  return (word+3);
-}
-
-
-
-static void qnorm_dsp(t_qnorm *x, t_signal **sp)
-{
-
-    int i;
-  for (i=0;i<4;i++)
-    {
-      x->x_ctl.c_input[i] = sp[i]->s_vec;
-      x->x_ctl.c_output[i] = sp[i+4]->s_vec;
-    }
-
-  dsp_add(qnorm_perform, 2, &x->x_ctl, sp[0]->s_n);
-
-
-}                                  
-
-
-static void qnorm_free(t_qnorm *x)
-{
-
-}
-
-t_class *qnorm_class;
-
-static void *qnorm_new(t_floatarg channels)
-{
-    int i;
-    t_qnorm *x = (t_qnorm *)pd_new(qnorm_class);
-
-    for (i=1;i<4;i++) inlet_new(&x->x_obj, &x->x_obj.ob_pd,
-				gensym("signal"), gensym("signal")); 
-    for (i=0;i<4;i++) outlet_new(&x->x_obj, gensym("signal")); 
-
-    return (void *)x;
-}
-
-void qnorm_tilde_setup(void)
-{
-  //post("qnorm~ v0.1");
-    qnorm_class = class_new(gensym("qnorm~"), (t_newmethod)qnorm_new,
-    	(t_method)qnorm_free, sizeof(t_qnorm), 0, 0);
-    CLASS_MAINSIGNALIN(qnorm_class, t_qnorm, x_f); 
-    class_addmethod(qnorm_class, (t_method)qnorm_dsp, gensym("dsp"), 0); 
-
-}
-
diff --git a/externals/creb-old/modules/ramp~.c b/externals/creb-old/modules/ramp~.c
deleted file mode 100644
index 526ec4e86fe613cda32a2f788972b7e8f3ea886e..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/ramp~.c
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- *   ramp.c  - retriggerable counter for dsp signals 
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-#include <math.h>
-
-
-typedef struct rampctl
-{
-    t_float c_offset;
-    t_int c_blockscale;
-} t_rampctl;
-
-typedef struct ramp
-{
-    t_object x_obj;
-    t_float x_f;
-    t_rampctl x_ctl;
-} t_ramp;
-
-
-void ramp_offset(t_ramp *x,  t_floatarg f)
-{
-    x->x_ctl.c_offset = f;
-}
-
-
-void ramp_bang(t_ramp *x)
-{
-    ramp_offset(x, 0);
-}
-
-
-
-static t_int *ramp_perform(t_int *w)
-{
-    t_float *out    = (float *)(w[3]);
-    t_rampctl *ctl  = (t_rampctl *)(w[1]);
-    t_int i;
-    t_int n = (t_int)(w[2]);
-    t_float x;
-
-    t_float scale = ctl->c_blockscale ? 1.0f / (float)n : 1.0f;
-
-
-    x = ctl->c_offset;
-    
-    for (i = 0; i < n; i++)
-	{
-	    *out++ = ((float)x++) * scale;
-	}
-
-    ctl->c_offset = x; /* save state */
-
-    
-    return (w+4);
-}
-
-static void ramp_dsp(t_ramp *x, t_signal **sp)
-{
-    dsp_add(ramp_perform, 3, &x->x_ctl, sp[0]->s_n, sp[0]->s_vec);
-
-}                                  
-void ramp_free(void)
-{
-
-}
-
-t_class *ramp_class;
-
-void *ramp_new(void)
-{
-    t_ramp *x = (t_ramp *)pd_new(ramp_class);
-    outlet_new(&x->x_obj, gensym("signal")); 
-    x->x_ctl.c_blockscale = 0;
-    ramp_bang(x);
-    return (void *)x;
-}
-
-void *blockramp_new(void)
-{
-    t_ramp *x = (t_ramp *)ramp_new();
-    x->x_ctl.c_blockscale = 1;
-    return (void *)x;
-}
-
-void ramp_tilde_setup(void)
-{
-  //post("ramp~ v0.1");
-    ramp_class = class_new(gensym("ramp~"), (t_newmethod)ramp_new,
-    	(t_method)ramp_free, sizeof(t_ramp), 0, 0);
-
-    class_addcreator((t_newmethod)blockramp_new, gensym("blockramp~"), A_NULL);
-
-    class_addmethod(ramp_class, (t_method)ramp_bang, gensym("bang"), 0);
-    class_addmethod(ramp_class, (t_method)ramp_dsp, gensym("dsp"), 0); 
-    class_addfloat(ramp_class, (t_method)ramp_offset); 
-}
-
diff --git a/externals/creb-old/modules/ratio.c b/externals/creb-old/modules/ratio.c
deleted file mode 100644
index 777f2b9c2354473d70a02075d1794bedb587abed..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/ratio.c
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- *   ratio.c  - multiplies by 2^k such that output is between 1 and 2
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-#include "m_pd.h"
-
-#define SEQL 16
-
-typedef struct{
-} t_ratio_data;
- 
-typedef struct ratio
-{
-  t_object t_ob;
-  t_outlet *x_out;
-  t_ratio_data x_c;
-} t_ratio;
-
-static void ratio_float(t_ratio *x, t_floatarg f)
-{
-  f = (f<0)?(-f):(f);
-  if (f)
-    {
-      while (f <  1.0f) f *= 2.0f;
-      while (f >= 2.0f) f *= 0.5f;
-    }
-  outlet_float(x->x_out, f);
-
-}
-
-static void ratio_free(void)
-{
-}
-
-t_class *ratio_class;
-
-static void *ratio_new(void)
-{
-    t_ratio *x = (t_ratio *)pd_new(ratio_class);
-    x->x_out = outlet_new(&x->t_ob, gensym("float"));
-    return (void *)x;
-}
-
-void ratio_setup(void)
-{
-    ratio_class = class_new(gensym("ratio"), (t_newmethod)ratio_new,
-    	(t_method)ratio_free, sizeof(t_ratio), 0, 0);
-    class_addfloat(ratio_class, ratio_float);
-}
-
diff --git a/externals/creb-old/modules/resofilt~.c b/externals/creb-old/modules/resofilt~.c
deleted file mode 100644
index 0227dfce3f4fec72231186ebf54a5aa3cfb681cb..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/resofilt~.c
+++ /dev/null
@@ -1,408 +0,0 @@
-/*
- *   resofilt.c  -  some high quality time variant filters
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-/* some (expensive) time variant iir filters, 
-   i.e. moog 4-pole transfer function using the impulse
-   invariant transform with self osc and
-   signal freq and reso inputs */
-
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>  
-#include "filters.h"
-
-
-typedef struct resofiltctl
-{
-    t_float c_state[4]; /* filter state */
-    t_float c_f_prev;
-    t_float c_r_prev;
-
-} t_resofiltctl;
-
-typedef struct resofilt
-{
-    t_object x_obj;
-    t_float x_f;
-    t_resofiltctl x_ctl;
-    t_perfroutine x_dsp;
-} t_resofilt;
-
-
-static inline void _sat_state(t_float *x)
-{
-    const float norm_squared_max = 1.0f;
-    float norm_squared = x[0] * x[0] + x[1] * x[1];
-
-    if (norm_squared > norm_squared_max){
-	float scale = 1.0f / sqrt(norm_squared);
-	x[0] *= scale;
-	x[1] *= scale;
-    }
-}
-
-
-/* the moog vcf discretized with an impulse invariant transform */
-
-static t_int *resofilt_perform_fourpole(t_int *w)
-{
-
-  t_resofiltctl *ctl = (t_resofiltctl *)(w[1]);
-  t_int n            = (t_int)(w[2]);
-  t_float *in        = (float *)(w[3]);
-  t_float *freq      = (float *)(w[4]);
-  t_float *reso      = (float *)(w[5]);
-  t_float *out       = (float *)(w[6]);
-
-  int i;
-  t_float inv_n = 1.0f / ((float)n);
-  t_float inv_sr = 1.0f / sys_getsr();
-
-  t_float phasor[2], phasor_rot[2];
-  t_float radior[2], radior_rot[2];
-  t_float scalor, scalor_inc;
-
-  t_float f,r,freq_rms,reso_rms;
-  t_float f_prev = ctl->c_f_prev;
-  t_float r_prev = ctl->c_r_prev;
-
-  /* use rms of input to drive freq and reso.  this is such that
-     connecting a dsp signal to the inlets has a reasonable result,
-     even if the inputs are oscillatory. the rms values will be
-     interpolated linearly (that is, linearly in the "analog" domain,
-     so exponentially in the z-domain)  */
-
-  reso_rms = freq_rms = 0.0f;
-  for (i=0; i<n; i++){
-      /* first input is the reso frequency (absolute) */
-      t_float _freq = *freq++; 
-      /* second input is the resonnance (0->1), >1 == self osc */
-      t_float _reso = *reso++; 
-
-      freq_rms += _freq * _freq;
-      reso_rms += _reso * _reso;
-  }
-  freq_rms = sqrt(freq_rms * inv_n) * inv_sr;
-  reso_rms = sqrt(reso_rms * inv_n);
-  f = (freq_rms > 0.5f) ? 0.5f : freq_rms;
-  r = sqrt(sqrt(reso_rms));         
-
-
-  /* calculate the new pole locations.  we use an impulse invariant
-     transform: the moog vcf poles are located at 
-
-     s_p = (-1 +- r \sqrt{+- j}, with r = (k/4)^(1/4) \in [0,1]
-
-     the poles are always complex, so we can use an orthogonal
-     implementation both conj pole pairs have the same angle, so we
-     can use one phasor and 2 radii
-  */
-
-  /* compute phasor, radius and update eqs
-     since these are at k-rate, the expense is justifyable */
-  phasor[0] = cos(2.0 * M_PI * r_prev * f_prev);
-  phasor[1] = sin(2.0 * M_PI * r_prev * f_prev);
-  phasor_rot[0] = cos(2.0 * M_PI * (r*f - r_prev*f_prev) * inv_n);
-  phasor_rot[1] = sin(2.0 * M_PI * (r*f - r_prev*f_prev) * inv_n);
-
-  radior[0] = exp(f_prev * (-1.0 + r_prev)); /* dominant radius */
-  radior[1] = exp(f_prev * (-1.0 - r_prev));
-  radior_rot[0] = exp((f*(-1.0f + r) - f_prev * (-1.0 + r_prev)) * inv_n);
-  radior_rot[1] = exp((f*(-1.0f - r) - f_prev * (-1.0 - r_prev)) * inv_n);
-
-  /* moog like scaling */
-  if (1){
-      float r2 = r_prev * r_prev;
-      float r4 = r2 * r2;
-      scalor = 1.0f + (1.0f + 4.0f * r4);
-      r2 = r * r;
-      r4 = r2 * r2;
-      scalor_inc = ((1.0f + (1.0f + 4.0f * r4)) - scalor) * inv_n;
-  }
-
-  /* no scaling */
-  else{
-      scalor = 1.0f;
-      scalor_inc = 0.0f;
-  }
-  
-  ctl->c_f_prev = f;
-  ctl->c_r_prev = r;
-
-
-
-
-
-  /* perform filtering */
-  for (i=0; i<n; i++){
-      float poleA[2], poleB[2];
-      float *stateA = ctl->c_state;
-      float *stateB = ctl->c_state+2;
-
-      float x;
-
-      /* compute poles */
-      poleA[0] = radior[0] * phasor[0];
-      poleA[1] = radior[0] * phasor[1];
-      poleB[0] = radior[1] * phasor[0];
-      poleB[1] = radior[1] * phasor[1];
-
-
-      /* perform filtering: use 2 DC normalized complex one-poles:
-	 y[k] = x[k] + a(y[k-1] - x[k]) or y(z) = (1-a)/(1-az^{-1}) x(z) */
-
-      x = *in++ * scalor;
-
-      /* nondominant pole first */
-      stateB[0] -= x;
-      vcmul2(stateB, poleB);
-      x = stateB[0] += x;
-
-      /* dominant pole second */
-      stateA[0] -= x;
-      vcmul2(stateA, poleA);
-      x = stateA[0] += x;
-
-      *out++ = x;
-
-      /* saturate (normalize if pow > 1) state to prevent explosion
-       * and to allow self-osc */
-      _sat_state(stateA);
-      _sat_state(stateB);
-      
-      /* interpolate filter coefficients */
-      vcmul2(phasor, phasor_rot);
-      radior[0] *= radior_rot[0];
-      radior[1] *= radior_rot[1];
-      scalor += scalor_inc;
-      
-  }
-
-  return (w+7);
-}
-
-
-
-
-
-/* 303-style modified moog vcf (3-pole) */
-
-static t_int *resofilt_perform_threepole(t_int *w)
-{
-
-  t_resofiltctl *ctl = (t_resofiltctl *)(w[1]);
-  t_int n            = (t_int)(w[2]);
-  t_float *in        = (float *)(w[3]);
-  t_float *freq      = (float *)(w[4]);
-  t_float *reso      = (float *)(w[5]);
-  t_float *out       = (float *)(w[6]);
-
-  int i;
-  t_float inv_n = 1.0f / ((float)n);
-  t_float inv_sr = 1.0f / sys_getsr();
-
-  t_float phasor[2], phasor_rot[2];
-  t_float radior[2], radior_rot[2];
-  t_float scalor, scalor_inc;
-
-  t_float f,r,freq_rms,reso_rms;
-  t_float f_prev = ctl->c_f_prev;
-  t_float r_prev = ctl->c_r_prev;
-
-  t_float sqrt5 = sqrt(5.0);
-
-  /* use rms of input to drive freq and reso */
-  reso_rms = freq_rms = 0.0f;
-  for (i=0; i<n; i++){
-      /* first input is the reso frequency (absolute) */
-      t_float _freq = *freq++;
-      /* second input is the resonnance (0->1), >1 == self osc */
-      t_float _reso = *reso++;
-      freq_rms += _freq * _freq;
-      reso_rms += _reso * _reso;
-  }
-  freq_rms = sqrt(freq_rms * inv_n) * inv_sr;
-  reso_rms = sqrt(reso_rms * inv_n);
-  f = (freq_rms > 0.5f) ? 0.25f : freq_rms * 0.5f;
-  r = cbrt(reso_rms);         
-
-
-  /* calculate the new pole locations. we use an impulse invariant
-     transform: the 303 vcf poles are located at
-
-     s_p = omega(-1 + r sqrt(5) e^{pi/3(1+2p)})
-
-     real pole: omega * (-1 -r)
-     complex pole:
-       real = omega (-1 + r)
-       imag = omega (+- 2 r)
-
-     
-     this is a strange beast. legend goes it was "invented" by taking
-     the moog vcf and moving one cap up, such that the not-so
-     controllable 3-pole that emerged would avoid the moog patent..
-
-     so, the sound is not so much the locations of the poles, but how
-     the filter reacts to time varying controls. i.e. the pole
-     movement with constant reso, used in the tb-303.
-
-  */
-
-  /* compute phasor, radius and update eqs */
-  phasor[0] = cos(2.0 * M_PI * r_prev * f_prev * 2.0f);
-  phasor[1] = sin(2.0 * M_PI * r_prev * f_prev * 2.0f);
-  phasor_rot[0] = cos(2.0 * M_PI * (r*f - r_prev*f_prev) * 2.0f * inv_n);
-  phasor_rot[1] = sin(2.0 * M_PI * (r*f - r_prev*f_prev) * 2.0f * inv_n);
-
-  radior[0] = exp(f_prev * (-1.0 + r_prev)); /* dominant radius */
-  radior[1] = exp(f_prev * (-1.0 - sqrt5 * r_prev));
-  radior_rot[0] = exp((f*(-1.0f + r) - f_prev * (-1.0 + r_prev)) * inv_n);
-  radior_rot[1] = exp((f*(-1.0f - r) - f_prev * (-1.0 - sqrt5 * r_prev)) * inv_n);
-
-  /* 303 like scaling */
-  if (1){
-      float r3 = r_prev * r_prev * r_prev;
-      scalor = 1.0f + (1.0f + 3.0f * r_prev);
-      r3 = r * r * r;
-      scalor_inc = ((1.0f + (1.0f + 3.0f * r3)) - scalor) * inv_n;
-  }
-
-  /* no scaling */
-  else{
-      scalor = 1.0f;
-      scalor_inc = 0.0f;
-  }
-  
-  ctl->c_f_prev = f;
-  ctl->c_r_prev = r;
-
-
-  ctl->c_state[3] = 0.0f;
-  /* perform filtering */
-  for (i=0; i<n; i++){
-      float poleA[2], poleB[2];
-      float *stateA = ctl->c_state;
-      float *stateB = ctl->c_state+2;
-
-      float x;
-
-      /* compute poles */
-      poleA[0] = radior[0] * phasor[0];
-      poleA[1] = radior[0] * phasor[1];
-
-      poleB[0] = radior[1];
-
-
-      /* perform filtering: use (real part of) 2 DC normalized complex one-poles:
-	 y[k] = x[k] + a(y[k-1] - x[k]) or y(z) = (1-a)/(1-az^{-1}) x(z) */
-
-      x = *in++ * scalor;
-
-      /* nondominant pole first */
-      stateB[0] -= x;
-      stateB[0] *= poleB[0];
-      x = stateB[0] += x;
-
-      /* dominant pole second */
-      stateA[0] -= x;
-      vcmul2(stateA, poleA);
-      x = stateA[0] += x;
-
-      *out++ = x;
-
-      /* saturate (normalize if pow > 1) state to prevent explosion
-       * and to allow self-osc */
-      _sat_state(stateA);
-      _sat_state(stateB);
-      
-      /* interpolate filter coefficients */
-      vcmul2(phasor, phasor_rot);
-      radior[0] *= radior_rot[0];
-      radior[1] *= radior_rot[1];
-      scalor += scalor_inc;
-      
-  }
-
-  return (w+7);
-}
-
-
-
-
-
-static void resofilt_dsp(t_resofilt *x, t_signal **sp)
-{
-  int n = sp[0]->s_n;
-
-  dsp_add(x->x_dsp,
-	  6, 
-	  &x->x_ctl, 
-	  sp[0]->s_n, 
-	  sp[0]->s_vec, 
-	  sp[1]->s_vec, 
-	  sp[2]->s_vec, 
-	  sp[3]->s_vec);
-
-}                                  
-static void resofilt_free(t_resofilt *x)
-{
-
-
-}
-
-t_class *resofilt_class;
-
-static void *resofilt_new(t_floatarg algotype)
-{
-    t_resofilt *x = (t_resofilt *)pd_new(resofilt_class);
-
-    /* in */
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-
-    /* out */
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-
-    /* set algo type */
-    if (algotype == 3.0f){
-	post("resofilt~: 3-pole lowpass ladder vcf");
-	x->x_dsp = resofilt_perform_threepole;
-    }
-    else {
-	post("resofilt~: 4-pole lowpass ladder vcf");
-	x->x_dsp = resofilt_perform_fourpole;
-    } 
-
-
-    return (void *)x;
-}
-
-void resofilt_tilde_setup(void)
-{
-    resofilt_class = class_new(gensym("resofilt~"), (t_newmethod)resofilt_new,
-    	(t_method)resofilt_free, sizeof(t_resofilt), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(resofilt_class, t_resofilt, x_f);
-    class_addmethod(resofilt_class, (t_method)resofilt_dsp, gensym("dsp"), 0); 
-}
-
diff --git a/externals/creb-old/modules/sbosc~.c b/externals/creb-old/modules/sbosc~.c
deleted file mode 100644
index 7b740b88b36e1d328fb4be260b3087220ca715a3..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/sbosc~.c
+++ /dev/null
@@ -1,175 +0,0 @@
-/*
- *   sbosc.c - smallband oscillator. periodic, linear interpolated
- *   frequency center.  
- *
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>  
-
-
-#define LOGTABSIZE 10
-#define TABSIZE (1<<LOGTABSIZE)
-#define MASKTABSIZE (TABSIZE-1)
-
-#define SHIFTTABSIZE ((sizeof(unsigned int) * 8) - LOGTABSIZE)
-#define FRACTABSIZE (1<<SHIFTTABSIZE)
-#define INVFRACTABSIZE (1.0f / (float)(FRACTABSIZE))
-#define MASKFRACTABSIZE (FRACTABSIZE-1)
-
-#define PITCHLIMIT 20.0f
-
-static float costable[TABSIZE];
-
-static inline void _exp_j2pi(unsigned int t, float *real, float *imag)
-{
-    unsigned int i1 = t >> SHIFTTABSIZE;
-    float f2 = (t & MASKFRACTABSIZE) * INVFRACTABSIZE;
-    unsigned int i2 = (i1+1) & MASKTABSIZE;
-    unsigned int i3 = (i1 - (TABSIZE>>2)) & MASKTABSIZE;
-    unsigned int i4 = (i2 + 1 - (TABSIZE>>2)) & MASKTABSIZE;
-    float f1 = 1.0f - f2;
-    float a1 = f1 * costable[i1];
-    float a2 = f2 * costable[i2];
-    float b1 = f1 * costable[i3];
-    float b2 = f2 * costable[i4];
-    *real = a1 + a2;
-    *imag = b1 + b2;
-}
-
-static t_class *sbosc_tilde_class;
-
-typedef struct _sbosc_tilde
-{
-    t_object x_obj;
-    float x_f;
-
-    /* state vars */
-    unsigned int x_phase;          // phase of main pitch osc
-    unsigned int x_phase_inc;      // frequency of main pitch osc
-    unsigned int x_harmonic;       // first harmonic
-    float x_frac;                  // fraction of first harmonic
-
-
-} t_sbosc_tilde;
-
-static void *sbosc_tilde_new(void)
-{
-    t_sbosc_tilde *x = (t_sbosc_tilde *)pd_new(sbosc_tilde_class);
-    x->x_phase = 0;
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("phase"));  
-    outlet_new(&x->x_obj, gensym("signal"));
-    outlet_new(&x->x_obj, gensym("signal"));
-    x->x_f = 0;
-    return (x);
-}
-
-
-static t_int *sbosc_tilde_perform(t_int *w)
-{
-    t_sbosc_tilde *x = (t_sbosc_tilde *)(w[1]);
-    t_float *pitch = (t_float *)(w[2]);
-    t_float *center= (t_float *)(w[3]);
-    t_float *out_real = (t_float *)(w[4]);
-    t_float *out_imag = (t_float *)(w[5]);
-    int n = (int)(w[6]);
-    int i;
-
-    t_float pitch_to_phase =  4294967295.0f / sys_getsr();
-
-    for (i = 0; i < n; i++)
-    {
-	float p = *pitch++;
-	float c = *center++;
-      	float r1,r2,i1,i2;
-
-	/* compute harmonic mixture */
-	unsigned int h1 = x->x_phase * x->x_harmonic;
-	unsigned int h2 = h1 + x->x_phase;
-	_exp_j2pi(h1, &r1, &i1);
-	_exp_j2pi(h2, &r2, &i2);
-	r1 *= x->x_frac;
-	i1 *= x->x_frac;
-	r2 *= 1.0f - x->x_frac;
-	i2 *= 1.0f - x->x_frac;
-
-	*out_real++ = r1 + r2;
-	*out_imag++ = i1 + i2;
-
-
-	x->x_phase += x->x_phase_inc;
-
-	/* check for phase wrap & update osc */
-	if ((x->x_phase <= x->x_phase_inc)) 
-	    {
-		float p_plus = (p < 0.0f) ? -p : p;
-		float p_limit = (p_plus < PITCHLIMIT) ? PITCHLIMIT : p_plus;
-		float c_plus = (c < 0.0f) ? -c : c;
-		float harmonic = c_plus/p_limit;
-		x->x_phase_inc = pitch_to_phase * p_limit;
-		x->x_harmonic = harmonic;
-		x->x_frac = 1.0f - (harmonic - x->x_harmonic);
-	    }
-	
-
-    }
-	
-    return (w+7);
-}
-
-static void sbosc_tilde_dsp(t_sbosc_tilde *x, t_signal **sp)
-{
-    dsp_add(sbosc_tilde_perform, 6, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, sp[3]->s_vec, sp[0]->s_n);
-
-}
-
-static void sbosc_tilde_free(t_sbosc_tilde *x)
-{
-}
-
-static void sbosc_tilde_phase(t_sbosc_tilde *x, t_floatarg f)
-{
-    x->x_phase = f * (1.0f / 4294967295.0f);
-}
-
-void sbosc_tilde_setup(void)
-{
-    int i;
-
-    // init tables
-    for (i=0; i<TABSIZE; i++)
-	costable[i] = cos(2.0 * M_PI * (double)i / (double)TABSIZE);
-    
-
-
-    // class setup
-    sbosc_tilde_class = class_new(gensym("sbosc~"),
-        (t_newmethod)sbosc_tilde_new, (t_method)sbosc_tilde_free,
-        sizeof(t_sbosc_tilde), 0, A_DEFSYM, 0);
-    CLASS_MAINSIGNALIN(sbosc_tilde_class, t_sbosc_tilde, x_f);
-    class_addmethod(sbosc_tilde_class, (t_method)sbosc_tilde_dsp,
-        gensym("dsp"), 0);
-    class_addmethod(sbosc_tilde_class, (t_method)sbosc_tilde_phase,
-        gensym("phase"), A_FLOAT, 0);
-}
-                                     
diff --git a/externals/creb-old/modules/scrollgrid1D~.c b/externals/creb-old/modules/scrollgrid1D~.c
deleted file mode 100644
index d47bb51c17200e7c61f7f1b9e69996f0af83415f..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/scrollgrid1D~.c
+++ /dev/null
@@ -1,226 +0,0 @@
-/*
- *   scrollgrid1D.c  -  1D scroll grid attractor
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-/*  1D scroll grid attractor
-    for more information see:
-
-    Yalcin M., Ozoguz S., Suykens J.A.K., Vandewalle J., ``Families of
-    Scroll Grid Attractors'', International Journal of Bifurcation and
-    Chaos, vol. 12, no. 1, Jan. 2002, pp. 23-41.
-
-    this file implements a digital variant of the method introduced in
-    the paper, so that it can be used as a parametrizable, bounded
-    chatotic oscillator.  in short it is a switched linear system,
-    with some added hard limiting to convert unstable oscillations
-    into stable ones.
-    
-*/
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>  
-#include "filters.h"
-
-
-typedef struct scrollgrid1Dctl
-{
-    t_float c_x, c_y, c_z; /* state */
-
-} t_scrollgrid1Dctl;
-
-typedef struct scrollgrid1D
-{
-    t_object x_obj;
-    t_float x_f;
-    t_scrollgrid1Dctl x_ctl;
-} t_scrollgrid1D;
-
-
-static inline float _fixedpoint(float x, int n)
-{
-  int ix = (x + 0.5f);
-  if (ix < 0) ix = 0;
-  else if (ix >= n) ix = n-1;
-  return (float)ix;
-}
-
-static inline float _sat(float x, float upper)
-{
-    float lower = -1.0f;
-    if (x < lower) x = lower;
-    else if (x > upper) x = upper;
-    return x;
-}
-
-static t_int *scrollgrid1D_perform(t_int *w)
-{
-
-
-  t_float *freq    = (float *)(w[3]);
-  t_float *t1      = (float *)(w[4]);
-  t_float *t2      = (float *)(w[5]);
-  t_float *order   = (float *)(w[6]);
-  t_float *outx    = (float *)(w[7]);
-  t_float *outy    = (float *)(w[8]);
-  t_float *outz    = (float *)(w[9]);
-  t_scrollgrid1Dctl *ctl    = (t_scrollgrid1Dctl *)(w[1]);
-  t_int n          = (t_int)(w[2]);
-  
-  t_int i;
-  t_float inv_sr = 1.0f /sys_getsr();
-  t_float state[3] = {ctl->c_x, ctl->c_y, ctl->c_z};
-  t_float c,f;
-  t_float pole[2], r1, r2;
-  t_int o;
-  t_float x,y,z;
-
-
-  for (i=0; i<n; i++){
-
-      /* get params */
-      r1 = exp(1000.0f * inv_sr / (0.01f + fabs(*t1++)));
-      r2 = exp(-1000.0f * inv_sr / (0.01f + fabs(*t2++)));
-      f = *freq++;
-      o = (int)(*order++);
-      if (o < 2) o = 2;
-      pole[0] = r1 * cos(2.0f * M_PI * inv_sr * f);
-      pole[1] = r1 * sin(2.0f * M_PI * inv_sr * f);
-
-      /* debug */
-      //post("%f", r1);
-
-      /* base transform + clipping to prevent blowup */
-      /* projection onto axis containing fixed */
-      x = _sat(0.5f * (state[0] - state[2]), (float)o); 
-      /* the "pure" oscillation axis */
-      y = _sat(0.5f * state[1], 1.0f);
-      /* orthogonal complement of x */
-      z = _sat(0.5f * (state[0] + state[2]), 1.0f);
-
-      /* output */
-      *outx++ = x;
-      *outy++ = y;
-      *outz++ = z;
-
-
-      /* calculate fixed point location (c, 0, -c) */
-      c = _fixedpoint(x, o);
-
-      /* inverse base transform */
-      state[0] = x + z;
-      state[1] = 2.0f * y;
-      state[2] = -x + z;
-
-
-      /* update transformed linear system around unstable fixed point */
-      state[0] -= c;
-      state[2] += c;
-      vcmul2(state, pole);
-      state[2] *= r2;
-      state[0] += c;
-      state[2] -= c;
-
-  }
-  
-
-
-  ctl->c_x = state[0];
-  ctl->c_y = state[1];
-  ctl->c_z = state[2];
-
-  return (w+10);
-}
-
-static void scrollgrid1D_dsp(t_scrollgrid1D *x, t_signal **sp)
-{
-  int n = sp[0]->s_n;
-  int k;
-
-
-  dsp_add(scrollgrid1D_perform, 
-	  9, 
-	  &x->x_ctl, 
-	  sp[0]->s_n, 
-	  sp[0]->s_vec, 
-	  sp[1]->s_vec, 
-	  sp[2]->s_vec,
-	  sp[3]->s_vec,
-	  sp[4]->s_vec,
-	  sp[5]->s_vec,
-	  sp[6]->s_vec);
-
-
-}                                  
-static void scrollgrid1D_free(t_scrollgrid1D *x)
-{
-
-
-}
-
-
-
-
-static void scrollgrid1D_reset(t_scrollgrid1D *x)
-{
-    x->x_ctl.c_x = 1;
-    x->x_ctl.c_y = 1;
-    x->x_ctl.c_z = 1;
-}
-
-
-t_class *scrollgrid1D_class;
-
-static void *scrollgrid1D_new(t_floatarg algotype)
-{
-    t_scrollgrid1D *x = (t_scrollgrid1D *)pd_new(scrollgrid1D_class);
-
-    /* ins */
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-
-    /* outs */
-    outlet_new(&x->x_obj, gensym("signal")); 
-    outlet_new(&x->x_obj, gensym("signal")); 
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-
-    /* init data */
-    scrollgrid1D_reset(x);
-
-    return (void *)x;
-}
-
-void scrollgrid1D_tilde_setup(void)
-{
-    //post("scrollgrid1D~ v0.1");
-    scrollgrid1D_class = class_new(gensym("scrollgrid1D~"),
-				   (t_newmethod)scrollgrid1D_new,
-    	(t_method)scrollgrid1D_free, sizeof(t_scrollgrid1D), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(scrollgrid1D_class, t_scrollgrid1D, x_f);
-    class_addmethod(scrollgrid1D_class, (t_method)scrollgrid1D_dsp,
-		    gensym("dsp"), 0); 
-    class_addmethod(scrollgrid1D_class, (t_method)scrollgrid1D_reset,
-		    gensym("reset"), 0); 
-
-}
-
diff --git a/externals/creb-old/modules/statwav~.c b/externals/creb-old/modules/statwav~.c
deleted file mode 100644
index 4fd2765c1358b142c692ed3c766a600539521705..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/statwav~.c
+++ /dev/null
@@ -1,152 +0,0 @@
-/*
- *   statwav.c  - static wavetable oscillator (scale + tabread)
- *
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>  
-
-static t_class *statwav_tilde_class;
-
-typedef struct _statwav_tilde
-{
-    t_object x_obj;
-    int x_npoints;
-    float *x_vec;
-    t_symbol *x_arrayname;
-    float x_f;
-} t_statwav_tilde;
-
-static void *statwav_tilde_new(t_symbol *s)
-{
-    t_statwav_tilde *x = (t_statwav_tilde *)pd_new(statwav_tilde_class);
-    x->x_arrayname = s;
-    x->x_vec = 0;
-    outlet_new(&x->x_obj, gensym("signal"));
-    x->x_f = 0;
-    return (x);
-}
-
-static t_int *statwav_tilde_perform(t_int *w)
-{
-    t_statwav_tilde *x = (t_statwav_tilde *)(w[1]);
-    t_float *in = (t_float *)(w[2]);
-    t_float *out = (t_float *)(w[3]);
-    int n = (int)(w[4]);
-    float maxindex;
-    int imaxindex;
-    float *buf = x->x_vec, *fp;
-    int i;
-
-    maxindex = x->x_npoints;
-    imaxindex = x->x_npoints;
-
-    if (!buf) goto zero;
-
-
-    for (i = 0; i < n; i++)
-    {
-      float phase = *in++;
-      float modphase = phase - (int)phase;
-      float findex;
-      int index;
-      int ia, ib, ic, id;
-      float frac,  a,  b,  c,  d, cminusb;
-      static int count;
-
-      if (modphase < 0.0f) modphase += 1.0f;
-      findex = modphase * maxindex;
-      index = findex;
-    
-
-      frac = findex - index;
-      ia = (imaxindex+index-1) % imaxindex;
-      ib = index;
-      ic = (index+1) % imaxindex;
-      id = (index+2) % imaxindex;
-
-      a = buf[ia];
-      b = buf[ib];
-      c = buf[ic];
-      d = buf[id];
-      /* if (!i && !(count++ & 1023))
-	 post("fp = %lx,  shit = %lx,  b = %f",  fp, buf->b_shit,  b); */
-      cminusb = c-b;
-
-      *out++ = b + frac * (
-            cminusb - 0.5f * (frac-1.) * (
-                (a - d + 3.0f * cminusb) * frac + (b - a - cminusb)
-            )
-        );                                                         
-    }
-	
-    return (w+5);
- zero:
-    while (n--) *out++ = 0;
-
-    return (w+5);
-}
-
-static void statwav_tilde_set(t_statwav_tilde *x, t_symbol *s)
-{
-    t_garray *a;
-
-    x->x_arrayname = s;
-    if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
-    {
-        if (*s->s_name)
-            error("statwav~: %s: no such array", x->x_arrayname->s_name);
-        x->x_vec = 0;
-    }
-    else if (!garray_getfloatarray(a, &x->x_npoints, &x->x_vec))
-    {
-        error("%s: bad template for statwav~", x->x_arrayname->s_name);
-        x->x_vec = 0;
-    }
-    else garray_usedindsp(a);
-}
-
-static void statwav_tilde_dsp(t_statwav_tilde *x, t_signal **sp)
-{
-    statwav_tilde_set(x, x->x_arrayname);
-
-    dsp_add(statwav_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-
-}
-
-static void statwav_tilde_free(t_statwav_tilde *x)
-{
-}
-
-void statwav_tilde_setup(void)
-{
-  //post("statwav~ v0.1");
-    statwav_tilde_class = class_new(gensym("statwav~"),
-        (t_newmethod)statwav_tilde_new, (t_method)statwav_tilde_free,
-        sizeof(t_statwav_tilde), 0, A_DEFSYM, 0);
-    CLASS_MAINSIGNALIN(statwav_tilde_class, t_statwav_tilde, x_f);
-    class_addmethod(statwav_tilde_class, (t_method)statwav_tilde_dsp,
-        gensym("dsp"), 0);
-    class_addmethod(statwav_tilde_class, (t_method)statwav_tilde_set,
-        gensym("set"), A_SYMBOL, 0);
-}
-                                     
diff --git a/externals/creb-old/modules/tabreadmix~.c b/externals/creb-old/modules/tabreadmix~.c
deleted file mode 100644
index 9661ec495d0b848eabfaf9233b466eb48a062df8..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/tabreadmix~.c
+++ /dev/null
@@ -1,274 +0,0 @@
-/*
- *   tabreadmix.c  -  an overlap add tabread~ clone
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#include "extlib_util.h"
-
-/******************** tabreadmix~ ***********************/
-
-static t_class *tabreadmix_tilde_class;
-
-typedef struct _tabreadmix_tilde
-{
-    t_object x_obj;
-    int x_npoints;
-    float *x_vec;
-    t_symbol *x_arrayname;
-    float x_f;
-
-    /* file position vars */
-    int x_currpos;
-    int x_prevpos;
-    
-    /* cross fader state vars */
-    int x_xfade_size;
-    int x_xfade_phase;
-    float x_xfade_cos;
-    float x_xfade_sin;
-    float x_xfade_state_c;
-    float x_xfade_state_s;
-
-} t_tabreadmix_tilde;
-
-
-
-inline void tabreadmix_tilde_wrapindices(t_tabreadmix_tilde *x)
-{
-    int max;
-
-    /* modulo */
-    x->x_currpos %= x->x_npoints;
-    x->x_prevpos %= x->x_npoints;
-
-    /* make sure 0<=..<x->x_npoints */
-    //if (x->x_currpos < 0) x->x_currpos += x->x_npoints;
-    //if (x->x_prevpos < 0) x->x_prevpos += x->x_npoints;
-    x->x_currpos += (x->x_currpos < 0) * x->x_npoints;
-    x->x_prevpos += (x->x_prevpos < 0) * x->x_npoints;
-
-}
-
-
-
-#define min(x,y) ((x)<(y)?(x):(y))
-
-static t_int *tabreadmix_tilde_perform(t_int *w)
-{
-    t_tabreadmix_tilde *x = (t_tabreadmix_tilde *)(w[1]);
-    t_float *pos = (t_float *)(w[2]);
-    t_float *out = (t_float *)(w[3]);
-    int n = (int)(w[4]);    
-    int maxxindex;
-    float *buf = x->x_vec;
-    int i;
-    float currgain, prevgain;
-    float c,s;
-    int chunk;
-    int leftover;
-    int newpos = (int)*pos;
-
-    maxxindex = x->x_npoints;
-    if (!buf) goto zero;
-    if (maxxindex <= 0) goto zero;
-
-
-    while (n){
-
-	/* process as much data as possible */
-	leftover = x->x_xfade_size - x->x_xfade_phase;
-	chunk = min(n, leftover);
-
-	for (i = 0; i < chunk; i++){
-	    /* compute crossfade gains from oscillator state */
-	    currgain = 0.5f - x->x_xfade_state_c;
-	    prevgain = 0.5f + x->x_xfade_state_c;
-	    
-	    /* check indices & wrap */
-	    tabreadmix_tilde_wrapindices(x);
-
-	    /* mix and write */
-	    newpos = (int)(*pos++);
-	    *out++ = currgain * buf[x->x_currpos++] 
-		+ prevgain * buf[x->x_prevpos++];
-	    
-	    /* advance oscillator */
-	    c =   x->x_xfade_state_c * x->x_xfade_cos 
-		- x->x_xfade_state_s * x->x_xfade_sin;
-	    s =   x->x_xfade_state_c * x->x_xfade_sin 
-		+ x->x_xfade_state_s * x->x_xfade_cos;
-	    x->x_xfade_state_c = c;
-	    x->x_xfade_state_s = s;
-	}
-
-	/* update indices */
-	x->x_xfade_phase += chunk;
-	n -= chunk;
-	//pos += chunk;
-
-	/* check if prev chunk is finished */
-	if (x->x_xfade_size == x->x_xfade_phase){
-	    x->x_prevpos = x->x_currpos;
-	    x->x_currpos = newpos;
-	    x->x_xfade_state_c = 0.5f;
-	    x->x_xfade_state_s = 0.0f;
-	    x->x_xfade_phase = 0;
-	}
-
-    }
-
-    /* return if we ran out of data */
-    return (w+5);
-
-
- zero:
-    while (n--) *out++ = 0;
-    return (w+5);
-}
-
-
-static void tabreadmix_tilde_blocksize(t_tabreadmix_tilde *x, t_float size)
-{
-    double prev_phase;
-    int max;
-    float fmax = (float)x->x_npoints * 0.5f;
-
-    if (size < 1.0) size = 1.0;
-
-    prev_phase = (double)x->x_xfade_phase;
-    prev_phase *= size;
-    prev_phase /= (double)x->x_xfade_size;
-
-    
-    /* preserve the crossfader state */
-    x->x_xfade_phase = (int)prev_phase;
-    x->x_xfade_size = (int)size;
-
-
-    x->x_xfade_cos = cos(M_PI / (float)x->x_xfade_size);
-    x->x_xfade_sin = sin(M_PI / (float)x->x_xfade_size);
-
-
-    /* make sure indices are inside array */
-    if (x->x_npoints == 0){
-	x->x_currpos = 0;
-	x->x_prevpos = 0;
-    }
-
-    //else tabreadmix_tilde_wrapindices(x);
-
-
-
-}
-
-void tabreadmix_tilde_pitch(t_tabreadmix_tilde *x, t_float f)
-{
-    if (f < 1) f = 1;
-
-    tabreadmix_tilde_blocksize(x, sys_getsr() / f);
-}
-
-void tabreadmix_tilde_chunks(t_tabreadmix_tilde *x, t_float f)
-{
-    if (f < 1.0f) f = 1.0f;
-    tabreadmix_tilde_blocksize(x, (float)x->x_npoints / f);
-}
-
-void tabreadmix_tilde_bang(t_tabreadmix_tilde *x, t_float f)
-{
-    //trigger a chunk reset on next dsp call
-    x->x_xfade_phase = x->x_xfade_size;
-}
-
-void tabreadmix_tilde_set(t_tabreadmix_tilde *x, t_symbol *s)
-{
-    t_garray *a;
-    
-    x->x_arrayname = s;
-    if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
-    {
-        if (*s->s_name)
-            error("tabreadmix~: %s: no such array", x->x_arrayname->s_name);
-        x->x_vec = 0;
-    }
-    else if (!garray_getfloatarray(a, &x->x_npoints, &x->x_vec))
-    {
-        error("%s: bad template for tabreadmix~", x->x_arrayname->s_name);
-        x->x_vec = 0;
-    }
-    else garray_usedindsp(a);
-
-    /* make sure indices are inside array */
-    if (x->x_npoints == 0){
-	x->x_currpos = 0;
-	x->x_prevpos = 0;
-    }
-
-    //else tabreadmix_tilde_wrapindices(x);
-
-}
-
-static void tabreadmix_tilde_dsp(t_tabreadmix_tilde *x, t_signal **sp)
-{
-    tabreadmix_tilde_set(x, x->x_arrayname);
-
-    dsp_add(tabreadmix_tilde_perform, 4, x,
-        sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n);
-
-}
-
-static void tabreadmix_tilde_free(t_tabreadmix_tilde *x)
-{
-}
-
-static void *tabreadmix_tilde_new(t_symbol *s)
-{
-    t_tabreadmix_tilde *x = (t_tabreadmix_tilde *)pd_new(tabreadmix_tilde_class);
-    x->x_arrayname = s;
-    x->x_vec = 0;
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("blocksize"));  
-    outlet_new(&x->x_obj, gensym("signal"));
-    x->x_f = 0;
-    x->x_xfade_phase = 0;
-    x->x_xfade_size = 1024;
-    x->x_currpos = 0;
-    x->x_prevpos = 0;
-    x->x_xfade_state_c = 0.5f;
-    x->x_xfade_state_s = 0.0f;
-    tabreadmix_tilde_blocksize(x, 1024);
-    return (x);
-}
-
-void tabreadmix_tilde_setup(void)
-{
-    tabreadmix_tilde_class = class_new(gensym("tabreadmix~"),
-        (t_newmethod)tabreadmix_tilde_new, (t_method)tabreadmix_tilde_free,
-        sizeof(t_tabreadmix_tilde), 0, A_DEFSYM, 0);
-    CLASS_MAINSIGNALIN(tabreadmix_tilde_class, t_tabreadmix_tilde, x_f);
-    class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_dsp,
-        gensym("dsp"), 0);
-    class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_set,
-        gensym("set"), A_SYMBOL, 0);
-    class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_blocksize,
-        gensym("blocksize"), A_FLOAT, 0);
-    class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_pitch,
-        gensym("pitch"), A_FLOAT, 0);
-    class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_chunks,
-        gensym("chunks"), A_FLOAT, 0);
-    class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_bang,
-        gensym("bang"), 0);
-}
diff --git a/externals/creb-old/modules/xfm~.c b/externals/creb-old/modules/xfm~.c
deleted file mode 100644
index 63c79abfcebe4d8ace9c80985afcb864e8cfa3f7..0000000000000000000000000000000000000000
--- a/externals/creb-old/modules/xfm~.c
+++ /dev/null
@@ -1,271 +0,0 @@
-/*
- *   xfm.c  -  cross frequency modulation object
- *   Copyright (c) 2000-2003 by Tom Schouten
- *
- *   This program 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.
- *
- *   This program is distributed in the hope that it will be useful,
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of
- *   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., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-
-/*  
-coupled fm. osc state equations:
-
-phasor for system i =
-
-                     [  1  -phi ]
-(1+phi^2)^(1/2)  *   [ phi   1  ] 
- 
-
-with phi = 2*pi*(freq_base + freq_mod * out_other) / sr
-
-
-ideal phasor would be
-
-[ cos(phi)  - sin(phi) ]
-[ sin(phi)    cos(phi) ]
-
-
-this means frequencies are warped:
-
-2*pi*f_real = atan(2*pi*f)
-
-some (possible) enhancements:
-	+ add an integrator to get phase modulation
-	+ undo the frequency warping
-
-*/
-
-#include "m_pd.h"
-#include <math.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>  
-
-#define SINSAMPLES 512
-#define MYPI 3.1415927
-
-
-#define DISTORTED   0
-#define NORMALIZED  1
-   
-
-typedef struct xfmctl
-{
-    //t_float c_sintab[SINSAMPLES + 1];
-    t_float c_x1, c_y1; /* state osc 1 */
-    t_float c_x2, c_y2; /* state osc 2 */
-    t_int c_type; /* type of algo */
-
-} t_xfmctl;
-
-typedef struct xfm
-{
-    t_object x_obj;
-    t_float x_f;
-    t_xfmctl x_ctl;
-} t_xfm;
-
-void xfm_type(t_xfm *x, t_float f)
-{
-    int t = (int)f;
-
-    if (t == DISTORTED) x->x_ctl.c_type = t;
-    if (t == NORMALIZED) x->x_ctl.c_type = t;
-
-}
-
-
-static inline t_float xfm_sat(t_float x)
-{
-  const float max =  1;
-  const float min = -1;
-
-  x = (x > max) ? (max) : (x);
-  x = (x < min) ? (min) : (x);
-
-  return(x);
-}
-
-static t_int *xfm_perform(t_int *w)
-{
-
-
-  t_float *inA     = (float *)(w[3]);
-  t_float *inB     = (float *)(w[4]);
-  t_float *fbA     = (float *)(w[5]);
-  t_float *fbB     = (float *)(w[6]);
-  t_float *outA    = (float *)(w[7]);
-  t_float *outB    = (float *)(w[8]);
-  t_xfmctl *ctl    = (t_xfmctl *)(w[1]);
-  t_int n          = (t_int)(w[2]);
-  //t_float *tab     = ctl->c_sintab;
-
-  t_float x1 = ctl->c_x1, y1 = ctl->c_y1,   z1, dx1, dy1, inv_norm1;
-  t_float x2 = ctl->c_x2, y2 = ctl->c_y2,   z2, dx2, dy2, inv_norm2;
-
-  t_float scale = 2 * M_PI / sys_getsr();
-
-  t_int i;
-
-  switch(ctl->c_type){
-  default:
-  case  DISTORTED:
-
-      /* this is a 4 degree of freedom hyperchaotic system */
-      /* two coupled saturated unstable oscillators */
-
-      for (i=0; i<n; i++){
-	  /* osc 1 */
-	  z1 = scale * (x2 * (*fbA++) + (*inA++));
-	  
-	  dx1 = x1 - z1*y1;
-	  dy1 = y1 + z1*x1;
-	  
-	  x1 = xfm_sat(dx1);
-	  y1 = xfm_sat(dy1);
-	  
-	  /* osc 2*/
-	  z2 = scale * (x1 * (*fbB++) + (*inB++));
-	      
-	  dx2 = x2 - z2*y2;
-	  dy2 = y2 + z2*x2;
-	  
-	  x2 = xfm_sat(dx2);
-	  y2 = xfm_sat(dy2);
-	  
-	  /* output */
-	  (*outA++) = x1;
-	  (*outB++) = x2;
-	  
-      }
-      break;
-
-  case NORMALIZED:
-
-      /* this is a an effective 2 degree of freedom quasiperiodic system */
-      /* two coupled stable oscillators */
-
-      for (i=0; i<n; i++){
-
-	  /* osc 1 */
-	  z1 = scale * (x2 * (*fbA++) + (*inA++));
-	  
-	  dx1 = x1 - z1*y1;
-	  dy1 = y1 + z1*x1;
-	  inv_norm1 = 1.0f / hypot(dx1, dy1);
-	  
-	      
-	  /* osc 2*/
-	  z2 = scale * (x1 * (*fbB++) + (*inB++));
-	  
-	  dx2 = x2 - z2*y2;
-	  dy2 = y2 + z2*x2;
-	  inv_norm2 = 1.0f / hypot(dx2, dy2);
-	  
-	  /* renormalize */
-	  x1 = dx1 * inv_norm1;
-	  y1 = dy1 * inv_norm1;
-	  x2 = dx2 * inv_norm2;
-	  y2 = dy2 * inv_norm2;
-	  
-	  /* output */
-	  (*outA++) = x1;
-	  (*outB++) = x2;
-      }
-      break;
-  }
-
-  ctl->c_x1 = x1;
-  ctl->c_y1 = y1;
-  ctl->c_x2 = x2;
-  ctl->c_y2 = y2;
-
-  return (w+9);
-}
-
-static void xfm_dsp(t_xfm *x, t_signal **sp)
-{
-  int n = sp[0]->s_n;
-  int k;
-
-
-  dsp_add(xfm_perform, 
-	  8, 
-	  &x->x_ctl, 
-	  sp[0]->s_n, 
-	  sp[0]->s_vec, 
-	  sp[1]->s_vec, 
-	  sp[2]->s_vec,
-	  sp[3]->s_vec,
-	  sp[4]->s_vec,
-	  sp[5]->s_vec);
-
-
-}                                  
-static void xfm_free(t_xfm *x)
-{
-
-
-}
-
-
-
-
-static void xfm_reset(t_xfm *x)
-{
-    x->x_ctl.c_x1 = 1;
-    x->x_ctl.c_y1 = 0;
-    x->x_ctl.c_x2 = 1;
-    x->x_ctl.c_y2 = 0;
-
-}
-
-
-t_class *xfm_class;
-
-static void *xfm_new(t_floatarg algotype)
-{
-    t_xfm *x = (t_xfm *)pd_new(xfm_class);
-
-    /* ins */
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-    inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("signal"), gensym("signal"));  
-
-    /* outs */
-    outlet_new(&x->x_obj, gensym("signal")); 
-    outlet_new(&x->x_obj, gensym("signal")); 
-
-
-
-    /* init data */
-    xfm_reset(x);
-    xfm_type(x, algotype);
-
-    return (void *)x;
-}
-
-void xfm_tilde_setup(void)
-{
-    //post("xfm~ v0.1");
-    xfm_class = class_new(gensym("xfm~"), (t_newmethod)xfm_new,
-    	(t_method)xfm_free, sizeof(t_xfm), 0, A_DEFFLOAT, 0);
-    CLASS_MAINSIGNALIN(xfm_class, t_xfm, x_f);
-    class_addmethod(xfm_class, (t_method)xfm_type, gensym("type"), A_FLOAT, 0);
-    class_addmethod(xfm_class, (t_method)xfm_dsp, gensym("dsp"), 0); 
-    class_addmethod(xfm_class, (t_method)xfm_reset, gensym("reset"), 0); 
-
-
-}
-
diff --git a/externals/creb/.svn/all-wcprops b/externals/creb/.svn/all-wcprops
index 488ccb487d47c108a2b0eb0de4c61e13b801b967..66b31d1f86608349029d3060593433c9b59828a0 100644
--- a/externals/creb/.svn/all-wcprops
+++ b/externals/creb/.svn/all-wcprops
@@ -1,25 +1,7 @@
 K 25
 svn:wc:ra_dav:version-url
 V 54
-/svnroot/pure-data/!svn/ver/15787/trunk/externals/creb
-END
-configure.ac
-K 25
-svn:wc:ra_dav:version-url
-V 66
-/svnroot/pure-data/!svn/ver/5742/trunk/externals/creb/configure.ac
-END
-TODO
-K 25
-svn:wc:ra_dav:version-url
-V 58
-/svnroot/pure-data/!svn/ver/5607/trunk/externals/creb/TODO
-END
-Makefile.config.in
-K 25
-svn:wc:ra_dav:version-url
-V 73
-/svnroot/pure-data/!svn/ver/10266/trunk/externals/creb/Makefile.config.in
+/svnroot/pure-data/!svn/ver/16514/trunk/externals/creb
 END
 CHANGES.LOG
 K 25
@@ -63,3 +45,27 @@ svn:wc:ra_dav:version-url
 V 64
 /svnroot/pure-data/!svn/ver/10266/trunk/externals/creb/bootstrap
 END
+creb.mk
+K 25
+svn:wc:ra_dav:version-url
+V 62
+/svnroot/pure-data/!svn/ver/16514/trunk/externals/creb/creb.mk
+END
+configure.ac
+K 25
+svn:wc:ra_dav:version-url
+V 67
+/svnroot/pure-data/!svn/ver/16491/trunk/externals/creb/configure.ac
+END
+TODO
+K 25
+svn:wc:ra_dav:version-url
+V 58
+/svnroot/pure-data/!svn/ver/5607/trunk/externals/creb/TODO
+END
+Makefile.config.in
+K 25
+svn:wc:ra_dav:version-url
+V 73
+/svnroot/pure-data/!svn/ver/16491/trunk/externals/creb/Makefile.config.in
+END
diff --git a/externals/creb/.svn/entries b/externals/creb/.svn/entries
index c506321bf6d93078138cca9429c9bd2a8328f90f..39a5004bd8fb925fc415a01cf5d3091b61247fb8 100644
--- a/externals/creb/.svn/entries
+++ b/externals/creb/.svn/entries
@@ -1,15 +1,15 @@
 10
 
 dir
-16135
+16568
 https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/creb
 https://pure-data.svn.sourceforge.net/svnroot/pure-data
 
 
 
-2011-11-17T16:06:41.140954Z
-15787
-katjav
+2012-11-01T23:47:27.756251Z
+16514
+doelie
 
 
 
@@ -26,14 +26,14 @@ katjav
 
 df7eb9d6-776f-4174-a42d-0ffd8d5d5b5d
 
-Makefile.config.in
+bootstrap
 file
 
 
 
 
 2012-05-04T00:49:10.119816Z
-ab9a6f7c6b65c77bca870b21698daa50
+3dae4e9d6cae45bea01ac7b73e294119
 2008-08-27T22:27:30.525666Z
 10266
 eighthave
@@ -58,16 +58,16 @@ eighthave
 
 
 
-480
+36
 
-README.darcs
+Makefile
 file
 
 
 
 
 2012-05-04T00:49:10.119816Z
-5992b15021b12907f8cd26e06e7b9c42
+20f4513d1eff96a8a089f81b3603a0e9
 2008-08-27T22:27:30.525666Z
 10266
 eighthave
@@ -92,18 +92,18 @@ eighthave
 
 
 
-145
+816
 
-CHANGES.LOG
+creb.mk
 file
 
 
 
 
-2012-05-04T00:49:10.119816Z
-fb821cad3d2a7d49733506c37e4cab81
-2003-09-12T22:22:31.000000Z
-955
+2012-11-22T18:49:46.624124Z
+dc1c820204ef5077e0880ffc4e0f47bd
+2012-11-01T23:47:27.756251Z
+16514
 doelie
 
 
@@ -126,16 +126,50 @@ doelie
 
 
 
-1707
+2029
 
-README
+Makefile.config.in
+file
+
+
+
+
+2012-11-22T18:49:46.625124Z
+43fc3655ad4bc4024a66adc8fe4f4575
+2012-10-27T13:58:28.867727Z
+16491
+doelie
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+486
+
+README.darcs
 file
 
 
 
 
 2012-05-04T00:49:10.119816Z
-397ab6b593d54e6a3b3e480ba5dddc42
+5992b15021b12907f8cd26e06e7b9c42
 2008-08-27T22:27:30.525666Z
 10266
 eighthave
@@ -160,24 +194,18 @@ eighthave
 
 
 
-1251
-
-modules++
-dir
-
-unittests
-dir
+145
 
-configure.ac
+CHANGES.LOG
 file
 
 
 
 
 2012-05-04T00:49:10.119816Z
-1a63f1792f1705593ea0d9bc6442cb2b
-2006-08-25T22:38:42.000000Z
-5742
+fb821cad3d2a7d49733506c37e4cab81
+2003-09-12T22:22:31.000000Z
+955
 doelie
 
 
@@ -200,19 +228,19 @@ doelie
 
 
 
-870
+1707
 
-TODO
+README
 file
 
 
 
 
 2012-05-04T00:49:10.119816Z
-c99f2ec7cd2f71c4d7b01902e5291521
-2006-08-15T15:11:52.000000Z
-5607
-doelie
+397ab6b593d54e6a3b3e480ba5dddc42
+2008-08-27T22:27:30.525666Z
+10266
+eighthave
 
 
 
@@ -234,25 +262,25 @@ doelie
 
 
 
-113
+1251
 
-doc
+modules++
 dir
 
-abs
+unittests
 dir
 
-README.extcvs
+configure.ac
 file
 
 
 
 
-2012-05-04T00:49:10.119816Z
-a0400278ae47097cf0eadc2cb2e1074d
-2008-08-27T22:27:30.525666Z
-10266
-eighthave
+2012-11-22T18:49:46.626124Z
+0afe3a3bae2bb1404de1e621244ad47d
+2012-10-27T13:58:28.867727Z
+16491
+doelie
 
 
 
@@ -274,18 +302,18 @@ eighthave
 
 
 
-402
+871
 
-COPYING
+TODO
 file
 
 
 
 
 2012-05-04T00:49:10.119816Z
-55ab64df8d099105761d8ec4e458c1ba
-2003-01-21T10:18:19.000000Z
-351
+c99f2ec7cd2f71c4d7b01902e5291521
+2006-08-15T15:11:52.000000Z
+5607
 doelie
 
 
@@ -308,19 +336,22 @@ doelie
 
 
 
-17987
+113
 
-modules
+doc
 dir
 
-bootstrap
+abs
+dir
+
+README.extcvs
 file
 
 
 
 
 2012-05-04T00:49:10.119816Z
-3dae4e9d6cae45bea01ac7b73e294119
+a0400278ae47097cf0eadc2cb2e1074d
 2008-08-27T22:27:30.525666Z
 10266
 eighthave
@@ -345,19 +376,19 @@ eighthave
 
 
 
-36
+402
 
-Makefile
+COPYING
 file
 
 
 
 
 2012-05-04T00:49:10.119816Z
-20f4513d1eff96a8a089f81b3603a0e9
-2008-08-27T22:27:30.525666Z
-10266
-eighthave
+55ab64df8d099105761d8ec4e458c1ba
+2003-01-21T10:18:19.000000Z
+351
+doelie
 
 
 
@@ -379,5 +410,8 @@ eighthave
 
 
 
-816
+17987
+
+modules
+dir
 
diff --git a/externals/creb/.svn/text-base/Makefile.config.in.svn-base b/externals/creb/.svn/text-base/Makefile.config.in.svn-base
index 204525c61137bb1cd3c91e4b1733f89ab1f2545e..62213a31dff07baf5ad03c3b409ace729b389d10 100644
--- a/externals/creb/.svn/text-base/Makefile.config.in.svn-base
+++ b/externals/creb/.svn/text-base/Makefile.config.in.svn-base
@@ -6,7 +6,7 @@ prefix=@prefix@
 CREB_VERSION = 0.9.2
 
 DEFS = -DPD -DCREB_VERSION=\"$(CREB_VERSION)\"
-CFLAGS = $(DEFS) -O2 -funroll-loops -fomit-frame-pointer \
+CFLAGS = $(DEFS) -fPIC -O2 -funroll-loops -fomit-frame-pointer \
     -Wall -W -Wstrict-prototypes \
     -Wno-unused -Wno-parentheses -Wno-switch # -Wshadow
 INCLUDE =  -I$(PD_INCLUDE_DIR) -I../include -I../include/dspi
diff --git a/externals/creb/.svn/text-base/configure.ac.svn-base b/externals/creb/.svn/text-base/configure.ac.svn-base
index c3b788d1ef4f93554ed4b6810572c19e2f1daa0f..1a358a0300bd50c176a5201000fa851bc367c107 100644
--- a/externals/creb/.svn/text-base/configure.ac.svn-base
+++ b/externals/creb/.svn/text-base/configure.ac.svn-base
@@ -9,7 +9,7 @@ if test $ARCH == Linux;
 then
 	PD_INCLUDE_DIR=$prefix/pd/src
 	LIBNAME=creb.pd_linux
-	LIBFLAGS="-export_dynamic -shared"
+        LIBFLAGS="-rdynamic -shared"
 	echo "Linux"
 
 elif test $ARCH == Darwin;
diff --git a/externals/creb/Makefile.config.in b/externals/creb/Makefile.config.in
index 204525c61137bb1cd3c91e4b1733f89ab1f2545e..62213a31dff07baf5ad03c3b409ace729b389d10 100644
--- a/externals/creb/Makefile.config.in
+++ b/externals/creb/Makefile.config.in
@@ -6,7 +6,7 @@ prefix=@prefix@
 CREB_VERSION = 0.9.2
 
 DEFS = -DPD -DCREB_VERSION=\"$(CREB_VERSION)\"
-CFLAGS = $(DEFS) -O2 -funroll-loops -fomit-frame-pointer \
+CFLAGS = $(DEFS) -fPIC -O2 -funroll-loops -fomit-frame-pointer \
     -Wall -W -Wstrict-prototypes \
     -Wno-unused -Wno-parentheses -Wno-switch # -Wshadow
 INCLUDE =  -I$(PD_INCLUDE_DIR) -I../include -I../include/dspi
diff --git a/externals/creb/abs/.svn/entries b/externals/creb/abs/.svn/entries
index a1dc65396d7714205d91fd8694e8e072e8f23f44..c117f146a65c81a4534895edd24a49df08e8a594 100644
--- a/externals/creb/abs/.svn/entries
+++ b/externals/creb/abs/.svn/entries
@@ -1,7 +1,7 @@
 10
 
 dir
-16135
+16568
 https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/creb/abs
 https://pure-data.svn.sourceforge.net/svnroot/pure-data
 
@@ -26,16 +26,16 @@ eighthave
 
 df7eb9d6-776f-4174-a42d-0ffd8d5d5b5d
 
-icep~.pd
+bpm.pd
 file
 
 
 
 
 2012-05-04T00:49:09.503816Z
-053210d717c90e7906744c3c89582ba8
-2003-09-12T22:26:57.000000Z
-956
+48353d9cdc7fd653b0314b4ba6a295be
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -58,18 +58,18 @@ doelie
 
 
 
-426
+408
 
-bpm.pd
+icep~.pd
 file
 
 
 
 
 2012-05-04T00:49:09.503816Z
-48353d9cdc7fd653b0314b4ba6a295be
-2003-01-21T10:18:19.000000Z
-351
+053210d717c90e7906744c3c89582ba8
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -92,18 +92,18 @@ doelie
 
 
 
-408
+426
 
-scale7.pd
+dsfosc~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.491816Z
-ed7afa7fd50f7d724d7ae77b867706cf
-2003-01-21T10:18:19.000000Z
-351
+2012-05-04T00:49:09.503816Z
+1c6159b28576fdb2b68db2e5360d316b
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -126,18 +126,18 @@ doelie
 
 
 
-864
+1704
 
-tblock.pd
+bdft.pd
 file
 
 
 
 
-2012-05-04T00:49:09.495816Z
-3ed5d151252e41ee3ca17c317d01bf72
-2003-02-18T13:18:54.000000Z
-419
+2012-05-04T00:49:09.503816Z
+1fd24b5d25d4f4322873684f0d043ea4
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -160,16 +160,16 @@ doelie
 
 
 
-720
+361
 
-dsfosc~.pd
+step_4r.pd
 file
 
 
 
 
 2012-05-04T00:49:09.503816Z
-1c6159b28576fdb2b68db2e5360d316b
+75a5fb76c26728f714d128db24407f85
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -194,16 +194,16 @@ doelie
 
 
 
-1704
+614
 
-step_4r.pd
+step_16.pd
 file
 
 
 
 
-2012-05-04T00:49:09.503816Z
-75a5fb76c26728f714d128db24407f85
+2012-05-04T00:49:09.507816Z
+e71c59ff5b65ca498724fa5d6652bf93
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -228,7 +228,7 @@ doelie
 
 
 
-614
+1182
 
 cstate~.pd
 file
@@ -264,14 +264,14 @@ doelie
 
 186
 
-step_16.pd
+lpifft~.pd
 file
 
 
 
 
 2012-05-04T00:49:09.507816Z
-e71c59ff5b65ca498724fa5d6652bf93
+7870b4f0b1e3c5c476ffb3764eae89ff
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -296,16 +296,16 @@ doelie
 
 
 
-1182
+1385
 
-frequor~.pd
+cosc~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.495816Z
-e234b3f629bd92a98d8b5739590db10f
+2012-05-04T00:49:09.507816Z
+c16598176545f94b23beda39320e8ff7
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -330,18 +330,18 @@ doelie
 
 
 
-643
+535
 
-ccmap~.pd
+pdynwav~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.495816Z
-010d3f3d09a17e71f71e6967779f334d
-2003-09-12T22:26:57.000000Z
-956
+2012-05-04T00:49:09.507816Z
+2bff8320ef6a96562624a36ab83a825c
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -364,16 +364,16 @@ doelie
 
 
 
-799
+219
 
-lpifft~.pd
+sin~.pd
 file
 
 
 
 
 2012-05-04T00:49:09.507816Z
-7870b4f0b1e3c5c476ffb3764eae89ff
+d7929717359cca70cae0586acb6f13c7
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -398,18 +398,18 @@ doelie
 
 
 
-1385
+174
 
-cosc~.pd
+count.pd
 file
 
 
 
 
 2012-05-04T00:49:09.507816Z
-c16598176545f94b23beda39320e8ff7
-2003-09-12T22:26:57.000000Z
-956
+772ecbb63ff096d92947135463d9e617
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -432,18 +432,18 @@ doelie
 
 
 
-535
+417
 
-fmod.pd
+ti_hihat.pd
 file
 
 
 
 
-2012-05-04T00:49:09.495816Z
-0d735583dda00fb216b667f606d61b73
-2003-09-12T22:26:57.000000Z
-956
+2012-05-04T00:49:09.507816Z
+9a639d2aedc7021e2471f88a325323ab
+2006-08-15T15:11:52.000000Z
+5607
 doelie
 
 
@@ -466,16 +466,16 @@ doelie
 
 
 
-541
+4065
 
-idsfosc~.pd
+cadd~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.495816Z
-180f7854b3753fef9f6de68bbb88e0f0
+2012-05-04T00:49:09.507816Z
+95ab228e66ecf5d9f1b6b356b9be062a
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -500,18 +500,18 @@ doelie
 
 
 
-651
+275
 
-count.pd
+cconj~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.507816Z
-772ecbb63ff096d92947135463d9e617
-2003-01-21T10:18:19.000000Z
-351
+2012-05-04T00:49:09.511816Z
+4333e402859a937031308be96eea7a18
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -534,16 +534,16 @@ doelie
 
 
 
-417
+233
 
-cadd~.pd
+csub~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.507816Z
-95ab228e66ecf5d9f1b6b356b9be062a
+2012-05-04T00:49:09.511816Z
+0652dad0856332540fdbf904f326bf46
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -568,18 +568,18 @@ doelie
 
 
 
-275
+355
 
-csub~.pd
+inv.pd
 file
 
 
 
 
 2012-05-04T00:49:09.511816Z
-0652dad0856332540fdbf904f326bf46
-2003-09-12T22:26:57.000000Z
-956
+c04d38c1b2196ec8dcc2038ff3afec85
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -602,16 +602,16 @@ doelie
 
 
 
-355
+170
 
-cstate+~.pd
+cmul~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.499816Z
-1eb1ce67503fc3a5260456f416396f2f
+2012-05-04T00:49:09.511816Z
+fea54f6f38e9b788d99a7afaa19bc403
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -636,16 +636,16 @@ doelie
 
 
 
-246
+600
 
-inv.pd
+vol~.pd
 file
 
 
 
 
 2012-05-04T00:49:09.511816Z
-c04d38c1b2196ec8dcc2038ff3afec85
+7fa38e53a2148156f9f8dc59f49389ee
 2003-01-21T10:18:19.000000Z
 351
 doelie
@@ -670,18 +670,18 @@ doelie
 
 
 
-170
+383
 
-step_4.pd
+eadh~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.499816Z
-b342330f65a688de02eafa8c6e149995
-2003-09-12T22:26:57.000000Z
-956
+2012-05-04T00:49:09.511816Z
+c1fd2e737514c8dd5e0856c63f3e42be
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -704,19 +704,19 @@ doelie
 
 
 
-778
+494
 
-cmul~.pd
+rms~.pd
 file
 
 
 
 
 2012-05-04T00:49:09.511816Z
-fea54f6f38e9b788d99a7afaa19bc403
-2003-09-12T22:26:57.000000Z
-956
-doelie
+e5e48434e737cfd693a76bf15713e7c7
+2008-08-27T22:27:30.525666Z
+10266
+eighthave
 
 
 
@@ -738,18 +738,18 @@ doelie
 
 
 
-600
+178
 
-eadh~.pd
+fblock.pd
 file
 
 
 
 
 2012-05-04T00:49:09.511816Z
-c1fd2e737514c8dd5e0856c63f3e42be
-2003-01-21T10:18:19.000000Z
-351
+70ec55f69f83fa34ad85c421e7ec2bd5
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -772,7 +772,7 @@ doelie
 
 
 
-494
+671
 
 ucnorm~.pd
 file
@@ -842,14 +842,14 @@ doelie
 
 403
 
-step_16r.pd
+64k.pd
 file
 
 
 
 
-2012-05-04T00:49:09.499816Z
-8264919fd0c9575cc2fcd07ac5152d17
+2012-05-04T00:49:09.511816Z
+8020124d5df80555b675f0706e522140
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -874,16 +874,16 @@ doelie
 
 
 
-1149
+2197
 
-ti_snare.pd
+lattice3.pd
 file
 
 
 
 
-2012-05-04T00:49:09.499816Z
-c095458b157fff6898603337a3c7ddf4
+2012-05-04T00:49:09.515816Z
+7f42c29f9a7535d3b1891b940840a7ef
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -908,18 +908,18 @@ doelie
 
 
 
-1981
+674
 
-64k.pd
+scale7.pd
 file
 
 
 
 
-2012-05-04T00:49:09.511816Z
-8020124d5df80555b675f0706e522140
-2003-09-12T22:26:57.000000Z
-956
+2012-05-04T00:49:09.491816Z
+ed7afa7fd50f7d724d7ae77b867706cf
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -942,18 +942,18 @@ doelie
 
 
 
-2197
+864
 
-cep~.pd
+tblock.pd
 file
 
 
 
 
-2012-05-04T00:49:09.503816Z
-197743e1a599f5426062de70d0a535e6
-2003-09-12T22:26:57.000000Z
-956
+2012-05-04T00:49:09.495816Z
+3ed5d151252e41ee3ca17c317d01bf72
+2003-02-18T13:18:54.000000Z
+419
 doelie
 
 
@@ -976,18 +976,18 @@ doelie
 
 
 
-425
+720
 
-ucmod~.pd
+bhip~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.503816Z
-9236eff52ab5b7bd9efad8edd8e10f3e
-2003-09-12T22:26:57.000000Z
-956
+2012-05-04T00:49:09.495816Z
+9251d6e19ed0f61b4d0583215818dad7
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -1010,18 +1010,18 @@ doelie
 
 
 
-599
+239
 
-bdft.pd
+frequor~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.503816Z
-1fd24b5d25d4f4322873684f0d043ea4
-2003-01-21T10:18:19.000000Z
-351
+2012-05-04T00:49:09.495816Z
+e234b3f629bd92a98d8b5739590db10f
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -1044,18 +1044,18 @@ doelie
 
 
 
-361
+643
 
-bhip~.pd
+ccmap~.pd
 file
 
 
 
 
 2012-05-04T00:49:09.495816Z
-9251d6e19ed0f61b4d0583215818dad7
-2003-01-21T10:18:19.000000Z
-351
+010d3f3d09a17e71f71e6967779f334d
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -1078,7 +1078,7 @@ doelie
 
 
 
-239
+799
 
 vols~.pd
 file
@@ -1148,16 +1148,16 @@ doelie
 
 892
 
-pdynwav~.pd
+fmod.pd
 file
 
 
 
 
-2012-05-04T00:49:09.507816Z
-2bff8320ef6a96562624a36ab83a825c
-2003-01-21T10:18:19.000000Z
-351
+2012-05-04T00:49:09.495816Z
+0d735583dda00fb216b667f606d61b73
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -1180,16 +1180,16 @@ doelie
 
 
 
-219
+541
 
-sin~.pd
+idsfosc~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.507816Z
-d7929717359cca70cae0586acb6f13c7
+2012-05-04T00:49:09.495816Z
+180f7854b3753fef9f6de68bbb88e0f0
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -1214,7 +1214,7 @@ doelie
 
 
 
-174
+651
 
 expmap~.pd
 file
@@ -1250,16 +1250,16 @@ doelie
 
 845
 
-ti_hihat.pd
+blop~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.507816Z
-9a639d2aedc7021e2471f88a325323ab
-2006-08-15T15:11:52.000000Z
-5607
+2012-05-04T00:49:09.495816Z
+51a328fc1445acf6b847f2cfb718e72d
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -1282,18 +1282,18 @@ doelie
 
 
 
-4065
+239
 
-blop~.pd
+cstate+~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.495816Z
-51a328fc1445acf6b847f2cfb718e72d
-2003-01-21T10:18:19.000000Z
-351
+2012-05-04T00:49:09.499816Z
+1eb1ce67503fc3a5260456f416396f2f
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -1316,16 +1316,16 @@ doelie
 
 
 
-239
+246
 
-cconj~.pd
+cinv~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.511816Z
-4333e402859a937031308be96eea7a18
+2012-05-04T00:49:09.499816Z
+d67bbf6c5086c2a2d0e2f2c2e184339c
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -1350,16 +1350,16 @@ doelie
 
 
 
-233
+563
 
-cinv~.pd
+step_4.pd
 file
 
 
 
 
 2012-05-04T00:49:09.499816Z
-d67bbf6c5086c2a2d0e2f2c2e184339c
+b342330f65a688de02eafa8c6e149995
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -1384,7 +1384,7 @@ doelie
 
 
 
-563
+778
 
 fblock~.pd
 file
@@ -1420,16 +1420,16 @@ doelie
 
 647
 
-vol~.pd
+fmop~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.511816Z
-7fa38e53a2148156f9f8dc59f49389ee
-2003-01-21T10:18:19.000000Z
-351
+2012-05-04T00:49:09.499816Z
+08d0ac4b91d8794928f6464266e92f01
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -1452,16 +1452,16 @@ doelie
 
 
 
-383
+445
 
-fmop~.pd
+step_16r.pd
 file
 
 
 
 
 2012-05-04T00:49:09.499816Z
-08d0ac4b91d8794928f6464266e92f01
+8264919fd0c9575cc2fcd07ac5152d17
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -1486,19 +1486,19 @@ doelie
 
 
 
-445
+1149
 
-rms~.pd
+ti_snare.pd
 file
 
 
 
 
-2012-05-04T00:49:09.511816Z
-e5e48434e737cfd693a76bf15713e7c7
-2008-08-27T22:27:30.525666Z
-10266
-eighthave
+2012-05-04T00:49:09.499816Z
+c095458b157fff6898603337a3c7ddf4
+2003-09-12T22:26:57.000000Z
+956
+doelie
 
 
 
@@ -1520,18 +1520,18 @@ eighthave
 
 
 
-178
+1981
 
-fblock.pd
+eadsrh~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.511816Z
-70ec55f69f83fa34ad85c421e7ec2bd5
-2003-09-12T22:26:57.000000Z
-956
+2012-05-04T00:49:09.503816Z
+ed8349f796e1ffeabb1bef1744571cb0
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -1554,18 +1554,18 @@ doelie
 
 
 
-671
+615
 
-eadsrh~.pd
+ucmod~.pd
 file
 
 
 
 
 2012-05-04T00:49:09.503816Z
-ed8349f796e1ffeabb1bef1744571cb0
-2003-01-21T10:18:19.000000Z
-351
+9236eff52ab5b7bd9efad8edd8e10f3e
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -1588,16 +1588,16 @@ doelie
 
 
 
-615
+599
 
-lattice3.pd
+cep~.pd
 file
 
 
 
 
-2012-05-04T00:49:09.515816Z
-7f42c29f9a7535d3b1891b940840a7ef
+2012-05-04T00:49:09.503816Z
+197743e1a599f5426062de70d0a535e6
 2003-09-12T22:26:57.000000Z
 956
 doelie
@@ -1622,5 +1622,5 @@ doelie
 
 
 
-674
+425
 
diff --git a/externals/creb/configure.ac b/externals/creb/configure.ac
index c3b788d1ef4f93554ed4b6810572c19e2f1daa0f..1a358a0300bd50c176a5201000fa851bc367c107 100644
--- a/externals/creb/configure.ac
+++ b/externals/creb/configure.ac
@@ -9,7 +9,7 @@ if test $ARCH == Linux;
 then
 	PD_INCLUDE_DIR=$prefix/pd/src
 	LIBNAME=creb.pd_linux
-	LIBFLAGS="-export_dynamic -shared"
+        LIBFLAGS="-rdynamic -shared"
 	echo "Linux"
 
 elif test $ARCH == Darwin;
diff --git a/externals/creb/creb.mk b/externals/creb/creb.mk
new file mode 100644
index 0000000000000000000000000000000000000000..f2085cdb8b4b14c2971b8e72db62867911f5ed99
--- /dev/null
+++ b/externals/creb/creb.mk
@@ -0,0 +1,101 @@
+#!/usr/bin/make -f
+
+# Faster alternative makefile, for development only.
+SRC_C:= \
+./modules/dwt.c \
+./modules/scrollgrid1D~.c \
+./modules/diag~.c \
+./modules/statwav~.c \
+./modules/xfm~.c \
+./modules/junction~.c \
+./modules/permut~.c \
+./modules/dynwav~.c \
+./modules/dist~.c \
+./modules/setup.c \
+./modules/qmult~.c \
+./modules/ffpoly.c \
+./modules/sawtooth~.c \
+./modules/sbosc~.c \
+./modules/ratio.c \
+./modules/bitsplit~.c \
+./modules/fdn~.c \
+./modules/eblosc~.c \
+./modules/bwin~.c \
+./modules/fwarp.c \
+./modules/cmath.c \
+./modules/cheby~.c \
+./modules/blocknorm~.c \
+./modules/bdiag~.c \
+./modules/ramp~.c \
+./modules/tabreadmix~.c \
+./modules/ead~.c \
+./modules/matrix~.c \
+./modules/abs~.c \
+./modules/lattice~.c \
+./modules/resofilt~.c \
+./modules/ear~.c \
+./modules/qnorm~.c \
+./modules/eadsr~.c \
+./modules/bfft~.c \
+
+SRC_CC := \
+./modules++/blosc~.cc \
+./modules++/biquadseries~.cc \
+./modules++/filterortho~.cc \
+
+
+GCC_CFLAGS := -funroll-loops
+CC := gcc $(GCC_CFLAGS)
+CPLUSPLUS := g++ $(GCC_CFLAGS)
+# CC := clang
+# CPLUSPLUS := clang++
+
+
+CFLAGS := -DPD -DCREB_VERSION=\"0.9.2\" -fPIC -O3 -fomit-frame-pointer -Wall -W -Wno-unused -Wno-parentheses -Wno-switch
+BUILD := build
+ARCH := pd_linux
+LDFLAGS := -rdynamic -shared
+OUT := $(BUILD)/creb.$(ARCH)
+
+O := \
+	$(patsubst %.c,$(BUILD)/%.o,$(SRC_C)) \
+	$(patsubst %.cc,$(BUILD)/%.o,$(SRC_CC))
+D := $(O:.o=.d)
+
+
+.SECONDARY:
+.DELETE_ON_ERROR:
+
+.PHONY: all
+all: $(OUT)
+
+.PHONY: clean
+clean:
+	rm -rf build
+
+$(BUILD)/%.d: %.c
+	@echo [d] $(notdir $@)
+	@mkdir -p $(dir $@)
+	@$(CC) -MT $(basename $@).o -MM $(CFLAGS) $< >$@
+
+$(BUILD)/%.d: %.cc
+	@echo [d] $(notdir $@)
+	@mkdir -p $(dir $@)
+	@$(CPLUSPLUS) -MT $(basename $@).o -MM $(CFLAGS) $< >$@
+
+$(BUILD)/%.o: %.c $(BUILD)/%.d
+	@echo [o] $(notdir $@)
+	@mkdir -p $(dir $@)
+	@$(CC) $(CFLAGS) -c $< -o $@
+
+$(BUILD)/%.o: %.cc $(BUILD)/%.d
+	@echo [o] $(notdir $@)
+	@mkdir -p $(dir $@)
+	@$(CPLUSPLUS) $(CFLAGS) -c $< -o $@
+
+$(OUT): $(O)
+	@echo [pd_linux] $(notdir $@)
+	@$(CPLUSPLUS) $(LDFLAGS) -o $@ $(O) $(LIBS)
+
+-include $(D)
+
diff --git a/externals/creb/doc/.svn/entries b/externals/creb/doc/.svn/entries
index cf4b2031ab2ab59e05e06f58278daa958176f1db..599206b3d0d91c5aebfd0e004e01cb6890bd47bb 100644
--- a/externals/creb/doc/.svn/entries
+++ b/externals/creb/doc/.svn/entries
@@ -1,7 +1,7 @@
 10
 
 dir
-16135
+16568
 https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/creb/doc
 https://pure-data.svn.sourceforge.net/svnroot/pure-data
 
@@ -26,14 +26,14 @@ jancsika1
 
 df7eb9d6-776f-4174-a42d-0ffd8d5d5b5d
 
-scale7-help.pd
+tabreadmix~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-2d270a5334d4aaebdc8846464d252ad1
+2012-05-04T00:49:09.735816Z
+46f6a7653e7508453310a177d02928f1
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -58,16 +58,16 @@ jancsika1
 
 
 
-505
+1824
 
-ratio-help.pd
+icep~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-bd76741f294d5d49058f7dfd53e9649c
+2012-05-04T00:49:09.735816Z
+b0c60d68186458c7631980ec76ee40bf
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -92,16 +92,16 @@ jancsika1
 
 
 
-870
+617
 
-biquadseries~-help.pd
+frequor~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-db4296b808d1aad853372a275ea7ae55
+2012-05-04T00:49:09.719816Z
+862ad1a517a3e6a51c9011312ee1fc4c
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -126,16 +126,16 @@ jancsika1
 
 
 
-1089
+671
 
-tblock-help.pd
+pdynwav~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-06918960252b6e830aad946dc642e3da
+2012-05-04T00:49:09.719816Z
+45db31c2e40d3fe564ce0b97e755903d
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -160,16 +160,16 @@ jancsika1
 
 
 
-797
+484
 
-bdft-help.pd
+ead~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-d11aa78f5c12cf3a701c5a48d609d9f9
+2012-05-04T00:49:09.719816Z
+828f8d0a4b1d13a0d60e6b3539aac279
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -194,16 +194,16 @@ jancsika1
 
 
 
-493
+1524
 
-dsfosc~-help.pd
+junction~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.743816Z
-d42cf305075e6109b15b226955b8778c
+2012-05-04T00:49:09.735816Z
+3e9486c1326902e0e7f459f8e9026e4b
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -228,19 +228,16 @@ jancsika1
 
 
 
-723
-
-examples
-dir
+2304
 
-eadsr~-help.pd
+cconj~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.715816Z
-2af8a7456b6521a3239cdba2e9801cb3
+2012-05-04T00:49:09.719816Z
+e644f843bf7ba14dfaad7200e21e58e3
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -265,16 +262,16 @@ jancsika1
 
 
 
-2046
+565
 
-qmult~-help.pd
+cexp~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.715816Z
-aae79769054b52e14e47573894afd124
+2012-05-04T00:49:09.735816Z
+1b5b8a102c7760c53b51fb0e4dac4de0
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -299,16 +296,16 @@ jancsika1
 
 
 
-2303
+708
 
-bdiag~-help.pd
+vol~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.715816Z
-6617aaef74c983d66272a94e7c870500
+2012-05-04T00:49:09.723816Z
+8afa48567723728e831b860c0f39e01f
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -333,16 +330,16 @@ jancsika1
 
 
 
-3512
+638
 
-ti_snare-help.pd
+filterortho~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.715816Z
-b54c5f9eff8110bec345609e802a38a0
+2012-05-04T00:49:09.723816Z
+718fedbf8d8f24fc44af6e6d95ce1b28
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -367,16 +364,16 @@ jancsika1
 
 
 
-729
+1856
 
-fdn~-help.pd
+fblock-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.715816Z
-341955212d10bbd52afee84a4811e468
+2012-05-04T00:49:09.723816Z
+a737e54f5f7e400d2a6c3b157295de1a
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -401,16 +398,16 @@ jancsika1
 
 
 
-2334
+808
 
-sbosc~-help.pd
+bdfts-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.715816Z
-0b828b488180a2005a0a3a20a9409a72
+2012-05-04T00:49:09.739816Z
+d8fc7a980e946ebf1bc3655ea2daaa48
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -435,16 +432,16 @@ jancsika1
 
 
 
-1501
+529
 
-bpm-help.pd
+diag~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.715816Z
-dca4b5b06dda990db902b66624ce2d01
+2012-05-04T00:49:09.739816Z
+20e5fe667d3fdeab79c02bbab72717a1
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -469,16 +466,16 @@ jancsika1
 
 
 
-572
+881
 
-fwarp-help.pd
+ucmod~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.719816Z
-c216352011b68994d481072a2c19a03f
+2012-05-04T00:49:09.727816Z
+57436aa9e9d2c05532b3ed8862c732d7
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -503,16 +500,16 @@ jancsika1
 
 
 
-1415
+626
 
-frequor~-help.pd
+ratio-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.719816Z
-862ad1a517a3e6a51c9011312ee1fc4c
+2012-05-04T00:49:09.739816Z
+bd76741f294d5d49058f7dfd53e9649c
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -537,16 +534,16 @@ jancsika1
 
 
 
-671
+870
 
-vols~-help.pd
+biquadseries~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.719816Z
-2ae4cc4e5e32e855c1c8ebd004d07325
+2012-05-04T00:49:09.739816Z
+db4296b808d1aad853372a275ea7ae55
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -571,16 +568,16 @@ jancsika1
 
 
 
-788
+1089
 
-lpifft~-help.pd
+dsfosc~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.719816Z
-561240663888b9e57c2b3a4927a265bd
+2012-05-04T00:49:09.743816Z
+d42cf305075e6109b15b226955b8778c
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -605,16 +602,16 @@ jancsika1
 
 
 
-725
+723
 
-clog~-help.pd
+lattice~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.719816Z
-34227b64502e2f32322456b541ff09b7
+2012-05-04T00:49:09.727816Z
+14c4ff8c9e24b2fb9a24087dcdd5a7a6
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -639,16 +636,16 @@ jancsika1
 
 
 
-709
+2260
 
-resofilt~-help.pd
+statwav~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.719816Z
-c28bf6b85d37be699f29b3ab3ed36869
+2012-05-04T00:49:09.727816Z
+51538dc1e5d745f4233f94617005b17c
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -673,16 +670,16 @@ jancsika1
 
 
 
-2784
+591
 
-pdynwav~-help.pd
+idsfosc~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.719816Z
-45db31c2e40d3fe564ce0b97e755903d
+2012-05-04T00:49:09.731816Z
+64a1a51eb930a19af90185f643821adc
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -707,16 +704,16 @@ jancsika1
 
 
 
-484
+710
 
-ead~-help.pd
+cheby~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.719816Z
-828f8d0a4b1d13a0d60e6b3539aac279
+2012-05-04T00:49:09.731816Z
+b2f8bf573a986685e5e0fb6663562c6c
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -741,16 +738,16 @@ jancsika1
 
 
 
-1524
+1545
 
-count-help.pd
+xfm~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.719816Z
-7f1debfd259703921f4e211e87819946
+2012-05-04T00:49:09.731816Z
+c4cbae55ae32a83559b90722dcfcc159
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -775,16 +772,16 @@ jancsika1
 
 
 
-849
+3528
 
-cconj~-help.pd
+ti_hihat-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.719816Z
-e644f843bf7ba14dfaad7200e21e58e3
+2012-05-04T00:49:09.731816Z
+be5c192de48d22853be10a2ef246a3fd
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -809,16 +806,16 @@ jancsika1
 
 
 
-565
+704
 
-csub~-help.pd
+bpm-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-e3527db9811c30b4d6a8e392b1d22586
+2012-05-04T00:49:09.715816Z
+dca4b5b06dda990db902b66624ce2d01
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -843,16 +840,16 @@ jancsika1
 
 
 
-630
+572
 
-inv-help.pd
+fwarp-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-636ccb7ee39835110ae3eb2b45b12fd8
+2012-05-04T00:49:09.719816Z
+c216352011b68994d481072a2c19a03f
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -877,16 +874,16 @@ jancsika1
 
 
 
-458
+1415
 
-ramp~-help.pd
+vols~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-863367a9d77180c4ba3e66fe319b6c45
+2012-05-04T00:49:09.719816Z
+2ae4cc4e5e32e855c1c8ebd004d07325
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -911,16 +908,16 @@ jancsika1
 
 
 
-593
+788
 
-bwin~-help.pd
+ccmap~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-1fefa606749c071300f761bba17e26d2
+2012-05-04T00:49:09.735816Z
+4518c36b65fafe59a149b6de861c44eb
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -945,16 +942,16 @@ jancsika1
 
 
 
-1996
+684
 
-cinv~-help.pd
+clog~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-22b3d699257cc89adcc258383d589454
+2012-05-04T00:49:09.719816Z
+34227b64502e2f32322456b541ff09b7
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -979,16 +976,16 @@ jancsika1
 
 
 
-584
+709
 
-cmul~-help.pd
+lpifft~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-7b3135189c502c76fe208ebee1ce9145
+2012-05-04T00:49:09.719816Z
+561240663888b9e57c2b3a4927a265bd
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1013,16 +1010,16 @@ jancsika1
 
 
 
-636
+725
 
-vol~-help.pd
+blocknorm~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-8afa48567723728e831b860c0f39e01f
+2012-05-04T00:49:09.735816Z
+ebfe3a049bf8a8b500be6605e65a295c
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1047,16 +1044,16 @@ jancsika1
 
 
 
-638
+2588
 
-fmop~-help.pd
+resofilt~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-0273800ff8760f64cceac33a83aea550
+2012-05-04T00:49:09.719816Z
+c28bf6b85d37be699f29b3ab3ed36869
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1081,17 +1078,17 @@ jancsika1
 
 
 
-571
+2784
 
-filterortho~-help.pd
+fmod-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-718fedbf8d8f24fc44af6e6d95ce1b28
-2010-11-25T01:45:15.898626Z
+2012-05-04T00:49:09.735816Z
+9b9ecac13a08a0bf9f9b7f92ea4c6123
+2010-11-25T01:45:15.898626Z
 14526
 jancsika1
 
@@ -1115,16 +1112,16 @@ jancsika1
 
 
 
-1856
+561
 
-fblock-help.pd
+count-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-a737e54f5f7e400d2a6c3b157295de1a
+2012-05-04T00:49:09.719816Z
+7f1debfd259703921f4e211e87819946
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1149,16 +1146,16 @@ jancsika1
 
 
 
-808
+849
 
-dist~-help.pd
+qnorm~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.723816Z
-9ccb99c3c5bdfa88576f1b406dd504d1
+2012-05-04T00:49:09.735816Z
+c145974d778126951f193a0948377553
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1183,16 +1180,16 @@ jancsika1
 
 
 
-893
+1457
 
-64k-help.pd
+csub~-help.pd
 file
 
 
 
 
 2012-05-04T00:49:09.723816Z
-fc82541aef248c2e8821741eab3c9aa1
+e3527db9811c30b4d6a8e392b1d22586
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1217,16 +1214,16 @@ jancsika1
 
 
 
-765
+630
 
-ucmod~-help.pd
+inv-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.727816Z
-57436aa9e9d2c05532b3ed8862c732d7
+2012-05-04T00:49:09.723816Z
+636ccb7ee39835110ae3eb2b45b12fd8
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1251,16 +1248,16 @@ jancsika1
 
 
 
-626
+458
 
-dynwav~-help.pd
+dwt~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.727816Z
-a5a3969a0e12accf51e33bd8952c2b3f
+2012-05-04T00:49:09.735816Z
+5f7a5f61711c0e4385f8319dd9d26d91
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1285,16 +1282,16 @@ jancsika1
 
 
 
-1121
+2768
 
-permut~-help.pd
+ramp~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.727816Z
-6a75396a80ab2554142e72612a018d4f
+2012-05-04T00:49:09.723816Z
+863367a9d77180c4ba3e66fe319b6c45
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1319,16 +1316,16 @@ jancsika1
 
 
 
-973
+593
 
-bfft~-help.pd
+bwin~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.727816Z
-33493d65878fbd0e77f8aee84b129d2a
+2012-05-04T00:49:09.723816Z
+1fefa606749c071300f761bba17e26d2
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1353,16 +1350,16 @@ jancsika1
 
 
 
-974
+1996
 
-bhip~-help.pd
+cinv~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.727816Z
-827ec3791d331e4551d8fabaeef1e10c
+2012-05-04T00:49:09.723816Z
+22b3d699257cc89adcc258383d589454
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1387,16 +1384,16 @@ jancsika1
 
 
 
-599
+584
 
-lattice~-help.pd
+cmul~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.727816Z
-14c4ff8c9e24b2fb9a24087dcdd5a7a6
+2012-05-04T00:49:09.723816Z
+7b3135189c502c76fe208ebee1ce9145
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1421,19 +1418,19 @@ jancsika1
 
 
 
-2260
+636
 
-reference.txt
+fmop~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.727816Z
-5ec58efb37371846a3bed46b35337c75
-2003-09-12T22:26:57.000000Z
-956
-doelie
+2012-05-04T00:49:09.723816Z
+0273800ff8760f64cceac33a83aea550
+2010-11-25T01:45:15.898626Z
+14526
+jancsika1
 
 
 
@@ -1455,16 +1452,16 @@ doelie
 
 
 
-2945
+571
 
-cosc~-help.pd
+ffpoly-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.727816Z
-cd0ce390ec24aee1c4a3197236cc618c
+2012-05-04T00:49:09.735816Z
+2ecfd0785ec07a927feb413eb59e6431
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1489,16 +1486,16 @@ jancsika1
 
 
 
-619
+1457
 
-scrollgrid1D~-help.pd
+blosc~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.727816Z
-b937cc34d0e79b251a00a6cf12890105
+2012-05-04T00:49:09.735816Z
+65294fea49a73203974fa4313c08fae7
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1523,16 +1520,16 @@ jancsika1
 
 
 
-4099
+3501
 
-statwav~-help.pd
+dist~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.727816Z
-51538dc1e5d745f4233f94617005b17c
+2012-05-04T00:49:09.723816Z
+9ccb99c3c5bdfa88576f1b406dd504d1
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1557,16 +1554,16 @@ jancsika1
 
 
 
-591
+893
 
-idsfosc~-help.pd
+64k-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-64a1a51eb930a19af90185f643821adc
+2012-05-04T00:49:09.723816Z
+fc82541aef248c2e8821741eab3c9aa1
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1591,16 +1588,16 @@ jancsika1
 
 
 
-710
+765
 
-expmap~-help.pd
+bmatrix~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-75b5b660179d397fdfb4541bd3933cc4
+2012-05-04T00:49:09.739816Z
+ba637abcc6870a697cb631c299e383df
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1625,16 +1622,16 @@ jancsika1
 
 
 
-623
+749
 
-bitsplit~-help.pd
+cep~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-a23bdb668a25e76082447f080edfd2bc
+2012-05-04T00:49:09.739816Z
+8e0f74aae92245308183e0b13d2c6bd4
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1659,16 +1656,16 @@ jancsika1
 
 
 
-1610
+597
 
-cheby~-help.pd
+ear~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-b2f8bf573a986685e5e0fb6663562c6c
+2012-05-04T00:49:09.739816Z
+9fa11a13829466ebbca4e03da06b7804
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1693,16 +1690,16 @@ jancsika1
 
 
 
-1545
+1360
 
-xfm~-help.pd
+dynwav~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-c4cbae55ae32a83559b90722dcfcc159
+2012-05-04T00:49:09.727816Z
+a5a3969a0e12accf51e33bd8952c2b3f
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1727,16 +1724,16 @@ jancsika1
 
 
 
-3528
+1121
 
-cadd~-help.pd
+lattice3-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-9a12c42e6ca82b94dbb455c0c8de7498
+2012-05-04T00:49:09.739816Z
+f2d2d5d8ec995bca67634e9f0a727fdb
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1761,16 +1758,16 @@ jancsika1
 
 
 
-607
+567
 
-ti_hihat-help.pd
+permut~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-be5c192de48d22853be10a2ef246a3fd
+2012-05-04T00:49:09.727816Z
+6a75396a80ab2554142e72612a018d4f
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1795,16 +1792,16 @@ jancsika1
 
 
 
-704
+973
 
-blop~-help.pd
+scale7-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-44344511253720987ff414f9bc3d7931
+2012-05-04T00:49:09.739816Z
+2d270a5334d4aaebdc8846464d252ad1
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1829,16 +1826,16 @@ jancsika1
 
 
 
-559
+505
 
-eadh~-help.pd
+tblock-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-412593ede774d5da9522f0c1996c74a2
+2012-05-04T00:49:09.739816Z
+06918960252b6e830aad946dc642e3da
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1863,16 +1860,16 @@ jancsika1
 
 
 
-641
+797
 
-ucnorm~-help.pd
+bdft-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-f0fbbb36285eace2d3923c7d88eec206
+2012-05-04T00:49:09.739816Z
+d11aa78f5c12cf3a701c5a48d609d9f9
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1897,16 +1894,16 @@ jancsika1
 
 
 
-619
+493
 
-eadsrh~-help.pd
+bfft~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.731816Z
-531864ac9cf747100751caab7754aa15
+2012-05-04T00:49:09.727816Z
+33493d65878fbd0e77f8aee84b129d2a
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1931,16 +1928,16 @@ jancsika1
 
 
 
-722
+974
 
-icep~-help.pd
+bhip~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-b0c60d68186458c7631980ec76ee40bf
+2012-05-04T00:49:09.727816Z
+827ec3791d331e4551d8fabaeef1e10c
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -1965,19 +1962,19 @@ jancsika1
 
 
 
-617
+599
 
-tabreadmix~-help.pd
+reference.txt
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-46f6a7653e7508453310a177d02928f1
-2010-11-25T01:45:15.898626Z
-14526
-jancsika1
+2012-05-04T00:49:09.727816Z
+5ec58efb37371846a3bed46b35337c75
+2003-09-12T22:26:57.000000Z
+956
+doelie
 
 
 
@@ -1999,16 +1996,16 @@ jancsika1
 
 
 
-1824
+2945
 
-ccmap~-help.pd
+cosc~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-4518c36b65fafe59a149b6de861c44eb
+2012-05-04T00:49:09.727816Z
+cd0ce390ec24aee1c4a3197236cc618c
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2033,16 +2030,19 @@ jancsika1
 
 
 
-684
+619
 
-blocknorm~-help.pd
+examples
+dir
+
+scrollgrid1D~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-ebfe3a049bf8a8b500be6605e65a295c
+2012-05-04T00:49:09.727816Z
+b937cc34d0e79b251a00a6cf12890105
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2067,16 +2067,16 @@ jancsika1
 
 
 
-2588
+4099
 
-fmod-help.pd
+bitsplit~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-9b9ecac13a08a0bf9f9b7f92ea4c6123
+2012-05-04T00:49:09.731816Z
+a23bdb668a25e76082447f080edfd2bc
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2101,16 +2101,16 @@ jancsika1
 
 
 
-561
+1610
 
-junction~-help.pd
+expmap~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-3e9486c1326902e0e7f459f8e9026e4b
+2012-05-04T00:49:09.731816Z
+75b5b660179d397fdfb4541bd3933cc4
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2135,16 +2135,16 @@ jancsika1
 
 
 
-2304
+623
 
-qnorm~-help.pd
+cadd~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-c145974d778126951f193a0948377553
+2012-05-04T00:49:09.731816Z
+9a12c42e6ca82b94dbb455c0c8de7498
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2169,16 +2169,16 @@ jancsika1
 
 
 
-1457
+607
 
-dwt~-help.pd
+blop~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-5f7a5f61711c0e4385f8319dd9d26d91
+2012-05-04T00:49:09.731816Z
+44344511253720987ff414f9bc3d7931
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2203,16 +2203,16 @@ jancsika1
 
 
 
-2768
+559
 
-cexp~-help.pd
+eadsr~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-1b5b8a102c7760c53b51fb0e4dac4de0
+2012-05-04T00:49:09.715816Z
+2af8a7456b6521a3239cdba2e9801cb3
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2237,16 +2237,16 @@ jancsika1
 
 
 
-708
+2046
 
-ffpoly-help.pd
+eadh~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-2ecfd0785ec07a927feb413eb59e6431
+2012-05-04T00:49:09.731816Z
+412593ede774d5da9522f0c1996c74a2
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2271,16 +2271,16 @@ jancsika1
 
 
 
-1457
+641
 
-blosc~-help.pd
+qmult~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.735816Z
-65294fea49a73203974fa4313c08fae7
+2012-05-04T00:49:09.715816Z
+aae79769054b52e14e47573894afd124
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2305,16 +2305,16 @@ jancsika1
 
 
 
-3501
+2303
 
-diag~-help.pd
+ucnorm~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-20e5fe667d3fdeab79c02bbab72717a1
+2012-05-04T00:49:09.731816Z
+f0fbbb36285eace2d3923c7d88eec206
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2339,16 +2339,16 @@ jancsika1
 
 
 
-881
+619
 
-bdfts-help.pd
+eadsrh~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-d8fc7a980e946ebf1bc3655ea2daaa48
+2012-05-04T00:49:09.731816Z
+531864ac9cf747100751caab7754aa15
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2373,16 +2373,16 @@ jancsika1
 
 
 
-529
+722
 
-bmatrix~-help.pd
+ti_snare-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-ba637abcc6870a697cb631c299e383df
+2012-05-04T00:49:09.715816Z
+b54c5f9eff8110bec345609e802a38a0
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2407,16 +2407,16 @@ jancsika1
 
 
 
-749
+729
 
-ear~-help.pd
+bdiag~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-9fa11a13829466ebbca4e03da06b7804
+2012-05-04T00:49:09.715816Z
+6617aaef74c983d66272a94e7c870500
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2441,16 +2441,16 @@ jancsika1
 
 
 
-1360
+3512
 
-cep~-help.pd
+fdn~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-8e0f74aae92245308183e0b13d2c6bd4
+2012-05-04T00:49:09.715816Z
+341955212d10bbd52afee84a4811e468
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2475,16 +2475,16 @@ jancsika1
 
 
 
-597
+2334
 
-lattice3-help.pd
+sbosc~-help.pd
 file
 
 
 
 
-2012-05-04T00:49:09.739816Z
-f2d2d5d8ec995bca67634e9f0a727fdb
+2012-05-04T00:49:09.715816Z
+0b828b488180a2005a0a3a20a9409a72
 2010-11-25T01:45:15.898626Z
 14526
 jancsika1
@@ -2509,5 +2509,5 @@ jancsika1
 
 
 
-567
+1501
 
diff --git a/externals/creb/doc/examples/.svn/entries b/externals/creb/doc/examples/.svn/entries
index ee71f31e33348f7bb4901abebfd59db3bac561d1..246d73064ae70f191ed1d6a03c6567eaf9f6486d 100644
--- a/externals/creb/doc/examples/.svn/entries
+++ b/externals/creb/doc/examples/.svn/entries
@@ -1,7 +1,7 @@
 10
 
 dir
-16135
+16568
 https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/creb/doc/examples
 https://pure-data.svn.sourceforge.net/svnroot/pure-data
 
@@ -26,16 +26,16 @@ doelie
 
 df7eb9d6-776f-4174-a42d-0ffd8d5d5b5d
 
-xfmdelay.pd
+formantdynwav.pd
 file
 
 
 
 
 2012-05-04T00:49:09.711816Z
-c97ba401c3c508bc297ce729e521b962
-2003-01-21T10:18:19.000000Z
-351
+8e9ba76de21c4fa65083e77a91af4a94
+2003-09-12T22:26:57.000000Z
+956
 doelie
 
 
@@ -58,18 +58,18 @@ doelie
 
 
 
-3296
+4470
 
-formantdynwav.pd
+xfmdelay.pd
 file
 
 
 
 
 2012-05-04T00:49:09.711816Z
-8e9ba76de21c4fa65083e77a91af4a94
-2003-09-12T22:26:57.000000Z
-956
+c97ba401c3c508bc297ce729e521b962
+2003-01-21T10:18:19.000000Z
+351
 doelie
 
 
@@ -92,5 +92,5 @@ doelie
 
 
 
-4470
+3296
 
diff --git a/externals/creb/modules++/.svn/all-wcprops b/externals/creb/modules++/.svn/all-wcprops
index 320931c8400b61e1662f10928d589c56e88d48b9..62d7a18b332c4d3a293a744a07e87895348332bc 100644
--- a/externals/creb/modules++/.svn/all-wcprops
+++ b/externals/creb/modules++/.svn/all-wcprops
@@ -1,53 +1,53 @@
 K 25
 svn:wc:ra_dav:version-url
 V 64
-/svnroot/pure-data/!svn/ver/15732/trunk/externals/creb/modules++
+/svnroot/pure-data/!svn/ver/16491/trunk/externals/creb/modules++
 END
-DSPIcomplex.h
+biquadseries~.cc
 K 25
 svn:wc:ra_dav:version-url
-V 78
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/DSPIcomplex.h
+V 81
+/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/biquadseries~.cc
 END
-Makefile
+filterortho~.cc
 K 25
 svn:wc:ra_dav:version-url
-V 72
-/svnroot/pure-data/!svn/ver/5607/trunk/externals/creb/modules++/Makefile
+V 80
+/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/filterortho~.cc
 END
-DSPIfilters.h
+blosc~.cc
 K 25
 svn:wc:ra_dav:version-url
-V 78
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/DSPIfilters.h
+V 74
+/svnroot/pure-data/!svn/ver/16491/trunk/externals/creb/modules++/blosc~.cc
 END
-filters.h
+DSPI.h
 K 25
 svn:wc:ra_dav:version-url
-V 74
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/filters.h
+V 71
+/svnroot/pure-data/!svn/ver/15732/trunk/externals/creb/modules++/DSPI.h
 END
-biquadseries~.cc
+DSPIcomplex.h
 K 25
 svn:wc:ra_dav:version-url
-V 81
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/biquadseries~.cc
+V 78
+/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/DSPIcomplex.h
 END
-filterortho~.cc
+Makefile
 K 25
 svn:wc:ra_dav:version-url
-V 80
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/filterortho~.cc
+V 72
+/svnroot/pure-data/!svn/ver/5607/trunk/externals/creb/modules++/Makefile
 END
-blosc~.cc
+DSPIfilters.h
 K 25
 svn:wc:ra_dav:version-url
-V 74
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/blosc~.cc
+V 78
+/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/DSPIfilters.h
 END
-DSPI.h
+filters.h
 K 25
 svn:wc:ra_dav:version-url
-V 71
-/svnroot/pure-data/!svn/ver/15732/trunk/externals/creb/modules++/DSPI.h
+V 74
+/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules++/filters.h
 END
diff --git a/externals/creb/modules++/.svn/entries b/externals/creb/modules++/.svn/entries
index 5e9926576c1e293dbf5cce0eb48ea9ee4d0641d8..0d8c6c8765e4f3c6abcd7741f84a25f8926beeb8 100644
--- a/externals/creb/modules++/.svn/entries
+++ b/externals/creb/modules++/.svn/entries
@@ -1,15 +1,15 @@
 10
 
 dir
-16135
+16568
 https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/creb/modules++
 https://pure-data.svn.sourceforge.net/svnroot/pure-data
 
 
 
-2011-11-13T13:33:18.051726Z
-15732
-katjav
+2012-10-27T13:58:28.867727Z
+16491
+doelie
 
 
 
@@ -26,14 +26,14 @@ katjav
 
 df7eb9d6-776f-4174-a42d-0ffd8d5d5b5d
 
-filterortho~.cc
+DSPIcomplex.h
 file
 
 
 
 
 2012-05-04T00:49:10.111816Z
-c18a45f2d48bf9dc84e66ea04b9096bf
+a6567bd33c481eab9e9e8b9d18bfbcf7
 2011-11-06T14:41:44.096301Z
 15706
 katjav
@@ -58,19 +58,19 @@ katjav
 
 
 
-4273
+5689
 
-blosc~.cc
+Makefile
 file
 
 
 
 
 2012-05-04T00:49:10.111816Z
-c43e709af9ad50a0ae8352cbff345ac1
-2011-11-06T14:41:44.096301Z
-15706
-katjav
+3785859ab7153359fa6aa0b1e22d4d42
+2006-08-15T15:11:52.000000Z
+5607
+doelie
 
 
 
@@ -92,18 +92,18 @@ katjav
 
 
 
-19659
+117
 
-DSPI.h
+DSPIfilters.h
 file
 
 
 
 
-2012-05-04T00:49:10.111816Z
-76c20c12e5acb54842361100d1556f44
-2011-11-13T13:33:18.051726Z
-15732
+2012-05-04T00:49:10.115816Z
+ae0fd1cf5e1efbcac5018f81da34f236
+2011-11-06T14:41:44.096301Z
+15706
 katjav
 
 
@@ -126,16 +126,16 @@ katjav
 
 
 
-1465
+15572
 
-DSPIcomplex.h
+filters.h
 file
 
 
 
 
-2012-05-04T00:49:10.111816Z
-a6567bd33c481eab9e9e8b9d18bfbcf7
+2012-05-04T00:49:10.115816Z
+8c26939b24162bc89ae8028b11b1b088
 2011-11-06T14:41:44.096301Z
 15706
 katjav
@@ -160,19 +160,19 @@ katjav
 
 
 
-5689
+4616
 
-Makefile
+biquadseries~.cc
 file
 
 
 
 
-2012-05-04T00:49:10.111816Z
-3785859ab7153359fa6aa0b1e22d4d42
-2006-08-15T15:11:52.000000Z
-5607
-doelie
+2012-05-04T00:49:10.107816Z
+3a09eb0239bd139704df8ab23a8e4828
+2011-11-06T14:41:44.096301Z
+15706
+katjav
 
 
 
@@ -194,16 +194,16 @@ doelie
 
 
 
-117
+3316
 
-DSPIfilters.h
+filterortho~.cc
 file
 
 
 
 
-2012-05-04T00:49:10.115816Z
-ae0fd1cf5e1efbcac5018f81da34f236
+2012-05-04T00:49:10.111816Z
+c18a45f2d48bf9dc84e66ea04b9096bf
 2011-11-06T14:41:44.096301Z
 15706
 katjav
@@ -228,19 +228,19 @@ katjav
 
 
 
-15572
+4273
 
-filters.h
+blosc~.cc
 file
 
 
 
 
-2012-05-04T00:49:10.115816Z
-8c26939b24162bc89ae8028b11b1b088
-2011-11-06T14:41:44.096301Z
-15706
-katjav
+2012-11-22T18:49:46.564124Z
+c982e3f6ca7ffc5d407a2b380aead5f7
+2012-10-27T13:58:28.867727Z
+16491
+doelie
 
 
 
@@ -262,18 +262,18 @@ katjav
 
 
 
-4616
+19637
 
-biquadseries~.cc
+DSPI.h
 file
 
 
 
 
-2012-05-04T00:49:10.107816Z
-3a09eb0239bd139704df8ab23a8e4828
-2011-11-06T14:41:44.096301Z
-15706
+2012-05-04T00:49:10.111816Z
+76c20c12e5acb54842361100d1556f44
+2011-11-13T13:33:18.051726Z
+15732
 katjav
 
 
@@ -296,5 +296,5 @@ katjav
 
 
 
-3316
+1465
 
diff --git a/externals/creb/modules++/.svn/text-base/blosc~.cc.svn-base b/externals/creb/modules++/.svn/text-base/blosc~.cc.svn-base
index 9028eaf3427dee756e79969adf41605b76dbee4d..8934904924f05680e837428f367eb0f067e29606 100644
--- a/externals/creb/modules++/.svn/text-base/blosc~.cc.svn-base
+++ b/externals/creb/modules++/.svn/text-base/blosc~.cc.svn-base
@@ -25,13 +25,11 @@
 #include <stdlib.h>
 #include <string.h>  
 
+#include "../modules/extlib_util.h"
 
 #include "DSPIcomplex.h"
 #include "DSPIfilters.h"
 
-typedef unsigned long long u64;
-typedef unsigned long u32;
-
 
 
 #define LPHASOR      (8*sizeof(u32)) // the phasor logsize
@@ -471,7 +469,7 @@ static void blosc_dsp(t_blosc *x, t_signal **sp)
   int n = sp[0]->s_n;
 
   /* set sampling rate scaling for phasors */
-  x->x_ctl.c_phase_inc_scale = 4.0 * (t_float)(1<<(LPHASOR-2)) / sys_getsr();
+  x->x_ctl.c_phase_inc_scale = 4.0 * ((t_float)(1<<(LPHASOR-2))) / sys_getsr();
 
 
   /* setup & register the correct process routine depending on the waveform */
diff --git a/externals/creb/modules++/blosc~.cc b/externals/creb/modules++/blosc~.cc
index fb99af1cf3354677a9a91e035b8faeb0f26bf2fb..8934904924f05680e837428f367eb0f067e29606 100644
--- a/externals/creb/modules++/blosc~.cc
+++ b/externals/creb/modules++/blosc~.cc
@@ -25,18 +25,12 @@
 #include <stdlib.h>
 #include <string.h>  
 
+#include "../modules/extlib_util.h"
 
 #include "DSPIcomplex.h"
 #include "DSPIfilters.h"
 
-#ifdef _WIN32
-typedef unsigned long long u64;
-typedef unsigned long u32;
-#else
-#include <stdint.h>
-typedef uint64_t u64;
-typedef uint32_t u32;
-#endif
+
 
 #define LPHASOR      (8*sizeof(u32)) // the phasor logsize
 #define VOICES       8 // the number of waveform voices
@@ -181,7 +175,6 @@ static void _bang_phasor(t_bloscctl *ctl, t_float freq)
        the increment (and the phase) should be a multiple of S */
     if (inc < 0.0) inc = -inc;
     phase_inc = ((u32)inc) & ~(S-1);
-
     oldphase = phase;
     phase += phase_inc;
 
@@ -476,7 +469,7 @@ static void blosc_dsp(t_blosc *x, t_signal **sp)
   int n = sp[0]->s_n;
 
   /* set sampling rate scaling for phasors */
-  x->x_ctl.c_phase_inc_scale = 4.0 * (t_float)(1<<(LPHASOR-2)) / sys_getsr();
+  x->x_ctl.c_phase_inc_scale = 4.0 * ((t_float)(1<<(LPHASOR-2))) / sys_getsr();
 
 
   /* setup & register the correct process routine depending on the waveform */
diff --git a/externals/creb/modules/.svn/all-wcprops b/externals/creb/modules/.svn/all-wcprops
index 9fdb12c67aa077c8cb9175c0d07d7f6470f1d02a..8cebced621d3283e7415ed9366941714315460e9 100644
--- a/externals/creb/modules/.svn/all-wcprops
+++ b/externals/creb/modules/.svn/all-wcprops
@@ -1,13 +1,13 @@
 K 25
 svn:wc:ra_dav:version-url
 V 62
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules
+/svnroot/pure-data/!svn/ver/16514/trunk/externals/creb/modules
 END
 tabreadmix~.c
 K 25
 svn:wc:ra_dav:version-url
 V 76
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules/tabreadmix~.c
+/svnroot/pure-data/!svn/ver/16491/trunk/externals/creb/modules/tabreadmix~.c
 END
 fwarp.c
 K 25
@@ -60,8 +60,8 @@ END
 Makefile
 K 25
 svn:wc:ra_dav:version-url
-V 70
-/svnroot/pure-data/!svn/ver/5744/trunk/externals/creb/modules/Makefile
+V 71
+/svnroot/pure-data/!svn/ver/16491/trunk/externals/creb/modules/Makefile
 END
 dwt~.c
 K 25
@@ -153,23 +153,23 @@ svn:wc:ra_dav:version-url
 V 73
 /svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules/lattice~.c
 END
-scrollgrid1D~.c
-K 25
-svn:wc:ra_dav:version-url
-V 78
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules/scrollgrid1D~.c
-END
 statwav~.c
 K 25
 svn:wc:ra_dav:version-url
 V 73
 /svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules/statwav~.c
 END
-bitsplit~.c
+scrollgrid1D~.c
 K 25
 svn:wc:ra_dav:version-url
-V 74
-/svnroot/pure-data/!svn/ver/15546/trunk/externals/creb/modules/bitsplit~.c
+V 78
+/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules/scrollgrid1D~.c
+END
+xfm~.c
+K 25
+svn:wc:ra_dav:version-url
+V 69
+/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules/xfm~.c
 END
 cheby~.c
 K 25
@@ -177,17 +177,17 @@ svn:wc:ra_dav:version-url
 V 71
 /svnroot/pure-data/!svn/ver/15546/trunk/externals/creb/modules/cheby~.c
 END
-xfm~.c
+bitsplit~.c
 K 25
 svn:wc:ra_dav:version-url
-V 69
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules/xfm~.c
+V 74
+/svnroot/pure-data/!svn/ver/15546/trunk/externals/creb/modules/bitsplit~.c
 END
 extlib_util.h
 K 25
 svn:wc:ra_dav:version-url
 V 76
-/svnroot/pure-data/!svn/ver/15706/trunk/externals/creb/modules/extlib_util.h
+/svnroot/pure-data/!svn/ver/16514/trunk/externals/creb/modules/extlib_util.h
 END
 eadsr~.c
 K 25
diff --git a/externals/creb/modules/.svn/entries b/externals/creb/modules/.svn/entries
index 46ff1b5a106100179c907723a086139a73f73370..124228e3ed199502be181948be8350bcd6a22544 100644
--- a/externals/creb/modules/.svn/entries
+++ b/externals/creb/modules/.svn/entries
@@ -1,15 +1,15 @@
 10
 
 dir
-16135
+16568
 https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/creb/modules
 https://pure-data.svn.sourceforge.net/svnroot/pure-data
 
 
 
-2011-11-06T14:41:44.096301Z
-15706
-katjav
+2012-11-01T23:47:27.756251Z
+16514
+doelie
 
 
 
@@ -32,11 +32,11 @@ file
 
 
 
-2012-05-04T00:49:09.963816Z
-503e504859103611a81623113308d0f5
-2011-11-06T14:41:44.096301Z
-15706
-katjav
+2012-11-22T18:49:46.612124Z
+0d0c9255338689e15d6aaeb70b4d6355
+2012-10-27T13:58:28.867727Z
+16491
+doelie
 
 
 
@@ -58,7 +58,7 @@ katjav
 
 
 
-7206
+8948
 
 fwarp.c
 file
@@ -128,17 +128,17 @@ eighthave
 
 78
 
-blocknorm~.c
+lattice~.c
 file
 
 
 
 
-2012-05-04T00:49:09.963816Z
-97873e0b6266a7bf43477740d00c8e51
-2011-10-08T17:22:41.487102Z
-15546
-eighthave
+2012-05-04T00:49:09.975816Z
+cad91e72374c748b44aa8467e1267f8b
+2011-11-06T14:41:44.096301Z
+15706
+katjav
 
 
 
@@ -160,7 +160,7 @@ eighthave
 
 
 
-3220
+3528
 
 resofilt~.c
 file
@@ -230,17 +230,17 @@ eighthave
 
 4535
 
-ead~.c
+statwav~.c
 file
 
 
 
 
-2012-05-04T00:49:09.967816Z
-efe696cf268bf50843657db9f5ae16ae
-2011-10-08T17:22:41.487102Z
-15546
-eighthave
+2012-05-04T00:49:09.975816Z
+53b655a8b1d62cf51a2e732682001b3c
+2011-11-06T14:41:44.096301Z
+15706
+katjav
 
 
 
@@ -262,19 +262,19 @@ eighthave
 
 
 
-3837
+4086
 
-qnorm~.c
+cheby~.c
 file
 
 
 
 
-2012-05-04T00:49:09.967816Z
-444fe72f1a84f59b5536a10581c5d9c3
-2006-08-15T15:11:52.000000Z
-5607
-doelie
+2012-05-04T00:49:09.975816Z
+db956f2b08d589b07fab92be0f8bccfc
+2011-10-08T17:22:41.487102Z
+15546
+eighthave
 
 
 
@@ -296,16 +296,16 @@ doelie
 
 
 
-2964
+3313
 
-cmath~.c
+xfm~.c
 file
 
 
 
 
-2012-05-04T00:49:09.967816Z
-1b1cdb00b21bc867753772236ee848d9
+2012-05-04T00:49:09.975816Z
+2bec373cfd67f78996499ba1f2858790
 2011-11-06T14:41:44.096301Z
 15706
 katjav
@@ -330,19 +330,53 @@ katjav
 
 
 
-4410
+5517
 
-Makefile
+eadsr~.c
+file
+
+
+
+
+2012-05-04T00:49:09.975816Z
+acef2e1456c15c3235c2dbb20a75f7b8
+2011-10-08T17:22:41.487102Z
+15546
+eighthave
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+4713
+
+cexp~.c
 file
 
 
 
 
 2012-05-04T00:49:09.967816Z
-dc8c506aad24797347a52d528f336454
-2006-08-25T23:07:37.000000Z
-5744
-doelie
+ceb88426ff4294a1f1908382313eb6bf
+2010-04-09T19:19:56.000123Z
+13415
+eighthave
 
 
 
@@ -364,16 +398,16 @@ doelie
 
 
 
-429
+78
 
-dwt~.c
+bwin~.c
 file
 
 
 
 
 2012-05-04T00:49:09.967816Z
-b5262c97d21a630788641689125bb712
+bb2f1d140c3af7e0c7eae3f9ad505615
 2011-11-06T14:41:44.096301Z
 15706
 katjav
@@ -398,7 +432,7 @@ katjav
 
 
 
-19860
+4313
 
 ramp~.c
 file
@@ -434,17 +468,17 @@ katjav
 
 2561
 
-bwin~.c
+qmult~.c
 file
 
 
 
 
-2012-05-04T00:49:09.967816Z
-bb2f1d140c3af7e0c7eae3f9ad505615
-2011-11-06T14:41:44.096301Z
-15706
-katjav
+2012-05-04T00:49:09.959816Z
+2e1e9a070184b9d5f742b817bd820512
+2006-08-15T15:11:52.000000Z
+5607
+doelie
 
 
 
@@ -466,18 +500,18 @@ katjav
 
 
 
-4313
+3470
 
-cexp~.c
+dist~.c
 file
 
 
 
 
-2012-05-04T00:49:09.967816Z
-ceb88426ff4294a1f1908382313eb6bf
-2010-04-09T19:19:56.000123Z
-13415
+2012-05-04T00:49:09.971816Z
+11977d48356a0eb39afad16056dfd7b3
+2011-10-08T17:22:41.487102Z
+15546
 eighthave
 
 
@@ -500,19 +534,19 @@ eighthave
 
 
 
-78
+5053
 
-ffpoly.c
+diag~.c
 file
 
 
 
 
 2012-05-04T00:49:09.971816Z
-c900efa1f819c3a586d124c52778027c
-2011-10-08T17:22:41.487102Z
-15546
-eighthave
+7d548535931326b11700fa0156f1a82f
+2011-11-06T14:41:44.096301Z
+15706
+katjav
 
 
 
@@ -534,16 +568,16 @@ eighthave
 
 
 
-3706
+4577
 
-dist~.c
+abs~.c
 file
 
 
 
 
-2012-05-04T00:49:09.971816Z
-11977d48356a0eb39afad16056dfd7b3
+2012-05-04T00:49:09.963816Z
+0fc7fc4cc2b4a7752bd748e611fee73b
 2011-10-08T17:22:41.487102Z
 15546
 eighthave
@@ -568,16 +602,16 @@ eighthave
 
 
 
-5053
+1098
 
-diag~.c
+bdiag~.c
 file
 
 
 
 
-2012-05-04T00:49:09.971816Z
-7d548535931326b11700fa0156f1a82f
+2012-05-04T00:49:09.963816Z
+3e4779e5482a060e127b697e058be223
 2011-11-06T14:41:44.096301Z
 15706
 katjav
@@ -602,19 +636,19 @@ katjav
 
 
 
-4577
+5994
 
-bmatrix~.c
+fdn~.c
 file
 
 
 
 
-2012-05-04T00:49:09.971816Z
-2ef881c381d0c6005a93c86e3f4b405a
-2011-10-08T17:22:41.487102Z
-15546
-eighthave
+2012-05-04T00:49:09.963816Z
+bb8c29f9ea6039977155fdd1a8d706d8
+2011-11-06T14:41:44.096301Z
+15706
+katjav
 
 
 
@@ -636,19 +670,19 @@ eighthave
 
 
 
-3583
+12032
 
-ear~.c
+dynwav~.c
 file
 
 
 
 
 2012-05-04T00:49:09.971816Z
-4a4c5619c04835ed5d993b91506dbdd5
-2011-10-08T17:22:41.487102Z
-15546
-eighthave
+a2c4cfbe45361740e220037ca85a2644
+2011-11-06T14:41:44.096301Z
+15706
+katjav
 
 
 
@@ -670,16 +704,16 @@ eighthave
 
 
 
-3557
+7183
 
-dynwav~.c
+sbosc~.c
 file
 
 
 
 
-2012-05-04T00:49:09.971816Z
-a2c4cfbe45361740e220037ca85a2644
+2012-05-04T00:49:09.963816Z
+90c6082e6b1b47f052ebe4a92b33334b
 2011-11-06T14:41:44.096301Z
 15706
 katjav
@@ -704,7 +738,7 @@ katjav
 
 
 
-7183
+4887
 
 permut~.c
 file
@@ -842,17 +876,17 @@ eighthave
 
 6361
 
-lattice~.c
+blocknorm~.c
 file
 
 
 
 
-2012-05-04T00:49:09.975816Z
-cad91e72374c748b44aa8467e1267f8b
-2011-11-06T14:41:44.096301Z
-15706
-katjav
+2012-05-04T00:49:09.963816Z
+97873e0b6266a7bf43477740d00c8e51
+2011-10-08T17:22:41.487102Z
+15546
+eighthave
 
 
 
@@ -874,7 +908,7 @@ katjav
 
 
 
-3528
+3220
 
 scrollgrid1D~.c
 file
@@ -910,17 +944,17 @@ katjav
 
 5572
 
-statwav~.c
+ead~.c
 file
 
 
 
 
-2012-05-04T00:49:09.975816Z
-53b655a8b1d62cf51a2e732682001b3c
-2011-11-06T14:41:44.096301Z
-15706
-katjav
+2012-05-04T00:49:09.967816Z
+efe696cf268bf50843657db9f5ae16ae
+2011-10-08T17:22:41.487102Z
+15546
+eighthave
 
 
 
@@ -942,7 +976,7 @@ katjav
 
 
 
-4086
+3837
 
 bitsplit~.c
 file
@@ -978,17 +1012,17 @@ eighthave
 
 2712
 
-cheby~.c
+extlib_util.h
 file
 
 
 
 
-2012-05-04T00:49:09.975816Z
-db956f2b08d589b07fab92be0f8bccfc
-2011-10-08T17:22:41.487102Z
-15546
-eighthave
+2012-11-22T18:49:46.614124Z
+4713f468c25b8ea05ca7f48b81508a55
+2012-11-01T23:47:27.756251Z
+16514
+doelie
 
 
 
@@ -1010,19 +1044,19 @@ eighthave
 
 
 
-3313
+3037
 
-xfm~.c
+qnorm~.c
 file
 
 
 
 
-2012-05-04T00:49:09.975816Z
-2bec373cfd67f78996499ba1f2858790
-2011-11-06T14:41:44.096301Z
-15706
-katjav
+2012-05-04T00:49:09.967816Z
+444fe72f1a84f59b5536a10581c5d9c3
+2006-08-15T15:11:52.000000Z
+5607
+doelie
 
 
 
@@ -1044,16 +1078,16 @@ katjav
 
 
 
-5517
+2964
 
-extlib_util.h
+cmath~.c
 file
 
 
 
 
-2012-05-04T00:49:09.975816Z
-4ea2f0a7e88904d1f18a5fd50d99235b
+2012-05-04T00:49:09.967816Z
+1b1cdb00b21bc867753772236ee848d9
 2011-11-06T14:41:44.096301Z
 15706
 katjav
@@ -1078,19 +1112,19 @@ katjav
 
 
 
-2131
+4410
 
-eadsr~.c
+Makefile
 file
 
 
 
 
-2012-05-04T00:49:09.975816Z
-acef2e1456c15c3235c2dbb20a75f7b8
-2011-10-08T17:22:41.487102Z
-15546
-eighthave
+2012-11-22T18:49:46.613124Z
+e836312ba686079e15519b7eeb88d1da
+2012-10-27T13:58:28.867727Z
+16491
+doelie
 
 
 
@@ -1112,19 +1146,19 @@ eighthave
 
 
 
-4713
+445
 
-qmult~.c
+dwt~.c
 file
 
 
 
 
-2012-05-04T00:49:09.959816Z
-2e1e9a070184b9d5f742b817bd820512
-2006-08-15T15:11:52.000000Z
-5607
-doelie
+2012-05-04T00:49:09.967816Z
+b5262c97d21a630788641689125bb712
+2011-11-06T14:41:44.096301Z
+15706
+katjav
 
 
 
@@ -1146,16 +1180,16 @@ doelie
 
 
 
-3470
+19860
 
-abs~.c
+ffpoly.c
 file
 
 
 
 
-2012-05-04T00:49:09.963816Z
-0fc7fc4cc2b4a7752bd748e611fee73b
+2012-05-04T00:49:09.971816Z
+c900efa1f819c3a586d124c52778027c
 2011-10-08T17:22:41.487102Z
 15546
 eighthave
@@ -1180,19 +1214,19 @@ eighthave
 
 
 
-1098
+3706
 
-bdiag~.c
+bmatrix~.c
 file
 
 
 
 
-2012-05-04T00:49:09.963816Z
-3e4779e5482a060e127b697e058be223
-2011-11-06T14:41:44.096301Z
-15706
-katjav
+2012-05-04T00:49:09.971816Z
+2ef881c381d0c6005a93c86e3f4b405a
+2011-10-08T17:22:41.487102Z
+15546
+eighthave
 
 
 
@@ -1214,19 +1248,19 @@ katjav
 
 
 
-5994
+3583
 
-fdn~.c
+ear~.c
 file
 
 
 
 
-2012-05-04T00:49:09.963816Z
-bb8c29f9ea6039977155fdd1a8d706d8
-2011-11-06T14:41:44.096301Z
-15706
-katjav
+2012-05-04T00:49:09.971816Z
+4a4c5619c04835ed5d993b91506dbdd5
+2011-10-08T17:22:41.487102Z
+15546
+eighthave
 
 
 
@@ -1248,7 +1282,7 @@ katjav
 
 
 
-12032
+3557
 
 eblosc~.c
 file
@@ -1284,37 +1318,3 @@ eighthave
 
 15063
 
-sbosc~.c
-file
-
-
-
-
-2012-05-04T00:49:09.963816Z
-90c6082e6b1b47f052ebe4a92b33334b
-2011-11-06T14:41:44.096301Z
-15706
-katjav
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-4887
-
diff --git a/externals/creb/modules/.svn/text-base/Makefile.svn-base b/externals/creb/modules/.svn/text-base/Makefile.svn-base
index 91f89fae0008cf7326eed9ca690338dde505ce8f..b46ab85e42fe33b45d3ac8c29fef9dbdba88f5d6 100644
--- a/externals/creb/modules/.svn/text-base/Makefile.svn-base
+++ b/externals/creb/modules/.svn/text-base/Makefile.svn-base
@@ -6,9 +6,10 @@ current: ead~.o ear~.o eadsr~.o dist~.o \
         bfft~.o dynwav~.o statwav~.o bdiag~.o \
 	diag~.o matrix~.o permut~.o lattice~.o ratio.o ffpoly.o fwarp.o \
 	junction~.o fdn~.o bwin~.o eblosc~.o bitsplit~.o sbosc~.o \
-	blocknorm~.o resofilt~.o scrollgrid1D~.o \
+	blocknorm~.o resofilt~.o scrollgrid1D~.o  \
 	\
 	dwt.o cmath.o \
+	sawtooth~.o \
 	\
 	setup.o
 
diff --git a/externals/creb/modules/.svn/text-base/extlib_util.h.svn-base b/externals/creb/modules/.svn/text-base/extlib_util.h.svn-base
index 6261e392820c4e84e6b851e3c6d3c83f78be75c1..50b0c20da4e4ef4657d6741234541d5752d60963 100644
--- a/externals/creb/modules/.svn/text-base/extlib_util.h.svn-base
+++ b/externals/creb/modules/.svn/text-base/extlib_util.h.svn-base
@@ -23,6 +23,39 @@
 #include <math.h>
 #include "m_pd.h"
 
+// __COUNTER__ is a CPP extension enabled in gcc >= 4.3
+#if defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ >= 3
+#define HAVE_COUNTER
+#endif
+#if defined __GNUC__ && __GNUC__ >= 5
+#define HAVE_COUNTER
+#endif
+#ifdef __clang__ // Should we check version here?
+#define HAVE_COUNTER
+#endif
+#ifndef HAVE_COUNTER
+#warning CT_ASSERT() disabled
+#define CT_ASSERT(...)
+#else
+#define CT_NAMED_ASSERT(name,x)                         \
+    typedef int _GENSYM(name ## _ctassert_)[-((x)==0)]
+#define CT_ASSERT(x) CT_NAMED_ASSERT(,x)
+#define _GENSYM(x) _CONCAT(x,__COUNTER__)
+#define _CONCAT1(x,y) x##y
+#define _CONCAT(x,y) _CONCAT1(x,y)
+#endif
+
+/* Only defined in pd-extended. */
+#ifndef PD_FLOAT_PRECISION
+#define PD_FLOAT_PRECISION 32
+#endif
+
+/* http://www.unix.org/version2/whatsnew/lp64_wp.html */
+typedef unsigned long long u64;
+typedef unsigned int u32;
+CT_ASSERT(sizeof(u32)==4);
+CT_ASSERT(sizeof(u64)==8);
+
 /* envelope stuff */
 
 /* exponential range for envelopes is 60dB */
@@ -70,6 +103,7 @@ typedef union
 #define IS_DENORMAL(f) (((((t_flint)(f)).i[1]) & 0x7ff00000) == 0)
 
 #endif // endif PD_FLOAT_PRECISION
+
 #else   // if not defined(__i386__) || defined(__x86_64__)
 #define IS_DENORMAL(f) 0
 #endif // end if defined(__i386__) || defined(__x86_64__)
diff --git a/externals/creb/modules/.svn/text-base/tabreadmix~.c.svn-base b/externals/creb/modules/.svn/text-base/tabreadmix~.c.svn-base
index 74940a2621d9b57ddebd766f5462b3a54e961d08..d122eea847a417c1c3de2865c7360b4f801ecebd 100644
--- a/externals/creb/modules/.svn/text-base/tabreadmix~.c.svn-base
+++ b/externals/creb/modules/.svn/text-base/tabreadmix~.c.svn-base
@@ -1,6 +1,9 @@
 /*
  *   tabreadmix.c  -  an overlap add tabread~ clone
+ *
  *   Copyright (c) 2000-2003 by Tom Schouten
+ *   Additional code (audiorate, wrap messages) copyright (c) 2008 by
+ *   Damian Stewart, damian [at] frey [dot] co [dot] nz
  *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
@@ -32,8 +35,9 @@ typedef struct _tabreadmix_tilde
     t_float x_f;
 
     /* file position vars */
-    int x_currpos;
-    int x_prevpos;
+    t_float x_currpos;
+    t_float x_prevpos;
+    t_float x_posinc;
     
     /* cross fader state vars */
     int x_xfade_size;
@@ -42,6 +46,12 @@ typedef struct _tabreadmix_tilde
     t_float x_xfade_sin;
     t_float x_xfade_state_c;
     t_float x_xfade_state_s;
+    
+    /* wrap start and end */
+    int x_wrap_start;
+    int x_wrap_end;
+    int x_wrap_length;
+    
 
 } t_tabreadmix_tilde;
 
@@ -49,22 +59,23 @@ typedef struct _tabreadmix_tilde
 
 inline void tabreadmix_tilde_wrapindices(t_tabreadmix_tilde *x)
 {
-    int max;
 
     /* modulo */
-    x->x_currpos %= x->x_npoints;
-    x->x_prevpos %= x->x_npoints;
+    while ( x->x_currpos > x->x_wrap_end )
+	x->x_currpos -= x->x_wrap_length;
+    while ( x->x_prevpos > x->x_wrap_end )
+	x->x_prevpos -= x->x_wrap_length;
 
     /* make sure 0<=..<x->x_npoints */
     //if (x->x_currpos < 0) x->x_currpos += x->x_npoints;
     //if (x->x_prevpos < 0) x->x_prevpos += x->x_npoints;
     x->x_currpos += (x->x_currpos < 0) * x->x_npoints;
     x->x_prevpos += (x->x_prevpos < 0) * x->x_npoints;
-
+    
+    
 }
 
 
-
 #define min(x,y) ((x)<(y)?(x):(y))
 
 static t_int *tabreadmix_tilde_perform(t_int *w)
@@ -82,7 +93,8 @@ static t_int *tabreadmix_tilde_perform(t_int *w)
     int leftover;
     int newpos = (int)*pos;
 
-    maxxindex = x->x_npoints;
+//    maxxindex = x->x_npoints;
+    maxxindex = x->x_wrap_end;
     if (!buf) goto zero;
     if (maxxindex <= 0) goto zero;
 
@@ -103,14 +115,13 @@ static t_int *tabreadmix_tilde_perform(t_int *w)
 
 	    /* mix and write */
 	    newpos = (int)(*pos++);
-	    *out++ = currgain * buf[x->x_currpos++] 
-		+ prevgain * buf[x->x_prevpos++];
+	    *out++ = currgain * buf[(int)x->x_currpos] + prevgain * buf[(int)x->x_prevpos];	    
+	    x->x_currpos += x->x_posinc;
+	    x->x_prevpos += x->x_posinc;
 	    
 	    /* advance oscillator */
-	    c =   x->x_xfade_state_c * x->x_xfade_cos 
-		- x->x_xfade_state_s * x->x_xfade_sin;
-	    s =   x->x_xfade_state_c * x->x_xfade_sin 
-		+ x->x_xfade_state_s * x->x_xfade_cos;
+	    c =  x->x_xfade_state_c * x->x_xfade_cos -  x->x_xfade_state_s * x->x_xfade_sin;
+	    s =  x->x_xfade_state_c * x->x_xfade_sin +  x->x_xfade_state_s * x->x_xfade_cos;
 	    x->x_xfade_state_c = c;
 	    x->x_xfade_state_s = s;
 	}
@@ -145,9 +156,12 @@ static void tabreadmix_tilde_blocksize(t_tabreadmix_tilde *x, t_float size)
 {
     double prev_phase;
     int max;
-    t_float fmax = (t_float)x->x_npoints * 0.5;
+
+    t_float fmax = (t_float)x->x_wrap_length * 0.5;
 
     if (size < 1.0) size = 1.0;
+//    post( "got input size %f\n", size );
+    
 
     prev_phase = (double)x->x_xfade_phase;
     prev_phase *= size;
@@ -173,6 +187,23 @@ static void tabreadmix_tilde_blocksize(t_tabreadmix_tilde *x, t_float size)
 
 
 
+}
+
+void tabreadmix_tilde_wrap(t_tabreadmix_tilde *x, t_float start, t_float end )
+{
+    if ( start > end )
+    	error( "tabreadmix~: wrap: start %i must be lower than end %i", (int)start, (int)end );
+    else if ( 0 > start || start > x->x_npoints )
+    	error( "tabreadmix~: wrap: start %i must be between 0 and bufsize (%d)", (int)start, (int)x->x_npoints );
+    else if ( 0 > end || end > x->x_npoints )
+    	error( "tabreadmix~: wrap: end %i must be between 0 and bufsize (%d)", (int)end, (int)x->x_npoints );
+    else
+    {
+    	x->x_wrap_start = start;
+    	x->x_wrap_end = end;
+    	x->x_wrap_length = end - start;
+    }
+    
 }
 
 void tabreadmix_tilde_pitch(t_tabreadmix_tilde *x, t_float f)
@@ -182,6 +213,15 @@ void tabreadmix_tilde_pitch(t_tabreadmix_tilde *x, t_float f)
     tabreadmix_tilde_blocksize(x, sys_getsr() / f);
 }
 
+
+void tabreadmix_tilde_audiorate(t_tabreadmix_tilde *x, t_float f)
+{
+    if ( f<0.001 ) f = 0.001;
+
+    x->x_posinc = f;
+}
+
+
 void tabreadmix_tilde_chunks(t_tabreadmix_tilde *x, t_float f)
 {
     if (f < 1.0) f = 1.0;
@@ -197,6 +237,7 @@ void tabreadmix_tilde_bang(t_tabreadmix_tilde *x, t_float f)
 void tabreadmix_tilde_set(t_tabreadmix_tilde *x, t_symbol *s)
 {
     t_garray *a;
+    int old_npoints = x->x_npoints;
     
     x->x_arrayname = s;
     if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
@@ -212,6 +253,14 @@ void tabreadmix_tilde_set(t_tabreadmix_tilde *x, t_symbol *s)
     }
     else garray_usedindsp(a);
 
+    // reset wrappage
+    if ( old_npoints != x->x_npoints )
+    {
+        x->x_wrap_start = 0;
+        x->x_wrap_end = x->x_npoints;
+        x->x_wrap_length = x->x_npoints;
+    }
+
     /* make sure indices are inside array */
     if (x->x_npoints == 0){
 	x->x_currpos = 0;
@@ -247,6 +296,7 @@ static void *tabreadmix_tilde_new(t_symbol *s)
     x->x_xfade_size = 1024;
     x->x_currpos = 0;
     x->x_prevpos = 0;
+    x->x_posinc = 1.0;
     x->x_xfade_state_c = 0.5;
     x->x_xfade_state_s = 0.0;
     tabreadmix_tilde_blocksize(x, 1024);
@@ -269,6 +319,11 @@ void tabreadmix_tilde_setup(void)
         gensym("pitch"), A_FLOAT, 0);
     class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_chunks,
         gensym("chunks"), A_FLOAT, 0);
+    class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_audiorate,
+	gensym("audiorate"), A_FLOAT, 0 );
+    class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_wrap,
+	gensym("wrap"), A_FLOAT, A_FLOAT, 0 );	
     class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_bang,
         gensym("bang"), 0);
+    
 }
diff --git a/externals/creb/modules/Makefile b/externals/creb/modules/Makefile
index 91f89fae0008cf7326eed9ca690338dde505ce8f..b46ab85e42fe33b45d3ac8c29fef9dbdba88f5d6 100644
--- a/externals/creb/modules/Makefile
+++ b/externals/creb/modules/Makefile
@@ -6,9 +6,10 @@ current: ead~.o ear~.o eadsr~.o dist~.o \
         bfft~.o dynwav~.o statwav~.o bdiag~.o \
 	diag~.o matrix~.o permut~.o lattice~.o ratio.o ffpoly.o fwarp.o \
 	junction~.o fdn~.o bwin~.o eblosc~.o bitsplit~.o sbosc~.o \
-	blocknorm~.o resofilt~.o scrollgrid1D~.o \
+	blocknorm~.o resofilt~.o scrollgrid1D~.o  \
 	\
 	dwt.o cmath.o \
+	sawtooth~.o \
 	\
 	setup.o
 
diff --git a/externals/creb/modules/extlib_util.h b/externals/creb/modules/extlib_util.h
index 6261e392820c4e84e6b851e3c6d3c83f78be75c1..50b0c20da4e4ef4657d6741234541d5752d60963 100644
--- a/externals/creb/modules/extlib_util.h
+++ b/externals/creb/modules/extlib_util.h
@@ -23,6 +23,39 @@
 #include <math.h>
 #include "m_pd.h"
 
+// __COUNTER__ is a CPP extension enabled in gcc >= 4.3
+#if defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ >= 3
+#define HAVE_COUNTER
+#endif
+#if defined __GNUC__ && __GNUC__ >= 5
+#define HAVE_COUNTER
+#endif
+#ifdef __clang__ // Should we check version here?
+#define HAVE_COUNTER
+#endif
+#ifndef HAVE_COUNTER
+#warning CT_ASSERT() disabled
+#define CT_ASSERT(...)
+#else
+#define CT_NAMED_ASSERT(name,x)                         \
+    typedef int _GENSYM(name ## _ctassert_)[-((x)==0)]
+#define CT_ASSERT(x) CT_NAMED_ASSERT(,x)
+#define _GENSYM(x) _CONCAT(x,__COUNTER__)
+#define _CONCAT1(x,y) x##y
+#define _CONCAT(x,y) _CONCAT1(x,y)
+#endif
+
+/* Only defined in pd-extended. */
+#ifndef PD_FLOAT_PRECISION
+#define PD_FLOAT_PRECISION 32
+#endif
+
+/* http://www.unix.org/version2/whatsnew/lp64_wp.html */
+typedef unsigned long long u64;
+typedef unsigned int u32;
+CT_ASSERT(sizeof(u32)==4);
+CT_ASSERT(sizeof(u64)==8);
+
 /* envelope stuff */
 
 /* exponential range for envelopes is 60dB */
@@ -70,6 +103,7 @@ typedef union
 #define IS_DENORMAL(f) (((((t_flint)(f)).i[1]) & 0x7ff00000) == 0)
 
 #endif // endif PD_FLOAT_PRECISION
+
 #else   // if not defined(__i386__) || defined(__x86_64__)
 #define IS_DENORMAL(f) 0
 #endif // end if defined(__i386__) || defined(__x86_64__)
diff --git a/externals/creb/modules/tabreadmix~.c b/externals/creb/modules/tabreadmix~.c
index 74940a2621d9b57ddebd766f5462b3a54e961d08..d122eea847a417c1c3de2865c7360b4f801ecebd 100644
--- a/externals/creb/modules/tabreadmix~.c
+++ b/externals/creb/modules/tabreadmix~.c
@@ -1,6 +1,9 @@
 /*
  *   tabreadmix.c  -  an overlap add tabread~ clone
+ *
  *   Copyright (c) 2000-2003 by Tom Schouten
+ *   Additional code (audiorate, wrap messages) copyright (c) 2008 by
+ *   Damian Stewart, damian [at] frey [dot] co [dot] nz
  *
  *   This program is free software; you can redistribute it and/or modify
  *   it under the terms of the GNU General Public License as published by
@@ -32,8 +35,9 @@ typedef struct _tabreadmix_tilde
     t_float x_f;
 
     /* file position vars */
-    int x_currpos;
-    int x_prevpos;
+    t_float x_currpos;
+    t_float x_prevpos;
+    t_float x_posinc;
     
     /* cross fader state vars */
     int x_xfade_size;
@@ -42,6 +46,12 @@ typedef struct _tabreadmix_tilde
     t_float x_xfade_sin;
     t_float x_xfade_state_c;
     t_float x_xfade_state_s;
+    
+    /* wrap start and end */
+    int x_wrap_start;
+    int x_wrap_end;
+    int x_wrap_length;
+    
 
 } t_tabreadmix_tilde;
 
@@ -49,22 +59,23 @@ typedef struct _tabreadmix_tilde
 
 inline void tabreadmix_tilde_wrapindices(t_tabreadmix_tilde *x)
 {
-    int max;
 
     /* modulo */
-    x->x_currpos %= x->x_npoints;
-    x->x_prevpos %= x->x_npoints;
+    while ( x->x_currpos > x->x_wrap_end )
+	x->x_currpos -= x->x_wrap_length;
+    while ( x->x_prevpos > x->x_wrap_end )
+	x->x_prevpos -= x->x_wrap_length;
 
     /* make sure 0<=..<x->x_npoints */
     //if (x->x_currpos < 0) x->x_currpos += x->x_npoints;
     //if (x->x_prevpos < 0) x->x_prevpos += x->x_npoints;
     x->x_currpos += (x->x_currpos < 0) * x->x_npoints;
     x->x_prevpos += (x->x_prevpos < 0) * x->x_npoints;
-
+    
+    
 }
 
 
-
 #define min(x,y) ((x)<(y)?(x):(y))
 
 static t_int *tabreadmix_tilde_perform(t_int *w)
@@ -82,7 +93,8 @@ static t_int *tabreadmix_tilde_perform(t_int *w)
     int leftover;
     int newpos = (int)*pos;
 
-    maxxindex = x->x_npoints;
+//    maxxindex = x->x_npoints;
+    maxxindex = x->x_wrap_end;
     if (!buf) goto zero;
     if (maxxindex <= 0) goto zero;
 
@@ -103,14 +115,13 @@ static t_int *tabreadmix_tilde_perform(t_int *w)
 
 	    /* mix and write */
 	    newpos = (int)(*pos++);
-	    *out++ = currgain * buf[x->x_currpos++] 
-		+ prevgain * buf[x->x_prevpos++];
+	    *out++ = currgain * buf[(int)x->x_currpos] + prevgain * buf[(int)x->x_prevpos];	    
+	    x->x_currpos += x->x_posinc;
+	    x->x_prevpos += x->x_posinc;
 	    
 	    /* advance oscillator */
-	    c =   x->x_xfade_state_c * x->x_xfade_cos 
-		- x->x_xfade_state_s * x->x_xfade_sin;
-	    s =   x->x_xfade_state_c * x->x_xfade_sin 
-		+ x->x_xfade_state_s * x->x_xfade_cos;
+	    c =  x->x_xfade_state_c * x->x_xfade_cos -  x->x_xfade_state_s * x->x_xfade_sin;
+	    s =  x->x_xfade_state_c * x->x_xfade_sin +  x->x_xfade_state_s * x->x_xfade_cos;
 	    x->x_xfade_state_c = c;
 	    x->x_xfade_state_s = s;
 	}
@@ -145,9 +156,12 @@ static void tabreadmix_tilde_blocksize(t_tabreadmix_tilde *x, t_float size)
 {
     double prev_phase;
     int max;
-    t_float fmax = (t_float)x->x_npoints * 0.5;
+
+    t_float fmax = (t_float)x->x_wrap_length * 0.5;
 
     if (size < 1.0) size = 1.0;
+//    post( "got input size %f\n", size );
+    
 
     prev_phase = (double)x->x_xfade_phase;
     prev_phase *= size;
@@ -173,6 +187,23 @@ static void tabreadmix_tilde_blocksize(t_tabreadmix_tilde *x, t_float size)
 
 
 
+}
+
+void tabreadmix_tilde_wrap(t_tabreadmix_tilde *x, t_float start, t_float end )
+{
+    if ( start > end )
+    	error( "tabreadmix~: wrap: start %i must be lower than end %i", (int)start, (int)end );
+    else if ( 0 > start || start > x->x_npoints )
+    	error( "tabreadmix~: wrap: start %i must be between 0 and bufsize (%d)", (int)start, (int)x->x_npoints );
+    else if ( 0 > end || end > x->x_npoints )
+    	error( "tabreadmix~: wrap: end %i must be between 0 and bufsize (%d)", (int)end, (int)x->x_npoints );
+    else
+    {
+    	x->x_wrap_start = start;
+    	x->x_wrap_end = end;
+    	x->x_wrap_length = end - start;
+    }
+    
 }
 
 void tabreadmix_tilde_pitch(t_tabreadmix_tilde *x, t_float f)
@@ -182,6 +213,15 @@ void tabreadmix_tilde_pitch(t_tabreadmix_tilde *x, t_float f)
     tabreadmix_tilde_blocksize(x, sys_getsr() / f);
 }
 
+
+void tabreadmix_tilde_audiorate(t_tabreadmix_tilde *x, t_float f)
+{
+    if ( f<0.001 ) f = 0.001;
+
+    x->x_posinc = f;
+}
+
+
 void tabreadmix_tilde_chunks(t_tabreadmix_tilde *x, t_float f)
 {
     if (f < 1.0) f = 1.0;
@@ -197,6 +237,7 @@ void tabreadmix_tilde_bang(t_tabreadmix_tilde *x, t_float f)
 void tabreadmix_tilde_set(t_tabreadmix_tilde *x, t_symbol *s)
 {
     t_garray *a;
+    int old_npoints = x->x_npoints;
     
     x->x_arrayname = s;
     if (!(a = (t_garray *)pd_findbyclass(x->x_arrayname, garray_class)))
@@ -212,6 +253,14 @@ void tabreadmix_tilde_set(t_tabreadmix_tilde *x, t_symbol *s)
     }
     else garray_usedindsp(a);
 
+    // reset wrappage
+    if ( old_npoints != x->x_npoints )
+    {
+        x->x_wrap_start = 0;
+        x->x_wrap_end = x->x_npoints;
+        x->x_wrap_length = x->x_npoints;
+    }
+
     /* make sure indices are inside array */
     if (x->x_npoints == 0){
 	x->x_currpos = 0;
@@ -247,6 +296,7 @@ static void *tabreadmix_tilde_new(t_symbol *s)
     x->x_xfade_size = 1024;
     x->x_currpos = 0;
     x->x_prevpos = 0;
+    x->x_posinc = 1.0;
     x->x_xfade_state_c = 0.5;
     x->x_xfade_state_s = 0.0;
     tabreadmix_tilde_blocksize(x, 1024);
@@ -269,6 +319,11 @@ void tabreadmix_tilde_setup(void)
         gensym("pitch"), A_FLOAT, 0);
     class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_chunks,
         gensym("chunks"), A_FLOAT, 0);
+    class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_audiorate,
+	gensym("audiorate"), A_FLOAT, 0 );
+    class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_wrap,
+	gensym("wrap"), A_FLOAT, A_FLOAT, 0 );	
     class_addmethod(tabreadmix_tilde_class, (t_method)tabreadmix_tilde_bang,
         gensym("bang"), 0);
+    
 }
diff --git a/externals/creb/unittests/.svn/entries b/externals/creb/unittests/.svn/entries
index 81f33179f721ec1535bdb3364776a1b844c11415..509e84d7ae404bab79557c72d724ab0712d33351 100644
--- a/externals/creb/unittests/.svn/entries
+++ b/externals/creb/unittests/.svn/entries
@@ -1,7 +1,7 @@
 10
 
 dir
-16135
+16568
 https://pure-data.svn.sourceforge.net/svnroot/pure-data/trunk/externals/creb/unittests
 https://pure-data.svn.sourceforge.net/svnroot/pure-data
 
@@ -26,18 +26,17 @@ katjav
 
 df7eb9d6-776f-4174-a42d-0ffd8d5d5b5d
 
-biquadseries~10.wav
+scrollgrid1D~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.331816Z
-f2bd201c1d8bc3e4ede5ae953a3839c1
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.307816Z
+968020e0cbd3fa81a6d339324699f506
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -58,20 +57,20 @@ has-props
 
 
 
-2092
+
+893
 
-bfft~.wav
+bitsplit~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.331816Z
-3255ccbb75850820725f33d9db5ee136
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.307816Z
+b8028aecada32587bb0841de6b9ab1d2
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -92,16 +91,17 @@ has-props
 
 
 
-2092
+
+316
 
-ramp~-unittest.pd
+dwt~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.331816Z
-cfee41528e988a297479704f83229d1b
+2012-05-04T00:49:09.315816Z
+d7cec3e263637d16abd6e5c7963045df
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -126,19 +126,20 @@ katjav
 
 
 
-712
+309
 
-bwin~-unittest.pd
+cheby~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.331816Z
-360ee346905105b4f99e8a06ec52c0e7
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.303816Z
+cc3667af31bb20cefcc560354f3bafd5
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -159,17 +160,16 @@ katjav
 
 
 
-
-248
+2092
 
-filterortho~-unittest.pd
+ear~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.335816Z
-bede0b8a87e5e18438f0bd6a98e6d46a
+2012-05-04T00:49:09.319816Z
+86a58ba81cf1fd33d2ca3a230389cc8a
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -194,16 +194,16 @@ katjav
 
 
 
-499
+405
 
-lattice~.wav
+blosc~440.wav
 file
 
 
 
 
-2012-05-04T00:49:09.299816Z
-966146f3df10c1ca5ed92082f0912144
+2012-05-04T00:49:09.311816Z
+20b034a8c531a8c63992c05ace931e23
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -230,17 +230,18 @@ has-props
 
 2092
 
-dist~-unittest.pd
+cexp~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.299816Z
-c352fbb8905619f8fed71863dffd0d8c
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.311816Z
+2c234e3b0355e0ea103d3c2a6ac02235
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -261,17 +262,16 @@ katjav
 
 
 
-
-395
+2092
 
-scrollgrid1D~.wav
+fdn~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.303816Z
-a0da8d7b34d323b264230a129cf9d930
+2012-05-04T00:49:09.319816Z
+fb57f9a909c6b32002aa00647a883089
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -298,14 +298,14 @@ has-props
 
 2092
 
-statwav~.wav
+dynwav~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.299816Z
-716692ed21bd696c500f2d8e2e318808
+2012-05-04T00:49:09.331816Z
+0ad9d32b3720287539ddf80f44092b3e
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -332,18 +332,17 @@ has-props
 
 2092
 
-bitsplit~.wav
+junction~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.303816Z
-fcdf1c0fd41421d6f7cb039e614ad980
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.315816Z
+15765f8afbf0dd1f6ef34a365085630a
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -364,20 +363,20 @@ has-props
 
 
 
-2092
+
+847
 
-cheby~.wav
+cheby~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.303816Z
-cc3667af31bb20cefcc560354f3bafd5
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.307816Z
+fa8d10c99cee95510171c32e14fb1234
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -398,16 +397,17 @@ has-props
 
 
 
-2092
+
+452
 
-xfm~.wav
+ratio.wav
 file
 
 
 
 
-2012-05-04T00:49:09.303816Z
-a4cd7aaa7a74b7aee1d9aa10bc775618
+2012-05-04T00:49:09.315816Z
+d52ae1e33c0c619a6ca4803e121486df
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -434,17 +434,18 @@ has-props
 
 2092
 
-dynwav~-unittest.pd
+biquadseries~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.303816Z
-b17844f3a5b246fbbe8bb62086a56d71
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.315816Z
+f2bd201c1d8bc3e4ede5ae953a3839c1
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -465,17 +466,16 @@ katjav
 
 
 
-
-443
+2092
 
-qnorm.wav
+biquadseries~10.wav
 file
 
 
 
 
-2012-05-04T00:49:09.303816Z
-ec52c8011694cc91628e0e6487ed139e
+2012-05-04T00:49:09.331816Z
+f2bd201c1d8bc3e4ede5ae953a3839c1
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -502,14 +502,14 @@ has-props
 
 2092
 
-permut~-unittest.pd
+cexp~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.307816Z
-5ac44492d278b35e1caef5d8e2f1b172
+2012-05-04T00:49:09.315816Z
+de21fa252ff83023b7cdf7b76f5692c3
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -534,19 +534,20 @@ katjav
 
 
 
-452
+604
 
-ead~subnormal-unittest.pd
+blocknorm~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.303816Z
-9a9c0546a81aafc6a82f81c892af257f
+2012-05-04T00:49:09.311816Z
+b04c2e3b8a952bfc3b44db94bf45e9cc
 2011-11-13T15:18:49.381924Z
 15736
 katjav
+has-props
 
 
 
@@ -567,20 +568,20 @@ katjav
 
 
 
-
-5259
+2092
 
-statwav~unittest.pd
+ead~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.303816Z
-0a3b707bff1089b42f089393ffbb56ed
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.323816Z
+8b816c0dde7439fd1661cb842ff16dc4
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -601,17 +602,16 @@ katjav
 
 
 
-
-1127
+2092
 
-bfft~-unittest.pd
+fdn~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.307816Z
-7d8ca33972175b5aa47860e7975f1dad
+2012-05-04T00:49:09.327816Z
+cb649eb2dc51968ae2aa380e8500612f
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -636,16 +636,16 @@ katjav
 
 
 
-477
+376
 
-lattice~-unittest.pd
+dynwav~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.307816Z
-d127e39c0c7cf95a073e7048e7ede693
+2012-05-04T00:49:09.303816Z
+b17844f3a5b246fbbe8bb62086a56d71
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -670,19 +670,20 @@ katjav
 
 
 
-1291
+443
 
-scrollgrid1D~-unittest.pd
+junction.wav
 file
 
 
 
 
-2012-05-04T00:49:09.307816Z
-968020e0cbd3fa81a6d339324699f506
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.327816Z
+8b55f6d4f1dbba851448175e9fbd7c9c
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -703,17 +704,16 @@ katjav
 
 
 
-
-893
+2092
 
-bitsplit~-unittest.pd
+statwav~unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.307816Z
-b8028aecada32587bb0841de6b9ab1d2
+2012-05-04T00:49:09.303816Z
+0a3b707bff1089b42f089393ffbb56ed
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -738,16 +738,16 @@ katjav
 
 
 
-316
+1127
 
-cheby~-unittest.pd
+permut~-unittest.pd
 file
 
 
 
 
 2012-05-04T00:49:09.307816Z
-fa8d10c99cee95510171c32e14fb1234
+5ac44492d278b35e1caef5d8e2f1b172
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -774,17 +774,18 @@ katjav
 
 452
 
-xfm~-unittest.pd
+filterortho~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.307816Z
-e8776c62c2b27813286f0184428bc9f7
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.327816Z
+48920858c82de4d89d51fba93f3503c4
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -805,17 +806,16 @@ katjav
 
 
 
-
-1164
+2092
 
-tabreadmix~.wav
+ffpoly.wav
 file
 
 
 
 
-2012-05-04T00:49:09.307816Z
-6d013a56d0252b8523cb5fbbdb44700d
+2012-05-04T00:49:09.311816Z
+e47823638044376df1e56fd123e7aa2c
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -842,14 +842,14 @@ has-props
 
 2092
 
-permute~.wav
+blosc~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.307816Z
-709bf7047216de88e289608390964940
+2012-05-04T00:49:09.311816Z
+087631320b989765cbf86a043f02b149
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -876,18 +876,17 @@ has-props
 
 2092
 
-blocknorm~.wav
+biquadseries~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.311816Z
-b04c2e3b8a952bfc3b44db94bf45e9cc
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.319816Z
+05bbaa1e9fef0df947e16365b92ff87c
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -908,20 +907,20 @@ has-props
 
 
 
-2092
+
+465
 
-blosc~440.wav
+ratio-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.311816Z
-20b034a8c531a8c63992c05ace931e23
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.319816Z
+9f0aa491566cc7671170ed4d24976593
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -942,20 +941,20 @@ has-props
 
 
 
-2092
+
+438
 
-dwt~.wav
+filterortho~subnormal-unittest .pd
 file
 
 
 
 
 2012-05-04T00:49:09.311816Z
-9d8f771ccc2047672e07f19a4c388e60
+4e7ffb13fc47e360b71c8f267a71e1c9
 2011-11-13T15:18:49.381924Z
 15736
 katjav
-has-props
 
 
 
@@ -976,20 +975,20 @@ has-props
 
 
 
-2092
+
+5982
 
-cexp~.wav
+blocknorm~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.311816Z
-2c234e3b0355e0ea103d3c2a6ac02235
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.315816Z
+70036db24f5cce7e459b97af018b311d
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -1010,20 +1009,20 @@ has-props
 
 
 
-2092
+
+359
 
-ffpoly.wav
+ead~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.311816Z
-e47823638044376df1e56fd123e7aa2c
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.331816Z
+3e11895c0f1b5ad517880e869a4767d5
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -1044,20 +1043,20 @@ has-props
 
 
 
-2092
+
+405
 
-blosc~.wav
+qnorm~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.311816Z
-087631320b989765cbf86a043f02b149
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.315816Z
+14819812ec3b7ada00408a8fa09d1507
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -1078,19 +1077,21 @@ has-props
 
 
 
-2092
+
+566
 
-filterortho~subnormal-unittest .pd
+tabreadmix~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.311816Z
-4e7ffb13fc47e360b71c8f267a71e1c9
+2012-05-04T00:49:09.307816Z
+6d013a56d0252b8523cb5fbbdb44700d
 2011-11-13T15:18:49.381924Z
 15736
 katjav
+has-props
 
 
 
@@ -1111,17 +1112,16 @@ katjav
 
 
 
-
-5982
+2092
 
-ear~.wav
+fwarp.wav
 file
 
 
 
 
-2012-05-04T00:49:09.315816Z
-1777b53a8b7ef2e084d05c48dc9e2b86
+2012-05-04T00:49:09.323816Z
+7b6e28bca28da052ea2ac3ee608eb660
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -1148,14 +1148,14 @@ has-props
 
 2092
 
-blocknorm~-unittest.pd
+filterortho~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.315816Z
-70036db24f5cce7e459b97af018b311d
+2012-05-04T00:49:09.335816Z
+bede0b8a87e5e18438f0bd6a98e6d46a
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -1180,16 +1180,16 @@ katjav
 
 
 
-359
+499
 
-junction~-unittest.pd
+ffpoly-unittest.pd
 file
 
 
 
 
 2012-05-04T00:49:09.315816Z
-15765f8afbf0dd1f6ef34a365085630a
+7d176d63c3f3586dd01e934cb8a11edd
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -1214,19 +1214,20 @@ katjav
 
 
 
-847
+424
 
-qnorm~-unittest.pd
+clog~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.315816Z
-14819812ec3b7ada00408a8fa09d1507
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.323816Z
+db4408fe60fa0c9b23958930c759cfe1
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -1247,17 +1248,16 @@ katjav
 
 
 
-
-566
+2092
 
-ratio.wav
+lattice~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.315816Z
-d52ae1e33c0c619a6ca4803e121486df
+2012-05-04T00:49:09.299816Z
+966146f3df10c1ca5ed92082f0912144
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -1284,18 +1284,17 @@ has-props
 
 2092
 
-biquadseries~.wav
+blosc~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.315816Z
-f2bd201c1d8bc3e4ede5ae953a3839c1
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.319816Z
+7c0f2943f161bbc0061f330199011bc9
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -1316,16 +1315,17 @@ has-props
 
 
 
-2092
+
+618
 
-dwt~-unittest.pd
+tabreadmix~unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.315816Z
-d7cec3e263637d16abd6e5c7963045df
+2012-05-04T00:49:09.319816Z
+f8152af5ea3591590c548b95ffd570d6
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -1350,19 +1350,20 @@ katjav
 
 
 
-309
+1326
 
-cexp~-unittest.pd
+resofilt~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.315816Z
-de21fa252ff83023b7cdf7b76f5692c3
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.323816Z
+b00b6e3543fa711605e5765cc6548057
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -1383,20 +1384,20 @@ katjav
 
 
 
-
-604
+2092
 
-ffpoly-unittest.pd
+statwav~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.315816Z
-7d176d63c3f3586dd01e934cb8a11edd
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.299816Z
+716692ed21bd696c500f2d8e2e318808
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -1417,20 +1418,20 @@ katjav
 
 
 
-
-424
+2092
 
-blosc~-unittest.pd
+xfm~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.319816Z
-7c0f2943f161bbc0061f330199011bc9
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.303816Z
+a4cd7aaa7a74b7aee1d9aa10bc775618
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -1451,20 +1452,20 @@ katjav
 
 
 
-
-618
+2092
 
-tabreadmix~unittest.pd
+eadsr~.wav
 file
 
 
 
 
 2012-05-04T00:49:09.319816Z
-f8152af5ea3591590c548b95ffd570d6
-2011-11-17T16:06:41.140954Z
-15787
+8b816c0dde7439fd1661cb842ff16dc4
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -1485,20 +1486,20 @@ katjav
 
 
 
-
-1326
+2092
 
-ear~-unittest.pd
+ramp~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.319816Z
-86a58ba81cf1fd33d2ca3a230389cc8a
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.327816Z
+30398e7b4f6962766dce48215fb7cf5a
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -1519,17 +1520,16 @@ katjav
 
 
 
-
-405
+2092
 
-eadsr~.wav
+bwin~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.319816Z
-8b816c0dde7439fd1661cb842ff16dc4
+2012-05-04T00:49:09.327816Z
+28fee4e4195fc7ecfb8ecf5f7cdf3f38
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -1590,17 +1590,18 @@ has-props
 
 2092
 
-ratio-unittest.pd
+dist~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.319816Z
-9f0aa491566cc7671170ed4d24976593
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.327816Z
+00725511de4c4200fc4d24c802c5a38a
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -1621,17 +1622,16 @@ katjav
 
 
 
-
-438
+2092
 
-biquadseries~-unittest.pd
+fwarp-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.319816Z
-05bbaa1e9fef0df947e16365b92ff87c
+2012-05-04T00:49:09.327816Z
+19657ceb071c8918502dddeab05e5471
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -1656,7 +1656,7 @@ katjav
 
 
 
-465
+266
 
 bdiag~.wav
 file
@@ -1692,18 +1692,17 @@ has-props
 
 2092
 
-fdn~.wav
+clog~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.319816Z
-fb57f9a909c6b32002aa00647a883089
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.331816Z
+24438668a2cbfb00486c1aa5b0e401f2
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -1724,20 +1723,20 @@ has-props
 
 
 
-2092
+
+540
 
-sbosc~.wav
+lattice~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.323816Z
-ebd9361e83026e277f0204e3687d9936
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.307816Z
+d127e39c0c7cf95a073e7048e7ede693
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -1758,16 +1757,17 @@ has-props
 
 
 
-2092
+
+1291
 
-fwarp.wav
+sbosc~.wav
 file
 
 
 
 
 2012-05-04T00:49:09.323816Z
-7b6e28bca28da052ea2ac3ee608eb660
+ebd9361e83026e277f0204e3687d9936
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -1794,14 +1794,14 @@ has-props
 
 2092
 
-eadsr~-unittest.pd
+resofilt~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.323816Z
-e319e622011e033cc8e3d99dbdec2225
+2012-05-04T00:49:09.331816Z
+e0c7bbf197230a2df12bc72dbcb38801
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -1826,20 +1826,19 @@ katjav
 
 
 
-525
+716
 
-clog~.wav
+xfm~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.323816Z
-db4408fe60fa0c9b23958930c759cfe1
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.307816Z
+e8776c62c2b27813286f0184428bc9f7
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -1860,19 +1859,21 @@ has-props
 
 
 
-2092
+
+1164
 
-qmult~-unittest.pd
+bfft~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.323816Z
-cb3513832745b02e1d7562705c745ba0
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.331816Z
+3255ccbb75850820725f33d9db5ee136
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -1893,21 +1894,19 @@ katjav
 
 
 
-
-1291
+2092
 
-resofilt~.wav
+eadsr~-unittest.pd
 file
 
 
 
 
 2012-05-04T00:49:09.323816Z
-b00b6e3543fa711605e5765cc6548057
-2011-11-13T15:18:49.381924Z
-15736
+e319e622011e033cc8e3d99dbdec2225
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -1928,19 +1927,21 @@ has-props
 
 
 
-2092
+
+525
 
-bdiag~-unittest.pd
+permute~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.323816Z
-e173ca6e0c108547fefa09ec358f7a02
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.307816Z
+709bf7047216de88e289608390964940
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -1961,21 +1962,19 @@ katjav
 
 
 
-
-1440
+2092
 
-ead~.wav
+ramp~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.323816Z
-8b816c0dde7439fd1661cb842ff16dc4
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.331816Z
+cfee41528e988a297479704f83229d1b
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -1996,16 +1995,17 @@ has-props
 
 
 
-2092
+
+712
 
-fdn~-unittest.pd
+bwin~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.327816Z
-cb649eb2dc51968ae2aa380e8500612f
+2012-05-04T00:49:09.331816Z
+360ee346905105b4f99e8a06ec52c0e7
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -2030,20 +2030,19 @@ katjav
 
 
 
-376
+248
 
-junction.wav
+qmult~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.327816Z
-8b55f6d4f1dbba851448175e9fbd7c9c
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.323816Z
+cb3513832745b02e1d7562705c745ba0
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -2064,16 +2063,17 @@ has-props
 
 
 
-2092
+
+1291
 
-sbosc~-unittest.pd
+dist~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.327816Z
-34ad94cf7ef2ab334cc2ae606906e6ca
+2012-05-04T00:49:09.299816Z
+c352fbb8905619f8fed71863dffd0d8c
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -2098,16 +2098,16 @@ katjav
 
 
 
-337
+395
 
-ramp~.wav
+scrollgrid1D~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.327816Z
-30398e7b4f6962766dce48215fb7cf5a
+2012-05-04T00:49:09.303816Z
+a0da8d7b34d323b264230a129cf9d930
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -2134,18 +2134,17 @@ has-props
 
 2092
 
-bwin~.wav
+bdiag~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.327816Z
-28fee4e4195fc7ecfb8ecf5f7cdf3f38
-2011-11-13T15:18:49.381924Z
-15736
+2012-05-04T00:49:09.323816Z
+e173ca6e0c108547fefa09ec358f7a02
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -2166,16 +2165,17 @@ has-props
 
 
 
-2092
+
+1440
 
-filterortho~.wav
+bitsplit~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.327816Z
-48920858c82de4d89d51fba93f3503c4
+2012-05-04T00:49:09.303816Z
+fcdf1c0fd41421d6f7cb039e614ad980
 2011-11-13T15:18:49.381924Z
 15736
 katjav
@@ -2202,18 +2202,17 @@ has-props
 
 2092
 
-dist~.wav
+sbosc~-unittest.pd
 file
 
 
 
 
 2012-05-04T00:49:09.327816Z
-00725511de4c4200fc4d24c802c5a38a
-2011-11-13T15:18:49.381924Z
-15736
+34ad94cf7ef2ab334cc2ae606906e6ca
+2011-11-17T16:06:41.140954Z
+15787
 katjav
-has-props
 
 
 
@@ -2234,19 +2233,21 @@ has-props
 
 
 
-2092
+
+337
 
-fwarp-unittest.pd
+qnorm.wav
 file
 
 
 
 
-2012-05-04T00:49:09.327816Z
-19657ceb071c8918502dddeab05e5471
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.303816Z
+ec52c8011694cc91628e0e6487ed139e
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -2267,20 +2268,20 @@ katjav
 
 
 
-
-266
+2092
 
-clog~-unittest.pd
+dwt~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.331816Z
-24438668a2cbfb00486c1aa5b0e401f2
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.311816Z
+9d8f771ccc2047672e07f19a4c388e60
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -2301,21 +2302,19 @@ katjav
 
 
 
-
-540
+2092
 
-dynwav~.wav
+ead~subnormal-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.331816Z
-0ad9d32b3720287539ddf80f44092b3e
+2012-05-04T00:49:09.303816Z
+9a9c0546a81aafc6a82f81c892af257f
 2011-11-13T15:18:49.381924Z
 15736
 katjav
-has-props
 
 
 
@@ -2336,16 +2335,17 @@ has-props
 
 
 
-2092
+
+5259
 
-resofilt~-unittest.pd
+bfft~-unittest.pd
 file
 
 
 
 
-2012-05-04T00:49:09.331816Z
-e0c7bbf197230a2df12bc72dbcb38801
+2012-05-04T00:49:09.307816Z
+7d8ca33972175b5aa47860e7975f1dad
 2011-11-17T16:06:41.140954Z
 15787
 katjav
@@ -2370,19 +2370,20 @@ katjav
 
 
 
-716
+477
 
-ead~-unittest.pd
+ear~.wav
 file
 
 
 
 
-2012-05-04T00:49:09.331816Z
-3e11895c0f1b5ad517880e869a4767d5
-2011-11-17T16:06:41.140954Z
-15787
+2012-05-04T00:49:09.315816Z
+1777b53a8b7ef2e084d05c48dc9e2b86
+2011-11-13T15:18:49.381924Z
+15736
 katjav
+has-props
 
 
 
@@ -2403,6 +2404,5 @@ katjav
 
 
 
-
-405
+2092
 
diff --git a/externals/pd-l2ork-TODO.txt b/externals/pd-l2ork-TODO.txt
new file mode 100644
index 0000000000000000000000000000000000000000..4b955ac38372b669b75a3e5c2efb4cd41db68f18
--- /dev/null
+++ b/externals/pd-l2ork-TODO.txt
@@ -0,0 +1,12 @@
+Diff status between pd-l2ork externals source tree and main community pd svn
+AS OF 11/22/2012
+
+DONE:
+creb
+
+MERGE:
+miXed
+ggee
+
+TODO:
+test other
diff --git a/externals/pdp/include/pdp_config.h b/externals/pdp/include/pdp_config.h
index 5c52cce1672b6151da269283c79951a6e530f8e0..ba70e8244ebe0282c64871f7f944951952c44ac7 100644
--- a/externals/pdp/include/pdp_config.h
+++ b/externals/pdp/include/pdp_config.h
@@ -32,7 +32,7 @@
 /* #undef HAVE_PDP_SDL */
 
 /* build pdp_v4l */
-#define HAVE_PDP_V4L 1
+/* #undef HAVE_PDP_V4L */
 
 /* experimental vforth dsp engine */
 /* #undef HAVE_PDP_VFORTH */
diff --git a/externals/zexy/src/zexy.d b/externals/zexy/src/zexy.d
index 64003b529a0008c21ad265c9f7c7be2e5d86a619..9a804a656d0ff9ea812b97eef2d5e5cadd87a3a5 100644
--- a/externals/zexy/src/zexy.d
+++ b/externals/zexy/src/zexy.d
@@ -1,2 +1 @@
-zexy.o zexy.d : zexy.c zexy.h zexyconf.h \
- /home/ico/Downloads/PureData/pure-data/pd/src/m_pd.h z_zexy.h
+zexy.o zexy.d : zexy.c zexy.h zexyconf.h z_zexy.h
diff --git a/pd/.gitignore b/pd/.gitignore
index fbc95cf91a0b6a40912324484281f533b3b39c5e..0ec272ea91104f134fed813556675ee5e6845111 100644
--- a/pd/.gitignore
+++ b/pd/.gitignore
@@ -20,6 +20,7 @@ m4/config
 *.lo
 *.la
 *.pd_linux
+*.pd_linux_o
 *.pd_darwin
 *.d_fat
 *.d_fat_o
diff --git a/pd/src/config.h b/pd/src/config.h
index a8ffe9c589993651bedd02963113e2783b2d585b..6835ea96eb0f7dcb2c957c4560dffbb4b0f934a8 100644
--- a/pd/src/config.h
+++ b/pd/src/config.h
@@ -211,7 +211,7 @@
 #define TIME_WITH_SYS_TIME 1
 
 /* Number of bits in a file offset, on hosts where this is settable. */
-#define _FILE_OFFSET_BITS 64
+/* #undef _FILE_OFFSET_BITS */
 
 /* Define for large files, on AIX-style hosts. */
 /* #undef _LARGE_FILES */
diff --git a/pd/src/m_pd.h b/pd/src/m_pd.h
index a7d3e4aa3630218ff3b1262154709e3382f6d33e..01a7b35e0668ce7b773d8ed1396043b8e13d763d 100644
--- a/pd/src/m_pd.h
+++ b/pd/src/m_pd.h
@@ -11,7 +11,7 @@ extern "C" {
 #define PD_MAJOR_VERSION 0
 #define PD_MINOR_VERSION 42
 #define PD_BUGFIX_VERSION 6
-#define PD_TEST_VERSION "20121115"
+#define PD_TEST_VERSION "20121120"
 #define PDL2ORK
 
 /* old name for "MSW" flag -- we have to take it for the sake of many old