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