diff options
458 files changed, 42056 insertions, 0 deletions
diff --git a/CHANGES.txt b/CHANGES.txt new file mode 100644 index 0000000..723bb06 --- /dev/null +++ b/CHANGES.txt @@ -0,0 +1,64 @@ +iemlib Release 1.15: + + +improvements: + +all signal-filters are more stable +speedlim lost its change-characteristic +iem_pbank_csv lost its 3.arg, but got a buffer and more + recall-options + + + +new: + +more high-order IIR-filters + (odd order 3. 5. 7. 9.) + (critical damping and bessel-characteristic) + +more VCFs with signal-parameters + (vcf_hp~, vcf_bp~, vcf_rbp~) + +addl~ signal-addition with line~ +divl~ signal-divison with line~ +mull~ signal-multiplication with line~ +subl~ signal-subtraction with line~ +rvu~ rms VU-meter interface +iem_blocksize~ blocksize of a window in samples +iem_samplerate~ samplerate of a window in Hertz +int_fract~ split signal-float to integer- and fractal-part +round~ round signal-float to nearest integer +sin_phase~ output phase-difference of 2 sinewaves in samples +1p1z float-message-filter 1.order +dbtofad midi-db to fader-characteristic +fadtodb fader-characteristic to midi-db +fadtorms fader-characteristic to rms +rmstofad rms to fader-characteristic +round_zero round numbers near zero to zero +transf_fader partial linear characteristic diagram (like table) +wrap wraparound +default replace initial-argument, if it is zero +float24 store a 24-bit accurate float-number +once any message pass through only the first time +add2_comma add a comma-separated message to a messagebox +iem_receive catch "sent" messages (receive-name-input) (abbr. iem_r) +iem_sel_any control a message-box with multiple content +iem_send send messages to named object (send-name-input)(ab. iem_s) +pre_inlet output an identifier-message and then the incoming message +soundfile_info output header-info of a wav-file + + + +name-changes (but compatible aliases): + +merge_any -> iem_append +prepend -> iem_prepend + + + +incompatible changes: + +post_netreceive -> list2send array of send-objects +pre_netsend -> receive2list array of receive-objects + + diff --git a/Dokumentation_German.pdf b/Dokumentation_German.pdf Binary files differnew file mode 100644 index 0000000..06ecb7b --- /dev/null +++ b/Dokumentation_German.pdf diff --git a/GnuLGPL.txt b/GnuLGPL.txt new file mode 100644 index 0000000..4b6aba7 --- /dev/null +++ b/GnuLGPL.txt @@ -0,0 +1,505 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the Lesser GPL. It also counts + as the successor of the GNU Library Public License, version 2, hence + the version number 2.1.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Lesser General Public License, applies to some +specially designated software packages--typically libraries--of the +Free Software Foundation and other authors who decide to use it. You +can use it too, but we suggest you first think carefully about whether +this license or the ordinary General Public License is the better +strategy to use in any particular case, based on the explanations below. + + When we speak of free software, we are referring to freedom of use, +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 and use pieces of +it in new free programs; and that you are informed that you can do +these things. + + To protect your rights, we need to make restrictions that forbid +distributors to deny you these rights or to ask you to surrender these +rights. These restrictions translate to certain responsibilities for +you if you distribute copies of the library or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link other code with the library, you must provide +complete object files to the recipients, so that they can relink them +with the library after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + We protect your rights with a two-step method: (1) we copyright the +library, and (2) we offer you this license, which gives you legal +permission to copy, distribute and/or modify the library. + + To protect each distributor, we want to make it very clear that +there is no warranty for the free library. Also, if the library is +modified by someone else and passed on, the recipients should know +that what they have is not the original version, so that the original +author's reputation will not be affected by problems that might be +introduced by others. + + Finally, software patents pose a constant threat to the existence of +any free program. We wish to make sure that a company cannot +effectively restrict the users of a free program by obtaining a +restrictive license from a patent holder. Therefore, we insist that +any patent license obtained for a version of the library must be +consistent with the full freedom of use specified in this license. + + Most GNU software, including some libraries, is covered by the +ordinary GNU General Public License. This license, the GNU Lesser +General Public License, applies to certain designated libraries, and +is quite different from the ordinary General Public License. We use +this license for certain libraries in order to permit linking those +libraries into non-free programs. + + When a program is linked with a library, whether statically or using +a shared library, the combination of the two is legally speaking a +combined work, a derivative of the original library. The ordinary +General Public License therefore permits such linking only if the +entire combination fits its criteria of freedom. The Lesser General +Public License permits more lax criteria for linking other code with +the library. + + We call this license the "Lesser" General Public License because it +does Less to protect the user's freedom than the ordinary General +Public License. It also provides other free software developers Less +of an advantage over competing non-free programs. These disadvantages +are the reason we use the ordinary General Public License for many +libraries. However, the Lesser license provides advantages in certain +special circumstances. + + For example, on rare occasions, there may be a special need to +encourage the widest possible use of a certain library, so that it becomes +a de-facto standard. To achieve this, non-free programs must be +allowed to use the library. A more frequent case is that a free +library does the same job as widely used non-free libraries. In this +case, there is little to gain by limiting the free library to free +software only, so we use the Lesser General Public License. + + In other cases, permission to use a particular library in non-free +programs enables a greater number of people to use a large body of +free software. For example, permission to use the GNU C Library in +non-free programs enables many more people to use the whole GNU +operating system, as well as its variant, the GNU/Linux operating +system. + + Although the Lesser General Public License is Less protective of the +users' freedom, it does ensure that the user of a program that is +linked with the Library has the freedom and the wherewithal to run +that program using a modified version of the Library. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, whereas the latter must +be combined with the library in order to run. + + GNU LESSER GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library or other +program which contains a notice placed by the copyright holder or +other authorized party saying it may be distributed under the terms of +this Lesser General Public License (also called "this License"). +Each licensee is addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, 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 library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete 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 distribute a copy of this License along with the +Library. + + 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 Library or any portion +of it, thus forming a work based on the Library, 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) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +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 Library, 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 Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you 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. + + If distribution of 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 satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also combine or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (1) uses at run time a + copy of the library already present on the user's computer system, + rather than copying library functions into the executable, and (2) + will operate properly with a modified version of the library, if + the user installs one, as long as the modified version is + interface-compatible with the version that the work was made with. + + c) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + d) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + e) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the materials to be 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. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library 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. + + 9. 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 Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +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 with +this License. + + 11. 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 Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library 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 Library. + +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. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library 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. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Lesser 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 Library +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 Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +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 + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "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 +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. 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 LIBRARY 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 +LIBRARY (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 LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. 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 library's name and a brief idea of what it does.> + Copyright (C) <year> <name of author> + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + This library 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 + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this library; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + <signature of Ty Coon>, 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! + + + diff --git a/INSTALL_lin.txt b/INSTALL_lin.txt new file mode 100644 index 0000000..60df107 --- /dev/null +++ b/INSTALL_lin.txt @@ -0,0 +1,88 @@ +Installation-guide for iemlib under linux + +iemlib_R1.15 is written by Thomas Musil from IEM Graz Austria + and it is compatible to miller puckette's pd-0.36-0 and pd-0.37-0. +see also LICENCE.txt, GnuLGPL.txt and README.txt. + + +1.) open a unix-shell, login as superuser, download and copy iemlib_R1.15_lin.tgz into your source-directory + (e.g. /usr/local/src/iemlib_R1.15_lin.tgz) + +2.) untar and unzip iemlib_R1.15_lin.tgz + "shell"> tar xzvf iemlib_R1.15_lin.tgz + (and a directory iemlib_R1.15 will be created) + +3.) create an externs-directory in your pd-installation-directory (if it does not exist) + "shell"> mkdir /usr/local/lib/pd/externs + +4.) copy external-libraries + iemlib contains 4 *.pd_linux files (iem_mp3.pd_linux, iem_t3_lib.pd_linux, iemlib1.pd_linux, iemlib2.pd_linux) + "shell"> cp /usr/local/src/iemlib_R1.15/lib/*.pd_linux /usr/local/lib/pd/externs/ + +5.) copy pd-abstractions-folder + "shell"> cp -r /usr/local/src/iemlib_R1.15/iemabs /usr/local/lib/pd + +6.a) copy pd-help-files-folder (pd-0.36-0) + "shell"> cp -r /usr/local/src/iemlib_R1.15/iemhelp /usr/local/lib/pd/doc/5.reference/ + +6.b) copy pd-help-files (pd-0.37-0) + "shell"> cp /usr/local/src/iemlib_R1.15/iemhelp/*.* /usr/local/lib/pd/iemabs/ + +7.) add to your pd_start_script, or into your pd-resource-file ~/.pdrc, + the following configuration-options: + + -path /usr/local/lib/pd/externs -path /usr/local/lib/pd/iemabs -lib iemlib1:iemlib2:iem_mp3:iem_t3_lib + + or create an executable textfile start_pd36 with this content: + +#!/bin/sh +/usr/local/bin/pd -r 44100 -channels 2 -audiobuf 160 -audiodev 1 -nomidi \ +-path /usr/local/lib/pd/externs -path /usr/local/lib/pd/iemabs \ +-lib iemlib1 -lib iemlib2 -lib iem_mp3 -lib iem_t3_lib + + + +How to compile iemlib under linux + +after installing iemlib: + +8.a) edit makefile of iemlib1 + change to directory /usr/local/src/iemlib_R1.15/src/iemlib1 + and edit the following line of makefile and save + ( INCLUDE = -I. -I/usr/local/src/pd/src ) + +8.b) compile iemlib1 + "shell"> make + ( after this command, iemlib1.pd_linux will be created in /usr/local/src/iemlib_R1.15/lib/ ). + +9.a) edit makefile of iemlib2 + change to directory /usr/local/src/iemlib_R1.15/src/iemlib2 + and edit the following line of makefile and save + ( INCLUDE = -I. -I/usr/local/src/pd/src ) + +9.b) compile iemlib2 + "shell"> make + ( after this command, iemlib2.pd_linux will be created in /usr/local/src/iemlib_R1.15/lib/ ). + +10.a) edit makefile of iem_mp3 + change to directory /usr/local/src/iemlib_R1.15/src/iem_mp3 + and edit the following line of makefile and save + ( INCLUDE = -I. -I/usr/local/src/pd/src ) + +10.b) compile iem_mp3 + "shell"> make + ( after this command, iem_mp3.pd_linux will be created in /usr/local/src/iemlib_R1.15/lib/ ). + +11.a) edit makefile of iem_t3_lib + change to directory /usr/local/src/iemlib_R1.15/src/iem_t3_lib + and edit the following line of makefile and save + ( INCLUDE = -I. -I/usr/local/src/pd/src ) + +11.b) compile iem_t3_lib + "shell"> make + ( after this command, iem_t3_lib.pd_linux will be created in /usr/local/src/iemlib_R1.15/lib/ ). + + +12.) copy external-libraries + "shell"> cd /usr/local/src/iemlib_R1.15/lib + "shell"> cp /usr/local/src/iemlib_R1.15/lib/*.pd_linux /usr/local/lib/externs/ diff --git a/LICENCE.txt b/LICENCE.txt new file mode 100644 index 0000000..cd5f562 --- /dev/null +++ b/LICENCE.txt @@ -0,0 +1,20 @@ +Copyright (C) IEM 2003, Thomas MUSIL [musil@iem.at] + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) any later version. + +This library 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 +Lesser General Public License for more details (see GnuLGPL.txt). +(e.g. http://www.gnu.org/copyleft/lesser.html) + +You should have received a copy of the GNU Lesser General Public +License along with this library; if not, write to the Free Software +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +IEM - Institute of Electronic Music and Acoustics, Graz +Inffeldgasse 10/3, 8010 Graz, Austria +http://iem.at
\ No newline at end of file diff --git a/README_lin.txt b/README_lin.txt new file mode 100644 index 0000000..d75a861 --- /dev/null +++ b/README_lin.txt @@ -0,0 +1,266 @@ +Installation-guide for iemlib under linux + +iemlib_R1.15 is written by Thomas Musil from IEM Graz Austria + and it is compatible to miller puckette's pd-0.36-0 and pd-0.37-0. +see also LICENCE.txt, GnuLGPL.txt and README.txt. + +1.) open a unix-shell, login as superuser, download and copy iemlib_R1.15_lin.tgz into your source-directory + (e.g. /usr/local/src/iemlib_R1.15_lin.tgz) + +2.) untar and unzip iemlib_R1.15_lin.tgz + "shell"> tar xzvf iemlib_R1.15_lin.tgz + (and a directory iemlib_R1.15 will be created) + +3.) create an externs-directory in your pd-installation-directory (if it does not exist) + "shell"> mkdir /usr/local/lib/pd/externs + +4.) copy external-libraries + iemlib contains 4 *.pd_linux files (iem_mp3.pd_linux, iem_t3_lib.pd_linux, iemlib1.pd_linux, iemlib2.pd_linux) + "shell"> cp /usr/local/src/iemlib_R1.15/lib/*.pd_linux /usr/local/lib/pd/externs/ + +5.) copy pd-abstractions-folder + "shell"> cp -r /usr/local/src/iemlib_R1.15/iemabs /usr/local/lib/pd + +6.a) copy pd-help-files-folder (pd-0.36-0) + "shell"> cp -r /usr/local/src/iemlib_R1.15/iemhelp /usr/local/lib/pd/doc/5.reference/ + +6.b) copy pd-help-files (pd-0.37-0) + "shell"> cp /usr/local/src/iemlib_R1.15/iemhelp/*.* /usr/local/lib/pd/iemabs/ + +7.) add to your pd_start_script, or into your pd-resource-file ~/.pdrc, + the following configuration-options: + + -path /usr/local/lib/pd/externs -path /usr/local/lib/pd/iemabs -lib iemlib1:iemlib2:iem_mp3:iem_t3_lib + + or create an executable textfile start_pd36 with this content: + +#!/bin/sh +/usr/local/bin/pd -r 44100 -channels 2 -audiobuf 160 -audiodev 1 -nomidi \ +-path /usr/local/lib/pd/externs -path /usr/local/lib/pd/iemabs \ +-lib iemlib1 -lib iemlib2 -lib iem_mp3 -lib iem_t3_lib + + + +How to compile iemlib under linux + +after installing iemlib: + +8.a) edit makefile of iemlib1 + change to directory /usr/local/src/iemlib_R1.15/src/iemlib1 + and edit the following line of makefile and save + ( INCLUDE = -I. -I/usr/local/src/pd/src ) + +8.b) compile iemlib1 + "shell"> make + ( after this command, iemlib1.pd_linux will be created in /usr/local/src/iemlib_R1.15/lib/ ). + +9.a) edit makefile of iemlib2 + change to directory /usr/local/src/iemlib_R1.15/src/iemlib2 + and edit the following line of makefile and save + ( INCLUDE = -I. -I/usr/local/src/pd/src ) + +9.b) compile iemlib2 + "shell"> make + ( after this command, iemlib2.pd_linux will be created in /usr/local/src/iemlib_R1.15/lib/ ). + +10.a) edit makefile of iem_mp3 + change to directory /usr/local/src/iemlib_R1.15/src/iem_mp3 + and edit the following line of makefile and save + ( INCLUDE = -I. -I/usr/local/src/pd/src ) + +10.b) compile iem_mp3 + "shell"> make + ( after this command, iem_mp3.pd_linux will be created in /usr/local/src/iemlib_R1.15/lib/ ). + +11.a) edit makefile of iem_t3_lib + change to directory /usr/local/src/iemlib_R1.15/src/iem_t3_lib + and edit the following line of makefile and save + ( INCLUDE = -I. -I/usr/local/src/pd/src ) + +11.b) compile iem_t3_lib + "shell"> make + ( after this command, iem_t3_lib.pd_linux will be created in /usr/local/src/iemlib_R1.15/lib/ ). + + +12.) copy external-libraries + "shell"> cd /usr/local/src/iemlib_R1.15/lib + "shell"> cp /usr/local/src/iemlib_R1.15/lib/*.pd_linux /usr/local/lib/externs/ + + + +contents of iemlib Release 1.15 from December 2003 + +============================ DSP~ =============================== + +------------------------- filter~ ------------------------------- +FIR~ finite impuls response filter, with array-coefficients + +maverage~ moving average filter, (IIR + delay) + +ap1~ allpass 1.order +ap2~ allpass 2.order +bpq2~ bandpass 2.order with Q-inlet +bpw2~ bandpass 2.order with bandwidth-inlet +bsq2~ bandstop 2.order (notch) with Q-inlet +bsw2~ bandstop 2.order (notch) with bandwidth-inlet +hp1~ highpass 1.order +hp2~ highpass 2.order +lp1~ lowpass 1.order +lp2~ lowpass 2.order +rbpq2~ resonance-bandpass 2.order with Q-inlet +rbpw2~ resonance-bandpass 2.order with bandwidth-inlet + +hml_shelf~ high-middle-low shelving-filter with freq- and gain-inlets +lp1_t~ lowpass 1.order with time_constant inlet +para_bp2~ parametrical bandpass 2. order with freq-, Q- and gain-inlet + +hp2_butt~, hp3_butt~, hp4_butt~, hp5_butt~, hp6_butt~, hp7_butt~, +hp8_butt~, hp9_butt~, hp10_butt~ + highpass 2.3.4.5.6.7.8.9.10.order with butterworth characteristic +hp2_cheb~, hp3_cheb~, hp4_cheb~, hp5_cheb~, hp6_cheb~, hp7_cheb~, +hp8_cheb~, hp9_cheb~, hp10_cheb~ + highpass 2.3.4.5.6.7.8.9.10.order with chebyshev characteristic +hp2_bess~, hp3_bess~, hp4_bess~, hp5_bess~, hp6_bess~, hp7_bess~, +hp8_bess~, hp9_bess~, hp10_bess~ + highpass 2.3.4.5.6.7.8.9.10.order with bessel characteristic +hp2_crit~, hp3_crit~, hp4_crit~, hp5_crit~, hp6_crit~, hp7_crit~, +hp8_crit~, hp9_crit~, hp10_crit~ + highpass 2.3.4.5.6.7.8.9.10.order with critical damping +lp2_butt~, lp3_butt~, lp4_butt~, lp5_butt~, lp6_butt~, lp7_butt~, +lp8_butt~, lp9_butt~, lp10_butt~ + lowpass 2.3.4.5.6.7.8.9.10.order with butterworth characteristic +lp2_cheb~, lp3_cheb~, lp4_cheb~, lp5_cheb~, lp6_cheb~, lp7_cheb~, +lp8_cheb~, lp9_cheb~, lp10_cheb~ + lowpass 2.3.4.5.6.7.8.9.10.order with chebyshev characteristic +lp2_bess~, lp3_bess~, lp4_bess~, lp5_bess~, lp6_bess~, lp7_bess~, +lp8_bess~, lp9_bess~, lp10_bess~ + lowpass 2.3.4.5.6.7.8.9.10.order with bessel characteristic +lp2_crit~, lp3_crit~, lp4_crit~, lp5_crit~, lp6_crit~, lp7_crit~, +lp8_crit~, lp9_crit~, lp10_crit~ + lowpass 2.3.4.5.6.7.8.9.10.order with critical damping + +vcf_hp2~, vcf_hp4~, vcf_hp6~, vcf_hp8~ + highpass 2.4.6.8.order with freq- and Q-signal-inlets +vcf_lp2~, vcf_lp4~, vcf_lp6~, vcf_lp8~ + lowpass 2.4.6.8.order with freq- and Q-signal-inlets +vcf_bp2~, vcf_bp4~, vcf_bp6~, vcf_bp8~ + bandpass 2.4.6.8.order with freq- and Q-signal-inlets +vcf_rbp2~, vcf_rbp4~, vcf_rbp6~, vcf_rbp8~ + resonance-bandpass 2.4.6.8.order with freq- and Q-signal-inlets + +------------------------ arithmetic~ ---------------------------- +addl~ signal-addition with line~ +divl~ signal-divison with line~ +mull~ signal-multiplication with line~ +subl~ signal-subtraction with line~ + +------------------------- converter~ ---------------------------- +prvu~ peak and rms VU-meter interface +pvu~ peak VU-meter interface +rvu~ rms VU-meter interface +unsig~ signal to float converter + +------------------ t3~ - time-tagged-trigger -------------------- +-- inputmessages allow a sample-accurate access to signalshape -- +t3_sig~ time tagged trigger sig~ +t3_line~ time tagged trigger line~ + +--------------------------- misc~ ------------------------------- +fade~ fade-in fade-out shaper (need line~) +iem_blocksize~ blocksize of a window in samples +iem_samplerate~ samplerate of a window in Hertz +int_fract~ split signal-float to integer- and fractal-part +LFO_noise~ downsampled 2-point interpolated white noise +mp3play~ mp3 stereo player +peakenv~ peak envelope shaper +pink~ pink noise +round~ round signal-float to nearest integer +sin_phase~ output phase-difference of 2 sinewaves in samples + +========================= control ============================== + +------------- gui (included into millers pd) -------------------- + +bng bang, display and generate a bang-message +cnv canvas, colored background and text +hdl horizontal dial, for multiplex usage +hradio horizontal radiobutton, only float in/out +hsl horizontal slider +nbx numberbox, the second +tgl 2 state toggle +vdl vertical dial, for multiplex usage +vradio vertical radiobutton, only float in/out +vsl vertical slider +vu vu-meter, display rms- + peak-level in dB + +--------------------- float operating ------------------------- +1p1z float-message-filter 1.order +db2v db to rms +dbtofad midi-db to fader-characteristic +fadtodb fader-characteristic to midi-db +fadtorms fader-characteristic to rms +rmstofad rms to fader-characteristic +round_zero round numbers near zero to zero +speedlim reduce speed of a numeric stream +split3 part a numeric stream into 3 ways +split part a numeric stream into 2 ways (like moses) +transf_fader partial linear characteristic diagram (like table) +v2db rms to db +wrap wraparound + +-------------------- symbol operating ------------------------- +mergefilename merge a list of symbols together +splitfilename divide a symbol into 2 parts +stripfilename strip n characters of a symbol +unsymbol convert a symbol- to a anything-message + +------------------- anything operating ------------------------ +any store and recall any message (like f, or symbol) +iem_append append a message to any messages (obsolete: merge_any) +iem_prepend prepend a message to any messages (abbr. pp or prepend) + +-------------------------- init ------------------------------- +default replace initial-argument, if it is zero +dollarg receive parent initial-arguments (abbr. $n) +dsp control audio-engine, calculate dsp-performance (aka. dsp~) +float24 store a 24-bit accurate float-number +init initialize a message via loadbang (abbr. ii) +once any message pass through only the first time + +------------------------- counter ----------------------------- +exp_inc exponential increment counter (bang triggered) +for++ incremental counter (triggered by internal metro) +modulo_counter endless loop counter (bang triggered) + +-------------------------- misc ------------------------------- +add2_comma add a comma-separated message to a messagebox +bpe break point envelope controller +f2note frequency to midi+cents+note +gate interruptible message connection (like spigot) +iem_i_route variation of route (abbr. iiroute) +iem_receive catch "sent" messages (receive-name-input) (abbr. iem_r) +iem_route improvement of route +iem_sel_any control a message-box with multiple content +iem_send send messages to named object (send-name-input)(ab. iem_s) +pre_inlet output an identifier-message and then the incoming message +prepend_ascii output an identifier-message and then the incoming message +soundfile_info output header-info of a wav-file +toggle_mess control a message-box with multiple content (abbr. tm) + +------------------- parameter handling ------------------------ +iem_pbank_csv parameter memory manager (csv-format) (like textfile) +list2send array of send-objects +receive2list array of receive-objects + +--------------- t3 - time-tagged-trigger --------------------- +----------- a time-tag is prepended to each message ----------- +----- so these objects allow a sample-accurate access to ------ +---------- the signal-objects t3_sig~ and t3_line~ ------------ +t3_bpe time tagged trigger break point envelope +t3_delay time tagged trigger delay +t3_metro time tagged trigger metronom +t3_timer time tagged trigger timer + +-------------- obsolete --------------------------------------- +post_netreceive +pre_netsend diff --git a/examples/1_simple_parameter_management.pd b/examples/1_simple_parameter_management.pd new file mode 100644 index 0000000..2746b2a --- /dev/null +++ b/examples/1_simple_parameter_management.pd @@ -0,0 +1,278 @@ +#N canvas 29 11 869 564 10;
+#X text 57 59 IEM KUG;
+#X text 31 70 graz \, austria 2003;
+#X obj 717 437 dsp;
+#X obj 383 501 dac~;
+#X floatatom 443 429 5 0 0 0 - - -;
+#X floatatom 509 431 5 0 0 0 - - -;
+#X floatatom 566 444 5 0 0 0 - - -;
+#X symbolatom 617 470 3 0 0 0 - - -;
+#N canvas 0 0 745 495 multi_filter~ 0;
+#X obj 116 45 inlet~;
+#X obj 114 403 outlet~;
+#X obj 115 174 lp2~ 440 2 100;
+#X obj 212 174 hp2~ 440 2 100;
+#X obj 308 174 rbpq2~ 440 2 100;
+#X obj 115 272 mull~ 1 100;
+#X obj 486 226 route 0 1 2;
+#X obj 115 303 +~;
+#X obj 115 327 +~;
+#X obj 332 48 inlet;
+#X obj 422 46 inlet;
+#X text 114 23 sig_in;
+#X text 432 27 Q;
+#X obj 486 45 inlet;
+#X obj 486 206 hdl 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -1 -1
+0;
+#X text 334 27 freq_Hz;
+#X obj 230 45 inlet;
+#X text 232 26 gain_db;
+#X obj 230 95 dbtorms;
+#X obj 115 375 mull~ 0.1 100;
+#X msg 486 138 0;
+#X msg 512 138 1;
+#X msg 538 138 2;
+#X text 487 29 mode;
+#X obj 486 178 t f;
+#X obj 486 117 route lp hp bp;
+#X obj 307 270 mull~ 0 100;
+#X obj 213 271 mull~ 0 100;
+#X obj 230 68 + 100;
+#X obj 486 96 unsymbol;
+#X connect 0 0 2 0;
+#X connect 0 0 3 0;
+#X connect 0 0 4 0;
+#X connect 2 0 5 0;
+#X connect 3 0 27 0;
+#X connect 4 0 26 0;
+#X connect 5 0 7 0;
+#X connect 6 0 5 1;
+#X connect 6 1 27 1;
+#X connect 6 2 26 1;
+#X connect 7 0 8 0;
+#X connect 8 0 19 0;
+#X connect 9 0 2 1;
+#X connect 9 0 3 1;
+#X connect 9 0 4 1;
+#X connect 10 0 2 2;
+#X connect 10 0 3 2;
+#X connect 10 0 4 2;
+#X connect 13 0 29 0;
+#X connect 14 0 6 0;
+#X connect 16 0 28 0;
+#X connect 18 0 19 1;
+#X connect 19 0 1 0;
+#X connect 20 0 24 0;
+#X connect 21 0 24 0;
+#X connect 22 0 24 0;
+#X connect 24 0 14 0;
+#X connect 25 0 20 0;
+#X connect 25 1 21 0;
+#X connect 25 2 22 0;
+#X connect 26 0 8 1;
+#X connect 27 0 7 1;
+#X connect 28 0 18 0;
+#X connect 29 0 25 0;
+#X restore 383 468 pd multi_filter~;
+#N canvas 52 43 624 184 GUI 0;
+#X obj 69 23 vsl 15 128 0 127 0 0 empty empty gain 0 -8 0 8 -44926
+-1 -1 0 1;
+#X obj 70 159 nbx 4 12 -1e+037 1e+037 0 0 empty empty dB 48 7 0 10
+-225280 -1 -1 0 256;
+#X obj 196 23 vsl 15 128 9 136 0 0 midi_freq_dsp midi_freq_gui freq
+0 -8 192 8 -250685 -1 -1 0 1;
+#X obj 197 160 nbx 5 12 -1e+037 1e+037 0 0 empty empty Hz 58 7 0 10
+-257472 -1 -1 0 256;
+#X obj 293 160 nbx 4 12 -1e+037 1e+037 0 0 empty empty empty 48 7 0
+10 -262131 -1 -1 0 256;
+#X obj 293 24 vsl 15 128 0.1 10 1 0 empty empty Q 0 -8 0 8 -260818
+-1 -1 0 1;
+#X obj 335 50 cnv 8 20 15 empty empty lowpass 0 5 0 10 -262144 -66577
+0;
+#X obj 87 32 vu 15 120 empty out -1 -8 0 8 -66577 -1 1 0;
+#X obj 10 231 + 100;
+#X obj 10 252 dbtofad;
+#X msg 232 46 set \$1;
+#X msg 10 274 set \$1;
+#X obj 11 297 fadtodb;
+#X obj 11 318 - 100;
+#X msg 131 60 set \$1;
+#X obj 131 40 ftom;
+#X obj 131 109 mtof;
+#X msg 376 272 0;
+#X msg 402 272 1;
+#X msg 428 272 2;
+#X obj 376 297 t f;
+#X obj 376 249 route lp hp bp;
+#X msg 376 318 set \$1;
+#X obj 376 225 unsymbol;
+#X obj 289 297 symbol;
+#X obj 317 48 vradio 15 1 0 3 empty empty mode 0 -6 0 10 -24198 -1
+-1 0;
+#X obj 335 66 cnv 8 20 15 empty empty highpass 0 5 0 10 -262144 -66577
+0;
+#X obj 335 82 cnv 8 20 15 empty empty bandpass 0 5 0 10 -262144 -66577
+0;
+#X obj 289 253 iem_sel_any;
+#X msg 186 214 0 lp \, 1 hp \, 2 bp;
+#X obj 186 193 loadbang;
+#X obj 186 235 pp add;
+#X obj 289 275 route set;
+#X floatatom 417 130 5 0 9 0 - - -;
+#X obj 417 25 vradio 10 1 0 10 empty empty recall_preset 0 -6 0 8 -257989
+-1 -1 0;
+#X floatatom 466 157 5 0 9 0 - - -;
+#X obj 466 52 vradio 10 1 0 10 empty empty store_preset 0 -6 0 8 -259803
+-1 -1 0;
+#X obj 507 101 bng 35 250 50 0 empty empty save_file 0 -6 0 8 -259609
+-237569 -1;
+#X msg 507 147 1;
+#X obj 10 30 tgl 15 0 empty empty DSP 0 -8 0 10 -24198 -1 -1 0 1;
+#X obj 10 69 nbx 4 12 -1e+037 1e+037 0 0 empty empty peak 0 -7 0 10
+-195568 -1 -1 6.00864 256;
+#X obj 10 98 nbx 4 12 -1e+037 1e+037 0 0 empty empty mean 0 -7 0 10
+-195568 -1 -1 26.64 256;
+#X obj 131 19 r freq;
+#X obj 131 131 s freq;
+#X obj 232 26 r Q;
+#X obj 237 128 s Q;
+#X obj 10 154 s audio;
+#X obj 10 173 r perf_peak;
+#X obj 10 191 r perf_mean;
+#X obj 10 210 r gain;
+#X obj 140 176 r out_level;
+#X obj 376 199 r mode;
+#X obj 417 176 s recall;
+#X obj 466 196 s store;
+#X obj 507 168 s save;
+#X obj 289 318 s mode;
+#X obj 11 338 s gain;
+#X connect 0 0 12 0;
+#X connect 2 0 16 0;
+#X connect 5 0 4 0;
+#X connect 5 0 45 0;
+#X connect 8 0 9 0;
+#X connect 9 0 11 0;
+#X connect 10 0 5 0;
+#X connect 11 0 0 0;
+#X connect 12 0 13 0;
+#X connect 13 0 1 0;
+#X connect 13 0 56 0;
+#X connect 14 0 2 0;
+#X connect 15 0 14 0;
+#X connect 16 0 3 0;
+#X connect 16 0 43 0;
+#X connect 17 0 20 0;
+#X connect 18 0 20 0;
+#X connect 19 0 20 0;
+#X connect 20 0 22 0;
+#X connect 21 0 17 0;
+#X connect 21 1 18 0;
+#X connect 21 2 19 0;
+#X connect 22 0 25 0;
+#X connect 23 0 21 0;
+#X connect 24 0 55 0;
+#X connect 25 0 28 0;
+#X connect 28 0 32 0;
+#X connect 29 0 31 0;
+#X connect 30 0 29 0;
+#X connect 31 0 28 0;
+#X connect 32 0 24 0;
+#X connect 33 0 52 0;
+#X connect 34 0 33 0;
+#X connect 35 0 53 0;
+#X connect 36 0 35 0;
+#X connect 37 0 38 0;
+#X connect 38 0 54 0;
+#X connect 39 0 46 0;
+#X connect 42 0 15 0;
+#X connect 42 0 3 0;
+#X connect 44 0 10 0;
+#X connect 44 0 4 0;
+#X connect 47 0 40 0;
+#X connect 48 0 41 0;
+#X connect 49 0 8 0;
+#X connect 49 0 1 0;
+#X connect 50 0 7 0;
+#X connect 51 0 23 0;
+#X coords 0 0 1 1 600 185 1;
+#X restore 243 21 pd GUI;
+#X obj 382 435 pink~;
+#N canvas 0 0 456 306 parameter_memory_management 0;
+#X msg 222 114 recall;
+#X msg 349 113 store;
+#X obj 55 63 loadbang;
+#X obj 55 105 pp add;
+#X obj 189 290 pp from;
+#X obj 86 267 iem_pbank_csv 4 10;
+#X obj 189 315 list2send 4;
+#X msg 55 84 0 gain \, 1 freq \, 2 Q \, 3 mode;
+#X msg 309 225 read test_pbank.txt brw;
+#X obj 309 204 loadbang;
+#X msg 437 143 write test_pbank.txt brw;
+#X obj 86 215 receive2list 4;
+#X obj 242 78 t b f;
+#X obj 242 56 inlet;
+#X obj 380 53 inlet;
+#X obj 379 80 t b f;
+#X obj 452 53 inlet;
+#X obj 452 83 bang;
+#X connect 0 0 5 0;
+#X connect 1 0 5 0;
+#X connect 2 0 7 0;
+#X connect 3 0 6 0;
+#X connect 3 0 11 0;
+#X connect 4 0 6 0;
+#X connect 5 1 4 0;
+#X connect 7 0 3 0;
+#X connect 8 0 5 0;
+#X connect 9 0 8 0;
+#X connect 10 0 5 0;
+#X connect 11 0 5 0;
+#X connect 12 0 0 0;
+#X connect 12 1 5 1;
+#X connect 13 0 12 0;
+#X connect 14 0 15 0;
+#X connect 15 0 1 0;
+#X connect 15 1 5 1;
+#X connect 16 0 17 0;
+#X connect 17 0 10 0;
+#X restore 104 476 pd parameter_memory_management;
+#X text 29 46 (c) musil@iem.at;
+#X text 7 367 ****************** DSP ***********************;
+#X text 11 246 ****************** GUI ***********************;
+#X obj 438 495 prvu~;
+#X text 294 246 ****************** GUI ***********************;
+#X text 578 246 ****************** GUI ***********************;
+#X text 289 367 ****************** DSP ***********************;
+#X text 573 367 ****************** DSP ***********************;
+#X obj 717 416 r audio;
+#X obj 730 458 s perf_peak;
+#X obj 717 478 s perf_mean;
+#X obj 609 446 r mode;
+#X obj 559 421 r Q;
+#X obj 502 408 r freq;
+#X obj 436 406 r gain;
+#X obj 438 517 s out_level;
+#X obj 279 435 r save;
+#X obj 191 436 r store;
+#X obj 104 437 r recall;
+#X connect 2 0 22 0;
+#X connect 2 1 21 0;
+#X connect 8 0 3 0;
+#X connect 8 0 3 1;
+#X connect 8 0 15 0;
+#X connect 10 0 8 0;
+#X connect 15 0 27 0;
+#X connect 20 0 2 0;
+#X connect 23 0 8 4;
+#X connect 23 0 7 0;
+#X connect 24 0 6 0;
+#X connect 24 0 8 3;
+#X connect 25 0 5 0;
+#X connect 25 0 8 2;
+#X connect 26 0 4 0;
+#X connect 26 0 8 1;
+#X connect 28 0 11 2;
+#X connect 29 0 11 1;
+#X connect 30 0 11 0;
diff --git a/examples/2_GUI_DSP_parameter_management.pd b/examples/2_GUI_DSP_parameter_management.pd new file mode 100644 index 0000000..74fcaa2 --- /dev/null +++ b/examples/2_GUI_DSP_parameter_management.pd @@ -0,0 +1,454 @@ +#N canvas 21 46 962 572 10;
+#X text 55 20 IEM KUG;
+#X text 29 31 graz \, austria 2003;
+#X obj 792 387 dsp;
+#X obj 279 449 dac~;
+#X floatatom 306 381 5 0 0 0 - - -;
+#X floatatom 398 378 5 0 0 0 - - -;
+#X floatatom 494 399 5 0 0 0 - - -;
+#X symbolatom 490 471 3 0 0 0 - - -;
+#N canvas 0 0 745 495 multi_filter~ 0;
+#X obj 116 45 inlet~;
+#X obj 114 403 outlet~;
+#X obj 115 174 lp2~ 440 2 100;
+#X obj 212 174 hp2~ 440 2 100;
+#X obj 308 174 rbpq2~ 440 2 100;
+#X obj 115 272 mull~ 1 100;
+#X obj 486 226 route 0 1 2;
+#X obj 115 303 +~;
+#X obj 115 327 +~;
+#X obj 332 48 inlet;
+#X obj 422 46 inlet;
+#X text 114 23 sig_in;
+#X text 432 27 Q;
+#X obj 486 45 inlet;
+#X obj 486 206 hdl 15 1 0 3 empty empty empty 0 -6 0 8 -262144 -1 -1
+0;
+#X text 334 27 freq_Hz;
+#X obj 230 45 inlet;
+#X text 232 26 gain_db;
+#X obj 230 95 dbtorms;
+#X obj 115 375 mull~ 0.1 100;
+#X msg 486 138 0;
+#X msg 512 138 1;
+#X msg 538 138 2;
+#X text 487 29 mode;
+#X obj 486 178 t f;
+#X obj 486 117 route lp hp bp;
+#X obj 307 270 mull~ 0 100;
+#X obj 213 271 mull~ 0 100;
+#X obj 230 68 + 100;
+#X obj 486 96 unsymbol;
+#X connect 0 0 2 0;
+#X connect 0 0 3 0;
+#X connect 0 0 4 0;
+#X connect 2 0 5 0;
+#X connect 3 0 27 0;
+#X connect 4 0 26 0;
+#X connect 5 0 7 0;
+#X connect 6 0 5 1;
+#X connect 6 1 27 1;
+#X connect 6 2 26 1;
+#X connect 7 0 8 0;
+#X connect 8 0 19 0;
+#X connect 9 0 2 1;
+#X connect 9 0 3 1;
+#X connect 9 0 4 1;
+#X connect 10 0 2 2;
+#X connect 10 0 3 2;
+#X connect 10 0 4 2;
+#X connect 13 0 29 0;
+#X connect 14 0 6 0;
+#X connect 16 0 28 0;
+#X connect 18 0 19 1;
+#X connect 19 0 1 0;
+#X connect 20 0 24 0;
+#X connect 21 0 24 0;
+#X connect 22 0 24 0;
+#X connect 24 0 14 0;
+#X connect 25 0 20 0;
+#X connect 25 1 21 0;
+#X connect 25 2 22 0;
+#X connect 26 0 8 1;
+#X connect 27 0 7 1;
+#X connect 28 0 18 0;
+#X connect 29 0 25 0;
+#X restore 279 416 pd multi_filter~;
+#N canvas 273 19 634 194 GUI 0;
+#X obj 69 23 vsl 15 128 0 127 0 0 empty empty gain 0 -8 0 8 -44926
+-1 -1 6900 1;
+#X obj 70 159 nbx 4 12 -1e+037 1e+037 0 0 empty empty dB 48 7 0 10
+-225280 -1 -1 -3 256;
+#X obj 196 23 vsl 15 128 9 136 0 0 midi_freq_dsp midi_freq_gui freq
+0 -8 192 8 -250685 -1 -1 0 1;
+#X obj 197 160 nbx 5 12 -1e+037 1e+037 0 0 empty empty Hz 58 7 0 10
+-257472 -1 -1 0 256;
+#X obj 293 160 nbx 4 12 -1e+037 1e+037 0 0 empty empty empty 48 7 0
+10 -262131 -1 -1 0 256;
+#X obj 293 24 vsl 15 128 0.1 10 1 0 empty empty Q 0 -8 0 8 -260818
+-1 -1 0 1;
+#X obj 335 50 cnv 8 20 15 empty empty lowpass 0 5 0 10 -262144 -66577
+0;
+#X obj 87 32 vu 15 120 empty out -1 -8 0 8 -66577 -1 1 0;
+#X obj 10 231 + 100;
+#X obj 10 252 dbtofad;
+#X msg 227 46 set \$1;
+#X msg 10 274 set \$1;
+#X obj 11 297 fadtodb;
+#X obj 11 318 - 100;
+#X msg 131 60 set \$1;
+#X obj 131 40 ftom;
+#X obj 131 109 mtof;
+#X msg 376 272 0;
+#X msg 402 272 1;
+#X msg 428 272 2;
+#X obj 376 297 t f;
+#X obj 376 249 route lp hp bp;
+#X msg 376 318 set \$1;
+#X obj 376 225 unsymbol;
+#X obj 284 297 symbol;
+#X obj 317 48 vradio 15 1 0 3 empty empty mode 0 -6 0 10 -24198 -1
+-1 0;
+#X obj 335 66 cnv 8 20 15 empty empty highpass 0 5 0 10 -262144 -66577
+0;
+#X obj 335 82 cnv 8 20 15 empty empty bandpass 0 5 0 10 -262144 -66577
+0;
+#X obj 284 253 iem_sel_any;
+#X msg 186 214 0 lp \, 1 hp \, 2 bp;
+#X obj 186 193 loadbang;
+#X obj 186 235 pp add;
+#X obj 284 275 route set;
+#X floatatom 417 130 5 0 9 0 - - -;
+#X obj 417 25 vradio 10 1 0 10 empty empty recall_preset 0 -6 0 8 -257989
+-1 -1 0;
+#X floatatom 466 157 5 0 9 0 - - -;
+#X obj 466 52 vradio 10 1 0 10 empty empty store_preset 0 -6 0 8 -259803
+-1 -1 0;
+#X obj 507 101 bng 35 250 50 0 empty empty save_file 0 -6 0 8 -259609
+-237569 -1;
+#X obj 417 176 s recall_gui;
+#X obj 466 196 s store_gui;
+#X obj 507 168 s save_gui;
+#X msg 507 147 1;
+#X obj 10 30 tgl 15 0 empty empty DSP 0 -8 0 10 -24198 -1 -1 1 1;
+#X obj 10 69 nbx 4 12 -1e+037 1e+037 0 0 empty empty peak 0 -7 0 10
+-195568 -1 -1 0 256;
+#X obj 10 98 nbx 4 12 -1e+037 1e+037 0 0 empty empty mean 0 -7 0 10
+-195568 -1 -1 1.11 256;
+#X obj 10 173 r perf_peak_gui;
+#X obj 10 191 r perf_mean_gui;
+#X obj 10 153 s audio_gui;
+#X obj 145 270 r out_level_gui;
+#X obj 227 26 r Q_gui_in;
+#X obj 222 128 s Q_gui_out;
+#X obj 284 318 s mode_gui_out;
+#X obj 376 199 r mode_gui_in;
+#X obj 11 338 s gain_gui_out;
+#X obj 10 210 r gain_gui_in;
+#X obj 131 176 s freq_gui_out;
+#X obj 111 6 r freq_gui_in;
+#X obj 57 233 s connect_back_gui;
+#X obj 10 128 tgl 15 0 empty empty connect 0 -6 0 8 -260818 -1 -1 1
+1;
+#X obj 28 130 cnv 8 1 1 empty empty back 0 6 0 10 -262144 -1 0;
+#X connect 0 0 12 0;
+#X connect 2 0 16 0;
+#X connect 5 0 4 0;
+#X connect 5 0 50 0;
+#X connect 8 0 9 0;
+#X connect 9 0 11 0;
+#X connect 10 0 5 0;
+#X connect 11 0 0 0;
+#X connect 12 0 13 0;
+#X connect 13 0 1 0;
+#X connect 13 0 53 0;
+#X connect 14 0 2 0;
+#X connect 15 0 14 0;
+#X connect 16 0 3 0;
+#X connect 16 0 55 0;
+#X connect 17 0 20 0;
+#X connect 18 0 20 0;
+#X connect 19 0 20 0;
+#X connect 20 0 22 0;
+#X connect 21 0 17 0;
+#X connect 21 1 18 0;
+#X connect 21 2 19 0;
+#X connect 22 0 25 0;
+#X connect 23 0 21 0;
+#X connect 24 0 51 0;
+#X connect 25 0 28 0;
+#X connect 28 0 32 0;
+#X connect 29 0 31 0;
+#X connect 30 0 29 0;
+#X connect 31 0 28 0;
+#X connect 32 0 24 0;
+#X connect 33 0 38 0;
+#X connect 34 0 33 0;
+#X connect 35 0 39 0;
+#X connect 36 0 35 0;
+#X connect 37 0 41 0;
+#X connect 41 0 40 0;
+#X connect 42 0 47 0;
+#X connect 45 0 43 0;
+#X connect 46 0 44 0;
+#X connect 48 0 7 0;
+#X connect 49 0 10 0;
+#X connect 49 0 4 0;
+#X connect 52 0 23 0;
+#X connect 54 0 8 0;
+#X connect 54 0 1 0;
+#X connect 56 0 15 0;
+#X connect 56 0 3 0;
+#X connect 58 0 57 0;
+#X coords 0 0 1 1 600 190 1;
+#X restore 243 21 pd GUI;
+#X obj 268 385 pink~;
+#N canvas 0 0 638 448 parameter_memory_management 0;
+#X msg 258 107 recall;
+#X msg 349 113 store;
+#X obj 20 10 loadbang;
+#X obj 20 52 pp add;
+#X obj 189 290 pp from;
+#X obj 86 267 iem_pbank_csv 4 10;
+#X obj 189 319 list2send 4;
+#X msg 309 225 read test_pbank.txt brw;
+#X obj 309 204 loadbang;
+#X msg 437 143 write test_pbank.txt brw;
+#X obj 86 215 receive2list 4;
+#X obj 260 81 t b f;
+#X obj 260 59 inlet;
+#X obj 359 60 inlet;
+#X obj 358 87 t b f;
+#X obj 440 62 inlet;
+#X obj 440 88 bang;
+#X msg 20 31 0 gain_dsp_in \, 1 freq_dsp_in \, 2 Q_dsp_in \, 3 mode_dsp_in
+;
+#X obj 281 255 loadbang;
+#X obj 281 297 pp add;
+#X msg 281 276 0 gain_dsp_out \, 1 freq_dsp_out \, 2 Q_dsp_out \, 3
+mode_dsp_out;
+#X connect 0 0 5 0;
+#X connect 1 0 5 0;
+#X connect 2 0 17 0;
+#X connect 3 0 10 0;
+#X connect 4 0 6 0;
+#X connect 5 1 4 0;
+#X connect 7 0 5 0;
+#X connect 8 0 7 0;
+#X connect 9 0 5 0;
+#X connect 10 0 5 0;
+#X connect 11 0 0 0;
+#X connect 11 1 5 1;
+#X connect 12 0 11 0;
+#X connect 13 0 14 0;
+#X connect 14 0 1 0;
+#X connect 14 1 5 1;
+#X connect 15 0 16 0;
+#X connect 16 0 9 0;
+#X connect 17 0 3 0;
+#X connect 18 0 20 0;
+#X connect 19 0 6 0;
+#X connect 20 0 19 0;
+#X restore 15 443 pd parameter_memory_management;
+#X text 27 7 (c) musil@iem.at;
+#X text 11 309 ****************** DSP ***********************;
+#X text 11 267 ****************** GUI ***********************;
+#X obj 15 404 r recall_dsp;
+#X obj 102 403 r store_dsp;
+#X obj 190 402 r save_dsp;
+#X obj 805 408 s perf_peak_dsp;
+#X obj 792 428 s perf_mean_dsp;
+#X obj 792 366 r audio_dsp;
+#X obj 334 443 prvu~;
+#X obj 334 465 s out_level_dsp;
+#X text 294 267 ****************** GUI ***********************;
+#X text 578 267 ****************** GUI ***********************;
+#X text 293 309 ****************** DSP ***********************;
+#X text 577 309 ****************** DSP ***********************;
+#X msg 38 160 disconnect;
+#N canvas 0 0 528 308 netsend 0;
+#X obj 91 48 inlet;
+#X obj 95 233 outlet;
+#X obj 91 74 route connect disconnect send;
+#X obj 56 127 bang;
+#X obj 147 98 bang;
+#X msg 56 151 1;
+#X msg 147 123 0;
+#X obj 179 228 spigot;
+#X obj 179 268 iem_s;
+#X obj 275 206 pp set;
+#X msg 287 158 clear;
+#X obj 362 122 pp list;
+#X obj 362 155 mergefilename _;
+#X connect 0 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 0 11 0;
+#X connect 2 1 4 0;
+#X connect 2 2 7 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 1 0;
+#X connect 5 0 7 1;
+#X connect 6 0 1 0;
+#X connect 6 0 7 1;
+#X connect 6 0 10 0;
+#X connect 7 0 8 0;
+#X connect 9 0 8 1;
+#X connect 10 0 8 1;
+#X connect 11 0 12 0;
+#X connect 12 0 9 0;
+#X restore 54 226 pd netsend;
+#X msg 20 139 connect my_dsp_workstation 3000;
+#N canvas 0 0 610 373 from_gui_to_dsp 0;
+#X obj 35 38 loadbang;
+#X obj 35 110 pp add;
+#X obj 35 200 outlet;
+#X obj 35 175 pp send;
+#X obj 35 132 receive2list 9;
+#X msg 35 59 0 gain_gui_out \, 1 freq_gui_out \, 2 Q_gui_out \, 3 mode_gui_out
+\, 4 audio_gui \, 5 recall_gui \, 6 store_gui \, 7 save_gui \, 8 connect_back_gui
+;
+#X connect 0 0 5 0;
+#X connect 1 0 4 0;
+#X connect 3 0 2 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X restore 54 181 pd from_gui_to_dsp;
+#N canvas 0 0 825 506 from_dsp_to_gui 0;
+#X obj 122 44 loadbang;
+#X obj 122 101 pp add;
+#X obj 53 132 list2send 7;
+#X msg 122 65 0 gain_gui_in \, 1 freq_gui_in \, 2 Q_gui_in \, 3 mode_gui_in
+\, 4 perf_peak_gui \, 5 perf_mean_gui \, 6 out_level_gui;
+#X obj 53 21 inlet;
+#X connect 0 0 3 0;
+#X connect 1 0 2 0;
+#X connect 3 0 1 0;
+#X connect 4 0 2 0;
+#X restore 578 242 pd from_dsp_to_gui;
+#N canvas 0 0 452 302 netreceive 0;
+#X obj 96 253 outlet;
+#X obj 96 197 r my_gui_notebook_3001;
+#X connect 1 0 0 0;
+#X restore 578 220 pd netreceive 3001;
+#X floatatom 54 250 5 0 0 0 - - -;
+#N canvas 0 0 462 312 netreceive 0;
+#X obj 96 253 outlet;
+#X obj 96 197 r my_dsp_workstation_3000;
+#X connect 1 0 0 0;
+#X restore 14 338 pd netreceive 3000;
+#N canvas 0 0 841 522 from_gui_to_dsp 0;
+#X obj 122 44 loadbang;
+#X obj 122 119 pp add;
+#X obj 53 21 inlet;
+#X obj 53 150 list2send 9;
+#X msg 122 65 0 gain_dsp_in \, 1 freq_dsp_in \, 2 Q_dsp_in \, 3 mode_dsp_in
+\, 4 audio_dsp \, 5 recall_dsp \, 6 store_dsp \, 7 save_dsp \, 8 connect_back_dsp
+;
+#X connect 0 0 4 0;
+#X connect 1 0 3 0;
+#X connect 2 0 3 0;
+#X connect 4 0 1 0;
+#X restore 14 360 pd from_gui_to_dsp;
+#X msg 577 400 disconnect;
+#N canvas 0 0 530 310 netsend 0;
+#X obj 91 48 inlet;
+#X obj 95 233 outlet;
+#X obj 91 74 route connect disconnect send;
+#X obj 56 127 bang;
+#X obj 147 98 bang;
+#X msg 56 151 1;
+#X msg 147 123 0;
+#X obj 179 228 spigot;
+#X obj 179 268 iem_s;
+#X obj 275 206 pp set;
+#X msg 287 158 clear;
+#X obj 362 122 pp list;
+#X obj 362 155 mergefilename _;
+#X connect 0 0 2 0;
+#X connect 2 0 3 0;
+#X connect 2 0 11 0;
+#X connect 2 1 4 0;
+#X connect 2 2 7 0;
+#X connect 3 0 5 0;
+#X connect 4 0 6 0;
+#X connect 5 0 1 0;
+#X connect 5 0 7 1;
+#X connect 6 0 1 0;
+#X connect 6 0 7 1;
+#X connect 6 0 10 0;
+#X connect 7 0 8 0;
+#X connect 9 0 8 1;
+#X connect 10 0 8 1;
+#X connect 11 0 12 0;
+#X connect 12 0 9 0;
+#X restore 646 438 pd netsend;
+#X floatatom 646 462 5 0 0 0 - - -;
+#X msg 595 379 connect my_gui_notebook 3001;
+#N canvas 0 0 622 385 from_dsp_to_gui 0;
+#X obj 35 38 loadbang;
+#X obj 35 110 pp add;
+#X obj 35 200 outlet;
+#X obj 35 175 pp send;
+#X obj 35 132 receive2list 7;
+#X msg 35 59 0 gain_dsp_out \, 1 freq_dsp_out \, 2 Q_dsp_out \, 3 mode_dsp_out
+\, 4 perf_peak_dsp \, 5 perf_mean_dsp \, 6 out_level_dsp;
+#X connect 0 0 5 0;
+#X connect 1 0 4 0;
+#X connect 3 0 2 0;
+#X connect 4 0 3 0;
+#X connect 5 0 1 0;
+#X restore 646 401 pd from_dsp_to_gui;
+#X obj 577 337 r connect_back_dsp;
+#X obj 577 358 sel 0 1;
+#X obj 306 338 r gain_dsp_in;
+#X obj 398 336 r freq_dsp_in;
+#X obj 494 358 r Q_dsp_in;
+#X obj 490 427 r mode_dsp_in;
+#X obj 490 447 r mode_dsp_out;
+#X obj 494 378 r Q_dsp_out;
+#X obj 398 356 r freq_dsp_out;
+#X obj 306 359 r gain_dsp_out;
+#X text 36 60 1.) connect;
+#X text 36 71 2.) connect back;
+#X text 36 82 3.) DSP on;
+#X connect 2 0 19 0;
+#X connect 2 1 18 0;
+#X connect 8 0 3 0;
+#X connect 8 0 3 1;
+#X connect 8 0 21 0;
+#X connect 10 0 8 0;
+#X connect 15 0 11 0;
+#X connect 16 0 11 1;
+#X connect 17 0 11 2;
+#X connect 20 0 2 0;
+#X connect 21 0 22 0;
+#X connect 27 0 28 0;
+#X connect 28 0 33 0;
+#X connect 29 0 28 0;
+#X connect 30 0 28 0;
+#X connect 32 0 31 0;
+#X connect 34 0 35 0;
+#X connect 36 0 37 0;
+#X connect 37 0 38 0;
+#X connect 39 0 37 0;
+#X connect 40 0 37 0;
+#X connect 41 0 42 0;
+#X connect 42 0 36 0;
+#X connect 42 1 39 0;
+#X connect 43 0 4 0;
+#X connect 43 0 8 1;
+#X connect 44 0 5 0;
+#X connect 44 0 8 2;
+#X connect 45 0 6 0;
+#X connect 45 0 8 3;
+#X connect 46 0 7 0;
+#X connect 46 0 8 4;
+#X connect 47 0 8 4;
+#X connect 47 0 7 0;
+#X connect 48 0 6 0;
+#X connect 48 0 8 3;
+#X connect 49 0 5 0;
+#X connect 49 0 8 2;
+#X connect 50 0 4 0;
+#X connect 50 0 8 1;
diff --git a/examples/test_pbank.txt b/examples/test_pbank.txt new file mode 100644 index 0000000..d0844f8 --- /dev/null +++ b/examples/test_pbank.txt @@ -0,0 +1,10 @@ +-8.095 1975.53 6.01904 lp
+-8.095 1975.53 6.01904 hp
+-8.095 1975.53 6.01904 bp
+-4.39667 554.365 10 lp
+-4.39667 554.365 10 hp
+-4.39667 554.365 10 bp
+-8.095 2093 6.71076 lp
+-8.095 2093 6.71076 hp
+-8.095 2093 6.71076 bp
+-1.86501 1567.98 0.166139 bp
diff --git a/iemabs/0.INTRO.txt b/iemabs/0.INTRO.txt new file mode 100644 index 0000000..eca41ee --- /dev/null +++ b/iemabs/0.INTRO.txt @@ -0,0 +1,177 @@ +contents of iemlib Release 1.15 from December 2003 + +============================ DSP~ =============================== + +------------------------- filter~ ------------------------------- +FIR~ finite impuls response filter, with array-coefficients + +maverage~ moving average filter, (IIR + delay) + +ap1~ allpass 1.order +ap2~ allpass 2.order +bpq2~ bandpass 2.order with Q-inlet +bpw2~ bandpass 2.order with bandwidth-inlet +bsq2~ bandstop 2.order (notch) with Q-inlet +bsw2~ bandstop 2.order (notch) with bandwidth-inlet +hp1~ highpass 1.order +hp2~ highpass 2.order +lp1~ lowpass 1.order +lp2~ lowpass 2.order +rbpq2~ resonance-bandpass 2.order with Q-inlet +rbpw2~ resonance-bandpass 2.order with bandwidth-inlet + +hml_shelf~ high-middle-low shelving-filter with freq- and gain-inlets +lp1_t~ lowpass 1.order with time_constant inlet +para_bp2~ parametrical bandpass 2. order with freq-, Q- and gain-inlet + +hp2_butt~, hp3_butt~, hp4_butt~, hp5_butt~, hp6_butt~, hp7_butt~, +hp8_butt~, hp9_butt~, hp10_butt~ + highpass 2.3.4.5.6.7.8.9.10.order with butterworth characteristic +hp2_cheb~, hp3_cheb~, hp4_cheb~, hp5_cheb~, hp6_cheb~, hp7_cheb~, +hp8_cheb~, hp9_cheb~, hp10_cheb~ + highpass 2.3.4.5.6.7.8.9.10.order with chebyshev characteristic +hp2_bess~, hp3_bess~, hp4_bess~, hp5_bess~, hp6_bess~, hp7_bess~, +hp8_bess~, hp9_bess~, hp10_bess~ + highpass 2.3.4.5.6.7.8.9.10.order with bessel characteristic +hp2_crit~, hp3_crit~, hp4_crit~, hp5_crit~, hp6_crit~, hp7_crit~, +hp8_crit~, hp9_crit~, hp10_crit~ + highpass 2.3.4.5.6.7.8.9.10.order with critical damping +lp2_butt~, lp3_butt~, lp4_butt~, lp5_butt~, lp6_butt~, lp7_butt~, +lp8_butt~, lp9_butt~, lp10_butt~ + lowpass 2.3.4.5.6.7.8.9.10.order with butterworth characteristic +lp2_cheb~, lp3_cheb~, lp4_cheb~, lp5_cheb~, lp6_cheb~, lp7_cheb~, +lp8_cheb~, lp9_cheb~, lp10_cheb~ + lowpass 2.3.4.5.6.7.8.9.10.order with chebyshev characteristic +lp2_bess~, lp3_bess~, lp4_bess~, lp5_bess~, lp6_bess~, lp7_bess~, +lp8_bess~, lp9_bess~, lp10_bess~ + lowpass 2.3.4.5.6.7.8.9.10.order with bessel characteristic +lp2_crit~, lp3_crit~, lp4_crit~, lp5_crit~, lp6_crit~, lp7_crit~, +lp8_crit~, lp9_crit~, lp10_crit~ + lowpass 2.3.4.5.6.7.8.9.10.order with critical damping + +vcf_hp2~, vcf_hp4~, vcf_hp6~, vcf_hp8~ + highpass 2.4.6.8.order with freq- and Q-signal-inlets +vcf_lp2~, vcf_lp4~, vcf_lp6~, vcf_lp8~ + lowpass 2.4.6.8.order with freq- and Q-signal-inlets +vcf_bp2~, vcf_bp4~, vcf_bp6~, vcf_bp8~ + bandpass 2.4.6.8.order with freq- and Q-signal-inlets +vcf_rbp2~, vcf_rbp4~, vcf_rbp6~, vcf_rbp8~ + resonance-bandpass 2.4.6.8.order with freq- and Q-signal-inlets + +------------------------ arithmetic~ ---------------------------- +addl~ signal-addition with line~ +divl~ signal-divison with line~ +mull~ signal-multiplication with line~ +subl~ signal-subtraction with line~ + +------------------------- converter~ ---------------------------- +prvu~ peak and rms VU-meter interface +pvu~ peak VU-meter interface +rvu~ rms VU-meter interface +unsig~ signal to float converter + +------------------ t3~ - time-tagged-trigger -------------------- +-- inputmessages allow a sample-accurate access to signalshape -- +t3_sig~ time tagged trigger sig~ +t3_line~ time tagged trigger line~ + +--------------------------- misc~ ------------------------------- +fade~ fade-in fade-out shaper (need line~) +iem_blocksize~ blocksize of a window in samples +iem_samplerate~ samplerate of a window in Hertz +int_fract~ split signal-float to integer- and fractal-part +LFO_noise~ downsampled 2-point interpolated white noise +mp3play~ mp3 stereo player +peakenv~ peak envelope shaper +pink~ pink noise +round~ round signal-float to nearest integer +sin_phase~ output phase-difference of 2 sinewaves in samples + +========================= control ============================== + +------------- gui (included into millers pd) -------------------- + +bng bang, display and generate a bang-message +cnv canvas, colored background and text +hdl horizontal dial, for multiplex usage +hradio horizontal radiobutton, only float in/out +hsl horizontal slider +nbx numberbox, the second +tgl 2 state toggle +vdl vertical dial, for multiplex usage +vradio vertical radiobutton, only float in/out +vsl vertical slider +vu vu-meter, display rms- + peak-level in dB + +--------------------- float operating ------------------------- +1p1z float-message-filter 1.order +db2v db to rms +dbtofad midi-db to fader-characteristic +fadtodb fader-characteristic to midi-db +fadtorms fader-characteristic to rms +rmstofad rms to fader-characteristic +round_zero round numbers near zero to zero +speedlim reduce speed of a numeric stream +split3 part a numeric stream into 3 ways +split part a numeric stream into 2 ways (like moses) +transf_fader partial linear characteristic diagram (like table) +v2db rms to db +wrap wraparound + +-------------------- symbol operating ------------------------- +mergefilename merge a list of symbols together +splitfilename divide a symbol into 2 parts +stripfilename strip n characters of a symbol +unsymbol convert a symbol- to a anything-message + +------------------- anything operating ------------------------ +any store and recall any message (like f, or symbol) +iem_append append a message to any messages (obsolete: merge_any) +iem_prepend prepend a message to any messages (abbr. pp or prepend) + +-------------------------- init ------------------------------- +default replace initial-argument, if it is zero +dollarg receive parent initial-arguments (abbr. $n) +dsp control audio-engine, calculate dsp-performance (aka. dsp~) +float24 store a 24-bit accurate float-number +init initialize a message via loadbang (abbr. ii) +once any message pass through only the first time + +------------------------- counter ----------------------------- +exp_inc exponential increment counter (bang triggered) +for++ incremental counter (triggered by internal metro) +modulo_counter endless loop counter (bang triggered) + +-------------------------- misc ------------------------------- +add2_comma add a comma-separated message to a messagebox +bpe break point envelope controller +f2note frequency to midi+cents+note +gate interruptible message connection (like spigot) +iem_i_route variation of route (abbr. iiroute) +iem_receive catch "sent" messages (receive-name-input) (abbr. iem_r) +iem_route improvement of route +iem_sel_any control a message-box with multiple content +iem_send send messages to named object (send-name-input)(ab. iem_s) +pre_inlet output an identifier-message and then the incoming message +prepend_ascii output an identifier-message and then the incoming message +soundfile_info output header-info of a wav-file +toggle_mess control a message-box with multiple content (abbr. tm) + +------------------- parameter handling ------------------------ +iem_pbank_csv parameter memory manager (csv-format) (like textfile) +list2send array of send-objects +receive2list array of receive-objects + +--------------- t3 - time-tagged-trigger --------------------- +----------- a time-tag is prepended to each message ----------- +----- so these objects allow a sample-accurate access to ------ +---------- the signal-objects t3_sig~ and t3_line~ ------------ +t3_bpe time tagged trigger break point envelope +t3_delay time tagged trigger delay +t3_metro time tagged trigger metronom +t3_timer time tagged trigger timer + +-------------- obsolete --------------------------------------- +post_netreceive +pre_netsend + diff --git a/iemabs/1p1z.pd b/iemabs/1p1z.pd new file mode 100644 index 0000000..bc17882 --- /dev/null +++ b/iemabs/1p1z.pd @@ -0,0 +1,64 @@ +#N canvas 228 263 511 330 10; +#X text 6 279 (c) musil@iem.kug.ac.at; +#X text 48 289 IEM KUG; +#X obj 22 221 +; +#X text 8 6 1p1z; +#X text 23 298 graz \, austria 2001; +#X obj 169 71 inlet; +#X obj 22 49 inlet; +#X obj 22 243 outlet; +#X text 104 22 y[n] = a0*x[n] + a1*x[n-1] + b1*y[n-1]; +#X text 176 53 a0; +#X text 25 34 x[n]; +#X text 24 259 y[n]; +#X obj 206 71 inlet; +#X text 213 53 a1; +#X obj 206 145 f \$2; +#X obj 169 118 f \$1; +#X obj 242 71 inlet; +#X text 249 53 b1; +#X obj 242 167 f \$3; +#X obj 284 52 loadbang; +#X text 64 102 x[n-1]; +#X obj 40 202 +; +#X obj 22 133 *; +#X obj 40 160 *; +#X obj 59 182 *; +#X text 82 143 y[n-1]; +#X obj 284 72 t b b b; +#X obj 40 98 f; +#X obj 59 138 f; +#X obj 22 71 t f b b; +#X obj 352 83 inlet; +#X obj 430 123 inlet; +#X text 346 66 x[n-1]init; +#X text 428 105 y[n-1]init; +#X text 147 202 1.arg: <float> a0; +#X text 147 213 2.arg: <float> a1; +#X text 147 224 3.arg: <float> b1; +#X text 63 5 <float> control-IIR-filter 1.order; +#X connect 2 0 7 0; +#X connect 2 0 28 1; +#X connect 5 0 15 0; +#X connect 6 0 29 0; +#X connect 12 0 14 0; +#X connect 14 0 23 1; +#X connect 15 0 22 1; +#X connect 16 0 18 0; +#X connect 18 0 24 1; +#X connect 19 0 26 0; +#X connect 21 0 2 1; +#X connect 22 0 2 0; +#X connect 23 0 21 0; +#X connect 24 0 21 1; +#X connect 26 0 15 0; +#X connect 26 1 14 0; +#X connect 26 2 18 0; +#X connect 27 0 23 0; +#X connect 28 0 24 0; +#X connect 29 0 22 0; +#X connect 29 0 27 1; +#X connect 29 1 27 0; +#X connect 29 2 28 0; +#X connect 30 0 27 1; +#X connect 31 0 28 1; diff --git a/iemabs/7_guis-INTRO.pd b/iemabs/7_guis-INTRO.pd new file mode 100644 index 0000000..1e4c821 --- /dev/null +++ b/iemabs/7_guis-INTRO.pd @@ -0,0 +1,813 @@ +#N canvas 153 19 564 568 10; +#X obj -4 -4 my_canvas 15 600 700 empty empty gui-INTRO 237 20 2 14 +-261819 -143491; +#X text 101 4 bng; +#X obj 456 313 vslider 15 128 0 127 0 0 empty empty default_15x128 +8 -8 0 8 -262144 -1 -1 0 1; +#X obj 354 42 toggle 100 1 empty empty 100_pix 8 -8 0 8 -250685 -24198 +-42246 1 1; +#X obj 57 251 hslider 128 15 0 127 0 0 empty empty default_128x15 8 +-8 0 8 -262144 -1 -1 0 1; +#X obj 78 226 hslider 20 8 0 19 0 0 empty empty min_20x8 8 -8 0 8 -262144 +-1 -1 0 1; +#X obj 478 326 vslider 8 20 0 19 0 0 empty empty min_8x20 8 -8 0 8 +-262144 -1 -1 0 1; +#X obj 458 48 toggle 8 0 empty empty min_8 8 -8 0 8 -262144 -1 -1 0 +1; +#X obj 458 71 toggle 15 0 empty empty default_15 8 -8 0 8 -262144 -1 +-1 0 1; +#X obj 459 109 toggle 30 0 empty empty 30_pix 8 -8 0 8 -262144 -1 -1 +0 1; +#X obj 101 88 bng 30 250 50 0 empty empty 30_pix 8 -8 0 8 -262144 -1 +-1; +#X obj 412 304 vslider 30 250 0 249 0 1 empty empty 30x250 8 -8 0 8 +-184301 -42886 -42246 21800 1; +#X obj 7 271 hslider 251 30 0 250 0 1 empty empty 251x30 8 -8 0 8 -147456 +-1109 -66577 12500 1; +#X text 180 518 (c) musil@iem.kug.ac.at; +#X text 222 531 IEM KUG; +#X text 197 543 graz \, austria 2001; +#X obj 40 343 vu 25 200 empty empty 8 -8 0 8 -1 -99865 1; +#X obj 13 24 bng 75 5000 25 1 empty empty 75pix+init 8 -8 0 8 -262131 +-261458 -123526; +#X obj 100 376 vu 15 120 empty empty 8 -8 0 8 -66577 -1 1; +#X obj 186 375 vu 10 80 empty empty 8 -8 0 8 -66577 -1 1; +#X text 99 313 vu; +#N canvas 438 180 374 414 animate_vu 0; +#X obj 40 211 t f f; +#X obj 65 233 + 6; +#X obj 40 257 pack 0 0; +#X obj 78 94 toggle 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 +0 1; +#X obj 78 115 sel 0 1; +#X obj 78 74 metro 4000; +#X msg 100 137 30 3000; +#X msg 78 167 -130 3000; +#X obj 40 189 line -130 50; +#X obj 78 51 inlet; +#X obj 40 316 outlet; +#X obj 87 316 outlet; +#X obj 134 316 outlet; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 2 1; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 3 0 4 0; +#X connect 4 0 7 0; +#X connect 4 1 6 0; +#X connect 5 0 3 0; +#X connect 6 0 8 0; +#X connect 7 0 8 0; +#X connect 8 0 0 0; +#X connect 9 0 5 0; +#X restore 99 349 pd animate_vu; +#X obj 99 331 toggle 15 1 empty empty empty 8 -8 0 10 -262144 -1 -1 +1 1; +#X text 360 8 toggle = tgl; +#X text 68 198 hslider = hsl; +#X text 430 271 vslider = vsl; +#X obj 13 160 print initial_bang; +#X obj 21 118 bng 15 250 50 0 empty empty default_15 8 -8 0 8 -262144 +-1 -1; +#X obj 104 48 bng 8 250 50 0 empty empty min_8 8 -8 0 10 -262144 -1 +-1; +#X obj 21 137 print no_initial_bang; +#X obj 283 324 my_canvas 15 100 30 empty empty empty 20 12 2 20 -225271 +-66577; +#X obj 283 355 my_canvas 15 100 30 empty empty empty 20 12 2 20 -225280 +-66577; +#X obj 283 386 my_canvas 15 100 30 empty empty empty 20 12 2 20 -261681 +-66577; +#X obj 283 417 my_canvas 15 100 30 empty empty empty 20 12 2 20 -257472 +-66577; +#X obj 172 375 vu 10 80 empty empty 8 -8 0 8 -66577 -1 0; +#X obj 310 203 radiobut 15 1 1 8 empty empty default_8*15 8 -8 0 8 +-262144 -1 -1 2; +#X obj 254 223 radiobut 25 1 1 12 empty empty 12*25 8 -8 0 8 -1433 +-225280 -355 1; +#N canvas 179 78 690 573 nervous 0; +#X obj 10 23 toggle 55 1 empty start_nervously1 start_it 8 -8 0 10 +-260818 -1 -250685 0 1; +#X obj 131 141 bng 51 1200 50 0 empty nerv_bng bang 8 -8 0 10 -253378 +-137031 -222091; +#X obj 120 418 hslider 22 12 0 127 0 0 empty nerv_hsl h-slider 8 -8 +0 10 -71033 -66198 -128091 2100 1; +#X obj 448 140 toggle 11 1 empty nerv_tgl toggle 8 -8 0 10 -141355 +-82199 -51488 0 1; +#X obj 447 383 vslider 15 111 0 127 0 0 empty nerv_vsl v-slider 8 -8 +0 10 -150187 -73940 -248863 340 1; +#N canvas 135 99 382 469 control 0; +#X obj 19 21 inlet; +#X obj 19 50 t b f; +#X obj 19 153 del 900; +#X obj 19 212 del 900; +#X obj 19 93 del 100; +#X obj 19 283 del 900; +#X obj 33 125 f; +#X obj 33 180 f; +#X obj 33 245 f; +#X obj 33 309 f; +#N canvas 280 166 794 432 bng 0; +#X obj 114 260 - 0; +#X obj 148 258 f; +#X obj 147 222 t f b; +#X obj 79 122 random 56789; +#X obj 150 165 random 9876; +#X obj 47 236 - 0; +#X obj 81 234 f; +#X obj 80 198 t f b; +#X obj 150 192 % 50; +#X obj 79 145 % 50; +#X obj 64 289 pack 0 0; +#X obj 85 53 t b b b; +#X obj 234 368 pack 0 0 0; +#X obj 250 29 metro 2000; +#X obj 445 122 random 555666; +#X obj 445 168 + 8; +#X obj 445 145 % 120; +#X obj 84 32 metro 100; +#X obj 234 261 random 1.67772e+07; +#X obj 266 283 random 1.67772e+07; +#X obj 299 315 random 1.67772e+07; +#X obj 84 11 inlet; +#X msg 64 312 \; nerv_bng delta \$1 \$2; +#X msg 234 390 \; nerv_bng color \$1 \$2 \$3; +#X msg 445 192 \; nerv_bng size \$1; +#X msg 250 51 \; nerv_bng bang; +#X obj 234 340 * -1; +#X obj 266 316 * -1; +#X obj 299 342 * -1; +#X connect 0 0 10 1; +#X connect 1 0 0 1; +#X connect 2 0 1 1; +#X connect 2 0 0 0; +#X connect 2 1 1 0; +#X connect 3 0 9 0; +#X connect 4 0 8 0; +#X connect 5 0 10 0; +#X connect 6 0 5 1; +#X connect 7 0 6 1; +#X connect 7 0 5 0; +#X connect 7 1 6 0; +#X connect 8 0 2 0; +#X connect 9 0 7 0; +#X connect 10 0 22 0; +#X connect 11 0 3 0; +#X connect 11 0 14 0; +#X connect 11 0 18 0; +#X connect 11 1 4 0; +#X connect 11 1 19 0; +#X connect 11 2 20 0; +#X connect 12 0 23 0; +#X connect 13 0 25 0; +#X connect 14 0 16 0; +#X connect 15 0 24 0; +#X connect 16 0 15 0; +#X connect 17 0 11 0; +#X connect 18 0 26 0; +#X connect 19 0 27 0; +#X connect 20 0 28 0; +#X connect 21 0 17 0; +#X connect 21 0 13 0; +#X connect 26 0 12 0; +#X connect 27 0 12 1; +#X connect 28 0 12 2; +#X restore 114 143 pd bng; +#N canvas 139 89 794 432 tgl 0; +#X obj 114 260 - 0; +#X obj 148 258 f; +#X obj 147 222 t f b; +#X obj 79 122 random 56789; +#X obj 150 165 random 9876; +#X obj 47 236 - 0; +#X obj 81 234 f; +#X obj 80 198 t f b; +#X obj 150 192 % 50; +#X obj 79 145 % 50; +#X obj 64 289 pack 0 0; +#X obj 85 53 t b b b; +#X obj 445 122 random 555666; +#X obj 445 168 + 8; +#X obj 445 144 % 120; +#X obj 85 31 metro 100; +#X obj 264 28 metro 1000; +#X obj 85 10 inlet; +#X msg 64 312 \; nerv_tgl delta \$1 \$2; +#X msg 226 322 \; nerv_tgl color \$1 \$2 \$3; +#X msg 445 192 \; nerv_tgl size \$1; +#X msg 264 51 \; nerv_tgl bang; +#X obj 226 298 pack 0 0 0; +#X obj 226 191 random 1.67772e+07; +#X obj 258 213 random 1.67772e+07; +#X obj 291 245 random 1.67772e+07; +#X obj 226 270 * -1; +#X obj 258 246 * -1; +#X obj 291 272 * -1; +#X connect 0 0 10 1; +#X connect 1 0 0 1; +#X connect 2 0 1 1; +#X connect 2 0 0 0; +#X connect 2 1 1 0; +#X connect 3 0 9 0; +#X connect 4 0 8 0; +#X connect 5 0 10 0; +#X connect 6 0 5 1; +#X connect 7 0 6 1; +#X connect 7 0 5 0; +#X connect 7 1 6 0; +#X connect 8 0 2 0; +#X connect 9 0 7 0; +#X connect 10 0 18 0; +#X connect 11 0 3 0; +#X connect 11 0 12 0; +#X connect 11 0 23 0; +#X connect 11 1 4 0; +#X connect 11 1 24 0; +#X connect 11 2 25 0; +#X connect 12 0 14 0; +#X connect 13 0 20 0; +#X connect 14 0 13 0; +#X connect 15 0 11 0; +#X connect 16 0 21 0; +#X connect 17 0 15 0; +#X connect 17 0 16 0; +#X connect 22 0 19 0; +#X connect 23 0 26 0; +#X connect 24 0 27 0; +#X connect 25 0 28 0; +#X connect 26 0 22 0; +#X connect 27 0 22 1; +#X connect 28 0 22 2; +#X restore 114 198 pd tgl; +#N canvas 322 99 794 432 hsl 0; +#X obj 114 260 - 0; +#X obj 148 258 f; +#X obj 147 222 t f b; +#X obj 79 122 random 56789; +#X obj 150 165 random 9876; +#X obj 47 236 - 0; +#X obj 81 234 f; +#X obj 80 198 t f b; +#X obj 150 192 % 50; +#X obj 79 145 % 50; +#X obj 64 289 pack 0 0; +#X obj 85 53 t b b b; +#X obj 445 122 random 555666; +#X obj 560 188 + 8; +#X obj 560 128 random 773322; +#X obj 445 208 pack 0 0; +#X obj 84 32 metro 100; +#X obj 561 155 % 30; +#X obj 445 183 + 20; +#X obj 446 149 % 110; +#X obj 254 305 metro 1000; +#X obj 254 327 random 846352; +#X obj 254 350 % 130; +#X obj 84 11 inlet; +#X msg 64 321 \; nerv_hsl delta \$1 \$2; +#X msg 254 373 \; nerv_hsl set \$1; +#X msg 445 231 \; nerv_hsl size \$1 \$2; +#X obj 245 202 pack 0 0 0; +#X obj 245 95 random 1.67772e+07; +#X obj 277 117 random 1.67772e+07; +#X obj 310 149 random 1.67772e+07; +#X obj 245 174 * -1; +#X obj 277 150 * -1; +#X obj 310 176 * -1; +#X msg 245 229 \; nerv_hsl color \$1 \$2 \$3; +#X connect 0 0 10 1; +#X connect 1 0 0 1; +#X connect 2 0 1 1; +#X connect 2 0 0 0; +#X connect 2 1 1 0; +#X connect 3 0 9 0; +#X connect 4 0 8 0; +#X connect 5 0 10 0; +#X connect 6 0 5 1; +#X connect 7 0 6 1; +#X connect 7 0 5 0; +#X connect 7 1 6 0; +#X connect 8 0 2 0; +#X connect 9 0 7 0; +#X connect 10 0 24 0; +#X connect 11 0 3 0; +#X connect 11 0 12 0; +#X connect 11 0 28 0; +#X connect 11 1 4 0; +#X connect 11 1 14 0; +#X connect 11 1 29 0; +#X connect 11 2 30 0; +#X connect 12 0 19 0; +#X connect 13 0 15 1; +#X connect 14 0 17 0; +#X connect 15 0 26 0; +#X connect 16 0 11 0; +#X connect 17 0 13 0; +#X connect 18 0 15 0; +#X connect 18 0 22 1; +#X connect 19 0 18 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 22 0 25 0; +#X connect 23 0 16 0; +#X connect 23 0 20 0; +#X connect 27 0 34 0; +#X connect 28 0 31 0; +#X connect 29 0 32 0; +#X connect 30 0 33 0; +#X connect 31 0 27 0; +#X connect 32 0 27 1; +#X connect 33 0 27 2; +#X restore 112 263 pd hsl; +#N canvas 148 132 794 432 vsl 0; +#X obj 114 260 - 0; +#X obj 148 258 f; +#X obj 147 222 t f b; +#X obj 79 122 random 56789; +#X obj 150 165 random 9876; +#X obj 47 236 - 0; +#X obj 81 234 f; +#X obj 80 198 t f b; +#X obj 150 192 % 50; +#X obj 79 145 % 50; +#X obj 64 289 pack 0 0; +#X obj 85 53 t b b b; +#X obj 445 122 random 555666; +#X obj 560 128 random 773322; +#X obj 445 208 pack 0 0; +#X obj 84 32 metro 100; +#X obj 241 299 metro 1000; +#X obj 240 325 random 846352; +#X obj 241 352 % 130; +#X obj 561 155 % 110; +#X obj 560 188 + 20; +#X obj 446 149 % 30; +#X obj 445 183 + 3; +#X obj 84 11 inlet; +#X msg 239 227 \; nerv_vsl color \$1 \$2 \$3; +#X msg 445 231 \; nerv_vsl size \$1 \$2; +#X msg 64 310 \; nerv_vsl delta \$1 \$2; +#X msg 241 376 \; nerv_vsl set \$1; +#X obj 239 203 pack 0 0 0; +#X obj 239 96 random 1.67772e+07; +#X obj 271 118 random 1.67772e+07; +#X obj 304 150 random 1.67772e+07; +#X obj 239 175 * -1; +#X obj 271 151 * -1; +#X obj 304 177 * -1; +#X connect 0 0 10 1; +#X connect 1 0 0 1; +#X connect 2 0 1 1; +#X connect 2 0 0 0; +#X connect 2 1 1 0; +#X connect 3 0 9 0; +#X connect 4 0 8 0; +#X connect 5 0 10 0; +#X connect 6 0 5 1; +#X connect 7 0 6 1; +#X connect 7 0 5 0; +#X connect 7 1 6 0; +#X connect 8 0 2 0; +#X connect 9 0 7 0; +#X connect 10 0 26 0; +#X connect 11 0 3 0; +#X connect 11 0 12 0; +#X connect 11 0 29 0; +#X connect 11 1 4 0; +#X connect 11 1 13 0; +#X connect 11 1 30 0; +#X connect 11 2 31 0; +#X connect 12 0 21 0; +#X connect 13 0 19 0; +#X connect 14 0 25 0; +#X connect 15 0 11 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 27 0; +#X connect 19 0 20 0; +#X connect 20 0 14 1; +#X connect 20 0 18 1; +#X connect 21 0 22 0; +#X connect 22 0 14 0; +#X connect 23 0 15 0; +#X connect 23 0 16 0; +#X connect 28 0 24 0; +#X connect 29 0 32 0; +#X connect 30 0 33 0; +#X connect 31 0 34 0; +#X connect 32 0 28 0; +#X connect 33 0 28 1; +#X connect 34 0 28 2; +#X restore 113 327 pd vsl; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 6 1; +#X connect 1 1 7 1; +#X connect 1 1 8 1; +#X connect 1 1 9 1; +#X connect 2 0 3 0; +#X connect 2 0 7 0; +#X connect 3 0 5 0; +#X connect 3 0 8 0; +#X connect 4 0 2 0; +#X connect 4 0 6 0; +#X connect 5 0 9 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 12 0; +#X connect 9 0 13 0; +#X restore 10 85 pd control; +#X connect 0 0 5 0; +#X restore 295 424 pd nervous; +#X floatatom 239 84 4 0 0; +#N canvas 226 38 811 519 properties 0; +#X obj 2 1 my_canvas 8 870 590 empty empty about_gui_properties 290 +20 2 18 -225280 -1109; +#X text 12 62 "selectable dimensions(pix): size:" = square-size of +the; +#X text 10 35 "dimensions(pix): size:" = square-size of the gui-objects +; +#X text 10 48 "dimensions(pix)(pix): width: height:" = width & height +; +#X text 11 177 "visible_rectangle(pix)(pix): width: height:" = width +&; +#X text 11 104 "flash-time(ms)(ms): intrrpt:" = flash-interrupt-time +; +#X text 411 62 selectable top-left corner of my_canvas in pixels.; +#X text 415 35 in pixels.; +#X text 11 76 "flash-time(ms)(ms): hold:" = flash-hold-time in msec +=; +#X text 405 76 duration of activity \, if a bang-object was activated +; +#X text 400 48 of the rectangular gui-object in pixels.; +#X text 402 177 height of a visible \, deactivated rectangle in pixels. +; +#X text 14 224 "new&old" or "new-only" = the radiobutton-object changes +its; +#X text 441 224 state in 2 ways:; +#X text 198 237 "new&old"-mode: output sends previous state off \, +current; +#X text 596 237 state on \;; +#X text 197 250 "new-only"-mode: output sends only current state on. +; +#X text 14 280 "steady on click" or "jump on click" = the 2 slider-objects +; +#X text 481 322 immediately to new mouse-position \,; +#X text 12 413 "label: font: fontsize:" = font-properties of label. +; +#X text 15 429 "colors:" = a click on radiobuttons "background:" \, +; +#X text 370 429 "front-color:" or "label-color:" activates the color-fields +; +#X text 174 193 if "init"-mode is selected \, the object displays and +puts; +#X text 15 266 "number:" = number of buttons of a radiobutton.; +#X text 205 89 by any message-event or by a mouse-click.; +#X text 388 104 in msec = duration of inactivity \, if an already; +#X text 205 117 activated bang is activated once more.; +#X text 11 132 "output-range: left: right:" = hslider-bounds; +#X text 332 132 for input- as well as output-values.; +#X text 332 146 for input- as well as output-values.; +#X text 11 146 "output-range: bottom: top:" = vslider-bounds; +#X text 12 193 "init" or "no init" =; +#X text 571 193 out its previously saved value.; +#X text 174 208 if "no init"-mode is selected \, nothing will happen. +; +#X text 433 280 react to mouse-click in 2 ways:; +#X text 201 294 "steady on click"-mode: slider-knob stays in position +\,; +#X text 225 307 mouse and knob will move parallel \;; +#X text 200 322 "jump on click"-mode: slider-knob jumps; +#X text 224 338 positions of mouse and knob will be identical \;; +#X text 402 353 receive-object with the same send-symbol-name.; +#X text 11 368 "receive-symbol:" = a send-object with the same; +#X text 11 353 "send-symbol:" = an output-message can be received by +a; +#X text 347 368 symbol-name can send an input-message to the gui-object. +; +#X text 13 383 "label: name:" = visible name of a gui-object \;; +#X text 343 383 it will be moved together with the gui-object.; +#X text 12 397 "label: x_off: y_off:" = coordinates of the label in +; +#X text 382 397 relation to top-left corner of gui-object.; +#X text 207 444 on the right side which display the current color of +the; +#X text 605 444 item \;; +#X text 11 161 "non-zero-value: value:" = toggle has 2; +#X text 292 161 value-states: zero and this value.; +#X text 208 460 to select a different color \, click on one of the +30 small; +#X text 614 459 preset-color-buttons \;; +#X text 208 475 each color (background \, front \, label) can be tuned +by its; +#X text 235 490 RGB-values (0 .. 252 \, step 4) and a click on the +set-button.; +#X restore 287 361 pd properties; +#N canvas 146 190 460 120 move 0; +#X obj 0 0 my_canvas 8 460 120 empty empty how_to_move_gui_objects +100 18 2 20 -225271 -42246; +#X text 11 43 Select a gui-object \, then navigate the object by using +the 4 direction-keys: UP \, DOWN \, LEFT or RIGHT.; +#X text 12 70 If you press the SHIFT-Key too \, the object will move +10 times faster.; +#X restore 308 331 pd move; +#N canvas 151 38 522 451 dollar 0; +#X obj 0 0 my_canvas 8 560 160 empty empty the_dollar_thing 100 18 +2 20 -261681 -123526; +#X text 10 39 if you want to send to \, or to receive from gui-objects +; +#X text 394 39 in abstractions \,; +#X text 36 52 you have to write into the property-entry:; +#X text 44 67 #1-label (instead of \$1-label).; +#X text 25 103 type #0-uniquelabel (instead of \$0-uniquelabel).; +#X text 9 88 if you want a unique send-receive-symbolname:; +#X restore 299 391 pd dollar; +#X obj 283 448 my_canvas 15 100 30 empty empty empty 20 12 2 20 -228992 +-66577; +#N canvas 177 21 730 638 messages 0; +#X obj 1 1 my_canvas 8 870 640 empty empty about_gui_messages 200 20 +2 18 -228992 -355; +#X text 366 99 in pixels.; +#X text 9 84 "size 15 128" = change width & height; +#X text 9 159 "flashtime 50 600" = change flash-interrupt- and flash-hold +; +#X text 424 160 -time of bng-object.; +#X text 9 174 "pos 150 170" = change the x-y-position of the top-left +; +#X text 400 173 corner of a gui-object in pixels \;; +#X text 139 188 "pos 0 0" is the top-left corner of your window \; +; +#X text 143 204 the positive directions of x- and y-axes are right +and down.; +#X text 12 415 "receive togui" = change receive-name of object.; +#X text 12 431 "label its_me" = change label-text of object.; +#X text 12 446 "label_pos 20 8" = change offset-coordinates of label-text. +; +#X text 12 461 "label_font 0 10" = change font and fontsize of label-text. +; +#X text 12 340 "steady 1" change slider-knob-behaviour on mouse-click. +; +#X text 13 522 "lin" = change scale-mode of slider to linear.; +#X text 14 537 "log" = change scale-mode of slider to logarithmical. +; +#X text 333 355 to output only the new state.; +#X text 273 84 of sliders and vu in pixels.; +#X text 12 477 "init 1" = change initial loadbang-mode of gui-objects +; +#X text 12 400 "send fromgui" = change send-name of gui-objects \, +; +#X text 12 325 "number 10" = change number of buttons of radio-button. +; +#X text 9 128 "range 0.1 10.0" = change slider-boundaries for; +#X text 344 128 input- as well as output-values.; +#X text 13 492 "set 64" = change only the inner state and display of +gui-; +#X text 11 33 all gui-objects (bng \, hsl \, vsl \, tgl \, rdb \, cnv +and vu); +#X text 9 113 "vis_size 800 600" = change width & height; +#X text 309 113 of visual rectangle of my_canvas in pixels.; +#X text 359 400 except vu and my_canvas.; +#X text 395 477 except vu and cnv.; +#X text 421 492 objects \, except bng and cnv \;; +#X text 85 47 understand input-messages which change their properties. +; +#X text 11 222 "delta 15 17" = move the gui-object in relation to its +; +#X text 397 222 current position (in pixels).; +#X text 333 371 to first release the previous button \,; +#X text 144 385 then output the state of the new button.; +#X text 12 371 "double_change" change radio-button-behaviour; +#X text 12 355 "single_change" change radio-button-behaviour; +#X text 147 507 no output will result.; +#X text 9 99 "size 15" = change square-size of rdb \, bng and tgl; +#X text 9 143 "nonzero 127.0" = change the nonzero-value of toggle. +; +#X text 15 552 "get_pos" = if my_canvas has a receive-name and a send-name +; +#X text 434 552 and you send the; +#X text 272 237 front- and label-color of object with one of 30 presets. +; +#X text 277 252 label-color of vu and my_canvas with one of 30 presets. +; +#X text 504 282 (0 .. 255); +#X text 558 568 coordinates.; +#X text 149 568 message "get_pos" to it \, you receive the current +x- and y-; +#X text 85 59 except cnv has no inlet \, so you have to send messages +; +#X text 85 71 to its receive-label (edit properties).; +#X text 11 237 "color 0 22 22" = change background- \,; +#X text 11 252 "color 0 22" = change background- and; +#X text 13 268 "color -1.67772e+07 (-1) -1" = change background- \, +; +#X text 364 267 (front-) and label-color of object with RGB-values. +; +#X text 149 283 the RGB-value will be calculated: -65536*RED-value +; +#X text 592 309 - 1; +#X text 422 309 - BLUE-value (0 .. 255); +#X text 394 296 - 256*GREEN-value (0 .. 255); +#X restore 294 453 pd messages; +#X obj 225 259 my_canvas 1 350 1 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 4 308 my_canvas 1 268 1 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 4 186 my_canvas 1 220 1 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 225 151 my_canvas 1 350 1 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 271 261 my_canvas 1 1 48 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 232 308 my_canvas 1 1 200 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 339 3 my_canvas 1 1 149 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 398 260 my_canvas 1 1 310 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 225 3 my_canvas 1 1 255 empty empty empty 20 12 2 20 -258699 +-66577; +#X floatatom 276 84 4 0 0; +#X obj 239 43 toggle 15 0 empty dsp_tgl empty 20 8 0 10 -370 -262144 +-1 0 1; +#N canvas 145 31 380 506 dsp 0; +#X msg 31 88 \; pd dsp \$1; +#X obj 20 199 cputime; +#X obj 20 178 t b b; +#X text 15 11 dsp; +#X text 48 439 (c) musil@iem.kug.ac.at; +#X text 90 452 IEM KUG; +#X text 59 65 1/0 = ON/OFF; +#X text 97 313 CPU-load; +#X obj 62 126 loadbang; +#X obj 20 126 sel 1; +#X text 65 464 graz \, austria 2001; +#X text 64 12 turn dsp-kernel on & off \,; +#X obj 20 240 t f f; +#X text 65 408 average; +#X text 177 405 peak; +#X obj 211 154 f; +#X obj 146 179 > -1; +#X obj 169 155 f -1; +#X obj 179 91 t f b f; +#X obj 146 204 sel 1; +#X obj 192 132 f -1; +#X obj 20 154 metro 500; +#X obj 20 220 * 0.2; +#X text 74 37 -dsp-load in %; +#X text 65 24 measure average- and peak-; +#X obj 20 315 * 100; +#X obj 20 360 int; +#X obj 20 338 + 0.499; +#X obj 20 383 * 0.01; +#X obj 246 207 r pd; +#X obj 246 231 route dsp; +#X text 245 318 to toggle input; +#X msg 246 283 \; dsp_tgl set \$1; +#X obj 247 341 r dsp_tgl; +#X obj 246 257 route float; +#X obj 146 227 del 3990; +#N canvas 305 120 336 257 once 0; +#X text 7 204 (c) musil@iem.kug.ac.at; +#X text 49 214 IEM KUG; +#X text 24 223 graz \, austria 2001; +#X text 8 6 once; +#X obj 19 150 bang; +#X obj 56 65 f 0; +#X text 59 7 only the first message passes through; +#X obj 19 127 t b a; +#X obj 19 100 spigot; +#X obj 119 63 f 1; +#X obj 119 41 loadbang; +#X obj 19 40 inlet; +#X obj 49 183 outlet; +#X connect 4 0 5 0; +#X connect 5 0 8 1; +#X connect 7 0 4 0; +#X connect 7 1 12 0; +#X connect 8 0 7 0; +#X connect 9 0 8 1; +#X connect 10 0 9 0; +#X connect 11 0 8 0; +#X restore 111 264 pd once; +#N canvas 297 130 530 376 1p1z 0; +#X text 7 315 (c) musil@iem.kug.ac.at; +#X text 52 325 IEM KUG; +#X obj 22 231 +; +#X text 8 6 1p1z; +#X text 24 334 graz \, austria 2001; +#X text 104 22 y[n] = a0*x[n] + a1*x[n-1] + b1*y[n-1]; +#X text 169 53 a0; +#X text 25 34 x[n]; +#X text 24 280 y[n]; +#X text 209 53 a1; +#X text 249 53 b1; +#X obj 284 52 loadbang; +#X text 64 102 x[n-1]; +#X obj 40 205 +; +#X obj 22 133 *; +#X obj 40 160 *; +#X obj 59 182 *; +#X text 82 143 y[n-1]; +#X obj 284 72 t b b b; +#X obj 40 98 f; +#X obj 59 138 f; +#X obj 22 71 t f b b; +#X text 350 63 x[n-1]init; +#X text 429 102 y[n-1]init; +#X text 147 202 1.arg: <float> a0; +#X text 147 213 2.arg: <float> a1; +#X text 147 224 3.arg: <float> b1; +#X text 63 5 <float> control-IIR-filter 1.order; +#X obj 162 115 f 0.1; +#X obj 202 142 f 0; +#X obj 242 164 f 0.9; +#X obj 22 49 inlet; +#X obj 162 71 inlet; +#X obj 202 71 inlet; +#X obj 242 71 inlet; +#X obj 356 80 inlet; +#X obj 431 120 inlet; +#X obj 22 264 outlet; +#X connect 2 0 20 1; +#X connect 2 0 37 0; +#X connect 11 0 18 0; +#X connect 13 0 2 1; +#X connect 14 0 2 0; +#X connect 15 0 13 0; +#X connect 16 0 13 1; +#X connect 18 0 28 0; +#X connect 18 1 29 0; +#X connect 18 2 30 0; +#X connect 19 0 15 0; +#X connect 20 0 16 0; +#X connect 21 0 14 0; +#X connect 21 0 19 1; +#X connect 21 1 19 0; +#X connect 21 2 20 0; +#X connect 28 0 14 1; +#X connect 29 0 15 1; +#X connect 30 0 16 1; +#X connect 31 0 21 0; +#X connect 32 0 28 0; +#X connect 33 0 29 0; +#X connect 34 0 30 0; +#X connect 35 0 19 1; +#X connect 36 0 20 1; +#X restore 20 289 pd 1p1z 0.1 0 0.9; +#X obj 20 65 inlet; +#X obj 20 406 outlet; +#X obj 211 405 outlet; +#X connect 1 0 22 0; +#X connect 2 0 1 0; +#X connect 2 1 1 1; +#X connect 8 0 21 0; +#X connect 9 0 21 0; +#X connect 12 0 37 0; +#X connect 15 0 17 1; +#X connect 15 0 40 0; +#X connect 16 0 19 0; +#X connect 17 0 16 1; +#X connect 18 0 16 0; +#X connect 18 1 17 0; +#X connect 18 2 15 1; +#X connect 19 0 15 0; +#X connect 19 0 35 0; +#X connect 20 0 17 1; +#X connect 21 0 2 0; +#X connect 22 0 12 0; +#X connect 22 0 18 0; +#X connect 25 0 27 0; +#X connect 26 0 28 0; +#X connect 27 0 26 0; +#X connect 28 0 39 0; +#X connect 29 0 30 0; +#X connect 30 0 34 0; +#X connect 34 0 32 0; +#X connect 35 0 20 0; +#X connect 37 0 25 0; +#X connect 38 0 0 0; +#X connect 38 0 9 0; +#X restore 239 63 pd dsp; +#X text 238 99 mean; +#X text 279 100 peak; +#X text 289 63 % cpu; +#X text 283 305 my_canvas = cnv; +#X text 312 172 radiobutton = rdb; +#X text 271 350 R; +#X text 270 370 E; +#X text 270 389 A; +#X text 270 409 D; +#X text 270 428 M; +#X text 269 447 E; +#X connect 17 0 26 0; +#X connect 21 0 18 0; +#X connect 21 0 16 0; +#X connect 21 1 34 0; +#X connect 21 2 19 0; +#X connect 22 0 21 0; +#X connect 27 0 29 0; +#X connect 54 0 55 0; +#X connect 55 0 38 0; +#X connect 55 1 53 0; diff --git a/iemabs/addl~.pd b/iemabs/addl~.pd new file mode 100644 index 0000000..9730473 --- /dev/null +++ b/iemabs/addl~.pd @@ -0,0 +1,28 @@ +#N canvas 323 149 387 323 10; +#X obj 22 42 inlet~; +#X obj 35 67 inlet; +#X obj 22 238 outlet~; +#X text 14 266 (c) musil@iem.kug.ac.at; +#X text 56 279 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 90 112 inlet; +#X text 125 113 <float> interpolation_time [ms]; +#X text 31 291 graz \, austria 2001; +#X text 69 239 ~signal_out~; +#X obj 35 194 line~; +#X obj 41 140 loadbang; +#X text 119 191 2.arg: <float> interpolation_time [ms]; +#X text 72 66 <float> addition-coefficient or; +#X text 119 180 1.arg: <float> addition-coefficient; +#X obj 22 215 +~; +#X text 49 9 signal-addition with line~ interpolation; +#X text 72 78 <list> addition-coefficient + interpol_time [ms]; +#X obj 35 175 pack \$1 \$2; +#X text 11 9 addl~; +#X connect 0 0 15 0; +#X connect 1 0 18 0; +#X connect 6 0 18 1; +#X connect 10 0 15 1; +#X connect 11 0 18 0; +#X connect 15 0 2 0; +#X connect 18 0 10 0; diff --git a/iemabs/all_guis-INTRO.pd b/iemabs/all_guis-INTRO.pd new file mode 100644 index 0000000..cc3fe5c --- /dev/null +++ b/iemabs/all_guis-INTRO.pd @@ -0,0 +1,19 @@ +#N canvas 254 125 455 353 10; +#X obj 10 6 cnv 15 400 300 empty empty Gui_Gruppe 20 12 2 14 -216636 +-42246 0; +#X obj 38 76 bng 25 250 50 0 bang bang bang 0 -6 192 8 -225271 -42246 +-1; +#X obj 86 72 tgl 35 0 toggle toggle toggle 0 -6 192 8 -225280 -1109 +-1 0 1; +#X obj 142 78 nbx 5 14 0.01 10 1 1 numbox numbox numbox 0 -6 192 10 +-228992 -355 -1 0.588209 256; +#X obj 286 40 vsl 15 128 0 127 0 0 vslider vslider vslider 0 -8 192 +8 -195568 -33289 -1 3700 1; +#X obj 26 195 hsl 128 15 0 127 0 0 hslider hslider hslider -2 -6 192 +8 -261689 -143491 -1 2600 1; +#X obj 227 39 vradio 15 1 0 8 vdial vdial vdial 0 -6 192 8 -261681 +-90881 -1 1; +#X obj 26 150 hradio 15 1 0 8 hdial hdial hdial 0 -6 192 8 -262131 +-123526 -1 1; +#X obj 352 46 vu 15 120 vu vu -1 -8 64 8 -66577 -1 1 0; +#X msg 340 263 \; vu -15 -3; diff --git a/iemabs/all_guis-INTRO.txt b/iemabs/all_guis-INTRO.txt new file mode 100644 index 0000000..37f44c2 --- /dev/null +++ b/iemabs/all_guis-INTRO.txt @@ -0,0 +1,123 @@ +HOW TO MOVE A GUI-OBJECT: + +Select a gui-object , then navigate the object by using the +4 direction-keys: UP , DOWN , LEFT or RIGHT. +If you press the SHIFT-Key too , the object will move 10 times faster. + + +PROPERTIES-DIALOG-WINDOW: + +"dimensions(pix): size:" = square-size of the gui-objects in pixels. +"dimensions(pix)(pix): width: height:" = width & height of the rectangular + gui-object in pixels. +"selectable dimensions(pix): size:" = square-size of the selectable top-left + corner of my_canvas in pixels. +"flash-time(ms)(ms): hold:" = flash-hold-time in msec = duration of activity, + if a bang-object was activated by any message-event + or by a mouse-click. +"flash-time(ms)(ms): intrrpt:" = flash-interrupt-time in msec = duration + of inactivity , if an already activated bang is activated + once more. +"output-range: left: right:" = hslider-bounds for input- as well as + output-values. +"output-range: bottom: top:" = vslider-bounds for input- as well as + output-values. +"non-zero-value: value:" = toggle has 2 value-states: zero and this value. +"visible_rectangle(pix)(pix): width: height:" = width & height of a visible, + deactivated rectangle in pixels. +"init" or "no init" = if "init"-mode is selected , the object displays and puts + out its previously saved value. + if "no init"-mode is selected, nothing will happen. +"new&old" or "new-only" = the radiobutton-object changes its state in 2 ways: + "new&old"-mode: output sends previous state off, current state on; + "new-only"-mode: output sends only current state on. +"number:" = number of buttons of a radiobutton. +"steady on click" or "jump on click" = the 2 slider-objects + react to mouse-click in 2 ways: + "steady on click"-mode: slider-knob stays in position, + mouse and knob will move parallel; + "jump on click"-mode: slider-knob jumps immediately to new + mouse-position, positions of mouse and knob will be identical. +"send-symbol:" = an output-message can be received by a receive-object + with the same send-symbol-name. +"receive-symbol:" = a send-object with the same symbol-name can send + an input-message to the gui-object. +"label: name:" = visible name of a gui-object; it will be moved together with + the gui-object. +"label: x_off: y_off:" = coordinates of the label in relation to top-left + corner of gui-object. +"label: font: fontsize:" = font-properties of label. +"colors:" = a click on radiobuttons "background:", "front-color:" or + "label-color:" activates the color-fields on the right side + which display the current color of the item; + to select a different color, click on one of the 30 small + preset-color-buttons; + each color (background, front, label) can be tuned by its + RGB-values (0 .. 252, step 4) and a click on the set-buttons. + + +THE DOLLAR-THING: + +if you want to send to, or to receive from gui-objects in abstractions, + you have to write into the property-entry: + #1-label (instead of $1-label). + +if you want a unique send-receive-symbolname: + type #0-uniquelabel (instead of $0-uniquelabel). + + +GUI-MESSAGES: + +all gui-objects (bng, hsl, vsl, tgl, rdb, cnv and vu) + understand input-messages which change their properties. + except cnv has no input, so you have to send messages + to its receive-label (edit properties). + +"size 15 128" = change width & height of sliders and vu in pixels. +"size 15" = change square-size of rdb, bng and tgl in pixels. +"vis_size 800 600" = change width & height of visual rectangle + of my_canvas in pixels. +"range 0.1 10.0" = change slider-boundaries for + input- as well as output-values. +"nonzero 127.0" = change the nonzero-value of toggle. +"flashtime 50 600" = change flash-interrupt- and + flash-hold-time of bng-object. +"pos 150 170" = change the x-y-position of the top-left + corner of a gui-object in pixels; + "pos 0 0" is the top-left corner of your window; + the positive directions of x- and y-axes are right and down. +"delta 15 17" = move the gui-object in relation to its + current position (in pixels). +"color 0 22 22" = change background-, front- and + label-color of object with one of 30 presets. +"color 0 22" = change background- and label-color + of vu and my_canvas with one of 30 presets. +"color -16777216 (-1) -1" = change background-, (front-) + and label-color of object with RGB-values. + the RGB-value will be calculated: + -65536*RED-value (0 .. 255) + - 256*GREEN-value (0 .. 255) + - BLUE-value (0 .. 255) - 1. +"number 10" = change number of buttons of radio-button. +"steady 1" change slider-knob-behaviour on mouse-click. +"single_change" change radio-button-behaviour + to output only the new state. +"double_change" change radio-button-behaviour + to first release the previous button, + then output the state of the new button. +"send fromgui" = change send-name of gui-objects, + except vu and cnv. +"receive togui" = change receive-name of object. +"label its_me" = change label-text of object. +"label_pos 20 8" = change offset-coordinates of label-text. +"label_font 0 10" = change font and fontsize of label-text. +"init 1" = change initial loadbang-mode of gui-objects + except vu and cnv. +"set 64" = change only the inner state and display + of gui-objects, except bng and cnv; + no output will result. +"lin" = change scale-mode of slider to linear. +"log" = change scale-mode of slider to logarithmical. +"get_pos" = if my_canvas has a receive-name and a send-name + and you send the message "get_pos" to it, + you receive the current x- and y-coordinates. diff --git a/iemabs/any.pd b/iemabs/any.pd new file mode 100644 index 0000000..5531440 --- /dev/null +++ b/iemabs/any.pd @@ -0,0 +1,20 @@ +#N canvas 229 154 605 437 10; +#X obj 37 84 inlet; +#X obj 351 101 inlet; +#X obj 37 330 outlet; +#X text 14 358 (c) musil@iem.kug.ac.at; +#X text 56 371 IEM KUG; +#X text 31 383 graz \, austria 2002; +#X obj 37 278 iem_anything_kernel; +#X text 347 77 cold inlet = latch-inlet; +#X text 39 62 hot inlet = bangout; +#X text 248 17 a messages storage; +#X text 237 278 any arguments are possible; +#X obj 351 126 pre_inlet 1 1; +#X obj 37 112 pre_inlet 1 0; +#X text 17 15 any \, iem_anything; +#X connect 0 0 12 0; +#X connect 1 0 11 0; +#X connect 6 0 2 0; +#X connect 11 0 6 0; +#X connect 12 0 6 0; diff --git a/iemabs/ap1c~.pd b/iemabs/ap1c~.pd new file mode 100644 index 0000000..261ae1e --- /dev/null +++ b/iemabs/ap1c~.pd @@ -0,0 +1,35 @@ +#N canvas 148 261 484 428 10; +#X obj 22 42 inlet~; +#X obj 52 65 inlet; +#X obj 22 238 outlet~; +#X text 17 380 (c) musil@iem.kug.ac.at; +#X text 59 393 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 143 152 inlet; +#X text 178 153 <float> interpolation_time [ms]; +#X text 28 209 ~filtered signal_out~; +#X text 89 64 <float> -90_degree_frequency [Hz]; +#X text 34 405 graz \, austria 2001; +#X text 124 235 1.arg: <float> -90_degree_frequency [Hz]; +#X text 11 9 ap1c~; +#X text 66 10 allpass 1.order for filter-cascades; +#X obj 87 90 inlet; +#X obj 121 120 inlet; +#X text 163 119 dummy; +#X obj 52 266 outlet; +#X obj 92 289 outlet; +#X obj 127 312 outlet; +#X obj 143 335 outlet; +#X text 140 287 dummy; +#X text 174 311 dummy; +#X text 123 260 3.arg: <float> interpolation_time [ms] (opt.); +#X text 124 89 <float> frequency-shift [-]; +#X text 123 247 2.arg: <float> frequency-shift [-]; +#X obj 22 185 filter~ ap1c \$1 \$2 1 \$3; +#X connect 0 0 26 0; +#X connect 1 0 17 0; +#X connect 1 0 26 1; +#X connect 6 0 20 0; +#X connect 6 0 26 4; +#X connect 14 0 26 2; +#X connect 26 0 2 0; diff --git a/iemabs/ap1~.pd b/iemabs/ap1~.pd new file mode 100644 index 0000000..bab38c9 --- /dev/null +++ b/iemabs/ap1~.pd @@ -0,0 +1,21 @@ +#N canvas 256 230 375 281 10; +#X obj 22 42 inlet~; +#X obj 52 65 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 143 100 inlet; +#X text 178 101 <float> interpolation_time [ms]; +#X text 28 157 ~filtered signal_out~; +#X text 66 10 allpass 1.order; +#X obj 22 133 filter~ ap1 \$1 1 0 \$2; +#X text 89 64 <float> -90_degree_frequency [Hz]; +#X text 32 254 graz \, austria 2001; +#X text 11 9 ap1~; +#X text 84 182 1.arg: <float> -90_degree_frequency [Hz]; +#X text 84 193 2.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 10 0; +#X connect 1 0 10 1; +#X connect 6 0 10 4; +#X connect 10 0 2 0; diff --git a/iemabs/ap2c~.pd b/iemabs/ap2c~.pd new file mode 100644 index 0000000..49c7a3d --- /dev/null +++ b/iemabs/ap2c~.pd @@ -0,0 +1,38 @@ +#N canvas 117 241 450 407 10; +#X obj 22 42 inlet~; +#X obj 53 63 inlet; +#X obj 22 233 outlet~; +#X text 9 357 (c) musil@iem.kug.ac.at; +#X text 51 370 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 85 88 inlet; +#X text 194 155 <float> interpolation_time [ms]; +#X text 32 200 ~filtered signal_out~; +#X obj 159 155 inlet; +#X text 89 65 <float> -180_degree_frequency [Hz]; +#X text 26 382 graz \, austria 2001; +#X text 12 9 ap2c~; +#X text 60 8; +#X text 58 9 allpass 2.order for filter-cascades; +#X text 137 235 2.arg: <float> damping [-]; +#X text 137 244 3.arg: <float> frequency-shift [-]; +#X text 137 254 4.arg: <float> interpolation_time [ms] (opt.); +#X obj 56 258 outlet; +#X obj 88 283 outlet; +#X obj 119 302 outlet; +#X obj 160 322 outlet; +#X text 129 282 dummy; +#X text 159 301 dummy; +#X text 124 88 <float> damping [-]; +#X text 137 226 1.arg: <float> -180_degree_frequency [Hz]; +#X obj 126 111 inlet; +#X text 162 111 <float> frequency-shift [-]; +#X obj 22 181 filter~ ap2c \$1 \$2 \$3 \$4; +#X connect 0 0 28 0; +#X connect 1 0 18 0; +#X connect 1 0 28 1; +#X connect 6 0 28 2; +#X connect 9 0 21 0; +#X connect 9 0 28 4; +#X connect 26 0 28 3; +#X connect 28 0 2 0; diff --git a/iemabs/ap2~.pd b/iemabs/ap2~.pd new file mode 100644 index 0000000..54b8c07 --- /dev/null +++ b/iemabs/ap2~.pd @@ -0,0 +1,25 @@ +#N canvas 269 270 375 281 10; +#X obj 22 42 inlet~; +#X obj 53 63 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 85 88 inlet; +#X text 184 113 <float> interpolation_time [ms]; +#X text 32 153 ~filtered signal_out~; +#X obj 149 113 inlet; +#X text 121 88 <float> quality [-]; +#X text 12 9 ap2~; +#X text 60 8 allpass 2.order; +#X text 89 65 <float> -180_degree_frequency [Hz]; +#X text 32 254 graz \, austria 2001; +#X obj 22 134 filter~ ap2 \$1 \$2 1 \$3; +#X text 82 174 1.arg: <float> -180_degree_frequency [Hz]; +#X text 82 183 2.arg: <float> quality [-]; +#X text 82 193 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 6 0 15 2; +#X connect 9 0 15 4; +#X connect 15 0 2 0; diff --git a/iemabs/bng.pd b/iemabs/bng.pd new file mode 100644 index 0000000..c529f5a --- /dev/null +++ b/iemabs/bng.pd @@ -0,0 +1,265 @@ +#N canvas 158 62 445 357 10; +#X obj 1 1 cnv 8 100 60 empty empty bng 20 20 1 18 -262144 -1109 0 +; +#X text 10 288 (c) musil@iem.kug.ac.at; +#X text 52 301 IEM KUG; +#X text 27 313 graz \, austria 2001; +#X text 118 61 click properties to; +#X text 106 72 modify geometry \, colors \, etc.; +#X obj 64 257 print; +#N canvas 598 330 290 225 once 0; +#X msg 38 73 1; +#X obj 38 47 t b b; +#X obj 68 124 sel 0; +#X obj 68 103 f 0; +#X obj 38 24 inlet; +#X obj 68 154 outlet; +#X connect 0 0 3 1; +#X connect 1 0 0 0; +#X connect 1 1 3 0; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X restore 64 234 pd once; +#X obj 36 258 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 3 130 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 36 173 bng 50 950 50 1 foo5_snd foo5_rcv big-bang 63 2 192 12 +-262131 -260818 -143491; +#X msg 36 53 33; +#X msg 50 75 -3.14; +#X msg 73 117 11 22 33.33; +#X msg 63 95 open xxx; +#X msg 96 142 funny; +#X text 101 11 gui-bang:; +#X obj 202 135 s foo5_rcv; +#X obj 202 155 r foo5_snd; +#X obj 202 115 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 202 175 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X msg 4 53 0; +#X text 125 205 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 124 216 for moving selected gui-objects; +#N canvas 425 170 699 530 edit 0; +#X obj 39 197 f; +#X msg 17 176 bang; +#X floatatom 55 175 3 63 88; +#X floatatom 90 197 3 0 37; +#X obj 39 220 pack 0 0; +#X text 117 197 y-label; +#X text 83 175 x-label; +#X floatatom 259 143 3 8 75; +#X text 286 143 size; +#X obj 279 236 f; +#X msg 257 215 bang; +#X floatatom 295 214 3 -10 10; +#X floatatom 330 236 3 -10 10; +#X obj 279 259 pack 0 0; +#X obj 304 348 f; +#X msg 282 327 bang; +#X floatatom 320 326 3 20 90; +#X floatatom 355 348 3 150 200; +#X obj 304 371 pack 0 0; +#X text 323 214 x-delta; +#X text 357 236 y-delta; +#X text 348 326 x-position; +#X text 382 348 y-position; +#X obj 59 312 f; +#X msg 37 291 bang; +#X floatatom 75 290 3 0 2; +#X floatatom 110 312 3 4 36; +#X obj 59 335 pack 0 0; +#X text 103 290 font; +#X text 139 312 height; +#X msg 36 399 \; foo5_rcv label blabla; +#X msg 59 360 \; foo5_rcv label_font \$1 \$2; +#X msg 39 245 \; foo5_rcv label_pos \$1 \$2; +#X msg 47 135 \; foo5_rcv color \$1 \$2 \$3; +#X msg 259 172 \; foo5_rcv size \$1; +#X msg 279 284 \; foo5_rcv delta \$1 \$2; +#X msg 304 396 \; foo5_rcv pos \$1 \$2; +#X msg 483 133 \; foo5_rcv receive foo5a_rcv; +#X msg 482 171 \; foo5a_rcv receive foo5_rcv; +#X msg 483 50 \; foo5_rcv send foo5a_snd; +#X msg 483 88 \; foo5_rcv send foo5_snd; +#X text 526 349 no init; +#X msg 505 368 \; foo5_rcv init 0; +#X msg 512 435 \; foo5_rcv init 1; +#X obj 493 260 f; +#X msg 471 239 bang; +#X floatatom 509 238 4 10 100; +#X floatatom 544 261 5 100 3000; +#X obj 493 283 pack 0 0; +#X msg 493 308 \; foo5_rcv flashtime \$1 \$2; +#X text 548 237 interrupt-time; +#X text 585 262 hold-time; +#X msg 36 435 \; foo5_rcv label big-bang; +#X text 502 417 init bang on loadbang; +#X text 519 221 flash-time:; +#X obj 47 114 pack 0 0 0; +#X obj 47 86 f; +#X msg 24 38 bang; +#X floatatom 63 36 3 0 29; +#X floatatom 79 56 3 0 29; +#X floatatom 112 72 3 0 29; +#X text 91 36 background; +#X text 106 56 front-color; +#X text 140 73 label-color; +#X msg 285 35 back; +#X msg 285 55 front; +#X msg 285 75 label; +#X msg 247 35 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 285 96 pd RGB_____________; +#X floatatom 327 65 3 0 255; +#X floatatom 370 65 3 0 255; +#X floatatom 413 66 3 0 255; +#X text 34 10 preset-colors; +#X text 296 7 RGB-colors; +#X text 327 47 red; +#X text 363 46 green; +#X text 411 46 blue; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 32 0; +#X connect 7 0 34 0; +#X connect 9 0 13 0; +#X connect 10 0 9 0; +#X connect 11 0 9 1; +#X connect 12 0 13 1; +#X connect 13 0 35 0; +#X connect 14 0 18 0; +#X connect 15 0 14 0; +#X connect 16 0 14 1; +#X connect 17 0 18 1; +#X connect 18 0 36 0; +#X connect 23 0 27 0; +#X connect 24 0 23 0; +#X connect 25 0 23 1; +#X connect 26 0 27 1; +#X connect 27 0 31 0; +#X connect 44 0 48 0; +#X connect 45 0 44 0; +#X connect 46 0 44 1; +#X connect 47 0 48 1; +#X connect 48 0 49 0; +#X connect 55 0 33 0; +#X connect 56 0 55 0; +#X connect 57 0 56 0; +#X connect 58 0 56 1; +#X connect 59 0 55 1; +#X connect 60 0 55 2; +#X connect 64 0 68 0; +#X connect 65 0 68 0; +#X connect 66 0 68 0; +#X connect 67 0 68 0; +#X connect 68 0 55 0; +#X connect 68 1 55 1; +#X connect 68 2 55 2; +#X connect 69 0 68 1; +#X connect 70 0 68 2; +#X connect 71 0 68 3; +#X restore 297 144 pd edit; +#X text 185 312 updated for Pd version 0.34; +#X obj 179 11 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 248 31 bng 15 250 50 0 aaa aaa empty 20 8 192 8 -262144 -1 -1 +; +#X connect 7 0 6 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 10 0 7 0; +#X connect 11 0 10 0; +#X connect 12 0 10 0; +#X connect 13 0 10 0; +#X connect 14 0 10 0; +#X connect 15 0 10 0; +#X connect 18 0 20 0; +#X connect 19 0 17 0; +#X connect 21 0 10 0; diff --git a/iemabs/bp2~.pd b/iemabs/bp2~.pd new file mode 100644 index 0000000..895a826 --- /dev/null +++ b/iemabs/bp2~.pd @@ -0,0 +1,25 @@ +#N canvas 319 273 395 281 10; +#X obj 22 42 inlet~; +#X obj 55 63 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 88 89 inlet; +#X text 190 112 <float> interpolation_time [ms]; +#X text 32 153 ~filtered signal_out~; +#X obj 155 112 inlet; +#X text 92 64 <float> center_frequency [Hz]; +#X text 32 254 graz \, austria 2001; +#X text 124 89 <float> Q [-]; +#X obj 22 134 filter~ bpq2 \$1 \$2 1 \$3; +#X text 85 176 1.arg: <float> center_frequency [Hz]; +#X text 85 185 2.arg: <float> Q [-]; +#X text 85 194 3.arg: <float> interpolation_time [ms] (opt.); +#X text 12 9 bp2~; +#X text 56 10 bandpass 2.order with Q-inlet (like bpq2~); +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 6 0 13 2; +#X connect 9 0 13 4; +#X connect 13 0 2 0; diff --git a/iemabs/bpq2~.pd b/iemabs/bpq2~.pd new file mode 100644 index 0000000..130a453 --- /dev/null +++ b/iemabs/bpq2~.pd @@ -0,0 +1,25 @@ +#N canvas 319 273 395 281 10; +#X obj 22 42 inlet~; +#X obj 55 63 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 88 89 inlet; +#X text 190 112 <float> interpolation_time [ms]; +#X text 32 153 ~filtered signal_out~; +#X obj 155 112 inlet; +#X text 92 64 <float> center_frequency [Hz]; +#X text 32 254 graz \, austria 2001; +#X text 124 89 <float> Q [-]; +#X obj 22 134 filter~ bpq2 \$1 \$2 1 \$3; +#X text 12 9 bpq2~; +#X text 56 10 bandpass 2.order with Q-inlet; +#X text 85 176 1.arg: <float> center_frequency [Hz]; +#X text 85 185 2.arg: <float> Q [-]; +#X text 85 194 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 6 0 13 2; +#X connect 9 0 13 4; +#X connect 13 0 2 0; diff --git a/iemabs/bpw2~.pd b/iemabs/bpw2~.pd new file mode 100644 index 0000000..c76ef81 --- /dev/null +++ b/iemabs/bpw2~.pd @@ -0,0 +1,25 @@ +#N canvas 315 262 395 281 10; +#X obj 22 42 inlet~; +#X obj 55 63 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 88 89 inlet; +#X text 190 112 <float> interpolation_time [ms]; +#X text 32 153 ~filtered signal_out~; +#X obj 155 112 inlet; +#X text 92 64 <float> center_frequency [Hz]; +#X text 32 254 graz \, austria 2001; +#X text 12 9 bpw2~; +#X text 56 10 bandpass 2.order with bandwidth-inlet; +#X text 124 90 <float> bandwidth [Hz]; +#X obj 22 134 filter~ bpw2 \$1 \$2 1 \$3; +#X text 97 174 1.arg: <float> center_frequency [Hz]; +#X text 97 183 2.arg: <float> bandwidth [Hz]; +#X text 97 192 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 6 0 15 2; +#X connect 9 0 15 4; +#X connect 15 0 2 0; diff --git a/iemabs/bs2~.pd b/iemabs/bs2~.pd new file mode 100644 index 0000000..f6a304f --- /dev/null +++ b/iemabs/bs2~.pd @@ -0,0 +1,25 @@ +#N canvas 299 265 423 281 10; +#X obj 22 42 inlet~; +#X obj 55 65 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 88 89 inlet; +#X text 191 113 <float> interpolation_time [ms]; +#X text 28 157 ~filtered signal_out~; +#X obj 155 113 inlet; +#X text 91 64 <float> center_frequency [Hz]; +#X text 32 254 graz \, austria 2001; +#X text 123 89 <float> Q [-]; +#X obj 22 136 filter~ bsq2 \$1 \$2 1 \$3; +#X text 102 176 1.arg: <float> center_frequency [Hz]; +#X text 102 185 2.arg: <float> Q [-]; +#X text 102 194 3.arg: <float> interpolation_time [ms] (opt.); +#X text 11 9 bs2~; +#X text 66 10 bandstop 2.order with Q-inlet (like bs2~); +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 6 0 13 2; +#X connect 9 0 13 4; +#X connect 13 0 2 0; diff --git a/iemabs/bsq2~.pd b/iemabs/bsq2~.pd new file mode 100644 index 0000000..61bc8e4 --- /dev/null +++ b/iemabs/bsq2~.pd @@ -0,0 +1,25 @@ +#N canvas 299 265 389 281 10; +#X obj 22 42 inlet~; +#X obj 55 65 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 88 89 inlet; +#X text 191 113 <float> interpolation_time [ms]; +#X text 28 157 ~filtered signal_out~; +#X obj 155 113 inlet; +#X text 91 64 <float> center_frequency [Hz]; +#X text 32 254 graz \, austria 2001; +#X text 123 89 <float> Q [-]; +#X text 11 9 bsq2~; +#X text 66 10 bandstop 2.order with Q-inlet; +#X obj 22 136 filter~ bsq2 \$1 \$2 1 \$3; +#X text 102 176 1.arg: <float> center_frequency [Hz]; +#X text 102 185 2.arg: <float> Q [-]; +#X text 102 194 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 6 0 15 2; +#X connect 9 0 15 4; +#X connect 15 0 2 0; diff --git a/iemabs/bsw2~.pd b/iemabs/bsw2~.pd new file mode 100644 index 0000000..b3cbc6e --- /dev/null +++ b/iemabs/bsw2~.pd @@ -0,0 +1,25 @@ +#N canvas 299 265 389 281 10; +#X obj 22 42 inlet~; +#X obj 55 65 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 88 89 inlet; +#X text 191 113 <float> interpolation_time [ms]; +#X text 28 157 ~filtered signal_out~; +#X obj 155 113 inlet; +#X text 91 64 <float> center_frequency [Hz]; +#X text 32 254 graz \, austria 2001; +#X text 64 9 bandstop 2.order with bandwidth-inlet; +#X text 123 89 <float> bandwidth [Hz]; +#X text 11 9 bsw2~; +#X obj 22 136 filter~ bsw2 \$1 \$2 1 \$3; +#X text 97 178 1.arg: <float> center_frequency [Hz]; +#X text 97 188 2.arg: <float> bandwidth [Hz]; +#X text 97 198 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 6 0 15 2; +#X connect 9 0 15 4; +#X connect 15 0 2 0; diff --git a/iemabs/dbtofad.pd b/iemabs/dbtofad.pd new file mode 100644 index 0000000..1d55fbd --- /dev/null +++ b/iemabs/dbtofad.pd @@ -0,0 +1,16 @@ +#N canvas 204 221 600 306 10; +#X obj 91 69 inlet; +#X obj 91 154 transf_fader; +#X obj 107 98 loadbang; +#X obj 91 176 outlet; +#X msg 107 119 pairs 0 0 40 6 70 24 80 36 88 48 94 60 98 72 102 96 +106 108 107.5 111 109 114 112 117 142 147; +#X text 27 220 (c) musil@iem.kug.ac.at; +#X text 64 233 IEM KUG; +#X text 39 245 graz \, austria 2003; +#X text 13 10 dbtofad; +#X text 86 11 convert midi-db to fader-scale; +#X connect 0 0 1 0; +#X connect 1 0 3 0; +#X connect 2 0 4 0; +#X connect 4 0 1 0; diff --git a/iemabs/default.pd b/iemabs/default.pd new file mode 100644 index 0000000..756b4bc --- /dev/null +++ b/iemabs/default.pd @@ -0,0 +1,22 @@ +#N canvas 409 285 344 277 10; +#X obj 17 142 f \$1; +#X text 10 210 (c) musil@iem.kug.ac.at; +#X text 51 223 IEM KUG; +#X text 26 235 graz \, austria 2001; +#X obj 17 50 inlet; +#X obj 17 183 outlet; +#X text 6 4 default; +#X text 66 6 if input equal to zero \, then output argument; +#X text 79 19 else output = input; +#X obj 17 115 sel 0 1; +#X obj 17 96 != 0; +#X obj 17 71 t f f; +#X obj 71 144 f; +#X connect 0 0 5 0; +#X connect 4 0 11 0; +#X connect 9 0 0 0; +#X connect 9 1 12 0; +#X connect 10 0 9 0; +#X connect 11 0 10 0; +#X connect 11 1 12 1; +#X connect 12 0 5 0; diff --git a/iemabs/divl~.pd b/iemabs/divl~.pd new file mode 100644 index 0000000..0c95b71 --- /dev/null +++ b/iemabs/divl~.pd @@ -0,0 +1,28 @@ +#N canvas 324 150 406 323 10; +#X obj 22 42 inlet~; +#X obj 35 67 inlet; +#X obj 22 238 outlet~; +#X text 14 266 (c) musil@iem.kug.ac.at; +#X text 56 279 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 90 112 inlet; +#X text 125 113 <float> interpolation_time [ms]; +#X text 31 291 graz \, austria 2001; +#X text 69 239 ~signal_out~; +#X obj 35 194 line~; +#X obj 41 135 loadbang; +#X text 119 191 2.arg: <float> interpolation_time [ms]; +#X text 72 66 <float> division-coefficient or; +#X text 72 78 <list> division-coefficient + interpol_time [ms]; +#X text 119 180 1.arg: <float> division-coefficient; +#X obj 22 215 /~; +#X text 49 9 signal-division with line~ interpolation; +#X obj 35 176 pack \$1 \$2; +#X text 11 9 divl~; +#X connect 0 0 16 0; +#X connect 1 0 18 0; +#X connect 6 0 18 1; +#X connect 10 0 16 1; +#X connect 11 0 18 0; +#X connect 16 0 2 0; +#X connect 18 0 10 0; diff --git a/iemabs/dsp.pd b/iemabs/dsp.pd new file mode 100644 index 0000000..f4bc3a7 --- /dev/null +++ b/iemabs/dsp.pd @@ -0,0 +1,75 @@ +#N canvas 238 72 380 494 10; +#X obj 20 65 inlet; +#X obj 20 406 outlet; +#X msg 31 88 \; pd dsp \$1; +#X obj 20 199 cputime; +#X obj 20 178 t b b; +#X text 15 11 dsp; +#X text 48 439 (c) musil@iem.kug.ac.at; +#X text 90 452 IEM KUG; +#X text 59 65 1/0 = ON/OFF; +#X text 97 313 CPU-load; +#X obj 62 126 loadbang; +#X obj 20 126 sel 1; +#X text 65 464 graz \, austria 2001; +#X text 64 12 turn dsp-kernel on & off \,; +#X obj 20 240 t f f; +#X obj 51 263 once; +#X obj 211 405 outlet; +#X text 65 408 average; +#X text 177 405 peak; +#X obj 211 154 f; +#X obj 146 179 > -1; +#X obj 169 155 f -1; +#X obj 179 91 t f b f; +#X obj 146 204 sel 1; +#X obj 192 132 f -1; +#X obj 20 154 metro 500; +#X obj 20 220 * 0.2; +#X text 74 37 -dsp-load in %; +#X text 65 24 measure average- and peak-; +#X obj 20 292 1p1z 0.1 0 0.9; +#X obj 20 315 * 100; +#X obj 20 360 int; +#X obj 20 338 + 0.499; +#X obj 20 383 * 0.01; +#X obj 246 207 r pd; +#X obj 246 231 route dsp; +#X text 245 318 to toggle input; +#X msg 246 283 \; dsp_tgl set \$1; +#X obj 247 341 r dsp_tgl; +#X obj 246 257 route float; +#X obj 146 227 del 3990; +#X connect 0 0 2 0; +#X connect 0 0 11 0; +#X connect 3 0 26 0; +#X connect 4 0 3 0; +#X connect 4 1 3 1; +#X connect 10 0 25 0; +#X connect 11 0 25 0; +#X connect 14 0 29 0; +#X connect 14 1 15 0; +#X connect 15 0 29 5; +#X connect 15 0 29 4; +#X connect 19 0 21 1; +#X connect 19 0 16 0; +#X connect 20 0 23 0; +#X connect 21 0 20 1; +#X connect 22 0 20 0; +#X connect 22 1 21 0; +#X connect 22 2 19 1; +#X connect 23 0 19 0; +#X connect 23 0 40 0; +#X connect 24 0 21 1; +#X connect 25 0 4 0; +#X connect 26 0 14 0; +#X connect 26 0 22 0; +#X connect 29 0 30 0; +#X connect 30 0 32 0; +#X connect 31 0 33 0; +#X connect 32 0 31 0; +#X connect 33 0 1 0; +#X connect 34 0 35 0; +#X connect 35 0 39 0; +#X connect 39 0 37 0; +#X connect 40 0 24 0; diff --git a/iemabs/dsp~.pd b/iemabs/dsp~.pd new file mode 100644 index 0000000..02fe3ab --- /dev/null +++ b/iemabs/dsp~.pd @@ -0,0 +1,75 @@ +#N canvas 238 72 380 494 10; +#X obj 20 65 inlet; +#X obj 20 406 outlet; +#X msg 31 88 \; pd dsp \$1; +#X obj 20 199 cputime; +#X obj 20 178 t b b; +#X text 48 439 (c) musil@iem.kug.ac.at; +#X text 90 452 IEM KUG; +#X text 59 65 1/0 = ON/OFF; +#X text 97 313 CPU-load; +#X obj 62 126 loadbang; +#X obj 20 126 sel 1; +#X text 65 464 graz \, austria 2001; +#X text 64 12 turn dsp-kernel on & off \,; +#X obj 20 240 t f f; +#X obj 51 263 once; +#X obj 211 405 outlet; +#X text 65 408 average; +#X text 177 405 peak; +#X obj 211 154 f; +#X obj 146 179 > -1; +#X obj 169 155 f -1; +#X obj 179 91 t f b f; +#X obj 146 204 sel 1; +#X obj 192 132 f -1; +#X obj 20 154 metro 500; +#X obj 20 220 * 0.2; +#X text 74 37 -dsp-load in %; +#X text 65 24 measure average- and peak-; +#X obj 20 292 1p1z 0.1 0 0.9; +#X obj 20 315 * 100; +#X obj 20 360 int; +#X obj 20 338 + 0.499; +#X obj 20 383 * 0.01; +#X obj 246 207 r pd; +#X obj 246 231 route dsp; +#X text 245 318 to toggle input; +#X msg 246 283 \; dsp_tgl set \$1; +#X obj 247 341 r dsp_tgl; +#X obj 246 257 route float; +#X text 15 11 dsp~; +#X obj 146 227 del 3990; +#X connect 0 0 2 0; +#X connect 0 0 10 0; +#X connect 3 0 25 0; +#X connect 4 0 3 0; +#X connect 4 1 3 1; +#X connect 9 0 24 0; +#X connect 10 0 24 0; +#X connect 13 0 28 0; +#X connect 13 1 14 0; +#X connect 14 0 28 5; +#X connect 14 0 28 4; +#X connect 18 0 20 1; +#X connect 18 0 15 0; +#X connect 19 0 22 0; +#X connect 20 0 19 1; +#X connect 21 0 19 0; +#X connect 21 1 20 0; +#X connect 21 2 18 1; +#X connect 22 0 18 0; +#X connect 22 0 40 0; +#X connect 23 0 20 1; +#X connect 24 0 4 0; +#X connect 25 0 13 0; +#X connect 25 0 21 0; +#X connect 28 0 29 0; +#X connect 29 0 31 0; +#X connect 30 0 32 0; +#X connect 31 0 30 0; +#X connect 32 0 1 0; +#X connect 33 0 34 0; +#X connect 34 0 38 0; +#X connect 38 0 36 0; +#X connect 40 0 23 0; diff --git a/iemabs/fadtodb.pd b/iemabs/fadtodb.pd new file mode 100644 index 0000000..5460d33 --- /dev/null +++ b/iemabs/fadtodb.pd @@ -0,0 +1,16 @@ +#N canvas 487 77 454 304 10; +#X obj 91 69 inlet; +#X msg 107 119 pairs 0 0 6 40 24 70 36 80 48 88 60 94 72 98 96 102 +108 106 111 107.5 114 109 117 112 147 142; +#X obj 91 154 transf_fader; +#X obj 107 98 loadbang; +#X obj 91 176 outlet; +#X text 26 201 (c) musil@iem.kug.ac.at; +#X text 63 214 IEM KUG; +#X text 38 226 graz \, austria 2003; +#X text 14 10 fadtodb; +#X text 87 11 convert fader-scale to midi-db; +#X connect 0 0 2 0; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 3 0 1 0; diff --git a/iemabs/fadtorms.pd b/iemabs/fadtorms.pd new file mode 100644 index 0000000..616c3fa --- /dev/null +++ b/iemabs/fadtorms.pd @@ -0,0 +1,18 @@ +#N canvas 318 237 454 304 10; +#X obj 91 69 inlet; +#X msg 107 119 pairs 0 0 6 40 24 70 36 80 48 88 60 94 72 98 96 102 +108 106 111 107.5 114 109 117 112 147 142; +#X obj 91 154 transf_fader; +#X obj 107 98 loadbang; +#X obj 91 199 outlet; +#X obj 91 177 dbtorms; +#X text 21 228 (c) musil@iem.kug.ac.at; +#X text 58 241 IEM KUG; +#X text 33 253 graz \, austria 2003; +#X text 13 10 fadtorms; +#X text 86 11 convert fader-scale to rms-value; +#X connect 0 0 2 0; +#X connect 1 0 2 0; +#X connect 2 0 5 0; +#X connect 3 0 1 0; +#X connect 5 0 4 0; diff --git a/iemabs/gainvu~.pd b/iemabs/gainvu~.pd new file mode 100644 index 0000000..7100941 --- /dev/null +++ b/iemabs/gainvu~.pd @@ -0,0 +1,38 @@ +#N canvas 157 220 299 360 10; +#X obj 112 57 inlet; +#X obj 32 167 line~; +#X text 19 37 audio; +#X obj 19 57 inlet~; +#X obj 19 186 *~; +#X obj 170 262 outlet; +#X obj 112 139 pack 0 500; +#X text 7 5 gainvu~; +#X obj 19 262 outlet~; +#X text 19 276 audio; +#X obj 112 102 dbtorms; +#X obj 197 57 inlet; +#X text 197 41 interpol-time; +#X obj 197 79 init \$1; +#X obj 197 103 split 20; +#X text 6 306 (c) musil@iem.kug.ac.at; +#X text 48 319 IEM KUG; +#X text 23 331 graz \, austria 2001; +#X text 48 186 1.arg: <float> interpolation-time in ms; +#X obj 170 239 prvu~; +#X text 112 41 slider-128; +#X text 182 278 vu; +#X obj 98 264 outlet; +#X obj 98 244 - 100; +#X connect 0 0 10 0; +#X connect 0 0 23 0; +#X connect 1 0 4 1; +#X connect 3 0 4 0; +#X connect 4 0 8 0; +#X connect 4 0 19 0; +#X connect 6 0 1 0; +#X connect 10 0 6 0; +#X connect 11 0 13 0; +#X connect 13 0 14 0; +#X connect 14 1 6 1; +#X connect 19 0 5 0; +#X connect 23 0 22 0; diff --git a/iemabs/gui-menu.pd b/iemabs/gui-menu.pd new file mode 100644 index 0000000..42044ac --- /dev/null +++ b/iemabs/gui-menu.pd @@ -0,0 +1,15 @@ +#N canvas 149 58 200 219 10; +#X obj 23 126 bng 15 250 50 0 empty empty empty 8 -8 0 10 0 22 22; +#X obj 78 127 toggle 15 0 empty empty empty 8 -8 0 10 0 22 22 0; +#X obj 13 184 hslider 128 15 0 127 0 0 empty empty empty 8 -8 0 10 0 22 22 0; +#X obj 115 25 vslider 15 128 0 127 0 0 empty empty empty 8 -8 0 10 0 22 22 0; +#X obj 135 26 vu 15 120 empty empty 8 -8 0 10 2 22; +#X obj 9 46 my_canvas 15 100 60 empty 20 12 2 20 10 2; +#X obj 11 163 radiobut 15 1 0 8 empty empty empty 8 -8 0 10 0 22 22 0; +#X text 134 161 rdb; +#X text 147 183 hsl; +#X text 113 5 vsl; +#X text 140 5 vu; +#X text 22 109 bng; +#X text 76 109 tgl; +#X text 11 26 my_canvas; diff --git a/iemabs/hp10_bess~.pd b/iemabs/hp10_bess~.pd new file mode 100644 index 0000000..dabb9ab --- /dev/null +++ b/iemabs/hp10_bess~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 406 302 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 85 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 167 85 inlet; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp10_bess~; +#X text 81 5 highpass 10.order with bessel characteristic; +#X obj 22 188 hp2c~ \$1 1.0215 0.265 \$2; +#X obj 22 167 hp2c~ \$1 0.9393 0.2549 \$2; +#X obj 22 146 hp2c~ \$1 0.7815 0.2351 \$2; +#X obj 22 127 hp2c~ \$1 0.5604 0.2059 \$2; +#X obj 22 107 hp2c~ \$1 0.2883 0.1665 \$2; +#X connect 0 0 19 0; +#X connect 1 0 19 1; +#X connect 9 0 19 4; +#X connect 15 0 2 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 16 4 15 4; +#X connect 17 0 16 0; +#X connect 17 1 16 1; +#X connect 17 4 16 4; +#X connect 18 0 17 0; +#X connect 18 1 17 1; +#X connect 18 4 17 4; +#X connect 19 0 18 0; +#X connect 19 1 18 1; +#X connect 19 4 18 4; diff --git a/iemabs/hp10_butt~.pd b/iemabs/hp10_butt~.pd new file mode 100644 index 0000000..8860abe --- /dev/null +++ b/iemabs/hp10_butt~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 404 300 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 5 5 hp10_butt~; +#X text 81 5 highpass 10.order with butterworth characteristic; +#X obj 22 107 hp2c~ \$1 0.312869 1 \$2; +#X obj 22 127 hp2c~ \$1 0.907981 1 \$2; +#X obj 22 146 hp2c~ \$1 1.41421 1 \$2; +#X obj 22 167 hp2c~ \$1 1.78201 1 \$2; +#X obj 22 188 hp2c~ \$1 1.97538 1 \$2; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X connect 0 0 12 0; +#X connect 1 0 12 1; +#X connect 9 0 12 4; +#X connect 12 0 13 0; +#X connect 12 1 13 1; +#X connect 12 4 13 4; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 13 4 14 4; +#X connect 14 0 15 0; +#X connect 14 1 15 1; +#X connect 14 4 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/hp10_cheb~.pd b/iemabs/hp10_cheb~.pd new file mode 100644 index 0000000..1efe92a --- /dev/null +++ b/iemabs/hp10_cheb~.pd @@ -0,0 +1,38 @@ +#N canvas 350 22 423 303 10; +#X obj 22 42 inlet~; +#X obj 62 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 99 67 <float> cutoff_frequency [Hz]; +#X text 219 86 <float> interpolation_time [ms]; +#X text 30 208 ~filtered signal_out~; +#X obj 185 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 97 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 97 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 5 5 hp10_cheb~; +#X text 81 5 highpass 10.order with chebyshev characteristic; +#X obj 22 107 hp2c~ \$1 0.045535 1.0277 \$2; +#X obj 22 127 hp2c~ \$1 0.161621 1.2569 \$2; +#X obj 22 148 hp2c~ \$1 0.393858 1.96655 \$2; +#X obj 22 168 hp2c~ \$1 1.13986 4.51667 \$2; +#X obj 22 189 hp2c~ \$1 6.36341 22.7468 \$2; +#X text 35 281 graz \, austria 2003; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 19 0; +#X connect 18 1 19 1; +#X connect 18 4 19 4; +#X connect 19 0 2 0; diff --git a/iemabs/hp10_crit~.pd b/iemabs/hp10_crit~.pd new file mode 100644 index 0000000..c35657d --- /dev/null +++ b/iemabs/hp10_crit~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 85 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 167 85 inlet; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp10_crit~; +#X text 81 5 highpass 10.order with critical damping; +#X obj 22 107 hp2c~ \$1 0.5358 0.0718 \$2; +#X obj 22 127 hp2c~ \$1 0.5358 0.0718 \$2; +#X obj 22 147 hp2c~ \$1 0.5358 0.0718 \$2; +#X obj 22 167 hp2c~ \$1 0.5358 0.0718 \$2; +#X obj 22 187 hp2c~ \$1 0.5358 0.0718 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 19 0; +#X connect 18 1 19 1; +#X connect 18 4 19 4; +#X connect 19 0 2 0; diff --git a/iemabs/hp1c~.pd b/iemabs/hp1c~.pd new file mode 100644 index 0000000..6b8d84a --- /dev/null +++ b/iemabs/hp1c~.pd @@ -0,0 +1,35 @@ +#N canvas 325 243 413 348 10; +#X obj 22 42 inlet~; +#X obj 55 66 inlet; +#X obj 22 196 outlet~; +#X text 12 299 (c) musil@iem.kug.ac.at; +#X text 54 312 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 92 67 <float> cutoff_frequency [Hz]; +#X text 189 134 <float> interpolation_time [ms]; +#X text 32 176 ~filtered signal_out~; +#X obj 88 93 inlet; +#X text 29 324 graz \, austria 2001; +#X obj 155 134 inlet; +#X text 124 93 <float> frequency-shift [-]; +#X text 12 8 hp1c~; +#X text 60 8 highpass 1.order for filter-cascades; +#X obj 22 157 filter~ hp1c \$1 \$2 1 \$3; +#X obj 55 214 outlet; +#X obj 86 232 outlet; +#X obj 115 251 outlet; +#X obj 155 271 outlet; +#X text 127 231 dummy; +#X text 155 250 dummy; +#X obj 123 113 inlet; +#X text 158 113 dummy; +#X text 120 192 1.arg: <float> cutoff_frequency [Hz]; +#X text 120 202 2.arg: <float> frequency-shift [-]; +#X text 120 212 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 1 0 16 0; +#X connect 9 0 15 2; +#X connect 11 0 15 4; +#X connect 11 0 19 0; +#X connect 15 0 2 0; diff --git a/iemabs/hp1~.pd b/iemabs/hp1~.pd new file mode 100644 index 0000000..95d9b8c --- /dev/null +++ b/iemabs/hp1~.pd @@ -0,0 +1,21 @@ +#N canvas 274 213 375 281 10; +#X obj 22 42 inlet~; +#X obj 52 63 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 89 64 <float> cutoff_frequency [Hz]; +#X obj 143 85 inlet; +#X text 181 84 <float> interpolation_time [ms]; +#X text 12 8 hp1~; +#X obj 22 123 filter~ hp1 \$1 1 0 \$2; +#X text 28 157 ~filtered signal_out~; +#X text 66 10 highpass 1.order; +#X text 32 254 graz \, austria 2001; +#X text 92 192 2.arg: <float> interpolation_time [ms] (opt.); +#X text 92 182 1.arg: <float> cutoff_frequency [Hz]; +#X connect 0 0 10 0; +#X connect 1 0 10 1; +#X connect 7 0 10 4; +#X connect 10 0 2 0; diff --git a/iemabs/hp2_bess~.pd b/iemabs/hp2_bess~.pd new file mode 100644 index 0000000..1692275 --- /dev/null +++ b/iemabs/hp2_bess~.pd @@ -0,0 +1,21 @@ +#N canvas 350 22 412 308 10; +#X obj 22 42 inlet~; +#X obj 56 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 93 67 <float> cutoff_frequency [Hz]; +#X text 195 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 161 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp2_bess~; +#X text 81 5 highpass 2.order with bessel characteristic; +#X obj 22 107 hp2c~ \$1 1.3617 0.618 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 2 0; diff --git a/iemabs/hp2_butt~.pd b/iemabs/hp2_butt~.pd new file mode 100644 index 0000000..a244e70 --- /dev/null +++ b/iemabs/hp2_butt~.pd @@ -0,0 +1,21 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 52 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 89 67 <float> cutoff_frequency [Hz]; +#X text 177 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 143 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp2_butt~; +#X text 81 5 highpass 2.order with butterworth characteristic; +#X obj 22 107 hp2c~ \$1 1.41421 1 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 2 0; diff --git a/iemabs/hp2_cheb~.pd b/iemabs/hp2_cheb~.pd new file mode 100644 index 0000000..30116f7 --- /dev/null +++ b/iemabs/hp2_cheb~.pd @@ -0,0 +1,22 @@ +#N canvas 350 22 423 303 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp2_cheb~; +#X text 81 5 highpass 2.order with chebyshev characteristic; +#X obj 22 106 hp2c~ \$1 1.3022 1.5515 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/hp2_crit~.pd b/iemabs/hp2_crit~.pd new file mode 100644 index 0000000..626284c --- /dev/null +++ b/iemabs/hp2_crit~.pd @@ -0,0 +1,21 @@ +#N canvas 350 22 414 310 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X obj 22 107 hp2c~ \$1 1.2872 0.4142 \$2; +#X text 5 5 hp2_crit~; +#X text 81 5 highpass 2.order with critical damping; +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 9 0 13 4; +#X connect 13 0 2 0; diff --git a/iemabs/hp2c~.pd b/iemabs/hp2c~.pd new file mode 100644 index 0000000..d74adfa --- /dev/null +++ b/iemabs/hp2c~.pd @@ -0,0 +1,37 @@ +#N canvas 406 261 408 347 10; +#X obj 22 42 inlet~; +#X obj 56 63 inlet; +#X obj 22 193 outlet~; +#X text 8 295 (c) musil@iem.kug.ac.at; +#X text 50 308 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 93 64 <float> cutoff_frequency [Hz]; +#X obj 91 87 inlet; +#X text 195 136 <float> interpolation_time [ms]; +#X text 32 176 ~filtered signal_out~; +#X obj 126 111 inlet; +#X text 25 320 graz \, austria 2001; +#X obj 161 136 inlet; +#X text 127 87 <float> damping [-]; +#X text 162 111 <float> frequency-shift [-]; +#X text 12 8 hp2c~; +#X text 60 8 highpass 2.order for filter-cascades; +#X obj 22 157 filter~ hp2c \$1 \$2 \$3 \$4; +#X obj 56 211 outlet; +#X obj 88 236 outlet; +#X obj 119 255 outlet; +#X obj 161 274 outlet; +#X text 129 235 dummy; +#X text 159 254 dummy; +#X text 128 190 1.arg: <float> cutoff_frequency [Hz]; +#X text 128 199 2.arg: <float> damping [-]; +#X text 128 208 3.arg: <float> frequency-shift [-]; +#X text 128 218 4.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 17 0; +#X connect 1 0 17 1; +#X connect 1 0 18 0; +#X connect 7 0 17 2; +#X connect 10 0 17 3; +#X connect 12 0 17 4; +#X connect 12 0 21 0; +#X connect 17 0 2 0; diff --git a/iemabs/hp2~.pd b/iemabs/hp2~.pd new file mode 100644 index 0000000..5a5521a --- /dev/null +++ b/iemabs/hp2~.pd @@ -0,0 +1,25 @@ +#N canvas 435 244 375 281 10; +#X obj 22 42 inlet~; +#X obj 53 65 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 89 64 <float> cutoff_frequency [Hz]; +#X obj 85 89 inlet; +#X text 184 113 <float> interpolation_time [ms]; +#X text 28 157 ~filtered signal_out~; +#X text 11 9 hp2~; +#X text 66 10 highpass 2.order; +#X obj 22 136 filter~ hp2 \$1 \$2 1 \$3; +#X obj 149 112 inlet; +#X text 120 89 <float> Q [-]; +#X text 32 254 graz \, austria 2001; +#X text 88 177 1.arg: <float> cutoff_frequency [Hz]; +#X text 88 186 2.arg: <float> Q [-]; +#X text 88 196 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 12 0; +#X connect 1 0 12 1; +#X connect 7 0 12 2; +#X connect 12 0 2 0; +#X connect 13 0 12 4; diff --git a/iemabs/hp3_bess~.pd b/iemabs/hp3_bess~.pd new file mode 100644 index 0000000..fb6278f --- /dev/null +++ b/iemabs/hp3_bess~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp3_bess~; +#X text 81 5 highpass 3.order with bessel characteristic; +#X obj 22 129 hp1c~ \$1 0.756 \$2; +#X obj 22 107 hp2c~ \$1 0.9996 0.4772 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 15 0 2 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 16 4 15 4; diff --git a/iemabs/hp3_butt~.pd b/iemabs/hp3_butt~.pd new file mode 100644 index 0000000..f3abf0c --- /dev/null +++ b/iemabs/hp3_butt~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 406 302 10; +#X obj 22 42 inlet~; +#X obj 43 65 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 80 66 <float> cutoff_frequency [Hz]; +#X text 141 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 107 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp3_butt~; +#X text 81 5 highpass 3.order with butterworth characteristic; +#X obj 22 107 hp2c~ \$1 1 1 \$2; +#X obj 22 129 hp1c~ \$1 1 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/hp3_cheb~.pd b/iemabs/hp3_cheb~.pd new file mode 100644 index 0000000..31d94ea --- /dev/null +++ b/iemabs/hp3_cheb~.pd @@ -0,0 +1,26 @@ +#N canvas 350 22 423 303 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 5 5 hp3_cheb~; +#X text 81 5 highpass 3.order with chebyshev characteristic; +#X obj 22 127 hp1c~ \$1 2.2156 \$2; +#X obj 22 106 hp2c~ \$1 0.5442 1.2057 \$2; +#X text 35 281 graz \, austria 2003; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 15 0 2 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 16 4 15 4; diff --git a/iemabs/hp3_crit~.pd b/iemabs/hp3_crit~.pd new file mode 100644 index 0000000..e7b9f15 --- /dev/null +++ b/iemabs/hp3_crit~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp3_crit~; +#X text 81 5 highpass 3.order with critical damping; +#X obj 22 129 hp1c~ \$1 0.5098 \$2; +#X obj 22 107 hp2c~ \$1 1.0197 0.2599 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 15 0 2 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 16 4 15 4; diff --git a/iemabs/hp4_bess~.pd b/iemabs/hp4_bess~.pd new file mode 100644 index 0000000..c6b81fd --- /dev/null +++ b/iemabs/hp4_bess~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 406 302 10; +#X obj 22 42 inlet~; +#X obj 56 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 93 67 <float> cutoff_frequency [Hz]; +#X text 195 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 161 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp4_bess~; +#X text 81 5 highpass 4.order with bessel characteristic; +#X obj 22 107 hp2c~ \$1 0.7743 0.389 \$2; +#X obj 22 127 hp2c~ \$1 1.3397 0.4889 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/hp4_butt~.pd b/iemabs/hp4_butt~.pd new file mode 100644 index 0000000..e313e9b --- /dev/null +++ b/iemabs/hp4_butt~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 404 300 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 5 5 hp4_butt~; +#X text 81 5 highpass 4.order with butterworth characteristic; +#X obj 22 107 hp2c~ \$1 0.765367 1 \$2; +#X obj 22 127 hp2c~ \$1 1.84776 1 \$2; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X connect 0 0 12 0; +#X connect 1 0 12 1; +#X connect 9 0 12 4; +#X connect 12 0 13 0; +#X connect 12 1 13 1; +#X connect 12 4 13 4; +#X connect 13 0 2 0; diff --git a/iemabs/hp4_cheb~.pd b/iemabs/hp4_cheb~.pd new file mode 100644 index 0000000..f765f44 --- /dev/null +++ b/iemabs/hp4_cheb~.pd @@ -0,0 +1,26 @@ +#N canvas 350 22 423 303 10; +#X obj 22 42 inlet~; +#X obj 62 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 99 67 <float> cutoff_frequency [Hz]; +#X text 219 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 185 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 5 5 hp4_cheb~; +#X text 81 5 highpass 4.order with chebyshev characteristic; +#X obj 22 106 hp2c~ \$1 0.303886 1.16973 \$2; +#X obj 22 127 hp2c~ \$1 2.59037 4.13012 \$2; +#X text 35 281 graz \, austria 2003; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/hp4_crit~.pd b/iemabs/hp4_crit~.pd new file mode 100644 index 0000000..a326cc9 --- /dev/null +++ b/iemabs/hp4_crit~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 55 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 92 67 <float> cutoff_frequency [Hz]; +#X text 189 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 155 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 6 4 hp4_crit~; +#X text 82 4 highpass 4.order with critical damping; +#X obj 22 127 hp2c~ \$1 0.87 0.1892 \$2; +#X obj 22 107 hp2c~ \$1 0.87 0.1892 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 15 0 2 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 16 4 15 4; diff --git a/iemabs/hp5_bess~.pd b/iemabs/hp5_bess~.pd new file mode 100644 index 0000000..ac30fa4 --- /dev/null +++ b/iemabs/hp5_bess~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 31 164 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp5_bess~; +#X text 81 5 highpass 5.order with bessel characteristic; +#X obj 22 147 hp1c~ \$1 0.6656 \$2; +#X obj 22 107 hp2c~ \$1 0.6216 0.3245 \$2; +#X obj 22 127 hp2c~ \$1 1.1402 0.4128 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 15 0 2 0; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 15 0; +#X connect 17 1 15 1; +#X connect 17 4 15 4; diff --git a/iemabs/hp5_butt~.pd b/iemabs/hp5_butt~.pd new file mode 100644 index 0000000..03f5800 --- /dev/null +++ b/iemabs/hp5_butt~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 31 164 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X obj 22 146 hp1c~ \$1 1 \$2; +#X text 5 5 hp5_butt~; +#X text 81 5 highpass 5.order with butterworth characteristic; +#X obj 22 127 hp2c~ \$1 1.61803 1 \$2; +#X obj 22 107 hp2c~ \$1 0.618034 1 \$2; +#X connect 0 0 17 0; +#X connect 1 0 17 1; +#X connect 9 0 17 4; +#X connect 13 0 2 0; +#X connect 16 0 13 0; +#X connect 16 1 13 1; +#X connect 16 4 13 4; +#X connect 17 0 16 0; +#X connect 17 1 16 1; +#X connect 17 4 16 4; diff --git a/iemabs/hp5_cheb~.pd b/iemabs/hp5_cheb~.pd new file mode 100644 index 0000000..56e64df --- /dev/null +++ b/iemabs/hp5_cheb~.pd @@ -0,0 +1,30 @@ +#N canvas 350 22 421 301 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 31 172 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 79 195 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 205 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 4 6 hp5_cheb~; +#X text 81 5 highpass 5.order with chebyshev characteristic; +#X obj 22 148 hp1c~ \$1 3.5711 \$2; +#X obj 22 127 hp2c~ \$1 1.128 2.4896 \$2; +#X obj 22 107 hp2c~ \$1 0.1872 1.0814 \$2; +#X connect 0 0 18 0; +#X connect 1 0 18 1; +#X connect 9 0 18 4; +#X connect 16 0 2 0; +#X connect 17 0 16 0; +#X connect 17 1 16 1; +#X connect 17 4 16 4; +#X connect 18 0 17 0; +#X connect 18 1 17 1; +#X connect 18 4 17 4; diff --git a/iemabs/hp5_crit~.pd b/iemabs/hp5_crit~.pd new file mode 100644 index 0000000..6438ee1 --- /dev/null +++ b/iemabs/hp5_crit~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 412 308 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 31 167 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp5_crit~; +#X text 81 5 highpass 5.order with critical damping; +#X obj 22 150 hp1c~ \$1 0.3856 \$2; +#X obj 22 107 hp2c~ \$1 0.7712 0.1487 \$2; +#X obj 22 128 hp2c~ \$1 0.7712 0.1487 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 15 0 2 0; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 15 0; +#X connect 17 1 15 1; +#X connect 17 4 15 4; diff --git a/iemabs/hp6_bess~.pd b/iemabs/hp6_bess~.pd new file mode 100644 index 0000000..914b425 --- /dev/null +++ b/iemabs/hp6_bess~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 406 302 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 31 164 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp6_bess~; +#X text 81 5 highpass 6.order with bessel characteristic; +#X obj 22 107 hp2c~ \$1 0.5131 0.2756 \$2; +#X obj 22 127 hp2c~ \$1 0.9686 0.3505 \$2; +#X obj 22 147 hp2c~ \$1 1.2217 0.3887 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/hp6_butt~.pd b/iemabs/hp6_butt~.pd new file mode 100644 index 0000000..a49c247 --- /dev/null +++ b/iemabs/hp6_butt~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 404 300 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 31 164 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 5 5 hp6_butt~; +#X text 81 5 highpass 6.order with butterworth characteristic; +#X obj 22 107 hp2c~ \$1 0.517638 1 \$2; +#X obj 22 127 hp2c~ \$1 1.41421 1 \$2; +#X obj 22 146 hp2c~ \$1 1.93185 1 \$2; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X connect 0 0 12 0; +#X connect 1 0 12 1; +#X connect 9 0 12 4; +#X connect 12 0 13 0; +#X connect 12 1 13 1; +#X connect 12 4 13 4; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 13 4 14 4; +#X connect 14 0 2 0; diff --git a/iemabs/hp6_cheb~.pd b/iemabs/hp6_cheb~.pd new file mode 100644 index 0000000..c0081b9 --- /dev/null +++ b/iemabs/hp6_cheb~.pd @@ -0,0 +1,30 @@ +#N canvas 350 22 421 301 10; +#X obj 22 42 inlet~; +#X obj 62 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 99 67 <float> cutoff_frequency [Hz]; +#X text 219 86 <float> interpolation_time [ms]; +#X text 31 172 ~filtered signal_out~; +#X obj 185 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 79 195 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 205 2.arg: <float> interpolation_time [ms] (opt.); +#X text 4 6 hp6_cheb~; +#X text 81 5 highpass 6.order with chebyshev characteristic; +#X obj 22 107 hp2c~ \$1 0.129638 1.07658 \$2; +#X obj 22 127 hp2c~ \$1 0.629161 1.91243 \$2; +#X obj 22 148 hp2c~ \$1 3.84367 8.55286 \$2; +#X text 35 281 graz \, austria 2003; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/hp6_crit~.pd b/iemabs/hp6_crit~.pd new file mode 100644 index 0000000..1dd3a15 --- /dev/null +++ b/iemabs/hp6_crit~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 31 164 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp6_crit~; +#X text 81 5 highpass 6.order with critical damping; +#X obj 22 107 hp2c~ \$1 0.6999 0.1225 \$2; +#X obj 22 127 hp2c~ \$1 0.6999 0.1225 \$2; +#X obj 22 147 hp2c~ \$1 0.6999 0.1225 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/hp7_bess~.pd b/iemabs/hp7_bess~.pd new file mode 100644 index 0000000..2029180 --- /dev/null +++ b/iemabs/hp7_bess~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 58 65 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 66 <float> cutoff_frequency [Hz]; +#X text 201 85 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 167 85 inlet; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X text 5 5 hp7_bess~; +#X text 81 5 highpass 7.order with bessel characteristic; +#X obj 22 167 hp1c~ \$1 0.5937 \$2; +#X obj 22 146 hp2c~ \$1 1.0944 0.3395 \$2; +#X obj 21 127 hp2c~ \$1 0.8304 0.3011 \$2; +#X obj 22 107 hp2c~ \$1 0.4332 0.2381 \$2; +#X connect 0 0 18 0; +#X connect 1 0 18 1; +#X connect 9 0 18 4; +#X connect 15 0 2 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 16 4 15 4; +#X connect 17 0 16 0; +#X connect 17 1 16 1; +#X connect 17 4 16 4; +#X connect 18 0 17 0; +#X connect 18 1 17 1; +#X connect 18 4 17 4; diff --git a/iemabs/hp7_butt~.pd b/iemabs/hp7_butt~.pd new file mode 100644 index 0000000..50124db --- /dev/null +++ b/iemabs/hp7_butt~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X obj 22 167 hp1c~ \$1 1 \$2; +#X obj 22 146 hp2c~ \$1 1.80194 1 \$2; +#X obj 22 127 hp2c~ \$1 1.24698 1 \$2; +#X obj 22 107 hp2c~ \$1 0.445042 1 \$2; +#X text 5 5 hp7_butt~; +#X text 81 5 highpass 7.order with butterworth characteristic; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 13 0 2 0; +#X connect 14 0 13 0; +#X connect 14 1 13 1; +#X connect 14 4 13 4; +#X connect 15 0 14 0; +#X connect 15 1 14 1; +#X connect 15 4 14 4; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 16 4 15 4; diff --git a/iemabs/hp7_cheb~.pd b/iemabs/hp7_cheb~.pd new file mode 100644 index 0000000..86ffbd3 --- /dev/null +++ b/iemabs/hp7_cheb~.pd @@ -0,0 +1,34 @@ +#N canvas 350 22 423 303 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 29 186 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 86 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 86 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp7_cheb~; +#X text 81 5 highpass 7.order with chebyshev characteristic; +#X obj 22 168 hp1c~ \$1 4.952 \$2; +#X obj 22 148 hp2c~ \$1 1.6338 4.4899 \$2; +#X obj 22 127 hp2c~ \$1 0.3987 1.5834 \$2; +#X obj 22 107 hp2c~ \$1 0.0937 1.0423 \$2; +#X connect 0 0 19 0; +#X connect 1 0 19 1; +#X connect 9 0 19 4; +#X connect 16 0 2 0; +#X connect 17 0 16 0; +#X connect 17 1 16 1; +#X connect 17 4 16 4; +#X connect 18 0 17 0; +#X connect 18 1 17 1; +#X connect 18 4 17 4; +#X connect 19 0 18 0; +#X connect 19 1 18 1; +#X connect 19 4 18 4; diff --git a/iemabs/hp7_crit~.pd b/iemabs/hp7_crit~.pd new file mode 100644 index 0000000..ef8dfce --- /dev/null +++ b/iemabs/hp7_crit~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 412 308 10; +#X obj 22 42 inlet~; +#X obj 58 65 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 66 <float> cutoff_frequency [Hz]; +#X text 201 85 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 167 85 inlet; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X text 5 5 hp7_crit~; +#X text 81 5 highpass 7.order with critical damping; +#X obj 22 167 hp1c~ \$1 0.3226 \$2; +#X obj 22 107 hp2c~ \$1 0.6453 0.1041 \$2; +#X obj 22 127 hp2c~ \$1 0.6453 0.1041 \$2; +#X obj 22 147 hp2c~ \$1 0.6453 0.1041 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 15 0 2 0; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 15 0; +#X connect 18 1 15 1; +#X connect 18 4 15 4; diff --git a/iemabs/hp8_bess~.pd b/iemabs/hp8_bess~.pd new file mode 100644 index 0000000..8cb74aa --- /dev/null +++ b/iemabs/hp8_bess~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 406 302 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X text 5 5 hp8_bess~; +#X text 81 5 highpass 8.order with bessel characteristic; +#X obj 22 167 hp2c~ \$1 1.1112 0.3162 \$2; +#X obj 22 146 hp2c~ \$1 0.9754 0.2979 \$2; +#X obj 22 127 hp2c~ \$1 0.7202 0.2621 \$2; +#X obj 22 107 hp2c~ \$1 0.3728 0.2087 \$2; +#X connect 0 0 18 0; +#X connect 1 0 18 1; +#X connect 9 0 18 4; +#X connect 15 0 2 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 16 4 15 4; +#X connect 17 0 16 0; +#X connect 17 1 16 1; +#X connect 17 4 16 4; +#X connect 18 0 17 0; +#X connect 18 1 17 1; +#X connect 18 4 17 4; diff --git a/iemabs/hp8_butt~.pd b/iemabs/hp8_butt~.pd new file mode 100644 index 0000000..2d35b79 --- /dev/null +++ b/iemabs/hp8_butt~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 404 300 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 5 5 hp8_butt~; +#X text 81 5 highpass 8.order with butterworth characteristic; +#X obj 22 107 hp2c~ \$1 0.390181 1 \$2; +#X obj 22 127 hp2c~ \$1 1.11114 1 \$2; +#X obj 22 146 hp2c~ \$1 1.66294 1 \$2; +#X obj 22 167 hp2c~ \$1 1.96157 1 \$2; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X connect 0 0 12 0; +#X connect 1 0 12 1; +#X connect 9 0 12 4; +#X connect 12 0 13 0; +#X connect 12 1 13 1; +#X connect 12 4 13 4; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 13 4 14 4; +#X connect 14 0 15 0; +#X connect 14 1 15 1; +#X connect 14 4 15 4; +#X connect 15 0 2 0; diff --git a/iemabs/hp8_cheb~.pd b/iemabs/hp8_cheb~.pd new file mode 100644 index 0000000..0b6302f --- /dev/null +++ b/iemabs/hp8_cheb~.pd @@ -0,0 +1,34 @@ +#N canvas 350 22 423 303 10; +#X obj 22 42 inlet~; +#X obj 62 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 99 67 <float> cutoff_frequency [Hz]; +#X text 219 86 <float> interpolation_time [ms]; +#X text 29 186 ~filtered signal_out~; +#X obj 185 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 86 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 86 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 5 5 hp8_cheb~; +#X text 81 5 highpass 8.order with chebyshev characteristic; +#X obj 22 107 hp2c~ \$1 0.071724 1.04322 \$2; +#X obj 22 127 hp2c~ \$1 0.280641 1.43338 \$2; +#X obj 22 148 hp2c~ \$1 0.891555 3.04263 \$2; +#X obj 22 168 hp2c~ \$1 5.10194 14.7608 \$2; +#X text 35 281 graz \, austria 2003; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 2 0; diff --git a/iemabs/hp8_crit~.pd b/iemabs/hp8_crit~.pd new file mode 100644 index 0000000..a4218af --- /dev/null +++ b/iemabs/hp8_crit~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X text 5 5 hp8_crit~; +#X text 81 5 highpass 8.order with critical damping; +#X obj 22 107 hp2c~ \$1 0.6017 0.0905 \$2; +#X obj 22 127 hp2c~ \$1 0.6017 0.0905 \$2; +#X obj 22 147 hp2c~ \$1 0.6017 0.0905 \$2; +#X obj 22 167 hp2c~ \$1 0.6017 0.0905 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 2 0; diff --git a/iemabs/hp9_bess~.pd b/iemabs/hp9_bess~.pd new file mode 100644 index 0000000..67d00bb --- /dev/null +++ b/iemabs/hp9_bess~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 414 310 10; +#X obj 22 42 inlet~; +#X obj 58 65 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 66 <float> cutoff_frequency [Hz]; +#X text 203 86 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp9_bess~; +#X text 81 5 highpass 9.order with bessel characteristic; +#X obj 22 189 hp1c~ \$1 0.5386 \$2; +#X obj 22 168 hp2c~ \$1 1.0244 0.2834 \$2; +#X obj 22 147 hp2c~ \$1 0.871 0.2636 \$2; +#X obj 22 127 hp2c~ \$1 0.632 0.2311 \$2; +#X obj 22 107 hp2c~ \$1 0.3257 0.1854 \$2; +#X connect 0 0 19 0; +#X connect 1 0 19 1; +#X connect 9 0 19 4; +#X connect 15 0 2 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 16 4 15 4; +#X connect 17 0 16 0; +#X connect 17 1 16 1; +#X connect 17 4 16 4; +#X connect 18 0 17 0; +#X connect 18 1 17 1; +#X connect 18 4 17 4; +#X connect 19 0 18 0; +#X connect 19 1 18 1; +#X connect 19 4 18 4; diff --git a/iemabs/hp9_butt~.pd b/iemabs/hp9_butt~.pd new file mode 100644 index 0000000..568c366 --- /dev/null +++ b/iemabs/hp9_butt~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 412 308 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 185 86 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X obj 22 189 hp1c~ \$1 1 \$2; +#X text 5 5 hp9_butt~; +#X text 81 5 highpass 9.order with butterworth characteristic; +#X obj 22 168 hp2c~ \$1 1.87939 1 \$2; +#X obj 22 147 hp2c~ \$1 1.53209 1 \$2; +#X obj 22 127 hp2c~ \$1 1 1 \$2; +#X obj 22 107 hp2c~ \$1 0.347296 1 \$2; +#X connect 0 0 19 0; +#X connect 1 0 19 1; +#X connect 9 0 19 4; +#X connect 13 0 2 0; +#X connect 16 0 13 0; +#X connect 16 1 13 1; +#X connect 16 4 13 4; +#X connect 17 0 16 0; +#X connect 17 1 16 1; +#X connect 17 4 16 4; +#X connect 18 0 17 0; +#X connect 18 1 17 1; +#X connect 18 4 17 4; +#X connect 19 0 18 0; +#X connect 19 1 18 1; +#X connect 19 4 18 4; diff --git a/iemabs/hp9_cheb~.pd b/iemabs/hp9_cheb~.pd new file mode 100644 index 0000000..2760435 --- /dev/null +++ b/iemabs/hp9_cheb~.pd @@ -0,0 +1,38 @@ +#N canvas 350 22 423 303 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 208 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 97 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 97 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp9_cheb~; +#X text 81 5 highpass 9.order with chebyshev characteristic; +#X obj 22 189 hp1c~ \$1 6.3415 \$2; +#X obj 22 168 hp2c~ \$1 2.1252 7.1711 \$2; +#X obj 22 148 hp2c~ \$1 0.5624 2.3278 \$2; +#X obj 22 127 hp2c~ \$1 0.2076 1.3166 \$2; +#X obj 22 107 hp2c~ \$1 0.0562 1.0258 \$2; +#X connect 0 0 20 0; +#X connect 1 0 20 1; +#X connect 9 0 20 4; +#X connect 16 0 2 0; +#X connect 17 0 16 0; +#X connect 17 1 16 1; +#X connect 17 4 16 4; +#X connect 18 0 17 0; +#X connect 18 1 17 1; +#X connect 18 4 17 4; +#X connect 19 0 18 0; +#X connect 19 1 18 1; +#X connect 19 4 18 4; +#X connect 20 0 19 0; +#X connect 20 1 19 1; +#X connect 20 4 19 4; diff --git a/iemabs/hp9_crit~.pd b/iemabs/hp9_crit~.pd new file mode 100644 index 0000000..cbf40fd --- /dev/null +++ b/iemabs/hp9_crit~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 416 312 10; +#X obj 22 42 inlet~; +#X obj 58 65 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 66 <float> cutoff_frequency [Hz]; +#X text 203 86 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 hp9_crit~; +#X text 81 5 highpass 9.order with critical damping; +#X obj 22 189 hp1c~ \$1 0.2829 \$2; +#X obj 22 107 hp2c~ \$1 0.5659 0.0801 \$2; +#X obj 22 127 hp2c~ \$1 0.5659 0.0801 \$2; +#X obj 22 147 hp2c~ \$1 0.5659 0.0801 \$2; +#X obj 22 167 hp2c~ \$1 0.5659 0.0801 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 15 0 2 0; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 19 0; +#X connect 18 1 19 1; +#X connect 18 4 19 4; +#X connect 19 0 15 0; +#X connect 19 1 15 1; +#X connect 19 4 15 4; diff --git a/iemabs/hslider.pd b/iemabs/hslider.pd new file mode 100644 index 0000000..24abfe1 --- /dev/null +++ b/iemabs/hslider.pd @@ -0,0 +1,303 @@ +#N canvas 239 208 390 413 10; +#X obj 1 1 cnv 8 100 60 empty empty hslider=hsl 20 20 1 18 -262144 +-1109 0; +#X floatatom 38 127 9 0 0; +#X msg 47 84 set \$1; +#X floatatom 38 41 7 0 0; +#X text 13 355 (c) musil@iem.kug.ac.at; +#X text 55 368 IEM KUG; +#X text 30 380 graz \, austria 2001; +#X obj 38 149 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 18 41 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 41 107 hsl 101 15 25 75 0 1 foo1_snd foo1_rcv empty 8 -8 192 +10 -225280 -1109 -1 2000 1; +#X text 174 11 gui-horicontal-slider:; +#X floatatom 47 62 7 0 0; +#X floatatom 116 150 9 0 0; +#X obj 110 308 r goo2_snd; +#X obj 145 248 s goo2_rcv; +#X floatatom 105 40 7 0 0; +#X floatatom 145 206 7 0 0; +#X obj 60 170 print; +#N canvas 276 200 290 224 once 0; +#X obj 38 47 t b b f; +#X msg 56 85 1; +#X obj 31 108 f 0; +#X obj 31 131 pack 0 0; +#X obj 31 156 route 0; +#X obj 38 24 inlet; +#X obj 31 180 outlet; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 1; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 0 0 0; +#X restore 60 147 pd once; +#X obj 40 265 hsl 73 15 55 3520 1 1 goo2_snd goo2_rcv log.freq. 8 -8 +192 10 -42246 -260818 -90133 4800 1; +#X obj 37 308 ftom; +#X floatatom 37 330 9 0 0; +#X floatatom 64 287 9 0 0; +#X floatatom 110 329 9 0 0; +#X text 175 176 click properties to; +#X floatatom 37 203 8 0 0; +#X obj 37 226 mtof; +#X text 12 184 --------------------; +#X text 163 187 modify geometry \, colors \, etc.; +#X obj 105 82 s foo1_rcv; +#X obj 116 130 r foo1_snd; +#X msg 105 61 set \$1; +#X msg 145 227 set \$1; +#X text 197 120 (0.01 pixels); +#X text 183 99 shift-click & drag; +#X text 189 109 for fine-tuning; +#X text 148 270 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 147 281 for moving selected gui-objects; +#N canvas 207 113 716 530 edit 0; +#X obj 32 220 f; +#X msg 10 199 bang; +#X floatatom 48 198 3 63 88; +#X floatatom 83 220 3 0 37; +#X obj 32 243 pack 0 0; +#X text 110 220 y-label; +#X text 76 198 x-label; +#X obj 279 246 f; +#X msg 257 225 bang; +#X floatatom 295 224 3 -10 10; +#X floatatom 330 246 3 -10 10; +#X obj 279 269 pack 0 0; +#X obj 292 358 f; +#X msg 270 337 bang; +#X floatatom 308 336 3 20 60; +#X floatatom 343 358 3 150 200; +#X obj 292 381 pack 0 0; +#X text 323 224 x-delta; +#X text 357 246 y-delta; +#X text 336 336 x-position; +#X text 370 358 y-position; +#X obj 52 335 f; +#X msg 30 314 bang; +#X floatatom 68 313 3 0 2; +#X floatatom 103 335 3 4 36; +#X obj 52 358 pack 0 0; +#X text 96 313 font; +#X text 132 335 height; +#X floatatom 476 188 1 0 1; +#X text 523 401 no init; +#X text 493 453 init value on loadbang; +#X msg 47 154 \; goo2_rcv color \$1 \$2 \$3; +#X msg 32 268 \; goo2_rcv label_pos \$1 \$2; +#X msg 52 383 \; goo2_rcv label_font \$1 \$2; +#X msg 34 427 \; goo2_rcv label blabla; +#X msg 292 406 \; goo2_rcv pos \$1 \$2; +#X msg 279 294 \; goo2_rcv delta \$1 \$2; +#X msg 475 21 \; goo2_rcv send goo2a_snd; +#X msg 475 59 \; goo2_rcv send goo2_snd; +#X msg 476 105 \; goo2_rcv receive goo2a_rcv; +#X msg 476 143 \; goo2a_rcv receive goo2_rcv; +#X msg 502 420 \; goo2_rcv init 0; +#X msg 503 471 \; goo2_rcv init 1; +#X text 520 188 steady; +#X obj 486 291 f; +#X msg 464 270 bang; +#X floatatom 502 269 3 55 440; +#X floatatom 537 291 6 440 3520; +#X obj 486 314 pack 0 0; +#X text 530 269 left-range-bound; +#X text 586 291 right-range-bound; +#X msg 486 339 \; goo2_rcv range \$1 \$2; +#X msg 363 465 \; goo2_rcv log; +#X msg 269 466 \; goo2_rcv lin; +#X text 269 448 linear / logarithmical; +#X obj 275 133 f; +#X msg 250 112 bang; +#X floatatom 291 111 3 15 73; +#X floatatom 326 133 3 8 50; +#X obj 275 156 pack 0 0; +#X text 319 111 width; +#X text 357 134 height; +#X msg 275 181 \; goo2_rcv size \$1 \$2; +#X msg 34 463 \; goo2_rcv label log.freq.; +#X msg 476 212 \; goo2_rcv steady \$1; +#X obj 47 100 pack 0 0 0; +#X obj 47 72 f; +#X msg 24 24 bang; +#X floatatom 63 22 3 0 29; +#X floatatom 79 42 3 0 29; +#X floatatom 112 58 3 0 29; +#X text 91 22 background; +#X text 106 42 front-color; +#X text 140 59 label-color; +#X msg 277 22 back; +#X msg 277 42 front; +#X msg 277 62 label; +#X msg 239 22 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 277 82 pd RGB_____________; +#X floatatom 319 52 3 0 255; +#X floatatom 362 52 3 0 255; +#X floatatom 405 53 3 0 255; +#X text 34 -1 preset-colors; +#X text 290 1 RGB-colors; +#X text 319 34 red; +#X text 355 33 green; +#X text 403 33 blue; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 32 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 10 0 11 1; +#X connect 11 0 36 0; +#X connect 12 0 16 0; +#X connect 13 0 12 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 35 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 33 0; +#X connect 28 0 64 0; +#X connect 44 0 48 0; +#X connect 45 0 44 0; +#X connect 46 0 44 1; +#X connect 47 0 48 1; +#X connect 48 0 51 0; +#X connect 55 0 59 0; +#X connect 56 0 55 0; +#X connect 57 0 55 1; +#X connect 58 0 59 1; +#X connect 59 0 62 0; +#X connect 65 0 31 0; +#X connect 66 0 65 0; +#X connect 67 0 66 0; +#X connect 68 0 66 1; +#X connect 69 0 65 1; +#X connect 70 0 65 2; +#X connect 74 0 78 0; +#X connect 75 0 78 0; +#X connect 76 0 78 0; +#X connect 77 0 78 0; +#X connect 78 0 65 0; +#X connect 78 1 65 1; +#X connect 78 2 65 2; +#X connect 79 0 78 1; +#X connect 80 0 78 2; +#X connect 81 0 78 3; +#X restore 314 245 pd edit; +#X text 187 379 updated for Pd version 0.34; +#X obj 167 34 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 221 61 hsl 128 15 0 127 0 0 ddd ddd empty 20 8 192 8 -262144 +-1 -1 200 1; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 9 0; +#X connect 8 0 9 0; +#X connect 9 0 1 0; +#X connect 9 0 18 0; +#X connect 11 0 2 0; +#X connect 13 0 23 0; +#X connect 15 0 31 0; +#X connect 16 0 32 0; +#X connect 18 0 17 0; +#X connect 19 0 22 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 25 0 26 0; +#X connect 26 0 19 0; +#X connect 30 0 12 0; +#X connect 31 0 29 0; +#X connect 32 0 14 0; diff --git a/iemabs/iem_anything.pd b/iemabs/iem_anything.pd new file mode 100644 index 0000000..2378f7f --- /dev/null +++ b/iemabs/iem_anything.pd @@ -0,0 +1,20 @@ +#N canvas 229 154 607 439 10; +#X obj 37 84 inlet; +#X obj 351 101 inlet; +#X obj 37 330 outlet; +#X text 14 358 (c) musil@iem.kug.ac.at; +#X text 56 371 IEM KUG; +#X text 31 383 graz \, austria 2002; +#X obj 37 278 iem_anything_kernel; +#X text 347 77 cold inlet = latch-inlet; +#X text 39 62 hot inlet = bangout; +#X text 248 17 a messages storage; +#X text 237 278 any arguments are possible; +#X obj 351 126 pre_inlet 1 1; +#X obj 37 112 pre_inlet 1 0; +#X text 17 15 any \, iem_anything; +#X connect 0 0 12 0; +#X connect 1 0 11 0; +#X connect 6 0 2 0; +#X connect 11 0 6 0; +#X connect 12 0 6 0; diff --git a/iemabs/iem_append.pd b/iemabs/iem_append.pd new file mode 100644 index 0000000..cfdae8b --- /dev/null +++ b/iemabs/iem_append.pd @@ -0,0 +1,24 @@ +#N canvas 365 230 607 439 10; +#X obj 37 121 inlet; +#X obj 301 121 inlet; +#X obj 37 305 outlet; +#X text 14 358 (c) musil@iem.kug.ac.at; +#X text 56 371 IEM KUG; +#X text 35 61 hot inlet; +#X text 297 60 cold inlet; +#X obj 37 160 pre_inlet 1 0; +#X text 258 271 initials-arguments:; +#X text 119 14 merge the head-message in front of the tail-message +; +#X text 31 383 graz \, austria 2003; +#X text 17 15 iem_append; +#X text 35 76 head of output-message; +#X text 296 74 tail of output-message; +#X text 253 282 tail of output-message; +#X obj 37 278 iem_append_kernel; +#X obj 301 158 pre_inlet 1 1; +#X connect 0 0 7 0; +#X connect 1 0 16 0; +#X connect 7 0 15 0; +#X connect 15 0 2 0; +#X connect 16 0 15 0; diff --git a/iemabs/iem_prepend.pd b/iemabs/iem_prepend.pd new file mode 100644 index 0000000..0da5880 --- /dev/null +++ b/iemabs/iem_prepend.pd @@ -0,0 +1,24 @@ +#N canvas 233 225 704 461 10; +#X obj 53 113 inlet; +#X obj 300 110 inlet; +#X obj 53 349 outlet; +#X text 14 399 (c) musil@iem.kug.ac.at; +#X text 56 412 IEM KUG; +#X text 35 61 hot inlet; +#X text 297 60 cold inlet; +#X text 35 76 tail of output-message; +#X text 296 73 head of output-message; +#X text 204 328 head of output-message; +#X text 209 317 initials-arguments:; +#X text 119 14 merge the head-message in front of the tail-message +; +#X text 31 424 graz \, austria 2003; +#X obj 53 322 iem_prepend_kernel; +#X obj 53 147 pre_inlet 1 0; +#X obj 300 143 pre_inlet 1 1; +#X text 17 15 iem_prepend; +#X connect 0 0 14 0; +#X connect 1 0 15 0; +#X connect 13 0 2 0; +#X connect 14 0 13 0; +#X connect 15 0 13 0; diff --git a/iemabs/iem_r.pd b/iemabs/iem_r.pd new file mode 100644 index 0000000..cc6bd85 --- /dev/null +++ b/iemabs/iem_r.pd @@ -0,0 +1,22 @@ +#N canvas 550 264 460 310 10; +#X obj 71 203 iem_receive_kernel; +#X obj 128 74 inlet; +#X obj 71 138 prepend_ascii 1; +#X obj 170 145 prepend_ascii 2; +#X obj 71 231 outlet; +#X obj 128 98 route set clear; +#X obj 170 120 bang; +#X text 110 15 receive-object with changeable receive-label; +#X text 164 175 1.arg: <symbol> or <float> receive-label; +#X obj 39 101 symbol \$1; +#X obj 39 81 loadbang; +#X text 15 14 iem_r; +#X connect 0 0 4 0; +#X connect 1 0 5 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 5 0 2 0; +#X connect 5 1 6 0; +#X connect 6 0 3 0; +#X connect 9 0 2 0; +#X connect 10 0 9 0; diff --git a/iemabs/iem_receive.pd b/iemabs/iem_receive.pd new file mode 100644 index 0000000..1f227e6 --- /dev/null +++ b/iemabs/iem_receive.pd @@ -0,0 +1,22 @@ +#N canvas 550 264 458 308 10; +#X obj 71 203 iem_receive_kernel; +#X obj 128 74 inlet; +#X obj 71 138 prepend_ascii 1; +#X obj 170 145 prepend_ascii 2; +#X obj 71 231 outlet; +#X obj 128 98 route set clear; +#X obj 170 120 bang; +#X text 110 15 receive-object with changeable receive-label; +#X text 164 175 1.arg: <symbol> or <float> receive-label; +#X text 15 14 iem_receive; +#X obj 39 101 symbol \$1; +#X obj 39 81 loadbang; +#X connect 0 0 4 0; +#X connect 1 0 5 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 5 0 2 0; +#X connect 5 1 6 0; +#X connect 6 0 3 0; +#X connect 10 0 2 0; +#X connect 11 0 10 0; diff --git a/iemabs/iem_s.pd b/iemabs/iem_s.pd new file mode 100644 index 0000000..37274f9 --- /dev/null +++ b/iemabs/iem_s.pd @@ -0,0 +1,22 @@ +#N canvas 92 248 458 308 10; +#X obj 172 77 inlet; +#X obj 110 148 prepend_ascii 1; +#X obj 214 148 prepend_ascii 2; +#X obj 172 101 route set clear; +#X obj 214 123 bang; +#X obj 71 78 inlet; +#X obj 71 203 iem_send_kernel; +#X text 217 175 1.arg: <symbol> or <float> send-label; +#X text 110 15 send-object with changeable send-label; +#X obj 110 102 symbol \$1; +#X obj 110 82 loadbang; +#X text 15 14 iem_s; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 6 0; +#X connect 3 0 1 0; +#X connect 3 1 4 0; +#X connect 4 0 2 0; +#X connect 5 0 6 0; +#X connect 9 0 1 0; +#X connect 10 0 9 0; diff --git a/iemabs/iem_send.pd b/iemabs/iem_send.pd new file mode 100644 index 0000000..4f2c62a --- /dev/null +++ b/iemabs/iem_send.pd @@ -0,0 +1,22 @@ +#N canvas 92 248 458 308 10; +#X obj 172 77 inlet; +#X obj 110 148 prepend_ascii 1; +#X obj 214 148 prepend_ascii 2; +#X obj 172 101 route set clear; +#X obj 214 123 bang; +#X obj 71 78 inlet; +#X obj 71 203 iem_send_kernel; +#X text 217 175 1.arg: <symbol> or <float> send-label; +#X text 15 14 iem_send; +#X text 110 15 send-object with changeable send-label; +#X obj 110 102 symbol \$1; +#X obj 110 82 loadbang; +#X connect 0 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 6 0; +#X connect 3 0 1 0; +#X connect 3 1 4 0; +#X connect 4 0 2 0; +#X connect 5 0 6 0; +#X connect 10 0 1 0; +#X connect 11 0 10 0; diff --git a/iemabs/init_popup.pd b/iemabs/init_popup.pd new file mode 100644 index 0000000..8f5a570 --- /dev/null +++ b/iemabs/init_popup.pd @@ -0,0 +1,38 @@ +#N canvas 187 157 554 392 10; +#X obj 187 219 textfile; +#X obj 204 31 loadbang; +#X obj 204 57 t b b b b; +#X msg 203 162 rewind; +#X obj 80 121 for++ 0 100000 20; +#X obj 238 250 bang; +#X msg 88 82 stop; +#X obj 102 293 pack symbol float; +#X obj 80 146 t b f; +#X obj 102 317 pp set_pop_name; +#X obj 102 350 outlet; +#X obj 174 34 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X text 14 6 init_popup; +#X obj 170 349 s \$2; +#X text 330 223 1.arg: <sym> item-file-name; +#X text 329 236 2.arg: <sym> send-name; +#X obj 288 99 any \$1 cr; +#X obj 288 124 pp read; +#X connect 0 0 7 0; +#X connect 0 1 5 0; +#X connect 1 0 2 0; +#X connect 2 0 4 0; +#X connect 2 1 3 0; +#X connect 2 3 16 0; +#X connect 3 0 0 0; +#X connect 4 0 8 0; +#X connect 5 0 6 0; +#X connect 6 0 4 0; +#X connect 7 0 9 0; +#X connect 8 0 0 0; +#X connect 8 1 7 1; +#X connect 9 0 10 0; +#X connect 9 0 13 0; +#X connect 11 0 2 0; +#X connect 16 0 17 0; +#X connect 17 0 0 0; diff --git a/iemabs/int_fract~.pd b/iemabs/int_fract~.pd new file mode 100644 index 0000000..edf0ec2 --- /dev/null +++ b/iemabs/int_fract~.pd @@ -0,0 +1,35 @@ +#N canvas 323 149 549 327 10; +#X obj 21 68 inlet~; +#X obj 22 238 outlet~; +#X text 14 277 (c) musil@iem.kug.ac.at; +#X text 56 290 IEM KUG; +#X text 61 68 ~signal_in~; +#X text 31 302 graz \, austria 2003; +#X obj 152 115 float24 12 582 912; +#X obj 22 152 +~ 1.25829e+007; +#X obj 22 178 -~ 1.25829e+007; +#X obj 152 95 loadbang; +#X text 278 112 1.5 * 2 ^ 23; +#X text 11 9 int_fract~; +#X text 143 34 and the fractal part of the float-number; +#X text 120 12 signal-float-splitting to the; +#X text 130 23 truncated signal-integer-number; +#X obj 196 237 outlet~; +#X text 69 239 ~signal_int~; +#X text 243 238 ~signal_fract~; +#X obj 22 125 -~ 0.5; +#X obj 196 213 -~; +#X text 235 253 fractal-part: 0 .. 1; +#X text 68 252 integer-part; +#X text 260 150 there is a little inaccuracy; +#X text 265 162 each odd number has a fractal-part of 1; +#X connect 0 0 18 0; +#X connect 0 0 19 0; +#X connect 6 0 7 1; +#X connect 6 0 8 1; +#X connect 7 0 8 0; +#X connect 8 0 1 0; +#X connect 8 0 19 1; +#X connect 9 0 6 0; +#X connect 18 0 7 0; +#X connect 19 0 15 0; diff --git a/iemabs/lp1.wav b/iemabs/lp1.wav Binary files differnew file mode 100644 index 0000000..5f08a13 --- /dev/null +++ b/iemabs/lp1.wav diff --git a/iemabs/lp10_bess~.pd b/iemabs/lp10_bess~.pd new file mode 100644 index 0000000..60e2548 --- /dev/null +++ b/iemabs/lp10_bess~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 85 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 167 85 inlet; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp10_bess~; +#X text 81 5 lowpass 10.order with bessel characteristic; +#X obj 22 107 lp2c~ \$1 0.2883 0.1665 \$2; +#X obj 22 127 lp2c~ \$1 0.5604 0.2059 \$2; +#X obj 22 146 lp2c~ \$1 0.7815 0.2351 \$2; +#X obj 22 167 lp2c~ \$1 0.9393 0.2549 \$2; +#X obj 22 188 lp2c~ \$1 1.0215 0.265 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 19 0; +#X connect 18 1 19 1; +#X connect 18 4 19 4; +#X connect 19 0 2 0; diff --git a/iemabs/lp10_butt~.pd b/iemabs/lp10_butt~.pd new file mode 100644 index 0000000..d9d572e --- /dev/null +++ b/iemabs/lp10_butt~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 404 300 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 149 86 inlet; +#X obj 22 107 lp2c~ \$1 0.312869 1 \$2; +#X obj 22 127 lp2c~ \$1 0.907981 1 \$2; +#X obj 22 146 lp2c~ \$1 1.41421 1 \$2; +#X obj 22 167 lp2c~ \$1 1.78201 1 \$2; +#X obj 22 188 lp2c~ \$1 1.97538 1 \$2; +#X text 5 5 lp10_butt~; +#X text 81 5 lowpass 10.order with butterworth characteristic; +#X text 86 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 86 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 34 281 graz \, austria 2003; +#X connect 0 0 10 0; +#X connect 1 0 10 1; +#X connect 9 0 10 4; +#X connect 10 0 11 0; +#X connect 10 1 11 1; +#X connect 10 4 11 4; +#X connect 11 0 12 0; +#X connect 11 1 12 1; +#X connect 11 4 12 4; +#X connect 12 0 13 0; +#X connect 12 1 13 1; +#X connect 12 4 13 4; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 13 4 14 4; +#X connect 14 0 2 0; diff --git a/iemabs/lp10_cheb~.pd b/iemabs/lp10_cheb~.pd new file mode 100644 index 0000000..f3878c6 --- /dev/null +++ b/iemabs/lp10_cheb~.pd @@ -0,0 +1,38 @@ +#N canvas 350 22 423 303 10; +#X obj 22 42 inlet~; +#X obj 62 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 99 67 <float> cutoff_frequency [Hz]; +#X text 219 86 <float> interpolation_time [ms]; +#X text 30 208 ~filtered signal_out~; +#X obj 185 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 5 5 lp10_cheb~; +#X text 81 5 lowpass 10.order with chebyshev characteristic; +#X obj 22 107 lp2c~ \$1 0.045535 1.0277 \$2; +#X obj 22 127 lp2c~ \$1 0.161621 1.2569 \$2; +#X obj 22 148 lp2c~ \$1 0.393858 1.96655 \$2; +#X obj 22 168 lp2c~ \$1 1.13986 4.51667 \$2; +#X obj 22 189 lp2c~ \$1 6.36341 22.7468 \$2; +#X text 97 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 97 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 9 0 13 4; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 13 4 14 4; +#X connect 14 0 15 0; +#X connect 14 1 15 1; +#X connect 14 4 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/lp10_crit~.pd b/iemabs/lp10_crit~.pd new file mode 100644 index 0000000..ad1fd7f --- /dev/null +++ b/iemabs/lp10_crit~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 85 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 167 85 inlet; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp10_crit~; +#X text 81 5 lowpass 10.order with critical damping; +#X obj 22 107 lp2c~ \$1 0.5358 0.0718 \$2; +#X obj 22 127 lp2c~ \$1 0.5358 0.0718 \$2; +#X obj 22 147 lp2c~ \$1 0.5358 0.0718 \$2; +#X obj 22 167 lp2c~ \$1 0.5358 0.0718 \$2; +#X obj 22 187 lp2c~ \$1 0.5358 0.0718 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 19 0; +#X connect 18 1 19 1; +#X connect 18 4 19 4; +#X connect 19 0 2 0; diff --git a/iemabs/lp1c~.pd b/iemabs/lp1c~.pd new file mode 100644 index 0000000..abee620 --- /dev/null +++ b/iemabs/lp1c~.pd @@ -0,0 +1,35 @@ +#N canvas 406 261 393 353 10; +#X obj 22 42 inlet~; +#X obj 55 66 inlet; +#X obj 22 194 outlet~; +#X text 11 297 (c) musil@iem.kug.ac.at; +#X text 53 310 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 92 67 <float> cutoff_frequency [Hz]; +#X text 189 134 <float> interpolation_time [ms]; +#X text 32 176 ~filtered signal_out~; +#X obj 88 93 inlet; +#X text 28 322 graz \, austria 2001; +#X obj 155 134 inlet; +#X text 124 93 <float> frequency-shift [-]; +#X text 12 8 lp1c~; +#X text 60 8 lowpass 1.order for filter-cascades; +#X obj 22 157 filter~ lp1c \$1 \$2 1 \$3; +#X obj 55 214 outlet; +#X obj 86 232 outlet; +#X obj 115 251 outlet; +#X obj 155 271 outlet; +#X text 127 231 dummy; +#X text 155 250 dummy; +#X obj 123 113 inlet; +#X text 158 113 dummy; +#X text 120 192 1.arg: <float> cutoff_frequency [Hz]; +#X text 120 202 2.arg: <float> frequency-shift [-]; +#X text 120 212 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 1 0 16 0; +#X connect 9 0 15 2; +#X connect 11 0 15 4; +#X connect 11 0 19 0; +#X connect 15 0 2 0; diff --git a/iemabs/lp1~.pd b/iemabs/lp1~.pd new file mode 100644 index 0000000..e4cd8d3 --- /dev/null +++ b/iemabs/lp1~.pd @@ -0,0 +1,21 @@ +#N canvas 327 244 375 281 10; +#X obj 22 42 inlet~; +#X obj 52 63 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 89 64 <float> cutoff_frequency [Hz]; +#X text 12 7 lp1~; +#X obj 22 123 filter~ lp1 \$1 1 0 \$2; +#X obj 143 85 inlet; +#X text 181 84 <float> interpolation_time [ms]; +#X text 60 8 lowpass 1.order; +#X text 32 153 ~filtered signal_out~; +#X text 32 254 graz \, austria 2001; +#X text 92 192 2.arg: <float> interpolation_time [ms] (opt.); +#X text 92 182 1.arg: <float> cutoff_frequency [Hz]; +#X connect 0 0 8 0; +#X connect 1 0 8 1; +#X connect 8 0 2 0; +#X connect 9 0 8 4; diff --git a/iemabs/lp2.wav b/iemabs/lp2.wav Binary files differnew file mode 100644 index 0000000..1e3fe72 --- /dev/null +++ b/iemabs/lp2.wav diff --git a/iemabs/lp2_bess~.pd b/iemabs/lp2_bess~.pd new file mode 100644 index 0000000..08815f5 --- /dev/null +++ b/iemabs/lp2_bess~.pd @@ -0,0 +1,21 @@ +#N canvas 350 22 414 310 10; +#X obj 22 42 inlet~; +#X obj 56 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 93 67 <float> cutoff_frequency [Hz]; +#X text 195 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 161 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp2_bess~; +#X text 81 5 lowpass 2.order with bessel characteristic; +#X obj 22 107 lp2c~ \$1 1.3617 0.618 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 2 0; diff --git a/iemabs/lp2_butt~.pd b/iemabs/lp2_butt~.pd new file mode 100644 index 0000000..996bb2b --- /dev/null +++ b/iemabs/lp2_butt~.pd @@ -0,0 +1,21 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 52 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 89 67 <float> cutoff_frequency [Hz]; +#X text 177 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 143 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp2_butt~; +#X text 81 5 lowpass 2.order with butterworth characteristic; +#X obj 22 107 lp2c~ \$1 1.41421 1 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 2 0; diff --git a/iemabs/lp2_cheb~.pd b/iemabs/lp2_cheb~.pd new file mode 100644 index 0000000..ab61306 --- /dev/null +++ b/iemabs/lp2_cheb~.pd @@ -0,0 +1,22 @@ +#N canvas 350 22 425 305 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X obj 22 106 lp2c~ \$1 1.3022 1.5515 \$2; +#X text 5 5 lp2_cheb~; +#X text 81 5 lowpass 2.order with chebyshev characteristic; +#X connect 0 0 14 0; +#X connect 1 0 14 1; +#X connect 9 0 14 4; +#X connect 14 0 2 0; diff --git a/iemabs/lp2_crit~.pd b/iemabs/lp2_crit~.pd new file mode 100644 index 0000000..24ccbea --- /dev/null +++ b/iemabs/lp2_crit~.pd @@ -0,0 +1,21 @@ +#N canvas 350 22 416 312 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X obj 22 107 lp2c~ \$1 1.2872 0.4142 \$2; +#X text 5 5 lp2_crit~; +#X text 81 5 lowpass 2.order with critical damping; +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 9 0 13 4; +#X connect 13 0 2 0; diff --git a/iemabs/lp2c~.pd b/iemabs/lp2c~.pd new file mode 100644 index 0000000..213d159 --- /dev/null +++ b/iemabs/lp2c~.pd @@ -0,0 +1,37 @@ +#N canvas 400 218 405 377 10; +#X obj 22 42 inlet~; +#X obj 56 63 inlet; +#X obj 22 194 outlet~; +#X text 15 326 (c) musil@iem.kug.ac.at; +#X text 57 339 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 93 64 <float> cutoff_frequency [Hz]; +#X obj 91 87 inlet; +#X text 195 136 <float> interpolation_time [ms]; +#X text 32 176 ~filtered signal_out~; +#X obj 126 111 inlet; +#X text 32 351 graz \, austria 2001; +#X text 12 8 lp2c~; +#X text 60 8 lowpass 2.order for filter-cascades; +#X obj 161 136 inlet; +#X text 127 87 <float> damping [-]; +#X text 162 111 <float> frequency-shift [-]; +#X obj 22 157 filter~ lp2c \$1 \$2 \$3 \$4; +#X obj 56 211 outlet; +#X obj 88 236 outlet; +#X obj 119 255 outlet; +#X obj 161 274 outlet; +#X text 129 235 dummy; +#X text 159 254 dummy; +#X text 128 190 1.arg: <float> cutoff_frequency [Hz]; +#X text 128 199 2.arg: <float> damping [-]; +#X text 128 208 3.arg: <float> frequency-shift [-]; +#X text 128 218 4.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 17 0; +#X connect 1 0 17 1; +#X connect 1 0 18 0; +#X connect 7 0 17 2; +#X connect 10 0 17 3; +#X connect 14 0 17 4; +#X connect 14 0 21 0; +#X connect 17 0 2 0; diff --git a/iemabs/lp2~.pd b/iemabs/lp2~.pd new file mode 100644 index 0000000..3096bb0 --- /dev/null +++ b/iemabs/lp2~.pd @@ -0,0 +1,25 @@ +#N canvas 406 261 375 281 10; +#X obj 22 42 inlet~; +#X obj 53 63 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 64 <float> cutoff_frequency [Hz]; +#X obj 85 88 inlet; +#X text 184 113 <float> interpolation_time [ms]; +#X text 32 153 ~filtered signal_out~; +#X text 12 8 lp2~; +#X text 60 8 lowpass 2.order; +#X obj 22 134 filter~ lp2 \$1 \$2 1 \$3; +#X obj 149 113 inlet; +#X text 121 88 <float> Q [-]; +#X text 32 254 graz \, austria 2001; +#X text 88 177 1.arg: <float> cutoff_frequency [Hz]; +#X text 88 186 2.arg: <float> Q [-]; +#X text 88 196 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 12 0; +#X connect 1 0 12 1; +#X connect 7 0 12 2; +#X connect 12 0 2 0; +#X connect 13 0 12 4; diff --git a/iemabs/lp3.wav b/iemabs/lp3.wav Binary files differnew file mode 100644 index 0000000..b2b07bc --- /dev/null +++ b/iemabs/lp3.wav diff --git a/iemabs/lp3_bess~.pd b/iemabs/lp3_bess~.pd new file mode 100644 index 0000000..d011ee1 --- /dev/null +++ b/iemabs/lp3_bess~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp3_bess~; +#X text 81 5 lowpass 3.order with bessel characteristic; +#X obj 22 107 lp2c~ \$1 0.9996 0.4772 \$2; +#X obj 22 129 lp1c~ \$1 0.756 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/lp3_butt~.pd b/iemabs/lp3_butt~.pd new file mode 100644 index 0000000..c34930c --- /dev/null +++ b/iemabs/lp3_butt~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 43 65 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 80 66 <float> cutoff_frequency [Hz]; +#X text 141 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 107 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp3_butt~; +#X text 81 5 lowpass 3.order with butterworth characteristic; +#X obj 22 107 lp2c~ \$1 1 1 \$2; +#X obj 22 129 lp1c~ \$1 1 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/lp3_cheb~.pd b/iemabs/lp3_cheb~.pd new file mode 100644 index 0000000..e5fb9c2 --- /dev/null +++ b/iemabs/lp3_cheb~.pd @@ -0,0 +1,26 @@ +#N canvas 350 22 425 305 10; +#X obj 22 42 inlet~; +#X obj 57 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 94 67 <float> cutoff_frequency [Hz]; +#X text 200 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 166 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp3_cheb~; +#X text 81 5 lowpass 3.order with chebyshev characteristic; +#X obj 21 106 lp2c~ \$1 0.5442 1.2057 \$2; +#X obj 22 127 lp1c~ \$1 2.2156 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/lp3_crit~.pd b/iemabs/lp3_crit~.pd new file mode 100644 index 0000000..9f7ba70 --- /dev/null +++ b/iemabs/lp3_crit~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 412 308 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp3_crit~; +#X text 81 5 lowpass 3.order with critical damping; +#X obj 22 107 lp2c~ \$1 1.0197 0.2599 \$2; +#X obj 22 129 lp1c~ \$1 0.5098 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/lp4_bess~.pd b/iemabs/lp4_bess~.pd new file mode 100644 index 0000000..9128ba2 --- /dev/null +++ b/iemabs/lp4_bess~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 56 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 93 67 <float> cutoff_frequency [Hz]; +#X text 195 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 161 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp4_bess~; +#X text 81 5 lowpass 4.order with bessel characteristic; +#X obj 22 107 lp2c~ \$1 0.7743 0.389 \$2; +#X obj 22 127 lp2c~ \$1 1.3397 0.4889 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/lp4_butt~.pd b/iemabs/lp4_butt~.pd new file mode 100644 index 0000000..6f9d7a8 --- /dev/null +++ b/iemabs/lp4_butt~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 404 300 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 5 5 lp4_butt~; +#X text 81 5 lowpass 4.order with butterworth characteristic; +#X obj 22 107 lp2c~ \$1 0.765367 1 \$2; +#X obj 22 127 lp2c~ \$1 1.84776 1 \$2; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X connect 0 0 12 0; +#X connect 1 0 12 1; +#X connect 9 0 12 4; +#X connect 12 0 13 0; +#X connect 12 1 13 1; +#X connect 12 4 13 4; +#X connect 13 0 2 0; diff --git a/iemabs/lp4_cheb~.pd b/iemabs/lp4_cheb~.pd new file mode 100644 index 0000000..d2a5c59 --- /dev/null +++ b/iemabs/lp4_cheb~.pd @@ -0,0 +1,26 @@ +#N canvas 350 22 421 301 10; +#X obj 22 42 inlet~; +#X obj 62 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 99 67 <float> cutoff_frequency [Hz]; +#X text 219 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X text 35 281 graz \, austria 2001; +#X obj 185 86 inlet; +#X text 5 5 lp4_cheb~; +#X text 81 5 lowpass 4.order with chebyshev characteristic; +#X obj 22 107 lp2c~ \$1 0.303886 1.16973 \$2; +#X obj 22 127 lp2c~ \$1 2.59037 4.13012 \$2; +#X text 142 17 and +1 dB passband-ripple; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 10 0 13 4; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 13 4 14 4; +#X connect 14 0 2 0; diff --git a/iemabs/lp4_crit~.pd b/iemabs/lp4_crit~.pd new file mode 100644 index 0000000..e6f9c57 --- /dev/null +++ b/iemabs/lp4_crit~.pd @@ -0,0 +1,25 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 55 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 92 67 <float> cutoff_frequency [Hz]; +#X text 189 86 <float> interpolation_time [ms]; +#X text 30 148 ~filtered signal_out~; +#X obj 155 86 inlet; +#X text 79 180 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 190 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 6 4 lp4_crit~; +#X text 82 4 lowpass 4.order with critical damping; +#X obj 22 107 lp2c~ \$1 0.87 0.1892 \$2; +#X obj 22 127 lp2c~ \$1 0.87 0.1892 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/lp5_bess~.pd b/iemabs/lp5_bess~.pd new file mode 100644 index 0000000..4303873 --- /dev/null +++ b/iemabs/lp5_bess~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 412 308 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 31 164 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp5_bess~; +#X text 81 5 lowpass 5.order with bessel characteristic; +#X obj 22 107 lp2c~ \$1 0.6216 0.3245 \$2; +#X obj 22 127 lp2c~ \$1 1.1402 0.4128 \$2; +#X obj 22 147 lp1c~ \$1 0.6656 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/lp5_butt~.pd b/iemabs/lp5_butt~.pd new file mode 100644 index 0000000..a241a6a --- /dev/null +++ b/iemabs/lp5_butt~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 31 164 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp5_butt~; +#X text 81 5 lowpass 5.order with butterworth characteristic; +#X obj 22 107 lp2c~ \$1 0.618034 1 \$2; +#X obj 22 127 lp2c~ \$1 1.61803 1 \$2; +#X obj 22 146 lp1c~ \$1 1 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/lp5_cheb~.pd b/iemabs/lp5_cheb~.pd new file mode 100644 index 0000000..701373d --- /dev/null +++ b/iemabs/lp5_cheb~.pd @@ -0,0 +1,30 @@ +#N canvas 350 22 423 303 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 31 172 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 79 195 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 205 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 4 6 lp5_cheb~; +#X text 81 5 lowpass 5.order with chebyshev characteristic; +#X obj 22 107 lp2c~ \$1 0.1872 1.0814 \$2; +#X obj 22 127 lp2c~ \$1 1.128 2.4896 \$2; +#X obj 22 148 lp1c~ \$1 3.5711 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 2 0; diff --git a/iemabs/lp5_crit~.pd b/iemabs/lp5_crit~.pd new file mode 100644 index 0000000..c16341c --- /dev/null +++ b/iemabs/lp5_crit~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 414 310 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 31 167 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp5_crit~; +#X text 81 5 lowpass 5.order with critical damping; +#X obj 22 107 lp2c~ \$1 0.7712 0.1487 \$2; +#X obj 22 128 lp2c~ \$1 0.7712 0.1487 \$2; +#X obj 22 150 lp1c~ \$1 0.3856 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/lp6_bess~.pd b/iemabs/lp6_bess~.pd new file mode 100644 index 0000000..8bdc169 --- /dev/null +++ b/iemabs/lp6_bess~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 31 164 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp6_bess~; +#X text 81 5 lowpass 6.order with bessel characteristic; +#X obj 22 107 lp2c~ \$1 0.5131 0.2756 \$2; +#X obj 22 127 lp2c~ \$1 0.9686 0.3505 \$2; +#X obj 22 147 lp2c~ \$1 1.2217 0.3887 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/lp6_butt~.pd b/iemabs/lp6_butt~.pd new file mode 100644 index 0000000..2909901 --- /dev/null +++ b/iemabs/lp6_butt~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 404 300 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 31 164 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 5 5 lp6_butt~; +#X text 81 5 lowpass 6.order with butterworth characteristic; +#X obj 22 127 lp2c~ \$1 1.41421 1 \$2; +#X obj 22 107 lp2c~ \$1 0.517638 1 \$2; +#X obj 22 146 lp2c~ \$1 1.93185 1 \$2; +#X text 77 190 1.arg: <float> cutoff_frequency [Hz]; +#X text 77 200 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 9 0 13 4; +#X connect 12 0 14 0; +#X connect 12 1 14 1; +#X connect 12 4 14 4; +#X connect 13 0 12 0; +#X connect 13 1 12 1; +#X connect 13 4 12 4; +#X connect 14 0 2 0; diff --git a/iemabs/lp6_cheb~.pd b/iemabs/lp6_cheb~.pd new file mode 100644 index 0000000..8550d8c --- /dev/null +++ b/iemabs/lp6_cheb~.pd @@ -0,0 +1,30 @@ +#N canvas 350 22 421 301 10; +#X obj 22 42 inlet~; +#X obj 62 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 99 67 <float> cutoff_frequency [Hz]; +#X text 219 86 <float> interpolation_time [ms]; +#X text 31 172 ~filtered signal_out~; +#X text 35 281 graz \, austria 2001; +#X obj 185 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 5 5 lp6_cheb~; +#X text 81 5 lowpass 6.order with chebyshev characteristic; +#X obj 22 107 lp2c~ \$1 0.129638 1.07658 \$2; +#X obj 22 127 lp2c~ \$1 0.629161 1.91243 \$2; +#X obj 22 148 lp2c~ \$1 3.84367 8.55286 \$2; +#X text 79 195 1.arg: <float> cutoff_frequency [Hz]; +#X text 79 205 2.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 14 0; +#X connect 1 0 14 1; +#X connect 10 0 14 4; +#X connect 14 0 15 0; +#X connect 14 1 15 1; +#X connect 14 4 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/lp6_crit~.pd b/iemabs/lp6_crit~.pd new file mode 100644 index 0000000..8e1f473 --- /dev/null +++ b/iemabs/lp6_crit~.pd @@ -0,0 +1,29 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 31 164 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 81 189 1.arg: <float> cutoff_frequency [Hz]; +#X text 81 199 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X obj 22 107 lp2c~ \$1 0.6999 0.1225 \$2; +#X obj 22 127 lp2c~ \$1 0.6999 0.1225 \$2; +#X obj 22 147 lp2c~ \$1 0.6999 0.1225 \$2; +#X text 5 5 lp6_crit~; +#X text 81 5 lowpass 6.order with critical damping; +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 9 0 13 4; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 13 4 14 4; +#X connect 14 0 15 0; +#X connect 14 1 15 1; +#X connect 14 4 15 4; +#X connect 15 0 2 0; diff --git a/iemabs/lp7_bess~.pd b/iemabs/lp7_bess~.pd new file mode 100644 index 0000000..7c0547a --- /dev/null +++ b/iemabs/lp7_bess~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 412 308 10; +#X obj 22 42 inlet~; +#X obj 58 63 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 64 <float> cutoff_frequency [Hz]; +#X text 201 83 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 167 83 inlet; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X text 5 5 lp7_bess~; +#X text 81 5 lowpass 7.order with bessel characteristic; +#X obj 22 106 lp2c~ \$1 0.4332 0.2381 \$2; +#X obj 22 126 lp2c~ \$1 0.8304 0.3011 \$2; +#X obj 22 146 lp2c~ \$1 1.0944 0.3395 \$2; +#X obj 22 167 lp1c~ \$1 0.5937 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 2 0; diff --git a/iemabs/lp7_butt~.pd b/iemabs/lp7_butt~.pd new file mode 100644 index 0000000..8eab1d4 --- /dev/null +++ b/iemabs/lp7_butt~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X text 5 5 lp7_butt~; +#X text 81 5 lowpass 7.order with butterworth characteristic; +#X obj 22 107 lp2c~ \$1 0.445042 1 \$2; +#X obj 22 127 lp2c~ \$1 1.24698 1 \$2; +#X obj 22 146 lp2c~ \$1 1.80194 1 \$2; +#X obj 22 167 lp1c~ \$1 1 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 2 0; diff --git a/iemabs/lp7_cheb~.pd b/iemabs/lp7_cheb~.pd new file mode 100644 index 0000000..4eb3c5f --- /dev/null +++ b/iemabs/lp7_cheb~.pd @@ -0,0 +1,34 @@ +#N canvas 350 22 425 305 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 29 186 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 86 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 86 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp7_cheb~; +#X text 81 5 lowpass 7.order with chebyshev characteristic; +#X obj 22 107 lp2c~ \$1 0.0937 1.0423 \$2; +#X obj 22 127 lp2c~ \$1 0.3987 1.5834 \$2; +#X obj 22 148 lp2c~ \$1 1.6338 4.4899 \$2; +#X obj 22 168 lp1c~ \$1 4.952 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 19 0; +#X connect 18 1 19 1; +#X connect 18 4 19 4; +#X connect 19 0 2 0; diff --git a/iemabs/lp7_crit~.pd b/iemabs/lp7_crit~.pd new file mode 100644 index 0000000..91519f1 --- /dev/null +++ b/iemabs/lp7_crit~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 414 310 10; +#X obj 22 42 inlet~; +#X obj 58 65 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 66 <float> cutoff_frequency [Hz]; +#X text 201 85 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 167 85 inlet; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X text 5 5 lp7_crit~; +#X text 81 5 lowpass 7.order with critical damping; +#X obj 22 107 lp2c~ \$1 0.6453 0.1041 \$2; +#X obj 22 127 lp2c~ \$1 0.6453 0.1041 \$2; +#X obj 22 147 lp2c~ \$1 0.6453 0.1041 \$2; +#X obj 22 167 lp1c~ \$1 0.3226 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 2 0; diff --git a/iemabs/lp8_bess~.pd b/iemabs/lp8_bess~.pd new file mode 100644 index 0000000..3b88164 --- /dev/null +++ b/iemabs/lp8_bess~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 408 304 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X text 5 5 lp8_bess~; +#X text 81 5 lowpass 8.order with bessel characteristic; +#X obj 22 107 lp2c~ \$1 0.3728 0.2087 \$2; +#X obj 22 127 lp2c~ \$1 0.7202 0.2621 \$2; +#X obj 22 146 lp2c~ \$1 0.9754 0.2979 \$2; +#X obj 22 167 lp2c~ \$1 1.1112 0.3162 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 2 0; diff --git a/iemabs/lp8_butt~.pd b/iemabs/lp8_butt~.pd new file mode 100644 index 0000000..4c39b4a --- /dev/null +++ b/iemabs/lp8_butt~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 404 300 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 183 86 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 5 5 lp8_butt~; +#X text 81 5 lowpass 8.order with butterworth characteristic; +#X obj 22 127 lp2c~ \$1 1.11114 1 \$2; +#X obj 22 146 lp2c~ \$1 1.66294 1 \$2; +#X obj 22 167 lp2c~ \$1 1.96157 1 \$2; +#X obj 22 107 lp2c~ \$1 0.390181 1 \$2; +#X text 89 202 1.arg: <float> cutoff_frequency [Hz]; +#X text 89 212 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 12 0 13 0; +#X connect 12 1 13 1; +#X connect 12 4 13 4; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 13 4 14 4; +#X connect 14 0 2 0; +#X connect 15 0 12 0; +#X connect 15 1 12 1; +#X connect 15 4 12 4; diff --git a/iemabs/lp8_cheb~.pd b/iemabs/lp8_cheb~.pd new file mode 100644 index 0000000..f299860 --- /dev/null +++ b/iemabs/lp8_cheb~.pd @@ -0,0 +1,34 @@ +#N canvas 350 22 421 301 10; +#X obj 22 42 inlet~; +#X obj 62 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 99 67 <float> cutoff_frequency [Hz]; +#X text 219 86 <float> interpolation_time [ms]; +#X text 29 186 ~filtered signal_out~; +#X text 35 281 graz \, austria 2001; +#X obj 185 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 5 5 lp8_cheb~; +#X text 81 5 lowpass 8.order with chebyshev characteristic; +#X obj 22 107 lp2c~ \$1 0.071724 1.04322 \$2; +#X obj 22 127 lp2c~ \$1 0.280641 1.43338 \$2; +#X obj 22 148 lp2c~ \$1 0.891555 3.04263 \$2; +#X obj 22 168 lp2c~ \$1 5.10194 14.7608 \$2; +#X text 86 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 86 215 2.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 14 0; +#X connect 1 0 14 1; +#X connect 10 0 14 4; +#X connect 14 0 15 0; +#X connect 14 1 15 1; +#X connect 14 4 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/lp8_crit~.pd b/iemabs/lp8_crit~.pd new file mode 100644 index 0000000..75d1d56 --- /dev/null +++ b/iemabs/lp8_crit~.pd @@ -0,0 +1,33 @@ +#N canvas 350 22 410 306 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 209 outlet~; +#X text 18 235 (c) musil@iem.kug.ac.at; +#X text 60 248 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 33 187 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 99 205 1.arg: <float> cutoff_frequency [Hz]; +#X text 99 215 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 260 graz \, austria 2003; +#X obj 22 107 lp2c~ \$1 0.6017 0.0905 \$2; +#X obj 22 127 lp2c~ \$1 0.6017 0.0905 \$2; +#X obj 22 147 lp2c~ \$1 0.6017 0.0905 \$2; +#X obj 22 167 lp2c~ \$1 0.6017 0.0905 \$2; +#X text 5 5 lp8_crit~; +#X text 81 5 lowpass 8.order with critical damping; +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 9 0 13 4; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 13 4 14 4; +#X connect 14 0 15 0; +#X connect 14 1 15 1; +#X connect 14 4 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 2 0; diff --git a/iemabs/lp9_bess~.pd b/iemabs/lp9_bess~.pd new file mode 100644 index 0000000..bd5497b --- /dev/null +++ b/iemabs/lp9_bess~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 416 312 10; +#X obj 22 42 inlet~; +#X obj 58 65 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 66 <float> cutoff_frequency [Hz]; +#X text 203 86 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp9_bess~; +#X text 81 5 lowpass 9.order with bessel characteristic; +#X obj 22 107 lp2c~ \$1 0.3257 0.1854 \$2; +#X obj 22 127 lp2c~ \$1 0.632 0.2311 \$2; +#X obj 22 147 lp2c~ \$1 0.871 0.2636 \$2; +#X obj 22 168 lp2c~ \$1 1.0244 0.2834 \$2; +#X obj 22 189 lp1c~ \$1 0.5386 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 19 0; +#X connect 18 1 19 1; +#X connect 18 4 19 4; +#X connect 19 0 2 0; diff --git a/iemabs/lp9_butt~.pd b/iemabs/lp9_butt~.pd new file mode 100644 index 0000000..b75660e --- /dev/null +++ b/iemabs/lp9_butt~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 414 310 10; +#X obj 22 42 inlet~; +#X obj 53 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 90 67 <float> cutoff_frequency [Hz]; +#X text 185 86 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 149 86 inlet; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp9_butt~; +#X text 81 5 lowpass 9.order with butterworth characteristic; +#X obj 22 107 lp2c~ \$1 0.347296 1 \$2; +#X obj 22 127 lp2c~ \$1 1 1 \$2; +#X obj 22 147 lp2c~ \$1 1.53209 1 \$2; +#X obj 22 168 lp2c~ \$1 1.87939 1 \$2; +#X obj 22 189 lp1c~ \$1 1 \$2; +#X connect 0 0 15 0; +#X connect 1 0 15 1; +#X connect 9 0 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 19 0; +#X connect 18 1 19 1; +#X connect 18 4 19 4; +#X connect 19 0 2 0; diff --git a/iemabs/lp9_cheb~.pd b/iemabs/lp9_cheb~.pd new file mode 100644 index 0000000..40f97d9 --- /dev/null +++ b/iemabs/lp9_cheb~.pd @@ -0,0 +1,38 @@ +#N canvas 350 22 427 307 10; +#X obj 22 42 inlet~; +#X obj 58 66 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 67 <float> cutoff_frequency [Hz]; +#X text 201 86 <float> interpolation_time [ms]; +#X text 30 208 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 142 17 and +1 dB passband-ripple; +#X text 97 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 97 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X text 5 5 lp9_cheb~; +#X text 81 5 lowpass 9.order with chebyshev characteristic; +#X obj 22 107 lp2c~ \$1 0.0562 1.0258 \$2; +#X obj 22 127 lp2c~ \$1 0.2076 1.3166 \$2; +#X obj 22 148 lp2c~ \$1 0.5624 2.3278 \$2; +#X obj 22 168 lp2c~ \$1 2.1252 7.1711 \$2; +#X obj 22 189 lp1c~ \$1 6.3415 \$2; +#X connect 0 0 16 0; +#X connect 1 0 16 1; +#X connect 9 0 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 17 4 18 4; +#X connect 18 0 19 0; +#X connect 18 1 19 1; +#X connect 18 4 19 4; +#X connect 19 0 20 0; +#X connect 19 1 20 1; +#X connect 19 4 20 4; +#X connect 20 0 2 0; diff --git a/iemabs/lp9_crit~.pd b/iemabs/lp9_crit~.pd new file mode 100644 index 0000000..5d8afcc --- /dev/null +++ b/iemabs/lp9_crit~.pd @@ -0,0 +1,37 @@ +#N canvas 350 22 418 314 10; +#X obj 22 42 inlet~; +#X obj 58 65 inlet; +#X obj 22 230 outlet~; +#X text 18 256 (c) musil@iem.kug.ac.at; +#X text 60 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 95 66 <float> cutoff_frequency [Hz]; +#X text 203 86 <float> interpolation_time [ms]; +#X text 33 208 ~filtered signal_out~; +#X obj 167 86 inlet; +#X text 95 226 1.arg: <float> cutoff_frequency [Hz]; +#X text 95 236 2.arg: <float> interpolation_time [ms] (opt.); +#X text 35 281 graz \, austria 2003; +#X obj 22 107 lp2c~ \$1 0.5659 0.0801 \$2; +#X obj 22 127 lp2c~ \$1 0.5659 0.0801 \$2; +#X obj 22 147 lp2c~ \$1 0.5659 0.0801 \$2; +#X obj 22 167 lp2c~ \$1 0.5659 0.0801 \$2; +#X obj 22 189 lp1c~ \$1 0.2829 \$2; +#X text 5 5 lp9_crit~; +#X text 81 5 lowpass 9.order with critical damping; +#X connect 0 0 13 0; +#X connect 1 0 13 1; +#X connect 9 0 13 4; +#X connect 13 0 14 0; +#X connect 13 1 14 1; +#X connect 13 4 14 4; +#X connect 14 0 15 0; +#X connect 14 1 15 1; +#X connect 14 4 15 4; +#X connect 15 0 16 0; +#X connect 15 1 16 1; +#X connect 15 4 16 4; +#X connect 16 0 17 0; +#X connect 16 1 17 1; +#X connect 16 4 17 4; +#X connect 17 0 2 0; diff --git a/iemabs/maverage~.pd b/iemabs/maverage~.pd new file mode 100644 index 0000000..57fc4e6 --- /dev/null +++ b/iemabs/maverage~.pd @@ -0,0 +1,27 @@ +#N canvas 167 77 540 340 10; +#X text 28 56 ~~in~~; +#X obj 30 71 inlet~; +#X obj 30 248 outlet~; +#X text 28 262 ~~out~~; +#X obj 78 92 inlet; +#X text 91 77 average-time <float> [ms]; +#X text 157 168 changing the average-time resets the calculation the first average-time milliseconds !!; +#X obj 30 208 delwrite~ \$0-avrg_del \$1; +#X obj 78 138 delread~ \$0-avrg_del \$2; +#X text 191 208 1.arg: max. average-time <float> [ms] \; 2.arg: average-time <float> [ms]; +#X obj 78 113 t f f; +#X text 80 11 moving average filter with IIR-solution; +#X text 209 42 N = 0.001 * average-time_ms * samplerate; +#X text 185 27 y[n] = (x[n] + x[n-1] + x[n-2] +...+ x[n-N]) / N; +#X text 20 284 (c) musil@iem.kug.ac.at; +#X text 62 297 IEM KUG; +#X text 37 309 graz \, austria 2001; +#X obj 30 165 mov_avrg_kern~ \$2; +#X text 10 10 maverage~; +#X connect 1 0 7 0; +#X connect 1 0 17 0; +#X connect 4 0 10 0; +#X connect 8 0 17 1; +#X connect 10 0 8 0; +#X connect 10 1 17 2; +#X connect 17 0 2 0; diff --git a/iemabs/merge_any.pd b/iemabs/merge_any.pd new file mode 100644 index 0000000..2d5be97 --- /dev/null +++ b/iemabs/merge_any.pd @@ -0,0 +1,20 @@ +#N canvas 233 225 603 435 10; +#X obj 37 84 inlet; +#X obj 204 86 inlet; +#X obj 37 305 outlet; +#X text 14 358 (c) musil@iem.kug.ac.at; +#X text 56 371 IEM KUG; +#X text 31 383 graz \, austria 2002; +#X text 17 15 merge_any; +#X text 115 16 merge 2 messages together; +#X text 313 57 no args; +#X text 39 62 hot inlet; +#X text 200 62 cold inlet; +#X obj 204 109 pre_inlet 1 1; +#X obj 37 113 pre_inlet 1 0; +#X obj 37 278 iem_append_kernel; +#X connect 0 0 12 0; +#X connect 1 0 11 0; +#X connect 11 0 13 0; +#X connect 12 0 13 0; +#X connect 13 0 2 0; diff --git a/iemabs/mull~.pd b/iemabs/mull~.pd new file mode 100644 index 0000000..fd399d3 --- /dev/null +++ b/iemabs/mull~.pd @@ -0,0 +1,28 @@ +#N canvas 320 149 406 323 10; +#X obj 22 42 inlet~; +#X obj 35 67 inlet; +#X obj 22 238 outlet~; +#X text 14 266 (c) musil@iem.kug.ac.at; +#X text 56 279 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 90 112 inlet; +#X text 31 291 graz \, austria 2001; +#X text 69 239 ~signal_out~; +#X obj 22 215 *~; +#X obj 35 194 line~; +#X obj 41 146 loadbang; +#X text 72 66 <float> multiplication-coefficient or; +#X text 72 78 <list> multiplication-coefficient + interpol_time [ms]; +#X text 119 180 1.arg: <float> multiplication-coefficient; +#X text 49 9 signal-multiplication with line~ interpolation; +#X text 125 113 <float> interpolation_time [ms]; +#X text 119 191 2.arg: <float> interpolation_time [ms]; +#X obj 35 175 pack \$1 \$2; +#X text 11 9 mull~; +#X connect 0 0 9 0; +#X connect 1 0 18 0; +#X connect 6 0 18 1; +#X connect 9 0 2 0; +#X connect 10 0 9 1; +#X connect 11 0 18 0; +#X connect 18 0 10 0; diff --git a/iemabs/my_canvas.pd b/iemabs/my_canvas.pd new file mode 100644 index 0000000..06538ff --- /dev/null +++ b/iemabs/my_canvas.pd @@ -0,0 +1,243 @@ +#N canvas 478 61 459 285 10; +#X obj 1 1 cnv 15 300 60 foo10_snd foo10_rcv my_canvas=cnv 50 20 192 +17 -225280 -11904 0; +#X text 4 232 (c) musil@iem.kug.ac.at; +#X text 46 245 IEM KUG; +#X text 21 257 graz \, austria 2001; +#N canvas 215 80 699 530 edit 0; +#X obj 39 226 f; +#X msg 17 205 bang; +#X floatatom 55 204 3 63 88; +#X floatatom 90 226 3 0 37; +#X obj 39 249 pack 0 0; +#X text 117 226 y-label; +#X text 83 204 x-label; +#X obj 297 281 f; +#X msg 275 260 bang; +#X floatatom 313 259 3 -10 10; +#X floatatom 348 281 3 -10 10; +#X obj 297 304 pack 0 0; +#X obj 309 396 f; +#X msg 287 375 bang; +#X floatatom 325 374 3 20 60; +#X floatatom 360 396 3 150 200; +#X obj 309 419 pack 0 0; +#X text 341 259 x-delta; +#X text 375 281 y-delta; +#X text 353 374 x-position; +#X text 387 396 y-position; +#X obj 59 341 f; +#X msg 37 320 bang; +#X floatatom 75 319 3 0 2; +#X floatatom 110 341 3 4 36; +#X obj 59 364 pack 0 0; +#X text 103 319 font; +#X text 139 341 height; +#X floatatom 275 183 3 2 20; +#X msg 52 137 \; foo10_rcv color \$1 \$2; +#X msg 39 274 \; foo10_rcv label_pos \$1 \$2; +#X msg 59 390 \; foo10_rcv label_font \$1 \$2; +#X msg 36 430 \; foo10_rcv label blabla; +#X msg 36 466 \; foo10_rcv label my_canvas; +#X msg 309 444 \; foo10_rcv pos \$1 \$2; +#X msg 297 329 \; foo10_rcv delta \$1 \$2; +#X obj 505 234 f; +#X msg 483 213 bang; +#X floatatom 521 212 5 100 1000; +#X floatatom 556 234 4 50 500; +#X obj 505 257 pack 0 0; +#X text 566 212 width; +#X text 594 236 height; +#X msg 505 282 \; foo10_rcv vis_size \$1 \$2; +#X msg 275 211 \; foo10_rcv size \$1; +#X text 305 183 selectable size; +#X msg 483 156 \; foo10a_rcv receive foo10_rcv; +#X msg 483 119 \; foo10_rcv receive foo10a_rcv; +#X msg 482 29 \; foo10_rcv send foo10a_snd; +#X msg 482 67 \; foo10_rcv send foo10_snd; +#X msg 509 372 \; foo10_rcv get_pos; +#X obj 510 407 r foo10_snd; +#X obj 510 428 unpack 0 0; +#X floatatom 510 453 4 0 0; +#X floatatom 575 452 4 0 0; +#X text 490 452 x=; +#X text 557 452 y=; +#X obj 52 79 f; +#X msg 29 31 bang; +#X floatatom 68 29 3 0 29; +#X floatatom 103 47 3 0 29; +#X text 96 29 background; +#X text 131 48 label-color; +#X msg 290 25 back; +#X msg 290 49 label; +#X msg 252 25 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 28 180 loadbang; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 97 135 route back label bang; +#X obj 235 168 t b b b; +#X connect 0 0 29 0; +#X connect 1 0 25 0; +#X connect 2 0 26 0; +#X connect 3 0 27 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 11 1; +#X connect 6 0 10 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 10 1; +#X connect 9 0 11 1; +#X connect 10 0 24 1; +#X connect 11 0 23 1; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 19 1 20 1; +#X connect 20 0 28 0; +#X connect 22 0 6 0; +#X connect 23 0 21 0; +#X connect 24 0 12 0; +#X connect 25 0 20 0; +#X connect 26 0 18 0; +#X connect 27 0 17 0; +#X connect 28 0 11 0; +#X connect 28 0 10 0; +#X connect 29 0 4 0; +#X connect 29 1 7 0; +#X connect 29 2 30 0; +#X connect 30 0 24 0; +#X connect 30 1 23 0; +#X connect 30 2 28 0; +#X restore 290 86 pd RGB_____________; +#X floatatom 332 55 3 0 255; +#X floatatom 375 55 3 0 255; +#X floatatom 418 56 3 0 255; +#X text 39 3 preset-colors; +#X text 301 0 RGB-colors; +#X text 332 37 red; +#X text 368 36 green; +#X text 416 36 blue; +#X obj 52 104 pack 0 0; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 30 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 10 0 11 1; +#X connect 11 0 35 0; +#X connect 12 0 16 0; +#X connect 13 0 12 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 34 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 31 0; +#X connect 28 0 44 0; +#X connect 36 0 40 0; +#X connect 37 0 36 0; +#X connect 38 0 36 1; +#X connect 39 0 40 1; +#X connect 40 0 43 0; +#X connect 51 0 52 0; +#X connect 52 0 53 0; +#X connect 52 1 54 0; +#X connect 57 0 75 0; +#X connect 58 0 57 0; +#X connect 59 0 57 1; +#X connect 60 0 75 1; +#X connect 63 0 66 0; +#X connect 64 0 66 0; +#X connect 65 0 66 0; +#X connect 66 0 75 0; +#X connect 66 1 75 1; +#X connect 67 0 66 1; +#X connect 68 0 66 2; +#X connect 69 0 66 3; +#X connect 75 0 29 0; +#X restore 305 20 pd edit; +#X floatatom 110 193 4 0 0; +#X floatatom 147 193 4 0 0; +#X text 121 209 x; +#X text 158 209 y; +#X obj 7 161 metro 100; +#X obj 33 141 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1 +1; +#X obj 110 145 r from_K1; +#X floatatom 188 194 4 0 0; +#X floatatom 225 194 4 0 0; +#X text 198 210 x; +#X text 236 210 y; +#X obj 188 146 r from_K2; +#X msg 7 185 \; to_K get_pos; +#N canvas 506 290 395 395 room 1; +#X obj 1 1 cnv 1 400 400 empty empty type...ctrl+e 150 140 2 17 -33289 +-24198 0; +#X obj 15 16 cnv 1 1 360 empty empty move_K1_and_K2 115 160 2 17 -166441 +-24198 0; +#X obj 374 15 cnv 1 1 360 empty empty empty 20 12 2 20 -99865 -66577 +0; +#X obj 15 15 cnv 1 360 1 empty empty empty 20 12 2 20 -166441 -66577 +0; +#X obj 17 375 cnv 1 358 1 empty empty empty 20 12 2 20 -99865 -66577 +0; +#X obj 24 24 cnv 25 25 25 from_K1 to_K K1 1 13 194 14 -261681 -123526 +0; +#X obj 342 342 cnv 25 25 25 from_K2 to_K K2 1 13 194 14 -225280 -1109 +0; +#X restore 307 147 pd room; +#X obj 110 169 unpack; +#X obj 188 170 unpack; +#X text 172 257 updated for Pd version 0.34; +#X text 51 92 to modify geometry \, colors \, etc.; +#X obj 2 115 cnv 1 470 1 empty empty empty 20 12 2 20 -261681 -66577 +0; +#X text 40 78 of the light-blue; +#X text 166 78 my_canvas-object \,; +#X text 5 64 click the properties-dialog on the top-left corner; +#X obj 361 195 r foo10_rcv; +#X obj 403 215 s ggg; +#X obj 187 236 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X connect 9 0 17 0; +#X connect 10 0 9 0; +#X connect 11 0 19 0; +#X connect 16 0 20 0; +#X connect 19 0 5 0; +#X connect 19 1 6 0; +#X connect 20 0 12 0; +#X connect 20 1 13 0; +#X connect 27 0 28 0; diff --git a/iemabs/my_numbox.pd b/iemabs/my_numbox.pd new file mode 100644 index 0000000..d9e7887 --- /dev/null +++ b/iemabs/my_numbox.pd @@ -0,0 +1,302 @@ +#N canvas 100 190 390 413 10; +#X obj 1 1 cnv 8 100 60 empty empty my_numbox=nbx 20 20 1 18 -262144 +-1109 0; +#X floatatom 38 127 9 0 0; +#X msg 47 84 set \$1; +#X floatatom 38 41 7 0 0; +#X text 13 355 (c) musil@iem.kug.ac.at; +#X text 55 368 IEM KUG; +#X text 30 380 graz \, austria 2001; +#X obj 38 149 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 18 41 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 41 107 nbx 5 12 100 300 0 1 foo12_snd foo12_rcv lin. 46 7 192 +10 -261689 -90133 -44926 160; +#X floatatom 47 62 7 0 0; +#X floatatom 116 150 9 0 0; +#X obj 110 308 r goo13_snd; +#X obj 145 248 s goo13_rcv; +#X floatatom 105 40 7 0 0; +#X floatatom 145 206 7 0 0; +#X obj 60 170 print; +#N canvas 276 200 290 224 once 0; +#X obj 38 47 t b b f; +#X msg 56 85 1; +#X obj 31 108 f 0; +#X obj 31 131 pack 0 0; +#X obj 31 156 route 0; +#X obj 38 24 inlet; +#X obj 31 180 outlet; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 1; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 0 0 0; +#X restore 60 147 pd once; +#X obj 37 248 nbx 5 16 55 3520 1 0 goo13_snd goo13_rcv Hz 68 9 192 +17 -225280 -1109 -260818 2057.51; +#X obj 37 308 ftom; +#X floatatom 37 330 9 0 0; +#X floatatom 64 287 9 0 0; +#X floatatom 110 329 9 0 0; +#X text 175 176 click properties to; +#X floatatom 37 203 8 0 0; +#X obj 37 226 mtof; +#X text 12 184 --------------------; +#X text 163 187 modify geometry \, colors \, etc.; +#X obj 105 82 s foo12_rcv; +#X obj 116 130 r foo12_snd; +#X msg 105 61 set \$1; +#X msg 145 227 set \$1; +#X text 197 120 (0.01 pixels); +#X text 183 99 shift-click & drag; +#X text 189 109 for fine-tuning; +#X text 148 270 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 147 281 for moving selected gui-objects; +#N canvas 207 113 716 530 edit 0; +#X obj 32 220 f; +#X msg 10 199 bang; +#X floatatom 48 198 3 63 88; +#X floatatom 83 220 3 0 37; +#X obj 32 243 pack 0 0; +#X text 110 220 y-label; +#X text 76 198 x-label; +#X obj 279 246 f; +#X msg 257 225 bang; +#X floatatom 295 224 3 -10 10; +#X floatatom 330 246 3 -10 10; +#X obj 279 269 pack 0 0; +#X obj 292 358 f; +#X msg 270 337 bang; +#X floatatom 308 336 3 20 60; +#X floatatom 343 358 3 150 200; +#X obj 292 381 pack 0 0; +#X text 323 224 x-delta; +#X text 357 246 y-delta; +#X text 336 336 x-position; +#X text 370 358 y-position; +#X obj 52 335 f; +#X msg 30 314 bang; +#X floatatom 68 313 3 0 2; +#X floatatom 103 335 3 4 36; +#X obj 52 358 pack 0 0; +#X text 96 313 font; +#X text 132 335 height; +#X text 523 401 no init; +#X text 493 453 init value on loadbang; +#X msg 47 154 \; goo13_rcv color \$1 \$2 \$3; +#X msg 32 268 \; goo13_rcv label_pos \$1 \$2; +#X msg 52 383 \; goo13_rcv label_font \$1 \$2; +#X msg 34 427 \; goo13_rcv label blabla; +#X msg 292 406 \; goo13_rcv pos \$1 \$2; +#X msg 279 294 \; goo13_rcv delta \$1 \$2; +#X msg 475 21 \; goo13_rcv send goo13a_snd; +#X msg 475 59 \; goo13_rcv send goo13_snd; +#X msg 476 105 \; goo13_rcv receive goo13a_rcv; +#X msg 476 143 \; goo13a_rcv receive goo13_rcv; +#X msg 502 420 \; goo13_rcv init 0; +#X msg 503 471 \; goo13_rcv init 1; +#X obj 486 291 f; +#X msg 464 270 bang; +#X floatatom 502 269 3 55 440; +#X floatatom 537 291 6 440 3520; +#X obj 486 314 pack 0 0; +#X msg 486 339 \; goo13_rcv range \$1 \$2; +#X msg 363 465 \; goo13_rcv log; +#X msg 269 466 \; goo13_rcv lin; +#X text 269 448 linear / logarithmical; +#X obj 275 133 f; +#X msg 250 112 bang; +#X floatatom 291 111 3 1 15; +#X floatatom 326 133 3 8 50; +#X obj 275 156 pack 0 0; +#X msg 275 181 \; goo13_rcv size \$1 \$2; +#X msg 34 463 \; goo13_rcv label log.freq.; +#X obj 47 100 pack 0 0 0; +#X obj 47 72 f; +#X msg 24 24 bang; +#X floatatom 63 22 3 0 29; +#X floatatom 79 42 3 0 29; +#X floatatom 112 58 3 0 29; +#X text 91 22 background; +#X text 106 42 front-color; +#X text 140 59 label-color; +#X msg 277 22 back; +#X msg 277 42 front; +#X msg 277 62 label; +#X msg 239 22 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 277 82 pd RGB_____________; +#X floatatom 319 52 3 0 255; +#X floatatom 362 52 3 0 255; +#X floatatom 405 53 3 0 255; +#X text 34 -1 preset-colors; +#X text 290 1 RGB-colors; +#X text 319 34 red; +#X text 355 33 green; +#X text 403 33 blue; +#X text 319 111 width in digits; +#X text 357 134 height in pix; +#X text 530 269 minimum-bound; +#X text 586 291 maximum-bound; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 31 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 10 0 11 1; +#X connect 11 0 35 0; +#X connect 12 0 16 0; +#X connect 13 0 12 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 34 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 32 0; +#X connect 42 0 46 0; +#X connect 43 0 42 0; +#X connect 44 0 42 1; +#X connect 45 0 46 1; +#X connect 46 0 47 0; +#X connect 51 0 55 0; +#X connect 52 0 51 0; +#X connect 53 0 51 1; +#X connect 54 0 55 1; +#X connect 55 0 56 0; +#X connect 58 0 30 0; +#X connect 59 0 58 0; +#X connect 60 0 59 0; +#X connect 61 0 59 1; +#X connect 62 0 58 1; +#X connect 63 0 58 2; +#X connect 67 0 71 0; +#X connect 68 0 71 0; +#X connect 69 0 71 0; +#X connect 70 0 71 0; +#X connect 71 0 58 0; +#X connect 71 1 58 1; +#X connect 71 2 58 2; +#X connect 72 0 71 1; +#X connect 73 0 71 2; +#X connect 74 0 71 3; +#X restore 314 245 pd edit; +#X text 187 379 updated for Pd version 0.34; +#X obj 220 41 nbx 3 12 -1e+37 1e+37 0 0 iii iii empty 20 8 192 10 -262144 +-1 -1 0; +#X text 174 11 gui-number-box:; +#X obj 220 56 nbx 3 12 -1e+37 1e+37 0 0 iii iii empty 20 8 192 10 -262144 +-1 -1 0; +#X obj 220 71 nbx 3 12 -1e+37 1e+37 0 0 iii iii empty 20 8 192 10 -262144 +-1 -1 0; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 9 0; +#X connect 8 0 9 0; +#X connect 9 0 1 0; +#X connect 9 0 17 0; +#X connect 10 0 2 0; +#X connect 12 0 22 0; +#X connect 14 0 30 0; +#X connect 15 0 31 0; +#X connect 17 0 16 0; +#X connect 18 0 21 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 24 0 25 0; +#X connect 25 0 18 0; +#X connect 29 0 11 0; +#X connect 30 0 28 0; +#X connect 31 0 13 0; diff --git a/iemabs/once.pd b/iemabs/once.pd new file mode 100644 index 0000000..408a609 --- /dev/null +++ b/iemabs/once.pd @@ -0,0 +1,43 @@ +#N canvas 234 143 386 418 10; +#X obj 89 162 spigot; +#X obj 34 59 inlet; +#X obj 89 111 t a b; +#X obj 126 140 f 1; +#X obj 89 194 t a b; +#X obj 119 216 f 0; +#X obj 89 247 outlet; +#X obj 207 56 inlet; +#X obj 207 79 bang; +#X obj 207 102 f 1; +#X text 22 336 (c) musil@iem.kug.ac.at; +#X text 64 346 IEM KUG; +#X text 21 314 (c) zmoelnig@iem.kug.ac.at; +#X text 8 6 once; +#X text 64 7 only the first message passes through; +#X text 29 37 message in; +#X text 29 289 message out (only once); +#X text 203 36 anything to init once; +#X text 39 355 graz \, austria 2003; +#X obj 34 80 route bang; +#X obj 34 110 t b b; +#X obj 34 162 spigot; +#X obj 34 194 t b b; +#X connect 0 0 4 0; +#X connect 1 0 19 0; +#X connect 2 0 0 0; +#X connect 2 1 3 0; +#X connect 3 0 0 1; +#X connect 3 0 21 1; +#X connect 4 0 6 0; +#X connect 4 1 5 0; +#X connect 5 0 3 1; +#X connect 7 0 8 0; +#X connect 8 0 9 0; +#X connect 9 0 3 1; +#X connect 19 0 20 0; +#X connect 19 1 2 0; +#X connect 20 0 21 0; +#X connect 20 1 3 0; +#X connect 21 0 22 0; +#X connect 22 0 6 0; +#X connect 22 1 5 0; diff --git a/iemabs/output~.pd b/iemabs/output~.pd new file mode 100644 index 0000000..964b10a --- /dev/null +++ b/iemabs/output~.pd @@ -0,0 +1,27 @@ +#N canvas 191 63 365 293 10; +#X obj 141 169 dbtorms; +#X obj 94 87 inlet; +#X text 94 64 level; +#X obj 141 215 line~; +#X obj 19 136 dac~; +#X text 19 67 audio; +#X text 151 151 show level; +#X obj 19 87 inlet~; +#X obj 19 109 *~; +#X obj 20 223 outlet; +#X msg 141 127 95; +#X obj 141 193 pack 0 500; +#X obj 20 200 pvu~; +#X obj 141 106 r newbang; +#X text 15 20 ouput~; +#X connect 0 0 11 0; +#X connect 1 0 0 0; +#X connect 3 0 8 1; +#X connect 7 0 8 0; +#X connect 8 0 4 1; +#X connect 8 0 4 0; +#X connect 8 0 12 0; +#X connect 10 0 0 0; +#X connect 11 0 3 0; +#X connect 12 0 9 0; +#X connect 13 0 10 0; diff --git a/iemabs/pink~.pd b/iemabs/pink~.pd new file mode 100644 index 0000000..5d75d28 --- /dev/null +++ b/iemabs/pink~.pd @@ -0,0 +1,16 @@ +#N canvas 142 265 406 237 10; +#X text 27 150 signal-out; +#X obj 29 129 outlet~; +#X obj 29 49 noise~; +#X text 14 7 pink~; +#X text 65 8 pink-noise-generator with -3 dB per oktave; +#X text 13 178 (c) musil@iem.kug.ac.at; +#X text 55 191 IEM KUG; +#X text 30 203 graz \, austria 2001; +#X obj 29 88 biquad~ 1.83221 -0.836851 0.271264 -0.456311 0.18969; +#X obj 29 108 biquad~ 0.273097 0.087865 0.505803 0.171365 -0.03813; +#X obj 29 68 biquad~ 1.98893 -0.988954 1.00554 -1.9889 0.983444; +#X connect 2 0 10 0; +#X connect 8 0 9 0; +#X connect 9 0 1 0; +#X connect 10 0 8 0; diff --git a/iemabs/popup.pd b/iemabs/popup.pd new file mode 100644 index 0000000..3659af9 --- /dev/null +++ b/iemabs/popup.pd @@ -0,0 +1,25 @@ +#N canvas 194 110 646 379 10; +#X obj 39 65 pop 6 17 0 0 play_cmd play_cmd play_cmd 82 9 192 17 -225280 +-1109 -260818 0 5 open rewind start stop quit; +#X obj 105 196 init_popup help-popup.txt play_cmd; +#X obj 25 196 r play_cmd; +#X obj 25 218 route set_pop_name; +#X text 11 9 popup = pop; +#X obj 263 236 pp set; +#X msg 263 258 0 open; +#X obj 69 276 unpack float symbol; +#X floatatom 69 299 5 0 0; +#X symbolatom 197 300 10 0 0; +#X obj 413 93 pop 7 14 0 0 empty empty empty 50 7 0 10 -262144 -1 -1 +0 1 pop; +#X floatatom 413 128 5 0 0; +#X symbolatom 460 129 10 0 0; +#X connect 1 0 10 0; +#X connect 2 0 3 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 5 0 6 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 10 0 11 0; +#X connect 10 1 12 0; diff --git a/iemabs/pp.pd b/iemabs/pp.pd new file mode 100644 index 0000000..3cc53b1 --- /dev/null +++ b/iemabs/pp.pd @@ -0,0 +1,24 @@ +#N canvas 233 225 706 463 10; +#X obj 53 113 inlet; +#X obj 300 110 inlet; +#X obj 53 349 outlet; +#X text 14 399 (c) musil@iem.kug.ac.at; +#X text 56 412 IEM KUG; +#X text 35 61 hot inlet; +#X text 297 60 cold inlet; +#X text 35 76 tail of output-message; +#X text 296 73 head of output-message; +#X text 204 328 head of output-message; +#X text 209 317 initials-arguments:; +#X text 119 14 merge the head-message in front of the tail-message +; +#X text 31 424 graz \, austria 2003; +#X obj 53 322 iem_prepend_kernel; +#X obj 53 147 pre_inlet 1 0; +#X obj 300 143 pre_inlet 1 1; +#X text 17 15 prepend; +#X connect 0 0 14 0; +#X connect 1 0 15 0; +#X connect 13 0 2 0; +#X connect 14 0 13 0; +#X connect 15 0 13 0; diff --git a/iemabs/prepend.pd b/iemabs/prepend.pd new file mode 100644 index 0000000..33b3beb --- /dev/null +++ b/iemabs/prepend.pd @@ -0,0 +1,24 @@ +#N canvas 233 225 704 461 10; +#X obj 53 113 inlet; +#X obj 300 110 inlet; +#X obj 53 349 outlet; +#X text 14 399 (c) musil@iem.kug.ac.at; +#X text 56 412 IEM KUG; +#X text 35 61 hot inlet; +#X text 297 60 cold inlet; +#X text 35 76 tail of output-message; +#X text 296 73 head of output-message; +#X text 204 328 head of output-message; +#X text 209 317 initials-arguments:; +#X text 119 14 merge the head-message in front of the tail-message +; +#X text 31 424 graz \, austria 2003; +#X obj 53 322 iem_prepend_kernel; +#X obj 53 147 pre_inlet 1 0; +#X obj 300 143 pre_inlet 1 1; +#X text 17 15 prepend; +#X connect 0 0 14 0; +#X connect 1 0 15 0; +#X connect 13 0 2 0; +#X connect 14 0 13 0; +#X connect 15 0 13 0; diff --git a/iemabs/radiobutton.pd b/iemabs/radiobutton.pd new file mode 100644 index 0000000..3d05a8b --- /dev/null +++ b/iemabs/radiobutton.pd @@ -0,0 +1,282 @@ +#N canvas 117 227 547 281 10; +#X obj 1 1 cnv 8 100 60 empty empty radiobutton=rdb 20 20 1 18 -262144 +-1109 0; +#X text 16 213 (c) musil@iem.kug.ac.at; +#X text 58 226 IEM KUG; +#X text 33 238 graz \, austria 2001; +#X text 289 52 click properties to; +#X text 277 63 modify geometry \, colors \, etc.; +#X obj 356 172 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 21 54 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 355 124 s foo8_rcv; +#X obj 356 150 r foo8_snd; +#X obj 44 100 hdl 25 1 1 10 foo8_snd foo8_rcv radio_0_9 156 -8 192 +10 -99865 -262144 -260818 1; +#X msg 44 142 \$1; +#X floatatom 44 164 4 0 0; +#X obj 44 186 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 89 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 89 140 route 0 1 2 3 4 5 6 7 8 9; +#X msg 221 66 set \$1; +#X floatatom 221 45 4 0 9; +#X floatatom 44 54 4 0 9; +#X msg 122 45 7 0 -5.44; +#X msg 126 67 3 3 4.55; +#X obj 106 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 +1; +#X obj 123 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 140 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 157 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 174 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 191 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 208 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 225 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 242 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 82 178 print; +#X text 183 11 gui-radiobutton:; +#X floatatom 380 198 4 0 0; +#X msg 380 172 \$1; +#X msg 355 103 set \$1; +#X floatatom 355 82 4 0 9; +#X text 128 178 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 127 189 for moving selected gui-objects; +#N canvas 222 207 699 530 edit 0; +#X obj 42 198 f; +#X msg 20 177 bang; +#X floatatom 58 176 3 63 156; +#X floatatom 93 198 3 -20 37; +#X obj 42 221 pack 0 0; +#X text 120 198 y-label; +#X text 86 176 x-label; +#X floatatom 270 187 3 8 50; +#X text 297 187 size; +#X obj 286 293 f; +#X msg 264 272 bang; +#X floatatom 302 271 3 -10 10; +#X floatatom 337 293 3 -10 10; +#X obj 286 316 pack 0 0; +#X obj 300 412 f; +#X msg 278 391 bang; +#X floatatom 316 390 3 20 60; +#X floatatom 351 412 3 100 200; +#X obj 300 435 pack 0 0; +#X text 330 271 x-delta; +#X text 364 293 y-delta; +#X text 344 390 x-position; +#X text 378 412 y-position; +#X obj 62 313 f; +#X msg 40 292 bang; +#X floatatom 78 291 3 0 2; +#X floatatom 113 313 3 4 36; +#X obj 62 336 pack 0 0; +#X text 106 291 font; +#X text 142 313 height; +#X text 504 293 no init; +#X text 475 348 init value on loadbang; +#X floatatom 482 228 5 2 20; +#X msg 47 125 \; foo8_rcv color \$1 \$2 \$3; +#X msg 42 246 \; foo8_rcv label_pos \$1 \$2; +#X msg 62 361 \; foo8_rcv label_font \$1 \$2; +#X msg 34 423 \; foo8_rcv label blabla; +#X msg 300 460 \; foo8_rcv pos \$1 \$2; +#X msg 286 341 \; foo8_rcv delta \$1 \$2; +#X msg 270 216 \; foo8_rcv size \$1; +#X msg 482 171 \; foo8a_rcv receive foo8_rcv; +#X msg 483 133 \; foo8_rcv receive foo8a_rcv; +#X msg 483 88 \; foo8_rcv send foo8_snd; +#X msg 483 50 \; foo8_rcv send foo8a_snd; +#X msg 483 312 \; foo8_rcv init 0; +#X msg 485 366 \; foo8_rcv init 1; +#X msg 490 436 \; foo8_rcv single_change; +#X msg 490 470 \; foo8_rcv double_change; +#X text 491 417 changing-behavior; +#X msg 482 254 \; foo8_rcv number \$1; +#X text 526 228 number of buttons; +#X msg 34 459 \; foo8_rcv label radio_0_9; +#X obj 47 104 pack 0 0 0; +#X obj 47 76 f; +#X msg 24 28 bang; +#X floatatom 63 26 3 0 29; +#X floatatom 79 46 3 0 29; +#X floatatom 112 62 3 0 29; +#X text 91 26 background; +#X text 106 46 front-color; +#X text 140 63 label-color; +#X msg 285 25 back; +#X msg 285 45 front; +#X msg 285 65 label; +#X msg 247 25 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 285 86 pd RGB_____________; +#X floatatom 327 55 3 0 255; +#X floatatom 370 55 3 0 255; +#X floatatom 413 56 3 0 255; +#X text 34 0 preset-colors; +#X text 296 -3 RGB-colors; +#X text 327 37 red; +#X text 363 36 green; +#X text 411 36 blue; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 34 0; +#X connect 7 0 39 0; +#X connect 9 0 13 0; +#X connect 10 0 9 0; +#X connect 11 0 9 1; +#X connect 12 0 13 1; +#X connect 13 0 38 0; +#X connect 14 0 18 0; +#X connect 15 0 14 0; +#X connect 16 0 14 1; +#X connect 17 0 18 1; +#X connect 18 0 37 0; +#X connect 23 0 27 0; +#X connect 24 0 23 0; +#X connect 25 0 23 1; +#X connect 26 0 27 1; +#X connect 27 0 35 0; +#X connect 32 0 49 0; +#X connect 52 0 33 0; +#X connect 53 0 52 0; +#X connect 54 0 53 0; +#X connect 55 0 53 1; +#X connect 56 0 52 1; +#X connect 57 0 52 2; +#X connect 61 0 65 0; +#X connect 62 0 65 0; +#X connect 63 0 65 0; +#X connect 64 0 65 0; +#X connect 65 0 52 0; +#X connect 65 1 52 1; +#X connect 65 2 52 2; +#X connect 66 0 65 1; +#X connect 67 0 65 2; +#X connect 68 0 65 3; +#X restore 469 108 pd edit; +#X text 251 232 updated for Pd version 0.34; +#X obj 307 10 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 360 32 hdl 15 1 0 8 eee eee empty 20 8 192 8 -262144 -1 -1 7 +; +#X connect 7 0 10 0; +#X connect 9 0 6 0; +#X connect 9 0 33 0; +#X connect 10 0 11 0; +#X connect 10 0 15 0; +#X connect 10 0 30 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 15 0 14 0; +#X connect 15 1 21 0; +#X connect 15 2 22 0; +#X connect 15 3 23 0; +#X connect 15 4 24 0; +#X connect 15 5 25 0; +#X connect 15 6 26 0; +#X connect 15 7 27 0; +#X connect 15 8 28 0; +#X connect 15 9 29 0; +#X connect 16 0 10 0; +#X connect 17 0 16 0; +#X connect 18 0 10 0; +#X connect 19 0 10 0; +#X connect 20 0 10 0; +#X connect 33 0 32 0; +#X connect 34 0 8 0; +#X connect 35 0 34 0; diff --git a/iemabs/rbpq2~.pd b/iemabs/rbpq2~.pd new file mode 100644 index 0000000..3b10925 --- /dev/null +++ b/iemabs/rbpq2~.pd @@ -0,0 +1,25 @@ +#N canvas 313 255 413 281 10; +#X obj 22 42 inlet~; +#X obj 56 64 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 91 88 inlet; +#X text 196 110 <float> interpolation_time [ms]; +#X text 32 153 ~filtered signal_out~; +#X obj 161 110 inlet; +#X text 93 65 <float> center_frequency [Hz]; +#X text 32 254 graz \, austria 2001; +#X text 127 88 <float> Q [-]; +#X text 60 8 resonance-bandpass 2.order with Q-inlet; +#X obj 22 134 filter~ rbpq2 \$1 \$2 1 \$3; +#X text 12 9 rbpq2~; +#X text 85 176 1.arg: <float> center_frequency [Hz]; +#X text 85 185 2.arg: <float> Q [-]; +#X text 85 194 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 14 0; +#X connect 1 0 14 1; +#X connect 6 0 14 2; +#X connect 9 0 14 4; +#X connect 14 0 2 0; diff --git a/iemabs/rbpw2~.pd b/iemabs/rbpw2~.pd new file mode 100644 index 0000000..08128f4 --- /dev/null +++ b/iemabs/rbpw2~.pd @@ -0,0 +1,25 @@ +#N canvas 313 255 413 281 10; +#X obj 22 42 inlet~; +#X obj 56 64 inlet; +#X obj 22 186 outlet~; +#X text 15 229 (c) musil@iem.kug.ac.at; +#X text 57 242 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 91 88 inlet; +#X text 196 110 <float> interpolation_time [ms]; +#X text 32 153 ~filtered signal_out~; +#X obj 161 110 inlet; +#X text 93 65 <float> center_frequency [Hz]; +#X text 32 254 graz \, austria 2001; +#X text 12 9 rbpw2~; +#X text 60 8 resonance-bandpass 2.order with bandwidth-inlet; +#X obj 22 134 filter~ rbpw2 \$1 \$2 1 \$3; +#X text 127 88 <float> bandwith [Hz]; +#X text 97 174 1.arg: <float> center_frequency [Hz]; +#X text 97 183 2.arg: <float> bandwidth [Hz]; +#X text 97 192 3.arg: <float> interpolation_time [ms] (opt.); +#X connect 0 0 14 0; +#X connect 1 0 14 1; +#X connect 6 0 14 2; +#X connect 9 0 14 4; +#X connect 14 0 2 0; diff --git a/iemabs/receive2list.pd b/iemabs/receive2list.pd new file mode 100644 index 0000000..afdfb24 --- /dev/null +++ b/iemabs/receive2list.pd @@ -0,0 +1,1868 @@ +#N canvas 193 1 736 662 10; +#X obj 212 58 inlet; +#X obj 391 621 bang; +#X obj 297 237 bang; +#X msg 297 260 doesn't understand this; +#X obj 254 142 bang; +#X obj 31 648 outlet; +#X text 10 4 receive2list; +#X msg 31 161 clear; +#X text 255 73 set message: <float> para-index; +#X text 316 85 + <symbol> para-receive-label; +#X text 128 8 converts receive message to a message with prepending +float-index; +#X msg 382 645 only 200 receivers possible; +#X obj 373 668 print receive2list-ERROR; +#X obj 212 122 route add clear; +#N canvas 373 81 515 541 iem_receive_x_10_1 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 35 155 pp 0; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 47 182 pp 1; +#X obj 64 206 pp 2; +#X obj 78 228 pp 3; +#X obj 96 255 pp 4; +#X obj 118 280 pp 5; +#X obj 130 305 pp 6; +#X obj 147 329 pp 7; +#X obj 161 351 pp 8; +#X obj 179 374 pp 9; +#X obj 73 37 iiroute 0 9 ________________; +#X connect 1 0 34 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 14 0; +#X connect 5 0 25 0; +#X connect 6 0 26 0; +#X connect 7 0 27 0; +#X connect 8 0 28 0; +#X connect 9 0 29 0; +#X connect 10 0 30 0; +#X connect 11 0 31 0; +#X connect 12 0 32 0; +#X connect 13 0 33 0; +#X connect 14 0 0 0; +#X connect 15 0 4 0; +#X connect 16 0 5 0; +#X connect 17 0 6 0; +#X connect 18 0 7 0; +#X connect 19 0 8 0; +#X connect 20 0 9 0; +#X connect 21 0 10 0; +#X connect 22 0 11 0; +#X connect 23 0 12 0; +#X connect 24 0 13 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 15 0; +#X connect 34 1 16 0; +#X connect 34 2 17 0; +#X connect 34 3 18 0; +#X connect 34 4 19 0; +#X connect 34 5 20 0; +#X connect 34 6 21 0; +#X connect 34 7 22 0; +#X connect 34 8 23 0; +#X connect 34 9 24 0; +#X connect 34 10 3 0; +#X restore 31 188 pd iem_receive_x_10_1; +#N canvas 170 98 499 525 iem_receive_x_10_2 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 10 19 ________________; +#X obj 35 155 pp 10; +#X obj 47 182 pp 11; +#X obj 64 206 pp 12; +#X obj 78 228 pp 13; +#X obj 96 255 pp 14; +#X obj 118 280 pp 15; +#X obj 130 305 pp 16; +#X obj 147 329 pp 17; +#X obj 161 351 pp 18; +#X obj 179 374 pp 19; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 44 209 pd iem_receive_x_10_2; +#N canvas 170 98 499 525 iem_receive_x_10_3 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 20 29 ________________; +#X obj 35 155 pp 20; +#X obj 47 182 pp 21; +#X obj 64 206 pp 22; +#X obj 78 228 pp 23; +#X obj 96 255 pp 24; +#X obj 118 280 pp 25; +#X obj 130 305 pp 26; +#X obj 147 329 pp 27; +#X obj 161 351 pp 28; +#X obj 179 374 pp 29; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 56 231 pd iem_receive_x_10_3; +#N canvas 170 98 499 525 iem_receive_x_10_4 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 30 39 ________________; +#X obj 35 155 pp 30; +#X obj 47 182 pp 31; +#X obj 64 206 pp 32; +#X obj 78 228 pp 33; +#X obj 96 255 pp 34; +#X obj 118 280 pp 35; +#X obj 130 305 pp 36; +#X obj 147 329 pp 37; +#X obj 161 351 pp 38; +#X obj 179 374 pp 39; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 69 252 pd iem_receive_x_10_4; +#N canvas 170 98 497 523 iem_receive_x_10_5 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 40 49 ________________; +#X obj 35 155 pp 40; +#X obj 47 182 pp 41; +#X obj 64 206 pp 42; +#X obj 78 228 pp 43; +#X obj 96 255 pp 44; +#X obj 118 280 pp 45; +#X obj 130 305 pp 46; +#X obj 147 329 pp 47; +#X obj 161 351 pp 48; +#X obj 179 374 pp 49; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 81 273 pd iem_receive_x_10_5; +#N canvas 170 98 499 525 iem_receive_x_10_6 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 50 59 ________________; +#X obj 35 155 pp 50; +#X obj 47 182 pp 51; +#X obj 64 206 pp 52; +#X obj 78 228 pp 53; +#X obj 96 255 pp 54; +#X obj 118 280 pp 55; +#X obj 130 305 pp 56; +#X obj 147 329 pp 57; +#X obj 161 351 pp 58; +#X obj 179 374 pp 59; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 94 294 pd iem_receive_x_10_6; +#N canvas 170 98 497 523 iem_receive_x_10_7 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 60 69 ________________; +#X obj 35 155 pp 60; +#X obj 47 182 pp 61; +#X obj 64 206 pp 62; +#X obj 78 228 pp 63; +#X obj 96 255 pp 64; +#X obj 118 280 pp 65; +#X obj 130 305 pp 66; +#X obj 147 329 pp 67; +#X obj 161 351 pp 68; +#X obj 179 374 pp 69; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 106 316 pd iem_receive_x_10_7; +#N canvas 170 98 497 523 iem_receive_x_10_8 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 70 79 ________________; +#X obj 35 155 pp 70; +#X obj 47 182 pp 71; +#X obj 64 206 pp 72; +#X obj 78 228 pp 73; +#X obj 96 255 pp 74; +#X obj 117 280 pp 75; +#X obj 130 305 pp 76; +#X obj 147 329 pp 77; +#X obj 161 351 pp 78; +#X obj 179 374 pp 79; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 119 337 pd iem_receive_x_10_8; +#N canvas 170 98 497 523 iem_receive_x_10_9 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 80 89 ________________; +#X obj 35 155 pp 80; +#X obj 47 182 pp 81; +#X obj 64 206 pp 82; +#X obj 78 228 pp 83; +#X obj 96 255 pp 84; +#X obj 118 280 pp 85; +#X obj 130 305 pp 86; +#X obj 147 329 pp 87; +#X obj 161 351 pp 88; +#X obj 179 374 pp 89; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 130 360 pd iem_receive_x_10_9; +#N canvas 170 98 497 523 iem_receive_x_10_10 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 90 99 ________________; +#X obj 35 155 pp 90; +#X obj 47 182 pp 91; +#X obj 64 206 pp 92; +#X obj 78 228 pp 93; +#X obj 96 255 pp 94; +#X obj 118 280 pp 95; +#X obj 130 305 pp 96; +#X obj 147 329 pp 97; +#X obj 161 351 pp 98; +#X obj 179 374 pp 99; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 143 381 pd iem_receive_x_10_10; +#N canvas 170 98 497 523 iem_receive_x_10_11 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 100 109 ________________; +#X obj 35 155 pp 100; +#X obj 47 182 pp 101; +#X obj 64 206 pp 102; +#X obj 78 228 pp 103; +#X obj 96 255 pp 104; +#X obj 118 280 pp 105; +#X obj 130 305 pp 106; +#X obj 147 330 pp 107; +#X obj 161 351 pp 108; +#X obj 179 374 pp 109; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 155 403 pd iem_receive_x_10_11; +#N canvas 170 98 497 523 iem_receive_x_10_12 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 110 119 ________________; +#X obj 35 155 pp 110; +#X obj 47 182 pp 111; +#X obj 64 206 pp 112; +#X obj 78 228 pp 113; +#X obj 96 255 pp 114; +#X obj 118 280 pp 115; +#X obj 130 305 pp 116; +#X obj 147 329 pp 117; +#X obj 161 351 pp 118; +#X obj 178 374 pp 119; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 168 424 pd iem_receive_x_10_12; +#N canvas 170 98 499 525 iem_receive_x_10_13 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 120 129 ________________; +#X obj 35 155 pp 120; +#X obj 47 182 pp 121; +#X obj 64 206 pp 122; +#X obj 78 228 pp 123; +#X obj 97 255 pp 124; +#X obj 118 280 pp 125; +#X obj 130 305 pp 126; +#X obj 147 329 pp 127; +#X obj 161 351 pp 128; +#X obj 179 374 pp 129; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 180 445 pd iem_receive_x_10_13; +#N canvas 170 98 497 523 iem_receive_x_10_14 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 130 139 ________________; +#X obj 35 155 pp 130; +#X obj 47 182 pp 131; +#X obj 64 206 pp 132; +#X obj 78 228 pp 133; +#X obj 96 255 pp 134; +#X obj 118 280 pp 135; +#X obj 130 305 pp 136; +#X obj 147 329 pp 137; +#X obj 161 351 pp 138; +#X obj 179 374 pp 139; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 193 466 pd iem_receive_x_10_14; +#N canvas 170 98 497 523 iem_receive_x_10_15 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 140 149 ________________; +#X obj 35 155 pp 140; +#X obj 47 182 pp 141; +#X obj 64 206 pp 142; +#X obj 78 228 pp 143; +#X obj 96 255 pp 144; +#X obj 118 280 pp 145; +#X obj 130 305 pp 146; +#X obj 147 329 pp 147; +#X obj 161 351 pp 148; +#X obj 179 374 pp 149; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 205 488 pd iem_receive_x_10_15; +#N canvas 170 98 499 525 iem_receive_x_10_16 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 150 159 ________________; +#X obj 35 155 pp 150; +#X obj 47 182 pp 151; +#X obj 64 206 pp 152; +#X obj 78 228 pp 153; +#X obj 96 255 pp 154; +#X obj 118 280 pp 155; +#X obj 130 305 pp 156; +#X obj 147 329 pp 157; +#X obj 161 351 pp 158; +#X obj 179 374 pp 159; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 218 509 pd iem_receive_x_10_16; +#N canvas 170 98 501 527 iem_receive_x_10_17 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 160 169 ______________; +#X obj 35 155 pp 160; +#X obj 47 182 pp 161; +#X obj 64 206 pp 162; +#X obj 78 228 pp 163; +#X obj 96 255 pp 164; +#X obj 118 280 pp 165; +#X obj 130 305 pp 166; +#X obj 147 329 pp 167; +#X obj 161 351 pp 168; +#X obj 179 374 pp 169; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 227 531 pd iem_receive_x_10_17; +#N canvas 170 98 499 525 iem_receive_x_10_18 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 170 179 ______________; +#X obj 35 155 pp 170; +#X obj 47 182 pp 171; +#X obj 64 206 pp 172; +#X obj 78 228 pp 173; +#X obj 96 255 pp 174; +#X obj 117 280 pp 175; +#X obj 130 305 pp 176; +#X obj 147 329 pp 177; +#X obj 161 351 pp 178; +#X obj 179 374 pp 179; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 240 552 pd iem_receive_x_10_18; +#N canvas 170 98 499 525 iem_receive_x_10_19 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 73 37 iiroute 180 189 ______________; +#X obj 35 155 pp 180; +#X obj 47 182 pp 181; +#X obj 64 206 pp 182; +#X obj 78 228 pp 183; +#X obj 96 255 pp 184; +#X obj 118 280 pp 185; +#X obj 130 305 pp 186; +#X obj 147 329 pp 187; +#X obj 161 351 pp 188; +#X obj 179 374 pp 189; +#X connect 1 0 24 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 25 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 14 0; +#X connect 24 1 15 0; +#X connect 24 2 16 0; +#X connect 24 3 17 0; +#X connect 24 4 18 0; +#X connect 24 5 19 0; +#X connect 24 6 20 0; +#X connect 24 7 21 0; +#X connect 24 8 22 0; +#X connect 24 9 23 0; +#X connect 24 10 3 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 251 575 pd iem_receive_x_10_19; +#N canvas 170 98 501 527 iem_receive_x_10_20 0; +#X obj 35 471 outlet; +#X obj 73 16 inlet; +#X obj 35 15 inlet; +#X obj 382 469 outlet; +#X obj 35 80 iem_r; +#X obj 47 106 iem_r; +#X obj 64 130 iem_r; +#X obj 78 156 iem_r; +#X obj 96 180 iem_r; +#X obj 118 204 iem_r; +#X obj 130 230 iem_r; +#X obj 147 254 iem_r; +#X obj 161 280 iem_r; +#X obj 179 304 iem_r; +#X obj 72 80 pp set; +#X obj 86 106 pp set; +#X obj 104 131 pp set; +#X obj 118 156 pp set; +#X obj 136 180 pp set; +#X obj 157 204 pp set; +#X obj 169 230 pp set; +#X obj 187 254 pp set; +#X obj 201 280 pp set; +#X obj 219 304 pp set; +#X obj 35 155 pp 190; +#X obj 73 37 iiroute 190 199 ______________; +#X obj 47 182 pp 191; +#X obj 64 206 pp 192; +#X obj 78 228 pp 193; +#X obj 96 255 pp 194; +#X obj 118 280 pp 195; +#X obj 130 305 pp 196; +#X obj 147 329 pp 197; +#X obj 161 351 pp 198; +#X obj 179 374 pp 199; +#X connect 1 0 25 0; +#X connect 2 0 4 0; +#X connect 2 0 5 0; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 2 0 8 0; +#X connect 2 0 9 0; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 2 0 13 0; +#X connect 4 0 24 0; +#X connect 5 0 26 0; +#X connect 6 0 27 0; +#X connect 7 0 28 0; +#X connect 8 0 29 0; +#X connect 9 0 30 0; +#X connect 10 0 31 0; +#X connect 11 0 32 0; +#X connect 12 0 33 0; +#X connect 13 0 34 0; +#X connect 14 0 4 0; +#X connect 15 0 5 0; +#X connect 16 0 6 0; +#X connect 17 0 7 0; +#X connect 18 0 8 0; +#X connect 19 0 9 0; +#X connect 20 0 10 0; +#X connect 21 0 11 0; +#X connect 22 0 12 0; +#X connect 23 0 13 0; +#X connect 24 0 0 0; +#X connect 25 0 14 0; +#X connect 25 1 15 0; +#X connect 25 2 16 0; +#X connect 25 3 17 0; +#X connect 25 4 18 0; +#X connect 25 5 19 0; +#X connect 25 6 20 0; +#X connect 25 7 21 0; +#X connect 25 8 22 0; +#X connect 25 9 23 0; +#X connect 25 10 3 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 28 0 0 0; +#X connect 29 0 0 0; +#X connect 30 0 0 0; +#X connect 31 0 0 0; +#X connect 32 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; +#X restore 264 596 pd iem_receive_x_10_20; +#X text 322 157 1.arg: <float> max. number of receiveable parameters +; +#X msg 427 381 \; pd-iem_receive_x_10_20 clear; +#X connect 0 0 13 0; +#X connect 1 0 11 0; +#X connect 2 0 3 0; +#X connect 3 0 12 0; +#X connect 4 0 7 0; +#X connect 7 0 14 0; +#X connect 7 0 15 0; +#X connect 7 0 16 0; +#X connect 7 0 17 0; +#X connect 7 0 18 0; +#X connect 7 0 19 0; +#X connect 7 0 20 0; +#X connect 7 0 21 0; +#X connect 7 0 22 0; +#X connect 7 0 23 0; +#X connect 7 0 24 0; +#X connect 7 0 25 0; +#X connect 7 0 26 0; +#X connect 7 0 27 0; +#X connect 7 0 28 0; +#X connect 7 0 29 0; +#X connect 7 0 30 0; +#X connect 7 0 31 0; +#X connect 7 0 32 0; +#X connect 7 0 33 0; +#X connect 11 0 12 0; +#X connect 13 0 14 1; +#X connect 13 1 4 0; +#X connect 13 2 2 0; +#X connect 14 0 5 0; +#X connect 14 1 15 1; +#X connect 15 0 5 0; +#X connect 15 1 16 1; +#X connect 16 0 5 0; +#X connect 16 1 17 1; +#X connect 17 0 5 0; +#X connect 17 1 18 1; +#X connect 18 0 5 0; +#X connect 18 1 19 1; +#X connect 19 0 5 0; +#X connect 19 1 20 1; +#X connect 20 0 5 0; +#X connect 20 1 21 1; +#X connect 21 0 5 0; +#X connect 21 1 22 1; +#X connect 22 0 5 0; +#X connect 22 1 23 1; +#X connect 23 0 5 0; +#X connect 23 1 24 1; +#X connect 24 0 5 0; +#X connect 24 1 25 1; +#X connect 25 0 5 0; +#X connect 25 1 26 1; +#X connect 26 0 5 0; +#X connect 26 1 27 1; +#X connect 27 0 5 0; +#X connect 27 1 28 1; +#X connect 28 0 5 0; +#X connect 28 1 29 1; +#X connect 29 0 5 0; +#X connect 29 1 30 1; +#X connect 30 0 5 0; +#X connect 30 1 31 1; +#X connect 31 0 5 0; +#X connect 31 1 32 1; +#X connect 32 0 5 0; +#X connect 32 1 33 1; +#X connect 33 0 5 0; +#X connect 33 1 1 0; diff --git a/iemabs/rmstofad.pd b/iemabs/rmstofad.pd new file mode 100644 index 0000000..4efc3a6 --- /dev/null +++ b/iemabs/rmstofad.pd @@ -0,0 +1,18 @@ +#N canvas 334 153 600 306 10; +#X obj 91 69 inlet; +#X obj 91 209 transf_fader; +#X obj 107 153 loadbang; +#X obj 91 231 outlet; +#X msg 107 174 pairs 0 0 40 6 70 24 80 36 88 48 94 60 98 72 102 96 +106 108 107.5 111 109 114 112 117 142 147; +#X obj 91 100 rmstodb; +#X text 26 253 (c) musil@iem.kug.ac.at; +#X text 63 266 IEM KUG; +#X text 38 278 graz \, austria 2003; +#X text 13 10 rmstofad; +#X text 86 11 convert rms-value to fader-scale; +#X connect 0 0 5 0; +#X connect 1 0 3 0; +#X connect 2 0 4 0; +#X connect 4 0 1 0; +#X connect 5 0 1 0; diff --git a/iemabs/round~.pd b/iemabs/round~.pd new file mode 100644 index 0000000..a7b8396 --- /dev/null +++ b/iemabs/round~.pd @@ -0,0 +1,21 @@ +#N canvas 323 149 389 325 10; +#X obj 22 42 inlet~; +#X obj 22 238 outlet~; +#X text 14 266 (c) musil@iem.kug.ac.at; +#X text 56 279 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 69 239 ~signal_out~; +#X text 11 9 round~; +#X text 62 9 signal-float-rounding to a signal-integer-number; +#X text 31 291 graz \, austria 2003; +#X obj 140 112 float24 12 582 912; +#X obj 22 152 +~ 1.25829e+007; +#X obj 22 178 -~ 1.25829e+007; +#X obj 140 92 loadbang; +#X text 266 109 1.5 * 2 ^ 23; +#X connect 0 0 10 0; +#X connect 9 0 10 1; +#X connect 9 0 11 1; +#X connect 10 0 11 0; +#X connect 11 0 1 0; +#X connect 12 0 9 0; diff --git a/iemabs/split3.pd b/iemabs/split3.pd new file mode 100644 index 0000000..5a001e6 --- /dev/null +++ b/iemabs/split3.pd @@ -0,0 +1,32 @@ +#N canvas 363 140 456 333 10; +#X obj 25 60 inlet; +#X obj 26 231 outlet; +#X text 19 273 (c) musil@iem.kug.ac.at; +#X text 61 286 IEM KUG; +#X obj 68 79 inlet; +#X text 8 7 split3; +#X obj 111 100 inlet; +#X obj 72 212 outlet; +#X obj 111 188 outlet; +#X obj 25 135 moses \$1; +#X obj 68 157 moses \$2; +#X text 68 234 <float> output within; +#X text 117 213 <float> output less than low-limit; +#X text 155 189 <float> output greater than high-limit; +#X text 61 58 <float> input; +#X text 106 78 <float> low-limit; +#X text 148 101 <float> high-limit; +#X text 160 134 1.arg: <float> low-limit; +#X text 160 146 2.arg: <float> high-limit; +#X text 80 5 part a <float>-message into 3 ways:; +#X text 36 298 graz \, austria 2001; +#X text 141 40 3 greater than high-limit; +#X text 141 30 2 less than low-limit \;; +#X text 141 20 1 within low- and high-limit \;; +#X connect 0 0 9 0; +#X connect 4 0 9 1; +#X connect 6 0 10 1; +#X connect 9 0 7 0; +#X connect 9 1 10 0; +#X connect 10 0 1 0; +#X connect 10 1 8 0; diff --git a/iemabs/subl~.pd b/iemabs/subl~.pd new file mode 100644 index 0000000..9bfbcc1 --- /dev/null +++ b/iemabs/subl~.pd @@ -0,0 +1,28 @@ +#N canvas 323 149 406 323 10; +#X obj 22 42 inlet~; +#X obj 35 67 inlet; +#X obj 22 238 outlet~; +#X text 14 266 (c) musil@iem.kug.ac.at; +#X text 56 279 IEM KUG; +#X text 62 42 ~signal_in~; +#X obj 90 112 inlet; +#X text 125 113 <float> interpolation_time [ms]; +#X text 31 291 graz \, austria 2001; +#X text 69 239 ~signal_out~; +#X obj 35 194 line~; +#X obj 41 143 loadbang; +#X text 119 191 2.arg: <float> interpolation_time [ms]; +#X text 72 66 <float> subtraction-coefficient or; +#X text 72 78 <list> subtraction-coefficient + interpol_time [ms]; +#X text 119 180 1.arg: <float> subtraction-coefficient; +#X obj 22 215 -~; +#X text 49 9 signal-subtraction with line~ interpolation; +#X obj 35 175 pack \$1 \$2; +#X text 11 9 subl~; +#X connect 0 0 16 0; +#X connect 1 0 18 0; +#X connect 6 0 18 1; +#X connect 10 0 16 1; +#X connect 11 0 18 0; +#X connect 16 0 2 0; +#X connect 18 0 10 0; diff --git a/iemabs/test1.mp3 b/iemabs/test1.mp3 Binary files differnew file mode 100644 index 0000000..d8d3ee2 --- /dev/null +++ b/iemabs/test1.mp3 diff --git a/iemabs/test_dollarg.pd b/iemabs/test_dollarg.pd new file mode 100644 index 0000000..dced4d5 --- /dev/null +++ b/iemabs/test_dollarg.pd @@ -0,0 +1,42 @@ +#N canvas 75 94 754 539 10; +#X obj 126 224 dollarg; +#X obj 126 40 inlet; +#X obj 32 387 outlet; +#X obj 415 374 outlet; +#X obj 251 150 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 420 352 5 0 0 0 - - -; +#X obj 25 310 prepend set; +#X msg 25 339 aa bb cc dd ee ff gg 33 44 55 66 77 88 99; +#X floatatom 247 181 5 0 0 0 - - -; +#X text 60 480 (c) musil@iem.kug.ac.at; +#X text 102 493 IEM KUG; +#X text 77 505 graz \, austria 2002; +#X text 11 6 dollarg; +#X text 93 7 receives the parent initial arguments <list> \, like a +$n; +#X text 250 61 into internal buffer and to output; +#X text 83 406 or output float or symbol of list-atom at index (if +input:; +#X text 235 47 at creation-time dollarg copy parent initial arguments +; +#X text 302 88 pargs = parent arguments; +#X text 302 101 n_pa = number of pargs; +#X text 468 347 output n_pa (if input: n = 0 \, or bang); +#X text 471 363 or output index of parg (if input: n != 0); +#X text 475 378 or output 0 (if input: n > n_pa); +#X text 82 389 output list of pargs (if input: n = 0 \, or bang); +#X text 485 402 -n_pa <= n <= n_pa); +#X text 276 149 if (input == bang) -> dollarg output all pargs; +#X text 302 181 if (input = 0) -> dollarg output all pargs; +#X text 302 195 if (input > 0) -> dollarg output the n-th parg; +#X text 526 207 (n_pa + 1 + input)-th parg; +#X text 304 208 if (input < 0) -> dollarg output the; +#X connect 0 0 2 0; +#X connect 0 0 6 0; +#X connect 0 1 3 0; +#X connect 0 1 5 0; +#X connect 1 0 0 0; +#X connect 4 0 0 0; +#X connect 6 0 7 0; +#X connect 8 0 0 0; diff --git a/iemabs/testtone~.pd b/iemabs/testtone~.pd new file mode 100644 index 0000000..bc7f490 --- /dev/null +++ b/iemabs/testtone~.pd @@ -0,0 +1,32 @@ +#N canvas 153 297 247 352 10; +#X obj 25 58 inlet; +#X obj 25 114 mtof; +#X obj 25 142 pack 440 100; +#X obj 25 163 line~; +#X obj 25 206 outlet~; +#X obj 100 210 outlet; +#X obj 92 57 inlet; +#X obj 25 185 osc~; +#X obj 92 83 init \$1; +#X obj 92 102 split 20; +#X text 5 270 (c) musil@iem.kug.ac.at; +#X text 47 283 IEM KUG; +#X text 22 295 graz \, austria 2001; +#X text 8 10 testtone~; +#X text 28 40 midi; +#X text 93 40 interpol-time; +#X text 17 223 sig-cosine; +#X text 96 225 frequency; +#X text 95 169 1.arg: <float> interpol-; +#X text 164 179 time in ms; +#X obj 25 84 init 69; +#X connect 0 0 20 0; +#X connect 1 0 2 0; +#X connect 1 0 5 0; +#X connect 2 0 3 0; +#X connect 3 0 7 0; +#X connect 6 0 8 0; +#X connect 7 0 4 0; +#X connect 8 0 9 0; +#X connect 9 1 2 1; +#X connect 20 0 1 0; diff --git a/iemabs/toggle.pd b/iemabs/toggle.pd new file mode 100644 index 0000000..b094dce --- /dev/null +++ b/iemabs/toggle.pd @@ -0,0 +1,273 @@ +#N canvas 201 120 395 362 10; +#X obj 1 1 cnv 8 100 60 empty empty toggle=tgl 20 20 1 18 -262144 -1109 +0; +#X text 21 296 (c) musil@iem.kug.ac.at; +#X text 63 309 IEM KUG; +#X text 38 321 graz \, austria 2001; +#X text 115 41 click properties to; +#X text 103 52 modify geometry \, colors \, etc.; +#X obj 168 113 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 168 179 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 168 133 s foo6_rcv; +#X obj 168 159 r foo6_snd; +#X text 153 14 gui-toggle:; +#X obj 26 270 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 10 117 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X msg 26 39 33; +#X obj 26 180 tgl 60 1 foo6_snd foo6_rcv big_toggle 63 20 194 13 -228992 +-4033 -34 1 1; +#X msg 42 79 1; +#X msg 49 99 0; +#X floatatom 26 249 4 0 0; +#X msg 33 59 -0.001; +#X msg 103 135 set 1; +#X msg 108 157 set 0; +#X obj 3 155 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 65 249 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 +1; +#X msg 95 114 set -0.23; +#X obj 189 93 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 188 179 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 +1; +#X msg 93 93 0 3 4.55; +#X msg 85 73 0.22 0 -5.44; +#X msg 189 113 set \$1; +#X text 96 222 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 95 233 for moving selected gui-objects; +#N canvas 440 175 699 530 edit 0; +#X msg 47 151 \; foo6_rcv color \$1 \$2 \$3; +#X obj 47 126 pack 0 0 0; +#X obj 47 98 f; +#X msg 24 50 bang; +#X floatatom 63 48 3 0 29; +#X floatatom 79 68 3 0 29; +#X floatatom 112 84 3 0 29; +#X text 91 48 background; +#X text 106 68 front-color; +#X text 140 85 label-color; +#X obj 49 223 f; +#X msg 27 202 bang; +#X floatatom 65 201 3 63 88; +#X floatatom 100 223 3 0 37; +#X obj 49 246 pack 0 0; +#X text 127 223 y-label; +#X text 93 201 x-label; +#X msg 49 271 \; foo6_rcv label_pos \$1 \$2; +#X floatatom 505 55 3 8 75; +#X text 532 55 size; +#X msg 505 76 \; foo6_rcv size \$1; +#X obj 282 182 f; +#X msg 260 161 bang; +#X floatatom 298 160 3 -10 10; +#X floatatom 333 182 3 -10 10; +#X obj 282 205 pack 0 0; +#X msg 282 230 \; foo6_rcv delta \$1 \$2; +#X obj 296 301 f; +#X msg 274 280 bang; +#X floatatom 312 279 3 20 60; +#X floatatom 347 301 3 150 200; +#X obj 296 324 pack 0 0; +#X msg 296 349 \; foo6_rcv pos \$1 \$2; +#X text 326 160 x-delta; +#X text 360 182 y-delta; +#X text 340 279 x-position; +#X text 374 301 y-position; +#X obj 305 423 f; +#X msg 283 402 bang; +#X floatatom 321 401 3 -10 10; +#X floatatom 356 423 3 -10 10; +#X obj 305 446 pack 0 0; +#X text 383 423 y-label; +#X text 349 401 x-label; +#X msg 305 471 \; foo6_rcv delta \$1 \$2; +#X msg 499 140 \; foo6_rcv send foo6a_snd; +#X msg 499 178 \; foo6_rcv send foo6_snd; +#X msg 494 216 \; foo6_rcv receive foo6a_rcv; +#X msg 494 254 \; foo6a_rcv receive foo6_rcv; +#X msg 41 448 \; foo6_rcv label blabla; +#X msg 41 484 \; foo6_rcv label big_toggle; +#X obj 69 338 f; +#X msg 47 317 bang; +#X floatatom 85 316 3 0 2; +#X floatatom 120 338 3 4 36; +#X obj 69 361 pack 0 0; +#X msg 69 386 \; foo6_rcv label_font \$1 \$2; +#X text 113 316 font; +#X text 149 338 height; +#X floatatom 498 307 5 -200 200; +#X text 542 307 nonzero-value; +#X msg 498 331 \; foo6_rcv nonzero \$1; +#X msg 503 412 \; foo6_rcv init 0; +#X msg 510 479 \; foo6_rcv init 1; +#X text 524 393 no init; +#X text 500 461 init value on loadbang; +#X msg 285 47 back; +#X msg 285 67 front; +#X msg 285 87 label; +#X msg 247 47 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 285 108 pd RGB_____________; +#X floatatom 327 77 3 0 255; +#X floatatom 370 77 3 0 255; +#X floatatom 413 78 3 0 255; +#X text 34 22 preset-colors; +#X text 296 19 RGB-colors; +#X text 327 59 red; +#X text 363 58 green; +#X text 411 58 blue; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 2 1; +#X connect 5 0 1 1; +#X connect 6 0 1 2; +#X connect 10 0 14 0; +#X connect 11 0 10 0; +#X connect 12 0 10 1; +#X connect 13 0 14 1; +#X connect 14 0 17 0; +#X connect 18 0 20 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 26 0; +#X connect 27 0 31 0; +#X connect 28 0 27 0; +#X connect 29 0 27 1; +#X connect 30 0 31 1; +#X connect 31 0 32 0; +#X connect 37 0 41 0; +#X connect 38 0 37 0; +#X connect 39 0 37 1; +#X connect 40 0 41 1; +#X connect 41 0 44 0; +#X connect 51 0 55 0; +#X connect 52 0 51 0; +#X connect 53 0 51 1; +#X connect 54 0 55 1; +#X connect 55 0 56 0; +#X connect 59 0 61 0; +#X connect 66 0 70 0; +#X connect 67 0 70 0; +#X connect 68 0 70 0; +#X connect 69 0 70 0; +#X connect 70 0 1 0; +#X connect 70 1 1 1; +#X connect 70 2 1 2; +#X connect 71 0 70 1; +#X connect 72 0 70 2; +#X connect 73 0 70 3; +#X restore 278 136 pd edit; +#X text 191 320 updated for Pd version 0.34; +#X obj 127 255 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 222 276 tgl 15 0 bbb bbb empty 20 8 192 8 -262144 -1 -1 1 1 +; +#X connect 6 0 8 0; +#X connect 9 0 7 0; +#X connect 9 0 25 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 17 0; +#X connect 14 0 22 0; +#X connect 15 0 14 0; +#X connect 16 0 14 0; +#X connect 17 0 11 0; +#X connect 18 0 14 0; +#X connect 19 0 14 0; +#X connect 20 0 14 0; +#X connect 21 0 14 0; +#X connect 23 0 14 0; +#X connect 24 0 28 0; +#X connect 26 0 14 0; +#X connect 27 0 14 0; +#X connect 28 0 8 0; diff --git a/iemabs/unsig~.pd b/iemabs/unsig~.pd new file mode 100644 index 0000000..a9d39b4 --- /dev/null +++ b/iemabs/unsig~.pd @@ -0,0 +1,24 @@ +#N canvas 320 149 271 319 10; +#X obj 22 42 inlet~; +#X text 13 256 (c) musil@iem.kug.ac.at; +#X text 55 269 IEM KUG; +#X text 62 42 ~signal_in~; +#X text 30 281 graz \, austria 2001; +#X text 12 8 unsig~; +#X obj 22 221 outlet; +#X text 69 222 float-out; +#X text 67 9 grab every metrotime one sample; +#X obj 22 195 snapshot~; +#X obj 39 172 metro 300; +#X obj 39 81 loadbang; +#X obj 39 106 t b b; +#X obj 64 128 f \$1; +#X obj 64 148 sel 0; +#X connect 0 0 9 0; +#X connect 9 0 6 0; +#X connect 10 0 9 0; +#X connect 11 0 12 0; +#X connect 12 0 10 0; +#X connect 12 1 13 0; +#X connect 13 0 14 0; +#X connect 14 1 10 1; diff --git a/iemabs/vcf_bp2~.pd b/iemabs/vcf_bp2~.pd new file mode 100644 index 0000000..47bcfb6 --- /dev/null +++ b/iemabs/vcf_bp2~.pd @@ -0,0 +1,23 @@ +#N canvas 216 218 415 401 10; +#X obj 22 42 inlet~; +#X obj 22 288 outlet~; +#X text 14 332 (c) musil@iem.kug.ac.at; +#X text 56 345 IEM KUG; +#X text 71 41 ~signal_in~; +#X text 32 256 ~filtered signal_out~; +#X text 138 283 no arg.; +#X obj 67 69 inlet~; +#X obj 133 98 inlet~; +#X text 179 98 <signal> Q [-]; +#X text 31 357 graz \, austria 2003; +#X text 130 20 for frequency and Q; +#X text 113 70 <signal> center_frequency [Hz]; +#X obj 67 135 iem_cot4~; +#X text 12 8 vcf_bp2~; +#X text 85 8 bandpass 2.order with signal-inlets; +#X obj 22 237 vcf_filter~ rbp; +#X connect 0 0 16 0; +#X connect 7 0 13 0; +#X connect 8 0 16 2; +#X connect 13 0 16 1; +#X connect 16 0 1 0; diff --git a/iemabs/vcf_bp4~.pd b/iemabs/vcf_bp4~.pd new file mode 100644 index 0000000..efda8c7 --- /dev/null +++ b/iemabs/vcf_bp4~.pd @@ -0,0 +1,29 @@ +#N canvas 230 138 453 493 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 64 76 inlet~; +#X obj 148 107 inlet~; +#X text 194 107 <signal> Q [-]; +#X text 12 8 vcf_bp4~; +#X text 110 77 <signal> center_frequency [Hz]; +#X obj 20 269 vcf_filter~ bp2; +#X obj 20 307 vcf_filter~ bp2; +#X text 135 6 bandpass 4.order with signal-inlets; +#X text 167 20 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X obj 148 130 *~ 0.6432; +#X obj 63 162 iem_cot4~; +#X connect 0 0 12 0; +#X connect 7 0 18 0; +#X connect 8 0 17 0; +#X connect 12 0 13 0; +#X connect 13 0 1 0; +#X connect 17 0 12 2; +#X connect 17 0 13 2; +#X connect 18 0 12 1; +#X connect 18 0 13 1; diff --git a/iemabs/vcf_bp6~.pd b/iemabs/vcf_bp6~.pd new file mode 100644 index 0000000..c293e8a --- /dev/null +++ b/iemabs/vcf_bp6~.pd @@ -0,0 +1,33 @@ +#N canvas 216 218 447 487 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 63 75 inlet~; +#X obj 143 102 inlet~; +#X text 189 102 <signal> Q [-]; +#X text 109 76 <signal> center_frequency [Hz]; +#X obj 20 283 vcf_filter~ bp2; +#X obj 20 307 vcf_filter~ bp2; +#X text 167 20 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X text 12 8 vcf_bp6~; +#X text 135 6 bandpass 6.order with signal-inlets; +#X obj 20 258 vcf_filter~ bp2; +#X obj 143 150 *~ 0.51; +#X obj 62 164 iem_cot4~; +#X connect 0 0 17 0; +#X connect 7 0 19 0; +#X connect 8 0 18 0; +#X connect 11 0 12 0; +#X connect 12 0 1 0; +#X connect 17 0 11 0; +#X connect 18 0 17 2; +#X connect 18 0 11 2; +#X connect 18 0 12 2; +#X connect 19 0 17 1; +#X connect 19 0 11 1; +#X connect 19 0 12 1; diff --git a/iemabs/vcf_bp8~.pd b/iemabs/vcf_bp8~.pd new file mode 100644 index 0000000..274aeca --- /dev/null +++ b/iemabs/vcf_bp8~.pd @@ -0,0 +1,37 @@ +#N canvas 505 181 449 489 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 62 76 inlet~; +#X obj 153 103 inlet~; +#X text 199 103 <signal> Q [-]; +#X text 108 77 <signal> center_frequency [Hz]; +#X obj 20 283 vcf_filter~ bp2; +#X obj 20 307 vcf_filter~ bp2; +#X text 167 20 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X obj 20 258 vcf_filter~ bp2; +#X text 12 8 vcf_bp8~; +#X text 134 6 bandpass 8.order with signal-inlets; +#X obj 20 229 vcf_filter~ bp2; +#X obj 63 173 iem_cot4~; +#X obj 153 134 *~ 0.4345; +#X connect 0 0 18 0; +#X connect 7 0 19 0; +#X connect 8 0 20 0; +#X connect 11 0 12 0; +#X connect 12 0 1 0; +#X connect 15 0 11 0; +#X connect 18 0 15 0; +#X connect 19 0 11 1; +#X connect 19 0 12 1; +#X connect 19 0 15 1; +#X connect 19 0 18 1; +#X connect 20 0 18 2; +#X connect 20 0 15 2; +#X connect 20 0 11 2; +#X connect 20 0 12 2; diff --git a/iemabs/vcf_hp2~.pd b/iemabs/vcf_hp2~.pd new file mode 100644 index 0000000..d526a54 --- /dev/null +++ b/iemabs/vcf_hp2~.pd @@ -0,0 +1,22 @@ +#N canvas 216 218 413 399 10; +#X obj 22 42 inlet~; +#X obj 22 288 outlet~; +#X text 14 332 (c) musil@iem.kug.ac.at; +#X text 56 345 IEM KUG; +#X text 71 41 ~signal_in~; +#X text 138 283 no arg.; +#X obj 66 71 inlet~; +#X obj 134 96 inlet~; +#X text 180 96 <signal> Q [-]; +#X text 112 72 <signal> cutoff_frequency [Hz]; +#X text 31 357 graz \, austria 2003; +#X text 130 20 for frequency and Q; +#X text 12 8 vcf_hp2~; +#X text 85 8 highpass 2.order with signal-inlets; +#X obj 22 237 vcf_filter~ hp2; +#X obj 65 208 iem_cot~; +#X connect 0 0 14 0; +#X connect 6 0 15 0; +#X connect 7 0 14 2; +#X connect 14 0 1 0; +#X connect 15 0 14 1; diff --git a/iemabs/vcf_hp4~.pd b/iemabs/vcf_hp4~.pd new file mode 100644 index 0000000..0d50787 --- /dev/null +++ b/iemabs/vcf_hp4~.pd @@ -0,0 +1,29 @@ +#N canvas 216 218 445 485 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 64 77 inlet~; +#X obj 147 104 inlet~; +#X text 193 104 <signal> Q [-]; +#X text 110 78 <signal> cutoff_frequency [Hz]; +#X text 168 19 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X text 12 8 vcf_hp4~; +#X text 136 7 highpass 4.order with signal-inlets; +#X obj 20 270 vcf_filter~ hp2; +#X obj 20 307 vcf_filter~ hp2; +#X obj 63 217 iem_cot4~; +#X obj 148 132 iem_sqrt4~; +#X connect 0 0 15 0; +#X connect 7 0 17 0; +#X connect 8 0 18 0; +#X connect 15 0 16 0; +#X connect 16 0 1 0; +#X connect 17 0 15 1; +#X connect 17 0 16 1; +#X connect 18 0 15 2; +#X connect 18 0 16 2; diff --git a/iemabs/vcf_hp6~.pd b/iemabs/vcf_hp6~.pd new file mode 100644 index 0000000..5d01a83 --- /dev/null +++ b/iemabs/vcf_hp6~.pd @@ -0,0 +1,33 @@ +#N canvas 216 218 453 493 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 64 77 inlet~; +#X obj 141 104 inlet~; +#X text 187 104 <signal> Q [-]; +#X text 110 78 <signal> cutoff_frequency [Hz]; +#X text 168 19 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X obj 20 283 vcf_filter~ hp2; +#X obj 20 307 vcf_filter~ hp2; +#X text 12 8 vcf_hp6~; +#X text 136 7 highpass 6.order with signal-inlets; +#X obj 20 259 vcf_filter~ hp2; +#X obj 141 173 iem_pow4~ 0.333333; +#X obj 63 170 iem_cot4~; +#X connect 0 0 17 0; +#X connect 7 0 19 0; +#X connect 8 0 18 0; +#X connect 13 0 14 0; +#X connect 14 0 1 0; +#X connect 17 0 13 0; +#X connect 18 0 17 2; +#X connect 18 0 13 2; +#X connect 18 0 14 2; +#X connect 19 0 13 1; +#X connect 19 0 14 1; +#X connect 19 0 17 1; diff --git a/iemabs/vcf_hp8~.pd b/iemabs/vcf_hp8~.pd new file mode 100644 index 0000000..668a917 --- /dev/null +++ b/iemabs/vcf_hp8~.pd @@ -0,0 +1,39 @@ +#N canvas 216 218 453 493 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 64 76 inlet~; +#X obj 133 102 inlet~; +#X text 179 102 <signal> Q [-]; +#X text 110 77 <signal> cutoff_frequency [Hz]; +#X text 168 19 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X obj 20 283 vcf_filter~ hp2; +#X obj 20 307 vcf_filter~ hp2; +#X obj 20 259 vcf_filter~ hp2; +#X text 12 8 vcf_hp8~; +#X text 136 7 highpass 8.order with signal-inlets; +#X obj 20 235 vcf_filter~ hp2; +#X obj 63 159 iem_cot4~; +#X obj 133 125 iem_sqrt4~; +#X obj 133 146 iem_sqrt4~; +#X connect 0 0 18 0; +#X connect 7 0 19 0; +#X connect 8 0 20 0; +#X connect 13 0 14 0; +#X connect 14 0 1 0; +#X connect 15 0 13 0; +#X connect 18 0 15 0; +#X connect 19 0 13 1; +#X connect 19 0 14 1; +#X connect 19 0 15 1; +#X connect 19 0 18 1; +#X connect 20 0 21 0; +#X connect 21 0 18 2; +#X connect 21 0 15 2; +#X connect 21 0 13 2; +#X connect 21 0 14 2; diff --git a/iemabs/vcf_lp2~.pd b/iemabs/vcf_lp2~.pd new file mode 100644 index 0000000..a064e01 --- /dev/null +++ b/iemabs/vcf_lp2~.pd @@ -0,0 +1,23 @@ +#N canvas 216 218 411 397 10; +#X obj 22 42 inlet~; +#X obj 22 288 outlet~; +#X text 14 332 (c) musil@iem.kug.ac.at; +#X text 56 345 IEM KUG; +#X text 71 41 ~signal_in~; +#X text 32 256 ~filtered signal_out~; +#X text 12 8 vcf_lp2~; +#X text 138 283 no arg.; +#X obj 64 70 inlet~; +#X obj 133 97 inlet~; +#X text 179 97 <signal> Q [-]; +#X text 110 71 <signal> cutoff_frequency [Hz]; +#X obj 22 237 vcf_filter~ lp2; +#X text 31 357 graz \, austria 2003; +#X text 85 8 lowpass 2.order with signal-inlets; +#X text 130 20 for frequency and Q; +#X obj 63 206 iem_cot~; +#X connect 0 0 12 0; +#X connect 8 0 16 0; +#X connect 9 0 12 2; +#X connect 12 0 1 0; +#X connect 16 0 12 1; diff --git a/iemabs/vcf_lp4~.pd b/iemabs/vcf_lp4~.pd new file mode 100644 index 0000000..7e68c84 --- /dev/null +++ b/iemabs/vcf_lp4~.pd @@ -0,0 +1,29 @@ +#N canvas 216 218 443 483 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 64 76 inlet~; +#X obj 130 103 inlet~; +#X text 176 103 <signal> Q [-]; +#X text 110 77 <signal> cutoff_frequency [Hz]; +#X text 12 8 vcf_lp4~; +#X obj 20 270 vcf_filter~ lp2; +#X obj 20 307 vcf_filter~ lp2; +#X text 136 7 lowpass 4.order with signal-inlets; +#X text 168 19 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X obj 63 216 iem_cot4~; +#X obj 130 132 iem_sqrt4~; +#X connect 0 0 12 0; +#X connect 7 0 17 0; +#X connect 8 0 18 0; +#X connect 12 0 13 0; +#X connect 13 0 1 0; +#X connect 17 0 12 1; +#X connect 17 0 13 1; +#X connect 18 0 12 2; +#X connect 18 0 13 2; diff --git a/iemabs/vcf_lp6~.pd b/iemabs/vcf_lp6~.pd new file mode 100644 index 0000000..d1d8390 --- /dev/null +++ b/iemabs/vcf_lp6~.pd @@ -0,0 +1,33 @@ +#N canvas 216 218 447 487 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 64 76 inlet~; +#X obj 128 104 inlet~; +#X text 174 104 <signal> Q [-]; +#X text 110 77 <signal> cutoff_frequency [Hz]; +#X obj 20 270 vcf_filter~ lp2; +#X obj 20 307 vcf_filter~ lp2; +#X text 168 19 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X text 12 8 vcf_lp6~; +#X text 136 7 lowpass 6.order with signal-inlets; +#X obj 20 227 vcf_filter~ lp2; +#X obj 63 161 iem_cot4~; +#X obj 128 162 iem_pow4~ 0.333333; +#X connect 0 0 17 0; +#X connect 7 0 18 0; +#X connect 8 0 19 0; +#X connect 11 0 12 0; +#X connect 12 0 1 0; +#X connect 17 0 11 0; +#X connect 18 0 11 1; +#X connect 18 0 12 1; +#X connect 18 0 17 1; +#X connect 19 0 17 2; +#X connect 19 0 11 2; +#X connect 19 0 12 2; diff --git a/iemabs/vcf_lp8~.pd b/iemabs/vcf_lp8~.pd new file mode 100644 index 0000000..96e3454 --- /dev/null +++ b/iemabs/vcf_lp8~.pd @@ -0,0 +1,39 @@ +#N canvas 216 218 449 489 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 63 76 inlet~; +#X obj 132 102 inlet~; +#X text 178 102 <signal> Q [-]; +#X text 109 77 <signal> cutoff_frequency [Hz]; +#X obj 20 285 vcf_filter~ lp2; +#X obj 20 307 vcf_filter~ lp2; +#X text 168 19 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X obj 20 263 vcf_filter~ lp2; +#X text 12 8 vcf_lp8~; +#X text 136 7 lowpass 8.order with signal-inlets; +#X obj 20 241 vcf_filter~ lp2; +#X obj 63 163 iem_cot4~; +#X obj 132 127 iem_sqrt4~; +#X obj 132 150 iem_sqrt4~; +#X connect 0 0 18 0; +#X connect 7 0 19 0; +#X connect 8 0 20 0; +#X connect 11 0 12 0; +#X connect 12 0 1 0; +#X connect 15 0 11 0; +#X connect 18 0 15 0; +#X connect 19 0 11 1; +#X connect 19 0 12 1; +#X connect 19 0 15 1; +#X connect 19 0 18 1; +#X connect 20 0 21 0; +#X connect 21 0 18 2; +#X connect 21 0 15 2; +#X connect 21 0 11 2; +#X connect 21 0 12 2; diff --git a/iemabs/vcf_rbp2~.pd b/iemabs/vcf_rbp2~.pd new file mode 100644 index 0000000..90beaac --- /dev/null +++ b/iemabs/vcf_rbp2~.pd @@ -0,0 +1,23 @@ +#N canvas 216 218 413 399 10; +#X obj 22 42 inlet~; +#X obj 22 288 outlet~; +#X text 14 332 (c) musil@iem.kug.ac.at; +#X text 56 345 IEM KUG; +#X text 71 41 ~signal_in~; +#X text 32 256 ~filtered signal_out~; +#X text 138 283 no arg.; +#X obj 67 69 inlet~; +#X obj 133 98 inlet~; +#X text 179 98 <signal> Q [-]; +#X text 31 357 graz \, austria 2003; +#X text 130 20 for frequency and Q; +#X text 113 70 <signal> center_frequency [Hz]; +#X text 12 8 vcf_rbp2~; +#X text 85 8 resonance-bandpass 2.order with signal-inlets; +#X obj 22 237 vcf_filter~ rbp2; +#X obj 67 135 iem_cot4~; +#X connect 0 0 15 0; +#X connect 7 0 16 0; +#X connect 8 0 15 2; +#X connect 15 0 1 0; +#X connect 16 0 15 1; diff --git a/iemabs/vcf_rbp4~.pd b/iemabs/vcf_rbp4~.pd new file mode 100644 index 0000000..771a7a4 --- /dev/null +++ b/iemabs/vcf_rbp4~.pd @@ -0,0 +1,29 @@ +#N canvas 216 218 441 481 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 67 76 inlet~; +#X obj 132 102 inlet~; +#X text 178 102 <signal> Q [-]; +#X text 113 77 <signal> center_frequency [Hz]; +#X text 167 20 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X text 12 8 vcf_rbp4~; +#X text 114 6 resonance-bandpass 4.order with signal-inlets; +#X obj 20 269 vcf_filter~ rbp2; +#X obj 20 307 vcf_filter~ rbp2; +#X obj 66 160 iem_cot4~; +#X obj 132 151 *~ 0.6432; +#X connect 0 0 15 0; +#X connect 7 0 17 0; +#X connect 8 0 18 0; +#X connect 15 0 16 0; +#X connect 16 0 1 0; +#X connect 17 0 15 1; +#X connect 17 0 16 1; +#X connect 18 0 15 2; +#X connect 18 0 16 2; diff --git a/iemabs/vcf_rbp6~.pd b/iemabs/vcf_rbp6~.pd new file mode 100644 index 0000000..1eda202 --- /dev/null +++ b/iemabs/vcf_rbp6~.pd @@ -0,0 +1,33 @@ +#N canvas 300 199 445 485 10; +#X obj 20 48 inlet~; +#X obj 20 358 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 67 77 inlet~; +#X obj 135 103 inlet~; +#X text 181 103 <signal> Q [-]; +#X text 113 78 <signal> center_frequency [Hz]; +#X text 167 20 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X obj 20 280 vcf_filter~ rbp2; +#X obj 20 307 vcf_filter~ rbp2; +#X text 12 8 vcf_rbp6~; +#X text 114 6 resonance-bandpass 6.order with signal-inlets; +#X obj 20 249 vcf_filter~ rbp2; +#X obj 66 156 iem_cot4~; +#X obj 136 147 *~ 0.51; +#X connect 0 0 17 0; +#X connect 7 0 18 0; +#X connect 8 0 19 0; +#X connect 13 0 14 0; +#X connect 14 0 1 0; +#X connect 17 0 13 0; +#X connect 18 0 13 1; +#X connect 18 0 14 1; +#X connect 18 0 17 1; +#X connect 19 0 17 2; +#X connect 19 0 13 2; +#X connect 19 0 14 2; diff --git a/iemabs/vcf_rbp8~.pd b/iemabs/vcf_rbp8~.pd new file mode 100644 index 0000000..ed97d23 --- /dev/null +++ b/iemabs/vcf_rbp8~.pd @@ -0,0 +1,37 @@ +#N canvas 216 218 451 491 10; +#X obj 20 48 inlet~; +#X obj 21 357 outlet~; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 69 47 ~signal_in~; +#X text 30 326 ~filtered signal_out~; +#X text 136 353 no arg.; +#X obj 66 78 inlet~; +#X obj 132 101 inlet~; +#X text 178 101 <signal> Q [-]; +#X text 112 79 <signal> center_frequency [Hz]; +#X text 167 20 for frequency and Q; +#X text 29 427 graz \, austria 2003; +#X obj 21 275 vcf_filter~ rbp2; +#X obj 21 302 vcf_filter~ rbp2; +#X obj 21 244 vcf_filter~ rbp2; +#X obj 21 217 vcf_filter~ rbp2; +#X text 114 6 resonance-bandpass 8.order with signal-inlets; +#X text 12 8 vcf_rbp8~; +#X obj 132 140 *~ 0.4345; +#X obj 66 139 iem_cot4~; +#X connect 0 0 16 0; +#X connect 7 0 20 0; +#X connect 8 0 19 0; +#X connect 13 0 14 0; +#X connect 14 0 1 0; +#X connect 15 0 13 0; +#X connect 16 0 15 0; +#X connect 19 0 16 2; +#X connect 19 0 15 2; +#X connect 19 0 13 2; +#X connect 19 0 14 2; +#X connect 20 0 13 1; +#X connect 20 0 14 1; +#X connect 20 0 15 1; +#X connect 20 0 16 1; diff --git a/iemabs/vdial.pd b/iemabs/vdial.pd new file mode 100644 index 0000000..31df3e1 --- /dev/null +++ b/iemabs/vdial.pd @@ -0,0 +1,285 @@ +#N canvas 544 154 329 467 10; +#X obj 1 1 cnv 8 100 60 empty empty vdial=vdl 20 20 1 18 -262144 -1109 +0; +#X text 82 407 (c) musil@iem.kug.ac.at; +#X text 124 420 IEM KUG; +#X text 99 432 graz \, austria 2001; +#X text 109 130 click properties to; +#X text 97 141 modify geometry \, colors \, etc.; +#X obj 60 254 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 21 54 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 59 206 s foo11_rcv; +#X obj 60 232 r foo11_snd; +#X obj 21 118 vdl 25 1 1 10 foo11_snd foo11_rcv radio_0_9 32 12 192 +10 -99865 -262144 -260818 0; +#X msg 21 376 \$1; +#X floatatom 21 398 4 0 0; +#X obj 21 420 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 103 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 +1; +#X obj 103 368 route 0 1 2 3 4 5 6 7 8 9; +#X msg 157 73 set \$1; +#X floatatom 157 52 4 0 9; +#X floatatom 44 54 4 0 9; +#X msg 84 50 7 0 -5.44; +#X msg 88 72 3 3 4.55; +#X obj 120 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 137 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 154 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 171 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 188 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 205 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 222 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 239 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 256 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 58 372 print; +#X floatatom 84 280 4 0 0; +#X msg 84 254 \$1; +#X msg 59 185 set \$1; +#X floatatom 59 164 4 0 9; +#X text 60 334 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 59 345 for moving selected gui-objects; +#N canvas 222 207 699 530 edit 0; +#X obj 42 198 f; +#X msg 20 177 bang; +#X floatatom 58 176 3 63 156; +#X floatatom 93 198 3 -20 37; +#X obj 42 221 pack 0 0; +#X text 120 198 y-label; +#X text 86 176 x-label; +#X floatatom 270 187 3 8 50; +#X text 297 187 size; +#X obj 286 293 f; +#X msg 264 272 bang; +#X floatatom 302 271 3 -10 10; +#X floatatom 337 293 3 -10 10; +#X obj 286 316 pack 0 0; +#X obj 300 412 f; +#X msg 278 391 bang; +#X floatatom 316 390 3 20 60; +#X floatatom 351 412 3 100 200; +#X obj 300 435 pack 0 0; +#X text 330 271 x-delta; +#X text 364 293 y-delta; +#X text 344 390 x-position; +#X text 378 412 y-position; +#X obj 62 313 f; +#X msg 40 292 bang; +#X floatatom 78 291 3 0 2; +#X floatatom 113 313 3 4 36; +#X obj 62 336 pack 0 0; +#X text 106 291 font; +#X text 142 313 height; +#X text 504 293 no init; +#X text 475 348 init value on loadbang; +#X floatatom 482 228 5 2 20; +#X msg 47 125 \; foo11_rcv color \$1 \$2 \$3; +#X msg 42 246 \; foo11_rcv label_pos \$1 \$2; +#X msg 62 361 \; foo11_rcv label_font \$1 \$2; +#X msg 34 423 \; foo11_rcv label blabla; +#X msg 300 460 \; foo11_rcv pos \$1 \$2; +#X msg 286 341 \; foo11_rcv delta \$1 \$2; +#X msg 270 216 \; foo11_rcv size \$1; +#X msg 482 171 \; foo11a_rcv receive foo11_rcv; +#X msg 483 133 \; foo11_rcv receive foo11a_rcv; +#X msg 483 88 \; foo11_rcv send foo11_snd; +#X msg 483 50 \; foo11_rcv send foo11a_snd; +#X msg 483 312 \; foo11_rcv init 0; +#X msg 485 366 \; foo11_rcv init 1; +#X msg 490 436 \; foo11_rcv single_change; +#X msg 490 470 \; foo11_rcv double_change; +#X text 491 417 changing-behavior; +#X msg 482 254 \; foo11_rcv number \$1; +#X text 526 228 number of buttons; +#X msg 34 459 \; foo11_rcv label radio_0_9; +#X obj 47 104 pack 0 0 0; +#X obj 47 76 f; +#X msg 24 28 bang; +#X floatatom 63 26 3 0 29; +#X floatatom 79 46 3 0 29; +#X floatatom 112 62 3 0 29; +#X text 91 26 background; +#X text 106 46 front-color; +#X text 140 63 label-color; +#X msg 285 25 back; +#X msg 285 45 front; +#X msg 285 65 label; +#X msg 247 25 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 285 86 pd RGB_____________; +#X floatatom 327 55 3 0 255; +#X floatatom 370 55 3 0 255; +#X floatatom 413 56 3 0 255; +#X text 34 0 preset-colors; +#X text 296 -3 RGB-colors; +#X text 327 37 red; +#X text 363 36 green; +#X text 411 36 blue; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 34 0; +#X connect 7 0 39 0; +#X connect 9 0 13 0; +#X connect 10 0 9 0; +#X connect 11 0 9 1; +#X connect 12 0 13 1; +#X connect 13 0 38 0; +#X connect 14 0 18 0; +#X connect 15 0 14 0; +#X connect 16 0 14 1; +#X connect 17 0 18 1; +#X connect 18 0 37 0; +#X connect 23 0 27 0; +#X connect 24 0 23 0; +#X connect 25 0 23 1; +#X connect 26 0 27 1; +#X connect 27 0 35 0; +#X connect 32 0 49 0; +#X connect 52 0 33 0; +#X connect 53 0 52 0; +#X connect 54 0 53 0; +#X connect 55 0 53 1; +#X connect 56 0 52 1; +#X connect 57 0 52 2; +#X connect 61 0 65 0; +#X connect 62 0 65 0; +#X connect 63 0 65 0; +#X connect 64 0 65 0; +#X connect 65 0 52 0; +#X connect 65 1 52 1; +#X connect 65 2 52 2; +#X connect 66 0 65 1; +#X connect 67 0 65 2; +#X connect 68 0 65 3; +#X restore 166 220 pd edit; +#X text 88 306 updated for Pd version 0.34; +#X obj 257 46 vdl 8 1 0 8 hhh hhh empty 20 8 192 8 -262144 -1 -1 6 +; +#X text 117 12 gui-vertical dial:; +#X obj 231 46 vdl 8 1 0 8 hhh hhh empty 20 8 192 8 -262144 -1 -1 6 +; +#X obj 244 46 vdl 8 1 0 8 hhh hhh empty 20 8 192 8 -262144 -1 -1 6 +; +#X connect 7 0 10 0; +#X connect 9 0 6 0; +#X connect 9 0 32 0; +#X connect 10 0 11 0; +#X connect 10 0 15 0; +#X connect 10 0 30 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 15 0 14 0; +#X connect 15 1 21 0; +#X connect 15 2 22 0; +#X connect 15 3 23 0; +#X connect 15 4 24 0; +#X connect 15 5 25 0; +#X connect 15 6 26 0; +#X connect 15 7 27 0; +#X connect 15 8 28 0; +#X connect 15 9 29 0; +#X connect 16 0 10 0; +#X connect 17 0 16 0; +#X connect 18 0 10 0; +#X connect 19 0 10 0; +#X connect 20 0 10 0; +#X connect 32 0 31 0; +#X connect 33 0 8 0; +#X connect 34 0 33 0; diff --git a/iemabs/vslider.pd b/iemabs/vslider.pd new file mode 100644 index 0000000..c5b4a1c --- /dev/null +++ b/iemabs/vslider.pd @@ -0,0 +1,302 @@ +#N canvas 143 181 467 416 10; +#X obj 1 1 cnv 8 100 60 empty empty vslider=vsl 20 20 1 18 -262144 +-1109 0; +#X floatatom 38 300 9 0 0; +#X msg 47 84 set \$1; +#X floatatom 38 43 7 0 0; +#X text 25 363 (c) musil@iem.kug.ac.at; +#X text 67 376 IEM KUG; +#X text 42 388 graz \, austria 2001; +#X obj 38 324 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 18 47 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X floatatom 47 63 7 0 0; +#X floatatom 116 324 9 0 0; +#X floatatom 106 42 7 0 0; +#X floatatom 147 113 7 0 0; +#X obj 75 249 ftom; +#X floatatom 75 271 9 0 0; +#X floatatom 111 244 9 0 0; +#X floatatom 185 266 9 0 0; +#X text 181 151 click properties to; +#X floatatom 75 112 9 0 0; +#X obj 75 134 mtof; +#X text 166 12 gui-vertical-slider:; +#X obj 38 162 vsl 15 101 100 300 0 1 foo3_snd foo3_rcv empty 8 -8 192 +10 -225280 -1109 -1 2500 1; +#X obj 75 168 vsl 15 73 55 3520 1 1 goo4_snd goo4_rcv log.freq. 11 +-6 192 10 -261681 -260818 -90881 0 1; +#X obj 185 244 r goo4_snd; +#X obj 147 133 s goo4_rcv; +#X text 202 65 (0.01 pixels); +#X text 57 99 ------------------------------------------; +#X text 57 286 --------------------------------------------; +#X text 169 162 modify geometry \, colors \, etc.; +#X obj 106 84 s foo3_rcv; +#X obj 116 302 r foo3_snd; +#X msg 106 63 set \$1; +#X text 188 44 shift-click & drag; +#X text 194 54 for fine-tuning; +#X text 119 192 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 118 203 for moving selected gui-objects; +#N canvas 239 379 699 530 edit 0; +#X obj 37 233 f; +#X msg 15 212 bang; +#X floatatom 53 211 3 6 88; +#X floatatom 88 233 3 -20 37; +#X obj 37 256 pack 0 0; +#X text 115 233 y-label; +#X text 81 211 x-label; +#X obj 287 271 f; +#X msg 265 250 bang; +#X floatatom 303 249 3 -10 10; +#X floatatom 338 271 3 -10 10; +#X obj 287 294 pack 0 0; +#X obj 299 381 f; +#X msg 277 360 bang; +#X floatatom 315 359 3 20 90; +#X floatatom 350 381 3 150 200; +#X obj 299 404 pack 0 0; +#X text 331 249 x-delta; +#X text 365 271 y-delta; +#X text 343 359 x-position; +#X text 377 381 y-position; +#X obj 57 348 f; +#X msg 35 327 bang; +#X floatatom 73 326 3 0 2; +#X floatatom 108 348 3 4 36; +#X obj 57 371 pack 0 0; +#X text 101 326 font; +#X text 137 348 height; +#X floatatom 476 188 1 0 1; +#X text 523 401 no init; +#X text 493 453 init value on loadbang; +#X text 520 188 steady; +#X obj 486 291 f; +#X msg 464 270 bang; +#X floatatom 502 269 4 55 440; +#X floatatom 537 291 6 440 3520; +#X obj 486 314 pack 0 0; +#X text 269 469 linear / logarithmical; +#X msg 47 158 \; goo4_rcv color \$1 \$2 \$3; +#X msg 37 281 \; goo4_rcv label_pos \$1 \$2; +#X msg 57 396 \; goo4_rcv label_font \$1 \$2; +#X msg 40 442 \; goo4_rcv label blabla; +#X msg 269 487 \; goo4_rcv lin; +#X msg 363 486 \; goo4_rcv log; +#X msg 299 429 \; goo4_rcv pos \$1 \$2; +#X msg 287 319 \; goo4_rcv delta \$1 \$2; +#X msg 475 21 \; goo4_rcv send goo4a_snd; +#X msg 475 59 \; goo4_rcv send goo4_snd; +#X msg 476 105 \; goo4_rcv receive goo4a_rcv; +#X msg 476 143 \; goo4a_rcv receive goo4_rcv; +#X msg 486 339 \; goo4_rcv range \$1 \$2; +#X msg 502 420 \; goo4_rcv init 0; +#X msg 503 471 \; goo4_rcv init 1; +#X text 539 270 bottom-range-bound; +#X text 586 292 top-range-bound; +#X obj 286 160 f; +#X msg 264 139 bang; +#X floatatom 302 138 3 4 55; +#X floatatom 337 160 3 15 73; +#X obj 286 183 pack 0 0; +#X msg 286 208 \; goo4_rcv size \$1 \$2; +#X text 330 138 width; +#X text 368 161 height; +#X msg 41 478 \; goo4_rcv label log.freq.; +#X msg 476 212 \; goo4_rcv steady \$1; +#X obj 47 116 pack 0 0 0; +#X obj 47 88 f; +#X msg 24 40 bang; +#X floatatom 63 38 3 0 29; +#X floatatom 79 58 3 0 29; +#X floatatom 112 74 3 0 29; +#X text 91 38 background; +#X text 106 58 front-color; +#X text 140 75 label-color; +#X msg 285 37 back; +#X msg 285 57 front; +#X msg 285 77 label; +#X msg 247 37 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 285 98 pd RGB_____________; +#X floatatom 327 67 3 0 255; +#X floatatom 370 67 3 0 255; +#X floatatom 413 68 3 0 255; +#X text 34 12 preset-colors; +#X text 296 9 RGB-colors; +#X text 327 49 red; +#X text 363 48 green; +#X text 411 48 blue; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 39 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 10 0 11 1; +#X connect 11 0 45 0; +#X connect 12 0 16 0; +#X connect 13 0 12 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 44 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 40 0; +#X connect 28 0 64 0; +#X connect 32 0 36 0; +#X connect 33 0 32 0; +#X connect 34 0 32 1; +#X connect 35 0 36 1; +#X connect 36 0 50 0; +#X connect 55 0 59 0; +#X connect 56 0 55 0; +#X connect 57 0 55 1; +#X connect 58 0 59 1; +#X connect 59 0 60 0; +#X connect 65 0 38 0; +#X connect 66 0 65 0; +#X connect 67 0 66 0; +#X connect 68 0 66 1; +#X connect 69 0 65 1; +#X connect 70 0 65 2; +#X connect 74 0 78 0; +#X connect 75 0 78 0; +#X connect 76 0 78 0; +#X connect 77 0 78 0; +#X connect 78 0 65 0; +#X connect 78 1 65 1; +#X connect 78 2 65 2; +#X connect 79 0 78 1; +#X connect 80 0 78 2; +#X connect 81 0 78 3; +#X restore 327 48 pd edit; +#X text 218 387 updated for Pd version 0.34; +#X obj 61 345 print; +#N canvas 276 200 290 224 once 0; +#X obj 38 47 t b b f; +#X msg 56 85 1; +#X obj 31 108 f 0; +#X obj 31 131 pack 0 0; +#X obj 31 156 route 0; +#X obj 38 24 inlet; +#X obj 31 180 outlet; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 1; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 0 0 0; +#X restore 61 322 pd once; +#X obj 250 87 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 377 110 vsl 15 128 0 127 0 0 ccc ccc empty 20 8 192 8 -262144 +-1 -1 3500 1; +#X connect 1 0 7 0; +#X connect 2 0 21 0; +#X connect 3 0 21 0; +#X connect 8 0 21 0; +#X connect 9 0 2 0; +#X connect 11 0 31 0; +#X connect 12 0 24 0; +#X connect 13 0 14 0; +#X connect 18 0 19 0; +#X connect 19 0 22 0; +#X connect 21 0 1 0; +#X connect 21 0 39 0; +#X connect 22 0 15 0; +#X connect 22 0 13 0; +#X connect 23 0 16 0; +#X connect 30 0 10 0; +#X connect 31 0 29 0; +#X connect 39 0 38 0; diff --git a/iemabs/vu.pd b/iemabs/vu.pd new file mode 100644 index 0000000..f57862c --- /dev/null +++ b/iemabs/vu.pd @@ -0,0 +1,248 @@ +#N canvas 167 190 434 418 10; +#X obj 1 1 cnv 8 100 60 empty empty vu 20 20 1 18 -262144 -1109 0; +#X text 19 363 (c) musil@iem.kug.ac.at; +#X text 61 376 IEM KUG; +#X text 36 388 graz \, austria 2001; +#X floatatom 177 129 7 -110 20; +#X text 202 41 click properties to; +#X text 190 52 modify geometry \, colors \, etc.; +#X text 49 13 gui-vu-meter-display:; +#X obj 99 39 tgl 15 1 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 12 179 vu 16 120 foo7_rcv vu-meter 60 0 64 10 -1 -16410 1 0 +; +#X floatatom 11 332 6 0 0; +#X floatatom 22 310 6 0 0; +#X text 75 309 dB; +#X text 63 333 dB; +#X text 71 128 dB; +#X text 80 148 dB; +#X text 103 146 peak-level; +#X text 101 125 rms-level; +#X text 96 308 peak-level; +#X text 83 332 rms-level; +#X text 108 99 <list> of rms \, peak; +#X obj 177 231 s foo7_rcv; +#X obj 177 211 pack 0 0; +#X floatatom 195 150 7 -110 20; +#X obj 195 191 t b f; +#X text 236 129 dB; +#X text 255 151 dB; +#X text 71 258 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 70 269 for moving selected gui-objects; +#X floatatom 11 128 7 -110 20; +#X floatatom 22 149 7 -110 20; +#N canvas 236 62 699 530 edit 0; +#X obj 37 222 f; +#X msg 15 201 bang; +#X floatatom 53 200 3 50 88; +#X floatatom 88 222 3 0 37; +#X obj 37 245 pack 0 0; +#X text 115 222 y-label; +#X text 81 200 x-label; +#X obj 292 313 f; +#X msg 270 292 bang; +#X floatatom 308 291 3 -10 10; +#X floatatom 343 313 3 -10 10; +#X obj 292 336 pack 0 0; +#X obj 304 435 f; +#X msg 282 414 bang; +#X floatatom 320 413 3 20 140; +#X floatatom 355 435 3 150 200; +#X obj 304 458 pack 0 0; +#X text 336 291 x-delta; +#X text 370 313 y-delta; +#X text 348 413 x-position; +#X text 382 435 y-position; +#X obj 57 337 f; +#X msg 35 316 bang; +#X floatatom 73 315 3 0 2; +#X floatatom 108 337 3 8 36; +#X obj 57 360 pack 0 0; +#X text 101 315 font; +#X text 137 337 height; +#X floatatom 471 106 1 0 1; +#X msg 52 131 \; foo7_rcv color \$1 \$2; +#X msg 37 270 \; foo7_rcv label_pos \$1 \$2; +#X msg 57 386 \; foo7_rcv label_font \$1 \$2; +#X msg 37 427 \; foo7_rcv label blabla; +#X msg 292 361 \; foo7_rcv delta \$1 \$2; +#X msg 304 483 \; foo7_rcv pos \$1 \$2; +#X msg 469 23 \; foo7_rcv receive foo7a_rcv; +#X msg 469 60 \; foo7a_rcv receive foo7_rcv; +#X text 492 106 display scale; +#X msg 471 132 \; foo7_rcv scale \$1; +#X obj 279 193 f; +#X msg 257 172 bang; +#X floatatom 295 171 3 8 50; +#X floatatom 330 193 3 110 200; +#X obj 279 216 pack 0 0; +#X text 323 171 width; +#X text 357 193 height; +#X msg 279 241 \; foo7_rcv size \$1 \$2; +#X msg 37 463 \; foo7_rcv label vu-meter; +#X obj 52 79 f; +#X msg 29 31 bang; +#X floatatom 68 29 3 0 29; +#X floatatom 103 47 3 0 29; +#X text 96 29 background; +#X text 131 48 label-color; +#X msg 290 25 back; +#X msg 290 49 label; +#X msg 252 25 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 28 180 loadbang; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 97 135 route back label bang; +#X obj 235 168 t b b b; +#X connect 0 0 29 0; +#X connect 1 0 25 0; +#X connect 2 0 26 0; +#X connect 3 0 27 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 11 1; +#X connect 6 0 10 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 10 1; +#X connect 9 0 11 1; +#X connect 10 0 24 1; +#X connect 11 0 23 1; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 19 1 20 1; +#X connect 20 0 28 0; +#X connect 22 0 6 0; +#X connect 23 0 21 0; +#X connect 24 0 12 0; +#X connect 25 0 20 0; +#X connect 26 0 18 0; +#X connect 27 0 17 0; +#X connect 28 0 11 0; +#X connect 28 0 10 0; +#X connect 29 0 4 0; +#X connect 29 1 7 0; +#X connect 29 2 30 0; +#X connect 30 0 24 0; +#X connect 30 1 23 0; +#X connect 30 2 28 0; +#X restore 290 86 pd RGB_____________; +#X floatatom 332 55 3 0 255; +#X floatatom 375 55 3 0 255; +#X floatatom 418 56 3 0 255; +#X text 39 3 preset-colors; +#X text 301 0 RGB-colors; +#X text 332 37 red; +#X text 368 36 green; +#X text 416 36 blue; +#X obj 52 104 pack 0 0; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 30 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 10 0 11 1; +#X connect 11 0 33 0; +#X connect 12 0 16 0; +#X connect 13 0 12 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 34 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 31 0; +#X connect 28 0 38 0; +#X connect 39 0 43 0; +#X connect 40 0 39 0; +#X connect 41 0 39 1; +#X connect 42 0 43 1; +#X connect 43 0 46 0; +#X connect 48 0 66 0; +#X connect 49 0 48 0; +#X connect 50 0 48 1; +#X connect 51 0 66 1; +#X connect 54 0 57 0; +#X connect 55 0 57 0; +#X connect 56 0 57 0; +#X connect 57 0 66 0; +#X connect 57 1 66 1; +#X connect 58 0 57 1; +#X connect 59 0 57 2; +#X connect 60 0 57 3; +#X connect 66 0 29 0; +#X restore 313 188 pd edit; +#N canvas 147 336 290 278 source 0; +#X obj 40 95 random 102; +#X obj 40 171 - 101; +#X obj 40 205 pack 0 0; +#X obj 40 45 metro 300; +#X obj 40 69 t b b; +#X obj 133 95 random 20; +#X obj 40 117 t f f; +#X obj 91 147 +; +#X obj 91 172 - 101; +#X obj 40 21 inlet; +#X obj 40 230 outlet; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 3 0 4 0; +#X connect 4 0 0 0; +#X connect 4 1 5 0; +#X connect 5 0 7 1; +#X connect 6 0 1 0; +#X connect 6 1 7 0; +#X connect 7 0 8 0; +#X connect 8 0 2 1; +#X connect 9 0 3 0; +#X restore 99 62 pd source; +#X text 210 386 updated for Pd version 0.34; +#X obj 186 301 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 263 94 s fff; +#X connect 4 0 22 0; +#X connect 8 0 32 0; +#X connect 9 0 10 0; +#X connect 9 1 11 0; +#X connect 22 0 21 0; +#X connect 23 0 24 0; +#X connect 24 0 22 0; +#X connect 24 1 22 1; +#X connect 29 0 9 0; +#X connect 30 0 9 1; +#X connect 32 0 9 0; +#X connect 32 0 35 0; diff --git a/iemabs/x_all_guis.pd b/iemabs/x_all_guis.pd new file mode 100644 index 0000000..f6d3380 --- /dev/null +++ b/iemabs/x_all_guis.pd @@ -0,0 +1,20 @@ +#N canvas 205 322 280 271 10; +#X obj 23 31 bng 15 250 50 532480 \$1 \$1 empty 20 8 192 8 -262144 +-1 -1; +#X obj 23 63 tgl 15 1.06496e+06 \$2 \$2 empty 20 8 192 8 -262144 -1 +-1 0 1; +#X obj 22 95 vsl 15 128 0 127 0 1.59744e+06 \$3 \$3 empty 20 8 192 +8 -262144 -1 -1 0 1; +#X obj 65 30 hsl 128 15 0 127 0 2.12992e+06 \$4 \$4 empty 20 8 192 +8 -262144 -1 -1 0 1; +#X obj 63 63 hdl 15 1 2.6624e+06 8 \$5 \$5 empty 20 8 192 8 -262144 +-1 -1 0; +#X obj 62 99 vu 15 120 \$6 empty 35 8 64 8 -66577 -1 1 49152; +#X obj 115 99 cnv 15 100 60 \$7 \$7 \$7 20 12 917696 14 -233017 -66577 +3.72736e+06; +#X obj 41 308 inlet; +#X obj 41 334 outlet; +#X obj 227 30 vdl 15 1 4.79232e+06 8 \$9 \$9 empty 20 8 192 8 -262144 +-1 -1 0; +#X obj 116 176 nbx 5 14 -1e+37 1e+37 0 4.25984e+06 \$8 \$8 empty 45 +7 192 10 -262144 -1 -1 0; diff --git a/iemabs/xx_xx.wav b/iemabs/xx_xx.wav new file mode 100644 index 0000000..28c317e --- /dev/null +++ b/iemabs/xx_xx.wav @@ -0,0 +1,10 @@ +0.800011 +0.800011 +-0.571436 +-0.571436 +0.31429 +0.31429 +0.31429 +-0.657152 +0.671438 +0.671438 diff --git a/iemhelp/0.INTRO.txt b/iemhelp/0.INTRO.txt new file mode 100644 index 0000000..eca41ee --- /dev/null +++ b/iemhelp/0.INTRO.txt @@ -0,0 +1,177 @@ +contents of iemlib Release 1.15 from December 2003 + +============================ DSP~ =============================== + +------------------------- filter~ ------------------------------- +FIR~ finite impuls response filter, with array-coefficients + +maverage~ moving average filter, (IIR + delay) + +ap1~ allpass 1.order +ap2~ allpass 2.order +bpq2~ bandpass 2.order with Q-inlet +bpw2~ bandpass 2.order with bandwidth-inlet +bsq2~ bandstop 2.order (notch) with Q-inlet +bsw2~ bandstop 2.order (notch) with bandwidth-inlet +hp1~ highpass 1.order +hp2~ highpass 2.order +lp1~ lowpass 1.order +lp2~ lowpass 2.order +rbpq2~ resonance-bandpass 2.order with Q-inlet +rbpw2~ resonance-bandpass 2.order with bandwidth-inlet + +hml_shelf~ high-middle-low shelving-filter with freq- and gain-inlets +lp1_t~ lowpass 1.order with time_constant inlet +para_bp2~ parametrical bandpass 2. order with freq-, Q- and gain-inlet + +hp2_butt~, hp3_butt~, hp4_butt~, hp5_butt~, hp6_butt~, hp7_butt~, +hp8_butt~, hp9_butt~, hp10_butt~ + highpass 2.3.4.5.6.7.8.9.10.order with butterworth characteristic +hp2_cheb~, hp3_cheb~, hp4_cheb~, hp5_cheb~, hp6_cheb~, hp7_cheb~, +hp8_cheb~, hp9_cheb~, hp10_cheb~ + highpass 2.3.4.5.6.7.8.9.10.order with chebyshev characteristic +hp2_bess~, hp3_bess~, hp4_bess~, hp5_bess~, hp6_bess~, hp7_bess~, +hp8_bess~, hp9_bess~, hp10_bess~ + highpass 2.3.4.5.6.7.8.9.10.order with bessel characteristic +hp2_crit~, hp3_crit~, hp4_crit~, hp5_crit~, hp6_crit~, hp7_crit~, +hp8_crit~, hp9_crit~, hp10_crit~ + highpass 2.3.4.5.6.7.8.9.10.order with critical damping +lp2_butt~, lp3_butt~, lp4_butt~, lp5_butt~, lp6_butt~, lp7_butt~, +lp8_butt~, lp9_butt~, lp10_butt~ + lowpass 2.3.4.5.6.7.8.9.10.order with butterworth characteristic +lp2_cheb~, lp3_cheb~, lp4_cheb~, lp5_cheb~, lp6_cheb~, lp7_cheb~, +lp8_cheb~, lp9_cheb~, lp10_cheb~ + lowpass 2.3.4.5.6.7.8.9.10.order with chebyshev characteristic +lp2_bess~, lp3_bess~, lp4_bess~, lp5_bess~, lp6_bess~, lp7_bess~, +lp8_bess~, lp9_bess~, lp10_bess~ + lowpass 2.3.4.5.6.7.8.9.10.order with bessel characteristic +lp2_crit~, lp3_crit~, lp4_crit~, lp5_crit~, lp6_crit~, lp7_crit~, +lp8_crit~, lp9_crit~, lp10_crit~ + lowpass 2.3.4.5.6.7.8.9.10.order with critical damping + +vcf_hp2~, vcf_hp4~, vcf_hp6~, vcf_hp8~ + highpass 2.4.6.8.order with freq- and Q-signal-inlets +vcf_lp2~, vcf_lp4~, vcf_lp6~, vcf_lp8~ + lowpass 2.4.6.8.order with freq- and Q-signal-inlets +vcf_bp2~, vcf_bp4~, vcf_bp6~, vcf_bp8~ + bandpass 2.4.6.8.order with freq- and Q-signal-inlets +vcf_rbp2~, vcf_rbp4~, vcf_rbp6~, vcf_rbp8~ + resonance-bandpass 2.4.6.8.order with freq- and Q-signal-inlets + +------------------------ arithmetic~ ---------------------------- +addl~ signal-addition with line~ +divl~ signal-divison with line~ +mull~ signal-multiplication with line~ +subl~ signal-subtraction with line~ + +------------------------- converter~ ---------------------------- +prvu~ peak and rms VU-meter interface +pvu~ peak VU-meter interface +rvu~ rms VU-meter interface +unsig~ signal to float converter + +------------------ t3~ - time-tagged-trigger -------------------- +-- inputmessages allow a sample-accurate access to signalshape -- +t3_sig~ time tagged trigger sig~ +t3_line~ time tagged trigger line~ + +--------------------------- misc~ ------------------------------- +fade~ fade-in fade-out shaper (need line~) +iem_blocksize~ blocksize of a window in samples +iem_samplerate~ samplerate of a window in Hertz +int_fract~ split signal-float to integer- and fractal-part +LFO_noise~ downsampled 2-point interpolated white noise +mp3play~ mp3 stereo player +peakenv~ peak envelope shaper +pink~ pink noise +round~ round signal-float to nearest integer +sin_phase~ output phase-difference of 2 sinewaves in samples + +========================= control ============================== + +------------- gui (included into millers pd) -------------------- + +bng bang, display and generate a bang-message +cnv canvas, colored background and text +hdl horizontal dial, for multiplex usage +hradio horizontal radiobutton, only float in/out +hsl horizontal slider +nbx numberbox, the second +tgl 2 state toggle +vdl vertical dial, for multiplex usage +vradio vertical radiobutton, only float in/out +vsl vertical slider +vu vu-meter, display rms- + peak-level in dB + +--------------------- float operating ------------------------- +1p1z float-message-filter 1.order +db2v db to rms +dbtofad midi-db to fader-characteristic +fadtodb fader-characteristic to midi-db +fadtorms fader-characteristic to rms +rmstofad rms to fader-characteristic +round_zero round numbers near zero to zero +speedlim reduce speed of a numeric stream +split3 part a numeric stream into 3 ways +split part a numeric stream into 2 ways (like moses) +transf_fader partial linear characteristic diagram (like table) +v2db rms to db +wrap wraparound + +-------------------- symbol operating ------------------------- +mergefilename merge a list of symbols together +splitfilename divide a symbol into 2 parts +stripfilename strip n characters of a symbol +unsymbol convert a symbol- to a anything-message + +------------------- anything operating ------------------------ +any store and recall any message (like f, or symbol) +iem_append append a message to any messages (obsolete: merge_any) +iem_prepend prepend a message to any messages (abbr. pp or prepend) + +-------------------------- init ------------------------------- +default replace initial-argument, if it is zero +dollarg receive parent initial-arguments (abbr. $n) +dsp control audio-engine, calculate dsp-performance (aka. dsp~) +float24 store a 24-bit accurate float-number +init initialize a message via loadbang (abbr. ii) +once any message pass through only the first time + +------------------------- counter ----------------------------- +exp_inc exponential increment counter (bang triggered) +for++ incremental counter (triggered by internal metro) +modulo_counter endless loop counter (bang triggered) + +-------------------------- misc ------------------------------- +add2_comma add a comma-separated message to a messagebox +bpe break point envelope controller +f2note frequency to midi+cents+note +gate interruptible message connection (like spigot) +iem_i_route variation of route (abbr. iiroute) +iem_receive catch "sent" messages (receive-name-input) (abbr. iem_r) +iem_route improvement of route +iem_sel_any control a message-box with multiple content +iem_send send messages to named object (send-name-input)(ab. iem_s) +pre_inlet output an identifier-message and then the incoming message +prepend_ascii output an identifier-message and then the incoming message +soundfile_info output header-info of a wav-file +toggle_mess control a message-box with multiple content (abbr. tm) + +------------------- parameter handling ------------------------ +iem_pbank_csv parameter memory manager (csv-format) (like textfile) +list2send array of send-objects +receive2list array of receive-objects + +--------------- t3 - time-tagged-trigger --------------------- +----------- a time-tag is prepended to each message ----------- +----- so these objects allow a sample-accurate access to ------ +---------- the signal-objects t3_sig~ and t3_line~ ------------ +t3_bpe time tagged trigger break point envelope +t3_delay time tagged trigger delay +t3_metro time tagged trigger metronom +t3_timer time tagged trigger timer + +-------------- obsolete --------------------------------------- +post_netreceive +pre_netsend + diff --git a/iemhelp/7_guis-INTRO.pd b/iemhelp/7_guis-INTRO.pd new file mode 100644 index 0000000..1e4c821 --- /dev/null +++ b/iemhelp/7_guis-INTRO.pd @@ -0,0 +1,813 @@ +#N canvas 153 19 564 568 10; +#X obj -4 -4 my_canvas 15 600 700 empty empty gui-INTRO 237 20 2 14 +-261819 -143491; +#X text 101 4 bng; +#X obj 456 313 vslider 15 128 0 127 0 0 empty empty default_15x128 +8 -8 0 8 -262144 -1 -1 0 1; +#X obj 354 42 toggle 100 1 empty empty 100_pix 8 -8 0 8 -250685 -24198 +-42246 1 1; +#X obj 57 251 hslider 128 15 0 127 0 0 empty empty default_128x15 8 +-8 0 8 -262144 -1 -1 0 1; +#X obj 78 226 hslider 20 8 0 19 0 0 empty empty min_20x8 8 -8 0 8 -262144 +-1 -1 0 1; +#X obj 478 326 vslider 8 20 0 19 0 0 empty empty min_8x20 8 -8 0 8 +-262144 -1 -1 0 1; +#X obj 458 48 toggle 8 0 empty empty min_8 8 -8 0 8 -262144 -1 -1 0 +1; +#X obj 458 71 toggle 15 0 empty empty default_15 8 -8 0 8 -262144 -1 +-1 0 1; +#X obj 459 109 toggle 30 0 empty empty 30_pix 8 -8 0 8 -262144 -1 -1 +0 1; +#X obj 101 88 bng 30 250 50 0 empty empty 30_pix 8 -8 0 8 -262144 -1 +-1; +#X obj 412 304 vslider 30 250 0 249 0 1 empty empty 30x250 8 -8 0 8 +-184301 -42886 -42246 21800 1; +#X obj 7 271 hslider 251 30 0 250 0 1 empty empty 251x30 8 -8 0 8 -147456 +-1109 -66577 12500 1; +#X text 180 518 (c) musil@iem.kug.ac.at; +#X text 222 531 IEM KUG; +#X text 197 543 graz \, austria 2001; +#X obj 40 343 vu 25 200 empty empty 8 -8 0 8 -1 -99865 1; +#X obj 13 24 bng 75 5000 25 1 empty empty 75pix+init 8 -8 0 8 -262131 +-261458 -123526; +#X obj 100 376 vu 15 120 empty empty 8 -8 0 8 -66577 -1 1; +#X obj 186 375 vu 10 80 empty empty 8 -8 0 8 -66577 -1 1; +#X text 99 313 vu; +#N canvas 438 180 374 414 animate_vu 0; +#X obj 40 211 t f f; +#X obj 65 233 + 6; +#X obj 40 257 pack 0 0; +#X obj 78 94 toggle 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 +0 1; +#X obj 78 115 sel 0 1; +#X obj 78 74 metro 4000; +#X msg 100 137 30 3000; +#X msg 78 167 -130 3000; +#X obj 40 189 line -130 50; +#X obj 78 51 inlet; +#X obj 40 316 outlet; +#X obj 87 316 outlet; +#X obj 134 316 outlet; +#X connect 0 0 2 0; +#X connect 0 1 1 0; +#X connect 1 0 2 1; +#X connect 2 0 10 0; +#X connect 2 0 11 0; +#X connect 2 0 12 0; +#X connect 3 0 4 0; +#X connect 4 0 7 0; +#X connect 4 1 6 0; +#X connect 5 0 3 0; +#X connect 6 0 8 0; +#X connect 7 0 8 0; +#X connect 8 0 0 0; +#X connect 9 0 5 0; +#X restore 99 349 pd animate_vu; +#X obj 99 331 toggle 15 1 empty empty empty 8 -8 0 10 -262144 -1 -1 +1 1; +#X text 360 8 toggle = tgl; +#X text 68 198 hslider = hsl; +#X text 430 271 vslider = vsl; +#X obj 13 160 print initial_bang; +#X obj 21 118 bng 15 250 50 0 empty empty default_15 8 -8 0 8 -262144 +-1 -1; +#X obj 104 48 bng 8 250 50 0 empty empty min_8 8 -8 0 10 -262144 -1 +-1; +#X obj 21 137 print no_initial_bang; +#X obj 283 324 my_canvas 15 100 30 empty empty empty 20 12 2 20 -225271 +-66577; +#X obj 283 355 my_canvas 15 100 30 empty empty empty 20 12 2 20 -225280 +-66577; +#X obj 283 386 my_canvas 15 100 30 empty empty empty 20 12 2 20 -261681 +-66577; +#X obj 283 417 my_canvas 15 100 30 empty empty empty 20 12 2 20 -257472 +-66577; +#X obj 172 375 vu 10 80 empty empty 8 -8 0 8 -66577 -1 0; +#X obj 310 203 radiobut 15 1 1 8 empty empty default_8*15 8 -8 0 8 +-262144 -1 -1 2; +#X obj 254 223 radiobut 25 1 1 12 empty empty 12*25 8 -8 0 8 -1433 +-225280 -355 1; +#N canvas 179 78 690 573 nervous 0; +#X obj 10 23 toggle 55 1 empty start_nervously1 start_it 8 -8 0 10 +-260818 -1 -250685 0 1; +#X obj 131 141 bng 51 1200 50 0 empty nerv_bng bang 8 -8 0 10 -253378 +-137031 -222091; +#X obj 120 418 hslider 22 12 0 127 0 0 empty nerv_hsl h-slider 8 -8 +0 10 -71033 -66198 -128091 2100 1; +#X obj 448 140 toggle 11 1 empty nerv_tgl toggle 8 -8 0 10 -141355 +-82199 -51488 0 1; +#X obj 447 383 vslider 15 111 0 127 0 0 empty nerv_vsl v-slider 8 -8 +0 10 -150187 -73940 -248863 340 1; +#N canvas 135 99 382 469 control 0; +#X obj 19 21 inlet; +#X obj 19 50 t b f; +#X obj 19 153 del 900; +#X obj 19 212 del 900; +#X obj 19 93 del 100; +#X obj 19 283 del 900; +#X obj 33 125 f; +#X obj 33 180 f; +#X obj 33 245 f; +#X obj 33 309 f; +#N canvas 280 166 794 432 bng 0; +#X obj 114 260 - 0; +#X obj 148 258 f; +#X obj 147 222 t f b; +#X obj 79 122 random 56789; +#X obj 150 165 random 9876; +#X obj 47 236 - 0; +#X obj 81 234 f; +#X obj 80 198 t f b; +#X obj 150 192 % 50; +#X obj 79 145 % 50; +#X obj 64 289 pack 0 0; +#X obj 85 53 t b b b; +#X obj 234 368 pack 0 0 0; +#X obj 250 29 metro 2000; +#X obj 445 122 random 555666; +#X obj 445 168 + 8; +#X obj 445 145 % 120; +#X obj 84 32 metro 100; +#X obj 234 261 random 1.67772e+07; +#X obj 266 283 random 1.67772e+07; +#X obj 299 315 random 1.67772e+07; +#X obj 84 11 inlet; +#X msg 64 312 \; nerv_bng delta \$1 \$2; +#X msg 234 390 \; nerv_bng color \$1 \$2 \$3; +#X msg 445 192 \; nerv_bng size \$1; +#X msg 250 51 \; nerv_bng bang; +#X obj 234 340 * -1; +#X obj 266 316 * -1; +#X obj 299 342 * -1; +#X connect 0 0 10 1; +#X connect 1 0 0 1; +#X connect 2 0 1 1; +#X connect 2 0 0 0; +#X connect 2 1 1 0; +#X connect 3 0 9 0; +#X connect 4 0 8 0; +#X connect 5 0 10 0; +#X connect 6 0 5 1; +#X connect 7 0 6 1; +#X connect 7 0 5 0; +#X connect 7 1 6 0; +#X connect 8 0 2 0; +#X connect 9 0 7 0; +#X connect 10 0 22 0; +#X connect 11 0 3 0; +#X connect 11 0 14 0; +#X connect 11 0 18 0; +#X connect 11 1 4 0; +#X connect 11 1 19 0; +#X connect 11 2 20 0; +#X connect 12 0 23 0; +#X connect 13 0 25 0; +#X connect 14 0 16 0; +#X connect 15 0 24 0; +#X connect 16 0 15 0; +#X connect 17 0 11 0; +#X connect 18 0 26 0; +#X connect 19 0 27 0; +#X connect 20 0 28 0; +#X connect 21 0 17 0; +#X connect 21 0 13 0; +#X connect 26 0 12 0; +#X connect 27 0 12 1; +#X connect 28 0 12 2; +#X restore 114 143 pd bng; +#N canvas 139 89 794 432 tgl 0; +#X obj 114 260 - 0; +#X obj 148 258 f; +#X obj 147 222 t f b; +#X obj 79 122 random 56789; +#X obj 150 165 random 9876; +#X obj 47 236 - 0; +#X obj 81 234 f; +#X obj 80 198 t f b; +#X obj 150 192 % 50; +#X obj 79 145 % 50; +#X obj 64 289 pack 0 0; +#X obj 85 53 t b b b; +#X obj 445 122 random 555666; +#X obj 445 168 + 8; +#X obj 445 144 % 120; +#X obj 85 31 metro 100; +#X obj 264 28 metro 1000; +#X obj 85 10 inlet; +#X msg 64 312 \; nerv_tgl delta \$1 \$2; +#X msg 226 322 \; nerv_tgl color \$1 \$2 \$3; +#X msg 445 192 \; nerv_tgl size \$1; +#X msg 264 51 \; nerv_tgl bang; +#X obj 226 298 pack 0 0 0; +#X obj 226 191 random 1.67772e+07; +#X obj 258 213 random 1.67772e+07; +#X obj 291 245 random 1.67772e+07; +#X obj 226 270 * -1; +#X obj 258 246 * -1; +#X obj 291 272 * -1; +#X connect 0 0 10 1; +#X connect 1 0 0 1; +#X connect 2 0 1 1; +#X connect 2 0 0 0; +#X connect 2 1 1 0; +#X connect 3 0 9 0; +#X connect 4 0 8 0; +#X connect 5 0 10 0; +#X connect 6 0 5 1; +#X connect 7 0 6 1; +#X connect 7 0 5 0; +#X connect 7 1 6 0; +#X connect 8 0 2 0; +#X connect 9 0 7 0; +#X connect 10 0 18 0; +#X connect 11 0 3 0; +#X connect 11 0 12 0; +#X connect 11 0 23 0; +#X connect 11 1 4 0; +#X connect 11 1 24 0; +#X connect 11 2 25 0; +#X connect 12 0 14 0; +#X connect 13 0 20 0; +#X connect 14 0 13 0; +#X connect 15 0 11 0; +#X connect 16 0 21 0; +#X connect 17 0 15 0; +#X connect 17 0 16 0; +#X connect 22 0 19 0; +#X connect 23 0 26 0; +#X connect 24 0 27 0; +#X connect 25 0 28 0; +#X connect 26 0 22 0; +#X connect 27 0 22 1; +#X connect 28 0 22 2; +#X restore 114 198 pd tgl; +#N canvas 322 99 794 432 hsl 0; +#X obj 114 260 - 0; +#X obj 148 258 f; +#X obj 147 222 t f b; +#X obj 79 122 random 56789; +#X obj 150 165 random 9876; +#X obj 47 236 - 0; +#X obj 81 234 f; +#X obj 80 198 t f b; +#X obj 150 192 % 50; +#X obj 79 145 % 50; +#X obj 64 289 pack 0 0; +#X obj 85 53 t b b b; +#X obj 445 122 random 555666; +#X obj 560 188 + 8; +#X obj 560 128 random 773322; +#X obj 445 208 pack 0 0; +#X obj 84 32 metro 100; +#X obj 561 155 % 30; +#X obj 445 183 + 20; +#X obj 446 149 % 110; +#X obj 254 305 metro 1000; +#X obj 254 327 random 846352; +#X obj 254 350 % 130; +#X obj 84 11 inlet; +#X msg 64 321 \; nerv_hsl delta \$1 \$2; +#X msg 254 373 \; nerv_hsl set \$1; +#X msg 445 231 \; nerv_hsl size \$1 \$2; +#X obj 245 202 pack 0 0 0; +#X obj 245 95 random 1.67772e+07; +#X obj 277 117 random 1.67772e+07; +#X obj 310 149 random 1.67772e+07; +#X obj 245 174 * -1; +#X obj 277 150 * -1; +#X obj 310 176 * -1; +#X msg 245 229 \; nerv_hsl color \$1 \$2 \$3; +#X connect 0 0 10 1; +#X connect 1 0 0 1; +#X connect 2 0 1 1; +#X connect 2 0 0 0; +#X connect 2 1 1 0; +#X connect 3 0 9 0; +#X connect 4 0 8 0; +#X connect 5 0 10 0; +#X connect 6 0 5 1; +#X connect 7 0 6 1; +#X connect 7 0 5 0; +#X connect 7 1 6 0; +#X connect 8 0 2 0; +#X connect 9 0 7 0; +#X connect 10 0 24 0; +#X connect 11 0 3 0; +#X connect 11 0 12 0; +#X connect 11 0 28 0; +#X connect 11 1 4 0; +#X connect 11 1 14 0; +#X connect 11 1 29 0; +#X connect 11 2 30 0; +#X connect 12 0 19 0; +#X connect 13 0 15 1; +#X connect 14 0 17 0; +#X connect 15 0 26 0; +#X connect 16 0 11 0; +#X connect 17 0 13 0; +#X connect 18 0 15 0; +#X connect 18 0 22 1; +#X connect 19 0 18 0; +#X connect 20 0 21 0; +#X connect 21 0 22 0; +#X connect 22 0 25 0; +#X connect 23 0 16 0; +#X connect 23 0 20 0; +#X connect 27 0 34 0; +#X connect 28 0 31 0; +#X connect 29 0 32 0; +#X connect 30 0 33 0; +#X connect 31 0 27 0; +#X connect 32 0 27 1; +#X connect 33 0 27 2; +#X restore 112 263 pd hsl; +#N canvas 148 132 794 432 vsl 0; +#X obj 114 260 - 0; +#X obj 148 258 f; +#X obj 147 222 t f b; +#X obj 79 122 random 56789; +#X obj 150 165 random 9876; +#X obj 47 236 - 0; +#X obj 81 234 f; +#X obj 80 198 t f b; +#X obj 150 192 % 50; +#X obj 79 145 % 50; +#X obj 64 289 pack 0 0; +#X obj 85 53 t b b b; +#X obj 445 122 random 555666; +#X obj 560 128 random 773322; +#X obj 445 208 pack 0 0; +#X obj 84 32 metro 100; +#X obj 241 299 metro 1000; +#X obj 240 325 random 846352; +#X obj 241 352 % 130; +#X obj 561 155 % 110; +#X obj 560 188 + 20; +#X obj 446 149 % 30; +#X obj 445 183 + 3; +#X obj 84 11 inlet; +#X msg 239 227 \; nerv_vsl color \$1 \$2 \$3; +#X msg 445 231 \; nerv_vsl size \$1 \$2; +#X msg 64 310 \; nerv_vsl delta \$1 \$2; +#X msg 241 376 \; nerv_vsl set \$1; +#X obj 239 203 pack 0 0 0; +#X obj 239 96 random 1.67772e+07; +#X obj 271 118 random 1.67772e+07; +#X obj 304 150 random 1.67772e+07; +#X obj 239 175 * -1; +#X obj 271 151 * -1; +#X obj 304 177 * -1; +#X connect 0 0 10 1; +#X connect 1 0 0 1; +#X connect 2 0 1 1; +#X connect 2 0 0 0; +#X connect 2 1 1 0; +#X connect 3 0 9 0; +#X connect 4 0 8 0; +#X connect 5 0 10 0; +#X connect 6 0 5 1; +#X connect 7 0 6 1; +#X connect 7 0 5 0; +#X connect 7 1 6 0; +#X connect 8 0 2 0; +#X connect 9 0 7 0; +#X connect 10 0 26 0; +#X connect 11 0 3 0; +#X connect 11 0 12 0; +#X connect 11 0 29 0; +#X connect 11 1 4 0; +#X connect 11 1 13 0; +#X connect 11 1 30 0; +#X connect 11 2 31 0; +#X connect 12 0 21 0; +#X connect 13 0 19 0; +#X connect 14 0 25 0; +#X connect 15 0 11 0; +#X connect 16 0 17 0; +#X connect 17 0 18 0; +#X connect 18 0 27 0; +#X connect 19 0 20 0; +#X connect 20 0 14 1; +#X connect 20 0 18 1; +#X connect 21 0 22 0; +#X connect 22 0 14 0; +#X connect 23 0 15 0; +#X connect 23 0 16 0; +#X connect 28 0 24 0; +#X connect 29 0 32 0; +#X connect 30 0 33 0; +#X connect 31 0 34 0; +#X connect 32 0 28 0; +#X connect 33 0 28 1; +#X connect 34 0 28 2; +#X restore 113 327 pd vsl; +#X connect 0 0 1 0; +#X connect 1 0 4 0; +#X connect 1 1 6 1; +#X connect 1 1 7 1; +#X connect 1 1 8 1; +#X connect 1 1 9 1; +#X connect 2 0 3 0; +#X connect 2 0 7 0; +#X connect 3 0 5 0; +#X connect 3 0 8 0; +#X connect 4 0 2 0; +#X connect 4 0 6 0; +#X connect 5 0 9 0; +#X connect 6 0 10 0; +#X connect 7 0 11 0; +#X connect 8 0 12 0; +#X connect 9 0 13 0; +#X restore 10 85 pd control; +#X connect 0 0 5 0; +#X restore 295 424 pd nervous; +#X floatatom 239 84 4 0 0; +#N canvas 226 38 811 519 properties 0; +#X obj 2 1 my_canvas 8 870 590 empty empty about_gui_properties 290 +20 2 18 -225280 -1109; +#X text 12 62 "selectable dimensions(pix): size:" = square-size of +the; +#X text 10 35 "dimensions(pix): size:" = square-size of the gui-objects +; +#X text 10 48 "dimensions(pix)(pix): width: height:" = width & height +; +#X text 11 177 "visible_rectangle(pix)(pix): width: height:" = width +&; +#X text 11 104 "flash-time(ms)(ms): intrrpt:" = flash-interrupt-time +; +#X text 411 62 selectable top-left corner of my_canvas in pixels.; +#X text 415 35 in pixels.; +#X text 11 76 "flash-time(ms)(ms): hold:" = flash-hold-time in msec +=; +#X text 405 76 duration of activity \, if a bang-object was activated +; +#X text 400 48 of the rectangular gui-object in pixels.; +#X text 402 177 height of a visible \, deactivated rectangle in pixels. +; +#X text 14 224 "new&old" or "new-only" = the radiobutton-object changes +its; +#X text 441 224 state in 2 ways:; +#X text 198 237 "new&old"-mode: output sends previous state off \, +current; +#X text 596 237 state on \;; +#X text 197 250 "new-only"-mode: output sends only current state on. +; +#X text 14 280 "steady on click" or "jump on click" = the 2 slider-objects +; +#X text 481 322 immediately to new mouse-position \,; +#X text 12 413 "label: font: fontsize:" = font-properties of label. +; +#X text 15 429 "colors:" = a click on radiobuttons "background:" \, +; +#X text 370 429 "front-color:" or "label-color:" activates the color-fields +; +#X text 174 193 if "init"-mode is selected \, the object displays and +puts; +#X text 15 266 "number:" = number of buttons of a radiobutton.; +#X text 205 89 by any message-event or by a mouse-click.; +#X text 388 104 in msec = duration of inactivity \, if an already; +#X text 205 117 activated bang is activated once more.; +#X text 11 132 "output-range: left: right:" = hslider-bounds; +#X text 332 132 for input- as well as output-values.; +#X text 332 146 for input- as well as output-values.; +#X text 11 146 "output-range: bottom: top:" = vslider-bounds; +#X text 12 193 "init" or "no init" =; +#X text 571 193 out its previously saved value.; +#X text 174 208 if "no init"-mode is selected \, nothing will happen. +; +#X text 433 280 react to mouse-click in 2 ways:; +#X text 201 294 "steady on click"-mode: slider-knob stays in position +\,; +#X text 225 307 mouse and knob will move parallel \;; +#X text 200 322 "jump on click"-mode: slider-knob jumps; +#X text 224 338 positions of mouse and knob will be identical \;; +#X text 402 353 receive-object with the same send-symbol-name.; +#X text 11 368 "receive-symbol:" = a send-object with the same; +#X text 11 353 "send-symbol:" = an output-message can be received by +a; +#X text 347 368 symbol-name can send an input-message to the gui-object. +; +#X text 13 383 "label: name:" = visible name of a gui-object \;; +#X text 343 383 it will be moved together with the gui-object.; +#X text 12 397 "label: x_off: y_off:" = coordinates of the label in +; +#X text 382 397 relation to top-left corner of gui-object.; +#X text 207 444 on the right side which display the current color of +the; +#X text 605 444 item \;; +#X text 11 161 "non-zero-value: value:" = toggle has 2; +#X text 292 161 value-states: zero and this value.; +#X text 208 460 to select a different color \, click on one of the +30 small; +#X text 614 459 preset-color-buttons \;; +#X text 208 475 each color (background \, front \, label) can be tuned +by its; +#X text 235 490 RGB-values (0 .. 252 \, step 4) and a click on the +set-button.; +#X restore 287 361 pd properties; +#N canvas 146 190 460 120 move 0; +#X obj 0 0 my_canvas 8 460 120 empty empty how_to_move_gui_objects +100 18 2 20 -225271 -42246; +#X text 11 43 Select a gui-object \, then navigate the object by using +the 4 direction-keys: UP \, DOWN \, LEFT or RIGHT.; +#X text 12 70 If you press the SHIFT-Key too \, the object will move +10 times faster.; +#X restore 308 331 pd move; +#N canvas 151 38 522 451 dollar 0; +#X obj 0 0 my_canvas 8 560 160 empty empty the_dollar_thing 100 18 +2 20 -261681 -123526; +#X text 10 39 if you want to send to \, or to receive from gui-objects +; +#X text 394 39 in abstractions \,; +#X text 36 52 you have to write into the property-entry:; +#X text 44 67 #1-label (instead of \$1-label).; +#X text 25 103 type #0-uniquelabel (instead of \$0-uniquelabel).; +#X text 9 88 if you want a unique send-receive-symbolname:; +#X restore 299 391 pd dollar; +#X obj 283 448 my_canvas 15 100 30 empty empty empty 20 12 2 20 -228992 +-66577; +#N canvas 177 21 730 638 messages 0; +#X obj 1 1 my_canvas 8 870 640 empty empty about_gui_messages 200 20 +2 18 -228992 -355; +#X text 366 99 in pixels.; +#X text 9 84 "size 15 128" = change width & height; +#X text 9 159 "flashtime 50 600" = change flash-interrupt- and flash-hold +; +#X text 424 160 -time of bng-object.; +#X text 9 174 "pos 150 170" = change the x-y-position of the top-left +; +#X text 400 173 corner of a gui-object in pixels \;; +#X text 139 188 "pos 0 0" is the top-left corner of your window \; +; +#X text 143 204 the positive directions of x- and y-axes are right +and down.; +#X text 12 415 "receive togui" = change receive-name of object.; +#X text 12 431 "label its_me" = change label-text of object.; +#X text 12 446 "label_pos 20 8" = change offset-coordinates of label-text. +; +#X text 12 461 "label_font 0 10" = change font and fontsize of label-text. +; +#X text 12 340 "steady 1" change slider-knob-behaviour on mouse-click. +; +#X text 13 522 "lin" = change scale-mode of slider to linear.; +#X text 14 537 "log" = change scale-mode of slider to logarithmical. +; +#X text 333 355 to output only the new state.; +#X text 273 84 of sliders and vu in pixels.; +#X text 12 477 "init 1" = change initial loadbang-mode of gui-objects +; +#X text 12 400 "send fromgui" = change send-name of gui-objects \, +; +#X text 12 325 "number 10" = change number of buttons of radio-button. +; +#X text 9 128 "range 0.1 10.0" = change slider-boundaries for; +#X text 344 128 input- as well as output-values.; +#X text 13 492 "set 64" = change only the inner state and display of +gui-; +#X text 11 33 all gui-objects (bng \, hsl \, vsl \, tgl \, rdb \, cnv +and vu); +#X text 9 113 "vis_size 800 600" = change width & height; +#X text 309 113 of visual rectangle of my_canvas in pixels.; +#X text 359 400 except vu and my_canvas.; +#X text 395 477 except vu and cnv.; +#X text 421 492 objects \, except bng and cnv \;; +#X text 85 47 understand input-messages which change their properties. +; +#X text 11 222 "delta 15 17" = move the gui-object in relation to its +; +#X text 397 222 current position (in pixels).; +#X text 333 371 to first release the previous button \,; +#X text 144 385 then output the state of the new button.; +#X text 12 371 "double_change" change radio-button-behaviour; +#X text 12 355 "single_change" change radio-button-behaviour; +#X text 147 507 no output will result.; +#X text 9 99 "size 15" = change square-size of rdb \, bng and tgl; +#X text 9 143 "nonzero 127.0" = change the nonzero-value of toggle. +; +#X text 15 552 "get_pos" = if my_canvas has a receive-name and a send-name +; +#X text 434 552 and you send the; +#X text 272 237 front- and label-color of object with one of 30 presets. +; +#X text 277 252 label-color of vu and my_canvas with one of 30 presets. +; +#X text 504 282 (0 .. 255); +#X text 558 568 coordinates.; +#X text 149 568 message "get_pos" to it \, you receive the current +x- and y-; +#X text 85 59 except cnv has no inlet \, so you have to send messages +; +#X text 85 71 to its receive-label (edit properties).; +#X text 11 237 "color 0 22 22" = change background- \,; +#X text 11 252 "color 0 22" = change background- and; +#X text 13 268 "color -1.67772e+07 (-1) -1" = change background- \, +; +#X text 364 267 (front-) and label-color of object with RGB-values. +; +#X text 149 283 the RGB-value will be calculated: -65536*RED-value +; +#X text 592 309 - 1; +#X text 422 309 - BLUE-value (0 .. 255); +#X text 394 296 - 256*GREEN-value (0 .. 255); +#X restore 294 453 pd messages; +#X obj 225 259 my_canvas 1 350 1 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 4 308 my_canvas 1 268 1 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 4 186 my_canvas 1 220 1 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 225 151 my_canvas 1 350 1 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 271 261 my_canvas 1 1 48 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 232 308 my_canvas 1 1 200 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 339 3 my_canvas 1 1 149 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 398 260 my_canvas 1 1 310 empty empty empty 20 12 2 20 -258699 +-66577; +#X obj 225 3 my_canvas 1 1 255 empty empty empty 20 12 2 20 -258699 +-66577; +#X floatatom 276 84 4 0 0; +#X obj 239 43 toggle 15 0 empty dsp_tgl empty 20 8 0 10 -370 -262144 +-1 0 1; +#N canvas 145 31 380 506 dsp 0; +#X msg 31 88 \; pd dsp \$1; +#X obj 20 199 cputime; +#X obj 20 178 t b b; +#X text 15 11 dsp; +#X text 48 439 (c) musil@iem.kug.ac.at; +#X text 90 452 IEM KUG; +#X text 59 65 1/0 = ON/OFF; +#X text 97 313 CPU-load; +#X obj 62 126 loadbang; +#X obj 20 126 sel 1; +#X text 65 464 graz \, austria 2001; +#X text 64 12 turn dsp-kernel on & off \,; +#X obj 20 240 t f f; +#X text 65 408 average; +#X text 177 405 peak; +#X obj 211 154 f; +#X obj 146 179 > -1; +#X obj 169 155 f -1; +#X obj 179 91 t f b f; +#X obj 146 204 sel 1; +#X obj 192 132 f -1; +#X obj 20 154 metro 500; +#X obj 20 220 * 0.2; +#X text 74 37 -dsp-load in %; +#X text 65 24 measure average- and peak-; +#X obj 20 315 * 100; +#X obj 20 360 int; +#X obj 20 338 + 0.499; +#X obj 20 383 * 0.01; +#X obj 246 207 r pd; +#X obj 246 231 route dsp; +#X text 245 318 to toggle input; +#X msg 246 283 \; dsp_tgl set \$1; +#X obj 247 341 r dsp_tgl; +#X obj 246 257 route float; +#X obj 146 227 del 3990; +#N canvas 305 120 336 257 once 0; +#X text 7 204 (c) musil@iem.kug.ac.at; +#X text 49 214 IEM KUG; +#X text 24 223 graz \, austria 2001; +#X text 8 6 once; +#X obj 19 150 bang; +#X obj 56 65 f 0; +#X text 59 7 only the first message passes through; +#X obj 19 127 t b a; +#X obj 19 100 spigot; +#X obj 119 63 f 1; +#X obj 119 41 loadbang; +#X obj 19 40 inlet; +#X obj 49 183 outlet; +#X connect 4 0 5 0; +#X connect 5 0 8 1; +#X connect 7 0 4 0; +#X connect 7 1 12 0; +#X connect 8 0 7 0; +#X connect 9 0 8 1; +#X connect 10 0 9 0; +#X connect 11 0 8 0; +#X restore 111 264 pd once; +#N canvas 297 130 530 376 1p1z 0; +#X text 7 315 (c) musil@iem.kug.ac.at; +#X text 52 325 IEM KUG; +#X obj 22 231 +; +#X text 8 6 1p1z; +#X text 24 334 graz \, austria 2001; +#X text 104 22 y[n] = a0*x[n] + a1*x[n-1] + b1*y[n-1]; +#X text 169 53 a0; +#X text 25 34 x[n]; +#X text 24 280 y[n]; +#X text 209 53 a1; +#X text 249 53 b1; +#X obj 284 52 loadbang; +#X text 64 102 x[n-1]; +#X obj 40 205 +; +#X obj 22 133 *; +#X obj 40 160 *; +#X obj 59 182 *; +#X text 82 143 y[n-1]; +#X obj 284 72 t b b b; +#X obj 40 98 f; +#X obj 59 138 f; +#X obj 22 71 t f b b; +#X text 350 63 x[n-1]init; +#X text 429 102 y[n-1]init; +#X text 147 202 1.arg: <float> a0; +#X text 147 213 2.arg: <float> a1; +#X text 147 224 3.arg: <float> b1; +#X text 63 5 <float> control-IIR-filter 1.order; +#X obj 162 115 f 0.1; +#X obj 202 142 f 0; +#X obj 242 164 f 0.9; +#X obj 22 49 inlet; +#X obj 162 71 inlet; +#X obj 202 71 inlet; +#X obj 242 71 inlet; +#X obj 356 80 inlet; +#X obj 431 120 inlet; +#X obj 22 264 outlet; +#X connect 2 0 20 1; +#X connect 2 0 37 0; +#X connect 11 0 18 0; +#X connect 13 0 2 1; +#X connect 14 0 2 0; +#X connect 15 0 13 0; +#X connect 16 0 13 1; +#X connect 18 0 28 0; +#X connect 18 1 29 0; +#X connect 18 2 30 0; +#X connect 19 0 15 0; +#X connect 20 0 16 0; +#X connect 21 0 14 0; +#X connect 21 0 19 1; +#X connect 21 1 19 0; +#X connect 21 2 20 0; +#X connect 28 0 14 1; +#X connect 29 0 15 1; +#X connect 30 0 16 1; +#X connect 31 0 21 0; +#X connect 32 0 28 0; +#X connect 33 0 29 0; +#X connect 34 0 30 0; +#X connect 35 0 19 1; +#X connect 36 0 20 1; +#X restore 20 289 pd 1p1z 0.1 0 0.9; +#X obj 20 65 inlet; +#X obj 20 406 outlet; +#X obj 211 405 outlet; +#X connect 1 0 22 0; +#X connect 2 0 1 0; +#X connect 2 1 1 1; +#X connect 8 0 21 0; +#X connect 9 0 21 0; +#X connect 12 0 37 0; +#X connect 15 0 17 1; +#X connect 15 0 40 0; +#X connect 16 0 19 0; +#X connect 17 0 16 1; +#X connect 18 0 16 0; +#X connect 18 1 17 0; +#X connect 18 2 15 1; +#X connect 19 0 15 0; +#X connect 19 0 35 0; +#X connect 20 0 17 1; +#X connect 21 0 2 0; +#X connect 22 0 12 0; +#X connect 22 0 18 0; +#X connect 25 0 27 0; +#X connect 26 0 28 0; +#X connect 27 0 26 0; +#X connect 28 0 39 0; +#X connect 29 0 30 0; +#X connect 30 0 34 0; +#X connect 34 0 32 0; +#X connect 35 0 20 0; +#X connect 37 0 25 0; +#X connect 38 0 0 0; +#X connect 38 0 9 0; +#X restore 239 63 pd dsp; +#X text 238 99 mean; +#X text 279 100 peak; +#X text 289 63 % cpu; +#X text 283 305 my_canvas = cnv; +#X text 312 172 radiobutton = rdb; +#X text 271 350 R; +#X text 270 370 E; +#X text 270 389 A; +#X text 270 409 D; +#X text 270 428 M; +#X text 269 447 E; +#X connect 17 0 26 0; +#X connect 21 0 18 0; +#X connect 21 0 16 0; +#X connect 21 1 34 0; +#X connect 21 2 19 0; +#X connect 22 0 21 0; +#X connect 27 0 29 0; +#X connect 54 0 55 0; +#X connect 55 0 38 0; +#X connect 55 1 53 0; diff --git a/iemhelp/all_guis-INTRO.pd b/iemhelp/all_guis-INTRO.pd new file mode 100644 index 0000000..cc3fe5c --- /dev/null +++ b/iemhelp/all_guis-INTRO.pd @@ -0,0 +1,19 @@ +#N canvas 254 125 455 353 10; +#X obj 10 6 cnv 15 400 300 empty empty Gui_Gruppe 20 12 2 14 -216636 +-42246 0; +#X obj 38 76 bng 25 250 50 0 bang bang bang 0 -6 192 8 -225271 -42246 +-1; +#X obj 86 72 tgl 35 0 toggle toggle toggle 0 -6 192 8 -225280 -1109 +-1 0 1; +#X obj 142 78 nbx 5 14 0.01 10 1 1 numbox numbox numbox 0 -6 192 10 +-228992 -355 -1 0.588209 256; +#X obj 286 40 vsl 15 128 0 127 0 0 vslider vslider vslider 0 -8 192 +8 -195568 -33289 -1 3700 1; +#X obj 26 195 hsl 128 15 0 127 0 0 hslider hslider hslider -2 -6 192 +8 -261689 -143491 -1 2600 1; +#X obj 227 39 vradio 15 1 0 8 vdial vdial vdial 0 -6 192 8 -261681 +-90881 -1 1; +#X obj 26 150 hradio 15 1 0 8 hdial hdial hdial 0 -6 192 8 -262131 +-123526 -1 1; +#X obj 352 46 vu 15 120 vu vu -1 -8 64 8 -66577 -1 1 0; +#X msg 340 263 \; vu -15 -3; diff --git a/iemhelp/all_guis-INTRO.txt b/iemhelp/all_guis-INTRO.txt new file mode 100644 index 0000000..7d525ba --- /dev/null +++ b/iemhelp/all_guis-INTRO.txt @@ -0,0 +1,123 @@ +HOW TO MOVE A GUI-OBJECT:
+
+Select a gui-object , then navigate the object by using the
+4 direction-keys: UP , DOWN , LEFT or RIGHT.
+If you press the SHIFT-Key too , the object will move 10 times faster.
+
+
+PROPERTIES-DIALOG-WINDOW:
+
+"dimensions(pix): size:" = square-size of the gui-objects in pixels.
+"dimensions(pix)(pix): width: height:" = width & height of the rectangular
+ gui-object in pixels.
+"selectable dimensions(pix): size:" = square-size of the selectable top-left
+ corner of my_canvas in pixels.
+"flash-time(ms)(ms): hold:" = flash-hold-time in msec = duration of activity,
+ if a bang-object was activated by any message-event
+ or by a mouse-click.
+"flash-time(ms)(ms): intrrpt:" = flash-interrupt-time in msec = duration
+ of inactivity , if an already activated bang is activated
+ once more.
+"output-range: left: right:" = hslider-bounds for input- as well as
+ output-values.
+"output-range: bottom: top:" = vslider-bounds for input- as well as
+ output-values.
+"non-zero-value: value:" = toggle has 2 value-states: zero and this value.
+"visible_rectangle(pix)(pix): width: height:" = width & height of a visible,
+ deactivated rectangle in pixels.
+"init" or "no init" = if "init"-mode is selected , the object displays and puts
+ out its previously saved value.
+ if "no init"-mode is selected, nothing will happen.
+"new&old" or "new-only" = the radiobutton-object changes its state in 2 ways:
+ "new&old"-mode: output sends previous state off, current state on;
+ "new-only"-mode: output sends only current state on.
+"number:" = number of buttons of a radiobutton.
+"steady on click" or "jump on click" = the 2 slider-objects
+ react to mouse-click in 2 ways:
+ "steady on click"-mode: slider-knob stays in position,
+ mouse and knob will move parallel;
+ "jump on click"-mode: slider-knob jumps immediately to new
+ mouse-position, positions of mouse and knob will be identical.
+"send-symbol:" = an output-message can be received by a receive-object
+ with the same send-symbol-name.
+"receive-symbol:" = a send-object with the same symbol-name can send
+ an input-message to the gui-object.
+"label: name:" = visible name of a gui-object; it will be moved together with
+ the gui-object.
+"label: x_off: y_off:" = coordinates of the label in relation to top-left
+ corner of gui-object.
+"label: font: fontsize:" = font-properties of label.
+"colors:" = a click on radiobuttons "background:", "front-color:" or
+ "label-color:" activates the color-fields on the right side
+ which display the current color of the item;
+ to select a different color, click on one of the 30 small
+ preset-color-buttons;
+ each color (background, front, label) can be tuned by its
+ RGB-values (0 .. 252, step 4) and a click on the set-buttons.
+
+
+THE DOLLAR-THING:
+
+if you want to send to, or to receive from gui-objects in abstractions,
+ you have to write into the property-entry:
+ #1-label (instead of $1-label).
+
+if you want a unique send-receive-symbolname:
+ type #0-uniquelabel (instead of $0-uniquelabel).
+
+
+GUI-MESSAGES:
+
+all gui-objects (bng, hsl, vsl, tgl, rdb, cnv and vu)
+ understand input-messages which change their properties.
+ except cnv has no input, so you have to send messages
+ to its receive-label (edit properties).
+
+"size 15 128" = change width & height of sliders and vu in pixels.
+"size 15" = change square-size of rdb, bng and tgl in pixels.
+"vis_size 800 600" = change width & height of visual rectangle
+ of my_canvas in pixels.
+"range 0.1 10.0" = change slider-boundaries for
+ input- as well as output-values.
+"nonzero 127.0" = change the nonzero-value of toggle.
+"flashtime 50 600" = change flash-interrupt- and
+ flash-hold-time of bng-object.
+"pos 150 170" = change the x-y-position of the top-left
+ corner of a gui-object in pixels;
+ "pos 0 0" is the top-left corner of your window;
+ the positive directions of x- and y-axes are right and down.
+"delta 15 17" = move the gui-object in relation to its
+ current position (in pixels).
+"color 0 22 22" = change background-, front- and
+ label-color of object with one of 30 presets.
+"color 0 22" = change background- and label-color
+ of vu and my_canvas with one of 30 presets.
+"color -16777216 (-1) -1" = change background-, (front-)
+ and label-color of object with RGB-values.
+ the RGB-value will be calculated:
+ -65536*RED-value (0 .. 255)
+ - 256*GREEN-value (0 .. 255)
+ - BLUE-value (0 .. 255) - 1.
+"number 10" = change number of buttons of radio-button.
+"steady 1" change slider-knob-behaviour on mouse-click.
+"single_change" change radio-button-behaviour
+ to output only the new state.
+"double_change" change radio-button-behaviour
+ to first release the previous button,
+ then output the state of the new button.
+"send fromgui" = change send-name of gui-objects,
+ except vu and cnv.
+"receive togui" = change receive-name of object.
+"label its_me" = change label-text of object.
+"label_pos 20 8" = change offset-coordinates of label-text.
+"label_font 0 10" = change font and fontsize of label-text.
+"init 1" = change initial loadbang-mode of gui-objects
+ except vu and cnv.
+"set 64" = change only the inner state and display
+ of gui-objects, except bng and cnv;
+ no output will result.
+"lin" = change scale-mode of slider to linear.
+"log" = change scale-mode of slider to logarithmical.
+"get_pos" = if my_canvas has a receive-name and a send-name
+ and you send the message "get_pos" to it,
+ you receive the current x- and y-coordinates.
diff --git a/iemhelp/bng.pd b/iemhelp/bng.pd new file mode 100644 index 0000000..c529f5a --- /dev/null +++ b/iemhelp/bng.pd @@ -0,0 +1,265 @@ +#N canvas 158 62 445 357 10; +#X obj 1 1 cnv 8 100 60 empty empty bng 20 20 1 18 -262144 -1109 0 +; +#X text 10 288 (c) musil@iem.kug.ac.at; +#X text 52 301 IEM KUG; +#X text 27 313 graz \, austria 2001; +#X text 118 61 click properties to; +#X text 106 72 modify geometry \, colors \, etc.; +#X obj 64 257 print; +#N canvas 598 330 290 225 once 0; +#X msg 38 73 1; +#X obj 38 47 t b b; +#X obj 68 124 sel 0; +#X obj 68 103 f 0; +#X obj 38 24 inlet; +#X obj 68 154 outlet; +#X connect 0 0 3 1; +#X connect 1 0 0 0; +#X connect 1 1 3 0; +#X connect 2 0 5 0; +#X connect 3 0 2 0; +#X connect 4 0 1 0; +#X restore 64 234 pd once; +#X obj 36 258 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 3 130 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 36 173 bng 50 950 50 1 foo5_snd foo5_rcv big-bang 63 2 192 12 +-262131 -260818 -143491; +#X msg 36 53 33; +#X msg 50 75 -3.14; +#X msg 73 117 11 22 33.33; +#X msg 63 95 open xxx; +#X msg 96 142 funny; +#X text 101 11 gui-bang:; +#X obj 202 135 s foo5_rcv; +#X obj 202 155 r foo5_snd; +#X obj 202 115 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 202 175 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X msg 4 53 0; +#X text 125 205 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 124 216 for moving selected gui-objects; +#N canvas 425 170 699 530 edit 0; +#X obj 39 197 f; +#X msg 17 176 bang; +#X floatatom 55 175 3 63 88; +#X floatatom 90 197 3 0 37; +#X obj 39 220 pack 0 0; +#X text 117 197 y-label; +#X text 83 175 x-label; +#X floatatom 259 143 3 8 75; +#X text 286 143 size; +#X obj 279 236 f; +#X msg 257 215 bang; +#X floatatom 295 214 3 -10 10; +#X floatatom 330 236 3 -10 10; +#X obj 279 259 pack 0 0; +#X obj 304 348 f; +#X msg 282 327 bang; +#X floatatom 320 326 3 20 90; +#X floatatom 355 348 3 150 200; +#X obj 304 371 pack 0 0; +#X text 323 214 x-delta; +#X text 357 236 y-delta; +#X text 348 326 x-position; +#X text 382 348 y-position; +#X obj 59 312 f; +#X msg 37 291 bang; +#X floatatom 75 290 3 0 2; +#X floatatom 110 312 3 4 36; +#X obj 59 335 pack 0 0; +#X text 103 290 font; +#X text 139 312 height; +#X msg 36 399 \; foo5_rcv label blabla; +#X msg 59 360 \; foo5_rcv label_font \$1 \$2; +#X msg 39 245 \; foo5_rcv label_pos \$1 \$2; +#X msg 47 135 \; foo5_rcv color \$1 \$2 \$3; +#X msg 259 172 \; foo5_rcv size \$1; +#X msg 279 284 \; foo5_rcv delta \$1 \$2; +#X msg 304 396 \; foo5_rcv pos \$1 \$2; +#X msg 483 133 \; foo5_rcv receive foo5a_rcv; +#X msg 482 171 \; foo5a_rcv receive foo5_rcv; +#X msg 483 50 \; foo5_rcv send foo5a_snd; +#X msg 483 88 \; foo5_rcv send foo5_snd; +#X text 526 349 no init; +#X msg 505 368 \; foo5_rcv init 0; +#X msg 512 435 \; foo5_rcv init 1; +#X obj 493 260 f; +#X msg 471 239 bang; +#X floatatom 509 238 4 10 100; +#X floatatom 544 261 5 100 3000; +#X obj 493 283 pack 0 0; +#X msg 493 308 \; foo5_rcv flashtime \$1 \$2; +#X text 548 237 interrupt-time; +#X text 585 262 hold-time; +#X msg 36 435 \; foo5_rcv label big-bang; +#X text 502 417 init bang on loadbang; +#X text 519 221 flash-time:; +#X obj 47 114 pack 0 0 0; +#X obj 47 86 f; +#X msg 24 38 bang; +#X floatatom 63 36 3 0 29; +#X floatatom 79 56 3 0 29; +#X floatatom 112 72 3 0 29; +#X text 91 36 background; +#X text 106 56 front-color; +#X text 140 73 label-color; +#X msg 285 35 back; +#X msg 285 55 front; +#X msg 285 75 label; +#X msg 247 35 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 285 96 pd RGB_____________; +#X floatatom 327 65 3 0 255; +#X floatatom 370 65 3 0 255; +#X floatatom 413 66 3 0 255; +#X text 34 10 preset-colors; +#X text 296 7 RGB-colors; +#X text 327 47 red; +#X text 363 46 green; +#X text 411 46 blue; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 32 0; +#X connect 7 0 34 0; +#X connect 9 0 13 0; +#X connect 10 0 9 0; +#X connect 11 0 9 1; +#X connect 12 0 13 1; +#X connect 13 0 35 0; +#X connect 14 0 18 0; +#X connect 15 0 14 0; +#X connect 16 0 14 1; +#X connect 17 0 18 1; +#X connect 18 0 36 0; +#X connect 23 0 27 0; +#X connect 24 0 23 0; +#X connect 25 0 23 1; +#X connect 26 0 27 1; +#X connect 27 0 31 0; +#X connect 44 0 48 0; +#X connect 45 0 44 0; +#X connect 46 0 44 1; +#X connect 47 0 48 1; +#X connect 48 0 49 0; +#X connect 55 0 33 0; +#X connect 56 0 55 0; +#X connect 57 0 56 0; +#X connect 58 0 56 1; +#X connect 59 0 55 1; +#X connect 60 0 55 2; +#X connect 64 0 68 0; +#X connect 65 0 68 0; +#X connect 66 0 68 0; +#X connect 67 0 68 0; +#X connect 68 0 55 0; +#X connect 68 1 55 1; +#X connect 68 2 55 2; +#X connect 69 0 68 1; +#X connect 70 0 68 2; +#X connect 71 0 68 3; +#X restore 297 144 pd edit; +#X text 185 312 updated for Pd version 0.34; +#X obj 179 11 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 248 31 bng 15 250 50 0 aaa aaa empty 20 8 192 8 -262144 -1 -1 +; +#X connect 7 0 6 0; +#X connect 9 0 10 0; +#X connect 10 0 8 0; +#X connect 10 0 7 0; +#X connect 11 0 10 0; +#X connect 12 0 10 0; +#X connect 13 0 10 0; +#X connect 14 0 10 0; +#X connect 15 0 10 0; +#X connect 18 0 20 0; +#X connect 19 0 17 0; +#X connect 21 0 10 0; diff --git a/iemhelp/gui-menue.pd b/iemhelp/gui-menue.pd new file mode 100644 index 0000000..728e354 --- /dev/null +++ b/iemhelp/gui-menue.pd @@ -0,0 +1,23 @@ +#N canvas 149 58 200 219 10; +#X obj 23 126 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 78 127 toggle 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 +0 1; +#X obj 13 184 hslider 128 15 0 127 0 0 empty empty empty 8 -8 0 10 +-262144 -1 -1 0 1; +#X obj 115 25 vslider 15 128 0 127 0 0 empty empty empty 8 -8 0 10 +-262144 -1 -1 0 1; +#X obj 135 26 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1; +#X obj 9 46 my_canvas 15 100 60 empty empty empty 20 12 2 20 -233017 +-66577; +#X obj 11 163 radiobut 15 1 0 8 empty empty empty 8 -8 0 10 -262144 +-1 -1 0; +#X text 134 161 rdb; +#X text 147 183 hsl; +#X text 113 5 vsl; +#X text 140 5 vu; +#X text 22 109 bng; +#X text 76 109 tgl; +#X text 11 26 my_canvas; +#X text 1 25 |; +#X text 1 32 v; diff --git a/iemhelp/help-$n.pd b/iemhelp/help-$n.pd new file mode 100644 index 0000000..6ed1ad3 --- /dev/null +++ b/iemhelp/help-$n.pd @@ -0,0 +1,92 @@ +#N canvas 50 236 950 393 10; +#X floatatom 27 77 5 -14 14 0 - - -; +#X obj 98 81 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 471 151 5 0 0 0 - - -; +#X obj 471 179 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X symbolatom 202 218 10 0 0 0 - - -; +#X floatatom 150 219 5 0 0 0 - - -; +#X obj 98 156 route list float symbol; +#X obj 98 181 pp set; +#X obj 75 261 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 150 242 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 202 240 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 98 113 test_dollarg aa bb cc dd ee ff gg 33 44 55 66 77 88 99 +; +#X text 25 309 (c) musil@iem.kug.ac.at; +#X text 67 322 IEM KUG; +#X text 42 334 graz \, austria 2002; +#X text 11 6 dollarg; +#X text 93 7 receives the parent initial arguments <list> \, like a +$n; +#X text 168 92 open test_dollarg abstraction; +#X obj 330 45 dollarg; +#X text 398 44 abbrv.; +#X obj 448 44 $n 1; +#X text 490 46 1.arg: n <float> (optional \, default 0); +#X msg 98 261; +#N canvas 8 40 450 300 reset________ 0; +#X obj 48 41 inlet; +#X obj 53 210 outlet; +#X obj 48 73 route list float symbol; +#X obj 121 212 outlet; +#X obj 197 212 outlet; +#X msg 53 187 set; +#X obj 48 99 bang; +#X obj 100 97 bang; +#X obj 152 97 bang; +#X msg 121 187 set 0; +#X msg 197 186 set symbol; +#X connect 0 0 2 0; +#X connect 2 0 6 0; +#X connect 2 1 7 0; +#X connect 2 2 8 0; +#X connect 5 0 1 0; +#X connect 6 0 10 0; +#X connect 6 0 9 0; +#X connect 7 0 5 0; +#X connect 7 0 10 0; +#X connect 8 0 5 0; +#X connect 8 0 9 0; +#X connect 9 0 3 0; +#X connect 10 0 4 0; +#X restore 125 134 pd reset________; +#X msg 27 53 0; +#X msg 63 53 1; +#X msg 96 53 2; +#X msg 211 53 -1; +#X text 451 6 (like float \$1 \, or symbol \$1); +#X text 559 91 eg. m = number of parent arguments + 1; +#X text 531 64 if (n = 0) -> dollarg output all parent arguments; +#X text 531 78 if (n > 0) -> dollarg output the n-th parent argument +; +#X text 532 102 if (n < 0) -> dollarg output the (m+n)-th parent argument +; +#X msg 173 53 -2; +#X msg 135 53 12; +#X connect 0 0 11 0; +#X connect 1 0 11 0; +#X connect 2 0 3 0; +#X connect 4 0 10 0; +#X connect 5 0 9 0; +#X connect 6 0 7 0; +#X connect 6 1 5 0; +#X connect 6 2 4 0; +#X connect 7 0 22 0; +#X connect 7 0 8 0; +#X connect 11 0 6 0; +#X connect 11 0 23 0; +#X connect 11 1 2 0; +#X connect 23 0 22 0; +#X connect 23 1 5 0; +#X connect 23 2 4 0; +#X connect 24 0 0 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; diff --git a/iemhelp/help-FIR~.pd b/iemhelp/help-FIR~.pd new file mode 100644 index 0000000..6be02ec --- /dev/null +++ b/iemhelp/help-FIR~.pd @@ -0,0 +1,59 @@ +#N canvas 345 25 511 611 10; +#N canvas 0 0 450 300 graph1 0; +#X array fir_coeff 256 float 0; +#X coords 0 1 255 -1 256 140 1; +#X restore 63 135 graph; +#X obj 109 104 soundfiler; +#X floatatom 4 113 5 0 0 0 - - -; +#X text 47 64 % cpu; +#X obj 4 43 dsp; +#X obj 4 23 tgl 15 0 empty empty dsp_ON/OFF 2 -8 0 10 -225271 -42246 +-90881 1 1; +#X text 9 512 (c) musil@iem.kug.ac.at; +#X text 51 525 IEM KUG; +#X floatatom 407 286 7 0 0 0 - - -; +#X obj 325 165 dac~; +#X obj 325 139 gainvu~ 300; +#X obj 398 161 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X text 26 537 graz \, austria 2001; +#X obj 458 8 vsl 15 128 0 127 0 1 empty empty gain -29 5 0 10 -225271 +-42246 -90881 9200 1; +#X obj 325 12 noise~; +#X floatatom 348 286 7 0 0 0 - - -; +#X obj 109 21 bng 15 250 50 1 empty empty loadbang 8 -8 0 10 -225271 +-24198 -90881; +#X msg 109 41 read -resize lp1.wav fir_coeff; +#X msg 114 62 read -resize lp2.wav fir_coeff; +#X msg 121 82 read -resize lp3.wav fir_coeff; +#X obj 207 384 soundfiler; +#N canvas 0 0 450 300 graph1 0; +#X array fir_coeff2 256 float 0; +#X coords 0 1 255 -1 256 140 1; +#X restore 207 408 graph; +#X msg 208 363 read -resize lp3.wav fir_coeff2; +#X obj 208 343 bng 15 250 50 1 empty empty loadbang 8 -8 0 10 -225271 +-24198 -90881; +#X msg 338 69 set fir_coeff 256; +#X msg 334 96 set fir_coeff2 256; +#X floatatom 19 90 5 0 0 0 - - -; +#X text 4 130 20 .. 30; +#X obj 325 36 FIR~ fir_coeff 256; +#X connect 4 0 2 0; +#X connect 4 1 26 0; +#X connect 5 0 4 0; +#X connect 10 0 9 0; +#X connect 10 0 9 1; +#X connect 10 2 11 0; +#X connect 11 0 15 0; +#X connect 11 1 8 0; +#X connect 13 0 10 1; +#X connect 14 0 28 0; +#X connect 16 0 17 0; +#X connect 17 0 1 0; +#X connect 18 0 1 0; +#X connect 19 0 1 0; +#X connect 22 0 20 0; +#X connect 23 0 22 0; +#X connect 24 0 28 0; +#X connect 25 0 28 0; +#X connect 28 0 10 0; diff --git a/iemhelp/help-LFO_noise~.pd b/iemhelp/help-LFO_noise~.pd new file mode 100644 index 0000000..91be5cc --- /dev/null +++ b/iemhelp/help-LFO_noise~.pd @@ -0,0 +1,35 @@ +#N canvas 299 177 451 324 10; +#X text 15 262 (c) musil@iem.kug.ac.at; +#X text 57 275 IEM KUG; +#X text 38 49 dsp ON/OFF; +#X floatatom 212 173 7 0 0 0 - - -; +#X text 279 175 dB; +#X floatatom 21 89 5 0 0 0 - - -; +#X text 69 90 % cpu; +#X obj 21 69 dsp; +#X obj 21 49 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 32 230 dac~; +#X obj 32 205 gainvu~ 300; +#X obj 259 51 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 352 74 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 9000 1; +#X text 32 287 graz \, austria 2001; +#X floatatom 324 223 7 0 0 0 - - -; +#X text 382 225 dB; +#X obj 32 142 LFO_noise~ 2; +#X text 121 141 1.arg: cutoff-freq.; +#X floatatom 32 116 4 0 500 0 - - -; +#X text 15 7 LFO_noise~ : 2-point-interpolated time-stretched white +noise; +#X text 118 21 between -0.5 and +0.5; +#X connect 7 0 5 0; +#X connect 8 0 7 0; +#X connect 10 0 9 0; +#X connect 10 0 9 1; +#X connect 10 1 14 0; +#X connect 10 2 11 0; +#X connect 11 1 3 0; +#X connect 12 0 10 1; +#X connect 16 0 10 0; +#X connect 18 0 16 0; diff --git a/iemhelp/help-add2_comma.pd b/iemhelp/help-add2_comma.pd new file mode 100644 index 0000000..33bce04 --- /dev/null +++ b/iemhelp/help-add2_comma.pd @@ -0,0 +1,54 @@ +#N canvas 115 227 776 413 10; +#X msg 25 63 aaa; +#X msg 61 65 345; +#X msg 103 66 symbol www; +#X msg 199 65 123 987 3.14159; +#X msg 238 126 open file 456; +#X msg 199 91 1.9 -8.2; +#X msg 243 154 write 67; +#X msg 389 56 aaa; +#X msg 425 58 345; +#X msg 467 59 symbol www; +#X msg 563 58 123 987 3.14159; +#X msg 602 119 open file 456; +#X msg 563 84 1.9 -8.2; +#X msg 607 147 write 67; +#X text 444 285 (c) musil@iem.kug.ac.at; +#X text 481 298 IEM KUG; +#X obj 458 158 add2_comma; +#X obj 363 58 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 6 64 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1 +; +#X msg 55 223 set; +#X msg 27 248 add2 abc; +#X text 456 310 graz \, austria 2003; +#X msg 24 278 add2 11.55; +#X obj 24 198 loadbang; +#X text 13 4 add2_comma; +#X text 110 4 add a comma after a message; +#X msg 90 309; +#X msg 457 187; +#X obj 86 180 add2_comma; +#X connect 0 0 28 0; +#X connect 1 0 28 0; +#X connect 2 0 28 0; +#X connect 3 0 28 0; +#X connect 4 0 28 0; +#X connect 5 0 28 0; +#X connect 6 0 28 0; +#X connect 7 0 16 0; +#X connect 8 0 16 0; +#X connect 9 0 16 0; +#X connect 10 0 16 0; +#X connect 11 0 16 0; +#X connect 12 0 16 0; +#X connect 13 0 16 0; +#X connect 16 0 27 0; +#X connect 17 0 16 0; +#X connect 18 0 28 0; +#X connect 19 0 26 0; +#X connect 20 0 26 0; +#X connect 22 0 26 0; +#X connect 23 0 19 0; +#X connect 28 0 26 0; diff --git a/iemhelp/help-addl~.pd b/iemhelp/help-addl~.pd new file mode 100644 index 0000000..01cd179 --- /dev/null +++ b/iemhelp/help-addl~.pd @@ -0,0 +1,28 @@ +#N canvas 375 118 372 456 10; +#X text 16 386 (c) musil@iem.kug.ac.at; +#X text 58 399 IEM KUG; +#X text 28 48 dsp ON/OFF; +#X floatatom 85 199 9 0 22000 0 - - -; +#X floatatom 11 88 5 0 0 0 - - -; +#X text 46 87 % cpu; +#X floatatom 125 225 5 2 9999 0 - - -; +#X text 168 224 ms; +#X obj 11 68 dsp; +#X obj 11 48 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 15 364 2.arg:<float> interpolation_time [ms]; +#X text 13 8 addl~; +#X text 79 8 signal addition with line~; +#X obj 46 271 unsig~; +#X floatatom 46 294 9 0 22000 0 - - -; +#X obj 46 141 sig~ 1; +#X obj 46 248 addl~ 0.5 2000; +#X text 33 411 graz \, austria 2003; +#X text 15 352 1.arg:<float> 2nd operand of addition; +#X connect 3 0 16 1; +#X connect 6 0 16 2; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 13 0 14 0; +#X connect 15 0 16 0; +#X connect 16 0 13 0; diff --git a/iemhelp/help-any.pd b/iemhelp/help-any.pd new file mode 100644 index 0000000..fee636c --- /dev/null +++ b/iemhelp/help-any.pd @@ -0,0 +1,137 @@ +#N canvas 194 199 775 613 10; +#X obj 21 148 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 48 148 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 89 206 print; +#X obj 89 148 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 292 148 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X obj 292 208 print; +#X msg 343 210; +#X obj 369 155 loadbang; +#X msg 369 176 set; +#X obj 26 225 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 26 280 print; +#X obj 400 382 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X obj 457 491 print; +#X msg 457 56 88; +#X msg 457 132 symbol www; +#X msg 457 75 float 77; +#X obj 137 148 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X msg 457 94 list 66; +#X msg 457 113 www; +#X msg 457 151 list www; +#X msg 457 189 list 99 888 hhh; +#X msg 457 208 float 99 888 hhh; +#X msg 457 227 symbol 99 888 hhh; +#X msg 457 170 99 888 hhh; +#X msg 457 246 kkk jjj 345; +#X msg 457 265 symbol kkk jjj 345; +#X msg 457 284 list kkk jjj 345; +#X msg 90 432; +#X obj 137 376 loadbang; +#X msg 123 401 set; +#X obj 26 252 any open filename 55; +#X obj 457 463 iem_anything; +#X obj 90 400 any; +#X obj 27 342 bang; +#X obj 27 366 del 999; +#X text 63 532 IEM KUG; +#X msg 620 205 88; +#X msg 619 281 symbol www; +#X msg 619 224 float 77; +#X msg 619 243 list 66; +#X msg 619 262 www; +#X msg 619 300 list www; +#X msg 619 338 list 99 888 hhh; +#X msg 619 357 float 99 888 hhh; +#X msg 619 376 symbol 99 888 hhh; +#X msg 619 319 99 888 hhh; +#X msg 619 395 kkk jjj 345; +#X msg 619 414 symbol kkk jjj 345; +#X msg 619 433 list kkk jjj 345; +#X msg 361 383 bang; +#X obj 540 363 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X msg 501 364 bang; +#X msg 106 307 set display this with 1 second delay; +#X obj 123 342 bang; +#X text 296 9 (like f or float for <float>-messages); +#X text 131 9 is a latch for anything; +#X obj 229 376 del 4999; +#X text 32 520 (c) musil@iem.at; +#X text 38 544 graz \, austria 2003; +#X text 298 19 (or like symbol for <symbol>-messages); +#X text 23 11 iem_anything; +#X obj 104 85 iem_anything; +#X text 195 85 arguments: any message; +#X text 96 67 <-hot; +#X text 146 67 cold->; +#X text 134 35 abbr. any; +#X obj 21 175 any; +#X obj 48 175 any 88; +#X obj 89 175 any www; +#X obj 137 175 any symbol www; +#X obj 292 175 any set 88; +#X connect 0 0 66 0; +#X connect 1 0 67 0; +#X connect 3 0 68 0; +#X connect 4 0 70 0; +#X connect 7 0 8 0; +#X connect 8 0 6 0; +#X connect 9 0 30 0; +#X connect 11 0 31 0; +#X connect 13 0 31 0; +#X connect 14 0 31 0; +#X connect 15 0 31 0; +#X connect 16 0 69 0; +#X connect 17 0 31 0; +#X connect 18 0 31 0; +#X connect 19 0 31 0; +#X connect 20 0 31 0; +#X connect 21 0 31 0; +#X connect 22 0 31 0; +#X connect 23 0 31 0; +#X connect 24 0 31 0; +#X connect 25 0 31 0; +#X connect 26 0 31 0; +#X connect 28 0 29 0; +#X connect 29 0 27 0; +#X connect 30 0 10 0; +#X connect 31 0 12 0; +#X connect 32 0 27 0; +#X connect 33 0 34 0; +#X connect 33 0 56 0; +#X connect 34 0 32 0; +#X connect 36 0 31 1; +#X connect 37 0 31 1; +#X connect 38 0 31 1; +#X connect 39 0 31 1; +#X connect 40 0 31 1; +#X connect 41 0 31 1; +#X connect 42 0 31 1; +#X connect 43 0 31 1; +#X connect 44 0 31 1; +#X connect 45 0 31 1; +#X connect 46 0 31 1; +#X connect 47 0 31 1; +#X connect 48 0 31 1; +#X connect 49 0 31 0; +#X connect 50 0 31 1; +#X connect 51 0 31 1; +#X connect 52 0 33 0; +#X connect 52 0 32 1; +#X connect 52 0 53 0; +#X connect 53 0 29 0; +#X connect 56 0 29 0; +#X connect 66 0 2 0; +#X connect 67 0 2 0; +#X connect 68 0 2 0; +#X connect 69 0 2 0; +#X connect 70 0 5 0; +#X connect 70 0 6 0; diff --git a/iemhelp/help-ap1~.pd b/iemhelp/help-ap1~.pd new file mode 100644 index 0000000..522439f --- /dev/null +++ b/iemhelp/help-ap1~.pd @@ -0,0 +1,61 @@ +#N canvas 375 118 368 452 10; +#X text 3 233 ~signal_in~; +#X text 16 386 (c) musil@iem.kug.ac.at; +#X text 58 399 IEM KUG; +#X text 28 48 dsp ON/OFF; +#X floatatom 79 164 3 15 133 0 - - -; +#X obj 79 185 mtof; +#X floatatom 79 206 9 0 22000 0 - - -; +#X text 149 205 Hz; +#X text 58 262 ~signal_out~; +#X floatatom 146 289 7 0 0 0 - - -; +#X text 203 290 dB; +#X floatatom 110 163 9 0 22000 0 - - -; +#X text 180 163 Hz; +#X floatatom 46 119 3 15 133 0 - - -; +#X floatatom 11 88 5 0 0 0 - - -; +#X text 46 87 % cpu; +#X floatatom 108 227 5 2 9999 0 - - -; +#X text 151 226 ms; +#X obj 11 68 dsp; +#X obj 11 48 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 46 334 dac~; +#X obj 46 309 gainvu~ 300; +#X obj 203 167 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 259 178 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 9600 1; +#X obj 46 141 testtone~ 200; +#X text 33 411 graz \, austria 2001; +#X obj 115 101 init 69; +#X text 73 120 midi; +#X text 15 362 2.arg:<float> interpolation_time [ms]; +#X obj 46 248 ap1~ 440 200; +#X text 15 352 1.arg:<float> -90_degree_freq. [Hz]; +#X obj 14 266 +~; +#X obj 14 287 *~ 0.5; +#X text 58 287 (like lp1~); +#X floatatom 234 327 7 0 0 0 - - -; +#X text 291 328 dB; +#X obj 11 13 cnv 8 1 1 empty empty ap1~ 1 2 1 18 -262144 -1109 0; +#X text 79 8 allpass 1.order; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 29 1; +#X connect 13 0 24 0; +#X connect 16 0 29 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 34 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 29 0; +#X connect 24 0 31 0; +#X connect 24 1 11 0; +#X connect 26 0 13 0; +#X connect 29 0 31 1; +#X connect 31 0 32 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-ap2~.pd b/iemhelp/help-ap2~.pd new file mode 100644 index 0000000..7b293e9 --- /dev/null +++ b/iemhelp/help-ap2~.pd @@ -0,0 +1,65 @@ +#N canvas 375 118 366 485 10; +#X text 9 240 ~signal_in~; +#X text 17 421 (c) musil@iem.kug.ac.at; +#X text 59 434 IEM KUG; +#X text 34 40 dsp ON/OFF; +#X floatatom 83 150 3 15 133 0 - - -; +#X obj 83 172 mtof; +#X floatatom 83 193 9 0 22000 0 - - -; +#X text 154 193 Hz; +#X text 55 270 ~signal_out~; +#X floatatom 163 285 7 0 0 0 - - -; +#X text 222 287 dB; +#X floatatom 123 151 9 0 22000 0 - - -; +#X text 194 152 Hz; +#X floatatom 52 111 3 15 133 0 - - -; +#X floatatom 17 80 5 0 0 0 - - -; +#X text 62 80 % cpu; +#X floatatom 145 233 5 2 9999 0 - - -; +#X text 188 233 ms; +#X obj 17 60 dsp; +#X floatatom 114 213 4 0.01 1000 0 - - -; +#X text 154 212 Q; +#X text 57 372 2.arg:<float> Q [-]; +#X text 57 382 3.arg:<float> interpolation_time [ms]; +#X obj 17 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 53 344 dac~; +#X obj 53 319 gainvu~ 300; +#X obj 219 163 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 275 188 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 52 130 testtone~ 200; +#X text 34 446 graz \, austria 2001; +#X obj 120 93 init 69; +#X text 79 112 midi; +#X text 57 362 1.arg:<float> -180_degree_freq. [Hz]; +#X obj 52 255 ap2~ 440 2 200; +#X obj 20 276 +~; +#X obj 20 298 *~ 0.5; +#X text 64 297 (like bs2~); +#X floatatom 241 337 7 0 0 0 - - -; +#X text 298 338 dB; +#X obj 11 13 cnv 8 1 1 empty empty ap2~ 1 2 1 18 -262144 -1109 0; +#X text 79 8 allpass 2.order; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 28 0; +#X connect 16 0 33 3; +#X connect 18 0 14 0; +#X connect 19 0 33 2; +#X connect 23 0 18 0; +#X connect 25 0 24 0; +#X connect 25 0 24 1; +#X connect 25 1 37 0; +#X connect 25 2 26 0; +#X connect 26 1 9 0; +#X connect 27 0 25 1; +#X connect 28 0 33 0; +#X connect 28 0 34 0; +#X connect 28 1 11 0; +#X connect 30 0 13 0; +#X connect 33 0 34 1; +#X connect 34 0 35 0; +#X connect 35 0 25 0; diff --git a/iemhelp/help-bpe.pd b/iemhelp/help-bpe.pd new file mode 100644 index 0000000..be035e8 --- /dev/null +++ b/iemhelp/help-bpe.pd @@ -0,0 +1,46 @@ +#N canvas 112 77 526 445 10; +#X obj 118 183 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 365 93 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X msg 57 87 0 0 1 1000 1 1000 2 500 1 500 1 2000 0 1000; +#X obj 57 264 vsl 15 128 0 2 0 0 empty empty empty 8 -8 0 10 -262144 +-1 -1 0 1; +#X text 9 4 bpe; +#X text 59 4 break-point-envelope; +#X text 49 51 list of pairs: value + relative time [ms]; +#X text 75 64 beginning with a pair: initial-value at 0 ms; +#X text 346 78 a bang starts the envelope; +#N canvas 0 0 450 300 graph1 0; +#X array array99 61 float 0; +#X coords 0 2 60 0 120 60 1; +#X restore 127 293 graph; +#X obj 57 231 line 0 100; +#X obj 274 338 tabwrite array99; +#X obj 365 295 timer; +#X obj 365 317 * 0.01; +#X obj 274 268 t f b; +#X text 103 373 (c) musil@iem.kug.ac.at; +#X text 145 386 IEM KUG; +#X text 120 398 graz \, austria 2001; +#X text 85 207 outlet 1 and 2: pair of value and time in ms; +#X text 135 182 outlet 3: bang: end of envelope; +#X obj 57 148 bpe _______; +#X text 132 146 no arg.; +#X msg 78 113 stop; +#X obj 57 209 pack; +#X text 106 112 stops envelope; +#X connect 1 0 12 0; +#X connect 1 0 20 0; +#X connect 2 0 20 0; +#X connect 10 0 3 0; +#X connect 10 0 14 0; +#X connect 12 0 13 0; +#X connect 13 0 11 1; +#X connect 14 0 11 0; +#X connect 14 1 12 1; +#X connect 20 0 23 0; +#X connect 20 1 23 1; +#X connect 20 2 0 0; +#X connect 22 0 20 0; +#X connect 23 0 10 0; diff --git a/iemhelp/help-bpq2~.pd b/iemhelp/help-bpq2~.pd new file mode 100644 index 0000000..6f4ba3f --- /dev/null +++ b/iemhelp/help-bpq2~.pd @@ -0,0 +1,59 @@ +#N canvas 375 118 373 485 10; +#X text 17 421 (c) musil@iem.kug.ac.at; +#X text 59 434 IEM KUG; +#X text 34 40 dsp ON/OFF; +#X floatatom 17 80 5 0 0 0 - - -; +#X text 55 81 % cpu; +#X obj 17 60 dsp; +#X obj 17 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 34 446 graz \, austria 2001; +#X text 8 265 ~signal_in~; +#X floatatom 81 180 3 15 133 0 - - -; +#X obj 81 199 mtof; +#X floatatom 81 218 9 0 22000 0 - - -; +#X text 145 219 Hz; +#X text 63 294 ~signal_out~; +#X floatatom 204 262 7 0 0 0 - - -; +#X text 255 263 dB; +#X floatatom 124 163 9 0 22000 0 - - -; +#X text 188 164 Hz; +#X floatatom 51 124 3 15 133 0 - - -; +#X floatatom 142 260 5 2 9999 0 - - -; +#X text 183 261 ms; +#X obj 51 280 bpq2~ 440 10 200; +#X floatatom 111 241 4 0.01 1000 0 - - -; +#X text 144 241 Q; +#X text 26 371 2.arg:<float> Q [-]; +#X text 26 361 1.arg:<float> center_freq. [Hz]; +#X text 26 381 3.arg:<float> interpolation_time [ms]; +#X obj 51 339 dac~; +#X obj 51 314 gainvu~ 300; +#X obj 239 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 304 183 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 51 143 testtone~ 200; +#X obj 115 109 init 69; +#X text 78 125 midi; +#X floatatom 298 329 7 0 0 0 - - -; +#X text 349 330 dB; +#X text 106 7 bandpass 2.order with Q-inlet; +#X obj 14 13 cnv 8 1 1 empty empty bpq2~ 1 2 1 18 -262144 -1109 0; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 21 1; +#X connect 18 0 31 0; +#X connect 19 0 21 3; +#X connect 21 0 28 0; +#X connect 22 0 21 2; +#X connect 28 0 27 0; +#X connect 28 0 27 1; +#X connect 28 1 34 0; +#X connect 28 2 29 0; +#X connect 29 1 14 0; +#X connect 30 0 28 1; +#X connect 31 0 21 0; +#X connect 31 1 16 0; +#X connect 32 0 18 0; diff --git a/iemhelp/help-bpw2~.pd b/iemhelp/help-bpw2~.pd new file mode 100644 index 0000000..75c397b --- /dev/null +++ b/iemhelp/help-bpw2~.pd @@ -0,0 +1,59 @@ +#N canvas 375 118 373 485 10; +#X text 17 421 (c) musil@iem.kug.ac.at; +#X text 59 434 IEM KUG; +#X text 34 40 dsp ON/OFF; +#X floatatom 17 80 5 0 0 0 - - -; +#X text 55 81 % cpu; +#X obj 17 60 dsp; +#X obj 17 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 34 446 graz \, austria 2001; +#X text 8 265 ~signal_in~; +#X floatatom 81 180 3 15 133 0 - - -; +#X obj 81 199 mtof; +#X floatatom 81 218 9 0 22000 0 - - -; +#X text 145 219 Hz; +#X text 63 294 ~signal_out~; +#X floatatom 204 262 7 0 0 0 - - -; +#X text 255 263 dB; +#X floatatom 124 163 9 0 22000 0 - - -; +#X text 188 164 Hz; +#X floatatom 51 124 3 15 133 0 - - -; +#X floatatom 142 260 5 2 9999 0 - - -; +#X text 183 261 ms; +#X floatatom 111 241 4 0.01 1000 0 - - -; +#X text 26 361 1.arg:<float> center_freq. [Hz]; +#X text 26 381 3.arg:<float> interpolation_time [ms]; +#X obj 51 339 dac~; +#X obj 51 314 gainvu~ 300; +#X obj 239 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 304 183 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 51 143 testtone~ 200; +#X obj 115 109 init 69; +#X text 78 125 midi; +#X floatatom 298 329 7 0 0 0 - - -; +#X text 349 330 dB; +#X text 105 8 bandpass 2.order with bandwidth-inlet; +#X text 144 241 bandwidth Hz; +#X text 26 371 2.arg:<float> bandwidth [Hz]; +#X obj 51 280 bpw2~ 440 44 200; +#X obj 13 15 cnv 8 1 1 empty empty bpw2~ 1 2 1 18 -262144 -1109 0; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 9 0 10 0; +#X connect 10 0 11 0; +#X connect 11 0 36 1; +#X connect 18 0 28 0; +#X connect 19 0 36 3; +#X connect 21 0 36 2; +#X connect 25 0 24 0; +#X connect 25 0 24 1; +#X connect 25 1 31 0; +#X connect 25 2 26 0; +#X connect 26 1 14 0; +#X connect 27 0 25 1; +#X connect 28 0 36 0; +#X connect 28 1 16 0; +#X connect 29 0 18 0; +#X connect 36 0 25 0; diff --git a/iemhelp/help-bsq2~.pd b/iemhelp/help-bsq2~.pd new file mode 100644 index 0000000..d20db92 --- /dev/null +++ b/iemhelp/help-bsq2~.pd @@ -0,0 +1,59 @@ +#N canvas 375 118 373 485 10; +#X text 17 421 (c) musil@iem.kug.ac.at; +#X text 59 434 IEM KUG; +#X text 34 40 dsp ON/OFF; +#X floatatom 17 80 5 0 0 0 - - -; +#X text 55 81 % cpu; +#X obj 17 60 dsp; +#X obj 17 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 34 446 graz \, austria 2001; +#X text 26 371 2.arg:<float> Q [-]; +#X text 26 361 1.arg:<float> center_freq. [Hz]; +#X text 26 381 3.arg:<float> interpolation_time [ms]; +#X text 10 258 ~signal_in~; +#X floatatom 81 174 3 15 133 0 - - -; +#X obj 81 193 mtof; +#X floatatom 81 212 9 0 22000 0 - - -; +#X text 145 213 Hz; +#X text 65 287 ~signal_out~; +#X floatatom 188 283 7 0 0 0 - - -; +#X text 239 284 dB; +#X floatatom 126 156 9 0 22000 0 - - -; +#X text 190 157 Hz; +#X floatatom 53 117 3 15 133 0 - - -; +#X floatatom 138 253 5 2 9999 0 - - -; +#X text 179 254 ms; +#X floatatom 109 234 4 0.01 1000 0 - - -; +#X text 142 234 Q; +#X obj 53 332 dac~; +#X obj 53 307 gainvu~ 300; +#X obj 235 161 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 294 176 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 53 136 testtone~ 200; +#X obj 117 102 init 69; +#X text 80 118 midi; +#X obj 53 273 bsq2~ 440 1 200; +#X floatatom 274 322 7 0 0 0 - - -; +#X text 325 323 dB; +#X text 95 6 bandstop 2.order with Q-inlet; +#X obj 13 13 cnv 8 1 1 empty empty bsq2~ 1 2 1 18 -262144 -1109 0; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 33 1; +#X connect 21 0 30 0; +#X connect 22 0 33 3; +#X connect 24 0 33 2; +#X connect 27 0 26 0; +#X connect 27 0 26 1; +#X connect 27 1 34 0; +#X connect 27 2 28 0; +#X connect 28 1 17 0; +#X connect 29 0 27 1; +#X connect 30 0 33 0; +#X connect 30 1 19 0; +#X connect 31 0 21 0; +#X connect 33 0 27 0; diff --git a/iemhelp/help-bsw2~.pd b/iemhelp/help-bsw2~.pd new file mode 100644 index 0000000..7709f94 --- /dev/null +++ b/iemhelp/help-bsw2~.pd @@ -0,0 +1,59 @@ +#N canvas 361 130 373 485 10; +#X text 17 421 (c) musil@iem.kug.ac.at; +#X text 59 434 IEM KUG; +#X text 34 40 dsp ON/OFF; +#X floatatom 17 80 5 0 0 0 - - -; +#X text 55 81 % cpu; +#X obj 17 60 dsp; +#X obj 17 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 34 446 graz \, austria 2001; +#X text 26 361 1.arg:<float> center_freq. [Hz]; +#X text 26 381 3.arg:<float> interpolation_time [ms]; +#X text 26 371 2.arg:<float> bandwidth [Hz]; +#X text 8 264 ~signal_in~; +#X floatatom 83 181 3 15 133 0 - - -; +#X obj 83 200 mtof; +#X floatatom 83 219 9 0 22000 0 - - -; +#X text 147 220 Hz; +#X text 63 293 ~signal_out~; +#X floatatom 186 289 7 0 0 0 - - -; +#X text 237 290 dB; +#X floatatom 124 162 9 0 22000 0 - - -; +#X text 188 163 Hz; +#X floatatom 51 123 3 15 133 0 - - -; +#X floatatom 148 257 5 2 9999 0 - - -; +#X text 189 257 ms; +#X floatatom 115 239 4 0.01 1000 0 - - -; +#X obj 51 338 dac~; +#X obj 51 313 gainvu~ 300; +#X obj 233 167 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 292 182 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 51 142 testtone~ 200; +#X obj 115 108 init 69; +#X text 78 124 midi; +#X floatatom 272 328 7 0 0 0 - - -; +#X text 323 329 dB; +#X text 148 238 bandwidth Hz; +#X obj 51 279 bsw2~ 440 220 200; +#X text 94 7 bandstop 2.order with bandwidth-inlet; +#X obj 12 13 cnv 8 1 1 empty empty bsw2~ 1 2 1 18 -262144 -1109 0; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 12 0 13 0; +#X connect 13 0 14 0; +#X connect 14 0 35 1; +#X connect 21 0 29 0; +#X connect 22 0 35 3; +#X connect 24 0 35 2; +#X connect 26 0 25 0; +#X connect 26 0 25 1; +#X connect 26 1 32 0; +#X connect 26 2 27 0; +#X connect 27 1 17 0; +#X connect 28 0 26 1; +#X connect 29 0 35 0; +#X connect 29 1 19 0; +#X connect 30 0 21 0; +#X connect 35 0 26 0; diff --git a/iemhelp/help-db2v.pd b/iemhelp/help-db2v.pd new file mode 100644 index 0000000..e46d3a4 --- /dev/null +++ b/iemhelp/help-db2v.pd @@ -0,0 +1,14 @@ +#N canvas 512 284 279 220 10; +#X floatatom 23 99 9 0 0; +#X text 21 131 (c) musil@iem.kug.ac.at; +#X text 63 144 IEM KUG; +#X text 57 75 no arg; +#X obj 23 76 db2v; +#X floatatom 23 52 9 0 0; +#X text 85 53 input_level [dB]; +#X text 24 11 db2v; +#X text 104 12 dB to value converter; +#X text 87 102 output_value [-]; +#X text 38 156 graz \, austria 2001; +#X connect 4 0 0 0; +#X connect 5 0 4 0; diff --git a/iemhelp/help-dbtofad.pd b/iemhelp/help-dbtofad.pd new file mode 100644 index 0000000..72bb62a --- /dev/null +++ b/iemhelp/help-dbtofad.pd @@ -0,0 +1,17 @@ +#N canvas 6 6 351 330 10; +#X floatatom 76 100 9 0 127 0 - - -; +#X obj 68 158 vu 15 120 empty empty -1 -8 0 8 -66577 -1 1 0; +#X obj 50 150 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 600 1; +#X obj 100 128 - 100; +#X text 139 100 midi-dB; +#X obj 50 128 dbtofad; +#X text 10 4 dbtofad; +#X text 99 5 convert midi-db to fader-scale; +#X text 147 236 (c) musil@iem.kug.ac.at; +#X text 184 249 IEM KUG; +#X text 159 261 graz \, austria 2003; +#X connect 0 0 3 0; +#X connect 0 0 5 0; +#X connect 3 0 1 1; +#X connect 5 0 2 0; diff --git a/iemhelp/help-default.pd b/iemhelp/help-default.pd new file mode 100644 index 0000000..7718043 --- /dev/null +++ b/iemhelp/help-default.pd @@ -0,0 +1,15 @@ +#N canvas 361 130 335 245 10; +#X text 22 184 (c) musil@iem.kug.ac.at; +#X text 64 197 IEM KUG; +#X obj 25 87 default 50; +#X obj 25 38 loadbang; +#X text 39 209 graz \, austria 2003; +#X obj 25 63 f \$1; +#X obj 25 137 print default; +#X floatatom 39 115 5 0 0 0 - - -; +#X text 10 9 default; +#X text 78 8 replace inital-argument \, if it is zero; +#X connect 2 0 6 0; +#X connect 2 0 7 0; +#X connect 3 0 5 0; +#X connect 5 0 2 0; diff --git a/iemhelp/help-divl~.pd b/iemhelp/help-divl~.pd new file mode 100644 index 0000000..94e3488 --- /dev/null +++ b/iemhelp/help-divl~.pd @@ -0,0 +1,28 @@ +#N canvas 375 118 374 458 10; +#X text 16 386 (c) musil@iem.kug.ac.at; +#X text 58 399 IEM KUG; +#X text 28 48 dsp ON/OFF; +#X floatatom 85 199 9 0 22000 0 - - -; +#X floatatom 11 88 5 0 0 0 - - -; +#X text 46 87 % cpu; +#X floatatom 125 225 5 2 9999 0 - - -; +#X text 168 224 ms; +#X obj 11 68 dsp; +#X obj 11 48 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 15 364 2.arg:<float> interpolation_time [ms]; +#X obj 46 271 unsig~; +#X floatatom 46 294 9 0 22000 0 - - -; +#X obj 46 141 sig~ 1; +#X text 33 411 graz \, austria 2003; +#X text 79 8 signal division with line~; +#X text 15 352 1.arg:<float> 2nd operand of division; +#X obj 46 248 divl~ 0.5 2000; +#X text 13 8 divl~; +#X connect 3 0 17 1; +#X connect 6 0 17 2; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 11 0 12 0; +#X connect 13 0 17 0; +#X connect 17 0 11 0; diff --git a/iemhelp/help-dollarg.pd b/iemhelp/help-dollarg.pd new file mode 100644 index 0000000..6ed1ad3 --- /dev/null +++ b/iemhelp/help-dollarg.pd @@ -0,0 +1,92 @@ +#N canvas 50 236 950 393 10; +#X floatatom 27 77 5 -14 14 0 - - -; +#X obj 98 81 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 471 151 5 0 0 0 - - -; +#X obj 471 179 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X symbolatom 202 218 10 0 0 0 - - -; +#X floatatom 150 219 5 0 0 0 - - -; +#X obj 98 156 route list float symbol; +#X obj 98 181 pp set; +#X obj 75 261 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 150 242 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 202 240 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 98 113 test_dollarg aa bb cc dd ee ff gg 33 44 55 66 77 88 99 +; +#X text 25 309 (c) musil@iem.kug.ac.at; +#X text 67 322 IEM KUG; +#X text 42 334 graz \, austria 2002; +#X text 11 6 dollarg; +#X text 93 7 receives the parent initial arguments <list> \, like a +$n; +#X text 168 92 open test_dollarg abstraction; +#X obj 330 45 dollarg; +#X text 398 44 abbrv.; +#X obj 448 44 $n 1; +#X text 490 46 1.arg: n <float> (optional \, default 0); +#X msg 98 261; +#N canvas 8 40 450 300 reset________ 0; +#X obj 48 41 inlet; +#X obj 53 210 outlet; +#X obj 48 73 route list float symbol; +#X obj 121 212 outlet; +#X obj 197 212 outlet; +#X msg 53 187 set; +#X obj 48 99 bang; +#X obj 100 97 bang; +#X obj 152 97 bang; +#X msg 121 187 set 0; +#X msg 197 186 set symbol; +#X connect 0 0 2 0; +#X connect 2 0 6 0; +#X connect 2 1 7 0; +#X connect 2 2 8 0; +#X connect 5 0 1 0; +#X connect 6 0 10 0; +#X connect 6 0 9 0; +#X connect 7 0 5 0; +#X connect 7 0 10 0; +#X connect 8 0 5 0; +#X connect 8 0 9 0; +#X connect 9 0 3 0; +#X connect 10 0 4 0; +#X restore 125 134 pd reset________; +#X msg 27 53 0; +#X msg 63 53 1; +#X msg 96 53 2; +#X msg 211 53 -1; +#X text 451 6 (like float \$1 \, or symbol \$1); +#X text 559 91 eg. m = number of parent arguments + 1; +#X text 531 64 if (n = 0) -> dollarg output all parent arguments; +#X text 531 78 if (n > 0) -> dollarg output the n-th parent argument +; +#X text 532 102 if (n < 0) -> dollarg output the (m+n)-th parent argument +; +#X msg 173 53 -2; +#X msg 135 53 12; +#X connect 0 0 11 0; +#X connect 1 0 11 0; +#X connect 2 0 3 0; +#X connect 4 0 10 0; +#X connect 5 0 9 0; +#X connect 6 0 7 0; +#X connect 6 1 5 0; +#X connect 6 2 4 0; +#X connect 7 0 22 0; +#X connect 7 0 8 0; +#X connect 11 0 6 0; +#X connect 11 0 23 0; +#X connect 11 1 2 0; +#X connect 23 0 22 0; +#X connect 23 1 5 0; +#X connect 23 2 4 0; +#X connect 24 0 0 0; +#X connect 25 0 0 0; +#X connect 26 0 0 0; +#X connect 27 0 0 0; +#X connect 33 0 0 0; +#X connect 34 0 0 0; diff --git a/iemhelp/help-dsp.pd b/iemhelp/help-dsp.pd new file mode 100644 index 0000000..9786107 --- /dev/null +++ b/iemhelp/help-dsp.pd @@ -0,0 +1,16 @@ +#N canvas 361 130 333 243 10; +#X text 24 167 (c) musil@iem.kug.ac.at; +#X text 66 180 IEM KUG; +#X text 41 42 dsp ON/OFF; +#X floatatom 24 121 5 0 0; +#X obj 24 62 dsp; +#X obj 24 42 toggle 15 1 empty dsp_tgl empty 8 -8 0 10 0 22 22 0 1 +; +#X text 41 192 graz \, austria 2001; +#X text 72 122 % mean-cpu-load; +#X floatatom 40 96 5 0 0; +#X text 86 96 % peak-cpu-load; +#X text -4 7 dsp : control audio \, measure dsp-load; +#X connect 4 0 3 0; +#X connect 4 1 8 0; +#X connect 5 0 4 0; diff --git a/iemhelp/help-dsp~.pd b/iemhelp/help-dsp~.pd new file mode 100644 index 0000000..2588c4c --- /dev/null +++ b/iemhelp/help-dsp~.pd @@ -0,0 +1,16 @@ +#N canvas 361 130 333 243 10; +#X text 24 167 (c) musil@iem.kug.ac.at; +#X text 66 180 IEM KUG; +#X text 43 40 dsp ON/OFF; +#X floatatom 24 121 5 0 0; +#X obj 24 42 toggle 15 1 empty dsp_tgl empty 8 -8 0 10 0 22 22 0 1 +; +#X text 41 192 graz \, austria 2001; +#X text 72 122 % mean-cpu-load; +#X floatatom 47 91 5 0 0; +#X text 93 91 % peak-cpu-load; +#X text -4 7 dsp~ : control audio \, measure dsp-load; +#X obj 24 62 dsp~; +#X connect 4 0 10 0; +#X connect 10 0 3 0; +#X connect 10 1 7 0; diff --git a/iemhelp/help-exp_inc.pd b/iemhelp/help-exp_inc.pd new file mode 100644 index 0000000..984ec62 --- /dev/null +++ b/iemhelp/help-exp_inc.pd @@ -0,0 +1,77 @@ +#N canvas 117 75 606 470 10; +#X msg 23 256 reset; +#X obj 64 255 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X floatatom 189 282 6 0 0 0 - - -; +#X floatatom 198 83 6 0 0 0 - - -; +#X floatatom 103 340 6 0 0 0 - - -; +#X obj 103 367 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X text 62 238 start; +#X floatatom 107 281 6 0 0 0 - - -; +#X text 197 44 abs. inc; +#X text 185 241 rel. incr [%]; +#X text 31 389 initial-val needs reset and a bang for output it.; +#X text 32 406 current-val outputs after next bang.; +#X floatatom 272 280 6 0 0 0 - - -; +#X obj 272 258 init 0; +#X text 271 241 min-val; +#X floatatom 332 283 6 0 0 0 - - -; +#X text 331 244 max-val; +#X obj 189 260 init 100; +#X obj 107 259 init 625; +#X text 108 242 initial-val; +#X msg 25 60 reset; +#X obj 66 59 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X floatatom 105 144 6 0 0 0 - - -; +#X obj 105 171 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X text 64 42 start; +#X floatatom 109 85 6 0 0 0 - - -; +#X floatatom 274 84 6 0 0 0 - - -; +#X text 273 45 min-val; +#X floatatom 334 87 6 0 0 0 - - -; +#X text 333 48 max-val; +#X text 110 46 initial-val; +#X obj 109 63 init 8500; +#X obj 198 61 init -250; +#X text 13 6 exp_inc; +#X text 77 6 linear and/or exponetial increment-counter \, bang controled +; +#X text 305 118 linear; +#X text 297 312 exponetial; +#X obj 274 62 init 300; +#X obj 334 65 init 12000; +#X obj 105 116 exp_inc 8500 0 -250 300 12000; +#X obj 332 261 init 17000; +#X obj 103 312 exp_inc 625 100 0 300 17000; +#X text 195 160 1.arg: <float> initial-val; +#X text 194 171 2.arg: <float> relative increment [%]; +#X text 194 182 3.arg: <float> absolute increment; +#X text 196 194 4.arg: <float> min-val; +#X text 196 205 5.arg: <float> max-val; +#X connect 0 0 41 0; +#X connect 1 0 41 0; +#X connect 2 0 41 1; +#X connect 3 0 39 2; +#X connect 4 0 5 0; +#X connect 7 0 41 0; +#X connect 12 0 41 3; +#X connect 13 0 12 0; +#X connect 15 0 41 4; +#X connect 17 0 2 0; +#X connect 18 0 7 0; +#X connect 20 0 39 0; +#X connect 21 0 39 0; +#X connect 22 0 23 0; +#X connect 25 0 39 0; +#X connect 26 0 39 3; +#X connect 28 0 39 4; +#X connect 31 0 25 0; +#X connect 32 0 3 0; +#X connect 37 0 26 0; +#X connect 38 0 28 0; +#X connect 39 0 22 0; +#X connect 40 0 15 0; +#X connect 41 0 4 0; diff --git a/iemhelp/help-f2note.pd b/iemhelp/help-f2note.pd new file mode 100644 index 0000000..e11b4b7 --- /dev/null +++ b/iemhelp/help-f2note.pd @@ -0,0 +1,21 @@ +#N canvas 320 113 337 256 10; +#X floatatom 19 138 9 0 0; +#X text 24 169 (c) musil@iem.kug.ac.at; +#X text 61 182 IEM KUG; +#X floatatom 19 36 9 8 24000; +#X floatatom 84 91 6 0 0; +#X obj 19 67 f2note 440; +#X msg 51 114 g1; +#X text 146 37 <float> input frequency; +#X text 92 36 Hz; +#X text 105 66 1.arg: <float> reference-frequency a1; +#X text 132 92 cents; +#X text 76 114 note; +#X text 91 140 midi; +#X text 4 2 f2note; +#X text 58 1 converts frequency to notes + cents; +#X text 36 194 graz \, austria 2001; +#X connect 3 0 5 0; +#X connect 5 0 0 0; +#X connect 5 1 6 0; +#X connect 5 2 4 0; diff --git a/iemhelp/help-fade~.pd b/iemhelp/help-fade~.pd new file mode 100644 index 0000000..1600741 --- /dev/null +++ b/iemhelp/help-fade~.pd @@ -0,0 +1,47 @@ +#N canvas 184 90 590 534 10; +#X obj 93 163 line~; +#X obj 16 85 dsp; +#X floatatom 16 112 5 0 0 0 - - -; +#X obj 16 59 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 59 269 tabwrite~ array99; +#X obj 59 164 bang; +#X msg 83 66 0 \, 1 10; +#X msg 111 103 1 \, 0 10; +#X msg 169 110 set _lin; +#X msg 169 131 set _linsqrt; +#X msg 169 152 set _sqrt; +#X msg 169 172 set _sin; +#X msg 170 193 set _sinhann; +#X msg 170 215 set _hann; +#X obj 93 242 fade~ _lin; +#X obj 283 14 loadbang; +#X text 332 459 Samples; +#X text 229 259 (c) musil@iem.kug.ac.at; +#X text 271 272 IEM KUG; +#X text 246 284 graz \, austria 2001; +#X text 11 6 fade~ a special signal waveshaper; +#X text 59 19 input-range: 0 .. 1; +#N canvas 0 0 452 302 graph1 0; +#X array array99 442 float 0; +#X coords 0 1 441 0 256 140 1; +#X restore 64 318 graph; +#X msg 282 39 \; array99 resize 442 \; array99 bounds 0 1 441 0 \; +array99 xticks 0 100 5 \; array99 yticks 0 0.1 5 \; array99 xlabel +-0.08 0 100 200 300 400 \; array99 ylabel -15.1 0 0.5 1; +#X connect 0 0 14 0; +#X connect 1 0 2 0; +#X connect 3 0 1 0; +#X connect 5 0 4 0; +#X connect 6 0 0 0; +#X connect 6 0 5 0; +#X connect 7 0 0 0; +#X connect 7 0 5 0; +#X connect 8 0 14 0; +#X connect 9 0 14 0; +#X connect 10 0 14 0; +#X connect 11 0 14 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 4 0; +#X connect 15 0 23 0; diff --git a/iemhelp/help-fadtodb.pd b/iemhelp/help-fadtodb.pd new file mode 100644 index 0000000..d65fb8f --- /dev/null +++ b/iemhelp/help-fadtodb.pd @@ -0,0 +1,17 @@ +#N canvas 157 156 349 328 10; +#X floatatom 53 215 9 0 0 0 - - -; +#X obj 71 69 vu 15 120 empty empty -1 -8 0 8 -66577 -1 1 0; +#X obj 53 61 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X obj 157 125 - 100; +#X obj 53 195 fadtodb; +#X text 116 215 midi-dB; +#X text 185 181 (c) musil@iem.kug.ac.at; +#X text 222 194 IEM KUG; +#X text 197 206 graz \, austria 2003; +#X text 10 3 fadtodb; +#X text 83 4 convert fader-scale to midi-db; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 1; +#X connect 4 0 0 0; diff --git a/iemhelp/help-fadtorms.pd b/iemhelp/help-fadtorms.pd new file mode 100644 index 0000000..7b7531a --- /dev/null +++ b/iemhelp/help-fadtorms.pd @@ -0,0 +1,17 @@ +#N canvas 157 156 389 278 10; +#X floatatom 53 215 9 0 0 0 - - -; +#X obj 71 69 vu 15 120 empty empty -1 -8 0 8 -66577 -1 1 0; +#X obj 53 61 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X obj 157 125 v2db; +#X obj 53 195 fadtorms; +#X text 116 215 linear values; +#X text 199 164 (c) musil@iem.kug.ac.at; +#X text 236 177 IEM KUG; +#X text 211 189 graz \, austria 2003; +#X text 7 8 fadtorms; +#X text 80 9 convert fader-scale to rms-value; +#X connect 0 0 3 0; +#X connect 2 0 4 0; +#X connect 3 0 1 1; +#X connect 4 0 0 0; diff --git a/iemhelp/help-float24.pd b/iemhelp/help-float24.pd new file mode 100644 index 0000000..8d4cd93 --- /dev/null +++ b/iemhelp/help-float24.pd @@ -0,0 +1,74 @@ +#N canvas 53 141 914 390 10; +#X obj 91 95 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 23 330 (c) musil@iem.kug.ac.at; +#X text 65 343 IEM KUG; +#X text 11 6 float24; +#X floatatom 150 259 9 0 0 0 - - -; +#X obj 91 117 float24 0.999999 762; +#X obj 103 191 -; +#X obj 91 145 t b f; +#X obj 91 167 1; +#X obj 227 116 float 1; +#X obj 227 96 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 40 355 graz \, austria 2003; +#X obj 239 186 -; +#X obj 227 140 t b f; +#X obj 227 162 1; +#X text 277 112 then save and close the patch; +#X text 277 123 then open the pach \, and click on both bangs; +#X text 277 88 try to type the argument "0.999 999 762" without the +spaces; +#X text 278 100 into a float-object \,; +#X text 79 7 concatenate a list of float-fragment-strings to a 23 bit +accurate mantissa (usefull to save a number into an object with more +then 6 decimals [7 .. 8 decimals]); +#X obj 697 123 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 697 167 9 0 0 0 - - -; +#X obj 697 144 float24 -12.3 4 56; +#X obj 698 194 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 698 238 11 0 0 0 - - -; +#X obj 698 264 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 698 330 11 0 0 0 - - -; +#X obj 698 215 float24 0.00314159 26538; +#X obj 698 285 float24 3.14159 26538; +#X obj 698 308 cos; +#X obj 694 16 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 694 82 11 0 0 0 - - -; +#X obj 694 60 cos; +#X obj 694 37 float 1.5708; +#X obj 779 18 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 779 84 11 0 0 0 - - -; +#X obj 779 62 cos; +#X obj 779 39 float24 1.5707 963268; +#X connect 0 0 5 0; +#X connect 5 0 7 0; +#X connect 6 0 4 0; +#X connect 7 0 8 0; +#X connect 7 1 6 1; +#X connect 8 0 6 0; +#X connect 9 0 13 0; +#X connect 10 0 9 0; +#X connect 12 0 4 0; +#X connect 13 0 14 0; +#X connect 13 1 12 1; +#X connect 14 0 12 0; +#X connect 20 0 22 0; +#X connect 22 0 21 0; +#X connect 23 0 27 0; +#X connect 25 0 28 0; +#X connect 27 0 24 0; +#X connect 28 0 29 0; +#X connect 29 0 26 0; +#X connect 30 0 33 0; +#X connect 32 0 31 0; +#X connect 33 0 32 0; +#X connect 34 0 37 0; +#X connect 36 0 35 0; +#X connect 37 0 36 0; diff --git a/iemhelp/help-for++.pd b/iemhelp/help-for++.pd new file mode 100644 index 0000000..3745012 --- /dev/null +++ b/iemhelp/help-for++.pd @@ -0,0 +1,71 @@ +#N canvas 324 220 744 400 10; +#X text 9 235 (c) musil@iem.kug.ac.at; +#X text 51 248 IEM KUG; +#X text 26 260 graz \, austria 2001; +#X obj 25 52 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 65 186 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X floatatom 65 61 4 0 0 0 - - -; +#X floatatom 115 88 4 0 0 0 - - -; +#X floatatom 65 163 4 0 0 0 - - -; +#X floatatom 165 110 4 0 0 0 - - -; +#X text 7 8 for++; +#X obj 65 132 for++ 10 20 200; +#X obj 111 166 print; +#X msg 25 71 start; +#X msg 25 91 stop; +#X text 64 47 <int> first number; +#X text 115 72 <int> last number; +#X obj 237 213 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X floatatom 237 190 4 0 0 0 - - -; +#X obj 280 186 print; +#X obj 237 143 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X text 235 44 2.arg: <int> last number; +#X text 235 32 1.arg: <int> first number; +#X obj 237 162 for++ 50 40 100; +#X obj 165 166 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 337 193 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X text 67 9 counter in time-intervals; +#X text 163 181 finished; +#X text 336 208 finished; +#X obj 237 264 print finished; +#X obj 509 141 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 629 184 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X text 628 199 finished; +#X obj 509 208 timer; +#X obj 509 183 sel 0 1000; +#X floatatom 509 231 5 0 0 0 - - -; +#X obj 509 160 for++ 0 1000 1.234; +#X text 235 56 3.arg: <float> increment-delay in ms; +#X text 159 92 <float> increment-delay in ms; +#X text 40 19 increment-step-size is allways 1 or -1; +#X connect 3 0 10 0; +#X connect 5 0 10 0; +#X connect 6 0 10 1; +#X connect 7 0 4 0; +#X connect 8 0 10 2; +#X connect 10 0 7 0; +#X connect 10 0 11 0; +#X connect 10 1 23 0; +#X connect 12 0 10 0; +#X connect 13 0 10 0; +#X connect 17 0 16 0; +#X connect 19 0 22 0; +#X connect 22 0 17 0; +#X connect 22 0 18 0; +#X connect 22 1 24 0; +#X connect 23 0 28 0; +#X connect 24 0 28 0; +#X connect 29 0 35 0; +#X connect 32 0 34 0; +#X connect 33 0 32 0; +#X connect 33 1 32 1; +#X connect 35 0 33 0; +#X connect 35 1 30 0; diff --git a/iemhelp/help-gate.pd b/iemhelp/help-gate.pd new file mode 100644 index 0000000..be3af4c --- /dev/null +++ b/iemhelp/help-gate.pd @@ -0,0 +1,29 @@ +#N canvas 400 182 406 345 10; +#X text 12 294 (c) musil@iem.kug.ac.at; +#X text 54 307 IEM KUG; +#X text 29 319 graz \, austria 2001; +#X obj 9 37 bng 15 250 50 0 empty empty empty 8 -8 0 10 0 22 22; +#X msg 34 36 33; +#X msg 51 58 -3.14; +#X msg 74 100 11 22 33.33; +#X msg 64 78 open xxx; +#X msg 94 122 funny; +#X text 7 8 gate; +#X obj 95 176 toggle 15 0 empty empty empty 8 -8 0 10 0 22 22 0 1; +#X obj 9 237 print; +#X text 31 262 the original object spigot; +#X obj 55 229 bng 15 250 50 0 empty empty empty 8 -8 0 10 0 22 22; +#X text 37 272 (c) miller puckette; +#X text 44 8 interrupt or continue a stream of messages; +#X text 116 172 gate: ON / OFF; +#X obj 9 206 gate 1; +#X text 63 206 1.arg: control-state of gate [0/1] (opt.); +#X connect 3 0 17 0; +#X connect 4 0 17 0; +#X connect 5 0 17 0; +#X connect 6 0 17 0; +#X connect 7 0 17 0; +#X connect 8 0 17 0; +#X connect 10 0 17 1; +#X connect 17 0 11 0; +#X connect 17 0 13 0; diff --git a/iemhelp/help-hml_shelf~.pd b/iemhelp/help-hml_shelf~.pd new file mode 100644 index 0000000..5b04544 --- /dev/null +++ b/iemhelp/help-hml_shelf~.pd @@ -0,0 +1,96 @@ +#N canvas 105 49 623 558 10; +#X text 21 419 (c) musil@iem.kug.ac.at; +#X text 63 432 IEM KUG; +#X text 29 39 dsp ON/OFF; +#X floatatom 435 513 7 0 0 0 - - -; +#X text 491 514 dB; +#X floatatom 120 158 9 0 22000 0 - - -; +#X text 190 160 Hz; +#X floatatom 47 110 3 15 133 0 - - -; +#X floatatom 12 79 5 0 0 0 - - -; +#X text 52 80 % cpu; +#X floatatom 261 304 5 2 9999 0 - - -; +#X text 303 304 ms; +#X obj 12 59 dsp; +#X obj 12 39 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 47 393 dac~; +#X obj 47 368 gainvu~ 300; +#X obj 426 387 vu 15 120 empty empty 8 -8 0 8 -66577 -1 1 0; +#X obj 530 237 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 47 132 testtone~ 200; +#X text 38 444 graz \, austria 2001; +#X obj 114 93 init 69; +#X text 74 111 midi; +#X text 200 144 6.arg:<float> interpolation_time [ms]; +#X text 200 91 1.arg:<float> low_level [dB]; +#X text 200 101 2.arg:<float> low_freq. [Hz]; +#X text 200 112 3.arg:<float> medium_level [dB]; +#X text 200 122 4.arg:<float> high_freq. [Hz]; +#X text 200 133 5.arg:<float> high_level [dB]; +#X obj 47 328 hml_shelf~ 6 100 0 4000 -6 200; +#X obj 328 213 vsl 15 49 27.5 440 1 1 empty empty low_freq. -8 -8 0 +8 -262144 -1 -1 1200 1; +#X obj 81 216 vsl 15 81 -40 40 0 1 empty empty low_level -18 -8 0 8 +-262144 -1 -1 3000 1; +#X obj 149 215 vsl 15 81 -40 40 0 1 empty empty mid_level -10 -8 0 +8 -262144 -1 -1 4000 1; +#X obj 217 214 vsl 15 81 -40 40 0 1 empty empty high_level 0 -8 0 8 +-262144 -1 -1 3000 1; +#X text 345 207 -440Hz; +#X text 345 255 -27.5Hz; +#X text 345 231 -110Hz; +#X obj 399 213 vsl 15 49 880 14080 1 1 empty empty high_freq. -8 -8 +0 8 -262144 -1 -1 3800 1; +#X text 416 207 -14080Hz; +#X text 416 255 -880Hz; +#X text 416 231 -3520Hz; +#X floatatom 530 385 7 0 0 0 - - -; +#X text 588 387 dB; +#X floatatom 81 305 4 0 0 0 - - -; +#X floatatom 149 304 4 0 0 0 - - -; +#X floatatom 217 303 4 0 0 0 - - -; +#X floatatom 328 305 8 0 0 0 - - -; +#X floatatom 399 305 8 0 0 0 - - -; +#X text 157 8 high-middle-low-shelving-filter; +#X text 4 311 signal_in~; +#X text 97 211 +40; +#X text 99 250 0; +#X text 97 290 -40; +#X text 167 249 0; +#X text 165 289 -40; +#X text 165 210 +40; +#X text 233 209 +40; +#X text 235 248 0; +#X text 233 288 -40; +#X text 80 188 dB; +#X text 147 186 dB; +#X text 216 186 dB; +#X text 54 346 signal_out~; +#X obj 12 13 cnv 8 1 1 empty empty hml_shelf~ 1 2 1 18 -262144 -1109 +0; +#X connect 7 0 18 0; +#X connect 10 0 28 6; +#X connect 12 0 8 0; +#X connect 13 0 12 0; +#X connect 15 0 14 0; +#X connect 15 0 14 1; +#X connect 15 1 40 0; +#X connect 15 2 16 0; +#X connect 16 1 3 0; +#X connect 17 0 15 1; +#X connect 18 0 28 0; +#X connect 18 1 5 0; +#X connect 20 0 7 0; +#X connect 28 0 15 0; +#X connect 29 0 45 0; +#X connect 30 0 42 0; +#X connect 31 0 43 0; +#X connect 32 0 44 0; +#X connect 36 0 46 0; +#X connect 42 0 28 1; +#X connect 43 0 28 3; +#X connect 44 0 28 5; +#X connect 45 0 28 2; +#X connect 46 0 28 4; diff --git a/iemhelp/help-hp10_butt~.pd b/iemhelp/help-hp10_butt~.pd new file mode 100644 index 0000000..01505e7 --- /dev/null +++ b/iemhelp/help-hp10_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 387 438 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 96 154 3 15 133 0 - - -; +#X obj 96 173 mtof; +#X floatatom 96 192 9 0 22000 0 - - -; +#X text 160 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 148 217 5 2 9999 0 - - -; +#X text 189 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X obj 45 237 hp10_butt~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp10_cheb~.pd b/iemhelp/help-hp10_cheb~.pd new file mode 100644 index 0000000..2d1ad51 --- /dev/null +++ b/iemhelp/help-hp10_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 369 438 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 96 149 3 15 133 0 - - -; +#X obj 96 168 mtof; +#X floatatom 96 187 9 0 22000 0 - - -; +#X text 160 188 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 148 217 5 2 9999 0 - - -; +#X text 189 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 159 238 <- double-click; +#X obj 45 237 hp10_cheb~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp10_crit~.pd b/iemhelp/help-hp10_crit~.pd new file mode 100644 index 0000000..28cb9fd --- /dev/null +++ b/iemhelp/help-hp10_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 371 440 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 96 149 3 15 133 0 - - -; +#X obj 96 168 mtof; +#X floatatom 96 187 9 0 22000 0 - - -; +#X text 160 188 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 148 217 5 2 9999 0 - - -; +#X text 189 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 159 238 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp10_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp1~.pd b/iemhelp/help-hp1~.pd new file mode 100644 index 0000000..da99ae9 --- /dev/null +++ b/iemhelp/help-hp1~.pd @@ -0,0 +1,55 @@ +#N canvas 245 78 365 483 10; +#X text 7 256 ~signal_in~; +#X text 16 403 (c) musil@iem.kug.ac.at; +#X text 58 416 IEM KUG; +#X text 32 44 dsp ON/OFF; +#X floatatom 83 173 3 15 133 0 - - -; +#X obj 83 192 mtof; +#X floatatom 83 211 9 0 22000 0 - - -; +#X text 147 212 Hz; +#X text 62 285 ~signal_out~; +#X floatatom 180 265 7 0 0 0 - - -; +#X text 231 266 dB; +#X floatatom 123 154 9 0 22000 0 - - -; +#X text 187 155 Hz; +#X floatatom 50 115 3 15 133 0 - - -; +#X floatatom 15 84 5 0 0 0 - - -; +#X text 54 85 % cpu; +#X floatatom 117 246 5 2 9999 0 - - -; +#X text 158 247 ms; +#X obj 15 64 dsp; +#X obj 15 44 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 50 330 dac~; +#X obj 50 305 gainvu~ 300; +#X obj 227 143 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 291 174 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 50 134 testtone~ 200; +#X text 33 428 graz \, austria 2001; +#X obj 114 100 init 69; +#X text 77 116 midi; +#X text 14 355 1.arg:<float> cutoff_freq. [Hz]; +#X obj 50 271 hp1~ 440 200; +#X text 14 365 2.arg:<float> interpolation_time [ms]; +#X floatatom 280 320 7 0 0 0 - - -; +#X text 331 321 dB; +#X obj 13 13 cnv 8 1 1 empty empty hp1~ 1 2 1 18 -262144 -1109 0; +#X text 83 6 highpass 1.order; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 29 1; +#X connect 13 0 24 0; +#X connect 16 0 29 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 31 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 29 0; +#X connect 24 1 11 0; +#X connect 26 0 13 0; +#X connect 29 0 21 0; diff --git a/iemhelp/help-hp2_butt~.pd b/iemhelp/help-hp2_butt~.pd new file mode 100644 index 0000000..3913e9b --- /dev/null +++ b/iemhelp/help-hp2_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 389 440 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 155 3 15 133 0 - - -; +#X obj 93 174 mtof; +#X floatatom 93 193 9 0 22000 0 - - -; +#X text 157 194 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 252 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 324 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 108 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 286 7 0 0 0 - - -; +#X text 357 287 dB; +#X text 152 236 <- double-click; +#X obj 45 237 hp2_butt~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp2_cheb~.pd b/iemhelp/help-hp2_cheb~.pd new file mode 100644 index 0000000..d1751a7 --- /dev/null +++ b/iemhelp/help-hp2_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 375 444 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 129 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X obj 45 237 hp2_cheb~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp2_crit~.pd b/iemhelp/help-hp2_crit~.pd new file mode 100644 index 0000000..94b1b90 --- /dev/null +++ b/iemhelp/help-hp2_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 379 448 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 129 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp2_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp2~.pd b/iemhelp/help-hp2~.pd new file mode 100644 index 0000000..8b29a1d --- /dev/null +++ b/iemhelp/help-hp2~.pd @@ -0,0 +1,59 @@ +#N canvas 278 100 398 463 10; +#X text 6 249 ~signal_in~; +#X text 15 396 (c) musil@iem.kug.ac.at; +#X text 57 409 IEM KUG; +#X text 31 37 dsp ON/OFF; +#X floatatom 83 165 3 15 133 0 - - -; +#X obj 83 184 mtof; +#X floatatom 83 203 9 0 22000 0 - - -; +#X text 147 204 Hz; +#X text 61 278 ~signal_out~; +#X floatatom 213 270 7 0 0 0 - - -; +#X text 264 271 dB; +#X floatatom 122 147 9 0 22000 0 - - -; +#X text 186 148 Hz; +#X floatatom 49 108 3 15 133 0 - - -; +#X floatatom 14 77 5 0 0 0 - - -; +#X text 54 78 % cpu; +#X floatatom 152 244 5 2 9999 0 - - -; +#X text 193 245 ms; +#X obj 14 57 dsp; +#X floatatom 117 226 4 0.01 1000 0 - - -; +#X text 152 226 Q; +#X text 14 358 2.arg:<float> Q [-]; +#X text 14 368 3.arg:<float> interpolation_time [ms]; +#X obj 14 37 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 49 323 dac~; +#X obj 49 298 gainvu~ 300; +#X obj 261 148 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 314 167 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 49 127 testtone~ 200; +#X text 32 421 graz \, austria 2001; +#X obj 113 93 init 69; +#X text 76 109 midi; +#X text 14 348 1.arg:<float> cutoff_freq. [Hz]; +#X obj 49 264 hp2~ 440 0.707 200; +#X floatatom 301 313 7 0 0 0 - - -; +#X text 352 314 dB; +#X obj 13 13 cnv 8 1 1 empty empty hp2~ 1 2 1 18 -262144 -1109 0; +#X text 83 6 highpass 2.order; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 28 0; +#X connect 16 0 33 3; +#X connect 18 0 14 0; +#X connect 19 0 33 2; +#X connect 23 0 18 0; +#X connect 25 0 24 0; +#X connect 25 0 24 1; +#X connect 25 1 34 0; +#X connect 25 2 26 0; +#X connect 26 1 9 0; +#X connect 27 0 25 1; +#X connect 28 0 33 0; +#X connect 28 1 11 0; +#X connect 30 0 13 0; +#X connect 33 0 25 0; diff --git a/iemhelp/help-hp3_butt~.pd b/iemhelp/help-hp3_butt~.pd new file mode 100644 index 0000000..663b17a --- /dev/null +++ b/iemhelp/help-hp3_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 387 438 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 155 3 15 133 0 - - -; +#X obj 93 174 mtof; +#X floatatom 93 193 9 0 22000 0 - - -; +#X text 157 194 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 252 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 324 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 286 7 0 0 0 - - -; +#X text 357 287 dB; +#X obj 45 237 hp3_butt~ 440 200; +#X text 28 394 graz \, austria 2003; +#X text 152 236 <- double-click; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 31 1; +#X connect 13 0 24 0; +#X connect 16 0 31 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 31 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 31 0 21 0; diff --git a/iemhelp/help-hp3_cheb~.pd b/iemhelp/help-hp3_cheb~.pd new file mode 100644 index 0000000..31ea530 --- /dev/null +++ b/iemhelp/help-hp3_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 373 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 129 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp3_cheb~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp3_crit~.pd b/iemhelp/help-hp3_crit~.pd new file mode 100644 index 0000000..a28416d --- /dev/null +++ b/iemhelp/help-hp3_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 375 444 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 129 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp3_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp4_butt~.pd b/iemhelp/help-hp4_butt~.pd new file mode 100644 index 0000000..4070aa4 --- /dev/null +++ b/iemhelp/help-hp4_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 391 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 155 3 15 133 0 - - -; +#X obj 93 174 mtof; +#X floatatom 93 193 9 0 22000 0 - - -; +#X text 157 194 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 252 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 324 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 108 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 286 7 0 0 0 - - -; +#X text 357 287 dB; +#X text 152 236 <- double-click; +#X obj 45 237 hp4_butt~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp4_cheb~.pd b/iemhelp/help-hp4_cheb~.pd new file mode 100644 index 0000000..b7a18f2 --- /dev/null +++ b/iemhelp/help-hp4_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 373 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 129 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X obj 45 237 hp4_cheb~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp4_crit~.pd b/iemhelp/help-hp4_crit~.pd new file mode 100644 index 0000000..2dd2227 --- /dev/null +++ b/iemhelp/help-hp4_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 375 444 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 129 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp4_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp5_butt~.pd b/iemhelp/help-hp5_butt~.pd new file mode 100644 index 0000000..e60a3ed --- /dev/null +++ b/iemhelp/help-hp5_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 391 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 155 3 15 133 0 - - -; +#X obj 93 174 mtof; +#X floatatom 93 193 9 0 22000 0 - - -; +#X text 157 194 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 252 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 324 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 286 7 0 0 0 - - -; +#X text 357 287 dB; +#X text 152 236 <- double-click; +#X text 29 394 graz \, austria 2003; +#X obj 45 237 hp5_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp5_cheb~.pd b/iemhelp/help-hp5_cheb~.pd new file mode 100644 index 0000000..6c6bf3c --- /dev/null +++ b/iemhelp/help-hp5_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 373 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp5_cheb~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp5_crit~.pd b/iemhelp/help-hp5_crit~.pd new file mode 100644 index 0000000..48bb0ab --- /dev/null +++ b/iemhelp/help-hp5_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 375 444 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp5_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp6_butt~.pd b/iemhelp/help-hp6_butt~.pd new file mode 100644 index 0000000..2fc57df --- /dev/null +++ b/iemhelp/help-hp6_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 389 440 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 155 3 15 133 0 - - -; +#X obj 93 174 mtof; +#X floatatom 93 193 9 0 22000 0 - - -; +#X text 157 194 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 252 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 324 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 286 7 0 0 0 - - -; +#X text 357 287 dB; +#X text 152 236 <- double-click; +#X obj 45 237 hp6_butt~ 440 200; +#X text 29 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp6_cheb~.pd b/iemhelp/help-hp6_cheb~.pd new file mode 100644 index 0000000..f9ba90e --- /dev/null +++ b/iemhelp/help-hp6_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 371 440 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X obj 45 237 hp6_cheb~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp6_crit~.pd b/iemhelp/help-hp6_crit~.pd new file mode 100644 index 0000000..ed5b146 --- /dev/null +++ b/iemhelp/help-hp6_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 373 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp6_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp7_butt~.pd b/iemhelp/help-hp7_butt~.pd new file mode 100644 index 0000000..b90af76 --- /dev/null +++ b/iemhelp/help-hp7_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 391 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 155 3 15 133 0 - - -; +#X obj 93 174 mtof; +#X floatatom 93 193 9 0 22000 0 - - -; +#X text 157 194 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 252 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 324 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 286 7 0 0 0 - - -; +#X text 357 287 dB; +#X text 152 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp7_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp7_cheb~.pd b/iemhelp/help-hp7_cheb~.pd new file mode 100644 index 0000000..df6a19e --- /dev/null +++ b/iemhelp/help-hp7_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 371 440 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 66 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X obj 45 237 hp7_cheb~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp7_crit~.pd b/iemhelp/help-hp7_crit~.pd new file mode 100644 index 0000000..af21913 --- /dev/null +++ b/iemhelp/help-hp7_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 373 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 66 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp7_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp8_butt~.pd b/iemhelp/help-hp8_butt~.pd new file mode 100644 index 0000000..d5f4f8c --- /dev/null +++ b/iemhelp/help-hp8_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 389 440 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 155 3 15 133 0 - - -; +#X obj 93 174 mtof; +#X floatatom 93 193 9 0 22000 0 - - -; +#X text 157 194 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 252 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 324 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 286 7 0 0 0 - - -; +#X text 357 287 dB; +#X text 152 236 <- double-click; +#X obj 45 237 hp8_butt~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp8_cheb~.pd b/iemhelp/help-hp8_cheb~.pd new file mode 100644 index 0000000..f08bc61 --- /dev/null +++ b/iemhelp/help-hp8_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 369 438 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 66 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X obj 45 237 hp8_cheb~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-hp8_crit~.pd b/iemhelp/help-hp8_crit~.pd new file mode 100644 index 0000000..ee43a55 --- /dev/null +++ b/iemhelp/help-hp8_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 371 440 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 66 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp8_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp9_butt~.pd b/iemhelp/help-hp9_butt~.pd new file mode 100644 index 0000000..58baf0e --- /dev/null +++ b/iemhelp/help-hp9_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 387 438 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 154 3 15 133 0 - - -; +#X obj 93 173 mtof; +#X floatatom 93 192 9 0 22000 0 - - -; +#X text 157 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp9_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp9_cheb~.pd b/iemhelp/help-hp9_cheb~.pd new file mode 100644 index 0000000..fbac959 --- /dev/null +++ b/iemhelp/help-hp9_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 369 438 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 149 3 15 133 0 - - -; +#X obj 93 168 mtof; +#X floatatom 93 187 9 0 22000 0 - - -; +#X text 157 188 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 159 238 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp9_cheb~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-hp9_crit~.pd b/iemhelp/help-hp9_crit~.pd new file mode 100644 index 0000000..fa656f2 --- /dev/null +++ b/iemhelp/help-hp9_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 371 440 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 149 3 15 133 0 - - -; +#X obj 93 168 mtof; +#X floatatom 93 187 9 0 22000 0 - - -; +#X text 157 188 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 159 238 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 hp9_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-iem_anything.pd b/iemhelp/help-iem_anything.pd new file mode 100644 index 0000000..fee636c --- /dev/null +++ b/iemhelp/help-iem_anything.pd @@ -0,0 +1,137 @@ +#N canvas 194 199 775 613 10; +#X obj 21 148 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 48 148 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 89 206 print; +#X obj 89 148 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 292 148 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X obj 292 208 print; +#X msg 343 210; +#X obj 369 155 loadbang; +#X msg 369 176 set; +#X obj 26 225 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 26 280 print; +#X obj 400 382 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X obj 457 491 print; +#X msg 457 56 88; +#X msg 457 132 symbol www; +#X msg 457 75 float 77; +#X obj 137 148 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X msg 457 94 list 66; +#X msg 457 113 www; +#X msg 457 151 list www; +#X msg 457 189 list 99 888 hhh; +#X msg 457 208 float 99 888 hhh; +#X msg 457 227 symbol 99 888 hhh; +#X msg 457 170 99 888 hhh; +#X msg 457 246 kkk jjj 345; +#X msg 457 265 symbol kkk jjj 345; +#X msg 457 284 list kkk jjj 345; +#X msg 90 432; +#X obj 137 376 loadbang; +#X msg 123 401 set; +#X obj 26 252 any open filename 55; +#X obj 457 463 iem_anything; +#X obj 90 400 any; +#X obj 27 342 bang; +#X obj 27 366 del 999; +#X text 63 532 IEM KUG; +#X msg 620 205 88; +#X msg 619 281 symbol www; +#X msg 619 224 float 77; +#X msg 619 243 list 66; +#X msg 619 262 www; +#X msg 619 300 list www; +#X msg 619 338 list 99 888 hhh; +#X msg 619 357 float 99 888 hhh; +#X msg 619 376 symbol 99 888 hhh; +#X msg 619 319 99 888 hhh; +#X msg 619 395 kkk jjj 345; +#X msg 619 414 symbol kkk jjj 345; +#X msg 619 433 list kkk jjj 345; +#X msg 361 383 bang; +#X obj 540 363 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X msg 501 364 bang; +#X msg 106 307 set display this with 1 second delay; +#X obj 123 342 bang; +#X text 296 9 (like f or float for <float>-messages); +#X text 131 9 is a latch for anything; +#X obj 229 376 del 4999; +#X text 32 520 (c) musil@iem.at; +#X text 38 544 graz \, austria 2003; +#X text 298 19 (or like symbol for <symbol>-messages); +#X text 23 11 iem_anything; +#X obj 104 85 iem_anything; +#X text 195 85 arguments: any message; +#X text 96 67 <-hot; +#X text 146 67 cold->; +#X text 134 35 abbr. any; +#X obj 21 175 any; +#X obj 48 175 any 88; +#X obj 89 175 any www; +#X obj 137 175 any symbol www; +#X obj 292 175 any set 88; +#X connect 0 0 66 0; +#X connect 1 0 67 0; +#X connect 3 0 68 0; +#X connect 4 0 70 0; +#X connect 7 0 8 0; +#X connect 8 0 6 0; +#X connect 9 0 30 0; +#X connect 11 0 31 0; +#X connect 13 0 31 0; +#X connect 14 0 31 0; +#X connect 15 0 31 0; +#X connect 16 0 69 0; +#X connect 17 0 31 0; +#X connect 18 0 31 0; +#X connect 19 0 31 0; +#X connect 20 0 31 0; +#X connect 21 0 31 0; +#X connect 22 0 31 0; +#X connect 23 0 31 0; +#X connect 24 0 31 0; +#X connect 25 0 31 0; +#X connect 26 0 31 0; +#X connect 28 0 29 0; +#X connect 29 0 27 0; +#X connect 30 0 10 0; +#X connect 31 0 12 0; +#X connect 32 0 27 0; +#X connect 33 0 34 0; +#X connect 33 0 56 0; +#X connect 34 0 32 0; +#X connect 36 0 31 1; +#X connect 37 0 31 1; +#X connect 38 0 31 1; +#X connect 39 0 31 1; +#X connect 40 0 31 1; +#X connect 41 0 31 1; +#X connect 42 0 31 1; +#X connect 43 0 31 1; +#X connect 44 0 31 1; +#X connect 45 0 31 1; +#X connect 46 0 31 1; +#X connect 47 0 31 1; +#X connect 48 0 31 1; +#X connect 49 0 31 0; +#X connect 50 0 31 1; +#X connect 51 0 31 1; +#X connect 52 0 33 0; +#X connect 52 0 32 1; +#X connect 52 0 53 0; +#X connect 53 0 29 0; +#X connect 56 0 29 0; +#X connect 66 0 2 0; +#X connect 67 0 2 0; +#X connect 68 0 2 0; +#X connect 69 0 2 0; +#X connect 70 0 5 0; +#X connect 70 0 6 0; diff --git a/iemhelp/help-iem_append.pd b/iemhelp/help-iem_append.pd new file mode 100644 index 0000000..a322272 --- /dev/null +++ b/iemhelp/help-iem_append.pd @@ -0,0 +1,72 @@ +#N canvas 231 172 609 499 10; +#X obj 117 376 print; +#X msg 117 61 1; +#X obj 238 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 117 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 117 149 11 22; +#X msg 238 150 33 44; +#X msg 238 63 3; +#X msg 117 105 symbol foo; +#X msg 238 107 symbol zyx; +#X msg 117 83 float 1.1; +#X msg 238 85 float 3.3; +#X msg 117 127 set; +#X msg 238 128 open; +#X msg 117 172 list -55 -66; +#X msg 238 172 list -77 -88; +#X msg 238 195 list bbb 987; +#X msg 117 195 list aaa 123; +#X msg 117 218 jkl 555 uuu; +#X msg 238 218 poi 777 ttt; +#X obj 191 377 route bang float symbol list; +#X obj 242 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 281 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 324 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 367 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 421 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 400 376 anything; +#X text 262 39 bang clears message-buffer; +#X text 75 421 (c) musil@iem.kug.ac.at; +#X text 117 434 IEM KUG; +#X text 218 302 initials-arguments:; +#X text 109 7 merge the head-message in front of the tail-message; +#X text 92 446 graz \, austria 2003; +#X text 224 275 <- cold inlet; +#X text 122 274 <- hot inlet; +#X text 13 7 iem_append; +#X text 34 284 head of output-message; +#X text 226 285 tail of output-message; +#X text 213 313 tail of output-message; +#X obj 117 300 iem_append 0.5; +#X connect 1 0 38 0; +#X connect 2 0 38 1; +#X connect 3 0 38 0; +#X connect 4 0 38 0; +#X connect 5 0 38 1; +#X connect 6 0 38 1; +#X connect 7 0 38 0; +#X connect 8 0 38 1; +#X connect 9 0 38 0; +#X connect 10 0 38 1; +#X connect 11 0 38 0; +#X connect 12 0 38 1; +#X connect 13 0 38 0; +#X connect 14 0 38 1; +#X connect 15 0 38 1; +#X connect 16 0 38 0; +#X connect 17 0 38 0; +#X connect 18 0 38 1; +#X connect 19 0 20 0; +#X connect 19 1 21 0; +#X connect 19 2 22 0; +#X connect 19 3 23 0; +#X connect 19 4 24 0; +#X connect 38 0 0 0; +#X connect 38 0 19 0; diff --git a/iemhelp/help-iem_blocksize~.pd b/iemhelp/help-iem_blocksize~.pd new file mode 100644 index 0000000..05d275e --- /dev/null +++ b/iemhelp/help-iem_blocksize~.pd @@ -0,0 +1,37 @@ +#N canvas 184 90 489 296 10; +#X obj 12 66 dsp; +#X floatatom 12 93 5 0 0 0 - - -; +#X obj 12 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 47 217 (c) musil@iem.kug.ac.at; +#X text 89 230 IEM KUG; +#X text 64 242 graz \, austria 2003; +#X obj 92 106 osc~ 440; +#X floatatom 92 163 7 0 0 0 - - -; +#X obj 92 183 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 40 37 <- toggle here; +#N canvas 383 167 454 304 down 0; +#X obj 98 74 inlet~; +#X obj 188 79 block~ 32 1 0.5; +#X obj 98 161 outlet; +#X obj 98 132 iem_blocksize~; +#X connect 0 0 3 0; +#X connect 3 0 2 0; +#X restore 305 132 pd down; +#X floatatom 305 162 7 0 0 0 - - -; +#X obj 305 182 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 11 6 iem_blocksize~; +#X text 131 8 output the current blocksize of a window; +#X obj 92 131 iem_blocksize~; +#X text 143 163 Samples; +#X text 354 161 Samples; +#X connect 0 0 1 0; +#X connect 2 0 0 0; +#X connect 6 0 10 0; +#X connect 6 0 15 0; +#X connect 7 0 8 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 15 0 7 0; diff --git a/iemhelp/help-iem_i_route.pd b/iemhelp/help-iem_i_route.pd new file mode 100644 index 0000000..4d0b3c7 --- /dev/null +++ b/iemhelp/help-iem_i_route.pd @@ -0,0 +1,132 @@ +#N canvas 167 225 749 365 10; +#X floatatom 25 136 4 0 0 0 - - -; +#X obj 25 161 iem_i_route 3 7; +#X obj 25 197 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 45 197 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 65 197 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 85 197 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 105 197 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X floatatom 133 189 4 0 0 0 - - -; +#X obj 133 214 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X floatatom 201 135 4 0 0 0 - - -; +#X obj 569 132 print rejected; +#X floatatom 469 20 4 0 0 0 - - -; +#X obj 191 204 iiroute 2 5 _______; +#X obj 191 182 pack 0 0; +#X obj 201 157 t f f; +#X floatatom 191 230 2 0 0 0 - - -; +#X obj 191 255 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X floatatom 223 230 2 0 0 0 - - -; +#X obj 223 255 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X floatatom 255 230 2 0 0 0 - - -; +#X obj 255 255 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X floatatom 287 230 2 0 0 0 - - -; +#X obj 287 255 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X obj 319 230 print rejected; +#X obj 469 42 t f b f; +#X obj 469 86 pack 0 s 0; +#X obj 487 65 symbol gain; +#X obj 469 108 iiroute 4 6 10; +#X floatatom 469 300 5 0 0 0 - - -; +#X floatatom 495 239 5 0 0 0 - - -; +#X obj 469 318 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 319 252 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 495 257 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 521 178 5 0 0 0 - - -; +#X obj 521 196 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 550 133 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 521 156 route gain delay; +#X obj 495 218 route gain delay; +#X obj 469 278 route gain delay; +#X floatatom 566 176 5 0 0 0 - - -; +#X obj 566 194 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 540 239 5 0 0 0 - - -; +#X obj 540 257 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 514 300 5 0 0 0 - - -; +#X obj 514 318 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 620 7 4 0 0 0 - - -; +#X obj 620 29 t f b f; +#X obj 624 93 pack 0 s 0; +#X obj 638 52 symbol delay; +#X obj 718 47 - 8; +#X text 53 39 1.arg: <int> first route-item; +#X text 53 52 2.arg: <int> last route-item; +#X text 60 304 IEM KUG; +#X text 33 290 (c) musil@iem.at; +#X text 35 316 graz \, austria 2003; +#X text 11 8 iem_i_route; +#X text 102 8 route only list with prepending floats (integers); +#X text 215 76 (opt. \, default 0); +#X text 53 64 3.arg: <int> offset \, adding to first and last; +#X obj 562 62 - 5; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 1 2 4 0; +#X connect 1 3 5 0; +#X connect 1 4 6 0; +#X connect 1 5 7 0; +#X connect 7 0 8 0; +#X connect 9 0 14 0; +#X connect 11 0 24 0; +#X connect 12 0 15 0; +#X connect 12 1 17 0; +#X connect 12 2 19 0; +#X connect 12 3 21 0; +#X connect 12 4 23 0; +#X connect 12 4 31 0; +#X connect 13 0 12 0; +#X connect 14 0 13 0; +#X connect 14 1 13 1; +#X connect 15 0 16 0; +#X connect 17 0 18 0; +#X connect 19 0 20 0; +#X connect 21 0 22 0; +#X connect 24 0 25 0; +#X connect 24 1 26 0; +#X connect 24 2 59 0; +#X connect 25 0 27 0; +#X connect 26 0 25 1; +#X connect 27 0 38 0; +#X connect 27 1 37 0; +#X connect 27 2 36 0; +#X connect 27 3 10 0; +#X connect 27 3 35 0; +#X connect 28 0 30 0; +#X connect 29 0 32 0; +#X connect 33 0 34 0; +#X connect 36 0 33 0; +#X connect 36 1 39 0; +#X connect 37 0 29 0; +#X connect 37 1 41 0; +#X connect 38 0 28 0; +#X connect 38 1 43 0; +#X connect 39 0 40 0; +#X connect 41 0 42 0; +#X connect 43 0 44 0; +#X connect 45 0 46 0; +#X connect 46 0 47 0; +#X connect 46 1 48 0; +#X connect 46 2 49 0; +#X connect 47 0 27 0; +#X connect 48 0 47 1; +#X connect 49 0 47 2; +#X connect 59 0 25 2; diff --git a/iemhelp/help-iem_pbank.pbank b/iemhelp/help-iem_pbank.pbank new file mode 100644 index 0000000..d6b1249 --- /dev/null +++ b/iemhelp/help-iem_pbank.pbank @@ -0,0 +1,10 @@ +1,2,3,4,5,6,abc; +11,12,13,14,15,16,def; +21,22,23,24,25,26,ghi; +31,32,33,34,35,36,jkl; +41,42,43,44,45,46,mno; +51,52,53,54,55,56,pqr; +61,62,63,64,65,66,stu; +71,72,73,74,75,76,vwx; +81,82,83,84,85,86,y_z; +91,92,93,94,95,96,+-+; diff --git a/iemhelp/help-iem_pbank_csv.pd b/iemhelp/help-iem_pbank_csv.pd new file mode 100644 index 0000000..84c6ec0 --- /dev/null +++ b/iemhelp/help-iem_pbank_csv.pd @@ -0,0 +1,158 @@ +#N canvas 24 9 930 567 10; +#X obj 188 46 pp 0; +#X floatatom 188 23 5 0 0 0 - - -; +#X floatatom 224 31 5 0 0 0 - - -; +#X floatatom 260 43 5 0 0 0 - - -; +#X floatatom 295 52 5 0 0 0 - - -; +#X floatatom 330 61 5 0 0 0 - - -; +#X obj 224 54 pp 1; +#X obj 260 66 pp 2; +#X obj 295 75 pp 3; +#X obj 330 84 pp 4; +#X text 25 482 2.arg: <float> nr. of lines = parameter-sets; +#X text 329 31 input: <list> of <float> para-index; +#X text 370 43 + <float/sym> parameter; +#X obj 593 112 openpanel; +#X obj 593 91 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 681 94 bng 15 250 50 0 empty empty empty 20 8 0 8 -262144 -1 +-1; +#X obj 681 115 savepanel; +#X obj 227 421 print out; +#X floatatom 378 347 5 0 9 0 - - -; +#X text 380 328 <float> line number for recall and store; +#X msg 346 222 recall; +#X msg 323 247 store; +#X text 654 221 the 2nd symbol of read- or write-message; +#X text 655 235 should have 3 characters:; +#X text 656 251 1st char is the kind of separator:; +#X text 672 262 b .. blank or space; +#X text 671 272 c .. colon; +#X text 671 281 s .. semicolon; +#X text 671 291 t .. tabulator; +#X text 429 339 0 <= n < number of lines; +#X text 251 119 prepend column-number of parameter; +#X text 654 309 2nd char is the kind of end_of_line:; +#X text 669 320 b .. blank or space + return; +#X text 668 330 c .. colon + return; +#X text 668 339 s .. semicolon + return; +#X text 668 349 r .. return only; +#X text 655 364 3nd char is the kind of operating-system:; +#X text 670 375 l .. linux; +#X text 669 384 w .. windows; +#X text 671 395 m .. macintosh; +#X text 8 2 iem_pbank_csv; +#X text 109 2 parameter-bank with csv-syntax; +#X obj 39 282 pp 0; +#X msg 369 195 recall 1 5; +#X floatatom 366 71 5 0 0 0 - - -; +#X obj 366 94 pp 5; +#X symbolatom 401 78 10 0 0 0 - - -; +#X obj 401 102 pp 6; +#X msg 593 137 read \$1 csl; +#X obj 398 394 loadbang; +#X obj 398 436 pp add; +#X msg 398 415 0 aaa \, 1 bbb \, 2 ccc \, 3 ddd \, 4 eee \, 5 fff \, +6 ggg; +#X obj 479 482 r aaa; +#X floatatom 479 505 5 0 0 0 - - -; +#X floatatom 514 505 5 0 0 0 - - -; +#X obj 514 482 r bbb; +#X floatatom 549 505 5 0 0 0 - - -; +#X obj 549 482 r ccc; +#X symbolatom 692 505 10 0 0 0 - - -; +#X obj 479 526 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 514 527 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 549 527 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 692 528 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 692 482 r ggg; +#X floatatom 585 505 5 0 0 0 - - -; +#X floatatom 620 505 5 0 0 0 - - -; +#X floatatom 655 505 5 0 0 0 - - -; +#X obj 585 526 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 620 527 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 655 527 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 585 482 r ddd; +#X obj 620 482 r eee; +#X obj 655 482 r fff; +#X obj 227 372 iem_pbank_csv 7 10; +#X obj 330 457 list2send 7; +#X msg 16 197 1.1 2.1 3.1 4.1 5.1 6.1 aa1; +#X msg 39 220 1.2 2.2 3.2 4.2 5.2 6.2 bb2; +#X msg 61 244 1.3 2.3 3.3 4.3 5.3 6.3 cc3; +#X text 386 55 stored in input-buffer; +#X text 25 472 1.arg: <float> nr. of parameters; +#X text 18 168 list of all parameters of a line; +#X text 41 179 stored in input-buffer; +#X msg 682 137 write \$1 csl; +#X text 361 246 store input-buffer to memory-line of 2nd input; +#X text 390 222 recall memory-line to input-buffer; +#X text 398 231 and output all parameter of this line; +#X obj 330 403 pp from; +#X msg 542 167 read iemhelp/help-iem_pbank.pbank csl; +#X msg 547 190 read help-iem_pbank.pbank csl; +#X obj 21 357 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 38 355 output input-buffer; +#X msg 387 168 recall 3 2; +#X obj 130 424 print zzz; +#X connect 0 0 73 0; +#X connect 1 0 0 0; +#X connect 2 0 6 0; +#X connect 3 0 7 0; +#X connect 4 0 8 0; +#X connect 5 0 9 0; +#X connect 6 0 73 0; +#X connect 7 0 73 0; +#X connect 8 0 73 0; +#X connect 9 0 73 0; +#X connect 13 0 48 0; +#X connect 14 0 13 0; +#X connect 15 0 16 0; +#X connect 16 0 82 0; +#X connect 18 0 73 1; +#X connect 20 0 73 0; +#X connect 21 0 73 0; +#X connect 42 0 73 0; +#X connect 43 0 73 0; +#X connect 44 0 45 0; +#X connect 45 0 73 0; +#X connect 46 0 47 0; +#X connect 47 0 73 0; +#X connect 48 0 73 0; +#X connect 49 0 51 0; +#X connect 50 0 74 0; +#X connect 51 0 50 0; +#X connect 52 0 53 0; +#X connect 53 0 59 0; +#X connect 54 0 60 0; +#X connect 55 0 54 0; +#X connect 56 0 61 0; +#X connect 57 0 56 0; +#X connect 58 0 62 0; +#X connect 63 0 58 0; +#X connect 64 0 67 0; +#X connect 65 0 68 0; +#X connect 66 0 69 0; +#X connect 70 0 64 0; +#X connect 71 0 65 0; +#X connect 72 0 66 0; +#X connect 73 0 17 0; +#X connect 73 1 86 0; +#X connect 73 1 92 0; +#X connect 75 0 42 0; +#X connect 76 0 42 0; +#X connect 77 0 42 0; +#X connect 82 0 73 0; +#X connect 86 0 74 0; +#X connect 87 0 73 0; +#X connect 88 0 73 0; +#X connect 89 0 73 0; +#X connect 91 0 73 0; diff --git a/iemhelp/help-iem_prepend.pd b/iemhelp/help-iem_prepend.pd new file mode 100644 index 0000000..c330b74 --- /dev/null +++ b/iemhelp/help-iem_prepend.pd @@ -0,0 +1,72 @@ +#N canvas 231 172 611 501 10; +#X obj 117 376 print; +#X msg 117 61 1; +#X obj 238 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 117 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 117 149 11 22; +#X msg 238 150 33 44; +#X msg 238 63 3; +#X msg 117 105 symbol foo; +#X msg 238 107 symbol zyx; +#X msg 117 83 float 1.1; +#X msg 238 85 float 3.3; +#X msg 117 127 set; +#X msg 238 128 open; +#X msg 117 172 list -55 -66; +#X msg 238 172 list -77 -88; +#X msg 238 195 list bbb 987; +#X msg 117 195 list aaa 123; +#X msg 117 218 jkl 555 uuu; +#X msg 238 218 poi 777 ttt; +#X obj 191 377 route bang float symbol list; +#X obj 242 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 281 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 324 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 367 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 421 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 400 376 anything; +#X text 262 39 bang clears message-buffer; +#X text 75 421 (c) musil@iem.kug.ac.at; +#X text 117 434 IEM KUG; +#X text 13 7 iem_prepend; +#X text 213 313 head of output-message; +#X text 218 302 initials-arguments:; +#X text 109 7 merge the head-message in front of the tail-message; +#X text 92 446 graz \, austria 2003; +#X text 34 284 tail of output-message; +#X text 226 285 head of output-message; +#X text 224 275 <- cold inlet; +#X text 122 274 <- hot inlet; +#X obj 117 300 iem_prepend set; +#X connect 1 0 38 0; +#X connect 2 0 38 1; +#X connect 3 0 38 0; +#X connect 4 0 38 0; +#X connect 5 0 38 1; +#X connect 6 0 38 1; +#X connect 7 0 38 0; +#X connect 8 0 38 1; +#X connect 9 0 38 0; +#X connect 10 0 38 1; +#X connect 11 0 38 0; +#X connect 12 0 38 1; +#X connect 13 0 38 0; +#X connect 14 0 38 1; +#X connect 15 0 38 1; +#X connect 16 0 38 0; +#X connect 17 0 38 0; +#X connect 18 0 38 1; +#X connect 19 0 20 0; +#X connect 19 1 21 0; +#X connect 19 2 22 0; +#X connect 19 3 23 0; +#X connect 19 4 24 0; +#X connect 38 0 0 0; +#X connect 38 0 19 0; diff --git a/iemhelp/help-iem_receive.pd b/iemhelp/help-iem_receive.pd new file mode 100644 index 0000000..e59d7ef --- /dev/null +++ b/iemhelp/help-iem_receive.pd @@ -0,0 +1,39 @@ +#N canvas 115 112 637 338 10; +#X obj 62 204 iem_receive aaa; +#X obj 222 204 iem_r bbb; +#X floatatom 62 236 5 0 0 0 - - -; +#X floatatom 222 236 5 0 0 0 - - -; +#X msg 66 60 \; aaa 33 \; bbb 44; +#X obj 108 232 print a; +#X obj 271 231 print b; +#X msg 62 172 set ccc; +#X msg 222 173 set ddd; +#X msg 401 61 \; ccc 55 \; ddd 66; +#X msg 35 147 set aaa; +#X msg 200 147 set bbb; +#X msg 124 178 clear; +#X msg 287 178 clear; +#X text 11 12 iem_receive; +#X text 106 12 receive-object with changeable receive-label; +#X text 287 204 1.arg: <symbol> or <float> receive-label; +#X floatatom 82 257 5 0 0 0 - - -; +#X obj 54 260 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 236 261 5 0 0 0 - - -; +#X obj 208 264 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 155 60 \; aaa set 11 \; bbb set 22; +#X connect 0 0 2 0; +#X connect 0 0 5 0; +#X connect 1 0 3 0; +#X connect 1 0 6 0; +#X connect 2 0 17 0; +#X connect 2 0 18 0; +#X connect 3 0 19 0; +#X connect 3 0 20 0; +#X connect 7 0 0 0; +#X connect 8 0 1 0; +#X connect 10 0 0 0; +#X connect 11 0 1 0; +#X connect 12 0 0 0; +#X connect 13 0 1 0; diff --git a/iemhelp/help-iem_route.pd b/iemhelp/help-iem_route.pd new file mode 100644 index 0000000..79d68b7 --- /dev/null +++ b/iemhelp/help-iem_route.pd @@ -0,0 +1,41 @@ +#N canvas 318 30 489 283 10; +#X obj 26 113 route red black; +#X msg 26 79 red; +#X msg 61 79 black; +#X msg 26 139 3; +#X msg 76 139 4; +#X floatatom 26 173 4 0 0; +#X obj 157 115 route red black; +#X msg 157 81 red; +#X msg 192 81 black; +#X floatatom 157 175 4 0 0; +#X obj 157 144 f 3; +#X obj 207 143 f 4; +#X text 30 211 OK; +#X text 156 210 failed !; +#X msg 299 81 red; +#X msg 334 81 black; +#X floatatom 299 175 4 0 0; +#X obj 299 144 f 3; +#X obj 363 142 f 4; +#X obj 299 115 iem_route red black; +#X text 298 209 that's the difference; +#X text 35 30 iem_route quite similar to route \, except....; +#X connect 0 0 3 0; +#X connect 0 1 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 5 0; +#X connect 4 0 5 0; +#X connect 6 0 10 0; +#X connect 6 1 11 0; +#X connect 7 0 6 0; +#X connect 8 0 6 0; +#X connect 10 0 9 0; +#X connect 11 0 9 0; +#X connect 14 0 19 0; +#X connect 15 0 19 0; +#X connect 17 0 16 0; +#X connect 18 0 16 0; +#X connect 19 0 17 0; +#X connect 19 1 18 0; diff --git a/iemhelp/help-iem_samplerate~.pd b/iemhelp/help-iem_samplerate~.pd new file mode 100644 index 0000000..f7aca46 --- /dev/null +++ b/iemhelp/help-iem_samplerate~.pd @@ -0,0 +1,37 @@ +#N canvas 184 90 489 296 10; +#X obj 12 66 dsp; +#X floatatom 12 93 5 0 0 0 - - -; +#X obj 12 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 47 217 (c) musil@iem.kug.ac.at; +#X text 89 230 IEM KUG; +#X text 64 242 graz \, austria 2003; +#X obj 92 131 iem_samplerate~; +#X obj 92 106 osc~ 440; +#X floatatom 92 163 7 0 0 0 - - -; +#X text 143 163 Hz; +#X obj 92 183 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 40 37 <- toggle here; +#N canvas 383 167 452 302 down 0; +#X obj 98 74 inlet~; +#X obj 188 79 block~ 32 1 0.5; +#X obj 98 132 iem_samplerate~; +#X obj 98 161 outlet; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X restore 305 132 pd down; +#X floatatom 305 162 7 0 0 0 - - -; +#X text 356 162 Hz; +#X obj 305 182 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 131 8 output the current samplerate of a window; +#X text 11 6 iem_samplerate~; +#X connect 0 0 1 0; +#X connect 2 0 0 0; +#X connect 6 0 8 0; +#X connect 7 0 6 0; +#X connect 7 0 12 0; +#X connect 8 0 10 0; +#X connect 12 0 13 0; +#X connect 13 0 15 0; diff --git a/iemhelp/help-iem_sel_any.pd b/iemhelp/help-iem_sel_any.pd new file mode 100644 index 0000000..3718715 --- /dev/null +++ b/iemhelp/help-iem_sel_any.pd @@ -0,0 +1,53 @@ +#N canvas 480 230 729 405 10; +#X obj 356 313 print; +#X obj 145 137 modulo_counter 4 0; +#X floatatom 145 159 2 0 3 0 - - -; +#X obj 472 46 loadbang; +#X obj 145 111 bang; +#X floatatom 237 87 5 0 3 0 - - -; +#X obj 237 110 t b f; +#X obj 237 66 init 0; +#X text 85 337 (c) musil@iem.kug.ac.at; +#X text 127 350 IEM KUG; +#X msg 90 152 0; +#X msg 90 173 1; +#X msg 90 193 2; +#X msg 90 214 3; +#X text 371 290 2.outlet: pure message (symbol becomes anything-selector) +; +#X text 234 284 1.outlet:; +#X text 12 7 iem_sel_any; +#X obj 472 96 pp add; +#X msg 472 71 0 aa \, 1 bbb \, 2 cccc \, 3 ddddd; +#X text 102 362 graz \, austria 2003; +#X text 162 7 control a message-box with multiple content; +#X text 378 267 1.arg: <float> max. number of messages; +#X msg 396 206 clear; +#X text 401 223 <clear> message : clears content; +#X text 171 171 <float> message-index; +#X text 511 141 adds a new entry into object; +#X obj 277 268 iem_sel_any 10; +#X text 462 126 <add> message + <float> index + <symbol> entry; +#X text 147 295 <set> message + <symbol> entry; +#X text 45 84 click here ->; +#X obj 145 84 cnv 15 34 17 empty empty empty 20 12 0 14 -225280 -66577 +0; +#X msg 145 84 ddddd; +#X connect 1 0 2 0; +#X connect 2 0 26 0; +#X connect 3 0 18 0; +#X connect 4 0 1 0; +#X connect 5 0 6 0; +#X connect 6 0 1 0; +#X connect 6 1 1 1; +#X connect 7 0 5 0; +#X connect 10 0 26 0; +#X connect 11 0 26 0; +#X connect 12 0 26 0; +#X connect 13 0 26 0; +#X connect 17 0 26 0; +#X connect 18 0 17 0; +#X connect 22 0 26 0; +#X connect 26 0 31 0; +#X connect 26 1 0 0; +#X connect 31 0 4 0; diff --git a/iemhelp/help-iem_send.pd b/iemhelp/help-iem_send.pd new file mode 100644 index 0000000..1debc06 --- /dev/null +++ b/iemhelp/help-iem_send.pd @@ -0,0 +1,62 @@ +#N canvas 115 112 707 469 10; +#X floatatom 43 317 5 0 0 0 - - -; +#X msg 136 107 set ccc; +#X msg 363 104 set ddd; +#X msg 109 82 set aaa; +#X msg 341 78 set bbb; +#X msg 198 113 clear; +#X msg 428 109 clear; +#X floatatom 57 342 5 0 0 0 - - -; +#X obj 29 345 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 42 144 iem_send aaa; +#X obj 292 144 iem_s bbb; +#X obj 43 291 r aaa; +#X obj 167 291 r bbb; +#X obj 321 294 r ccc; +#X obj 457 294 r ddd; +#X floatatom 167 316 5 0 0 0 - - -; +#X floatatom 181 341 5 0 0 0 - - -; +#X obj 153 344 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 321 318 5 0 0 0 - - -; +#X floatatom 335 343 5 0 0 0 - - -; +#X obj 307 346 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 457 319 5 0 0 0 - - -; +#X floatatom 471 344 5 0 0 0 - - -; +#X obj 443 347 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 357 144 1.arg: <symbol> or <float> send-label; +#X floatatom 14 76 5 0 0 0 - - -; +#X text 11 12 iem_send; +#X text 106 12 send-object with changeable send-label; +#X floatatom 48 77 5 0 0 0 - - -; +#X msg 48 98 set \$1; +#X floatatom 261 80 5 0 0 0 - - -; +#X floatatom 295 81 5 0 0 0 - - -; +#X msg 295 102 set \$1; +#X connect 0 0 7 0; +#X connect 0 0 8 0; +#X connect 1 0 9 1; +#X connect 2 0 10 1; +#X connect 3 0 9 1; +#X connect 4 0 10 1; +#X connect 5 0 9 1; +#X connect 6 0 10 1; +#X connect 11 0 0 0; +#X connect 12 0 15 0; +#X connect 13 0 18 0; +#X connect 14 0 21 0; +#X connect 15 0 16 0; +#X connect 15 0 17 0; +#X connect 18 0 19 0; +#X connect 18 0 20 0; +#X connect 21 0 22 0; +#X connect 21 0 23 0; +#X connect 25 0 9 0; +#X connect 28 0 29 0; +#X connect 29 0 9 0; +#X connect 30 0 10 0; +#X connect 31 0 32 0; +#X connect 32 0 10 0; diff --git a/iemhelp/help-ii.pd b/iemhelp/help-ii.pd new file mode 100644 index 0000000..2abc26c --- /dev/null +++ b/iemhelp/help-ii.pd @@ -0,0 +1,46 @@ +#N canvas 156 133 532 351 10; +#X msg 81 54 2.5; +#X msg 20 54 bang; +#X msg 121 55 23 64; +#X text 55 249 the above can be abbreviated as:; +#X msg 168 55 symbol dog; +#X msg 260 55 open myfile 888; +#X obj 20 106 init; +#X obj 287 249 ii; +#X obj 20 133 print x1; +#X obj 95 107 init 44; +#X obj 95 132 print x2; +#X obj 190 134 print x3; +#X obj 190 109 init www; +#X obj 274 110 init symbol www; +#X obj 274 134 print x4; +#X obj 21 179 ii open file 22; +#X obj 21 203 print x5; +#X obj 144 180 ii list open file 22; +#X obj 144 203 print x6; +#X obj 301 181 ii list 6 7 8; +#X obj 301 204 print x7; +#X obj 409 181 ii 9 8 7; +#X obj 409 204 print x8; +#X obj 412 138 print x9; +#X obj 412 112 init float 77; +#X msg 389 58 11 22 33 aa bb cc; +#X text 17 282 (c) musil@iem.kug.ac.at; +#X text 59 295 IEM KUG; +#X text 34 307 graz \, austria 2001; +#X text 18 17 init : initialize anything by loadbang; +#X connect 0 0 6 0; +#X connect 1 0 6 0; +#X connect 2 0 6 0; +#X connect 4 0 6 0; +#X connect 5 0 6 0; +#X connect 6 0 8 0; +#X connect 9 0 10 0; +#X connect 12 0 11 0; +#X connect 13 0 14 0; +#X connect 15 0 16 0; +#X connect 17 0 18 0; +#X connect 19 0 20 0; +#X connect 21 0 22 0; +#X connect 24 0 23 0; +#X connect 25 0 6 0; diff --git a/iemhelp/help-iiroute.pd b/iemhelp/help-iiroute.pd new file mode 100644 index 0000000..4d0b3c7 --- /dev/null +++ b/iemhelp/help-iiroute.pd @@ -0,0 +1,132 @@ +#N canvas 167 225 749 365 10; +#X floatatom 25 136 4 0 0 0 - - -; +#X obj 25 161 iem_i_route 3 7; +#X obj 25 197 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 45 197 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 65 197 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 85 197 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 -1 +-1; +#X obj 105 197 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X floatatom 133 189 4 0 0 0 - - -; +#X obj 133 214 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X floatatom 201 135 4 0 0 0 - - -; +#X obj 569 132 print rejected; +#X floatatom 469 20 4 0 0 0 - - -; +#X obj 191 204 iiroute 2 5 _______; +#X obj 191 182 pack 0 0; +#X obj 201 157 t f f; +#X floatatom 191 230 2 0 0 0 - - -; +#X obj 191 255 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X floatatom 223 230 2 0 0 0 - - -; +#X obj 223 255 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X floatatom 255 230 2 0 0 0 - - -; +#X obj 255 255 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X floatatom 287 230 2 0 0 0 - - -; +#X obj 287 255 bng 15 250 50 0 empty empty empty 20 8 0 10 -262144 +-1 -1; +#X obj 319 230 print rejected; +#X obj 469 42 t f b f; +#X obj 469 86 pack 0 s 0; +#X obj 487 65 symbol gain; +#X obj 469 108 iiroute 4 6 10; +#X floatatom 469 300 5 0 0 0 - - -; +#X floatatom 495 239 5 0 0 0 - - -; +#X obj 469 318 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 319 252 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 495 257 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 521 178 5 0 0 0 - - -; +#X obj 521 196 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 550 133 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 521 156 route gain delay; +#X obj 495 218 route gain delay; +#X obj 469 278 route gain delay; +#X floatatom 566 176 5 0 0 0 - - -; +#X obj 566 194 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 540 239 5 0 0 0 - - -; +#X obj 540 257 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 514 300 5 0 0 0 - - -; +#X obj 514 318 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 620 7 4 0 0 0 - - -; +#X obj 620 29 t f b f; +#X obj 624 93 pack 0 s 0; +#X obj 638 52 symbol delay; +#X obj 718 47 - 8; +#X text 53 39 1.arg: <int> first route-item; +#X text 53 52 2.arg: <int> last route-item; +#X text 60 304 IEM KUG; +#X text 33 290 (c) musil@iem.at; +#X text 35 316 graz \, austria 2003; +#X text 11 8 iem_i_route; +#X text 102 8 route only list with prepending floats (integers); +#X text 215 76 (opt. \, default 0); +#X text 53 64 3.arg: <int> offset \, adding to first and last; +#X obj 562 62 - 5; +#X connect 0 0 1 0; +#X connect 1 0 2 0; +#X connect 1 1 3 0; +#X connect 1 2 4 0; +#X connect 1 3 5 0; +#X connect 1 4 6 0; +#X connect 1 5 7 0; +#X connect 7 0 8 0; +#X connect 9 0 14 0; +#X connect 11 0 24 0; +#X connect 12 0 15 0; +#X connect 12 1 17 0; +#X connect 12 2 19 0; +#X connect 12 3 21 0; +#X connect 12 4 23 0; +#X connect 12 4 31 0; +#X connect 13 0 12 0; +#X connect 14 0 13 0; +#X connect 14 1 13 1; +#X connect 15 0 16 0; +#X connect 17 0 18 0; +#X connect 19 0 20 0; +#X connect 21 0 22 0; +#X connect 24 0 25 0; +#X connect 24 1 26 0; +#X connect 24 2 59 0; +#X connect 25 0 27 0; +#X connect 26 0 25 1; +#X connect 27 0 38 0; +#X connect 27 1 37 0; +#X connect 27 2 36 0; +#X connect 27 3 10 0; +#X connect 27 3 35 0; +#X connect 28 0 30 0; +#X connect 29 0 32 0; +#X connect 33 0 34 0; +#X connect 36 0 33 0; +#X connect 36 1 39 0; +#X connect 37 0 29 0; +#X connect 37 1 41 0; +#X connect 38 0 28 0; +#X connect 38 1 43 0; +#X connect 39 0 40 0; +#X connect 41 0 42 0; +#X connect 43 0 44 0; +#X connect 45 0 46 0; +#X connect 46 0 47 0; +#X connect 46 1 48 0; +#X connect 46 2 49 0; +#X connect 47 0 27 0; +#X connect 48 0 47 1; +#X connect 49 0 47 2; +#X connect 59 0 25 2; diff --git a/iemhelp/help-init.pd b/iemhelp/help-init.pd new file mode 100644 index 0000000..a387140 --- /dev/null +++ b/iemhelp/help-init.pd @@ -0,0 +1,46 @@ +#N canvas 156 133 530 349 10; +#X msg 81 54 2.5; +#X msg 20 54 bang; +#X msg 121 55 23 64; +#X text 55 249 the above can be abbreviated as:; +#X msg 168 55 symbol dog; +#X msg 260 55 open myfile 888; +#X obj 20 106 init; +#X obj 287 249 ii; +#X obj 20 133 print x1; +#X obj 95 107 init 44; +#X obj 95 132 print x2; +#X obj 190 134 print x3; +#X obj 190 109 init www; +#X obj 274 110 init symbol www; +#X obj 274 134 print x4; +#X obj 21 179 ii open file 22; +#X obj 21 203 print x5; +#X obj 144 180 ii list open file 22; +#X obj 144 203 print x6; +#X obj 301 181 ii list 6 7 8; +#X obj 301 204 print x7; +#X obj 409 181 ii 9 8 7; +#X obj 409 204 print x8; +#X obj 412 138 print x9; +#X obj 412 112 init float 77; +#X msg 389 58 11 22 33 aa bb cc; +#X text 17 282 (c) musil@iem.kug.ac.at; +#X text 59 295 IEM KUG; +#X text 34 307 graz \, austria 2001; +#X text 18 17 init : initialize anything by loadbang; +#X connect 0 0 6 0; +#X connect 1 0 6 0; +#X connect 2 0 6 0; +#X connect 4 0 6 0; +#X connect 5 0 6 0; +#X connect 6 0 8 0; +#X connect 9 0 10 0; +#X connect 12 0 11 0; +#X connect 13 0 14 0; +#X connect 15 0 16 0; +#X connect 17 0 18 0; +#X connect 19 0 20 0; +#X connect 21 0 22 0; +#X connect 24 0 23 0; +#X connect 25 0 6 0; diff --git a/iemhelp/help-int_fract~.pd b/iemhelp/help-int_fract~.pd new file mode 100644 index 0000000..0b53455 --- /dev/null +++ b/iemhelp/help-int_fract~.pd @@ -0,0 +1,32 @@ +#N canvas 375 118 408 332 10; +#X text 11 273 (c) musil@iem.kug.ac.at; +#X text 53 286 IEM KUG; +#X text 28 48 dsp ON/OFF; +#X floatatom 45 225 7 0 0 0 - - -; +#X floatatom 46 119 7 0 0 0 - - -; +#X floatatom 11 88 5 0 0 0 - - -; +#X text 46 87 % cpu; +#X obj 11 68 dsp; +#X obj 11 48 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 9 5 round~; +#X obj 46 141 sig~; +#X obj 45 203 unsig~; +#X text 120 168 no arg; +#X text 28 298 graz \, austria 2003; +#X obj 45 170 int_fract~; +#X floatatom 101 224 7 0 0 0 - - -; +#X obj 101 202 unsig~; +#X text 12 239 truncated int; +#X text 102 239 fractal part; +#X text 87 28 and the fractal part of the float-number; +#X text 64 6 signal-float-splitting to the; +#X text 74 17 truncated signal-integer-number; +#X connect 4 0 10 0; +#X connect 7 0 5 0; +#X connect 8 0 7 0; +#X connect 10 0 14 0; +#X connect 11 0 3 0; +#X connect 14 0 11 0; +#X connect 14 1 16 0; +#X connect 16 0 15 0; diff --git a/iemhelp/help-list2send.pd b/iemhelp/help-list2send.pd new file mode 100644 index 0000000..6661874 --- /dev/null +++ b/iemhelp/help-list2send.pd @@ -0,0 +1,83 @@ +#N canvas 163 45 792 556 10; +#X msg 209 141 0 aaa \, 1 bbb \, 2 ccc \, 3 ddd \, 4 eee; +#X text 296 119 init; +#X obj 209 120 loadbang; +#X msg 260 167 clear; +#X text 199 62 the corresponding prepend-floats and receive-symbols +; +#X text 199 49 with a prepended float.; +#X text 200 76 have to be inputed via a set message.; +#X text 41 505 IEM KUG; +#X text 15 516 graz \, austria 2003; +#X text 13 492 (c) musil@iem.at; +#X text 10 13 list2send; +#X obj 209 162 pp add; +#X obj 68 391 r aaa; +#X floatatom 68 414 5 0 0 0 - - -; +#X floatatom 103 414 5 0 0 0 - - -; +#X obj 103 391 r bbb; +#X floatatom 138 414 5 0 0 0 - - -; +#X obj 138 391 r ccc; +#X obj 197 390 r ddd; +#X floatatom 197 415 8 0 0 0 - - -; +#X obj 281 391 r eee; +#X symbolatom 281 414 10 0 0 0 - - -; +#X obj 68 435 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 103 436 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 138 436 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 197 437 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 281 437 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 23 143 pp 0; +#X floatatom 23 125 5 0 0 0 - - -; +#X floatatom 67 127 5 0 0 0 - - -; +#X obj 67 145 pp 1; +#X floatatom 109 128 5 0 0 0 - - -; +#X obj 109 146 pp 2; +#X floatatom 152 128 8 0 0 0 - - -; +#X obj 152 147 pp 3; +#X symbolatom 30 205 10 0 0 0 - - -; +#X obj 30 225 pp 4; +#X floatatom 460 129 5 0 0 0 - - -; +#X obj 460 147 pp set 1; +#X msg 469 184 set_all 1.1 2.2 3.3 4.4444 abcdefg; +#X msg 448 224 all 0.1 0.2 0.3 0.45678 zyxwvu; +#X obj 209 217 list2send 5; +#X msg 421 326 from 3 0.9876 lmnop; +#X msg 442 286 set_from 3 2.2222 zzzzzz; +#X text 131 14 convert some kind of lists to a sended message; +#X text 109 247 1.arg: <float> max. number of sended parameters; +#X connect 0 0 11 0; +#X connect 2 0 0 0; +#X connect 3 0 41 0; +#X connect 11 0 41 0; +#X connect 12 0 13 0; +#X connect 13 0 22 0; +#X connect 14 0 23 0; +#X connect 15 0 14 0; +#X connect 16 0 24 0; +#X connect 17 0 16 0; +#X connect 18 0 19 0; +#X connect 19 0 25 0; +#X connect 20 0 21 0; +#X connect 21 0 26 0; +#X connect 27 0 41 0; +#X connect 28 0 27 0; +#X connect 29 0 30 0; +#X connect 30 0 41 0; +#X connect 31 0 32 0; +#X connect 32 0 41 0; +#X connect 33 0 34 0; +#X connect 34 0 41 0; +#X connect 35 0 36 0; +#X connect 36 0 41 0; +#X connect 37 0 38 0; +#X connect 38 0 41 0; +#X connect 39 0 41 0; +#X connect 40 0 41 0; +#X connect 42 0 41 0; +#X connect 43 0 41 0; diff --git a/iemhelp/help-lp10_butt~.pd b/iemhelp/help-lp10_butt~.pd new file mode 100644 index 0000000..16ac2d4 --- /dev/null +++ b/iemhelp/help-lp10_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 385 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 96 154 3 15 133 0 - - -; +#X obj 96 173 mtof; +#X floatatom 96 192 9 0 22000 0 - - -; +#X text 160 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 148 217 5 2 9999 0 - - -; +#X text 189 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X obj 45 237 lp10_butt~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-lp10_cheb~.pd b/iemhelp/help-lp10_cheb~.pd new file mode 100644 index 0000000..777ef3f --- /dev/null +++ b/iemhelp/help-lp10_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 367 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 96 149 3 15 133 0 - - -; +#X obj 96 168 mtof; +#X floatatom 96 187 9 0 22000 0 - - -; +#X text 160 188 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 148 217 5 2 9999 0 - - -; +#X text 189 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 159 238 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp10_cheb~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp10_crit~.pd b/iemhelp/help-lp10_crit~.pd new file mode 100644 index 0000000..3ba99ad --- /dev/null +++ b/iemhelp/help-lp10_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 373 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 96 149 3 15 133 0 - - -; +#X obj 96 168 mtof; +#X floatatom 96 187 9 0 22000 0 - - -; +#X text 160 188 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 148 217 5 2 9999 0 - - -; +#X text 189 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 159 238 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp10_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp1_t~.pd b/iemhelp/help-lp1_t~.pd new file mode 100644 index 0000000..eeb2d18 --- /dev/null +++ b/iemhelp/help-lp1_t~.pd @@ -0,0 +1,56 @@ +#N canvas 152 8 561 548 10; +#X text 109 239 ~signal_in~; +#X text 12 499 (c) musil@iem.kug.ac.at; +#X text 54 512 IEM KUG; +#X text 38 33 dsp ON/OFF; +#X floatatom 191 175 5 0 1005 0 - - -; +#X text 172 273 ~signal_out~; +#X floatatom 21 73 5 0 0 0 - - -; +#X text 60 74 % cpu; +#X floatatom 231 225 5 2 9999 0 - - -; +#X text 273 226 ms; +#X obj 21 53 dsp; +#X obj 21 33 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X text 29 524 graz \, austria 2001; +#X text 292 265 2.arg:<float> interpolation_time [ms]; +#X text 234 174 ms; +#X obj 152 255 lp1_t~ 0.5 200; +#X text 234 210 interpolation_time [ms]; +#X text 230 159 time_constant [ms]; +#X text 292 254 1.arg:<float> time_constant [ms]; +#X obj 152 100 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 +1; +#X obj 74 197 t b; +#X obj 152 153 sig~; +#N canvas 0 0 450 300 graph1 0; +#X array scope 400 float 0; +#X coords 0 1 399 0 400 80 1; +#X restore 39 349 graph; +#X obj 74 306 tabwrite~ scope; +#X msg 217 115 0.2; +#X msg 248 115 0.5; +#X msg 278 116 1.5; +#X msg 270 503 \; scope xticks 0 22 2; +#X obj 270 482 loadbang; +#X text 79 431 1; +#X text 123 431 2; +#X text 168 431 3 ms; +#X floatatom 162 130 5 0 0 0 - - -; +#X obj 13 13 cnv 8 1 1 empty empty lp1_t~ 1 2 1 18 -262144 -1109 0 +; +#X text 102 8 lowpass 1.order with time_constant-inlet; +#X connect 4 0 15 1; +#X connect 8 0 15 2; +#X connect 10 0 6 0; +#X connect 11 0 10 0; +#X connect 15 0 23 0; +#X connect 19 0 20 0; +#X connect 19 0 21 0; +#X connect 19 0 32 0; +#X connect 20 0 23 0; +#X connect 21 0 15 0; +#X connect 24 0 4 0; +#X connect 25 0 4 0; +#X connect 26 0 4 0; +#X connect 28 0 27 0; diff --git a/iemhelp/help-lp1~.pd b/iemhelp/help-lp1~.pd new file mode 100644 index 0000000..2aad09c --- /dev/null +++ b/iemhelp/help-lp1~.pd @@ -0,0 +1,55 @@ +#N canvas 257 125 373 456 10; +#X text 13 245 ~signal_in~; +#X text 22 392 (c) musil@iem.kug.ac.at; +#X text 64 405 IEM KUG; +#X text 38 33 dsp ON/OFF; +#X floatatom 89 162 3 15 133 0 - - -; +#X obj 89 181 mtof; +#X floatatom 89 200 9 0 22000 0 - - -; +#X text 153 201 Hz; +#X text 68 274 ~signal_out~; +#X floatatom 195 258 7 0 0 0 - - -; +#X text 246 259 dB; +#X floatatom 129 143 9 0 22000 0 - - -; +#X text 193 144 Hz; +#X floatatom 56 104 3 15 133 0 - - -; +#X floatatom 21 73 5 0 0 0 - - -; +#X text 60 74 % cpu; +#X floatatom 123 235 5 2 9999 0 - - -; +#X text 164 236 ms; +#X obj 21 53 dsp; +#X obj 21 33 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 56 319 dac~; +#X obj 56 294 gainvu~ 300; +#X obj 234 136 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 295 163 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 56 123 testtone~ 200; +#X text 39 417 graz \, austria 2001; +#X obj 120 89 init 69; +#X text 83 105 midi; +#X text 21 344 1.arg:<float> cutoff_freq. [Hz]; +#X text 21 354 2.arg:<float> interpolation_time [ms]; +#X obj 56 260 lp1~ 440 200; +#X floatatom 266 309 7 0 0 0 - - -; +#X text 317 310 dB; +#X obj 13 13 cnv 8 1 1 empty empty lp1~ 1 2 1 18 -262144 -1109 0; +#X text 83 6 lowpass 1.order; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 30 1; +#X connect 13 0 24 0; +#X connect 16 0 30 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 31 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 30 0; +#X connect 24 1 11 0; +#X connect 26 0 13 0; +#X connect 30 0 21 0; diff --git a/iemhelp/help-lp2_butt~.pd b/iemhelp/help-lp2_butt~.pd new file mode 100644 index 0000000..a830874 --- /dev/null +++ b/iemhelp/help-lp2_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 385 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 154 3 15 133 0 - - -; +#X obj 93 173 mtof; +#X floatatom 93 192 9 0 22000 0 - - -; +#X text 157 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp2_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp2_cheb~.pd b/iemhelp/help-lp2_cheb~.pd new file mode 100644 index 0000000..c408d25 --- /dev/null +++ b/iemhelp/help-lp2_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 373 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 393 graz \, austria 2003; +#X obj 45 237 lp2_cheb~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp2_crit~.pd b/iemhelp/help-lp2_crit~.pd new file mode 100644 index 0000000..e8c8513 --- /dev/null +++ b/iemhelp/help-lp2_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 379 448 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 129 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp2_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp2~.pd b/iemhelp/help-lp2~.pd new file mode 100644 index 0000000..6fe74a8 --- /dev/null +++ b/iemhelp/help-lp2~.pd @@ -0,0 +1,60 @@ +#N canvas 285 129 387 460 10; +#X text 11 255 ~signal_in~; +#X text 24 389 (c) musil@iem.kug.ac.at; +#X text 66 402 IEM KUG; +#X text 36 43 dsp ON/OFF; +#X floatatom 88 171 3 15 133 0 - - -; +#X obj 88 190 mtof; +#X floatatom 88 209 9 0 22000 0 - - -; +#X text 152 210 Hz; +#X text 66 284 ~signal_out~; +#X floatatom 191 284 7 0 0 0 - - -; +#X text 242 285 dB; +#X floatatom 127 153 9 0 22000 0 - - -; +#X text 191 154 Hz; +#X floatatom 54 114 3 15 133 0 - - -; +#X floatatom 19 83 5 0 0 0 - - -; +#X text 61 83 % cpu; +#X floatatom 157 250 5 2 9999 0 - - -; +#X text 198 251 ms; +#X obj 19 63 dsp; +#X floatatom 122 232 4 0.01 1000 0 - - -; +#X text 157 232 Q; +#X text 88 354 2.arg:<float> Q [-]; +#X text 88 364 3.arg:<float> interpolation_time [ms]; +#X obj 19 43 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 54 329 dac~; +#X obj 54 304 gainvu~ 300; +#X obj 236 162 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 296 173 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 54 133 testtone~ 200; +#X text 41 414 graz \, austria 2001; +#X obj 118 99 init 69; +#X text 81 115 midi; +#X obj 54 270 lp2~ 440 0.707 200; +#X text 88 344 1.arg:<float> cutoff_freq. [Hz]; +#X floatatom 278 319 7 0 0 0 - - -; +#X text 329 320 dB; +#X text 45 62 performance: 0.22 % at 400 MHz-Pentium \, sr=44100; +#X obj 13 13 cnv 8 1 1 empty empty lp2~ 1 2 1 18 -262144 -1109 0; +#X text 83 6 lowpass 2.order; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 28 0; +#X connect 16 0 32 3; +#X connect 18 0 14 0; +#X connect 19 0 32 2; +#X connect 23 0 18 0; +#X connect 25 0 24 0; +#X connect 25 0 24 1; +#X connect 25 1 34 0; +#X connect 25 2 26 0; +#X connect 26 1 9 0; +#X connect 27 0 25 1; +#X connect 28 0 32 0; +#X connect 28 1 11 0; +#X connect 30 0 13 0; +#X connect 32 0 25 0; diff --git a/iemhelp/help-lp3_butt~.pd b/iemhelp/help-lp3_butt~.pd new file mode 100644 index 0000000..8c427ae --- /dev/null +++ b/iemhelp/help-lp3_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 385 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 154 3 15 133 0 - - -; +#X obj 93 173 mtof; +#X floatatom 93 192 9 0 22000 0 - - -; +#X text 157 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp3_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp3_cheb~.pd b/iemhelp/help-lp3_cheb~.pd new file mode 100644 index 0000000..9465d1d --- /dev/null +++ b/iemhelp/help-lp3_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 371 440 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 66 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 393 graz \, austria 2003; +#X obj 45 237 lp3_cheb~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp3_crit~.pd b/iemhelp/help-lp3_crit~.pd new file mode 100644 index 0000000..02082bd --- /dev/null +++ b/iemhelp/help-lp3_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 377 446 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 129 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp3_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp4_butt~.pd b/iemhelp/help-lp4_butt~.pd new file mode 100644 index 0000000..c1d88bd --- /dev/null +++ b/iemhelp/help-lp4_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 385 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 154 3 15 133 0 - - -; +#X obj 93 173 mtof; +#X floatatom 93 192 9 0 22000 0 - - -; +#X text 157 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp4_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp4_cheb~.pd b/iemhelp/help-lp4_cheb~.pd new file mode 100644 index 0000000..18f4d4d --- /dev/null +++ b/iemhelp/help-lp4_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 369 438 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 66 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X obj 45 237 lp4_cheb~ 440 200; +#X text 28 393 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-lp4_crit~.pd b/iemhelp/help-lp4_crit~.pd new file mode 100644 index 0000000..c3c89bc --- /dev/null +++ b/iemhelp/help-lp4_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 377 446 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 129 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp4_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp5_butt~.pd b/iemhelp/help-lp5_butt~.pd new file mode 100644 index 0000000..88114f1 --- /dev/null +++ b/iemhelp/help-lp5_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 385 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 154 3 15 133 0 - - -; +#X obj 93 173 mtof; +#X floatatom 93 192 9 0 22000 0 - - -; +#X text 157 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp5_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp5_cheb~.pd b/iemhelp/help-lp5_cheb~.pd new file mode 100644 index 0000000..8536f61 --- /dev/null +++ b/iemhelp/help-lp5_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 369 438 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp5_cheb~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp5_crit~.pd b/iemhelp/help-lp5_crit~.pd new file mode 100644 index 0000000..f4b4dfd --- /dev/null +++ b/iemhelp/help-lp5_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 377 446 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp5_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp6_butt~.pd b/iemhelp/help-lp6_butt~.pd new file mode 100644 index 0000000..c09b8d8 --- /dev/null +++ b/iemhelp/help-lp6_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 385 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 154 3 15 133 0 - - -; +#X obj 93 173 mtof; +#X floatatom 93 192 9 0 22000 0 - - -; +#X text 157 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp6_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp6_cheb~.pd b/iemhelp/help-lp6_cheb~.pd new file mode 100644 index 0000000..79bd95d --- /dev/null +++ b/iemhelp/help-lp6_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 369 438 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X obj 45 237 lp6_cheb~ 440 200; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 1; +#X connect 13 0 24 0; +#X connect 16 0 32 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 32 0 21 0; diff --git a/iemhelp/help-lp6_crit~.pd b/iemhelp/help-lp6_crit~.pd new file mode 100644 index 0000000..f070345 --- /dev/null +++ b/iemhelp/help-lp6_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 375 444 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp6_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp7_butt~.pd b/iemhelp/help-lp7_butt~.pd new file mode 100644 index 0000000..53f64a0 --- /dev/null +++ b/iemhelp/help-lp7_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 385 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 154 3 15 133 0 - - -; +#X obj 93 173 mtof; +#X floatatom 93 192 9 0 22000 0 - - -; +#X text 157 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp7_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp7_cheb~.pd b/iemhelp/help-lp7_cheb~.pd new file mode 100644 index 0000000..e581d27 --- /dev/null +++ b/iemhelp/help-lp7_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 367 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp7_cheb~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp7_crit~.pd b/iemhelp/help-lp7_crit~.pd new file mode 100644 index 0000000..5b338b8 --- /dev/null +++ b/iemhelp/help-lp7_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 375 444 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp7_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp8_butt~.pd b/iemhelp/help-lp8_butt~.pd new file mode 100644 index 0000000..10b68ff --- /dev/null +++ b/iemhelp/help-lp8_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 385 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 154 3 15 133 0 - - -; +#X obj 93 173 mtof; +#X floatatom 93 192 9 0 22000 0 - - -; +#X text 157 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp8_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp8_cheb~.pd b/iemhelp/help-lp8_cheb~.pd new file mode 100644 index 0000000..d7d6fe6 --- /dev/null +++ b/iemhelp/help-lp8_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 367 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X obj 45 237 lp8_cheb~ 440 200; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 29 1; +#X connect 13 0 24 0; +#X connect 16 0 29 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 30 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 29 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 29 0 21 0; diff --git a/iemhelp/help-lp8_crit~.pd b/iemhelp/help-lp8_crit~.pd new file mode 100644 index 0000000..4d3b76a --- /dev/null +++ b/iemhelp/help-lp8_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 373 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 148 3 15 133 0 - - -; +#X obj 93 167 mtof; +#X floatatom 93 186 9 0 22000 0 - - -; +#X text 157 187 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 216 5 2 9999 0 - - -; +#X text 183 217 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 151 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp8_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp9_butt~.pd b/iemhelp/help-lp9_butt~.pd new file mode 100644 index 0000000..ce2648f --- /dev/null +++ b/iemhelp/help-lp9_butt~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 385 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 154 3 15 133 0 - - -; +#X obj 93 173 mtof; +#X floatatom 93 192 9 0 22000 0 - - -; +#X text 157 193 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 205 253 7 0 0 0 - - -; +#X text 257 254 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 49 52 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 257 131 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 329 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 40 319 1.arg:<float> cutoff_freq. [Hz]; +#X text 40 329 2.arg:<float> interpolation_time [ms]; +#X floatatom 305 288 7 0 0 0 - - -; +#X text 357 289 dB; +#X text 157 236 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp9_butt~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp9_cheb~.pd b/iemhelp/help-lp9_cheb~.pd new file mode 100644 index 0000000..0328ec1 --- /dev/null +++ b/iemhelp/help-lp9_cheb~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 367 436 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 149 3 15 133 0 - - -; +#X obj 93 168 mtof; +#X floatatom 93 187 9 0 22000 0 - - -; +#X text 157 188 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 159 238 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp9_cheb~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-lp9_crit~.pd b/iemhelp/help-lp9_crit~.pd new file mode 100644 index 0000000..4e41dc4 --- /dev/null +++ b/iemhelp/help-lp9_crit~.pd @@ -0,0 +1,54 @@ +#N canvas 280 180 373 442 10; +#X text 2 222 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 27 10 dsp ON/OFF; +#X floatatom 93 149 3 15 133 0 - - -; +#X obj 93 168 mtof; +#X floatatom 93 187 9 0 22000 0 - - -; +#X text 157 188 Hz; +#X text 57 251 ~signal_out~; +#X floatatom 200 252 7 0 0 0 - - -; +#X text 251 253 dB; +#X floatatom 118 120 9 0 22000 0 - - -; +#X text 182 121 Hz; +#X floatatom 45 81 3 15 133 0 - - -; +#X floatatom 10 50 5 0 0 0 - - -; +#X text 50 51 % cpu; +#X floatatom 142 217 5 2 9999 0 - - -; +#X text 183 218 ms; +#X obj 10 30 dsp; +#X obj 10 10 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 45 296 dac~; +#X obj 45 271 gainvu~ 300; +#X obj 256 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 320 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 45 100 testtone~ 200; +#X obj 109 64 init 69; +#X text 72 82 midi; +#X text 59 320 1.arg:<float> cutoff_freq. [Hz]; +#X text 59 330 2.arg:<float> interpolation_time [ms]; +#X floatatom 286 288 7 0 0 0 - - -; +#X text 337 289 dB; +#X text 159 238 <- double-click; +#X text 28 394 graz \, austria 2003; +#X obj 45 237 lp9_crit~ 440 200; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 24 0; +#X connect 16 0 33 2; +#X connect 18 0 14 0; +#X connect 19 0 18 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 29 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 33 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 33 0 21 0; diff --git a/iemhelp/help-maverage~.pd b/iemhelp/help-maverage~.pd new file mode 100644 index 0000000..6e9d42d --- /dev/null +++ b/iemhelp/help-maverage~.pd @@ -0,0 +1,45 @@ +#N canvas 97 84 726 424 10; +#X floatatom 23 284 9 0 0 0 - - -; +#X text 15 360 (c) musil@iem.kug.ac.at; +#X text 57 373 IEM KUG; +#X text 41 44 dsp ON/OFF; +#X obj 22 65 dsp; +#X floatatom 22 86 5 0 0 0 - - -; +#X text 68 87 % cpu; +#X obj 23 265 unsig~; +#X obj 22 45 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 36 151 noise~; +#X obj 22 215 +~; +#X floatatom 160 286 9 0 0 0 - - -; +#X obj 160 267 unsig~; +#X text 7 9 maverage~ : moving average filter; +#X text 261 167 changing the average-time resets the calculation the +first average-time milliseconds !!; +#X text 276 241 1.arg: max. average-time <float> [ms] \; 2.arg: average-time +<float> [ms]; +#X text 162 49 N = 0.001 * average-time_ms * samplerate; +#X text 138 34 y[n] = (x[n] + x[n-1] + x[n-2] +...+ x[n-N]) / N; +#X text 226 9 with IIR-solution; +#X obj 22 126 sig~ 0.75; +#X obj 36 177 *~ 0.25; +#X obj 160 248 maverage~ 1000 500; +#X floatatom 263 219 5 0 1000 0 - - -; +#X text 300 217 ms; +#X text 21 298 noisy signal; +#X text 157 303 signal after filtering; +#X text 157 313 only DC is measured; +#X text 262 200 <float> average-time <float> [ms] (1.45 .. 1000 ms) +; +#X text 32 385 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 7 0 0 0; +#X connect 8 0 4 0; +#X connect 9 0 20 0; +#X connect 10 0 7 0; +#X connect 10 0 21 0; +#X connect 12 0 11 0; +#X connect 19 0 10 0; +#X connect 20 0 10 1; +#X connect 21 0 12 0; +#X connect 22 0 21 1; diff --git a/iemhelp/help-merge_any.pd b/iemhelp/help-merge_any.pd new file mode 100644 index 0000000..8719f61 --- /dev/null +++ b/iemhelp/help-merge_any.pd @@ -0,0 +1,77 @@ +#N canvas 231 172 769 459 10; +#X obj 66 348 print; +#X msg 66 60 1; +#X obj 187 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 66 39 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 66 148 11 22; +#X msg 187 149 33 44; +#X msg 187 62 3; +#X msg 66 104 symbol foo; +#X msg 187 106 symbol zyx; +#X msg 66 82 float 1.1; +#X msg 187 84 float 3.3; +#X msg 66 126 set; +#X msg 187 127 open; +#X msg 66 171 list -55 -66; +#X msg 187 171 list -77 -88; +#X msg 187 194 list bbb 987; +#X msg 66 194 list aaa 123; +#X msg 66 217 jkl 555 uuu; +#X msg 187 217 poi 777 ttt; +#X obj 140 349 route bang float symbol list; +#X obj 191 367 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 230 367 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 273 367 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 316 367 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 370 367 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 349 348 anything; +#X text 211 38 bang clears message-buffer; +#X text 24 393 (c) musil@iem.kug.ac.at; +#X text 66 406 IEM KUG; +#X text 41 418 graz \, austria 2002; +#X text 13 7 merge_any; +#X text 99 7 merge 2 messages together; +#X msg 144 323 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 +22 23; +#X msg 147 297 a b c d e f g h i j k l m n o p q r s t u v; +#X obj 66 272 merge_any 22 33 44; +#X text 422 257 initials-arguments:; +#X text 186 244 <- cold inlet; +#X text 71 243 <- hot inlet; +#X text 22 252 head of output-message; +#X text 185 253 tail of output-message; +#X text 417 268 tail of output-message; +#X connect 1 0 34 0; +#X connect 2 0 34 1; +#X connect 3 0 34 0; +#X connect 4 0 34 0; +#X connect 5 0 34 1; +#X connect 6 0 34 1; +#X connect 7 0 34 0; +#X connect 8 0 34 1; +#X connect 9 0 34 0; +#X connect 10 0 34 1; +#X connect 11 0 34 0; +#X connect 12 0 34 1; +#X connect 13 0 34 0; +#X connect 14 0 34 1; +#X connect 15 0 34 1; +#X connect 16 0 34 0; +#X connect 17 0 34 0; +#X connect 18 0 34 1; +#X connect 19 0 20 0; +#X connect 19 1 21 0; +#X connect 19 2 22 0; +#X connect 19 3 23 0; +#X connect 19 4 24 0; +#X connect 32 0 34 0; +#X connect 33 0 34 1; +#X connect 34 0 0 0; +#X connect 34 0 19 0; diff --git a/iemhelp/help-mergefilename.pd b/iemhelp/help-mergefilename.pd new file mode 100644 index 0000000..b16e122 --- /dev/null +++ b/iemhelp/help-mergefilename.pd @@ -0,0 +1,48 @@ +#N canvas 82 111 622 444 10; +#X text 25 368 (c) musil@iem.kug.ac.at; +#X text 76 381 IEM KUG; +#X text 42 393 graz \, austria 2002; +#X text 236 398 updated for Pd version 0.35; +#X msg 389 153 separator $; +#X msg 389 88 separator @; +#X msg 389 109 separator :; +#X obj 33 316 mergefilename; +#X msg 22 82 C:/program/pd/my_project my_foo.pd; +#X obj 33 338 print path+file; +#X msg 389 46 separator /; +#N canvas 4 20 450 300 /SUBPATCH/ 0; +#X obj 101 31 inlet; +#X obj 100 59 outlet; +#X connect 0 0 1 0; +#X restore 389 276 pd; +#X msg 389 174 separator z; +#X msg 389 195 separator _; +#X msg 389 216 separator .; +#X text 8 1 mergefilename: merge a list of symbols and floats to a +; +#X msg 404 241 separator; +#X msg 389 67 separator space; +#X msg 55 111 /home/me my_first_patch.pd; +#X msg 389 131 separator 2; +#X text 134 317 1.arg: <symbol> separator-character (opt.); +#X msg 91 159 aaa bbb ccc ddd eeee; +#X msg 119 204 11 22 33 44; +#X text 466 45 <- click here; +#X obj 423 318 mergefilename /; +#X text 80 17 symbol \, connected by a separator (default: ""); +#X connect 4 0 11 0; +#X connect 5 0 11 0; +#X connect 6 0 11 0; +#X connect 7 0 9 0; +#X connect 8 0 7 0; +#X connect 10 0 11 0; +#X connect 11 0 7 0; +#X connect 12 0 11 0; +#X connect 13 0 11 0; +#X connect 14 0 11 0; +#X connect 16 0 11 0; +#X connect 17 0 11 0; +#X connect 18 0 7 0; +#X connect 19 0 11 0; +#X connect 21 0 7 0; +#X connect 22 0 7 0; diff --git a/iemhelp/help-modulo_counter.pd b/iemhelp/help-modulo_counter.pd new file mode 100644 index 0000000..f5b5ee3 --- /dev/null +++ b/iemhelp/help-modulo_counter.pd @@ -0,0 +1,19 @@ +#N canvas 167 267 521 293 10; +#X msg 27 97 bang; +#X floatatom 75 164 5 0 0; +#X floatatom 75 72 5 1 100; +#X floatatom 203 76 5 0 99; +#X obj 75 135 modulo_counter 10 5; +#X text 13 12 modulo_counter:; +#X text 7 233 (c) musil@iem.kug.ac.at; +#X text 49 246 IEM KUG; +#X text 24 258 graz \, austria 2001; +#X text 261 195 (optional) default 0; +#X text 161 182 2.arg: <float> initial-value (0 .. max - 1); +#X text 161 168 1.arg: <float> maximum; +#X text 36 54 <float> maximum; +#X text 202 56 <float> initial-value (0 .. max - 1); +#X connect 0 0 4 0; +#X connect 2 0 4 0; +#X connect 3 0 4 1; +#X connect 4 0 1 0; diff --git a/iemhelp/help-mp3play~.pd b/iemhelp/help-mp3play~.pd new file mode 100644 index 0000000..bd5e662 --- /dev/null +++ b/iemhelp/help-mp3play~.pd @@ -0,0 +1,146 @@ +#N canvas 219 14 743 601 10; +#X obj 118 308 mp3play~; +#X msg 130 153 start; +#X msg 145 177 stop; +#X msg 157 201 pause; +#X msg 118 91 open \$1; +#X obj 118 71 openpanel; +#X msg 118 50 bang; +#X text 18 5 MPEG LAYER III PLAYER; +#N canvas 217 0 624 445 output 0; +#X obj 451 183 t b; +#X obj 451 133 f; +#X obj 451 83 inlet; +#X text 457 52 mute; +#X obj 451 208 f; +#X msg 538 201 0; +#X msg 451 108 bang; +#X obj 451 158 moses 1; +#X obj 538 176 t b f; +#X obj 510 140 moses 1; +#X obj 141 131 dbtorms; +#X obj 510 115 r master-lvl; +#X obj 141 45 r master-lvl; +#X obj 451 233 s master-lvl; +#X obj 80 141 inlet~; +#X obj 312 64 inlet; +#X text 312 41 level; +#X obj 312 123 s master-lvl; +#X msg 141 251 set \$1; +#X obj 141 314 outlet; +#X msg 327 87 \; pd dsp 1; +#X obj 141 177 line~; +#X obj 80 215 *~; +#X obj 41 245 dac~; +#X obj 141 154 pack 0 50; +#X text 52 115 audio; +#X text 151 113 show level; +#X obj 26 141 inlet~; +#X obj 26 214 *~; +#X obj 152 202 loadbang; +#X msg 152 228 95; +#X connect 0 0 4 0; +#X connect 1 0 7 0; +#X connect 2 0 6 0; +#X connect 4 0 13 0; +#X connect 5 0 13 0; +#X connect 6 0 1 0; +#X connect 7 0 0 0; +#X connect 7 1 8 0; +#X connect 8 0 5 0; +#X connect 9 1 4 1; +#X connect 10 0 24 0; +#X connect 11 0 1 1; +#X connect 11 0 9 0; +#X connect 12 0 10 0; +#X connect 12 0 18 0; +#X connect 14 0 22 0; +#X connect 15 0 17 0; +#X connect 15 0 20 0; +#X connect 18 0 19 0; +#X connect 21 0 28 1; +#X connect 21 0 22 1; +#X connect 22 0 23 1; +#X connect 24 0 21 0; +#X connect 27 0 28 0; +#X connect 28 0 23 0; +#X connect 29 0 30 0; +#X connect 30 0 19 0; +#X restore 116 450 pd output; +#X floatatom 154 427 0 0 0 0 - - -; +#X msg 192 432 MUTE; +#X text 227 431 <-- output amplitude; +#X text 247 335 player bangs out here when finished; +#X text 171 151 start the player; +#X text 203 195 push pause to interrupt. push pause again (or play) +to resume playing; +#X text 155 51 click here to select file; +#X obj 169 334 print EOF; +#X msg 166 224 open_again; +#X text 250 224 reopen the file after stop; +#X text 181 170 stop the player and close the file. You habe to push +stop before you open a new file.; +#X text 27 487 The player supports mono and stereo MPEG Layer III files. +Any bitrate is supported - but we have tested 128Kb/s and 32 Kb/s only. +; +#X text 27 528 The sample rate of the output depends on the system +sample rate of pd:; +#X text 25 555 If the sample rate of pd is set to 44100 \, files having +the sample rates of 44100 \, 22050 and 11025 are correctly played \, +other files will be transposed.; +#X text 18 20 V 0.1 Thomas Musil \, Norbert Math - IEM; +#X floatatom 152 392 8 0 0 0 - - -; +#X text 218 393 sec; +#X floatatom 169 283 6 0 0 0 - - -; +#X msg 178 247 open_again_at; +#X text 222 283 offset in sec; +#X obj 38 72 openpanel; +#X msg 38 51 bang; +#X msg 38 122 open_at \$1; +#X text 126 121 open_at: open a selected file to play \, beginning +at offset; +#X text 173 90 open: open a selected file to play; +#X text 281 247 reopen the file at offset after stop; +#X text 181 308 no argument \, mp3play~ prints file-header to console +; +#X text 258 392 current playing-time; +#X obj 18 225 tgl 15 0 empty empty empty 20 8 0 10 -262144 -1 -1 0 +1; +#X obj 18 245 dsp; +#X floatatom 18 303 5 0 0 0 - - -; +#X text 65 303 %; +#X text 457 433 (c) musil@iem.kug.ac.at; +#X text 499 446 IEM KUG; +#X text 474 458 graz \, austria 2001; +#X obj 152 365 speedlim 50; +#X floatatom 34 271 5 0 0 0 - - -; +#X text 77 273 %; +#X msg 517 291 open test1.mp3; +#X obj 554 237 loadbang; +#X text 518 309 this music is composed; +#X text 529 319 by Bernhard Lang; +#X text 508 329 "Hommage an Martin Arnold"; +#X connect 0 0 8 0; +#X connect 0 1 8 1; +#X connect 0 2 44 0; +#X connect 0 3 16 0; +#X connect 1 0 0 0; +#X connect 2 0 0 0; +#X connect 3 0 0 0; +#X connect 4 0 0 0; +#X connect 5 0 4 0; +#X connect 6 0 5 0; +#X connect 8 0 9 0; +#X connect 9 0 8 2; +#X connect 10 0 8 3; +#X connect 17 0 0 0; +#X connect 26 0 0 1; +#X connect 27 0 0 0; +#X connect 29 0 31 0; +#X connect 30 0 29 0; +#X connect 31 0 0 0; +#X connect 37 0 38 0; +#X connect 38 0 39 0; +#X connect 38 1 45 0; +#X connect 44 0 24 0; +#X connect 47 0 0 0; diff --git a/iemhelp/help-mull~.pd b/iemhelp/help-mull~.pd new file mode 100644 index 0000000..a0599c0 --- /dev/null +++ b/iemhelp/help-mull~.pd @@ -0,0 +1,28 @@ +#N canvas 375 118 372 456 10; +#X text 16 386 (c) musil@iem.kug.ac.at; +#X text 58 399 IEM KUG; +#X text 28 48 dsp ON/OFF; +#X floatatom 85 199 9 0 22000 0 - - -; +#X floatatom 11 88 5 0 0 0 - - -; +#X text 46 87 % cpu; +#X floatatom 125 225 5 2 9999 0 - - -; +#X text 168 224 ms; +#X obj 11 68 dsp; +#X obj 11 48 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 15 364 2.arg:<float> interpolation_time [ms]; +#X obj 46 271 unsig~; +#X floatatom 46 294 9 0 22000 0 - - -; +#X obj 46 141 sig~ 1; +#X text 33 411 graz \, austria 2003; +#X text 13 8 mull~; +#X text 79 8 signal multiplication with line~; +#X text 15 352 1.arg:<float> 2nd operand of multiplication; +#X obj 46 248 mull~ 0.5 2000; +#X connect 3 0 18 1; +#X connect 6 0 18 2; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 11 0 12 0; +#X connect 13 0 18 0; +#X connect 18 0 11 0; diff --git a/iemhelp/help-once.pd b/iemhelp/help-once.pd new file mode 100644 index 0000000..4f16104 --- /dev/null +++ b/iemhelp/help-once.pd @@ -0,0 +1,30 @@ +#N canvas 231 172 397 462 10; +#X obj 66 326 print; +#X msg 66 133 1; +#X obj 301 113 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 66 112 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 66 197 11 22; +#X msg 66 153 symbol foo; +#X msg 66 175 set; +#X msg 66 218 list aaa 123; +#X msg 66 241 jkl 555 uuu; +#X text 24 393 (c) musil@iem.kug.ac.at; +#X text 66 406 IEM KUG; +#X text 41 418 graz \, austria 2003; +#X obj 66 272 once; +#X text 13 7 once; +#X text 69 6 only the first message passes through; +#X text 48 86 message in; +#X text 80 292 message out (only once); +#X text 239 92 anything to init once; +#X connect 1 0 12 0; +#X connect 2 0 12 1; +#X connect 3 0 12 0; +#X connect 4 0 12 0; +#X connect 5 0 12 0; +#X connect 6 0 12 0; +#X connect 7 0 12 0; +#X connect 8 0 12 0; +#X connect 12 0 0 0; diff --git a/iemhelp/help-para_bp2~.pd b/iemhelp/help-para_bp2~.pd new file mode 100644 index 0000000..f8df480 --- /dev/null +++ b/iemhelp/help-para_bp2~.pd @@ -0,0 +1,64 @@ +#N canvas 460 77 403 463 10; +#X text 5 265 ~signal_in~; +#X text 14 403 (c) musil@iem.kug.ac.at; +#X text 56 416 IEM KUG; +#X text 30 44 dsp ON/OFF; +#X floatatom 81 161 3 15 133 0 - - -; +#X obj 81 180 mtof; +#X floatatom 81 199 9 0 22000 0 - - -; +#X text 145 200 Hz; +#X text 60 294 ~signal_out~; +#X floatatom 207 279 7 0 0 0 - - -; +#X text 258 280 dB; +#X floatatom 121 154 9 0 22000 0 - - -; +#X text 185 155 Hz; +#X floatatom 48 115 3 15 133 0 - - -; +#X floatatom 13 84 5 0 0 0 - - -; +#X text 53 85 % cpu; +#X floatatom 181 256 5 2 9999 0 - - -; +#X text 222 257 ms; +#X obj 13 64 dsp; +#X floatatom 114 218 4 0.01 1000 0 - - -; +#X text 150 218 Q; +#X text 95 351 2.arg:<float> Q [-]; +#X text 95 341 1.arg:<float> center_freq. [Hz]; +#X obj 13 44 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 48 347 dac~; +#X obj 48 322 gainvu~ 300; +#X obj 253 157 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 315 191 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 48 134 testtone~ 200; +#X obj 112 98 init 69; +#X text 75 116 midi; +#X text 95 371 4.arg:<float> interpolation_time [ms]; +#X text 95 361 3.arg:<float> level [dB]; +#X obj 48 280 para_bp2~ 440 2 -12 200; +#X floatatom 147 237 6 -40 40 0 - - -; +#X text 191 238 dB; +#X floatatom 302 339 7 0 0 0 - - -; +#X text 353 340 dB; +#X text 137 2 parametric bandpass 2.order; +#X obj 7 7 cnv 8 1 1 empty empty para_bp2~ 1 2 1 18 -262144 -1109 0 +; +#X text 31 428 graz \, austria 2003; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 1; +#X connect 13 0 28 0; +#X connect 16 0 33 4; +#X connect 18 0 14 0; +#X connect 19 0 33 2; +#X connect 23 0 18 0; +#X connect 25 0 24 0; +#X connect 25 0 24 1; +#X connect 25 1 36 0; +#X connect 25 2 26 0; +#X connect 26 1 9 0; +#X connect 27 0 25 1; +#X connect 28 0 33 0; +#X connect 28 1 11 0; +#X connect 29 0 13 0; +#X connect 33 0 25 0; +#X connect 34 0 33 3; diff --git a/iemhelp/help-peakenv~.pd b/iemhelp/help-peakenv~.pd new file mode 100644 index 0000000..9abb649 --- /dev/null +++ b/iemhelp/help-peakenv~.pd @@ -0,0 +1,35 @@ +#N canvas 190 268 477 426 10; +#X msg 10 143 0; +#X msg 43 143 1; +#X obj 45 168 sig~; +#X floatatom 45 336 9 0 0 0 - - -; +#X msg 148 207 reset; +#X msg 81 144 10; +#X text 50 207 ~signal_in~; +#X text 11 369 (c) musil@iem.kug.ac.at; +#X text 53 382 IEM KUG; +#X text 42 39 dsp ON/OFF; +#X obj 14 59 dsp; +#X floatatom 14 80 3 0 0 0 - - -; +#X text 41 81 % cpu; +#X obj 45 237 peakenv~ 1000; +#X text 123 337 1.output: <sig> peak-envelope; +#X text 29 394 graz \, austria 2002; +#X text 136 255 (output_envelope decrements about 63% in this time) +; +#X obj 45 260 unsig~ 50; +#X text 187 206 resets peak-envelope to 0; +#X text 133 241 1.arg: <float> time-constant [ms] (default: 0 ms); +#X text 9 7 peakenv~; +#X text 86 4 signal-peak-envelope; +#X obj 14 41 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X connect 0 0 2 0; +#X connect 1 0 2 0; +#X connect 2 0 13 0; +#X connect 4 0 13 0; +#X connect 5 0 2 0; +#X connect 10 0 11 0; +#X connect 13 0 17 0; +#X connect 17 0 3 0; +#X connect 22 0 10 0; diff --git a/iemhelp/help-pink~.pd b/iemhelp/help-pink~.pd new file mode 100644 index 0000000..b64318e --- /dev/null +++ b/iemhelp/help-pink~.pd @@ -0,0 +1,31 @@ +#N canvas 257 125 341 335 10; +#X text 15 262 (c) musil@iem.kug.ac.at; +#X text 57 275 IEM KUG; +#X text 38 49 dsp ON/OFF; +#X floatatom 171 169 7 0 0 0 - - -; +#X text 222 170 dB; +#X floatatom 21 89 5 0 0 0 - - -; +#X text 69 90 % cpu; +#X obj 21 69 dsp; +#X obj 21 49 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 32 230 dac~; +#X obj 32 205 gainvu~ 300; +#X obj 210 47 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 271 74 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X text 32 287 graz \, austria 2001; +#X floatatom 243 223 7 0 0 0 - - -; +#X text 301 225 dB; +#X text 72 157 no arg; +#X obj 32 157 pink~; +#X text 15 7 pink~ : pink noise with -3 dB per octave; +#X connect 7 0 5 0; +#X connect 8 0 7 0; +#X connect 10 0 9 0; +#X connect 10 0 9 1; +#X connect 10 1 14 0; +#X connect 10 2 11 0; +#X connect 11 1 3 0; +#X connect 12 0 10 1; +#X connect 17 0 10 0; diff --git a/iemhelp/help-post_netreceive.pd b/iemhelp/help-post_netreceive.pd new file mode 100644 index 0000000..9ace195 --- /dev/null +++ b/iemhelp/help-post_netreceive.pd @@ -0,0 +1,109 @@ +#N canvas 153 56 742 548 10; +#X msg 4 186 clear; +#X floatatom 33 95 5 0 0 0 - - -; +#X obj 82 124 pp 1; +#X floatatom 82 98 5 0 0 0 - - -; +#X floatatom 135 100 5 0 0 0 - - -; +#X obj 33 121 pp 0; +#X obj 135 126 pp 2; +#X obj 15 345 r aaa; +#X floatatom 15 368 5 0 0 0 - - -; +#X floatatom 61 367 5 0 0 0 - - -; +#X floatatom 108 367 5 0 0 0 - - -; +#X obj 61 344 r bbbb; +#X obj 108 344 r ccccc; +#X obj 305 62 loadbang; +#X text 37 39 to sended messages without this float-index; +#X obj 135 421 nbx 5 28 -1e+037 1e+037 0 0 aaa aaa aaa -68 13 192 28 +-225280 -1109 -260818 21 256; +#X obj 135 457 nbx 5 28 -1e+037 1e+037 0 0 bbbb bbbb bbbb -88 13 192 +28 -225280 -1109 -260818 22 256; +#X obj 135 492 nbx 5 28 -1e+037 1e+037 0 0 ccccc ccccc ccccc -110 13 +192 28 -225280 -1109 -260818 23 256; +#X msg 295 112 bbbb 1; +#X msg 287 89 aaa 0; +#X msg 481 186 fetch_all_parameters 3; +#X obj 55 317 print abc; +#X floatatom 178 394 5 0 0 0 - - -; +#X obj 182 345 r vu_level; +#X msg 306 133 set ccccc 2; +#X msg 318 156 vu_level 3; +#X floatatom 183 82 5 0 0 0 - - -; +#X msg 196 105 \$1 \$1; +#X obj 186 131 pp 3; +#X obj 182 368 unpack; +#X floatatom 221 394 5 0 0 0 - - -; +#X obj 382 392 vu 15 120 vu_level empty 35 8 64 8 -66577 -1 1 0; +#X floatatom 15 393 5 0 0 0 - - -; +#X floatatom 61 392 5 0 0 0 - - -; +#X floatatom 108 392 5 0 0 0 - - -; +#X obj 55 295 post_netreceive 0 80; +#X msg 471 226 all_parameters 1 2 3; +#X msg 441 272 set_all_parameters 21 22 23; +#X obj 217 208 pp set_item_name; +#X msg 482 162 fetch_all_parameters 5; +#X obj 432 168 pp 4; +#X msg 409 120 33 44 55; +#X msg 496 120 99 88 77; +#X msg 331 180 gg_list 4; +#X obj 489 359 r gg_list; +#X obj 489 381 unpack 0 0 0; +#X floatatom 489 412 5 0 0 0 - - -; +#X floatatom 527 410 5 0 0 0 - - -; +#X floatatom 567 407 5 0 0 0 - - -; +#X text 11 6 post_netreceive; +#X text 27 26 convert message-lists with a prepended float-index; +#X text 193 294 1.arg: minimum-index; +#X text 193 306 2.arg: maximum-index; +#X text 441 292 output to the first 3 send-symbols; +#X text 441 301 these 3 numbers with a prepended set message; +#X text 474 241 output to the first 3 send-symbols; +#X text 474 249 these 3 numbers; +#X text 487 203 send the first 3 parameters; +#X text 21 64 send the number; +#X text 15 73 to the corresp. send-sym; +#X text 361 57 set_item_name: send-symbol + para-index; +#X msg 348 110 ccccc 2; +#X connect 0 0 35 0; +#X connect 1 0 5 0; +#X connect 2 0 35 0; +#X connect 3 0 2 0; +#X connect 4 0 6 0; +#X connect 5 0 35 0; +#X connect 6 0 35 0; +#X connect 7 0 8 0; +#X connect 8 0 32 0; +#X connect 9 0 33 0; +#X connect 10 0 34 0; +#X connect 11 0 9 0; +#X connect 12 0 10 0; +#X connect 13 0 19 0; +#X connect 13 0 18 0; +#X connect 13 0 24 0; +#X connect 13 0 25 0; +#X connect 13 0 43 0; +#X connect 18 0 38 0; +#X connect 19 0 38 0; +#X connect 20 0 35 0; +#X connect 23 0 29 0; +#X connect 24 0 38 0; +#X connect 25 0 38 0; +#X connect 26 0 27 0; +#X connect 27 0 28 0; +#X connect 28 0 35 0; +#X connect 29 0 22 0; +#X connect 29 1 30 0; +#X connect 35 0 21 0; +#X connect 36 0 35 0; +#X connect 37 0 35 0; +#X connect 38 0 35 0; +#X connect 39 0 35 0; +#X connect 40 0 35 0; +#X connect 41 0 40 0; +#X connect 42 0 40 0; +#X connect 43 0 38 0; +#X connect 44 0 45 0; +#X connect 45 0 46 0; +#X connect 45 1 47 0; +#X connect 45 2 48 0; +#X connect 61 0 38 0; diff --git a/iemhelp/help-pp.pd b/iemhelp/help-pp.pd new file mode 100644 index 0000000..47a1bbd --- /dev/null +++ b/iemhelp/help-pp.pd @@ -0,0 +1,72 @@ +#N canvas 231 172 613 503 10; +#X obj 117 376 print; +#X msg 117 61 1; +#X obj 238 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 117 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 117 149 11 22; +#X msg 238 150 33 44; +#X msg 238 63 3; +#X msg 117 105 symbol foo; +#X msg 238 107 symbol zyx; +#X msg 117 83 float 1.1; +#X msg 238 85 float 3.3; +#X msg 117 127 set; +#X msg 238 128 open; +#X msg 117 172 list -55 -66; +#X msg 238 172 list -77 -88; +#X msg 238 195 list bbb 987; +#X msg 117 195 list aaa 123; +#X msg 117 218 jkl 555 uuu; +#X msg 238 218 poi 777 ttt; +#X obj 191 377 route bang float symbol list; +#X obj 242 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 281 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 324 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 367 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 421 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 400 376 anything; +#X text 262 39 bang clears message-buffer; +#X text 75 421 (c) musil@iem.kug.ac.at; +#X text 117 434 IEM KUG; +#X text 213 313 head of output-message; +#X text 218 302 initials-arguments:; +#X text 109 7 merge the head-message in front of the tail-message; +#X text 92 446 graz \, austria 2003; +#X text 34 284 tail of output-message; +#X text 226 285 head of output-message; +#X text 224 275 <- cold inlet; +#X text 122 274 <- hot inlet; +#X text 13 7 pp; +#X obj 117 300 pp set; +#X connect 1 0 38 0; +#X connect 2 0 38 1; +#X connect 3 0 38 0; +#X connect 4 0 38 0; +#X connect 5 0 38 1; +#X connect 6 0 38 1; +#X connect 7 0 38 0; +#X connect 8 0 38 1; +#X connect 9 0 38 0; +#X connect 10 0 38 1; +#X connect 11 0 38 0; +#X connect 12 0 38 1; +#X connect 13 0 38 0; +#X connect 14 0 38 1; +#X connect 15 0 38 1; +#X connect 16 0 38 0; +#X connect 17 0 38 0; +#X connect 18 0 38 1; +#X connect 19 0 20 0; +#X connect 19 1 21 0; +#X connect 19 2 22 0; +#X connect 19 3 23 0; +#X connect 19 4 24 0; +#X connect 38 0 0 0; +#X connect 38 0 19 0; diff --git a/iemhelp/help-pre_inlet.pd b/iemhelp/help-pre_inlet.pd new file mode 100644 index 0000000..4090b22 --- /dev/null +++ b/iemhelp/help-pre_inlet.pd @@ -0,0 +1,39 @@ +#N canvas 231 172 606 462 10; +#X msg 79 243 jkl 555 uuu; +#X text 24 393 (c) musil@iem.kug.ac.at; +#X text 66 406 IEM KUG; +#X text 13 7 pre_inlet; +#X obj 66 272 pre_inlet 1 0; +#X obj 66 348 print first; +#X obj 195 272 pre_inlet 1 1; +#X obj 195 348 print second; +#X obj 320 272 pre_inlet 1 2; +#X msg 208 243 abc ghj 78; +#X msg 333 243 zyx 3.17; +#X obj 320 348 print third; +#X text 41 418 graz \, austria 2003; +#X text 104 48 you can use it for externals with more than one message-inlets +; +#X text 117 182 2.arg: <float> number (0 .. 8.0e+06) \, you can interprete +as; +#X text 175 195 the inlet-index (inlet-selector-number); +#X text 100 9 before an incoming message will be relesed to outlet +\,; +#X text 112 23 a message of 2 items (symbol + float) will be sent; +#X msg 485 242 sss 3.17; +#X obj 472 271 pre_inlet 3 123; +#X obj 472 347 print xxx; +#X text 115 125 1.arg: <float> ascii-number (1 .. 255) \, which will +be; +#X text 154 140 interpreted as a character \, which will be used as +a; +#X text 155 153 selector-symbol for a message (creates a denormal symbol) +; +#X connect 0 0 4 0; +#X connect 4 0 5 0; +#X connect 6 0 7 0; +#X connect 8 0 11 0; +#X connect 9 0 6 0; +#X connect 10 0 8 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; diff --git a/iemhelp/help-pre_netsend.pd b/iemhelp/help-pre_netsend.pd new file mode 100644 index 0000000..dada619 --- /dev/null +++ b/iemhelp/help-pre_netsend.pd @@ -0,0 +1,45 @@ +#N canvas 59 233 591 312 10; +#X msg 294 123 clear; +#X obj 369 51 loadbang; +#X obj 340 173 pre_netsend 80; +#X obj 31 206 r aaa; +#X floatatom 31 229 5 0 0 0 - - -; +#X floatatom 93 231 5 0 0 0 - - -; +#X floatatom 168 231 5 0 0 0 - - -; +#X obj 93 208 r bbbb; +#X obj 168 209 r ccccc; +#X msg 226 206 \; bbbb 5.556; +#X obj 340 227 unpack 0 0; +#X floatatom 340 249 5 0 0 0 - - -; +#X floatatom 405 250 5 0 0 0 - - -; +#X obj 340 198 route send; +#X obj 340 148 pp set_item_name; +#X msg 350 81 aaa 0; +#X msg 359 103 bbbb 1; +#X msg 369 125 ccccc 2; +#X text 4 3 pre_netsend; +#X text 99 2 receive messages without prepended float-index and; +#X text 87 15 convert to message-lists with a prepended float-index +; +#X obj 125 77 nbx 5 28 -1e+037 1e+037 0 0 aaa aaa aaa -68 13 192 28 +-225280 -1109 -260818 0 256; +#X obj 125 113 nbx 5 28 -1e+037 1e+037 0 0 bbbb bbbb bbbb -88 13 192 +28 -225280 -1109 -260818 0 256; +#X obj 125 148 nbx 5 28 -1e+037 1e+037 0 0 ccccc ccccc ccccc -110 13 +192 28 -225280 -1109 -260818 0 256; +#X text 305 35 set_item_name: receive-symbol + para-index; +#X connect 0 0 2 0; +#X connect 1 0 15 0; +#X connect 1 0 16 0; +#X connect 1 0 17 0; +#X connect 2 0 13 0; +#X connect 3 0 4 0; +#X connect 7 0 5 0; +#X connect 8 0 6 0; +#X connect 10 0 11 0; +#X connect 10 1 12 0; +#X connect 13 0 10 0; +#X connect 14 0 2 0; +#X connect 15 0 14 0; +#X connect 16 0 14 0; +#X connect 17 0 14 0; diff --git a/iemhelp/help-prepend.pd b/iemhelp/help-prepend.pd new file mode 100644 index 0000000..83e1504 --- /dev/null +++ b/iemhelp/help-prepend.pd @@ -0,0 +1,72 @@ +#N canvas 231 172 613 503 10; +#X obj 117 376 print; +#X msg 117 61 1; +#X obj 238 41 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 117 40 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 117 149 11 22; +#X msg 238 150 33 44; +#X msg 238 63 3; +#X msg 117 105 symbol foo; +#X msg 238 107 symbol zyx; +#X msg 117 83 float 1.1; +#X msg 238 85 float 3.3; +#X msg 117 127 set; +#X msg 238 128 open; +#X msg 117 172 list -55 -66; +#X msg 238 172 list -77 -88; +#X msg 238 195 list bbb 987; +#X msg 117 195 list aaa 123; +#X msg 117 218 jkl 555 uuu; +#X msg 238 218 poi 777 ttt; +#X obj 191 377 route bang float symbol list; +#X obj 242 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 281 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 324 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 367 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 421 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 400 376 anything; +#X text 262 39 bang clears message-buffer; +#X text 75 421 (c) musil@iem.kug.ac.at; +#X text 117 434 IEM KUG; +#X text 213 313 head of output-message; +#X text 218 302 initials-arguments:; +#X text 109 7 merge the head-message in front of the tail-message; +#X text 92 446 graz \, austria 2003; +#X text 34 284 tail of output-message; +#X text 226 285 head of output-message; +#X text 224 275 <- cold inlet; +#X text 122 274 <- hot inlet; +#X text 13 7 prepend; +#X obj 117 300 prepend set; +#X connect 1 0 38 0; +#X connect 2 0 38 1; +#X connect 3 0 38 0; +#X connect 4 0 38 0; +#X connect 5 0 38 1; +#X connect 6 0 38 1; +#X connect 7 0 38 0; +#X connect 8 0 38 1; +#X connect 9 0 38 0; +#X connect 10 0 38 1; +#X connect 11 0 38 0; +#X connect 12 0 38 1; +#X connect 13 0 38 0; +#X connect 14 0 38 1; +#X connect 15 0 38 1; +#X connect 16 0 38 0; +#X connect 17 0 38 0; +#X connect 18 0 38 1; +#X connect 19 0 20 0; +#X connect 19 1 21 0; +#X connect 19 2 22 0; +#X connect 19 3 23 0; +#X connect 19 4 24 0; +#X connect 38 0 0 0; +#X connect 38 0 19 0; diff --git a/iemhelp/help-prepend_ascii.pd b/iemhelp/help-prepend_ascii.pd new file mode 100644 index 0000000..aadd3db --- /dev/null +++ b/iemhelp/help-prepend_ascii.pd @@ -0,0 +1,42 @@ +#N canvas 244 76 683 462 10; +#X msg 94 245 jkl 555 uuu; +#X text 24 393 (c) musil@iem.kug.ac.at; +#X text 66 406 IEM KUG; +#X msg 208 243 abc ghj 78; +#X msg 433 242 zyx 3.17; +#X text 41 418 graz \, austria 2003; +#X text 118 104 1.arg: <float> ascii-number (1 .. 255) \, which will +be; +#X text 157 119 interpreted as a character \, which will be used as +a; +#X text 158 132 selector-symbol for a message (creates a denormal symbol) +; +#X text 13 7 prepend_ascii; +#X obj 66 272 prepend_ascii 1; +#X obj 195 272 prepend_ascii 2 open ttt 666; +#X obj 52 241 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 68 215 44; +#X msg 99 214 symbol hhh; +#X obj 420 271 prepend_ascii 3 55 66; +#X obj 66 348 print xxx; +#X obj 195 348 print yyy; +#X obj 420 347 print zzz; +#X text 127 9 prepends the list-arguments in front of an incomming +; +#X text 128 22 message \, the first item of the arguments has to be +; +#X text 126 36 a integer between 1 and 255 and will be interpreted +; +#X text 125 51 as a ascii-character \, which will be converted to; +#X text 126 64 a selector-symbol; +#X text 105 160 nth.arg: anything; +#X connect 0 0 10 0; +#X connect 3 0 11 0; +#X connect 4 0 15 0; +#X connect 10 0 16 0; +#X connect 11 0 17 0; +#X connect 12 0 10 0; +#X connect 13 0 10 0; +#X connect 14 0 10 0; +#X connect 15 0 18 0; diff --git a/iemhelp/help-prvu~.pd b/iemhelp/help-prvu~.pd new file mode 100644 index 0000000..73b6142 --- /dev/null +++ b/iemhelp/help-prvu~.pd @@ -0,0 +1,135 @@ +#N canvas 210 11 724 591 10; +#X msg 167 246 0; +#X msg 468 246 0.5; +#X msg 540 246 1; +#X obj 96 283 sig~; +#X floatatom 96 481 9 0 0 0 - - -; +#X floatatom 163 435 9 0 0 0 - - -; +#X msg 96 189 reset; +#X msg 96 223 start; +#X msg 96 206 stop; +#X msg 357 246 0.1; +#X msg 321 246 0.01; +#X msg 279 246 0.001; +#X msg 237 246 0.0001; +#X msg 194 246 1e-005; +#X msg 390 246 0.25; +#X msg 427 246 0.316; +#X msg 499 246 0.707; +#X msg 570 246 1.414; +#X msg 612 246 2; +#X msg 645 246 10; +#X text 27 352 ~signal_in~; +#X text 201 47 (periode between 2 output-events); +#X text 99 534 (c) musil@iem.kug.ac.at; +#X text 116 559 graz \, austria 2000; +#X text 141 547 IEM KUG; +#X text 32 42 dsp ON/OFF; +#X obj 14 61 dsp; +#X floatatom 14 82 3 0 0 0 - - -; +#X text 41 83 % cpu; +#X obj 96 395 unpack 0 0 0; +#X floatatom 129 458 9 0 0 0 - - -; +#X text 195 459 2.item: <float> peak_level [dB]; +#X text 160 482 1.item: <float> rms_level [dB]; +#X obj 14 40 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 25 381 vu 15 120 empty empty -1 -8 0 8 -66577 -1 1 0; +#X floatatom 96 261 9 0 0 0 - - -; +#X obj 125 303 phasor~; +#X obj 125 322 cos~; +#X obj 96 339 *~; +#X floatatom 24 524 6 0 0 0 - - -; +#X floatatom 34 508 6 0 0 0 - - -; +#X text 181 151 4.arg:<float>overflow_threshold [dB] (default: -0.01 +dB); +#X text 200 85 (repeat the peak on output until peakholdtime); +#X text 106 377 output: <list> of 3 items:; +#X text 229 435 3.item: <float> overflow_per_metrotime_counter [-] +; +#X msg 96 51 t_metro \$1; +#X msg 96 89 t_hold \$1; +#X msg 96 127 t_release \$1; +#X msg 96 166 threshold \$1; +#X floatatom 96 34 9 50 500 0 - - -; +#X floatatom 96 72 9 10 5000 0 - - -; +#X floatatom 96 110 9 50 2000 0 - - -; +#X text 204 120 (output_level decrements by about 8.6 dB = 63% during +this; +#X text 556 120 time); +#X floatatom 96 149 9 -120 30 0 - - -; +#X text 201 162 (output_overflow_counter increments by 1 per metrotime +\, if; +#X text 553 162 peaklevel > threshold); +#X obj 24 557 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 34 540 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 21 170 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 21 218 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 21 233 * 0.99; +#X obj 21 252 + 0.01; +#X obj 21 199 metro 2567; +#X obj 96 361 prvu~; +#X text 181 36 1.arg:<float>metrotime [ms] (default: 300 ms); +#X text 181 109 3.arg:<float>releasetime [ms] (default: 300 ms); +#X text 180 74 2.arg:<float>peakholdtime [ms] (default: 1000 ms); +#X obj 125 283 sig~ 10001; +#X text 7 8 prvu~; +#X text 67 8 peak- rms- vu-meter; +#X text 134 188 reset peak- and rms-level to; +#X text 307 188 -99.9 dB and overflow_counter to 0; +#X text 134 205 stop the metro-clock of prvu~; +#X text 134 223 start the metro-clock of prvu~; +#X text 78 509 dB; +#X text 68 525 dB; +#X obj 167 361 prvu~ 300 1000 300 -0.01; +#X connect 0 0 35 0; +#X connect 1 0 35 0; +#X connect 2 0 35 0; +#X connect 3 0 38 0; +#X connect 6 0 64 0; +#X connect 7 0 64 0; +#X connect 8 0 64 0; +#X connect 9 0 35 0; +#X connect 10 0 35 0; +#X connect 11 0 35 0; +#X connect 12 0 35 0; +#X connect 13 0 35 0; +#X connect 14 0 35 0; +#X connect 15 0 35 0; +#X connect 16 0 35 0; +#X connect 17 0 35 0; +#X connect 18 0 35 0; +#X connect 19 0 35 0; +#X connect 26 0 27 0; +#X connect 29 0 4 0; +#X connect 29 1 30 0; +#X connect 29 2 5 0; +#X connect 33 0 26 0; +#X connect 34 0 39 0; +#X connect 34 1 40 0; +#X connect 35 0 3 0; +#X connect 36 0 37 0; +#X connect 37 0 38 1; +#X connect 38 0 64 0; +#X connect 39 0 57 0; +#X connect 40 0 58 0; +#X connect 45 0 64 0; +#X connect 46 0 64 0; +#X connect 47 0 64 0; +#X connect 48 0 64 0; +#X connect 49 0 45 0; +#X connect 50 0 46 0; +#X connect 51 0 47 0; +#X connect 54 0 48 0; +#X connect 59 0 63 0; +#X connect 60 0 61 0; +#X connect 61 0 62 0; +#X connect 62 0 35 0; +#X connect 63 0 60 0; +#X connect 64 0 29 0; +#X connect 64 0 34 0; +#X connect 68 0 36 0; diff --git a/iemhelp/help-pvu~.pd b/iemhelp/help-pvu~.pd new file mode 100644 index 0000000..70786fd --- /dev/null +++ b/iemhelp/help-pvu~.pd @@ -0,0 +1,117 @@ +#N canvas 210 11 726 593 10; +#X msg 167 246 0; +#X msg 468 246 0.5; +#X msg 540 246 1; +#X obj 96 283 sig~; +#X floatatom 115 415 9 0 0 0 - - -; +#X msg 96 189 reset; +#X msg 96 223 start; +#X msg 96 206 stop; +#X msg 357 246 0.1; +#X msg 321 246 0.01; +#X msg 279 246 0.001; +#X msg 237 246 0.0001; +#X msg 194 246 1e-005; +#X msg 390 246 0.25; +#X msg 427 246 0.316; +#X msg 499 246 0.707; +#X msg 570 246 1.414; +#X msg 612 246 2; +#X msg 645 246 10; +#X text 27 352 ~signal_in~; +#X text 201 81 (periode between 2 output-events); +#X text 99 534 (c) musil@iem.kug.ac.at; +#X text 116 559 graz \, austria 2000; +#X text 141 547 IEM KUG; +#X text 32 42 dsp ON/OFF; +#X obj 14 61 dsp; +#X floatatom 14 82 3 0 0 0 - - -; +#X text 41 83 % cpu; +#X floatatom 96 435 9 0 0 0 - - -; +#X obj 14 40 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 25 381 vu 15 120 empty empty -1 -8 0 8 -66577 -1 1 0; +#X floatatom 96 261 9 0 0 0 - - -; +#X obj 125 303 phasor~; +#X obj 125 322 cos~; +#X obj 96 339 *~; +#X floatatom 34 508 6 0 0 0 - - -; +#X msg 96 85 t_metro \$1; +#X msg 96 127 t_release \$1; +#X msg 96 166 threshold \$1; +#X floatatom 96 68 9 50 500 0 - - -; +#X floatatom 96 110 9 50 2000 0 - - -; +#X text 204 120 (output_level decrements by about 8.6 dB = 63% during +this; +#X text 556 120 time); +#X floatatom 96 149 9 -120 30 0 - - -; +#X text 201 162 (output_overflow_counter increments by 1 per metrotime +\, if; +#X text 553 162 peaklevel > threshold); +#X obj 34 540 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 21 170 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 21 218 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 21 233 * 0.99; +#X obj 21 252 + 0.01; +#X obj 21 199 metro 2567; +#X text 181 70 1.arg:<float>metrotime [ms] (default: 300 ms); +#X obj 125 283 sig~ 10001; +#X text 78 509 dB; +#X text 7 8 pvu~; +#X text 67 8 peak-vu-meter; +#X obj 96 361 pvu~; +#X text 181 415 2.outlet: <float> overflow_per_metrotime_counter [-] +; +#X text 162 436 1.outlet: <float> peak_level [dB]; +#X text 134 188 reset peak-level to; +#X text 256 189 -199.9 dB and overflow_counter to 0; +#X text 134 204 stop the metro-clock of pvu~; +#X text 134 223 start the metro-clock of pvu~; +#X text 181 109 2.arg:<float>releasetime [ms] (default: 300 ms); +#X text 181 151 3.arg:<float>overflow_threshold [dB] (default: -0.01 +dB); +#X obj 150 361 pvu~ 300 300 -0.01; +#X connect 0 0 31 0; +#X connect 1 0 31 0; +#X connect 2 0 31 0; +#X connect 3 0 34 0; +#X connect 5 0 57 0; +#X connect 6 0 57 0; +#X connect 7 0 57 0; +#X connect 8 0 31 0; +#X connect 9 0 31 0; +#X connect 10 0 31 0; +#X connect 11 0 31 0; +#X connect 12 0 31 0; +#X connect 13 0 31 0; +#X connect 14 0 31 0; +#X connect 15 0 31 0; +#X connect 16 0 31 0; +#X connect 17 0 31 0; +#X connect 18 0 31 0; +#X connect 25 0 26 0; +#X connect 29 0 25 0; +#X connect 30 1 35 0; +#X connect 31 0 3 0; +#X connect 32 0 33 0; +#X connect 33 0 34 1; +#X connect 34 0 57 0; +#X connect 35 0 46 0; +#X connect 36 0 57 0; +#X connect 37 0 57 0; +#X connect 38 0 57 0; +#X connect 39 0 36 0; +#X connect 40 0 37 0; +#X connect 43 0 38 0; +#X connect 47 0 51 0; +#X connect 48 0 49 0; +#X connect 49 0 50 0; +#X connect 50 0 31 0; +#X connect 51 0 48 0; +#X connect 53 0 32 0; +#X connect 57 0 28 0; +#X connect 57 0 30 1; +#X connect 57 1 4 0; diff --git a/iemhelp/help-rbpq2~.pd b/iemhelp/help-rbpq2~.pd new file mode 100644 index 0000000..6b8feb8 --- /dev/null +++ b/iemhelp/help-rbpq2~.pd @@ -0,0 +1,59 @@ +#N canvas 375 118 375 487 10; +#X text 17 421 (c) musil@iem.kug.ac.at; +#X text 59 434 IEM KUG; +#X text 34 40 dsp ON/OFF; +#X floatatom 17 80 5 0 0 0 - - -; +#X text 55 81 % cpu; +#X obj 17 60 dsp; +#X obj 17 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 26 371 2.arg:<float> Q [-]; +#X text 26 361 1.arg:<float> center_freq. [Hz]; +#X text 26 381 3.arg:<float> interpolation_time [ms]; +#X text 9 265 ~signal_in~; +#X floatatom 82 180 3 15 133 0 - - -; +#X obj 82 199 mtof; +#X floatatom 82 218 9 0 22000 0 - - -; +#X text 146 219 Hz; +#X text 64 294 ~signal_out~; +#X floatatom 187 287 7 0 0 0 - - -; +#X text 238 288 dB; +#X floatatom 125 163 9 0 22000 0 - - -; +#X text 189 164 Hz; +#X floatatom 52 124 3 15 133 0 - - -; +#X floatatom 143 260 5 2 9999 0 - - -; +#X text 184 261 ms; +#X floatatom 112 240 4 0.01 1000 0 - - -; +#X text 145 240 Q; +#X obj 52 339 dac~; +#X obj 52 314 gainvu~ 300; +#X obj 234 165 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 289 183 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 8900 1; +#X obj 52 143 testtone~ 200; +#X obj 116 107 init 69; +#X text 79 125 midi; +#X obj 52 280 rbpq2~ 440 2 200; +#X floatatom 265 331 7 0 0 0 - - -; +#X text 312 331 dB; +#X text 99 7 resonance-bandpass 2.order with Q-inlet; +#X obj 4 13 cnv 8 1 1 empty empty rbpq2~ 1 2 1 18 -262144 -1109 0; +#X text 34 446 graz \, austria 2003; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 32 1; +#X connect 20 0 29 0; +#X connect 21 0 32 3; +#X connect 23 0 32 2; +#X connect 26 0 25 0; +#X connect 26 0 25 1; +#X connect 26 1 33 0; +#X connect 26 2 27 0; +#X connect 27 1 16 0; +#X connect 28 0 26 1; +#X connect 29 0 32 0; +#X connect 29 1 18 0; +#X connect 30 0 20 0; +#X connect 32 0 26 0; diff --git a/iemhelp/help-rbpw2~.pd b/iemhelp/help-rbpw2~.pd new file mode 100644 index 0000000..fca79fd --- /dev/null +++ b/iemhelp/help-rbpw2~.pd @@ -0,0 +1,59 @@ +#N canvas 361 130 413 485 10; +#X text 17 421 (c) musil@iem.kug.ac.at; +#X text 59 434 IEM KUG; +#X text 34 40 dsp ON/OFF; +#X floatatom 17 80 5 0 0 0 - - -; +#X text 55 81 % cpu; +#X obj 17 60 dsp; +#X obj 17 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X text 26 361 1.arg:<float> center_freq. [Hz]; +#X text 26 381 3.arg:<float> interpolation_time [ms]; +#X text 26 371 2.arg:<float> bandwidth [Hz]; +#X text 7 260 ~signal_in~; +#X floatatom 84 175 3 15 133 0 - - -; +#X obj 84 194 mtof; +#X floatatom 84 213 9 0 22000 0 - - -; +#X text 148 214 Hz; +#X text 62 289 ~signal_out~; +#X floatatom 201 282 7 0 0 0 - - -; +#X text 252 283 dB; +#X floatatom 123 158 9 0 22000 0 - - -; +#X text 187 159 Hz; +#X floatatom 50 119 3 15 133 0 - - -; +#X floatatom 153 255 5 2 9999 0 - - -; +#X text 194 256 ms; +#X floatatom 118 235 4 0.01 1000 0 - - -; +#X obj 50 334 dac~; +#X obj 50 309 gainvu~ 300; +#X obj 248 160 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 303 178 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 8700 1; +#X obj 50 138 testtone~ 200; +#X obj 114 102 init 69; +#X text 77 120 midi; +#X floatatom 279 324 7 0 0 0 - - -; +#X text 330 325 dB; +#X obj 50 276 rbpw2~ 440 220 200; +#X text 151 236 bandwidth Hz; +#X text 100 4 resonance-bandpass 2.order with bandwidth-inlet; +#X obj 5 10 cnv 8 1 1 empty empty rbpw2~ 1 2 1 18 -262144 -1109 0; +#X text 34 446 graz \, austria 2003; +#X connect 5 0 3 0; +#X connect 6 0 5 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 13 0 33 1; +#X connect 20 0 28 0; +#X connect 21 0 33 3; +#X connect 23 0 33 2; +#X connect 25 0 24 0; +#X connect 25 0 24 1; +#X connect 25 1 31 0; +#X connect 25 2 26 0; +#X connect 26 1 16 0; +#X connect 27 0 25 1; +#X connect 28 0 33 0; +#X connect 28 1 18 0; +#X connect 29 0 20 0; +#X connect 33 0 25 0; diff --git a/iemhelp/help-receive2list.pd b/iemhelp/help-receive2list.pd new file mode 100644 index 0000000..63d4b8d --- /dev/null +++ b/iemhelp/help-receive2list.pd @@ -0,0 +1,98 @@ +#N canvas 302 119 590 526 10; +#X obj 210 164 receive2list; +#X floatatom 210 394 5 0 0 0 - - -; +#X floatatom 230 359 5 0 0 0 - - -; +#X floatatom 250 323 5 0 0 0 - - -; +#X floatatom 270 286 5 0 0 0 - - -; +#X text 297 93 init; +#X floatatom 24 94 5 0 0 0 - - -; +#X obj 24 114 s aaa; +#X floatatom 63 94 5 0 0 0 - - -; +#X floatatom 103 94 5 0 0 0 - - -; +#X floatatom 142 73 5 0 0 0 - - -; +#X obj 63 114 s bbb; +#X obj 103 114 s ccc; +#X obj 142 115 s ddd; +#X obj 25 251 s eee; +#X msg 25 158 symbol abc; +#X msg 31 180 symbol xyz; +#X obj 210 94 loadbang; +#X text 10 13 receive2list; +#X text 119 11 convert received message to a list; +#X text 121 38 the corresponding prepend-floats and receive-symbols +; +#X text 121 25 with a prepended float.; +#X text 122 52 have to be inputed via a set message.; +#X text 48 479 IEM KUG; +#X text 22 490 graz \, austria 2003; +#X text 20 466 (c) musil@iem.at; +#X obj 142 93 pp set; +#X obj 210 413 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 230 376 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 250 340 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 270 304 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 272 143 clear; +#X floatatom 295 304 5 0 0 0 - - -; +#X floatatom 234 415 5 0 0 0 - - -; +#X floatatom 252 377 5 0 0 0 - - -; +#X floatatom 271 341 5 0 0 0 - - -; +#X text 294 164 no argument; +#X text 338 174 (max. 200 convertions); +#X msg 481 119 300 xxx; +#X obj 210 136 pp add; +#X symbolatom 361 278 10 0 0 0 - - -; +#X symbolatom 382 303 10 0 0 0 - - -; +#X obj 361 303 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 290 261 symbol; +#X symbolatom 45 230 10 0 0 0 - - -; +#X floatatom 32 312 5 0 0 0 - - -; +#X msg 59 351 22 33 44 55; +#X obj 67 375 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 42 204 set fgh; +#X obj 310 220 print out5; +#X obj 32 401 s fff; +#X obj 210 188 iem_route 0 1 2 3 4 5; +#X symbolatom 44 329 10 0 0 0 - - -; +#X msg 210 115 0 aaa \, 1 bbb \, 2 ccc \, 3 ddd \, 4 eee; +#X connect 0 0 51 0; +#X connect 1 0 27 0; +#X connect 1 0 33 0; +#X connect 2 0 28 0; +#X connect 2 0 34 0; +#X connect 3 0 29 0; +#X connect 3 0 35 0; +#X connect 4 0 30 0; +#X connect 4 0 32 0; +#X connect 6 0 7 0; +#X connect 8 0 11 0; +#X connect 9 0 12 0; +#X connect 10 0 26 0; +#X connect 15 0 14 0; +#X connect 16 0 14 0; +#X connect 17 0 53 0; +#X connect 26 0 13 0; +#X connect 31 0 0 0; +#X connect 38 0 39 0; +#X connect 39 0 0 0; +#X connect 40 0 41 0; +#X connect 40 0 42 0; +#X connect 43 0 40 0; +#X connect 44 0 14 0; +#X connect 45 0 50 0; +#X connect 46 0 50 0; +#X connect 47 0 50 0; +#X connect 48 0 14 0; +#X connect 51 0 1 0; +#X connect 51 1 2 0; +#X connect 51 2 3 0; +#X connect 51 3 4 0; +#X connect 51 4 43 0; +#X connect 51 5 49 0; +#X connect 52 0 50 0; +#X connect 53 0 39 0; diff --git a/iemhelp/help-rmstofad.pd b/iemhelp/help-rmstofad.pd new file mode 100644 index 0000000..bd79766 --- /dev/null +++ b/iemhelp/help-rmstofad.pd @@ -0,0 +1,22 @@ +#N canvas 157 156 332 297 10; +#X floatatom 90 38 9 0 1300 0 - - -; +#X obj 88 137 vu 15 120 empty empty -1 -8 0 8 -66577 -1 1 0; +#X obj 70 129 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 0 1; +#X obj 123 107 v2db; +#X obj 70 107 rmstofad; +#X floatatom 90 78 9 0 12 0 - - -; +#X text 149 77 linear value; +#X text 151 209 (c) musil@iem.kug.ac.at; +#X text 188 222 IEM KUG; +#X text 163 234 graz \, austria 2003; +#X text 8 6 rmstofad; +#X text 81 7 convert rms-value to fader-scale; +#X text 153 38 linear value in percent; +#X obj 90 57 * 0.01; +#X connect 0 0 13 0; +#X connect 3 0 1 1; +#X connect 4 0 2 0; +#X connect 5 0 3 0; +#X connect 5 0 4 0; +#X connect 13 0 5 0; diff --git a/iemhelp/help-round_zero.pd b/iemhelp/help-round_zero.pd new file mode 100644 index 0000000..d628291 --- /dev/null +++ b/iemhelp/help-round_zero.pd @@ -0,0 +1,18 @@ +#N canvas 158 131 554 326 10; +#X obj 55 160 round_zero 1e-006; +#X msg 55 78 -1e-007; +#X text 10 8 round_zero; +#X text 122 9 round very small numbers between plus and minus 1 argument +to zero; +#X obj 55 183 print rounded; +#X msg 116 78 1e-007; +#X msg 67 114 -1e-005; +#X msg 128 114 1e-005; +#X text 27 247 (c) musil@iem.kug.ac.at; +#X text 64 260 IEM KUG; +#X text 39 272 graz \, austria 2003; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 5 0 0 0; +#X connect 6 0 0 0; +#X connect 7 0 0 0; diff --git a/iemhelp/help-round~.pd b/iemhelp/help-round~.pd new file mode 100644 index 0000000..3a97265 --- /dev/null +++ b/iemhelp/help-round~.pd @@ -0,0 +1,25 @@ +#N canvas 375 118 322 334 10; +#X text 11 265 (c) musil@iem.kug.ac.at; +#X text 53 278 IEM KUG; +#X text 28 48 dsp ON/OFF; +#X floatatom 45 225 7 0 0 0 - - -; +#X floatatom 46 119 7 0 0 0 - - -; +#X floatatom 11 88 5 0 0 0 - - -; +#X text 46 87 % cpu; +#X obj 11 68 dsp; +#X obj 11 48 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 9 5 round~; +#X obj 46 141 sig~; +#X obj 46 170 round~; +#X obj 45 203 unsig~; +#X text 96 168 no arg; +#X text 28 290 graz \, austria 2003; +#X text 76 16 a signal-integer-number; +#X text 73 5 signal-float-rounding to; +#X connect 4 0 10 0; +#X connect 7 0 5 0; +#X connect 8 0 7 0; +#X connect 10 0 11 0; +#X connect 11 0 12 0; +#X connect 12 0 3 0; diff --git a/iemhelp/help-rvu~.pd b/iemhelp/help-rvu~.pd new file mode 100644 index 0000000..e07b9d8 --- /dev/null +++ b/iemhelp/help-rvu~.pd @@ -0,0 +1,109 @@ +#N canvas 210 11 726 593 10; +#X msg 167 190 0; +#X msg 468 191 0.5; +#X msg 540 191 1; +#X obj 96 229 sig~; +#X floatatom 96 343 9 0 0 0 - - -; +#X msg 96 135 reset; +#X msg 96 169 start; +#X msg 96 152 stop; +#X msg 357 190 0.1; +#X msg 321 190 0.01; +#X msg 279 190 0.001; +#X msg 237 190 0.0001; +#X msg 194 190 1e-005; +#X msg 390 191 0.25; +#X msg 427 191 0.316; +#X msg 499 191 0.707; +#X msg 570 191 1.414; +#X msg 612 191 2; +#X msg 645 191 10; +#X text 27 298 ~signal_in~; +#X text 201 47 (periode between 2 output-events); +#X text 99 480 (c) musil@iem.kug.ac.at; +#X text 116 505 graz \, austria 2000; +#X text 141 493 IEM KUG; +#X text 32 42 dsp ON/OFF; +#X obj 14 61 dsp; +#X floatatom 14 82 3 0 0 0 - - -; +#X text 41 83 % cpu; +#X text 160 344 1.item: <float> rms_level [dB]; +#X obj 14 40 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 25 327 vu 15 120 empty empty -1 -8 0 8 -66577 -1 1 0; +#X floatatom 96 207 9 0 0 0 - - -; +#X obj 125 249 phasor~; +#X obj 125 268 cos~; +#X obj 96 285 *~; +#X floatatom 24 470 6 0 0 0 - - -; +#X floatatom 34 454 6 0 0 0 - - -; +#X msg 96 51 t_metro \$1; +#X msg 96 97 t_release \$1; +#X floatatom 96 34 9 50 500 0 - - -; +#X floatatom 96 80 9 50 2000 0 - - -; +#X text 204 90 (output_level decrements by about 8.6 dB = 63% during +this; +#X text 556 91 time); +#X obj 24 503 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 34 486 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X obj 21 116 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 21 164 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 0 1 +; +#X obj 21 179 * 0.99; +#X obj 21 198 + 0.01; +#X obj 21 145 metro 2567; +#X text 181 36 1.arg:<float>metrotime [ms] (default: 300 ms); +#X obj 125 229 sig~ 10001; +#X text 78 455 dB; +#X text 68 471 dB; +#X text 7 8 rvu~; +#X text 67 7 rms- vu-meter; +#X text 181 79 2.arg:<float>releasetime [ms] (default: 300 ms); +#X obj 96 307 rvu~; +#X text 106 323 output: <float>:; +#X text 134 134 reset rms-level to -99.9 dB; +#X text 134 151 stop the metro-clock of rvu~; +#X text 134 169 start the metro-clock of rvu~; +#X connect 0 0 31 0; +#X connect 1 0 31 0; +#X connect 2 0 31 0; +#X connect 3 0 34 0; +#X connect 5 0 57 0; +#X connect 6 0 57 0; +#X connect 7 0 57 0; +#X connect 8 0 31 0; +#X connect 9 0 31 0; +#X connect 10 0 31 0; +#X connect 11 0 31 0; +#X connect 12 0 31 0; +#X connect 13 0 31 0; +#X connect 14 0 31 0; +#X connect 15 0 31 0; +#X connect 16 0 31 0; +#X connect 17 0 31 0; +#X connect 18 0 31 0; +#X connect 25 0 26 0; +#X connect 29 0 25 0; +#X connect 30 0 35 0; +#X connect 30 1 36 0; +#X connect 31 0 3 0; +#X connect 32 0 33 0; +#X connect 33 0 34 1; +#X connect 34 0 57 0; +#X connect 35 0 43 0; +#X connect 36 0 44 0; +#X connect 37 0 57 0; +#X connect 38 0 57 0; +#X connect 39 0 37 0; +#X connect 40 0 38 0; +#X connect 45 0 49 0; +#X connect 46 0 47 0; +#X connect 47 0 48 0; +#X connect 48 0 31 0; +#X connect 49 0 46 0; +#X connect 51 0 32 0; +#X connect 57 0 30 0; +#X connect 57 0 4 0; diff --git a/iemhelp/help-sin_phase~.pd b/iemhelp/help-sin_phase~.pd new file mode 100644 index 0000000..1ef78e7 --- /dev/null +++ b/iemhelp/help-sin_phase~.pd @@ -0,0 +1,61 @@ +#N canvas 375 118 484 456 10; +#X text 12 402 (c) musil@iem.kug.ac.at; +#X text 54 415 IEM KUG; +#X text 28 48 dsp ON/OFF; +#X floatatom 155 63 3 15 133 0 - - -; +#X obj 155 81 mtof; +#X floatatom 155 102 9 0 22000 0 - - -; +#X text 214 101 Hz; +#X floatatom 294 158 6 -360 360 0 - - -; +#X floatatom 11 88 5 0 0 0 - - -; +#X text 46 87 % cpu; +#X obj 11 68 dsp; +#X obj 11 48 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X text 10 7 sin_phase~; +#X text 105 8 calculate phase-difference between 2; +#X text 105 20 sine-waves \, in samples (signal-out); +#X obj 155 241 sin_phase~; +#X obj 209 216 cos~; +#X obj 154 220 cos~; +#X obj 154 198 +~ 0; +#X obj 155 122 phasor~ 440; +#X text 340 155 percent; +#X text 29 427 graz \, austria 2003; +#X text 180 61 midi-pitch; +#X text 295 140 phase-difference; +#X obj 156 264 lp1~ 10 100; +#X obj 157 286 unsig~; +#X floatatom 157 372 5 0 0 0 - - -; +#X obj 157 308 / 44100; +#X floatatom 92 326 5 0 0 0 - - -; +#X obj 157 330 * 10; +#X obj 157 350 * 360; +#X text 195 371 degree; +#X obj 61 268 unsig~; +#X floatatom 61 291 5 0 0 0 - - -; +#X obj 294 181 / 360; +#X obj 268 116 f; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 19 0; +#X connect 5 0 35 0; +#X connect 7 0 34 0; +#X connect 10 0 8 0; +#X connect 11 0 10 0; +#X connect 15 0 24 0; +#X connect 15 0 32 0; +#X connect 16 0 15 1; +#X connect 17 0 15 0; +#X connect 18 0 17 0; +#X connect 19 0 16 0; +#X connect 19 0 18 0; +#X connect 24 0 25 0; +#X connect 25 0 27 0; +#X connect 25 0 28 0; +#X connect 27 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 26 0; +#X connect 32 0 33 0; +#X connect 34 0 18 1; +#X connect 35 0 29 1; diff --git a/iemhelp/help-soundfile_info.pd b/iemhelp/help-soundfile_info.pd new file mode 100644 index 0000000..e469be4 --- /dev/null +++ b/iemhelp/help-soundfile_info.pd @@ -0,0 +1,34 @@ +#N canvas 153 56 717 404 10; +#X obj 31 45 openpanel; +#X obj 31 26 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X msg 31 92 read \$1; +#X obj 31 166 soundfile_info; +#X obj 31 217 print; +#X text 40 146 "read"-message needs a symbol (soundfile in wave format) +; +#X symbolatom 131 75 66 0 0 0 - - -; +#X text 50 184 "list"-message output with 7 items; +#X text 91 224 4.item: <float> header-size in bytes; +#X text 91 194 1.item: <float> samplerate in Hz; +#X text 91 204 2.item: <symbol> file-name; +#X text 91 214 3.item: <float> multi-channel-sound-data-length in samples +; +#X text 91 234 5.item: <float> number of channels; +#X text 91 244 6.item: <float> single-sample-size in bytes; +#X text 7 2 soundfile_info; +#X text 130 2 show the header-data of a wav-file; +#X text 24 303 (c) musil@iem.kug.ac.at; +#X text 61 316 IEM KUG; +#X text 36 328 graz \, austria 2003; +#X text 91 254 7.item: <symbol> endianness ("l" for little); +#X text 260 264 ("b" for big); +#X text 214 279 (eg. little endian "wav" is natural format on Intel-machines) +; +#X text 214 314 (eg. big endian "aiff" is natural format on Macintosh-machines) +; +#X connect 0 0 2 0; +#X connect 0 0 6 0; +#X connect 1 0 0 0; +#X connect 2 0 3 0; +#X connect 3 0 4 0; diff --git a/iemhelp/help-speedlim.pd b/iemhelp/help-speedlim.pd new file mode 100644 index 0000000..0ef0e74 --- /dev/null +++ b/iemhelp/help-speedlim.pd @@ -0,0 +1,30 @@ +#N canvas 465 200 396 309 10; +#X msg 173 43 1000; +#X msg 176 65 200; +#X floatatom 67 86 4 0 0 0 - - -; +#X floatatom 46 152 4 0 0 0 - - -; +#X obj 95 150 t f b b; +#X obj 117 174 timer; +#X obj 95 200 pack 0 0; +#X obj 95 225 print; +#X msg 179 86 20; +#X obj 67 115 speedlim 20; +#X text 6 7 speedlim : speedlimit for float-message; +#X text 153 115 1.arg: lock-time in ms; +#X text 188 220 (c) musil@iem.kug.ac.at; +#X text 230 233 IEM KUG; +#X obj 46 171 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X text 205 245 graz \, austria 2003; +#X connect 0 0 9 1; +#X connect 1 0 9 1; +#X connect 2 0 9 0; +#X connect 3 0 14 0; +#X connect 4 0 6 0; +#X connect 4 1 5 0; +#X connect 4 2 5 1; +#X connect 5 0 6 1; +#X connect 6 0 7 0; +#X connect 8 0 9 1; +#X connect 9 0 3 0; +#X connect 9 0 4 0; diff --git a/iemhelp/help-split.pd b/iemhelp/help-split.pd new file mode 100644 index 0000000..02cef99 --- /dev/null +++ b/iemhelp/help-split.pd @@ -0,0 +1,25 @@ +#N canvas 168 213 423 343 10; +#X text 15 275 (c) musil@iem.kug.ac.at; +#X text 57 288 IEM KUG; +#X text 32 300 graz \, austria 2001; +#X obj 21 212 bng 15 250 50 0 empty empty empty 8 -8 0 10 0 22 22; +#X obj 58 170 bng 15 250 50 0 empty empty empty 8 -8 0 10 0 22 22; +#X text 41 253 (c) miller puckette; +#X text 7 8 split; +#X obj 21 130 split 5; +#X text 35 243 the original object moses; +#X floatatom 21 65 4 0 0; +#X floatatom 58 109 4 0 0; +#X floatatom 21 192 4 0 0; +#X floatatom 58 150 4 0 0; +#X text 19 50 input_value <float>; +#X text 52 8 part <float>-messages into less and greater equal than limit; +#X text 60 94 limit <float>; +#X text 92 150 output: input greater equal than limit; +#X text 55 193 output: input less than limit; +#X connect 7 0 11 0; +#X connect 7 1 12 0; +#X connect 9 0 7 0; +#X connect 10 0 7 1; +#X connect 11 0 3 0; +#X connect 12 0 4 0; diff --git a/iemhelp/help-split3.pd b/iemhelp/help-split3.pd new file mode 100644 index 0000000..cfe7ba4 --- /dev/null +++ b/iemhelp/help-split3.pd @@ -0,0 +1,30 @@ +#N canvas 290 163 427 323 10; +#X floatatom 19 243 9 0 0; +#X text 18 276 (c) musil@iem.kug.ac.at; +#X text 55 289 IEM KUG; +#X floatatom 19 76 9 0 0; +#X text 15 11 split3; +#X floatatom 64 99 9 0 0; +#X floatatom 110 123 9 0 0; +#X floatatom 64 218 9 0 0; +#X floatatom 110 192 9 0 0; +#X text 81 75 <float> input; +#X text 127 99 <float> low-limit; +#X text 83 244 <float> output within; +#X text 128 219 <float> output less than low-limit; +#X text 175 193 <float> output greater than high-limit; +#X text 175 123 <float> high-limit; +#X text 129 147 1.arg: <float> low-limit; +#X text 129 159 2.arg: <float> high-limit; +#X text 30 301 graz \, austria 2001; +#X obj 19 152 split3 -7.5 13.5; +#X text 77 11 part a <float>-message into 3 ways:; +#X text 138 46 3 greater than high-limit; +#X text 138 36 2 less than low-limit \;; +#X text 138 26 1 within low- and high-limit \;; +#X connect 3 0 18 0; +#X connect 5 0 18 1; +#X connect 6 0 18 2; +#X connect 18 0 0 0; +#X connect 18 1 7 0; +#X connect 18 2 8 0; diff --git a/iemhelp/help-splitfilename.pd b/iemhelp/help-splitfilename.pd new file mode 100644 index 0000000..396c066 --- /dev/null +++ b/iemhelp/help-splitfilename.pd @@ -0,0 +1,67 @@ +#N canvas 150 53 673 562 10; +#X text 23 436 (c) musil@iem.kug.ac.at; +#X text 65 449 IEM KUG; +#X text 40 461 graz \, austria 2002; +#X text 232 457 updated for Pd version 0.35; +#X text 9 1 splitfilename: split into path and filename; +#X obj 53 391 print path; +#X obj 139 391 print file; +#X msg 389 153 separator $; +#X msg 389 88 separator @; +#X msg 389 109 separator :; +#X msg 25 74 C:/program/pd/my_project my_foo.pd; +#X obj 63 338 print path+file; +#X msg 389 46 separator /; +#N canvas 4 20 450 300 /SUBPATCH/ 0; +#X obj 101 31 inlet; +#X obj 100 59 outlet; +#X connect 0 0 1 0; +#X restore 389 276 pd; +#X msg 389 174 separator z; +#X msg 389 195 separator _; +#X msg 389 216 separator .; +#X text 120 19 (separator is last "/"); +#X msg 389 67 separator space; +#X msg 54 98 /home/me my_first_patch.pd; +#X text 156 368 1.arg: <symbol> separator-character (opt. \, default +"/"); +#X msg 405 250 separator; +#X msg 389 131 separator 2; +#X msg 534 78 separator backslash; +#X msg 534 97 separator leftbrace; +#X msg 534 116 separator rightbrace; +#X msg 534 135 separator dollar; +#X msg 534 154 separator comma; +#X msg 534 173 separator semi; +#N canvas 4 20 450 300 /SUBPATCH/ 0; +#X obj 101 31 inlet; +#X obj 100 59 outlet; +#X connect 0 0 1 0; +#X restore 534 255 pd; +#X obj 53 315 mergefilename /; +#X obj 53 368 splitfilename /; +#X connect 7 0 13 0; +#X connect 8 0 13 0; +#X connect 9 0 13 0; +#X connect 10 0 30 0; +#X connect 12 0 13 0; +#X connect 13 0 30 0; +#X connect 13 0 31 0; +#X connect 14 0 13 0; +#X connect 15 0 13 0; +#X connect 16 0 13 0; +#X connect 18 0 13 0; +#X connect 19 0 30 0; +#X connect 21 0 13 0; +#X connect 22 0 13 0; +#X connect 23 0 29 0; +#X connect 24 0 29 0; +#X connect 25 0 29 0; +#X connect 26 0 29 0; +#X connect 27 0 29 0; +#X connect 28 0 29 0; +#X connect 29 0 13 0; +#X connect 30 0 11 0; +#X connect 30 0 31 0; +#X connect 31 0 5 0; +#X connect 31 1 6 0; diff --git a/iemhelp/help-stripfilename.pd b/iemhelp/help-stripfilename.pd new file mode 100644 index 0000000..224b797 --- /dev/null +++ b/iemhelp/help-stripfilename.pd @@ -0,0 +1,24 @@ +#N canvas 183 294 490 264 10; +#X obj 87 75 symbol; +#X text 15 181 (c) musil@iem.kug.ac.at; +#X text 57 194 IEM KUG; +#X text 32 206 graz \, austria 2002; +#X msg 87 43 abcdefghijk; +#X text 233 199 updated for Pd version 0.35; +#X msg 26 59 set 2; +#X text 116 14 characters of a symbol; +#X text 10 1 stripfilename: strip the first or last; +#X obj 47 138 stripfilename -5; +#X msg 11 39 set -7; +#X obj 47 160 print; +#X text 190 92 1.arg: <float> number of first; +#X text 227 105 or last characters to strip; +#X text 218 132 if positiv -> first; +#X text 218 144 if negativ -> last; +#X msg 40 81 set 8; +#X connect 0 0 9 0; +#X connect 4 0 0 0; +#X connect 6 0 9 0; +#X connect 9 0 11 0; +#X connect 10 0 9 0; +#X connect 16 0 9 0; diff --git a/iemhelp/help-subl~.pd b/iemhelp/help-subl~.pd new file mode 100644 index 0000000..d363d5f --- /dev/null +++ b/iemhelp/help-subl~.pd @@ -0,0 +1,28 @@ +#N canvas 375 118 374 458 10; +#X text 16 386 (c) musil@iem.kug.ac.at; +#X text 58 399 IEM KUG; +#X text 28 48 dsp ON/OFF; +#X floatatom 85 199 9 0 22000 0 - - -; +#X floatatom 11 88 5 0 0 0 - - -; +#X text 46 87 % cpu; +#X floatatom 125 225 5 2 9999 0 - - -; +#X text 168 224 ms; +#X obj 11 68 dsp; +#X obj 11 48 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 15 364 2.arg:<float> interpolation_time [ms]; +#X obj 46 271 unsig~; +#X floatatom 46 294 9 0 22000 0 - - -; +#X obj 46 141 sig~ 1; +#X text 33 411 graz \, austria 2003; +#X text 13 8 subl~; +#X text 79 8 signal subtraction with line~; +#X obj 46 248 subl~ 0.5 2000; +#X text 15 352 1.arg:<float> 2nd operand of subtraction; +#X connect 3 0 17 1; +#X connect 6 0 17 2; +#X connect 8 0 4 0; +#X connect 9 0 8 0; +#X connect 11 0 12 0; +#X connect 13 0 17 0; +#X connect 17 0 11 0; diff --git a/iemhelp/help-t3_bpe.pd b/iemhelp/help-t3_bpe.pd new file mode 100644 index 0000000..53ffa33 --- /dev/null +++ b/iemhelp/help-t3_bpe.pd @@ -0,0 +1,101 @@ +#N canvas 100 17 528 582 10; +#N canvas 0 0 450 300 graph1 0; +#X array array99 259 float 0; +#X coords 0 1 258 0 256 140 1; +#X restore 96 43 graph; +#X obj 68 458 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X msg 35 355 stop; +#X obj 68 527 tabwrite~ array99; +#X obj 7 433 loadbang; +#X obj 14 38 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1 1 +; +#X floatatom 14 105 5 0 0 0 - - -; +#X floatatom 30 83 3 0 0 0 - - -; +#X obj 14 60 dsp; +#X obj 91 381 t3_bpe; +#X obj 81 283 bng 25 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 91 316 t b b; +#X obj 91 418 t3_line~ 0; +#X obj 91 349 f 0.04; +#X floatatom 128 265 5 0 0 0 - - -; +#X obj 128 287 / 44.1; +#X text 171 267 Samples; +#X obj 91 455 fade~ lin; +#X obj 147 363 pack 0 0 1 1.5 1 0.5 0 1.5; +#X text 184 250 pre-delay; +#X floatatom 256 264 5 0 0 0 - - -; +#X obj 256 286 / 44.1; +#X text 299 266 Samples; +#X text 312 249 attack; +#X floatatom 364 263 5 0 0 0 - - -; +#X obj 364 285 / 44.1; +#X text 407 265 Samples; +#X text 420 248 sustain; +#X floatatom 364 344 5 0 0 0 - - -; +#X obj 364 366 / 44.1; +#X text 407 346 Samples; +#X text 420 329 release; +#X obj 256 242 init 34; +#X obj 364 241 init 55; +#X obj 364 322 init 70; +#X obj 128 243 init 70; +#X text 12 10 t3_bpe; +#X text 105 9 time-tagged trigger break point envelope; +#X msg 239 421 set _lin; +#X msg 239 442 set _linsqrt; +#X msg 239 463 set _sqrt; +#X msg 239 483 set _sin; +#X msg 240 504 set _sinhann; +#X msg 240 526 set _hann; +#X msg 381 70 \; array99 resize 259 \; array99 bounds 0 0 258 1 \; +array99 xticks 0 64 2 \; array99 yticks 0 0.1 5 \; array99 xlabel -0.08 +0 64 128 192 256 \; array99 ylabel -9.1 0 0.5 1; +#X obj 381 47 loadbang; +#X obj 91 477 *~ 0.8; +#X obj 91 499 +~ 0.1; +#X text 354 505 (c) musil@iem.kug.ac.at; +#X text 396 518 IEM KUG; +#X text 371 530 graz \, austria 2001; +#X text 363 184 Samples; +#X floatatom 156 387 8 0 0 0 - - -; +#X text 213 388 t3_bang if finished; +#X connect 1 0 3 0; +#X connect 2 0 9 0; +#X connect 4 0 1 0; +#X connect 5 0 8 0; +#X connect 8 0 6 0; +#X connect 8 1 7 0; +#X connect 9 0 12 0; +#X connect 9 1 12 1; +#X connect 9 2 52 0; +#X connect 10 0 1 0; +#X connect 10 0 11 0; +#X connect 11 0 13 0; +#X connect 11 1 18 0; +#X connect 12 0 17 0; +#X connect 13 0 9 0; +#X connect 14 0 15 0; +#X connect 15 0 13 1; +#X connect 17 0 46 0; +#X connect 18 0 9 0; +#X connect 20 0 21 0; +#X connect 21 0 18 3; +#X connect 24 0 25 0; +#X connect 25 0 18 5; +#X connect 28 0 29 0; +#X connect 29 0 18 7; +#X connect 32 0 20 0; +#X connect 33 0 24 0; +#X connect 34 0 28 0; +#X connect 35 0 14 0; +#X connect 38 0 17 0; +#X connect 39 0 17 0; +#X connect 40 0 17 0; +#X connect 41 0 17 0; +#X connect 42 0 17 0; +#X connect 43 0 17 0; +#X connect 45 0 44 0; +#X connect 46 0 47 0; +#X connect 47 0 3 0; diff --git a/iemhelp/help-t3_delay.pd b/iemhelp/help-t3_delay.pd new file mode 100644 index 0000000..fcb852a --- /dev/null +++ b/iemhelp/help-t3_delay.pd @@ -0,0 +1,75 @@ +#N canvas 100 58 492 561 10; +#N canvas 0 0 450 300 graph1 0; +#X array array99 259 float 0; +#X coords 0 1 258 0 259 140 1; +#X restore 108 48 graph; +#X obj 95 238 bng 25 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 243 478 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 95 400 t3_del 0.5; +#X obj 28 454 t3_timer; +#X floatatom 28 502 5 0 0 0 - - -; +#X msg 154 455 \$1 0.9; +#X obj 95 303 f 0.04; +#X floatatom 132 241 5 0 0 0 - - -; +#X msg 95 455 \$1 0.1; +#X obj 133 486 t3_sig~ 0.1; +#X obj 132 263 / 44.1; +#X text 175 255 Samples; +#X floatatom 196 352 5 0 0 0 - - -; +#X obj 196 374 / 44.1; +#X text 237 362 Samples; +#X msg 43 327 stop; +#X obj 243 521 tabwrite~ array99; +#X obj 132 219 init 80; +#X obj 196 330 init 30; +#X obj 401 53 loadbang; +#X obj 14 38 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1 1 +; +#X floatatom 14 105 5 0 0 0 - - -; +#X floatatom 30 83 3 0 0 0 - - -; +#X obj 14 60 dsp; +#X obj 95 327 t3_del 0; +#X obj 28 478 * 44.1; +#X text 71 503 Samples; +#X text 12 10 t3_delay; +#X text 106 9 time-tagged trigger delay; +#X obj 95 355 t f f; +#X text 379 189 Samples; +#X msg 401 80 \; array99 resize 259 \; array99 bounds 0 0 258 1 \; +array99 xticks 0 64 2 \; array99 yticks 0 0.1 5 \; array99 xlabel -0.08 +0 64 128 192 256 \; array99 ylabel -9.1 0 0.5 1; +#X obj 243 429 loadbang; +#X text 299 331 (c) musil@iem.kug.ac.at; +#X text 341 344 IEM KUG; +#X text 316 356 graz \, austria 2001; +#X text 172 240 pre_delay; +#X text 238 350 duration; +#X connect 1 0 2 0; +#X connect 1 0 7 0; +#X connect 2 0 17 0; +#X connect 3 0 4 1; +#X connect 3 0 9 0; +#X connect 4 0 26 0; +#X connect 6 0 10 0; +#X connect 7 0 25 0; +#X connect 8 0 11 0; +#X connect 9 0 10 0; +#X connect 10 0 17 0; +#X connect 11 0 7 1; +#X connect 13 0 14 0; +#X connect 14 0 3 1; +#X connect 16 0 3 0; +#X connect 18 0 8 0; +#X connect 19 0 13 0; +#X connect 20 0 32 0; +#X connect 21 0 24 0; +#X connect 24 0 22 0; +#X connect 24 1 23 0; +#X connect 25 0 30 0; +#X connect 26 0 5 0; +#X connect 30 0 3 0; +#X connect 30 0 4 0; +#X connect 30 1 6 0; +#X connect 33 0 2 0; diff --git a/iemhelp/help-t3_line~.pd b/iemhelp/help-t3_line~.pd new file mode 100644 index 0000000..26a952a --- /dev/null +++ b/iemhelp/help-t3_line~.pd @@ -0,0 +1,93 @@ +#N canvas 124 45 501 580 10; +#N canvas 0 0 450 300 graph1 0; +#X array array99 259 float 0; +#X coords 0 1 258 0 256 140 1; +#X restore 97 36 graph; +#X obj 64 239 bng 25 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 243 478 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 64 401 t3_del 0.5; +#X obj 64 304 f 0.04; +#X floatatom 101 242 5 0 0 0 - - -; +#X obj 101 264 / 44.1; +#X text 144 244 Samples; +#X floatatom 129 354 5 0 0 0 - - -; +#X obj 129 376 / 44.1; +#X text 172 354 Samples; +#X msg 12 328 stop; +#X obj 243 521 tabwrite~ array99; +#X obj 101 220 init 80; +#X obj 129 332 init 30; +#X obj 243 448 loadbang; +#X obj 14 38 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1 1 +; +#X floatatom 14 105 5 0 0 0 - - -; +#X floatatom 30 83 3 0 0 0 - - -; +#X obj 14 60 dsp; +#X obj 64 327 t3_del 0; +#X text 12 10 t3_delay; +#X text 106 9 time-tagged trigger delay; +#X obj 102 487 t3_line~ 0.1; +#X obj 64 353 t f f; +#X obj 17 455 pack 0 0.1 0.2; +#X obj 122 456 pack 0 0.9 0.2; +#X floatatom 233 255 5 0 0 0 - - -; +#X obj 233 277 / 44.1; +#X text 276 255 Samples; +#X floatatom 351 257 5 0 0 0 - - -; +#X obj 351 279 / 44.1; +#X text 394 257 Samples; +#X text 407 238 attack; +#X text 286 237 release; +#X obj 351 235 init 12; +#X text 183 334 sustain + attack; +#X obj 233 233 init 25; +#X text 155 223 pre-delay; +#X obj 314 365 t b f; +#X obj 319 391 - 0; +#X floatatom 319 416 5 0 0 0 - - -; +#X text 365 419 Samples; +#X text 365 396 sustain; +#X msg 386 62 \; array99 resize 259 \; array99 bounds 0 0 258 1 \; +array99 xticks 0 64 2 \; array99 yticks 0 0.1 5 \; array99 xlabel -0.08 +0 64 128 192 256 \; array99 ylabel -9.1 0 0.5 1; +#X obj 386 39 loadbang; +#X text 364 178 Samples; +#X text 325 455 (c) musil@iem.kug.ac.at; +#X text 367 468 IEM KUG; +#X text 342 480 graz \, austria 2001; +#X connect 1 0 2 0; +#X connect 1 0 4 0; +#X connect 2 0 12 0; +#X connect 3 0 25 0; +#X connect 4 0 20 0; +#X connect 5 0 6 0; +#X connect 6 0 4 1; +#X connect 8 0 9 0; +#X connect 8 0 40 0; +#X connect 9 0 3 1; +#X connect 11 0 3 0; +#X connect 13 0 5 0; +#X connect 14 0 8 0; +#X connect 15 0 2 0; +#X connect 16 0 19 0; +#X connect 19 0 17 0; +#X connect 19 1 18 0; +#X connect 20 0 24 0; +#X connect 23 0 12 0; +#X connect 24 0 3 0; +#X connect 24 1 26 0; +#X connect 25 0 23 0; +#X connect 26 0 23 0; +#X connect 27 0 28 0; +#X connect 28 0 25 2; +#X connect 30 0 31 0; +#X connect 30 0 39 0; +#X connect 31 0 26 2; +#X connect 35 0 30 0; +#X connect 37 0 27 0; +#X connect 39 0 40 0; +#X connect 39 1 40 1; +#X connect 40 0 41 0; +#X connect 45 0 44 0; diff --git a/iemhelp/help-t3_metro.pd b/iemhelp/help-t3_metro.pd new file mode 100644 index 0000000..1b72bd5 --- /dev/null +++ b/iemhelp/help-t3_metro.pd @@ -0,0 +1,99 @@ +#N canvas 228 46 463 570 10; +#N canvas 0 0 450 300 graph1 0; +#X array array99 259 float 0; +#X coords 0 1 258 0 256 140 1; +#X restore 89 33 graph; +#X obj 91 427 t f b; +#X obj 91 475 pack 0 0; +#X obj 227 448 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#N canvas 161 0 158 259 toggle 0; +#X obj 38 25 inlet; +#X obj 38 178 outlet; +#X obj 38 53 f; +#X obj 38 79 == 0; +#X obj 38 130 * 0.8; +#X obj 38 152 + 0.1; +#X connect 0 0 2 0; +#X connect 2 0 3 0; +#X connect 3 0 2 1; +#X connect 3 0 4 0; +#X connect 4 0 5 0; +#X connect 5 0 1 0; +#X restore 121 452 pd toggle; +#X msg 91 331 start \$1; +#X msg 215 517 stop; +#X floatatom 128 234 5 0 0 0 - - -; +#X obj 128 258 / 44.1; +#X text 171 235 Samples; +#X floatatom 240 264 5 0 0 0 - - -; +#X obj 240 288 / 44.1; +#X text 283 264 Samples; +#X obj 91 283 f 0.04; +#X obj 91 234 bng 25 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 227 473 tabwrite~ array99; +#X obj 91 499 t3_sig~ 0.1; +#X obj 128 208 init 30; +#X obj 227 422 loadbang; +#X obj 11 33 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1 1 +; +#X floatatom 11 100 5 0 0 0 - - -; +#X floatatom 27 78 3 0 0 0 - - -; +#X obj 11 55 dsp; +#X obj 91 307 t3_del 0; +#X obj 240 241 init 10; +#X text 8 7 t3_metro; +#X text 108 7 time-tagged trigger variable metronom; +#X obj 91 392 t3_metro 1.46; +#X obj 204 321 +; +#X obj 204 345 change -1; +#X obj 204 368 clip 0.01 1e+006; +#X obj 360 377 t b f; +#X obj 360 310 random 32000; +#X obj 360 332 - 16000; +#X obj 360 354 / 100000; +#X obj 215 496 del 9000; +#X obj 384 40 loadbang; +#X msg 384 67 \; array99 resize 259 \; array99 bounds 0 0 258 1 \; +array99 xticks 0 64 2 \; array99 yticks 0 0.1 5 \; array99 xlabel -0.08 +0 64 128 192 256 \; array99 ylabel -9.1 0 0.5 1; +#X text 356 176 Samples; +#X text 294 410 (c) musil@iem.kug.ac.at; +#X text 336 423 IEM KUG; +#X text 311 435 graz \, austria 2001; +#X connect 1 0 2 0; +#X connect 1 1 4 0; +#X connect 1 1 32 0; +#X connect 2 0 16 0; +#X connect 3 0 15 0; +#X connect 3 0 35 0; +#X connect 4 0 2 1; +#X connect 5 0 27 0; +#X connect 6 0 27 0; +#X connect 7 0 8 0; +#X connect 8 0 13 1; +#X connect 10 0 11 0; +#X connect 11 0 28 0; +#X connect 13 0 23 0; +#X connect 14 0 13 0; +#X connect 14 0 3 0; +#X connect 16 0 15 0; +#X connect 17 0 7 0; +#X connect 18 0 3 0; +#X connect 19 0 22 0; +#X connect 22 0 20 0; +#X connect 22 1 21 0; +#X connect 23 0 5 0; +#X connect 24 0 10 0; +#X connect 27 0 1 0; +#X connect 28 0 29 0; +#X connect 29 0 30 0; +#X connect 30 0 27 1; +#X connect 31 0 28 0; +#X connect 31 1 28 1; +#X connect 32 0 33 0; +#X connect 33 0 34 0; +#X connect 34 0 31 0; +#X connect 35 0 6 0; +#X connect 36 0 37 0; diff --git a/iemhelp/help-t3_sig~.pd b/iemhelp/help-t3_sig~.pd new file mode 100644 index 0000000..16f7213 --- /dev/null +++ b/iemhelp/help-t3_sig~.pd @@ -0,0 +1,69 @@ +#N canvas 174 106 503 410 10; +#X floatatom 62 268 8 0 0; +#X obj 164 371 dac~; +#X obj 164 317 *~ 0.2; +#X obj 164 342 hp1~ 5; +#X floatatom 280 201 8 0 0; +#X obj 164 293 t3_sig~; +#X obj 215 226 t3_del 0.1; +#X msg 164 254 \$1 1; +#X obj 10 63 dsp; +#X floatatom 26 85 3 0 0; +#X floatatom 10 109 5 0 0; +#X obj 10 42 toggle 15 1 empty empty empty 20 8 0 10 0 22 22 1 1; +#X obj 164 182 t3_metro 5; +#X msg 140 115 start 0; +#X msg 176 139 stop; +#X obj 280 153 for++ 1 1000 5; +#X obj 280 177 / 200; +#X obj 280 7 loadbang; +#X obj 280 31 bng 15 250 50 0 empty empty empty 20 8 0 10 0 22 22; +#X msg 215 254 \$1 -1; +#X obj 280 54 metro 10010; +#X obj 376 72 del 5005; +#X obj 376 97 t b b; +#X obj 280 94 t b b; +#X msg 292 120 1 1000 5; +#X msg 406 121 1000 1 5; +#X obj 62 245 t3_timer; +#X text 5 6 t3_sig~; +#X text 76 4 time-tagged trigger sig~; +#X msg 397 23 stop; +#X text 240 297 (c) musil@iem.kug.ac.at; +#X text 282 310 IEM KUG; +#X text 257 322 graz \, austria 2001; +#X connect 2 0 3 0; +#X connect 3 0 1 0; +#X connect 3 0 1 1; +#X connect 4 0 6 1; +#X connect 5 0 2 0; +#X connect 6 0 19 0; +#X connect 6 0 26 1; +#X connect 7 0 5 0; +#X connect 8 0 10 0; +#X connect 8 1 9 0; +#X connect 11 0 8 0; +#X connect 12 0 7 0; +#X connect 12 0 6 0; +#X connect 12 0 26 0; +#X connect 13 0 12 0; +#X connect 14 0 12 0; +#X connect 15 0 16 0; +#X connect 16 0 4 0; +#X connect 17 0 18 0; +#X connect 18 0 20 0; +#X connect 18 0 13 0; +#X connect 19 0 5 0; +#X connect 20 0 21 0; +#X connect 20 0 23 0; +#X connect 21 0 22 0; +#X connect 22 0 15 0; +#X connect 22 1 25 0; +#X connect 23 0 15 0; +#X connect 23 1 24 0; +#X connect 24 0 15 0; +#X connect 25 0 15 0; +#X connect 26 0 0 0; +#X connect 29 0 20 0; +#X connect 29 0 15 0; +#X connect 29 0 21 0; diff --git a/iemhelp/help-t3_timer.pd b/iemhelp/help-t3_timer.pd new file mode 100644 index 0000000..4aea1cf --- /dev/null +++ b/iemhelp/help-t3_timer.pd @@ -0,0 +1,22 @@ +#N canvas 231 195 312 288 10; +#X obj 73 119 t3_del 11.11; +#X msg 22 79 0.55; +#X obj 22 48 bng 25 250 50 0 empty empty empty 8 -8 0 10 0 22 22; +#X obj 22 145 t3_timer; +#X floatatom 22 170 6 0 0; +#X text 15 214 (c) musil@iem.kug.ac.at; +#X text 57 227 IEM KUG; +#X text 32 239 graz \, austria 2001; +#X text 88 22 measure time-difference; +#X text 87 37 between 2 t3_bang-events; +#X text 6 4 t3_timer; +#X floatatom 152 93 6 0 0; +#X text 203 93 ms; +#X text 72 170 ms; +#X text 84 5 time-tagged trigger timer; +#X connect 0 0 3 1; +#X connect 1 0 0 0; +#X connect 1 0 3 0; +#X connect 2 0 1 0; +#X connect 3 0 4 0; +#X connect 11 0 0 1; diff --git a/iemhelp/help-toggle_mess.pd b/iemhelp/help-toggle_mess.pd new file mode 100644 index 0000000..fad2f56 --- /dev/null +++ b/iemhelp/help-toggle_mess.pd @@ -0,0 +1,69 @@ +#N canvas 339 48 606 572 10; +#X obj 222 135 print color; +#X obj 138 310 print sentence; +#X obj 113 499 print number; +#X obj 48 446 tm 4 8 99 2 -77; +#X obj 40 100 toggle_mess red 178 green 333 blue -999; +#X obj 174 135 pp set; +#X msg 174 157 green; +#X obj 128 333 pp set; +#X msg 128 355 print; +#X msg 40 197 print; +#X obj 98 521 pp set; +#X msg 98 543 4; +#X msg 48 403 4; +#X obj 93 398 init set 0; +#X obj 178 42 init set 2; +#X floatatom 308 129 4 0 0 0 - - -; +#X floatatom 217 281 4 0 0 0 - - -; +#X floatatom 148 471 4 0 0 0 - - -; +#X text 224 510 (c) musil@iem.kug.ac.at; +#X text 266 523 IEM KUG; +#X text 241 535 graz \, austria 2001; +#X text 8 7 toggle_mess :; +#X text 259 253 n arguments: <float> or <sym>; +#X text 279 329 left outlet: to message-inlet; +#X text 281 342 middle outlet: float or symbol as anything; +#X text 281 355 right outlet: float circle-index; +#X text 300 158 left inlet: from message-outlet; +#X text 300 172 set-message: initiate internal index; +#X text 301 187 bang: output without increment; +#X text 300 203 anything-message: output with; +#X text 386 217 incrementation of index; +#X msg 110 43 set 3; +#X obj 106 69 t b a; +#X obj 84 223 t b a; +#X obj 84 202 init set 1; +#X obj 93 420 t b a; +#X text 120 6 control a message-box with circular different content +; +#X msg 40 53 green; +#X obj 40 252 tm print this word by word; +#X connect 3 0 12 0; +#X connect 3 1 2 0; +#X connect 3 1 10 0; +#X connect 3 2 17 0; +#X connect 4 0 37 0; +#X connect 4 1 0 0; +#X connect 4 1 5 0; +#X connect 4 2 15 0; +#X connect 5 0 6 0; +#X connect 7 0 8 0; +#X connect 9 0 38 0; +#X connect 10 0 11 0; +#X connect 12 0 3 0; +#X connect 13 0 35 0; +#X connect 14 0 32 0; +#X connect 31 0 32 0; +#X connect 32 0 4 0; +#X connect 32 1 4 0; +#X connect 33 0 38 0; +#X connect 33 1 38 0; +#X connect 34 0 33 0; +#X connect 35 0 3 0; +#X connect 35 1 3 0; +#X connect 37 0 4 0; +#X connect 38 0 9 0; +#X connect 38 1 1 0; +#X connect 38 1 7 0; +#X connect 38 2 16 0; diff --git a/iemhelp/help-transf_fader.pd b/iemhelp/help-transf_fader.pd new file mode 100644 index 0000000..26dddf5 --- /dev/null +++ b/iemhelp/help-transf_fader.pd @@ -0,0 +1,30 @@ +#N canvas 69 66 629 391 10; +#X floatatom 69 56 9 0 0 0 - - -; +#X floatatom 69 214 9 0 0 0 - - -; +#X obj 69 152 transf_fader; +#X text 12 8 transf_fader; +#X text 123 9 transforms a slider range; +#X obj 493 118 vu 15 120 empty empty -1 -8 0 8 -66577 -1 1 0; +#X text 68 36 input from slider 0..147; +#X text 63 239 output to dbtorms; +#X obj 476 110 vsl 15 128 0 127 0 0 empty empty empty 0 -8 0 8 -262144 +-1 -1 12700 1; +#X obj 502 262 - 100; +#X msg 103 88 pairs 0 0 6 40 24 70 36 80 48 88 60 94 72 98 96 102 108 +106 111 107.5 114 109 117 112 147 142; +#X obj 444 271 dbtorms; +#X obj 570 310 v2db; +#X obj 561 120 vu 15 120 empty empty -1 -8 0 8 -66577 -1 1 0; +#X text 160 127 pairs of break-points: input / output; +#X text 20 285 (c) musil@iem.kug.ac.at; +#X text 57 298 IEM KUG; +#X text 32 310 graz \, austria 2003; +#X connect 0 0 2 0; +#X connect 1 0 9 0; +#X connect 1 0 11 0; +#X connect 2 0 1 0; +#X connect 8 0 0 0; +#X connect 9 0 5 1; +#X connect 10 0 2 0; +#X connect 11 0 12 0; +#X connect 12 0 13 1; diff --git a/iemhelp/help-unsig~.pd b/iemhelp/help-unsig~.pd new file mode 100644 index 0000000..32148fd --- /dev/null +++ b/iemhelp/help-unsig~.pd @@ -0,0 +1,27 @@ +#N canvas 487 158 390 304 10; +#X floatatom 22 215 9 0 0 0 - - -; +#X text 28 155 ~signal_in~; +#X text 24 243 (c) musil@iem.kug.ac.at; +#X text 66 256 IEM KUG; +#X text 41 44 dsp ON/OFF; +#X obj 22 65 dsp; +#X floatatom 22 86 5 0 0 0 - - -; +#X text 62 88 % cpu; +#X text 41 268 graz \, austria 2001; +#X obj 22 171 unsig~; +#X obj 22 125 osc~ 0.03; +#X obj 22 45 tgl 15 1 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X text 14 5 unsig~; +#X text 75 18 convert signal to float; +#X floatatom 110 214 9 0 0 0 - - -; +#X obj 110 153 unsig~ 1000; +#X text 177 191 (opt. 300 ms); +#X text 125 178 1.arg: <float> metro-time in ms; +#X text 78 5 counterpart to sig~; +#X connect 5 0 6 0; +#X connect 9 0 0 0; +#X connect 10 0 9 0; +#X connect 10 0 15 0; +#X connect 11 0 5 0; +#X connect 15 0 14 0; diff --git a/iemhelp/help-unsymbol.pd b/iemhelp/help-unsymbol.pd new file mode 100644 index 0000000..aa48660 --- /dev/null +++ b/iemhelp/help-unsymbol.pd @@ -0,0 +1,20 @@ +#N canvas 402 159 302 241 10; +#X obj 10 71 symbol; +#X msg 10 44 blabla; +#X obj 10 99 print a; +#X obj 88 71 symbol; +#X msg 88 44 foo3; +#X obj 88 125 print b; +#X obj 158 100 unsym; +#X obj 88 100 unsymbol; +#X text 72 17 to an anything selector; +#X text 2 4 unsymbol: converts a symbol; +#X text 225 100 no arg.; +#X text 10 161 (c) musil@iem.kug.ac.at; +#X text 52 174 IEM KUG; +#X text 27 186 graz \, austria 2001; +#X connect 0 0 2 0; +#X connect 1 0 0 0; +#X connect 3 0 7 0; +#X connect 4 0 3 0; +#X connect 7 0 5 0; diff --git a/iemhelp/help-v2db.pd b/iemhelp/help-v2db.pd new file mode 100644 index 0000000..aca5694 --- /dev/null +++ b/iemhelp/help-v2db.pd @@ -0,0 +1,14 @@ +#N canvas 158 78 279 220 10; +#X floatatom 23 99 9 0 0; +#X text 21 131 (c) musil@iem.kug.ac.at; +#X text 63 144 IEM KUG; +#X text 57 75 no arg; +#X floatatom 23 52 9 0 0; +#X text 24 12 v2db; +#X text 104 13 value to dB converter; +#X text 90 102 output_level [dB]; +#X text 90 52 input_value [-]; +#X obj 23 76 v2db; +#X text 38 156 graz \, austria 2001; +#X connect 4 0 9 0; +#X connect 9 0 0 0; diff --git a/iemhelp/help-vcf_bp2~.pd b/iemhelp/help-vcf_bp2~.pd new file mode 100644 index 0000000..018b71a --- /dev/null +++ b/iemhelp/help-vcf_bp2~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 469 471 10; +#X text 16 291 ~signal_in~; +#X text 30 417 (c) musil@iem.kug.ac.at; +#X text 73 431 IEM KUG; +#X text 32 34 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 74 5 0 0 0 - - -; +#X text 57 74 % cpu; +#X obj 15 54 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 34 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 30; +#X obj 146 260 pack 0 30; +#X text 139 18 frequency and Q; +#X text 47 442 graz \, austria 2003; +#X obj 12 12 cnv 8 1 1 empty empty vcf_bp2~ 1 2 1 18 -262144 -1109 +0; +#X obj 43 128 init 69; +#X obj 28 221 init 0.707; +#X text 136 5 bandpass 2.order with signal-inlets for; +#X obj 95 311 vcf_bp2~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 37 0 4 0; +#X connect 38 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-vcf_bp4~.pd b/iemhelp/help-vcf_bp4~.pd new file mode 100644 index 0000000..b94e1af --- /dev/null +++ b/iemhelp/help-vcf_bp4~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 471 473 10; +#X text 16 291 ~signal_in~; +#X text 30 417 (c) musil@iem.kug.ac.at; +#X text 73 431 IEM KUG; +#X text 32 34 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 74 5 0 0 0 - - -; +#X text 57 74 % cpu; +#X obj 15 54 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 34 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 95 311 vcf_bp4~; +#X obj 104 213 pack 0 30; +#X obj 146 260 pack 0 30; +#X text 136 5 bandpass 4.order with signal-inlets for; +#X text 139 18 frequency and Q; +#X text 47 442 graz \, austria 2003; +#X obj 12 12 cnv 8 1 1 empty empty vcf_bp4~ 1 2 1 18 -262144 -1109 +0; +#X obj 43 128 init 69; +#X obj 28 221 init 0.707; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 34 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 32 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 32 1; +#X connect 31 0 32 2; +#X connect 32 0 21 0; +#X connect 33 0 30 0; +#X connect 34 0 31 0; +#X connect 39 0 4 0; +#X connect 40 0 17 0; diff --git a/iemhelp/help-vcf_bp6~.pd b/iemhelp/help-vcf_bp6~.pd new file mode 100644 index 0000000..989f6c6 --- /dev/null +++ b/iemhelp/help-vcf_bp6~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 475 477 10; +#X text 16 291 ~signal_in~; +#X text 30 417 (c) musil@iem.kug.ac.at; +#X text 73 431 IEM KUG; +#X text 32 34 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 168 140 9 0 22000 0 - - -; +#X text 243 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 74 5 0 0 0 - - -; +#X text 57 74 % cpu; +#X obj 15 54 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 34 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 30; +#X obj 146 260 pack 0 30; +#X text 139 18 frequency and Q; +#X text 47 442 graz \, austria 2003; +#X obj 12 12 cnv 8 1 1 empty empty vcf_bp6~ 1 2 1 18 -262144 -1109 +0; +#X obj 43 128 init 69; +#X obj 28 221 init 0.707; +#X text 136 5 bandpass 6.order with signal-inlets for; +#X obj 95 311 vcf_bp6~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 37 0 4 0; +#X connect 38 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-vcf_bp8~.pd b/iemhelp/help-vcf_bp8~.pd new file mode 100644 index 0000000..8df6b78 --- /dev/null +++ b/iemhelp/help-vcf_bp8~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 473 475 10; +#X text 16 291 ~signal_in~; +#X text 30 417 (c) musil@iem.kug.ac.at; +#X text 73 431 IEM KUG; +#X text 32 34 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 74 5 0 0 0 - - -; +#X text 57 74 % cpu; +#X obj 15 54 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 34 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 30; +#X obj 146 260 pack 0 30; +#X text 139 18 frequency and Q; +#X text 47 442 graz \, austria 2003; +#X obj 12 12 cnv 8 1 1 empty empty vcf_bp8~ 1 2 1 18 -262144 -1109 +0; +#X obj 43 128 init 69; +#X obj 28 221 init 0.707; +#X text 136 5 bandpass 8.order with signal-inlets for; +#X obj 95 311 vcf_bp8~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 37 0 4 0; +#X connect 38 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-vcf_hp2~.pd b/iemhelp/help-vcf_hp2~.pd new file mode 100644 index 0000000..b05bae9 --- /dev/null +++ b/iemhelp/help-vcf_hp2~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 454 496 10; +#X text 16 291 ~signal_in~; +#X text 22 417 (c) musil@iem.kug.ac.at; +#X text 65 431 IEM KUG; +#X text 33 33 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 168 140 9 0 22000 0 - - -; +#X text 243 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 16 73 5 0 0 0 - - -; +#X text 58 73 % cpu; +#X obj 16 53 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 16 33 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 10; +#X obj 146 260 pack 0 10; +#X text 157 16 frequency and Q; +#X text 39 442 graz \, austria 2003; +#X obj 47 128 init 69; +#X obj 27 221 init 0.707; +#X text 154 3 highpass 2.order with signal-inlets for; +#X obj 95 311 vcf_hp2~; +#X obj 12 12 cnv 8 1 1 empty empty vcf_hp2~ 1 2 1 18 -262144 -1109 +0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 39 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 39 1; +#X connect 31 0 39 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 36 0 4 0; +#X connect 37 0 17 0; +#X connect 39 0 21 0; diff --git a/iemhelp/help-vcf_hp4~.pd b/iemhelp/help-vcf_hp4~.pd new file mode 100644 index 0000000..5598ba1 --- /dev/null +++ b/iemhelp/help-vcf_hp4~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 441 483 10; +#X text 16 291 ~signal_in~; +#X text 16 418 (c) musil@iem.kug.ac.at; +#X text 59 432 IEM KUG; +#X text 32 33 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 73 5 0 0 0 - - -; +#X text 57 73 % cpu; +#X obj 15 53 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 33 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 10; +#X obj 146 260 pack 0 10; +#X text 165 14 frequency and Q; +#X text 33 443 graz \, austria 2003; +#X obj 41 128 init 69; +#X obj 25 221 init 0.707; +#X text 133 1 highass 4.order with signal-inlets for; +#X obj 95 311 vcf_hp4~; +#X obj 12 12 cnv 8 1 1 empty empty vcf_hp4~ 1 2 1 18 -262144 -1109 +0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 39 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 39 1; +#X connect 31 0 39 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 36 0 4 0; +#X connect 37 0 17 0; +#X connect 39 0 21 0; diff --git a/iemhelp/help-vcf_hp6~.pd b/iemhelp/help-vcf_hp6~.pd new file mode 100644 index 0000000..7543602 --- /dev/null +++ b/iemhelp/help-vcf_hp6~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 443 485 10; +#X text 16 291 ~signal_in~; +#X text 16 418 (c) musil@iem.kug.ac.at; +#X text 59 432 IEM KUG; +#X text 32 33 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 73 5 0 0 0 - - -; +#X text 57 73 % cpu; +#X obj 15 53 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 33 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 10; +#X obj 146 260 pack 0 10; +#X text 165 14 frequency and Q; +#X text 33 443 graz \, austria 2003; +#X obj 41 128 init 69; +#X obj 25 221 init 0.707; +#X obj 12 12 cnv 8 1 1 empty empty vcf_hp6~ 1 2 1 18 -262144 -1109 +0; +#X text 133 1 highass 6.order with signal-inlets for; +#X obj 95 311 vcf_hp6~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 36 0 4 0; +#X connect 37 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-vcf_hp8~.pd b/iemhelp/help-vcf_hp8~.pd new file mode 100644 index 0000000..df12bf9 --- /dev/null +++ b/iemhelp/help-vcf_hp8~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 443 485 10; +#X text 16 291 ~signal_in~; +#X text 16 418 (c) musil@iem.kug.ac.at; +#X text 59 432 IEM KUG; +#X text 32 33 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 73 5 0 0 0 - - -; +#X text 57 73 % cpu; +#X obj 15 53 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 33 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 10; +#X obj 146 260 pack 0 10; +#X text 165 14 frequency and Q; +#X text 33 443 graz \, austria 2003; +#X obj 41 128 init 69; +#X obj 25 221 init 0.707; +#X obj 12 12 cnv 8 1 1 empty empty vcf_hp8~ 1 2 1 18 -262144 -1109 +0; +#X text 133 1 highass 8.order with signal-inlets for; +#X obj 95 311 vcf_hp8~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 36 0 4 0; +#X connect 37 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-vcf_lp2~.pd b/iemhelp/help-vcf_lp2~.pd new file mode 100644 index 0000000..3e22be1 --- /dev/null +++ b/iemhelp/help-vcf_lp2~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 450 492 10; +#X text 16 291 ~signal_in~; +#X text 22 417 (c) musil@iem.kug.ac.at; +#X text 65 431 IEM KUG; +#X text 33 33 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 168 140 9 0 22000 0 - - -; +#X text 243 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 16 73 5 0 0 0 - - -; +#X text 58 73 % cpu; +#X obj 16 53 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 16 33 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 95 311 vcf_lp2~; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 10; +#X obj 146 260 pack 0 10; +#X text 189 17 frequency and Q; +#X text 153 3 lowpass 2.order with signal-inlets for; +#X text 39 442 graz \, austria 2003; +#X obj 47 128 init 69; +#X obj 27 221 init 0.707; +#X obj 12 12 cnv 8 1 1 empty empty vcf_lp2~ 1 2 1 18 -262144 -1109 +0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 33 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 34 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 30 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 21 0; +#X connect 31 0 30 1; +#X connect 32 0 30 2; +#X connect 33 0 31 0; +#X connect 34 0 32 0; +#X connect 38 0 4 0; +#X connect 39 0 17 0; diff --git a/iemhelp/help-vcf_lp4~.pd b/iemhelp/help-vcf_lp4~.pd new file mode 100644 index 0000000..f0d775a --- /dev/null +++ b/iemhelp/help-vcf_lp4~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 439 478 10; +#X text 16 291 ~signal_in~; +#X text 24 420 (c) musil@iem.kug.ac.at; +#X text 67 434 IEM KUG; +#X text 32 33 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 73 5 0 0 0 - - -; +#X text 57 73 % cpu; +#X obj 15 53 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 33 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 10; +#X obj 146 260 pack 0 10; +#X obj 95 311 vcf_lp4~; +#X text 156 14 frequency and Q; +#X text 133 1 lowpass 4.order with signal-inlets for; +#X text 41 445 graz \, austria 2003; +#X obj 41 128 init 69; +#X obj 25 221 init 0.707; +#X obj 12 12 cnv 8 1 1 empty empty vcf_lp4~ 1 2 1 18 -262144 -1109 +0; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 34 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 34 1; +#X connect 31 0 34 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 34 0 21 0; +#X connect 38 0 4 0; +#X connect 39 0 17 0; diff --git a/iemhelp/help-vcf_lp6~.pd b/iemhelp/help-vcf_lp6~.pd new file mode 100644 index 0000000..7760dc8 --- /dev/null +++ b/iemhelp/help-vcf_lp6~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 441 480 10; +#X text 16 291 ~signal_in~; +#X text 24 420 (c) musil@iem.kug.ac.at; +#X text 67 434 IEM KUG; +#X text 32 33 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 73 5 0 0 0 - - -; +#X text 57 73 % cpu; +#X obj 15 53 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 33 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 10; +#X obj 146 260 pack 0 10; +#X text 156 14 frequency and Q; +#X text 41 445 graz \, austria 2003; +#X obj 41 128 init 69; +#X obj 25 221 init 0.707; +#X obj 12 12 cnv 8 1 1 empty empty vcf_lp6~ 1 2 1 18 -262144 -1109 +0; +#X text 133 1 lowpass 6.order with signal-inlets for; +#X obj 95 311 vcf_lp6~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 36 0 4 0; +#X connect 37 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-vcf_lp8~.pd b/iemhelp/help-vcf_lp8~.pd new file mode 100644 index 0000000..fbd434a --- /dev/null +++ b/iemhelp/help-vcf_lp8~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 441 480 10; +#X text 16 291 ~signal_in~; +#X text 24 420 (c) musil@iem.kug.ac.at; +#X text 67 434 IEM KUG; +#X text 32 33 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 73 5 0 0 0 - - -; +#X text 57 73 % cpu; +#X obj 15 53 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 33 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 10; +#X obj 146 260 pack 0 10; +#X text 156 14 frequency and Q; +#X text 41 445 graz \, austria 2003; +#X obj 41 128 init 69; +#X obj 25 221 init 0.707; +#X obj 12 12 cnv 8 1 1 empty empty vcf_lp8~ 1 2 1 18 -262144 -1109 +0; +#X text 133 1 lowpass 8.order with signal-inlets for; +#X obj 95 311 vcf_lp8~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 36 0 4 0; +#X connect 37 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-vcf_rbp2~.pd b/iemhelp/help-vcf_rbp2~.pd new file mode 100644 index 0000000..81a40c4 --- /dev/null +++ b/iemhelp/help-vcf_rbp2~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 469 471 10; +#X text 16 291 ~signal_in~; +#X text 30 417 (c) musil@iem.kug.ac.at; +#X text 73 431 IEM KUG; +#X text 32 34 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 74 5 0 0 0 - - -; +#X text 57 74 % cpu; +#X obj 15 54 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 34 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 30; +#X obj 146 260 pack 0 30; +#X text 139 18 frequency and Q; +#X text 47 442 graz \, austria 2003; +#X obj 12 12 cnv 8 1 1 empty empty vcf_rbp2~ 1 2 1 18 -262144 -1109 +0; +#X obj 43 128 init 69; +#X obj 28 221 init 0.707; +#X text 136 5 resonance-bandpass 2.order with signal-inlets for; +#X obj 95 311 vcf_rbp2~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 37 0 4 0; +#X connect 38 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-vcf_rbp4~.pd b/iemhelp/help-vcf_rbp4~.pd new file mode 100644 index 0000000..81cc33e --- /dev/null +++ b/iemhelp/help-vcf_rbp4~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 473 475 10; +#X text 16 291 ~signal_in~; +#X text 30 417 (c) musil@iem.kug.ac.at; +#X text 73 431 IEM KUG; +#X text 32 34 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 74 5 0 0 0 - - -; +#X text 57 74 % cpu; +#X obj 15 54 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 34 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 30; +#X obj 146 260 pack 0 30; +#X text 139 18 frequency and Q; +#X text 47 442 graz \, austria 2003; +#X obj 12 12 cnv 8 1 1 empty empty vcf_rbp4~ 1 2 1 18 -262144 -1109 +0; +#X obj 43 128 init 69; +#X obj 28 221 init 0.707; +#X text 136 5 resonance-bandpass 4.order with signal-inlets for; +#X obj 95 311 vcf_rbp4~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 37 0 4 0; +#X connect 38 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-vcf_rbp6~.pd b/iemhelp/help-vcf_rbp6~.pd new file mode 100644 index 0000000..b9818f5 --- /dev/null +++ b/iemhelp/help-vcf_rbp6~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 475 477 10; +#X text 16 291 ~signal_in~; +#X text 30 417 (c) musil@iem.kug.ac.at; +#X text 73 431 IEM KUG; +#X text 32 34 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 74 5 0 0 0 - - -; +#X text 57 74 % cpu; +#X obj 15 54 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 34 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 30; +#X obj 146 260 pack 0 30; +#X text 139 18 frequency and Q; +#X text 47 442 graz \, austria 2003; +#X obj 12 12 cnv 8 1 1 empty empty vcf_rbp6~ 1 2 1 18 -262144 -1109 +0; +#X obj 43 128 init 69; +#X obj 28 221 init 0.707; +#X text 136 5 resonance-bandpass 6.order with signal-inlets for; +#X obj 95 311 vcf_rbp6~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 37 0 4 0; +#X connect 38 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-vcf_rbp8~.pd b/iemhelp/help-vcf_rbp8~.pd new file mode 100644 index 0000000..751f538 --- /dev/null +++ b/iemhelp/help-vcf_rbp8~.pd @@ -0,0 +1,68 @@ +#N canvas 213 130 475 477 10; +#X text 16 291 ~signal_in~; +#X text 30 417 (c) musil@iem.kug.ac.at; +#X text 73 431 IEM KUG; +#X text 32 34 dsp ON/OFF; +#X floatatom 104 145 3 15 133 0 - - -; +#X obj 104 168 mtof; +#X floatatom 104 191 9 0 22000 0 - - -; +#X text 174 190 Hz; +#X text 101 336 ~signal_out~; +#X floatatom 232 325 7 0 0 0 - - -; +#X text 289 327 dB; +#X floatatom 181 140 9 0 22000 0 - - -; +#X text 256 139 Hz; +#X floatatom 95 96 3 15 133 0 - - -; +#X floatatom 15 74 5 0 0 0 - - -; +#X text 57 74 % cpu; +#X obj 15 54 dsp; +#X floatatom 146 238 7 0.01 1000 0 - - -; +#X text 205 239 Q; +#X obj 15 34 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 95 382 dac~; +#X obj 95 357 gainvu~ 300; +#X obj 277 203 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; +#X obj 333 226 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 +-1 -1 10000 1; +#X obj 95 118 testtone~ 200; +#X obj 162 79 init 69; +#X text 122 97 midi; +#X floatatom 326 374 7 0 0 0 - - -; +#X text 382 375 dB; +#X text 159 308 no arg.; +#X obj 104 282 line~; +#X obj 146 282 line~; +#X obj 104 213 pack 0 30; +#X obj 146 260 pack 0 30; +#X text 139 18 frequency and Q; +#X text 47 442 graz \, austria 2003; +#X obj 12 12 cnv 8 1 1 empty empty vcf_rbp8~ 1 2 1 18 -262144 -1109 +0; +#X obj 43 128 init 69; +#X obj 28 221 init 0.707; +#X text 136 5 resonance-bandpass 8.order with signal-inlets for; +#X obj 95 311 vcf_rbp8~; +#X connect 4 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 32 0; +#X connect 13 0 24 0; +#X connect 16 0 14 0; +#X connect 17 0 33 0; +#X connect 19 0 16 0; +#X connect 21 0 20 0; +#X connect 21 0 20 1; +#X connect 21 1 27 0; +#X connect 21 2 22 0; +#X connect 22 1 9 0; +#X connect 23 0 21 1; +#X connect 24 0 40 0; +#X connect 24 1 11 0; +#X connect 25 0 13 0; +#X connect 30 0 40 1; +#X connect 31 0 40 2; +#X connect 32 0 30 0; +#X connect 33 0 31 0; +#X connect 37 0 4 0; +#X connect 38 0 17 0; +#X connect 40 0 21 0; diff --git a/iemhelp/help-wrap.pd b/iemhelp/help-wrap.pd new file mode 100644 index 0000000..5a4d89e --- /dev/null +++ b/iemhelp/help-wrap.pd @@ -0,0 +1,16 @@ +#N canvas 69 66 334 324 10; +#X floatatom 40 70 9 0 0 0 - - -; +#X floatatom 40 156 9 0 0 0 - - -; +#X text 17 221 (c) musil@iem.kug.ac.at; +#X text 54 234 IEM KUG; +#X text 29 246 graz \, austria 2003; +#X obj 40 92 / 100; +#X floatatom 40 115 9 0 0 0 - - -; +#X text 76 10 wraparound between 0 and +1; +#X text 78 132 no arg.; +#X obj 40 133 wrap; +#X text 11 9 wrap; +#X connect 0 0 5 0; +#X connect 5 0 6 0; +#X connect 6 0 9 0; +#X connect 9 0 1 0; diff --git a/iemhelp/hslider.pd b/iemhelp/hslider.pd new file mode 100644 index 0000000..24abfe1 --- /dev/null +++ b/iemhelp/hslider.pd @@ -0,0 +1,303 @@ +#N canvas 239 208 390 413 10; +#X obj 1 1 cnv 8 100 60 empty empty hslider=hsl 20 20 1 18 -262144 +-1109 0; +#X floatatom 38 127 9 0 0; +#X msg 47 84 set \$1; +#X floatatom 38 41 7 0 0; +#X text 13 355 (c) musil@iem.kug.ac.at; +#X text 55 368 IEM KUG; +#X text 30 380 graz \, austria 2001; +#X obj 38 149 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 18 41 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 41 107 hsl 101 15 25 75 0 1 foo1_snd foo1_rcv empty 8 -8 192 +10 -225280 -1109 -1 2000 1; +#X text 174 11 gui-horicontal-slider:; +#X floatatom 47 62 7 0 0; +#X floatatom 116 150 9 0 0; +#X obj 110 308 r goo2_snd; +#X obj 145 248 s goo2_rcv; +#X floatatom 105 40 7 0 0; +#X floatatom 145 206 7 0 0; +#X obj 60 170 print; +#N canvas 276 200 290 224 once 0; +#X obj 38 47 t b b f; +#X msg 56 85 1; +#X obj 31 108 f 0; +#X obj 31 131 pack 0 0; +#X obj 31 156 route 0; +#X obj 38 24 inlet; +#X obj 31 180 outlet; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 1; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 0 0 0; +#X restore 60 147 pd once; +#X obj 40 265 hsl 73 15 55 3520 1 1 goo2_snd goo2_rcv log.freq. 8 -8 +192 10 -42246 -260818 -90133 4800 1; +#X obj 37 308 ftom; +#X floatatom 37 330 9 0 0; +#X floatatom 64 287 9 0 0; +#X floatatom 110 329 9 0 0; +#X text 175 176 click properties to; +#X floatatom 37 203 8 0 0; +#X obj 37 226 mtof; +#X text 12 184 --------------------; +#X text 163 187 modify geometry \, colors \, etc.; +#X obj 105 82 s foo1_rcv; +#X obj 116 130 r foo1_snd; +#X msg 105 61 set \$1; +#X msg 145 227 set \$1; +#X text 197 120 (0.01 pixels); +#X text 183 99 shift-click & drag; +#X text 189 109 for fine-tuning; +#X text 148 270 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 147 281 for moving selected gui-objects; +#N canvas 207 113 716 530 edit 0; +#X obj 32 220 f; +#X msg 10 199 bang; +#X floatatom 48 198 3 63 88; +#X floatatom 83 220 3 0 37; +#X obj 32 243 pack 0 0; +#X text 110 220 y-label; +#X text 76 198 x-label; +#X obj 279 246 f; +#X msg 257 225 bang; +#X floatatom 295 224 3 -10 10; +#X floatatom 330 246 3 -10 10; +#X obj 279 269 pack 0 0; +#X obj 292 358 f; +#X msg 270 337 bang; +#X floatatom 308 336 3 20 60; +#X floatatom 343 358 3 150 200; +#X obj 292 381 pack 0 0; +#X text 323 224 x-delta; +#X text 357 246 y-delta; +#X text 336 336 x-position; +#X text 370 358 y-position; +#X obj 52 335 f; +#X msg 30 314 bang; +#X floatatom 68 313 3 0 2; +#X floatatom 103 335 3 4 36; +#X obj 52 358 pack 0 0; +#X text 96 313 font; +#X text 132 335 height; +#X floatatom 476 188 1 0 1; +#X text 523 401 no init; +#X text 493 453 init value on loadbang; +#X msg 47 154 \; goo2_rcv color \$1 \$2 \$3; +#X msg 32 268 \; goo2_rcv label_pos \$1 \$2; +#X msg 52 383 \; goo2_rcv label_font \$1 \$2; +#X msg 34 427 \; goo2_rcv label blabla; +#X msg 292 406 \; goo2_rcv pos \$1 \$2; +#X msg 279 294 \; goo2_rcv delta \$1 \$2; +#X msg 475 21 \; goo2_rcv send goo2a_snd; +#X msg 475 59 \; goo2_rcv send goo2_snd; +#X msg 476 105 \; goo2_rcv receive goo2a_rcv; +#X msg 476 143 \; goo2a_rcv receive goo2_rcv; +#X msg 502 420 \; goo2_rcv init 0; +#X msg 503 471 \; goo2_rcv init 1; +#X text 520 188 steady; +#X obj 486 291 f; +#X msg 464 270 bang; +#X floatatom 502 269 3 55 440; +#X floatatom 537 291 6 440 3520; +#X obj 486 314 pack 0 0; +#X text 530 269 left-range-bound; +#X text 586 291 right-range-bound; +#X msg 486 339 \; goo2_rcv range \$1 \$2; +#X msg 363 465 \; goo2_rcv log; +#X msg 269 466 \; goo2_rcv lin; +#X text 269 448 linear / logarithmical; +#X obj 275 133 f; +#X msg 250 112 bang; +#X floatatom 291 111 3 15 73; +#X floatatom 326 133 3 8 50; +#X obj 275 156 pack 0 0; +#X text 319 111 width; +#X text 357 134 height; +#X msg 275 181 \; goo2_rcv size \$1 \$2; +#X msg 34 463 \; goo2_rcv label log.freq.; +#X msg 476 212 \; goo2_rcv steady \$1; +#X obj 47 100 pack 0 0 0; +#X obj 47 72 f; +#X msg 24 24 bang; +#X floatatom 63 22 3 0 29; +#X floatatom 79 42 3 0 29; +#X floatatom 112 58 3 0 29; +#X text 91 22 background; +#X text 106 42 front-color; +#X text 140 59 label-color; +#X msg 277 22 back; +#X msg 277 42 front; +#X msg 277 62 label; +#X msg 239 22 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 277 82 pd RGB_____________; +#X floatatom 319 52 3 0 255; +#X floatatom 362 52 3 0 255; +#X floatatom 405 53 3 0 255; +#X text 34 -1 preset-colors; +#X text 290 1 RGB-colors; +#X text 319 34 red; +#X text 355 33 green; +#X text 403 33 blue; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 32 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 10 0 11 1; +#X connect 11 0 36 0; +#X connect 12 0 16 0; +#X connect 13 0 12 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 35 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 33 0; +#X connect 28 0 64 0; +#X connect 44 0 48 0; +#X connect 45 0 44 0; +#X connect 46 0 44 1; +#X connect 47 0 48 1; +#X connect 48 0 51 0; +#X connect 55 0 59 0; +#X connect 56 0 55 0; +#X connect 57 0 55 1; +#X connect 58 0 59 1; +#X connect 59 0 62 0; +#X connect 65 0 31 0; +#X connect 66 0 65 0; +#X connect 67 0 66 0; +#X connect 68 0 66 1; +#X connect 69 0 65 1; +#X connect 70 0 65 2; +#X connect 74 0 78 0; +#X connect 75 0 78 0; +#X connect 76 0 78 0; +#X connect 77 0 78 0; +#X connect 78 0 65 0; +#X connect 78 1 65 1; +#X connect 78 2 65 2; +#X connect 79 0 78 1; +#X connect 80 0 78 2; +#X connect 81 0 78 3; +#X restore 314 245 pd edit; +#X text 187 379 updated for Pd version 0.34; +#X obj 167 34 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 221 61 hsl 128 15 0 127 0 0 ddd ddd empty 20 8 192 8 -262144 +-1 -1 200 1; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 9 0; +#X connect 8 0 9 0; +#X connect 9 0 1 0; +#X connect 9 0 18 0; +#X connect 11 0 2 0; +#X connect 13 0 23 0; +#X connect 15 0 31 0; +#X connect 16 0 32 0; +#X connect 18 0 17 0; +#X connect 19 0 22 0; +#X connect 19 0 20 0; +#X connect 20 0 21 0; +#X connect 25 0 26 0; +#X connect 26 0 19 0; +#X connect 30 0 12 0; +#X connect 31 0 29 0; +#X connect 32 0 14 0; diff --git a/iemhelp/lp1.wav b/iemhelp/lp1.wav Binary files differnew file mode 100644 index 0000000..4c4c97d --- /dev/null +++ b/iemhelp/lp1.wav diff --git a/iemhelp/lp2.wav b/iemhelp/lp2.wav Binary files differnew file mode 100644 index 0000000..1e3fe72 --- /dev/null +++ b/iemhelp/lp2.wav diff --git a/iemhelp/lp3.wav b/iemhelp/lp3.wav Binary files differnew file mode 100644 index 0000000..defc6b1 --- /dev/null +++ b/iemhelp/lp3.wav diff --git a/iemhelp/my_canvas.pd b/iemhelp/my_canvas.pd new file mode 100644 index 0000000..06538ff --- /dev/null +++ b/iemhelp/my_canvas.pd @@ -0,0 +1,243 @@ +#N canvas 478 61 459 285 10; +#X obj 1 1 cnv 15 300 60 foo10_snd foo10_rcv my_canvas=cnv 50 20 192 +17 -225280 -11904 0; +#X text 4 232 (c) musil@iem.kug.ac.at; +#X text 46 245 IEM KUG; +#X text 21 257 graz \, austria 2001; +#N canvas 215 80 699 530 edit 0; +#X obj 39 226 f; +#X msg 17 205 bang; +#X floatatom 55 204 3 63 88; +#X floatatom 90 226 3 0 37; +#X obj 39 249 pack 0 0; +#X text 117 226 y-label; +#X text 83 204 x-label; +#X obj 297 281 f; +#X msg 275 260 bang; +#X floatatom 313 259 3 -10 10; +#X floatatom 348 281 3 -10 10; +#X obj 297 304 pack 0 0; +#X obj 309 396 f; +#X msg 287 375 bang; +#X floatatom 325 374 3 20 60; +#X floatatom 360 396 3 150 200; +#X obj 309 419 pack 0 0; +#X text 341 259 x-delta; +#X text 375 281 y-delta; +#X text 353 374 x-position; +#X text 387 396 y-position; +#X obj 59 341 f; +#X msg 37 320 bang; +#X floatatom 75 319 3 0 2; +#X floatatom 110 341 3 4 36; +#X obj 59 364 pack 0 0; +#X text 103 319 font; +#X text 139 341 height; +#X floatatom 275 183 3 2 20; +#X msg 52 137 \; foo10_rcv color \$1 \$2; +#X msg 39 274 \; foo10_rcv label_pos \$1 \$2; +#X msg 59 390 \; foo10_rcv label_font \$1 \$2; +#X msg 36 430 \; foo10_rcv label blabla; +#X msg 36 466 \; foo10_rcv label my_canvas; +#X msg 309 444 \; foo10_rcv pos \$1 \$2; +#X msg 297 329 \; foo10_rcv delta \$1 \$2; +#X obj 505 234 f; +#X msg 483 213 bang; +#X floatatom 521 212 5 100 1000; +#X floatatom 556 234 4 50 500; +#X obj 505 257 pack 0 0; +#X text 566 212 width; +#X text 594 236 height; +#X msg 505 282 \; foo10_rcv vis_size \$1 \$2; +#X msg 275 211 \; foo10_rcv size \$1; +#X text 305 183 selectable size; +#X msg 483 156 \; foo10a_rcv receive foo10_rcv; +#X msg 483 119 \; foo10_rcv receive foo10a_rcv; +#X msg 482 29 \; foo10_rcv send foo10a_snd; +#X msg 482 67 \; foo10_rcv send foo10_snd; +#X msg 509 372 \; foo10_rcv get_pos; +#X obj 510 407 r foo10_snd; +#X obj 510 428 unpack 0 0; +#X floatatom 510 453 4 0 0; +#X floatatom 575 452 4 0 0; +#X text 490 452 x=; +#X text 557 452 y=; +#X obj 52 79 f; +#X msg 29 31 bang; +#X floatatom 68 29 3 0 29; +#X floatatom 103 47 3 0 29; +#X text 96 29 background; +#X text 131 48 label-color; +#X msg 290 25 back; +#X msg 290 49 label; +#X msg 252 25 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 28 180 loadbang; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 97 135 route back label bang; +#X obj 235 168 t b b b; +#X connect 0 0 29 0; +#X connect 1 0 25 0; +#X connect 2 0 26 0; +#X connect 3 0 27 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 11 1; +#X connect 6 0 10 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 10 1; +#X connect 9 0 11 1; +#X connect 10 0 24 1; +#X connect 11 0 23 1; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 19 1 20 1; +#X connect 20 0 28 0; +#X connect 22 0 6 0; +#X connect 23 0 21 0; +#X connect 24 0 12 0; +#X connect 25 0 20 0; +#X connect 26 0 18 0; +#X connect 27 0 17 0; +#X connect 28 0 11 0; +#X connect 28 0 10 0; +#X connect 29 0 4 0; +#X connect 29 1 7 0; +#X connect 29 2 30 0; +#X connect 30 0 24 0; +#X connect 30 1 23 0; +#X connect 30 2 28 0; +#X restore 290 86 pd RGB_____________; +#X floatatom 332 55 3 0 255; +#X floatatom 375 55 3 0 255; +#X floatatom 418 56 3 0 255; +#X text 39 3 preset-colors; +#X text 301 0 RGB-colors; +#X text 332 37 red; +#X text 368 36 green; +#X text 416 36 blue; +#X obj 52 104 pack 0 0; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 30 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 10 0 11 1; +#X connect 11 0 35 0; +#X connect 12 0 16 0; +#X connect 13 0 12 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 34 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 31 0; +#X connect 28 0 44 0; +#X connect 36 0 40 0; +#X connect 37 0 36 0; +#X connect 38 0 36 1; +#X connect 39 0 40 1; +#X connect 40 0 43 0; +#X connect 51 0 52 0; +#X connect 52 0 53 0; +#X connect 52 1 54 0; +#X connect 57 0 75 0; +#X connect 58 0 57 0; +#X connect 59 0 57 1; +#X connect 60 0 75 1; +#X connect 63 0 66 0; +#X connect 64 0 66 0; +#X connect 65 0 66 0; +#X connect 66 0 75 0; +#X connect 66 1 75 1; +#X connect 67 0 66 1; +#X connect 68 0 66 2; +#X connect 69 0 66 3; +#X connect 75 0 29 0; +#X restore 305 20 pd edit; +#X floatatom 110 193 4 0 0; +#X floatatom 147 193 4 0 0; +#X text 121 209 x; +#X text 158 209 y; +#X obj 7 161 metro 100; +#X obj 33 141 tgl 15 1 empty empty empty 20 8 0 10 -262144 -1 -1 1 +1; +#X obj 110 145 r from_K1; +#X floatatom 188 194 4 0 0; +#X floatatom 225 194 4 0 0; +#X text 198 210 x; +#X text 236 210 y; +#X obj 188 146 r from_K2; +#X msg 7 185 \; to_K get_pos; +#N canvas 506 290 395 395 room 1; +#X obj 1 1 cnv 1 400 400 empty empty type...ctrl+e 150 140 2 17 -33289 +-24198 0; +#X obj 15 16 cnv 1 1 360 empty empty move_K1_and_K2 115 160 2 17 -166441 +-24198 0; +#X obj 374 15 cnv 1 1 360 empty empty empty 20 12 2 20 -99865 -66577 +0; +#X obj 15 15 cnv 1 360 1 empty empty empty 20 12 2 20 -166441 -66577 +0; +#X obj 17 375 cnv 1 358 1 empty empty empty 20 12 2 20 -99865 -66577 +0; +#X obj 24 24 cnv 25 25 25 from_K1 to_K K1 1 13 194 14 -261681 -123526 +0; +#X obj 342 342 cnv 25 25 25 from_K2 to_K K2 1 13 194 14 -225280 -1109 +0; +#X restore 307 147 pd room; +#X obj 110 169 unpack; +#X obj 188 170 unpack; +#X text 172 257 updated for Pd version 0.34; +#X text 51 92 to modify geometry \, colors \, etc.; +#X obj 2 115 cnv 1 470 1 empty empty empty 20 12 2 20 -261681 -66577 +0; +#X text 40 78 of the light-blue; +#X text 166 78 my_canvas-object \,; +#X text 5 64 click the properties-dialog on the top-left corner; +#X obj 361 195 r foo10_rcv; +#X obj 403 215 s ggg; +#X obj 187 236 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X connect 9 0 17 0; +#X connect 10 0 9 0; +#X connect 11 0 19 0; +#X connect 16 0 20 0; +#X connect 19 0 5 0; +#X connect 19 1 6 0; +#X connect 20 0 12 0; +#X connect 20 1 13 0; +#X connect 27 0 28 0; diff --git a/iemhelp/my_numbox.pd b/iemhelp/my_numbox.pd new file mode 100644 index 0000000..d9e7887 --- /dev/null +++ b/iemhelp/my_numbox.pd @@ -0,0 +1,302 @@ +#N canvas 100 190 390 413 10; +#X obj 1 1 cnv 8 100 60 empty empty my_numbox=nbx 20 20 1 18 -262144 +-1109 0; +#X floatatom 38 127 9 0 0; +#X msg 47 84 set \$1; +#X floatatom 38 41 7 0 0; +#X text 13 355 (c) musil@iem.kug.ac.at; +#X text 55 368 IEM KUG; +#X text 30 380 graz \, austria 2001; +#X obj 38 149 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 18 41 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 41 107 nbx 5 12 100 300 0 1 foo12_snd foo12_rcv lin. 46 7 192 +10 -261689 -90133 -44926 160; +#X floatatom 47 62 7 0 0; +#X floatatom 116 150 9 0 0; +#X obj 110 308 r goo13_snd; +#X obj 145 248 s goo13_rcv; +#X floatatom 105 40 7 0 0; +#X floatatom 145 206 7 0 0; +#X obj 60 170 print; +#N canvas 276 200 290 224 once 0; +#X obj 38 47 t b b f; +#X msg 56 85 1; +#X obj 31 108 f 0; +#X obj 31 131 pack 0 0; +#X obj 31 156 route 0; +#X obj 38 24 inlet; +#X obj 31 180 outlet; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 1; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 0 0 0; +#X restore 60 147 pd once; +#X obj 37 248 nbx 5 16 55 3520 1 0 goo13_snd goo13_rcv Hz 68 9 192 +17 -225280 -1109 -260818 2057.51; +#X obj 37 308 ftom; +#X floatatom 37 330 9 0 0; +#X floatatom 64 287 9 0 0; +#X floatatom 110 329 9 0 0; +#X text 175 176 click properties to; +#X floatatom 37 203 8 0 0; +#X obj 37 226 mtof; +#X text 12 184 --------------------; +#X text 163 187 modify geometry \, colors \, etc.; +#X obj 105 82 s foo12_rcv; +#X obj 116 130 r foo12_snd; +#X msg 105 61 set \$1; +#X msg 145 227 set \$1; +#X text 197 120 (0.01 pixels); +#X text 183 99 shift-click & drag; +#X text 189 109 for fine-tuning; +#X text 148 270 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 147 281 for moving selected gui-objects; +#N canvas 207 113 716 530 edit 0; +#X obj 32 220 f; +#X msg 10 199 bang; +#X floatatom 48 198 3 63 88; +#X floatatom 83 220 3 0 37; +#X obj 32 243 pack 0 0; +#X text 110 220 y-label; +#X text 76 198 x-label; +#X obj 279 246 f; +#X msg 257 225 bang; +#X floatatom 295 224 3 -10 10; +#X floatatom 330 246 3 -10 10; +#X obj 279 269 pack 0 0; +#X obj 292 358 f; +#X msg 270 337 bang; +#X floatatom 308 336 3 20 60; +#X floatatom 343 358 3 150 200; +#X obj 292 381 pack 0 0; +#X text 323 224 x-delta; +#X text 357 246 y-delta; +#X text 336 336 x-position; +#X text 370 358 y-position; +#X obj 52 335 f; +#X msg 30 314 bang; +#X floatatom 68 313 3 0 2; +#X floatatom 103 335 3 4 36; +#X obj 52 358 pack 0 0; +#X text 96 313 font; +#X text 132 335 height; +#X text 523 401 no init; +#X text 493 453 init value on loadbang; +#X msg 47 154 \; goo13_rcv color \$1 \$2 \$3; +#X msg 32 268 \; goo13_rcv label_pos \$1 \$2; +#X msg 52 383 \; goo13_rcv label_font \$1 \$2; +#X msg 34 427 \; goo13_rcv label blabla; +#X msg 292 406 \; goo13_rcv pos \$1 \$2; +#X msg 279 294 \; goo13_rcv delta \$1 \$2; +#X msg 475 21 \; goo13_rcv send goo13a_snd; +#X msg 475 59 \; goo13_rcv send goo13_snd; +#X msg 476 105 \; goo13_rcv receive goo13a_rcv; +#X msg 476 143 \; goo13a_rcv receive goo13_rcv; +#X msg 502 420 \; goo13_rcv init 0; +#X msg 503 471 \; goo13_rcv init 1; +#X obj 486 291 f; +#X msg 464 270 bang; +#X floatatom 502 269 3 55 440; +#X floatatom 537 291 6 440 3520; +#X obj 486 314 pack 0 0; +#X msg 486 339 \; goo13_rcv range \$1 \$2; +#X msg 363 465 \; goo13_rcv log; +#X msg 269 466 \; goo13_rcv lin; +#X text 269 448 linear / logarithmical; +#X obj 275 133 f; +#X msg 250 112 bang; +#X floatatom 291 111 3 1 15; +#X floatatom 326 133 3 8 50; +#X obj 275 156 pack 0 0; +#X msg 275 181 \; goo13_rcv size \$1 \$2; +#X msg 34 463 \; goo13_rcv label log.freq.; +#X obj 47 100 pack 0 0 0; +#X obj 47 72 f; +#X msg 24 24 bang; +#X floatatom 63 22 3 0 29; +#X floatatom 79 42 3 0 29; +#X floatatom 112 58 3 0 29; +#X text 91 22 background; +#X text 106 42 front-color; +#X text 140 59 label-color; +#X msg 277 22 back; +#X msg 277 42 front; +#X msg 277 62 label; +#X msg 239 22 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 277 82 pd RGB_____________; +#X floatatom 319 52 3 0 255; +#X floatatom 362 52 3 0 255; +#X floatatom 405 53 3 0 255; +#X text 34 -1 preset-colors; +#X text 290 1 RGB-colors; +#X text 319 34 red; +#X text 355 33 green; +#X text 403 33 blue; +#X text 319 111 width in digits; +#X text 357 134 height in pix; +#X text 530 269 minimum-bound; +#X text 586 291 maximum-bound; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 31 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 10 0 11 1; +#X connect 11 0 35 0; +#X connect 12 0 16 0; +#X connect 13 0 12 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 34 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 32 0; +#X connect 42 0 46 0; +#X connect 43 0 42 0; +#X connect 44 0 42 1; +#X connect 45 0 46 1; +#X connect 46 0 47 0; +#X connect 51 0 55 0; +#X connect 52 0 51 0; +#X connect 53 0 51 1; +#X connect 54 0 55 1; +#X connect 55 0 56 0; +#X connect 58 0 30 0; +#X connect 59 0 58 0; +#X connect 60 0 59 0; +#X connect 61 0 59 1; +#X connect 62 0 58 1; +#X connect 63 0 58 2; +#X connect 67 0 71 0; +#X connect 68 0 71 0; +#X connect 69 0 71 0; +#X connect 70 0 71 0; +#X connect 71 0 58 0; +#X connect 71 1 58 1; +#X connect 71 2 58 2; +#X connect 72 0 71 1; +#X connect 73 0 71 2; +#X connect 74 0 71 3; +#X restore 314 245 pd edit; +#X text 187 379 updated for Pd version 0.34; +#X obj 220 41 nbx 3 12 -1e+37 1e+37 0 0 iii iii empty 20 8 192 10 -262144 +-1 -1 0; +#X text 174 11 gui-number-box:; +#X obj 220 56 nbx 3 12 -1e+37 1e+37 0 0 iii iii empty 20 8 192 10 -262144 +-1 -1 0; +#X obj 220 71 nbx 3 12 -1e+37 1e+37 0 0 iii iii empty 20 8 192 10 -262144 +-1 -1 0; +#X connect 1 0 7 0; +#X connect 2 0 9 0; +#X connect 3 0 9 0; +#X connect 8 0 9 0; +#X connect 9 0 1 0; +#X connect 9 0 17 0; +#X connect 10 0 2 0; +#X connect 12 0 22 0; +#X connect 14 0 30 0; +#X connect 15 0 31 0; +#X connect 17 0 16 0; +#X connect 18 0 21 0; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 24 0 25 0; +#X connect 25 0 18 0; +#X connect 29 0 11 0; +#X connect 30 0 28 0; +#X connect 31 0 13 0; diff --git a/iemhelp/popup.pd b/iemhelp/popup.pd new file mode 100644 index 0000000..3659af9 --- /dev/null +++ b/iemhelp/popup.pd @@ -0,0 +1,25 @@ +#N canvas 194 110 646 379 10; +#X obj 39 65 pop 6 17 0 0 play_cmd play_cmd play_cmd 82 9 192 17 -225280 +-1109 -260818 0 5 open rewind start stop quit; +#X obj 105 196 init_popup help-popup.txt play_cmd; +#X obj 25 196 r play_cmd; +#X obj 25 218 route set_pop_name; +#X text 11 9 popup = pop; +#X obj 263 236 pp set; +#X msg 263 258 0 open; +#X obj 69 276 unpack float symbol; +#X floatatom 69 299 5 0 0; +#X symbolatom 197 300 10 0 0; +#X obj 413 93 pop 7 14 0 0 empty empty empty 50 7 0 10 -262144 -1 -1 +0 1 pop; +#X floatatom 413 128 5 0 0; +#X symbolatom 460 129 10 0 0; +#X connect 1 0 10 0; +#X connect 2 0 3 0; +#X connect 3 1 5 0; +#X connect 3 1 7 0; +#X connect 5 0 6 0; +#X connect 7 0 8 0; +#X connect 7 1 9 0; +#X connect 10 0 11 0; +#X connect 10 1 12 0; diff --git a/iemhelp/radiobutton.pd b/iemhelp/radiobutton.pd new file mode 100644 index 0000000..3d05a8b --- /dev/null +++ b/iemhelp/radiobutton.pd @@ -0,0 +1,282 @@ +#N canvas 117 227 547 281 10; +#X obj 1 1 cnv 8 100 60 empty empty radiobutton=rdb 20 20 1 18 -262144 +-1109 0; +#X text 16 213 (c) musil@iem.kug.ac.at; +#X text 58 226 IEM KUG; +#X text 33 238 graz \, austria 2001; +#X text 289 52 click properties to; +#X text 277 63 modify geometry \, colors \, etc.; +#X obj 356 172 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 21 54 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 355 124 s foo8_rcv; +#X obj 356 150 r foo8_snd; +#X obj 44 100 hdl 25 1 1 10 foo8_snd foo8_rcv radio_0_9 156 -8 192 +10 -99865 -262144 -260818 1; +#X msg 44 142 \$1; +#X floatatom 44 164 4 0 0; +#X obj 44 186 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 89 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 89 140 route 0 1 2 3 4 5 6 7 8 9; +#X msg 221 66 set \$1; +#X floatatom 221 45 4 0 9; +#X floatatom 44 54 4 0 9; +#X msg 122 45 7 0 -5.44; +#X msg 126 67 3 3 4.55; +#X obj 106 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 +1; +#X obj 123 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 140 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 157 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 174 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 191 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 208 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 225 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 242 161 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 82 178 print; +#X text 183 11 gui-radiobutton:; +#X floatatom 380 198 4 0 0; +#X msg 380 172 \$1; +#X msg 355 103 set \$1; +#X floatatom 355 82 4 0 9; +#X text 128 178 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 127 189 for moving selected gui-objects; +#N canvas 222 207 699 530 edit 0; +#X obj 42 198 f; +#X msg 20 177 bang; +#X floatatom 58 176 3 63 156; +#X floatatom 93 198 3 -20 37; +#X obj 42 221 pack 0 0; +#X text 120 198 y-label; +#X text 86 176 x-label; +#X floatatom 270 187 3 8 50; +#X text 297 187 size; +#X obj 286 293 f; +#X msg 264 272 bang; +#X floatatom 302 271 3 -10 10; +#X floatatom 337 293 3 -10 10; +#X obj 286 316 pack 0 0; +#X obj 300 412 f; +#X msg 278 391 bang; +#X floatatom 316 390 3 20 60; +#X floatatom 351 412 3 100 200; +#X obj 300 435 pack 0 0; +#X text 330 271 x-delta; +#X text 364 293 y-delta; +#X text 344 390 x-position; +#X text 378 412 y-position; +#X obj 62 313 f; +#X msg 40 292 bang; +#X floatatom 78 291 3 0 2; +#X floatatom 113 313 3 4 36; +#X obj 62 336 pack 0 0; +#X text 106 291 font; +#X text 142 313 height; +#X text 504 293 no init; +#X text 475 348 init value on loadbang; +#X floatatom 482 228 5 2 20; +#X msg 47 125 \; foo8_rcv color \$1 \$2 \$3; +#X msg 42 246 \; foo8_rcv label_pos \$1 \$2; +#X msg 62 361 \; foo8_rcv label_font \$1 \$2; +#X msg 34 423 \; foo8_rcv label blabla; +#X msg 300 460 \; foo8_rcv pos \$1 \$2; +#X msg 286 341 \; foo8_rcv delta \$1 \$2; +#X msg 270 216 \; foo8_rcv size \$1; +#X msg 482 171 \; foo8a_rcv receive foo8_rcv; +#X msg 483 133 \; foo8_rcv receive foo8a_rcv; +#X msg 483 88 \; foo8_rcv send foo8_snd; +#X msg 483 50 \; foo8_rcv send foo8a_snd; +#X msg 483 312 \; foo8_rcv init 0; +#X msg 485 366 \; foo8_rcv init 1; +#X msg 490 436 \; foo8_rcv single_change; +#X msg 490 470 \; foo8_rcv double_change; +#X text 491 417 changing-behavior; +#X msg 482 254 \; foo8_rcv number \$1; +#X text 526 228 number of buttons; +#X msg 34 459 \; foo8_rcv label radio_0_9; +#X obj 47 104 pack 0 0 0; +#X obj 47 76 f; +#X msg 24 28 bang; +#X floatatom 63 26 3 0 29; +#X floatatom 79 46 3 0 29; +#X floatatom 112 62 3 0 29; +#X text 91 26 background; +#X text 106 46 front-color; +#X text 140 63 label-color; +#X msg 285 25 back; +#X msg 285 45 front; +#X msg 285 65 label; +#X msg 247 25 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 285 86 pd RGB_____________; +#X floatatom 327 55 3 0 255; +#X floatatom 370 55 3 0 255; +#X floatatom 413 56 3 0 255; +#X text 34 0 preset-colors; +#X text 296 -3 RGB-colors; +#X text 327 37 red; +#X text 363 36 green; +#X text 411 36 blue; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 34 0; +#X connect 7 0 39 0; +#X connect 9 0 13 0; +#X connect 10 0 9 0; +#X connect 11 0 9 1; +#X connect 12 0 13 1; +#X connect 13 0 38 0; +#X connect 14 0 18 0; +#X connect 15 0 14 0; +#X connect 16 0 14 1; +#X connect 17 0 18 1; +#X connect 18 0 37 0; +#X connect 23 0 27 0; +#X connect 24 0 23 0; +#X connect 25 0 23 1; +#X connect 26 0 27 1; +#X connect 27 0 35 0; +#X connect 32 0 49 0; +#X connect 52 0 33 0; +#X connect 53 0 52 0; +#X connect 54 0 53 0; +#X connect 55 0 53 1; +#X connect 56 0 52 1; +#X connect 57 0 52 2; +#X connect 61 0 65 0; +#X connect 62 0 65 0; +#X connect 63 0 65 0; +#X connect 64 0 65 0; +#X connect 65 0 52 0; +#X connect 65 1 52 1; +#X connect 65 2 52 2; +#X connect 66 0 65 1; +#X connect 67 0 65 2; +#X connect 68 0 65 3; +#X restore 469 108 pd edit; +#X text 251 232 updated for Pd version 0.34; +#X obj 307 10 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 360 32 hdl 15 1 0 8 eee eee empty 20 8 192 8 -262144 -1 -1 7 +; +#X connect 7 0 10 0; +#X connect 9 0 6 0; +#X connect 9 0 33 0; +#X connect 10 0 11 0; +#X connect 10 0 15 0; +#X connect 10 0 30 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 15 0 14 0; +#X connect 15 1 21 0; +#X connect 15 2 22 0; +#X connect 15 3 23 0; +#X connect 15 4 24 0; +#X connect 15 5 25 0; +#X connect 15 6 26 0; +#X connect 15 7 27 0; +#X connect 15 8 28 0; +#X connect 15 9 29 0; +#X connect 16 0 10 0; +#X connect 17 0 16 0; +#X connect 18 0 10 0; +#X connect 19 0 10 0; +#X connect 20 0 10 0; +#X connect 33 0 32 0; +#X connect 34 0 8 0; +#X connect 35 0 34 0; diff --git a/iemhelp/test1.mp3 b/iemhelp/test1.mp3 Binary files differnew file mode 100644 index 0000000..d8d3ee2 --- /dev/null +++ b/iemhelp/test1.mp3 diff --git a/iemhelp/test_dollarg.pd b/iemhelp/test_dollarg.pd new file mode 100644 index 0000000..dced4d5 --- /dev/null +++ b/iemhelp/test_dollarg.pd @@ -0,0 +1,42 @@ +#N canvas 75 94 754 539 10; +#X obj 126 224 dollarg; +#X obj 126 40 inlet; +#X obj 32 387 outlet; +#X obj 415 374 outlet; +#X obj 251 150 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 420 352 5 0 0 0 - - -; +#X obj 25 310 prepend set; +#X msg 25 339 aa bb cc dd ee ff gg 33 44 55 66 77 88 99; +#X floatatom 247 181 5 0 0 0 - - -; +#X text 60 480 (c) musil@iem.kug.ac.at; +#X text 102 493 IEM KUG; +#X text 77 505 graz \, austria 2002; +#X text 11 6 dollarg; +#X text 93 7 receives the parent initial arguments <list> \, like a +$n; +#X text 250 61 into internal buffer and to output; +#X text 83 406 or output float or symbol of list-atom at index (if +input:; +#X text 235 47 at creation-time dollarg copy parent initial arguments +; +#X text 302 88 pargs = parent arguments; +#X text 302 101 n_pa = number of pargs; +#X text 468 347 output n_pa (if input: n = 0 \, or bang); +#X text 471 363 or output index of parg (if input: n != 0); +#X text 475 378 or output 0 (if input: n > n_pa); +#X text 82 389 output list of pargs (if input: n = 0 \, or bang); +#X text 485 402 -n_pa <= n <= n_pa); +#X text 276 149 if (input == bang) -> dollarg output all pargs; +#X text 302 181 if (input = 0) -> dollarg output all pargs; +#X text 302 195 if (input > 0) -> dollarg output the n-th parg; +#X text 526 207 (n_pa + 1 + input)-th parg; +#X text 304 208 if (input < 0) -> dollarg output the; +#X connect 0 0 2 0; +#X connect 0 0 6 0; +#X connect 0 1 3 0; +#X connect 0 1 5 0; +#X connect 1 0 0 0; +#X connect 4 0 0 0; +#X connect 6 0 7 0; +#X connect 8 0 0 0; diff --git a/iemhelp/toggle.pd b/iemhelp/toggle.pd new file mode 100644 index 0000000..b094dce --- /dev/null +++ b/iemhelp/toggle.pd @@ -0,0 +1,273 @@ +#N canvas 201 120 395 362 10; +#X obj 1 1 cnv 8 100 60 empty empty toggle=tgl 20 20 1 18 -262144 -1109 +0; +#X text 21 296 (c) musil@iem.kug.ac.at; +#X text 63 309 IEM KUG; +#X text 38 321 graz \, austria 2001; +#X text 115 41 click properties to; +#X text 103 52 modify geometry \, colors \, etc.; +#X obj 168 113 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 168 179 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 +-1 -1; +#X obj 168 133 s foo6_rcv; +#X obj 168 159 r foo6_snd; +#X text 153 14 gui-toggle:; +#X obj 26 270 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 10 117 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X msg 26 39 33; +#X obj 26 180 tgl 60 1 foo6_snd foo6_rcv big_toggle 63 20 194 13 -228992 +-4033 -34 1 1; +#X msg 42 79 1; +#X msg 49 99 0; +#X floatatom 26 249 4 0 0; +#X msg 33 59 -0.001; +#X msg 103 135 set 1; +#X msg 108 157 set 0; +#X obj 3 155 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 +; +#X obj 65 249 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 +1; +#X msg 95 114 set -0.23; +#X obj 189 93 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 188 179 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 +1; +#X msg 93 93 0 3 4.55; +#X msg 85 73 0.22 0 -5.44; +#X msg 189 113 set \$1; +#X text 96 222 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 95 233 for moving selected gui-objects; +#N canvas 440 175 699 530 edit 0; +#X msg 47 151 \; foo6_rcv color \$1 \$2 \$3; +#X obj 47 126 pack 0 0 0; +#X obj 47 98 f; +#X msg 24 50 bang; +#X floatatom 63 48 3 0 29; +#X floatatom 79 68 3 0 29; +#X floatatom 112 84 3 0 29; +#X text 91 48 background; +#X text 106 68 front-color; +#X text 140 85 label-color; +#X obj 49 223 f; +#X msg 27 202 bang; +#X floatatom 65 201 3 63 88; +#X floatatom 100 223 3 0 37; +#X obj 49 246 pack 0 0; +#X text 127 223 y-label; +#X text 93 201 x-label; +#X msg 49 271 \; foo6_rcv label_pos \$1 \$2; +#X floatatom 505 55 3 8 75; +#X text 532 55 size; +#X msg 505 76 \; foo6_rcv size \$1; +#X obj 282 182 f; +#X msg 260 161 bang; +#X floatatom 298 160 3 -10 10; +#X floatatom 333 182 3 -10 10; +#X obj 282 205 pack 0 0; +#X msg 282 230 \; foo6_rcv delta \$1 \$2; +#X obj 296 301 f; +#X msg 274 280 bang; +#X floatatom 312 279 3 20 60; +#X floatatom 347 301 3 150 200; +#X obj 296 324 pack 0 0; +#X msg 296 349 \; foo6_rcv pos \$1 \$2; +#X text 326 160 x-delta; +#X text 360 182 y-delta; +#X text 340 279 x-position; +#X text 374 301 y-position; +#X obj 305 423 f; +#X msg 283 402 bang; +#X floatatom 321 401 3 -10 10; +#X floatatom 356 423 3 -10 10; +#X obj 305 446 pack 0 0; +#X text 383 423 y-label; +#X text 349 401 x-label; +#X msg 305 471 \; foo6_rcv delta \$1 \$2; +#X msg 499 140 \; foo6_rcv send foo6a_snd; +#X msg 499 178 \; foo6_rcv send foo6_snd; +#X msg 494 216 \; foo6_rcv receive foo6a_rcv; +#X msg 494 254 \; foo6a_rcv receive foo6_rcv; +#X msg 41 448 \; foo6_rcv label blabla; +#X msg 41 484 \; foo6_rcv label big_toggle; +#X obj 69 338 f; +#X msg 47 317 bang; +#X floatatom 85 316 3 0 2; +#X floatatom 120 338 3 4 36; +#X obj 69 361 pack 0 0; +#X msg 69 386 \; foo6_rcv label_font \$1 \$2; +#X text 113 316 font; +#X text 149 338 height; +#X floatatom 498 307 5 -200 200; +#X text 542 307 nonzero-value; +#X msg 498 331 \; foo6_rcv nonzero \$1; +#X msg 503 412 \; foo6_rcv init 0; +#X msg 510 479 \; foo6_rcv init 1; +#X text 524 393 no init; +#X text 500 461 init value on loadbang; +#X msg 285 47 back; +#X msg 285 67 front; +#X msg 285 87 label; +#X msg 247 47 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 285 108 pd RGB_____________; +#X floatatom 327 77 3 0 255; +#X floatatom 370 77 3 0 255; +#X floatatom 413 78 3 0 255; +#X text 34 22 preset-colors; +#X text 296 19 RGB-colors; +#X text 327 59 red; +#X text 363 58 green; +#X text 411 58 blue; +#X connect 1 0 0 0; +#X connect 2 0 1 0; +#X connect 3 0 2 0; +#X connect 4 0 2 1; +#X connect 5 0 1 1; +#X connect 6 0 1 2; +#X connect 10 0 14 0; +#X connect 11 0 10 0; +#X connect 12 0 10 1; +#X connect 13 0 14 1; +#X connect 14 0 17 0; +#X connect 18 0 20 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 26 0; +#X connect 27 0 31 0; +#X connect 28 0 27 0; +#X connect 29 0 27 1; +#X connect 30 0 31 1; +#X connect 31 0 32 0; +#X connect 37 0 41 0; +#X connect 38 0 37 0; +#X connect 39 0 37 1; +#X connect 40 0 41 1; +#X connect 41 0 44 0; +#X connect 51 0 55 0; +#X connect 52 0 51 0; +#X connect 53 0 51 1; +#X connect 54 0 55 1; +#X connect 55 0 56 0; +#X connect 59 0 61 0; +#X connect 66 0 70 0; +#X connect 67 0 70 0; +#X connect 68 0 70 0; +#X connect 69 0 70 0; +#X connect 70 0 1 0; +#X connect 70 1 1 1; +#X connect 70 2 1 2; +#X connect 71 0 70 1; +#X connect 72 0 70 2; +#X connect 73 0 70 3; +#X restore 278 136 pd edit; +#X text 191 320 updated for Pd version 0.34; +#X obj 127 255 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 222 276 tgl 15 0 bbb bbb empty 20 8 192 8 -262144 -1 -1 1 1 +; +#X connect 6 0 8 0; +#X connect 9 0 7 0; +#X connect 9 0 25 0; +#X connect 12 0 14 0; +#X connect 13 0 14 0; +#X connect 14 0 17 0; +#X connect 14 0 22 0; +#X connect 15 0 14 0; +#X connect 16 0 14 0; +#X connect 17 0 11 0; +#X connect 18 0 14 0; +#X connect 19 0 14 0; +#X connect 20 0 14 0; +#X connect 21 0 14 0; +#X connect 23 0 14 0; +#X connect 24 0 28 0; +#X connect 26 0 14 0; +#X connect 27 0 14 0; +#X connect 28 0 8 0; diff --git a/iemhelp/vdial.pd b/iemhelp/vdial.pd new file mode 100644 index 0000000..31df3e1 --- /dev/null +++ b/iemhelp/vdial.pd @@ -0,0 +1,285 @@ +#N canvas 544 154 329 467 10; +#X obj 1 1 cnv 8 100 60 empty empty vdial=vdl 20 20 1 18 -262144 -1109 +0; +#X text 82 407 (c) musil@iem.kug.ac.at; +#X text 124 420 IEM KUG; +#X text 99 432 graz \, austria 2001; +#X text 109 130 click properties to; +#X text 97 141 modify geometry \, colors \, etc.; +#X obj 60 254 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 21 54 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 59 206 s foo11_rcv; +#X obj 60 232 r foo11_snd; +#X obj 21 118 vdl 25 1 1 10 foo11_snd foo11_rcv radio_0_9 32 12 192 +10 -99865 -262144 -260818 0; +#X msg 21 376 \$1; +#X floatatom 21 398 4 0 0; +#X obj 21 420 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 103 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 +1; +#X obj 103 368 route 0 1 2 3 4 5 6 7 8 9; +#X msg 157 73 set \$1; +#X floatatom 157 52 4 0 9; +#X floatatom 44 54 4 0 9; +#X msg 84 50 7 0 -5.44; +#X msg 88 72 3 3 4.55; +#X obj 120 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 137 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 154 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 171 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 188 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 205 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 222 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 239 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 256 389 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 +1; +#X obj 58 372 print; +#X floatatom 84 280 4 0 0; +#X msg 84 254 \$1; +#X msg 59 185 set \$1; +#X floatatom 59 164 4 0 9; +#X text 60 334 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 59 345 for moving selected gui-objects; +#N canvas 222 207 699 530 edit 0; +#X obj 42 198 f; +#X msg 20 177 bang; +#X floatatom 58 176 3 63 156; +#X floatatom 93 198 3 -20 37; +#X obj 42 221 pack 0 0; +#X text 120 198 y-label; +#X text 86 176 x-label; +#X floatatom 270 187 3 8 50; +#X text 297 187 size; +#X obj 286 293 f; +#X msg 264 272 bang; +#X floatatom 302 271 3 -10 10; +#X floatatom 337 293 3 -10 10; +#X obj 286 316 pack 0 0; +#X obj 300 412 f; +#X msg 278 391 bang; +#X floatatom 316 390 3 20 60; +#X floatatom 351 412 3 100 200; +#X obj 300 435 pack 0 0; +#X text 330 271 x-delta; +#X text 364 293 y-delta; +#X text 344 390 x-position; +#X text 378 412 y-position; +#X obj 62 313 f; +#X msg 40 292 bang; +#X floatatom 78 291 3 0 2; +#X floatatom 113 313 3 4 36; +#X obj 62 336 pack 0 0; +#X text 106 291 font; +#X text 142 313 height; +#X text 504 293 no init; +#X text 475 348 init value on loadbang; +#X floatatom 482 228 5 2 20; +#X msg 47 125 \; foo11_rcv color \$1 \$2 \$3; +#X msg 42 246 \; foo11_rcv label_pos \$1 \$2; +#X msg 62 361 \; foo11_rcv label_font \$1 \$2; +#X msg 34 423 \; foo11_rcv label blabla; +#X msg 300 460 \; foo11_rcv pos \$1 \$2; +#X msg 286 341 \; foo11_rcv delta \$1 \$2; +#X msg 270 216 \; foo11_rcv size \$1; +#X msg 482 171 \; foo11a_rcv receive foo11_rcv; +#X msg 483 133 \; foo11_rcv receive foo11a_rcv; +#X msg 483 88 \; foo11_rcv send foo11_snd; +#X msg 483 50 \; foo11_rcv send foo11a_snd; +#X msg 483 312 \; foo11_rcv init 0; +#X msg 485 366 \; foo11_rcv init 1; +#X msg 490 436 \; foo11_rcv single_change; +#X msg 490 470 \; foo11_rcv double_change; +#X text 491 417 changing-behavior; +#X msg 482 254 \; foo11_rcv number \$1; +#X text 526 228 number of buttons; +#X msg 34 459 \; foo11_rcv label radio_0_9; +#X obj 47 104 pack 0 0 0; +#X obj 47 76 f; +#X msg 24 28 bang; +#X floatatom 63 26 3 0 29; +#X floatatom 79 46 3 0 29; +#X floatatom 112 62 3 0 29; +#X text 91 26 background; +#X text 106 46 front-color; +#X text 140 63 label-color; +#X msg 285 25 back; +#X msg 285 45 front; +#X msg 285 65 label; +#X msg 247 25 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 285 86 pd RGB_____________; +#X floatatom 327 55 3 0 255; +#X floatatom 370 55 3 0 255; +#X floatatom 413 56 3 0 255; +#X text 34 0 preset-colors; +#X text 296 -3 RGB-colors; +#X text 327 37 red; +#X text 363 36 green; +#X text 411 36 blue; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 34 0; +#X connect 7 0 39 0; +#X connect 9 0 13 0; +#X connect 10 0 9 0; +#X connect 11 0 9 1; +#X connect 12 0 13 1; +#X connect 13 0 38 0; +#X connect 14 0 18 0; +#X connect 15 0 14 0; +#X connect 16 0 14 1; +#X connect 17 0 18 1; +#X connect 18 0 37 0; +#X connect 23 0 27 0; +#X connect 24 0 23 0; +#X connect 25 0 23 1; +#X connect 26 0 27 1; +#X connect 27 0 35 0; +#X connect 32 0 49 0; +#X connect 52 0 33 0; +#X connect 53 0 52 0; +#X connect 54 0 53 0; +#X connect 55 0 53 1; +#X connect 56 0 52 1; +#X connect 57 0 52 2; +#X connect 61 0 65 0; +#X connect 62 0 65 0; +#X connect 63 0 65 0; +#X connect 64 0 65 0; +#X connect 65 0 52 0; +#X connect 65 1 52 1; +#X connect 65 2 52 2; +#X connect 66 0 65 1; +#X connect 67 0 65 2; +#X connect 68 0 65 3; +#X restore 166 220 pd edit; +#X text 88 306 updated for Pd version 0.34; +#X obj 257 46 vdl 8 1 0 8 hhh hhh empty 20 8 192 8 -262144 -1 -1 6 +; +#X text 117 12 gui-vertical dial:; +#X obj 231 46 vdl 8 1 0 8 hhh hhh empty 20 8 192 8 -262144 -1 -1 6 +; +#X obj 244 46 vdl 8 1 0 8 hhh hhh empty 20 8 192 8 -262144 -1 -1 6 +; +#X connect 7 0 10 0; +#X connect 9 0 6 0; +#X connect 9 0 32 0; +#X connect 10 0 11 0; +#X connect 10 0 15 0; +#X connect 10 0 30 0; +#X connect 11 0 12 0; +#X connect 12 0 13 0; +#X connect 15 0 14 0; +#X connect 15 1 21 0; +#X connect 15 2 22 0; +#X connect 15 3 23 0; +#X connect 15 4 24 0; +#X connect 15 5 25 0; +#X connect 15 6 26 0; +#X connect 15 7 27 0; +#X connect 15 8 28 0; +#X connect 15 9 29 0; +#X connect 16 0 10 0; +#X connect 17 0 16 0; +#X connect 18 0 10 0; +#X connect 19 0 10 0; +#X connect 20 0 10 0; +#X connect 32 0 31 0; +#X connect 33 0 8 0; +#X connect 34 0 33 0; diff --git a/iemhelp/vslider.pd b/iemhelp/vslider.pd new file mode 100644 index 0000000..c5b4a1c --- /dev/null +++ b/iemhelp/vslider.pd @@ -0,0 +1,302 @@ +#N canvas 143 181 467 416 10; +#X obj 1 1 cnv 8 100 60 empty empty vslider=vsl 20 20 1 18 -262144 +-1109 0; +#X floatatom 38 300 9 0 0; +#X msg 47 84 set \$1; +#X floatatom 38 43 7 0 0; +#X text 25 363 (c) musil@iem.kug.ac.at; +#X text 67 376 IEM KUG; +#X text 42 388 graz \, austria 2001; +#X obj 38 324 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X obj 18 47 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 +-1; +#X floatatom 47 63 7 0 0; +#X floatatom 116 324 9 0 0; +#X floatatom 106 42 7 0 0; +#X floatatom 147 113 7 0 0; +#X obj 75 249 ftom; +#X floatatom 75 271 9 0 0; +#X floatatom 111 244 9 0 0; +#X floatatom 185 266 9 0 0; +#X text 181 151 click properties to; +#X floatatom 75 112 9 0 0; +#X obj 75 134 mtof; +#X text 166 12 gui-vertical-slider:; +#X obj 38 162 vsl 15 101 100 300 0 1 foo3_snd foo3_rcv empty 8 -8 192 +10 -225280 -1109 -1 2500 1; +#X obj 75 168 vsl 15 73 55 3520 1 1 goo4_snd goo4_rcv log.freq. 11 +-6 192 10 -261681 -260818 -90881 0 1; +#X obj 185 244 r goo4_snd; +#X obj 147 133 s goo4_rcv; +#X text 202 65 (0.01 pixels); +#X text 57 99 ------------------------------------------; +#X text 57 286 --------------------------------------------; +#X text 169 162 modify geometry \, colors \, etc.; +#X obj 106 84 s foo3_rcv; +#X obj 116 302 r foo3_snd; +#X msg 106 63 set \$1; +#X text 188 44 shift-click & drag; +#X text 194 54 for fine-tuning; +#X text 119 192 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 118 203 for moving selected gui-objects; +#N canvas 239 379 699 530 edit 0; +#X obj 37 233 f; +#X msg 15 212 bang; +#X floatatom 53 211 3 6 88; +#X floatatom 88 233 3 -20 37; +#X obj 37 256 pack 0 0; +#X text 115 233 y-label; +#X text 81 211 x-label; +#X obj 287 271 f; +#X msg 265 250 bang; +#X floatatom 303 249 3 -10 10; +#X floatatom 338 271 3 -10 10; +#X obj 287 294 pack 0 0; +#X obj 299 381 f; +#X msg 277 360 bang; +#X floatatom 315 359 3 20 90; +#X floatatom 350 381 3 150 200; +#X obj 299 404 pack 0 0; +#X text 331 249 x-delta; +#X text 365 271 y-delta; +#X text 343 359 x-position; +#X text 377 381 y-position; +#X obj 57 348 f; +#X msg 35 327 bang; +#X floatatom 73 326 3 0 2; +#X floatatom 108 348 3 4 36; +#X obj 57 371 pack 0 0; +#X text 101 326 font; +#X text 137 348 height; +#X floatatom 476 188 1 0 1; +#X text 523 401 no init; +#X text 493 453 init value on loadbang; +#X text 520 188 steady; +#X obj 486 291 f; +#X msg 464 270 bang; +#X floatatom 502 269 4 55 440; +#X floatatom 537 291 6 440 3520; +#X obj 486 314 pack 0 0; +#X text 269 469 linear / logarithmical; +#X msg 47 158 \; goo4_rcv color \$1 \$2 \$3; +#X msg 37 281 \; goo4_rcv label_pos \$1 \$2; +#X msg 57 396 \; goo4_rcv label_font \$1 \$2; +#X msg 40 442 \; goo4_rcv label blabla; +#X msg 269 487 \; goo4_rcv lin; +#X msg 363 486 \; goo4_rcv log; +#X msg 299 429 \; goo4_rcv pos \$1 \$2; +#X msg 287 319 \; goo4_rcv delta \$1 \$2; +#X msg 475 21 \; goo4_rcv send goo4a_snd; +#X msg 475 59 \; goo4_rcv send goo4_snd; +#X msg 476 105 \; goo4_rcv receive goo4a_rcv; +#X msg 476 143 \; goo4a_rcv receive goo4_rcv; +#X msg 486 339 \; goo4_rcv range \$1 \$2; +#X msg 502 420 \; goo4_rcv init 0; +#X msg 503 471 \; goo4_rcv init 1; +#X text 539 270 bottom-range-bound; +#X text 586 292 top-range-bound; +#X obj 286 160 f; +#X msg 264 139 bang; +#X floatatom 302 138 3 4 55; +#X floatatom 337 160 3 15 73; +#X obj 286 183 pack 0 0; +#X msg 286 208 \; goo4_rcv size \$1 \$2; +#X text 330 138 width; +#X text 368 161 height; +#X msg 41 478 \; goo4_rcv label log.freq.; +#X msg 476 212 \; goo4_rcv steady \$1; +#X obj 47 116 pack 0 0 0; +#X obj 47 88 f; +#X msg 24 40 bang; +#X floatatom 63 38 3 0 29; +#X floatatom 79 58 3 0 29; +#X floatatom 112 74 3 0 29; +#X text 91 38 background; +#X text 106 58 front-color; +#X text 140 75 label-color; +#X msg 285 37 back; +#X msg 285 57 front; +#X msg 285 77 label; +#X msg 247 37 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 196 269 bang; +#X msg 187 295 0; +#X msg 214 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 359 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 343 385 outlet; +#X obj 28 180 loadbang; +#X obj 97 135 route back front label bang; +#X obj 343 362 f; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 235 168 t b b b b; +#X connect 0 0 28 0; +#X connect 1 0 32 0; +#X connect 2 0 33 0; +#X connect 3 0 34 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 14 1; +#X connect 5 0 15 1; +#X connect 6 0 13 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 13 1; +#X connect 8 0 15 1; +#X connect 9 0 14 1; +#X connect 10 0 11 0; +#X connect 10 0 12 0; +#X connect 11 0 13 1; +#X connect 11 0 14 1; +#X connect 12 0 15 1; +#X connect 13 0 31 1; +#X connect 14 0 30 1; +#X connect 15 0 29 1; +#X connect 21 0 22 0; +#X connect 21 1 22 1; +#X connect 22 0 23 0; +#X connect 23 0 24 0; +#X connect 23 1 24 1; +#X connect 24 0 35 0; +#X connect 27 0 6 0; +#X connect 28 0 4 0; +#X connect 28 1 7 0; +#X connect 28 2 10 0; +#X connect 28 3 36 0; +#X connect 29 0 26 0; +#X connect 30 0 25 0; +#X connect 31 0 16 0; +#X connect 32 0 24 0; +#X connect 33 0 22 0; +#X connect 34 0 21 0; +#X connect 35 0 15 0; +#X connect 35 0 14 0; +#X connect 35 0 13 0; +#X connect 36 0 31 0; +#X connect 36 1 30 0; +#X connect 36 2 29 0; +#X connect 36 3 35 0; +#X restore 285 98 pd RGB_____________; +#X floatatom 327 67 3 0 255; +#X floatatom 370 67 3 0 255; +#X floatatom 413 68 3 0 255; +#X text 34 12 preset-colors; +#X text 296 9 RGB-colors; +#X text 327 49 red; +#X text 363 48 green; +#X text 411 48 blue; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 39 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 10 0 11 1; +#X connect 11 0 45 0; +#X connect 12 0 16 0; +#X connect 13 0 12 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 44 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 40 0; +#X connect 28 0 64 0; +#X connect 32 0 36 0; +#X connect 33 0 32 0; +#X connect 34 0 32 1; +#X connect 35 0 36 1; +#X connect 36 0 50 0; +#X connect 55 0 59 0; +#X connect 56 0 55 0; +#X connect 57 0 55 1; +#X connect 58 0 59 1; +#X connect 59 0 60 0; +#X connect 65 0 38 0; +#X connect 66 0 65 0; +#X connect 67 0 66 0; +#X connect 68 0 66 1; +#X connect 69 0 65 1; +#X connect 70 0 65 2; +#X connect 74 0 78 0; +#X connect 75 0 78 0; +#X connect 76 0 78 0; +#X connect 77 0 78 0; +#X connect 78 0 65 0; +#X connect 78 1 65 1; +#X connect 78 2 65 2; +#X connect 79 0 78 1; +#X connect 80 0 78 2; +#X connect 81 0 78 3; +#X restore 327 48 pd edit; +#X text 218 387 updated for Pd version 0.34; +#X obj 61 345 print; +#N canvas 276 200 290 224 once 0; +#X obj 38 47 t b b f; +#X msg 56 85 1; +#X obj 31 108 f 0; +#X obj 31 131 pack 0 0; +#X obj 31 156 route 0; +#X obj 38 24 inlet; +#X obj 31 180 outlet; +#X connect 0 0 1 0; +#X connect 0 1 2 0; +#X connect 0 2 3 1; +#X connect 1 0 2 1; +#X connect 2 0 3 0; +#X connect 3 0 4 0; +#X connect 4 0 6 0; +#X connect 5 0 0 0; +#X restore 61 322 pd once; +#X obj 250 87 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 377 110 vsl 15 128 0 127 0 0 ccc ccc empty 20 8 192 8 -262144 +-1 -1 3500 1; +#X connect 1 0 7 0; +#X connect 2 0 21 0; +#X connect 3 0 21 0; +#X connect 8 0 21 0; +#X connect 9 0 2 0; +#X connect 11 0 31 0; +#X connect 12 0 24 0; +#X connect 13 0 14 0; +#X connect 18 0 19 0; +#X connect 19 0 22 0; +#X connect 21 0 1 0; +#X connect 21 0 39 0; +#X connect 22 0 15 0; +#X connect 22 0 13 0; +#X connect 23 0 16 0; +#X connect 30 0 10 0; +#X connect 31 0 29 0; +#X connect 39 0 38 0; diff --git a/iemhelp/vu.pd b/iemhelp/vu.pd new file mode 100644 index 0000000..f57862c --- /dev/null +++ b/iemhelp/vu.pd @@ -0,0 +1,248 @@ +#N canvas 167 190 434 418 10; +#X obj 1 1 cnv 8 100 60 empty empty vu 20 20 1 18 -262144 -1109 0; +#X text 19 363 (c) musil@iem.kug.ac.at; +#X text 61 376 IEM KUG; +#X text 36 388 graz \, austria 2001; +#X floatatom 177 129 7 -110 20; +#X text 202 41 click properties to; +#X text 190 52 modify geometry \, colors \, etc.; +#X text 49 13 gui-vu-meter-display:; +#X obj 99 39 tgl 15 1 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 +; +#X obj 12 179 vu 16 120 foo7_rcv vu-meter 60 0 64 10 -1 -16410 1 0 +; +#X floatatom 11 332 6 0 0; +#X floatatom 22 310 6 0 0; +#X text 75 309 dB; +#X text 63 333 dB; +#X text 71 128 dB; +#X text 80 148 dB; +#X text 103 146 peak-level; +#X text 101 125 rms-level; +#X text 96 308 peak-level; +#X text 83 332 rms-level; +#X text 108 99 <list> of rms \, peak; +#X obj 177 231 s foo7_rcv; +#X obj 177 211 pack 0 0; +#X floatatom 195 150 7 -110 20; +#X obj 195 191 t b f; +#X text 236 129 dB; +#X text 255 151 dB; +#X text 71 258 UP- \, DOWN- \, LEFT- or RIGHT-key; +#X text 70 269 for moving selected gui-objects; +#X floatatom 11 128 7 -110 20; +#X floatatom 22 149 7 -110 20; +#N canvas 236 62 699 530 edit 0; +#X obj 37 222 f; +#X msg 15 201 bang; +#X floatatom 53 200 3 50 88; +#X floatatom 88 222 3 0 37; +#X obj 37 245 pack 0 0; +#X text 115 222 y-label; +#X text 81 200 x-label; +#X obj 292 313 f; +#X msg 270 292 bang; +#X floatatom 308 291 3 -10 10; +#X floatatom 343 313 3 -10 10; +#X obj 292 336 pack 0 0; +#X obj 304 435 f; +#X msg 282 414 bang; +#X floatatom 320 413 3 20 140; +#X floatatom 355 435 3 150 200; +#X obj 304 458 pack 0 0; +#X text 336 291 x-delta; +#X text 370 313 y-delta; +#X text 348 413 x-position; +#X text 382 435 y-position; +#X obj 57 337 f; +#X msg 35 316 bang; +#X floatatom 73 315 3 0 2; +#X floatatom 108 337 3 8 36; +#X obj 57 360 pack 0 0; +#X text 101 315 font; +#X text 137 337 height; +#X floatatom 471 106 1 0 1; +#X msg 52 131 \; foo7_rcv color \$1 \$2; +#X msg 37 270 \; foo7_rcv label_pos \$1 \$2; +#X msg 57 386 \; foo7_rcv label_font \$1 \$2; +#X msg 37 427 \; foo7_rcv label blabla; +#X msg 292 361 \; foo7_rcv delta \$1 \$2; +#X msg 304 483 \; foo7_rcv pos \$1 \$2; +#X msg 469 23 \; foo7_rcv receive foo7a_rcv; +#X msg 469 60 \; foo7a_rcv receive foo7_rcv; +#X text 492 106 display scale; +#X msg 471 132 \; foo7_rcv scale \$1; +#X obj 279 193 f; +#X msg 257 172 bang; +#X floatatom 295 171 3 8 50; +#X floatatom 330 193 3 110 200; +#X obj 279 216 pack 0 0; +#X text 323 171 width; +#X text 357 193 height; +#X msg 279 241 \; foo7_rcv size \$1 \$2; +#X msg 37 463 \; foo7_rcv label vu-meter; +#X obj 52 79 f; +#X msg 29 31 bang; +#X floatatom 68 29 3 0 29; +#X floatatom 103 47 3 0 29; +#X text 96 29 background; +#X text 131 48 label-color; +#X msg 290 25 back; +#X msg 290 49 label; +#X msg 252 25 bang; +#N canvas 15 207 606 448 RGB_____________ 0; +#X obj 97 56 inlet; +#X obj 262 53 inlet; +#X obj 339 55 inlet; +#X obj 405 56 inlet; +#X obj 97 270 bang; +#X msg 77 295 0; +#X msg 104 295 1; +#X obj 146 268 bang; +#X msg 132 295 0; +#X msg 160 295 1; +#X obj 265 313 spigot; +#X obj 312 313 spigot; +#X obj 249 385 outlet; +#X text 93 33 select; +#X text 267 28 red; +#X text 337 30 green; +#X text 409 30 blue; +#X obj 405 102 t b f; +#X obj 339 160 +; +#X obj 339 185 t b f; +#X obj 339 216 +; +#X obj 296 385 outlet; +#X obj 28 180 loadbang; +#X obj 296 361 f; +#X obj 249 361 f; +#X obj 262 79 * -65536; +#X obj 339 80 * -256; +#X obj 405 80 * -1; +#X obj 339 247 - 1; +#X obj 97 135 route back label bang; +#X obj 235 168 t b b b; +#X connect 0 0 29 0; +#X connect 1 0 25 0; +#X connect 2 0 26 0; +#X connect 3 0 27 0; +#X connect 4 0 5 0; +#X connect 4 0 6 0; +#X connect 5 0 11 1; +#X connect 6 0 10 1; +#X connect 7 0 8 0; +#X connect 7 0 9 0; +#X connect 8 0 10 1; +#X connect 9 0 11 1; +#X connect 10 0 24 1; +#X connect 11 0 23 1; +#X connect 17 0 18 0; +#X connect 17 1 18 1; +#X connect 18 0 19 0; +#X connect 19 0 20 0; +#X connect 19 1 20 1; +#X connect 20 0 28 0; +#X connect 22 0 6 0; +#X connect 23 0 21 0; +#X connect 24 0 12 0; +#X connect 25 0 20 0; +#X connect 26 0 18 0; +#X connect 27 0 17 0; +#X connect 28 0 11 0; +#X connect 28 0 10 0; +#X connect 29 0 4 0; +#X connect 29 1 7 0; +#X connect 29 2 30 0; +#X connect 30 0 24 0; +#X connect 30 1 23 0; +#X connect 30 2 28 0; +#X restore 290 86 pd RGB_____________; +#X floatatom 332 55 3 0 255; +#X floatatom 375 55 3 0 255; +#X floatatom 418 56 3 0 255; +#X text 39 3 preset-colors; +#X text 301 0 RGB-colors; +#X text 332 37 red; +#X text 368 36 green; +#X text 416 36 blue; +#X obj 52 104 pack 0 0; +#X connect 0 0 4 0; +#X connect 1 0 0 0; +#X connect 2 0 0 1; +#X connect 3 0 4 1; +#X connect 4 0 30 0; +#X connect 7 0 11 0; +#X connect 8 0 7 0; +#X connect 9 0 7 1; +#X connect 10 0 11 1; +#X connect 11 0 33 0; +#X connect 12 0 16 0; +#X connect 13 0 12 0; +#X connect 14 0 12 1; +#X connect 15 0 16 1; +#X connect 16 0 34 0; +#X connect 21 0 25 0; +#X connect 22 0 21 0; +#X connect 23 0 21 1; +#X connect 24 0 25 1; +#X connect 25 0 31 0; +#X connect 28 0 38 0; +#X connect 39 0 43 0; +#X connect 40 0 39 0; +#X connect 41 0 39 1; +#X connect 42 0 43 1; +#X connect 43 0 46 0; +#X connect 48 0 66 0; +#X connect 49 0 48 0; +#X connect 50 0 48 1; +#X connect 51 0 66 1; +#X connect 54 0 57 0; +#X connect 55 0 57 0; +#X connect 56 0 57 0; +#X connect 57 0 66 0; +#X connect 57 1 66 1; +#X connect 58 0 57 1; +#X connect 59 0 57 2; +#X connect 60 0 57 3; +#X connect 66 0 29 0; +#X restore 313 188 pd edit; +#N canvas 147 336 290 278 source 0; +#X obj 40 95 random 102; +#X obj 40 171 - 101; +#X obj 40 205 pack 0 0; +#X obj 40 45 metro 300; +#X obj 40 69 t b b; +#X obj 133 95 random 20; +#X obj 40 117 t f f; +#X obj 91 147 +; +#X obj 91 172 - 101; +#X obj 40 21 inlet; +#X obj 40 230 outlet; +#X connect 0 0 6 0; +#X connect 1 0 2 0; +#X connect 2 0 10 0; +#X connect 3 0 4 0; +#X connect 4 0 0 0; +#X connect 4 1 5 0; +#X connect 5 0 7 1; +#X connect 6 0 1 0; +#X connect 6 1 7 0; +#X connect 7 0 8 0; +#X connect 8 0 2 1; +#X connect 9 0 3 0; +#X restore 99 62 pd source; +#X text 210 386 updated for Pd version 0.34; +#X obj 186 301 x_7_guis aaa bbb ccc ddd eee fff ggg; +#X obj 263 94 s fff; +#X connect 4 0 22 0; +#X connect 8 0 32 0; +#X connect 9 0 10 0; +#X connect 9 1 11 0; +#X connect 22 0 21 0; +#X connect 23 0 24 0; +#X connect 24 0 22 0; +#X connect 24 1 22 1; +#X connect 29 0 9 0; +#X connect 30 0 9 1; +#X connect 32 0 9 0; +#X connect 32 0 35 0; diff --git a/iemhelp/x_all_guis.pd b/iemhelp/x_all_guis.pd new file mode 100644 index 0000000..f6d3380 --- /dev/null +++ b/iemhelp/x_all_guis.pd @@ -0,0 +1,20 @@ +#N canvas 205 322 280 271 10; +#X obj 23 31 bng 15 250 50 532480 \$1 \$1 empty 20 8 192 8 -262144 +-1 -1; +#X obj 23 63 tgl 15 1.06496e+06 \$2 \$2 empty 20 8 192 8 -262144 -1 +-1 0 1; +#X obj 22 95 vsl 15 128 0 127 0 1.59744e+06 \$3 \$3 empty 20 8 192 +8 -262144 -1 -1 0 1; +#X obj 65 30 hsl 128 15 0 127 0 2.12992e+06 \$4 \$4 empty 20 8 192 +8 -262144 -1 -1 0 1; +#X obj 63 63 hdl 15 1 2.6624e+06 8 \$5 \$5 empty 20 8 192 8 -262144 +-1 -1 0; +#X obj 62 99 vu 15 120 \$6 empty 35 8 64 8 -66577 -1 1 49152; +#X obj 115 99 cnv 15 100 60 \$7 \$7 \$7 20 12 917696 14 -233017 -66577 +3.72736e+06; +#X obj 41 308 inlet; +#X obj 41 334 outlet; +#X obj 227 30 vdl 15 1 4.79232e+06 8 \$9 \$9 empty 20 8 192 8 -262144 +-1 -1 0; +#X obj 116 176 nbx 5 14 -1e+37 1e+37 0 4.25984e+06 \$8 \$8 empty 45 +7 192 10 -262144 -1 -1 0; diff --git a/lib/iem_mp3.pd_linux b/lib/iem_mp3.pd_linux Binary files differnew file mode 100755 index 0000000..2315d74 --- /dev/null +++ b/lib/iem_mp3.pd_linux diff --git a/lib/iem_t3_lib.pd_linux b/lib/iem_t3_lib.pd_linux Binary files differnew file mode 100755 index 0000000..c7e74f1 --- /dev/null +++ b/lib/iem_t3_lib.pd_linux diff --git a/lib/iemlib1.pd_linux b/lib/iemlib1.pd_linux Binary files differnew file mode 100755 index 0000000..34a4a02 --- /dev/null +++ b/lib/iemlib1.pd_linux diff --git a/lib/iemlib2.pd_linux b/lib/iemlib2.pd_linux Binary files differnew file mode 100755 index 0000000..a8a13fd --- /dev/null +++ b/lib/iemlib2.pd_linux diff --git a/src/iem_mp3/iem_mp3.c b/src/iem_mp3/iem_mp3.c new file mode 100644 index 0000000..5b45515 --- /dev/null +++ b/src/iem_mp3/iem_mp3.c @@ -0,0 +1,35 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iem_mp3 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" + +static t_class *iem_mp3_class; + +static void *iem_mp3_new(void) +{ + t_object *x = (t_object *)pd_new(iem_mp3_class); + + return (x); +} + +void sigmp3play_setup(void); + +/* ------------------------ setup routine ------------------------- */ + +void iem_mp3_setup(void) +{ + iem_mp3_class = class_new(gensym("iem_mp3"), iem_mp3_new, 0, + sizeof(t_object), CLASS_NOINLET, 0); + + sigmp3play_setup(); + + post("iem_mp3 (R-1.15) library loaded!"); +} diff --git a/src/iem_mp3/iem_mp3.dsp b/src/iem_mp3/iem_mp3.dsp new file mode 100644 index 0000000..9fe129d --- /dev/null +++ b/src/iem_mp3/iem_mp3.dsp @@ -0,0 +1,85 @@ +# Microsoft Developer Studio Project File - Name="iem_mp3" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) External Target" 0x0106 + +CFG=iem_mp3 - Win32 Debug +!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "iem_mp3.mak". +!MESSAGE +!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "iem_mp3.mak" CFG="iem_mp3 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "iem_mp3 - Win32 Release" (basierend auf "Win32 (x86) External Target") +!MESSAGE "iem_mp3 - Win32 Debug" (basierend auf "Win32 (x86) External Target") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" + +!IF "$(CFG)" == "iem_mp3 - Win32 Release" + +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Cmd_Line "NMAKE /f makefile_win" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "makefile_win.exe" +# PROP BASE Bsc_Name "makefile_win.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Cmd_Line "NMAKE /f makefile_win" +# PROP Rebuild_Opt "/a" +# PROP Target_File "iem_mp3.exe" +# PROP Bsc_Name "iem_mp3.bsc" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "iem_mp3 - Win32 Debug" + +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Cmd_Line "NMAKE /f makefile_win" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "makefile_win.exe" +# PROP BASE Bsc_Name "makefile_win.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Cmd_Line "NMAKE /f makefile_win" +# PROP Rebuild_Opt "/a" +# PROP Target_File "iem_mp3.exe" +# PROP Bsc_Name "iem_mp3.bsc" +# PROP Target_Dir "" + +!ENDIF + +# Begin Target + +# Name "iem_mp3 - Win32 Release" +# Name "iem_mp3 - Win32 Debug" + +!IF "$(CFG)" == "iem_mp3 - Win32 Release" + +!ELSEIF "$(CFG)" == "iem_mp3 - Win32 Debug" + +!ENDIF + +# Begin Source File + +SOURCE=.\makefile_win +# End Source File +# End Target +# End Project diff --git a/src/iem_mp3/iem_mp3.dsw b/src/iem_mp3/iem_mp3.dsw new file mode 100644 index 0000000..f352ffa --- /dev/null +++ b/src/iem_mp3/iem_mp3.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "iem_mp3"=.\iem_mp3.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/src/iem_mp3/iemlib.h b/src/iem_mp3/iemlib.h new file mode 100644 index 0000000..d518565 --- /dev/null +++ b/src/iem_mp3/iemlib.h @@ -0,0 +1,98 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifndef __IEMLIB_H__ +#define __IEMLIB_H__ + + +#define IS_A_POINTER(atom,index) ((atom+index)->a_type == A_POINTER) +#define IS_A_FLOAT(atom,index) ((atom+index)->a_type == A_FLOAT) +#define IS_A_SYMBOL(atom,index) ((atom+index)->a_type == A_SYMBOL) +#define IS_A_DOLLAR(atom,index) ((atom+index)->a_type == A_DOLLAR) +#define IS_A_DOLLSYM(atom,index) ((atom+index)->a_type == A_DOLLSYM) +#define IS_A_SEMI(atom,index) ((atom+index)->a_type == A_SEMI) +#define IS_A_COMMA(atom,index) ((atom+index)->a_type == A_COMMA) + + +#ifdef NT +int sys_noloadbang; +//t_symbol *iemgui_key_sym=0; +#include <io.h> +#else +extern int sys_noloadbang; +//extern t_symbol *iemgui_key_sym; +#include <unistd.h> +#endif + +#define DEFDELVS 64 +#define XTRASAMPS 4 +#define SAMPBLK 4 + + +#define UNITBIT32 1572864. /* 3*2^19; bit 32 has place value 1 */ + + /* machine-dependent definitions. These ifdefs really + should have been by CPU type and not by operating system! */ +#ifdef IRIX + /* big-endian. Most significant byte is at low address in memory */ +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#define int32 long /* a data type that has 32 bits */ +#else +#ifdef MSW + /* little-endian; most significant byte is at highest address */ +#define HIOFFSET 1 +#define LOWOFFSET 0 +#define int32 long +#else +#ifdef __FreeBSD__ +#include <machine/endian.h> +#if BYTE_ORDER == LITTLE_ENDIAN +#define HIOFFSET 1 +#define LOWOFFSET 0 +#else +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#endif /* BYTE_ORDER */ +#include <sys/types.h> +#define int32 int32_t +#endif +#ifdef __linux__ + +#include <endian.h> + +#if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) +#error No byte order defined +#endif + +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define HIOFFSET 1 +#define LOWOFFSET 0 +#else +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#endif /* __BYTE_ORDER */ + +#include <sys/types.h> +#define int32 int32_t + +#else +#ifdef MACOSX +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#define int32 int /* a data type that has 32 bits */ + +#endif /* MACOSX */ +#endif /* __linux__ */ +#endif /* MSW */ +#endif /* SGI */ + +union tabfudge +{ + double tf_d; + int32 tf_i[2]; +}; + +#endif diff --git a/src/iem_mp3/makefile b/src/iem_mp3/makefile new file mode 100644 index 0000000..601a96f --- /dev/null +++ b/src/iem_mp3/makefile @@ -0,0 +1,50 @@ +current: all + +.SUFFIXES: .pd_linux + +INCLUDE = -I. -I/usr/local/src/pd-0.36-0/src + +LDFLAGS = -export-dynamic -shared +LIB = -ldl -lm -lpthread + +#select either the DBG and OPT compiler flags below: + +CFLAGS = -DPD -DUNIX -Wall -W -Werror -Wno-unused \ + -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer \ + -DDL_OPEN + +SYSTEM = $(shell uname -m) + +# the sources + +SRC = sigmp3play.c \ + iem_mp3.c + +TARGET = iem_mp3.pd_linux + + +OBJ = $(SRC:.c=.o) + +# +# ------------------ targets ------------------------------------ +# + +clean: + rm ../../lib/$(TARGET) + rm *.o + +all: $(OBJ) + + @echo :: $(OBJ) + + ld $(LDFLAGS) -o $(TARGET) *.o $(LIB) + strip --strip-unneeded $(TARGET) + mv $(TARGET) ../../lib + rm *.o + +$(OBJ) : %.o : %.c + touch $*.c + cc $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c + + + diff --git a/src/iem_mp3/makefile_win b/src/iem_mp3/makefile_win new file mode 100644 index 0000000..d6b7fa1 --- /dev/null +++ b/src/iem_mp3/makefile_win @@ -0,0 +1,38 @@ + +all: ..\..\lib\iem_mp3.dll + +VIS_CPP_PATH = "C:\Programme\Microsoft Visual Studio\Vc98" + +PD_INST_PATH = "C:\Programme\pd" + +PD_WIN_INCLUDE_PATH = /I. /I$(PD_INST_PATH)\src /I$(VIS_CPP_PATH)\include + +PD_WIN_C_FLAGS = /nologo /W3 /WX /DMSW /DNT /DPD /DWIN32 /DWINDOWS /Ox -DPA_LITTLE_ENDIAN + +PD_WIN_L_FLAGS = /nologo + +PD_WIN_LIB = /NODEFAULTLIB:libc /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel /NODEFAULTLIB:uuid \ + $(VIS_CPP_PATH)\lib\libc.lib \ + $(VIS_CPP_PATH)\lib\oldnames.lib \ + $(VIS_CPP_PATH)\lib\kernel32.lib \ + $(VIS_CPP_PATH)\lib\wsock32.lib \ + $(VIS_CPP_PATH)\lib\winmm.lib \ + $(PD_INST_PATH)\bin\pthreadVC.lib \ + $(PD_INST_PATH)\bin\pd.lib + + +SRC = sigmp3play.c \ + iem_mp3.c + + +OBJ = $(SRC:.c=.obj) + +.c.obj: + cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c + +..\..\lib\iem_mp3.dll: $(OBJ) + link $(PD_WIN_L_FLAGS) /dll /export:iem_mp3_setup \ + /out:..\..\lib\iem_mp3.dll $(OBJ) $(PD_WIN_LIB) + +clean: + del *.obj diff --git a/src/iem_mp3/sigmp3play.c b/src/iem_mp3/sigmp3play.c new file mode 100644 index 0000000..1a1204d --- /dev/null +++ b/src/iem_mp3/sigmp3play.c @@ -0,0 +1,3865 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iem_mp3 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +/* + sigmp3play.c - Mpeg Layer III Player for PD + Version:0.1 + 05-18-2000 + written by Thomas Musil (musil@iem.kug.ac.at), Norbert Math (math@iem.kug.ac.at) + IEM Graz + + debugged for windows 013-03-2003 + + This MPEG Player is based on the mpglib 0.2 by Michael Hipp which comes with mpg123-0.59r + + please see the README file for copyright notices! + + */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <ctype.h> +#include <stdlib.h> +#include <stdio.h> +#include <string.h> +#include <signal.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> +#include <math.h> + +#ifndef NT +#include <sys/signal.h> +#include <unistd.h> +#endif + + +#define IEM_MPEG1 + +#ifdef _WIN32 +# undef WIN32 +# define WIN32 + +# define M_PI 3.14159265358979323846 +# define M_SQRT2 1.41421356237309504880 +# define REAL_IS_FLOAT +# define NEW_DCT9 + +# define random rand +# define srandom srand + +#endif + +#ifdef REAL_IS_FLOAT +# define real float +#elif defined(REAL_IS_LONG_DOUBLE) +# define real long double +#else +# define real double +#endif + +#ifdef __GNUC__ +#define INLINE inline +#else +#define INLINE +#endif + +/* AUDIOBUFSIZE = n*64 with n=1,2,3 ... */ +#define AUDIOBUFSIZE 16384 + +#define FALSE 0 +#define TRUE 1 +#define SBLIMIT 32 +#define SSLIMIT 18 +#define MPG_MD_STEREO 0 +#define MPG_MD_JOINT_STEREO 1 +#define MPG_MD_DUAL_CHANNEL 2 +#define MPG_MD_MONO 3 + +#define MAXFRAMESIZE 1792 +/* Pre Shift fo 16 to 8 bit converter table */ +#define AUSHIFT (3) +#define BOOL int +#define MP3_EX -2 +#define MP3_ERR -1 +#define MP3_OK 0 +#define MP3_NEED_MORE 1 + +#define WRITE_SAMPLE(samples,sum,clip) \ + if( (sum) > 32767.0) { *(samples) = 0x7fff; (clip)++; } \ + else if( (sum) < -32768.0) { *(samples) = -0x8000; (clip)++; } \ + else { *(samples) = sum; } + + +#define HDRCMPMASK 0xfffffd00 + + +#define MY_MP3_MALLOC_IN_SIZE 16384 +#define MY_MP3_MALLOC_IN_SIZE2 8192 +#define MY_MP3_MALLOC_OUT_SIZE 65536 +#define MY_MP3_MALLOC_FN 400 +#define MY_MP3_CHSAMP_PER_FRAME 1152 + +struct iemmp3_frame +{ + int stereo; + int jsbound; + int single; + int lsf; + int mpeg25; + int header_change; + int lay; + int error_protection; + int bitrate_index; + int sampling_frequency; + int padding; + int extension; + int mode; + int mode_ext; + int copyright; + int original; + int emphasis; + int framesize; /* computed framesize */ +}; + +struct iemmp3_gr_info_s +{ + int scfsi; + unsigned part2_3_length; + unsigned big_values; + unsigned scalefac_compress; + unsigned block_type; + unsigned mixed_block_flag; + unsigned table_select[3]; + unsigned subblock_gain[3]; + unsigned maxband[3]; + unsigned maxbandl; + unsigned maxb; + unsigned region1start; + unsigned region2start; + unsigned preflag; + unsigned scalefac_scale; + unsigned count1table_select; + real *full_gain[3]; + real *pow2gain; +}; + +struct iemmp3_III_sideinfo +{ + unsigned main_data_begin; + unsigned private_bits; + struct + { + struct iemmp3_gr_info_s gr[2]; + } ch[2]; +}; + +struct iemmp3_buf +{ + unsigned char *pnt; + long size; + long pos; + struct iemmp3_buf *next; + struct iemmp3_buf *prev; +}; + +struct iemmp3Struct +{ + struct iemmp3_buf *head,*tail; + int bsize; + int framesize; + int fsizeold; + struct iemmp3_frame fr; + unsigned char bsspace[2][MAXFRAMESIZE+512]; /* MAXFRAMESIZE */ + real hybrid_block[2][2][SBLIMIT*SSLIMIT]; + int hybrid_blc[2]; + unsigned long header; + int bsnum; + real synth_buffs[2][2][0x110]; + int synth_bo; +}; + +struct iemmp3_bandInfoStruct +{ + short longIdx[23]; + short longDiff[22]; + short shortIdx[14]; + short shortDiff[13]; +}; + +struct iemmp3_newHuff +{ + unsigned int linbits; + short *table; +}; + + +typedef struct _sigmp3play +{ + t_object x_obj; + float length_sec; + int samp_per_frame; + int frame_counter; + int time1_bang0_handle; + float time_factor; + int *begframeseek; + int curframeseek; + int maxframeseek; + char *filename; + float offset_sec; + int file_is_open; + int play_state; + int mp3_encode_size; + int mp3_out_index; + int file_size; + int file_block_num; + int file_remain; + int mp_is_init; + int mp3_ch; + int mp3_sr; + int mp3_byterate; + int obj_sr; + int obj_n; + int down; + float scale; + FILE *fh; + char *mp3inbuf; + char *mp3outbuf; + struct iemmp3Struct mp; + t_clock *x_clock; + t_outlet *x_bangout; + t_outlet *x_floatout; + t_canvas *x_canvas; +} t_sigmp3play; + + + +static BOOL InitMP3 (struct iemmp3Struct *mp); +static BOOL InitAgainMP3(struct iemmp3Struct *mp); +static void ExitMP3 (struct iemmp3Struct *mp); +static int decodeMP3 (struct iemmp3Struct *mp, char *in, int isize, char *out, int osize, int *done); +static void make_decode_tables (long scaleval); +static void init_layer3 (int down_sample_sblimit); +static int decode_header (struct iemmp3_frame *fr,unsigned long newhead); +static int do_layer3(struct iemmp3_frame *fr,unsigned char *pcm_sample,int *pcm_point,int *err); +static int set_pointer(long backstep); +static int synth_1to1_mono(real *bandPtr,unsigned char *samples,int *pnt); +static int synth_1to1(real *bandPtr,int channel,unsigned char *out,int *pnt); +static struct iemmp3_buf *addbuf(struct iemmp3Struct *mp,char *buf,int size); +static void remove_buf(struct iemmp3Struct *mp); +static int read_head(struct iemmp3Struct *mp); +static int read_buf_byte(struct iemmp3Struct *mp,int *err); +static int III_get_side_info_2(struct iemmp3_III_sideinfo *si,int stereo, int ms_stereo,long sfreq,int single); +#ifdef IEM_MPEG1 +static int III_get_side_info_1(struct iemmp3_III_sideinfo *si,int stereo,int ms_stereo,long sfreq,int single); +static int III_get_scale_factors_1(int *scf,struct iemmp3_gr_info_s *gr_info); +#endif +static int III_get_scale_factors_2(int *scf,struct iemmp3_gr_info_s *gr_info,int i_stereo); +static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf,struct iemmp3_gr_info_s *gr_info,int sfreq,int part2bits); +static void III_i_stereo(real xr_buf[2][SBLIMIT][SSLIMIT],int *scalefac,struct iemmp3_gr_info_s *gr_info,int sfreq,int ms_stereo,int lsf); +static void III_antialias(real xr[SBLIMIT][SSLIMIT],struct iemmp3_gr_info_s *gr_info); +static void III_hybrid(real fsIn[SBLIMIT][SSLIMIT],real tsOut[SSLIMIT][SBLIMIT],int ch,struct iemmp3_gr_info_s *gr_info); +static void dct64(real *a,real *b,real *c); +static void dct64_1(real *out0,real *out1,real *b1,real *b2,real *samples); +static void dct36(real *inbuf,real *o1,real *o2,real *wintab,real *tsbuf); +static void dct12(real *in,real *rawout1,real *rawout2,register real *wi,register real *ts); +static unsigned int getbits(int number_of_bits); +static unsigned int getbits_fast(int number_of_bits); +static unsigned int get1bit(void); + +static void sigmp3play_tick(t_sigmp3play *x); + + +struct iemmp3Struct *iemmp3_gmp; + +int iemmp3_tabsel_123[2][3][16] = { + { {0,32,64,96,128,160,192,224,256,288,320,352,384,416,448,}, + {0,32,48,56, 64, 80, 96,112,128,160,192,224,256,320,384,}, + {0,32,40,48, 56, 64, 80, 96,112,128,160,192,224,256,320,} }, + + { {0,32,48,56,64,80,96,112,128,144,160,176,192,224,256,}, + {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,}, + {0,8,16,24,32,40,48,56,64,80,96,112,128,144,160,} } +}; + +long iemmp3_freqs[9] = { 44100, 48000, 32000, +22050, 24000, 16000 , +11025 , 12000 , 8000 }; + +int iemmp3_bitindex; +unsigned char *iemmp3_wordpointer; + +static real iemmp3_ispow[8207]; +static real iemmp3_aa_ca[8],iemmp3_aa_cs[8]; +static real iemmp3_COS1[12][6]; +static real iemmp3_win[4][36]; +static real iemmp3_win1[4][36]; +static real iemmp3_gainpow2[256+118+4]; +static real iemmp3_COS9[9]; +static real iemmp3_COS6_1,iemmp3_COS6_2; +static real iemmp3_tfcos36[9]; +static real iemmp3_tfcos12[3]; + +int iemmp3_longLimit[9][23]; +int iemmp3_shortLimit[9][14]; + +struct iemmp3_bandInfoStruct bandInfo[9] = { + + /* MPEG 1.0 */ + { {0,4,8,12,16,20,24,30,36,44,52,62,74, 90,110,134,162,196,238,288,342,418,576}, + {4,4,4,4,4,4,6,6,8, 8,10,12,16,20,24,28,34,42,50,54, 76,158}, + {0,4*3,8*3,12*3,16*3,22*3,30*3,40*3,52*3,66*3, 84*3,106*3,136*3,192*3}, + {4,4,4,4,6,8,10,12,14,18,22,30,56} } , + + { {0,4,8,12,16,20,24,30,36,42,50,60,72, 88,106,128,156,190,230,276,330,384,576}, + {4,4,4,4,4,4,6,6,6, 8,10,12,16,18,22,28,34,40,46,54, 54,192}, + {0,4*3,8*3,12*3,16*3,22*3,28*3,38*3,50*3,64*3, 80*3,100*3,126*3,192*3}, + {4,4,4,4,6,6,10,12,14,16,20,26,66} } , + + { {0,4,8,12,16,20,24,30,36,44,54,66,82,102,126,156,194,240,296,364,448,550,576} , + {4,4,4,4,4,4,6,6,8,10,12,16,20,24,30,38,46,56,68,84,102, 26} , + {0,4*3,8*3,12*3,16*3,22*3,30*3,42*3,58*3,78*3,104*3,138*3,180*3,192*3} , + {4,4,4,4,6,8,12,16,20,26,34,42,12} } , + + /* MPEG 2.0 */ + { {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576}, + {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54 } , + {0,4*3,8*3,12*3,18*3,24*3,32*3,42*3,56*3,74*3,100*3,132*3,174*3,192*3} , + {4,4,4,6,6,8,10,14,18,26,32,42,18 } } , + + { {0,6,12,18,24,30,36,44,54,66,80,96,114,136,162,194,232,278,330,394,464,540,576}, + {6,6,6,6,6,6,8,10,12,14,16,18,22,26,32,38,46,52,64,70,76,36 } , + {0,4*3,8*3,12*3,18*3,26*3,36*3,48*3,62*3,80*3,104*3,136*3,180*3,192*3} , + {4,4,4,6,8,10,12,14,18,24,32,44,12 } } , + + { {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576}, + {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54 }, + {0,4*3,8*3,12*3,18*3,26*3,36*3,48*3,62*3,80*3,104*3,134*3,174*3,192*3}, + {4,4,4,6,8,10,12,14,18,24,30,40,18 } } , + /* MPEG 2.5 */ + { {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576} , + {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54}, + {0,12,24,36,54,78,108,144,186,240,312,402,522,576}, + {4,4,4,6,8,10,12,14,18,24,30,40,18} }, + { {0,6,12,18,24,30,36,44,54,66,80,96,116,140,168,200,238,284,336,396,464,522,576} , + {6,6,6,6,6,6,8,10,12,14,16,20,24,28,32,38,46,52,60,68,58,54}, + {0,12,24,36,54,78,108,144,186,240,312,402,522,576}, + {4,4,4,6,8,10,12,14,18,24,30,40,18} }, + { {0,12,24,36,48,60,72,88,108,132,160,192,232,280,336,400,476,566,568,570,572,574,576}, + {12,12,12,12,12,12,16,20,24,28,32,40,48,56,64,76,90,2,2,2,2,2}, + {0, 24, 48, 72,108,156,216,288,372,480,486,492,498,576}, + {8,8,8,12,16,20,24,28,36,2,2,2,26} } , +}; + +static int iemmp3_mapbuf0[9][152]; +static int iemmp3_mapbuf1[9][156]; +static int iemmp3_mapbuf2[9][44]; +static int *iemmp3_map[9][3]; +static int *iemmp3_mapend[9][3]; + +static unsigned int iemmp3_n_slen2[512]; /* MPEG 2.0 slen for 'normal' mode */ +static unsigned int iemmp3_slen2[256]; /* MPEG 2.0 slen for intensity stereo */ + +static real iemmp3_tan1_1[16],iemmp3_tan2_1[16],iemmp3_tan1_2[16],iemmp3_tan2_2[16]; +static real iemmp3_pow1_1[2][16],iemmp3_pow2_1[2][16],iemmp3_pow1_2[2][16],iemmp3_pow2_2[2][16]; + +static int iemmp3_pretab1[22] = {0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,3,3,3,2,0}; +static int iemmp3_pretab2[22] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}; + +real iemmp3_decwin[512+32]; +static real iemmp3_cos64[16],iemmp3_cos32[8],iemmp3_cos16[4],iemmp3_cos8[2],iemmp3_cos4[1]; +real *iemmp3_pnts[] = { iemmp3_cos64,iemmp3_cos32,iemmp3_cos16,iemmp3_cos8,iemmp3_cos4 }; + +static long iemmp3_intwinbase[] = { + 0, -1, -1, -1, -1, -1, -1, -2, -2, -2, + -2, -3, -3, -4, -4, -5, -5, -6, -7, -7, + -8, -9, -10, -11, -13, -14, -16, -17, -19, -21, + -24, -26, -29, -31, -35, -38, -41, -45, -49, -53, + -58, -63, -68, -73, -79, -85, -91, -97, -104, -111, + -117, -125, -132, -139, -147, -154, -161, -169, -176, -183, + -190, -196, -202, -208, -213, -218, -222, -225, -227, -228, + -228, -227, -224, -221, -215, -208, -200, -189, -177, -163, + -146, -127, -106, -83, -57, -29, 2, 36, 72, 111, + 153, 197, 244, 294, 347, 401, 459, 519, 581, 645, + 711, 779, 848, 919, 991, 1064, 1137, 1210, 1283, 1356, + 1428, 1498, 1567, 1634, 1698, 1759, 1817, 1870, 1919, 1962, + 2001, 2032, 2057, 2075, 2085, 2087, 2080, 2063, 2037, 2000, + 1952, 1893, 1822, 1739, 1644, 1535, 1414, 1280, 1131, 970, + 794, 605, 402, 185, -45, -288, -545, -814, -1095, -1388, + -1692, -2006, -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788, + -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597, -7910, -8209, + -8491, -8755, -8998, -9219, -9416, -9585, -9727, -9838, -9916, -9959, + -9966, -9935, -9863, -9750, -9592, -9389, -9139, -8840, -8492, -8092, + -7640, -7134, -6574, -5959, -5288, -4561, -3776, -2935, -2037, -1082, + -70, 998, 2122, 3300, 4533, 5818, 7154, 8540, 9975, 11455, + 12980, 14548, 16155, 17799, 19478, 21189, 22929, 24694, 26482, 28289, + 30112, 31947, 33791, 35640, 37489, 39336, 41176, 43006, 44821, 46617, + 48390, 50137, 51853, 53534, 55178, 56778, 58333, 59838, 61289, 62684, + 64019, 65290, 66494, 67629, 68692, 69679, 70590, 71420, 72169, 72835, + 73415, 73908, 74313, 74630, 74856, 74992, 75038 }; + +static short iemmp3_tab0[] = +{ + 0 +}; + +static short iemmp3_tab1[] = +{ + -5, -3, -1, 17, 1, 16, 0 +}; + +static short iemmp3_tab2[] = +{ + -15, -11, -9, -5, -3, -1, 34, 2, 18, -1, 33, 32, 17, -1, 1, + 16, 0 +}; + +static short iemmp3_tab3[] = +{ + -13, -11, -9, -5, -3, -1, 34, 2, 18, -1, 33, 32, 16, 17, -1, + 1, 0 +}; + +static short iemmp3_tab5[] = +{ + -29, -25, -23, -15, -7, -5, -3, -1, 51, 35, 50, 49, -3, -1, 19, + 3, -1, 48, 34, -3, -1, 18, 33, -1, 2, 32, 17, -1, 1, 16, + 0 +}; + +static short iemmp3_tab6[] = +{ + -25, -19, -13, -9, -5, -3, -1, 51, 3, 35, -1, 50, 48, -1, 19, + 49, -3, -1, 34, 2, 18, -3, -1, 33, 32, 1, -1, 17, -1, 16, + 0 +}; + +static short iemmp3_tab7[] = +{ + -69, -65, -57, -39, -29, -17, -11, -7, -3, -1, 85, 69, -1, 84, 83, + -1, 53, 68, -3, -1, 37, 82, 21, -5, -1, 81, -1, 5, 52, -1, + 80, -1, 67, 51, -5, -3, -1, 36, 66, 20, -1, 65, 64, -11, -7, + -3, -1, 4, 35, -1, 50, 3, -1, 19, 49, -3, -1, 48, 34, 18, + -5, -1, 33, -1, 2, 32, 17, -1, 1, 16, 0 +}; + +static short iemmp3_tab8[] = +{ + -65, -63, -59, -45, -31, -19, -13, -7, -5, -3, -1, 85, 84, 69, 83, + -3, -1, 53, 68, 37, -3, -1, 82, 5, 21, -5, -1, 81, -1, 52, + 67, -3, -1, 80, 51, 36, -5, -3, -1, 66, 20, 65, -3, -1, 4, + 64, -1, 35, 50, -9, -7, -3, -1, 19, 49, -1, 3, 48, 34, -1, + 2, 32, -1, 18, 33, 17, -3, -1, 1, 16, 0 +}; + +static short iemmp3_tab9[] = +{ + -63, -53, -41, -29, -19, -11, -5, -3, -1, 85, 69, 53, -1, 83, -1, + 84, 5, -3, -1, 68, 37, -1, 82, 21, -3, -1, 81, 52, -1, 67, + -1, 80, 4, -7, -3, -1, 36, 66, -1, 51, 64, -1, 20, 65, -5, + -3, -1, 35, 50, 19, -1, 49, -1, 3, 48, -5, -3, -1, 34, 2, + 18, -1, 33, 32, -3, -1, 17, 1, -1, 16, 0 +}; + +static short iemmp3_tab10[] = +{ + -125,-121,-111, -83, -55, -35, -21, -13, -7, -3, -1, 119, 103, -1, 118, + 87, -3, -1, 117, 102, 71, -3, -1, 116, 86, -1, 101, 55, -9, -3, + -1, 115, 70, -3, -1, 85, 84, 99, -1, 39, 114, -11, -5, -3, -1, + 100, 7, 112, -1, 98, -1, 69, 53, -5, -1, 6, -1, 83, 68, 23, + -17, -5, -1, 113, -1, 54, 38, -5, -3, -1, 37, 82, 21, -1, 81, + -1, 52, 67, -3, -1, 22, 97, -1, 96, -1, 5, 80, -19, -11, -7, + -3, -1, 36, 66, -1, 51, 4, -1, 20, 65, -3, -1, 64, 35, -1, + 50, 3, -3, -1, 19, 49, -1, 48, 34, -7, -3, -1, 18, 33, -1, + 2, 32, 17, -1, 1, 16, 0 +}; + +static short iemmp3_tab11[] = +{ + -121,-113, -89, -59, -43, -27, -17, -7, -3, -1, 119, 103, -1, 118, 117, + -3, -1, 102, 71, -1, 116, -1, 87, 85, -5, -3, -1, 86, 101, 55, + -1, 115, 70, -9, -7, -3, -1, 69, 84, -1, 53, 83, 39, -1, 114, + -1, 100, 7, -5, -1, 113, -1, 23, 112, -3, -1, 54, 99, -1, 96, + -1, 68, 37, -13, -7, -5, -3, -1, 82, 5, 21, 98, -3, -1, 38, + 6, 22, -5, -1, 97, -1, 81, 52, -5, -1, 80, -1, 67, 51, -1, + 36, 66, -15, -11, -7, -3, -1, 20, 65, -1, 4, 64, -1, 35, 50, + -1, 19, 49, -5, -3, -1, 3, 48, 34, 33, -5, -1, 18, -1, 2, + 32, 17, -3, -1, 1, 16, 0 +}; + +static short iemmp3_tab12[] = +{ + -115, -99, -73, -45, -27, -17, -9, -5, -3, -1, 119, 103, 118, -1, 87, + 117, -3, -1, 102, 71, -1, 116, 101, -3, -1, 86, 55, -3, -1, 115, + 85, 39, -7, -3, -1, 114, 70, -1, 100, 23, -5, -1, 113, -1, 7, + 112, -1, 54, 99, -13, -9, -3, -1, 69, 84, -1, 68, -1, 6, 5, + -1, 38, 98, -5, -1, 97, -1, 22, 96, -3, -1, 53, 83, -1, 37, + 82, -17, -7, -3, -1, 21, 81, -1, 52, 67, -5, -3, -1, 80, 4, + 36, -1, 66, 20, -3, -1, 51, 65, -1, 35, 50, -11, -7, -5, -3, + -1, 64, 3, 48, 19, -1, 49, 34, -1, 18, 33, -7, -5, -3, -1, + 2, 32, 0, 17, -1, 1, 16 +}; + +static short iemmp3_tab13[] = +{ + -509,-503,-475,-405,-333,-265,-205,-153,-115, -83, -53, -35, -21, -13, -9, + -7, -5, -3, -1, 254, 252, 253, 237, 255, -1, 239, 223, -3, -1, 238, + 207, -1, 222, 191, -9, -3, -1, 251, 206, -1, 220, -1, 175, 233, -1, + 236, 221, -9, -5, -3, -1, 250, 205, 190, -1, 235, 159, -3, -1, 249, + 234, -1, 189, 219, -17, -9, -3, -1, 143, 248, -1, 204, -1, 174, 158, + -5, -1, 142, -1, 127, 126, 247, -5, -1, 218, -1, 173, 188, -3, -1, + 203, 246, 111, -15, -7, -3, -1, 232, 95, -1, 157, 217, -3, -1, 245, + 231, -1, 172, 187, -9, -3, -1, 79, 244, -3, -1, 202, 230, 243, -1, + 63, -1, 141, 216, -21, -9, -3, -1, 47, 242, -3, -1, 110, 156, 15, + -5, -3, -1, 201, 94, 171, -3, -1, 125, 215, 78, -11, -5, -3, -1, + 200, 214, 62, -1, 185, -1, 155, 170, -1, 31, 241, -23, -13, -5, -1, + 240, -1, 186, 229, -3, -1, 228, 140, -1, 109, 227, -5, -1, 226, -1, + 46, 14, -1, 30, 225, -15, -7, -3, -1, 224, 93, -1, 213, 124, -3, + -1, 199, 77, -1, 139, 184, -7, -3, -1, 212, 154, -1, 169, 108, -1, + 198, 61, -37, -21, -9, -5, -3, -1, 211, 123, 45, -1, 210, 29, -5, + -1, 183, -1, 92, 197, -3, -1, 153, 122, 195, -7, -5, -3, -1, 167, + 151, 75, 209, -3, -1, 13, 208, -1, 138, 168, -11, -7, -3, -1, 76, + 196, -1, 107, 182, -1, 60, 44, -3, -1, 194, 91, -3, -1, 181, 137, + 28, -43, -23, -11, -5, -1, 193, -1, 152, 12, -1, 192, -1, 180, 106, + -5, -3, -1, 166, 121, 59, -1, 179, -1, 136, 90, -11, -5, -1, 43, + -1, 165, 105, -1, 164, -1, 120, 135, -5, -1, 148, -1, 119, 118, 178, + -11, -3, -1, 27, 177, -3, -1, 11, 176, -1, 150, 74, -7, -3, -1, + 58, 163, -1, 89, 149, -1, 42, 162, -47, -23, -9, -3, -1, 26, 161, + -3, -1, 10, 104, 160, -5, -3, -1, 134, 73, 147, -3, -1, 57, 88, + -1, 133, 103, -9, -3, -1, 41, 146, -3, -1, 87, 117, 56, -5, -1, + 131, -1, 102, 71, -3, -1, 116, 86, -1, 101, 115, -11, -3, -1, 25, + 145, -3, -1, 9, 144, -1, 72, 132, -7, -5, -1, 114, -1, 70, 100, + 40, -1, 130, 24, -41, -27, -11, -5, -3, -1, 55, 39, 23, -1, 113, + -1, 85, 7, -7, -3, -1, 112, 54, -1, 99, 69, -3, -1, 84, 38, + -1, 98, 53, -5, -1, 129, -1, 8, 128, -3, -1, 22, 97, -1, 6, + 96, -13, -9, -5, -3, -1, 83, 68, 37, -1, 82, 5, -1, 21, 81, + -7, -3, -1, 52, 67, -1, 80, 36, -3, -1, 66, 51, 20, -19, -11, + -5, -1, 65, -1, 4, 64, -3, -1, 35, 50, 19, -3, -1, 49, 3, + -1, 48, 34, -3, -1, 18, 33, -1, 2, 32, -3, -1, 17, 1, 16, + 0 +}; + +static short iemmp3_tab15[] = +{ + -495,-445,-355,-263,-183,-115, -77, -43, -27, -13, -7, -3, -1, 255, 239, + -1, 254, 223, -1, 238, -1, 253, 207, -7, -3, -1, 252, 222, -1, 237, + 191, -1, 251, -1, 206, 236, -7, -3, -1, 221, 175, -1, 250, 190, -3, + -1, 235, 205, -1, 220, 159, -15, -7, -3, -1, 249, 234, -1, 189, 219, + -3, -1, 143, 248, -1, 204, 158, -7, -3, -1, 233, 127, -1, 247, 173, + -3, -1, 218, 188, -1, 111, -1, 174, 15, -19, -11, -3, -1, 203, 246, + -3, -1, 142, 232, -1, 95, 157, -3, -1, 245, 126, -1, 231, 172, -9, + -3, -1, 202, 187, -3, -1, 217, 141, 79, -3, -1, 244, 63, -1, 243, + 216, -33, -17, -9, -3, -1, 230, 47, -1, 242, -1, 110, 240, -3, -1, + 31, 241, -1, 156, 201, -7, -3, -1, 94, 171, -1, 186, 229, -3, -1, + 125, 215, -1, 78, 228, -15, -7, -3, -1, 140, 200, -1, 62, 109, -3, + -1, 214, 227, -1, 155, 185, -7, -3, -1, 46, 170, -1, 226, 30, -5, + -1, 225, -1, 14, 224, -1, 93, 213, -45, -25, -13, -7, -3, -1, 124, + 199, -1, 77, 139, -1, 212, -1, 184, 154, -7, -3, -1, 169, 108, -1, + 198, 61, -1, 211, 210, -9, -5, -3, -1, 45, 13, 29, -1, 123, 183, + -5, -1, 209, -1, 92, 208, -1, 197, 138, -17, -7, -3, -1, 168, 76, + -1, 196, 107, -5, -1, 182, -1, 153, 12, -1, 60, 195, -9, -3, -1, + 122, 167, -1, 166, -1, 192, 11, -1, 194, -1, 44, 91, -55, -29, -15, + -7, -3, -1, 181, 28, -1, 137, 152, -3, -1, 193, 75, -1, 180, 106, + -5, -3, -1, 59, 121, 179, -3, -1, 151, 136, -1, 43, 90, -11, -5, + -1, 178, -1, 165, 27, -1, 177, -1, 176, 105, -7, -3, -1, 150, 74, + -1, 164, 120, -3, -1, 135, 58, 163, -17, -7, -3, -1, 89, 149, -1, + 42, 162, -3, -1, 26, 161, -3, -1, 10, 160, 104, -7, -3, -1, 134, + 73, -1, 148, 57, -5, -1, 147, -1, 119, 9, -1, 88, 133, -53, -29, + -13, -7, -3, -1, 41, 103, -1, 118, 146, -1, 145, -1, 25, 144, -7, + -3, -1, 72, 132, -1, 87, 117, -3, -1, 56, 131, -1, 102, 71, -7, + -3, -1, 40, 130, -1, 24, 129, -7, -3, -1, 116, 8, -1, 128, 86, + -3, -1, 101, 55, -1, 115, 70, -17, -7, -3, -1, 39, 114, -1, 100, + 23, -3, -1, 85, 113, -3, -1, 7, 112, 54, -7, -3, -1, 99, 69, + -1, 84, 38, -3, -1, 98, 22, -3, -1, 6, 96, 53, -33, -19, -9, + -5, -1, 97, -1, 83, 68, -1, 37, 82, -3, -1, 21, 81, -3, -1, + 5, 80, 52, -7, -3, -1, 67, 36, -1, 66, 51, -1, 65, -1, 20, + 4, -9, -3, -1, 35, 50, -3, -1, 64, 3, 19, -3, -1, 49, 48, + 34, -9, -7, -3, -1, 18, 33, -1, 2, 32, 17, -3, -1, 1, 16, + 0 +}; + +static short iemmp3_tab16[] = +{ + -509,-503,-461,-323,-103, -37, -27, -15, -7, -3, -1, 239, 254, -1, 223, + 253, -3, -1, 207, 252, -1, 191, 251, -5, -1, 175, -1, 250, 159, -3, + -1, 249, 248, 143, -7, -3, -1, 127, 247, -1, 111, 246, 255, -9, -5, + -3, -1, 95, 245, 79, -1, 244, 243, -53, -1, 240, -1, 63, -29, -19, + -13, -7, -5, -1, 206, -1, 236, 221, 222, -1, 233, -1, 234, 217, -1, + 238, -1, 237, 235, -3, -1, 190, 205, -3, -1, 220, 219, 174, -11, -5, + -1, 204, -1, 173, 218, -3, -1, 126, 172, 202, -5, -3, -1, 201, 125, + 94, 189, 242, -93, -5, -3, -1, 47, 15, 31, -1, 241, -49, -25, -13, + -5, -1, 158, -1, 188, 203, -3, -1, 142, 232, -1, 157, 231, -7, -3, + -1, 187, 141, -1, 216, 110, -1, 230, 156, -13, -7, -3, -1, 171, 186, + -1, 229, 215, -1, 78, -1, 228, 140, -3, -1, 200, 62, -1, 109, -1, + 214, 155, -19, -11, -5, -3, -1, 185, 170, 225, -1, 212, -1, 184, 169, + -5, -1, 123, -1, 183, 208, 227, -7, -3, -1, 14, 224, -1, 93, 213, + -3, -1, 124, 199, -1, 77, 139, -75, -45, -27, -13, -7, -3, -1, 154, + 108, -1, 198, 61, -3, -1, 92, 197, 13, -7, -3, -1, 138, 168, -1, + 153, 76, -3, -1, 182, 122, 60, -11, -5, -3, -1, 91, 137, 28, -1, + 192, -1, 152, 121, -1, 226, -1, 46, 30, -15, -7, -3, -1, 211, 45, + -1, 210, 209, -5, -1, 59, -1, 151, 136, 29, -7, -3, -1, 196, 107, + -1, 195, 167, -1, 44, -1, 194, 181, -23, -13, -7, -3, -1, 193, 12, + -1, 75, 180, -3, -1, 106, 166, 179, -5, -3, -1, 90, 165, 43, -1, + 178, 27, -13, -5, -1, 177, -1, 11, 176, -3, -1, 105, 150, -1, 74, + 164, -5, -3, -1, 120, 135, 163, -3, -1, 58, 89, 42, -97, -57, -33, + -19, -11, -5, -3, -1, 149, 104, 161, -3, -1, 134, 119, 148, -5, -3, + -1, 73, 87, 103, 162, -5, -1, 26, -1, 10, 160, -3, -1, 57, 147, + -1, 88, 133, -9, -3, -1, 41, 146, -3, -1, 118, 9, 25, -5, -1, + 145, -1, 144, 72, -3, -1, 132, 117, -1, 56, 131, -21, -11, -5, -3, + -1, 102, 40, 130, -3, -1, 71, 116, 24, -3, -1, 129, 128, -3, -1, + 8, 86, 55, -9, -5, -1, 115, -1, 101, 70, -1, 39, 114, -5, -3, + -1, 100, 85, 7, 23, -23, -13, -5, -1, 113, -1, 112, 54, -3, -1, + 99, 69, -1, 84, 38, -3, -1, 98, 22, -1, 97, -1, 6, 96, -9, + -5, -1, 83, -1, 53, 68, -1, 37, 82, -1, 81, -1, 21, 5, -33, + -23, -13, -7, -3, -1, 52, 67, -1, 80, 36, -3, -1, 66, 51, 20, + -5, -1, 65, -1, 4, 64, -1, 35, 50, -3, -1, 19, 49, -3, -1, + 3, 48, 34, -3, -1, 18, 33, -1, 2, 32, -3, -1, 17, 1, 16, + 0 +}; + +static short iemmp3_tab24[] = +{ + -451,-117, -43, -25, -15, -7, -3, -1, 239, 254, -1, 223, 253, -3, -1, + 207, 252, -1, 191, 251, -5, -1, 250, -1, 175, 159, -1, 249, 248, -9, + -5, -3, -1, 143, 127, 247, -1, 111, 246, -3, -1, 95, 245, -1, 79, + 244, -71, -7, -3, -1, 63, 243, -1, 47, 242, -5, -1, 241, -1, 31, + 240, -25, -9, -1, 15, -3, -1, 238, 222, -1, 237, 206, -7, -3, -1, + 236, 221, -1, 190, 235, -3, -1, 205, 220, -1, 174, 234, -15, -7, -3, + -1, 189, 219, -1, 204, 158, -3, -1, 233, 173, -1, 218, 188, -7, -3, + -1, 203, 142, -1, 232, 157, -3, -1, 217, 126, -1, 231, 172, 255,-235, + -143, -77, -45, -25, -15, -7, -3, -1, 202, 187, -1, 141, 216, -5, -3, + -1, 14, 224, 13, 230, -5, -3, -1, 110, 156, 201, -1, 94, 186, -9, + -5, -1, 229, -1, 171, 125, -1, 215, 228, -3, -1, 140, 200, -3, -1, + 78, 46, 62, -15, -7, -3, -1, 109, 214, -1, 227, 155, -3, -1, 185, + 170, -1, 226, 30, -7, -3, -1, 225, 93, -1, 213, 124, -3, -1, 199, + 77, -1, 139, 184, -31, -15, -7, -3, -1, 212, 154, -1, 169, 108, -3, + -1, 198, 61, -1, 211, 45, -7, -3, -1, 210, 29, -1, 123, 183, -3, + -1, 209, 92, -1, 197, 138, -17, -7, -3, -1, 168, 153, -1, 76, 196, + -3, -1, 107, 182, -3, -1, 208, 12, 60, -7, -3, -1, 195, 122, -1, + 167, 44, -3, -1, 194, 91, -1, 181, 28, -57, -35, -19, -7, -3, -1, + 137, 152, -1, 193, 75, -5, -3, -1, 192, 11, 59, -3, -1, 176, 10, + 26, -5, -1, 180, -1, 106, 166, -3, -1, 121, 151, -3, -1, 160, 9, + 144, -9, -3, -1, 179, 136, -3, -1, 43, 90, 178, -7, -3, -1, 165, + 27, -1, 177, 105, -1, 150, 164, -17, -9, -5, -3, -1, 74, 120, 135, + -1, 58, 163, -3, -1, 89, 149, -1, 42, 162, -7, -3, -1, 161, 104, + -1, 134, 119, -3, -1, 73, 148, -1, 57, 147, -63, -31, -15, -7, -3, + -1, 88, 133, -1, 41, 103, -3, -1, 118, 146, -1, 25, 145, -7, -3, + -1, 72, 132, -1, 87, 117, -3, -1, 56, 131, -1, 102, 40, -17, -7, + -3, -1, 130, 24, -1, 71, 116, -5, -1, 129, -1, 8, 128, -1, 86, + 101, -7, -5, -1, 23, -1, 7, 112, 115, -3, -1, 55, 39, 114, -15, + -7, -3, -1, 70, 100, -1, 85, 113, -3, -1, 54, 99, -1, 69, 84, + -7, -3, -1, 38, 98, -1, 22, 97, -5, -3, -1, 6, 96, 53, -1, + 83, 68, -51, -37, -23, -15, -9, -3, -1, 37, 82, -1, 21, -1, 5, + 80, -1, 81, -1, 52, 67, -3, -1, 36, 66, -1, 51, 20, -9, -5, + -1, 65, -1, 4, 64, -1, 35, 50, -1, 19, 49, -7, -5, -3, -1, + 3, 48, 34, 18, -1, 33, -1, 2, 32, -3, -1, 17, 1, -1, 16, + 0 +}; + +static short iemmp3_tab_c0[] = +{ + -29, -21, -13, -7, -3, -1, 11, 15, -1, 13, 14, -3, -1, 7, 5, + 9, -3, -1, 6, 3, -1, 10, 12, -3, -1, 2, 1, -1, 4, 8, + 0 +}; + +static short iemmp3_tab_c1[] = +{ + -15, -7, -3, -1, 15, 14, -1, 13, 12, -3, -1, 11, 10, -1, 9, + 8, -7, -3, -1, 7, 6, -1, 5, 4, -3, -1, 3, 2, -1, 1, + 0 +}; + + + +static struct iemmp3_newHuff iemmp3_ht[] = +{ + { /* 0 */ 0 , iemmp3_tab0 } , + { /* 2 */ 0 , iemmp3_tab1 } , + { /* 3 */ 0 , iemmp3_tab2 } , + { /* 3 */ 0 , iemmp3_tab3 } , + { /* 0 */ 0 , iemmp3_tab0 } , + { /* 4 */ 0 , iemmp3_tab5 } , + { /* 4 */ 0 , iemmp3_tab6 } , + { /* 6 */ 0 , iemmp3_tab7 } , + { /* 6 */ 0 , iemmp3_tab8 } , + { /* 6 */ 0 , iemmp3_tab9 } , + { /* 8 */ 0 , iemmp3_tab10 } , + { /* 8 */ 0 , iemmp3_tab11 } , + { /* 8 */ 0 , iemmp3_tab12 } , + { /* 16 */ 0 , iemmp3_tab13 } , + { /* 0 */ 0 , iemmp3_tab0 } , + { /* 16 */ 0 , iemmp3_tab15 } , + + { /* 16 */ 1 , iemmp3_tab16 } , + { /* 16 */ 2 , iemmp3_tab16 } , + { /* 16 */ 3 , iemmp3_tab16 } , + { /* 16 */ 4 , iemmp3_tab16 } , + { /* 16 */ 6 , iemmp3_tab16 } , + { /* 16 */ 8 , iemmp3_tab16 } , + { /* 16 */ 10, iemmp3_tab16 } , + { /* 16 */ 13, iemmp3_tab16 } , + { /* 16 */ 4 , iemmp3_tab24 } , + { /* 16 */ 5 , iemmp3_tab24 } , + { /* 16 */ 6 , iemmp3_tab24 } , + { /* 16 */ 7 , iemmp3_tab24 } , + { /* 16 */ 8 , iemmp3_tab24 } , + { /* 16 */ 9 , iemmp3_tab24 } , + { /* 16 */ 11, iemmp3_tab24 } , + { /* 16 */ 13, iemmp3_tab24 } +}; + +static struct iemmp3_newHuff iemmp3_htc[] = +{ + { /* 1 , 1 , */ 0 , iemmp3_tab_c0 } , + { /* 1 , 1 , */ 0 , iemmp3_tab_c1 } +}; + + +static t_class *sigmp3play_class; + + + +static BOOL InitMP3(struct iemmp3Struct *mp) +{ + memset(mp,0,sizeof(struct iemmp3Struct)); + + mp->framesize = 0; + mp->fsizeold = -1; + mp->bsize = 0; + mp->head = mp->tail = NULL; + mp->fr.single = -1; + mp->bsnum = 0; + mp->synth_bo = 1; + + make_decode_tables(32767); + init_layer3(SBLIMIT); + + return !0; +} + +static BOOL InitAgainMP3(struct iemmp3Struct *mp) +{ + memset(mp,0,sizeof(struct iemmp3Struct)); + + mp->framesize = 0; + mp->fsizeold = -1; + mp->bsize = 0; + mp->head = mp->tail = NULL; + mp->fr.single = -1; + mp->bsnum = 0; + mp->synth_bo = 1; + + return !0; +} + +static void ExitMP3(struct iemmp3Struct *mp) +{ + struct iemmp3_buf *b,*bn; + + b = mp->tail; + while(b) + { + free(b->pnt); + bn = b->next; + free(b); + b = bn; + } +} + +static int decodeMP3(struct iemmp3Struct *mp, char *in, int isize, char *out, int osize, int *done) +{ + int len,error=1; + + iemmp3_gmp = mp; + + if(osize < 4608) + { + post("To less out space\n"); + return MP3_ERR; + } + + if(in) + { + if(addbuf(mp,in,isize) == NULL) + { + return MP3_ERR; + } + } + + /* First decode header */ + if(mp->framesize == 0) + { + if(mp->bsize < 4) + { + return MP3_NEED_MORE; + } + if(!read_head(mp)) + return MP3_EX; + if(decode_header(&mp->fr,mp->header) == MP3_EX) + return MP3_EX; + mp->framesize = mp->fr.framesize; + } + + if(mp->fr.framesize > mp->bsize) + return MP3_NEED_MORE; + + iemmp3_wordpointer = mp->bsspace[mp->bsnum] + 512; + mp->bsnum = (mp->bsnum + 1) & 0x1; + iemmp3_bitindex = 0; + + len = 0; + while(len < mp->framesize) + { + int nlen; + int blen = mp->tail->size - mp->tail->pos; + if( (mp->framesize - len) <= blen) + { + nlen = mp->framesize-len; + } + else + { + nlen = blen; + } + memcpy(iemmp3_wordpointer+len,mp->tail->pnt+mp->tail->pos,nlen); + len += nlen; + mp->tail->pos += nlen; + mp->bsize -= nlen; + if(mp->tail->pos == mp->tail->size) + { + remove_buf(mp); + } + } + + *done = 0; + if(mp->fr.error_protection) + getbits(16); + do_layer3(&mp->fr,(unsigned char *) out,done,&error); + if(!error) + return MP3_EX; + + mp->fsizeold = mp->framesize; + mp->framesize = 0; + + return MP3_OK; +} + +static void make_decode_tables(long scaleval) +{ + int i,j,k,kr,divv; + real *table,*costab; + + for(i=0;i<5;i++) + { + kr=0x10>>i; divv=0x40>>i; + costab = iemmp3_pnts[i]; + for(k=0;k<kr;k++) + costab[k] = 1.0 / (2.0 * cos(M_PI * ((double) k * 2.0 + 1.0) / (double) divv)); + } + + table = iemmp3_decwin; + scaleval = -scaleval; + for(i=0,j=0;i<256;i++,j++,table+=32) + { + if(table < iemmp3_decwin+512+16) + table[16] = table[0] = (double) iemmp3_intwinbase[j] / 65536.0 * (double) scaleval; + if(i % 32 == 31) + table -= 1023; + if(i % 64 == 63) + scaleval = - scaleval; + } + + for( /* i=256 */ ;i<512;i++,j--,table+=32) + { + if(table < iemmp3_decwin+512+16) + table[16] = table[0] = (double) iemmp3_intwinbase[j] / 65536.0 * (double) scaleval; + if(i % 32 == 31) + table -= 1023; + if(i % 64 == 63) + scaleval = - scaleval; + } +} + + +static void init_layer3(int down_sample_sblimit) +{ + int i,j,k,l; + + for(i=-256;i<118+4;i++) + iemmp3_gainpow2[i+256] = pow((double)2.0,-0.25 * (double) (i+210) ); + + for(i=0;i<8207;i++) + iemmp3_ispow[i] = pow((double)i,(double)4.0/3.0); + + for (i=0;i<8;i++) + { + static double Ci[8]={-0.6,-0.535,-0.33,-0.185,-0.095,-0.041,-0.0142,-0.0037}; + double sq=sqrt(1.0+Ci[i]*Ci[i]); + iemmp3_aa_cs[i] = 1.0/sq; + iemmp3_aa_ca[i] = Ci[i]/sq; + } + + for(i=0;i<18;i++) + { + iemmp3_win[0][i] = iemmp3_win[1][i] = 0.5 * sin( M_PI / 72.0 * (double) (2*(i+0) +1) ) / cos ( M_PI * (double) (2*(i+0) +19) / 72.0 ); + iemmp3_win[0][i+18] = iemmp3_win[3][i+18] = 0.5 * sin( M_PI / 72.0 * (double) (2*(i+18)+1) ) / cos ( M_PI * (double) (2*(i+18)+19) / 72.0 ); + } + for(i=0;i<6;i++) + { + iemmp3_win[1][i+18] = 0.5 / cos ( M_PI * (double) (2*(i+18)+19) / 72.0 ); + iemmp3_win[3][i+12] = 0.5 / cos ( M_PI * (double) (2*(i+12)+19) / 72.0 ); + iemmp3_win[1][i+24] = 0.5 * sin( M_PI / 24.0 * (double) (2*i+13) ) / cos ( M_PI * (double) (2*(i+24)+19) / 72.0 ); + iemmp3_win[1][i+30] = iemmp3_win[3][i] = 0.0; + iemmp3_win[3][i+6 ] = 0.5 * sin( M_PI / 24.0 * (double) (2*i+1) ) / cos ( M_PI * (double) (2*(i+6 )+19) / 72.0 ); + } + + for(i=0;i<9;i++) + iemmp3_COS9[i] = cos( M_PI / 18.0 * (double) i); + + for(i=0;i<9;i++) + iemmp3_tfcos36[i] = 0.5 / cos ( M_PI * (double) (i*2+1) / 36.0 ); + for(i=0;i<3;i++) + iemmp3_tfcos12[i] = 0.5 / cos ( M_PI * (double) (i*2+1) / 12.0 ); + + iemmp3_COS6_1 = cos( M_PI / 6.0 * (double) 1); + iemmp3_COS6_2 = cos( M_PI / 6.0 * (double) 2); + + for(i=0;i<12;i++) + { + iemmp3_win[2][i] = 0.5 * sin( M_PI / 24.0 * (double) (2*i+1) ) / cos ( M_PI * (double) (2*i+7) / 24.0 ); + for(j=0;j<6;j++) + iemmp3_COS1[i][j] = cos( M_PI / 24.0 * (double) ((2*i+7)*(2*j+1)) ); + } + + for(j=0;j<4;j++) + { + static int len[4] = { 36,36,12,36 }; + for(i=0;i<len[j];i+=2) + iemmp3_win1[j][i] = + iemmp3_win[j][i]; + for(i=1;i<len[j];i+=2) + iemmp3_win1[j][i] = - iemmp3_win[j][i]; + } + + for(i=0;i<16;i++) + { + double t = tan( (double) i * M_PI / 12.0 ); + iemmp3_tan1_1[i] = t / (1.0+t); + iemmp3_tan2_1[i] = 1.0 / (1.0 + t); + iemmp3_tan1_2[i] = M_SQRT2 * t / (1.0+t); + iemmp3_tan2_2[i] = M_SQRT2 / (1.0 + t); + + for(j=0;j<2;j++) + { + double base = pow(2.0,-0.25*(j+1.0)); + double p1=1.0,p2=1.0; + if(i > 0) + { + if( i & 1 ) + p1 = pow(base,(i+1.0)*0.5); + else + p2 = pow(base,i*0.5); + } + iemmp3_pow1_1[j][i] = p1; + iemmp3_pow2_1[j][i] = p2; + iemmp3_pow1_2[j][i] = M_SQRT2 * p1; + iemmp3_pow2_2[j][i] = M_SQRT2 * p2; + } + } + + for(j=0;j<9;j++) + { + struct iemmp3_bandInfoStruct *bi = &bandInfo[j]; + int *mp; + int cb,lwin; + short *bdf; + + mp = iemmp3_map[j][0] = iemmp3_mapbuf0[j]; + bdf = bi->longDiff; + for(i=0,cb = 0; cb < 8 ; cb++,i+=*bdf++) + { + *mp++ = (*bdf) >> 1; + *mp++ = i; + *mp++ = 3; + *mp++ = cb; + } + bdf = bi->shortDiff+3; + for(cb=3;cb<13;cb++) + { + int l = (*bdf++) >> 1; + for(lwin=0;lwin<3;lwin++) + { + *mp++ = l; + *mp++ = i + lwin; + *mp++ = lwin; + *mp++ = cb; + } + i += 6*l; + } + iemmp3_mapend[j][0] = mp; + + mp = iemmp3_map[j][1] = iemmp3_mapbuf1[j]; + bdf = bi->shortDiff+0; + for(i=0,cb=0;cb<13;cb++) + { + int l = (*bdf++) >> 1; + for(lwin=0;lwin<3;lwin++) + { + *mp++ = l; + *mp++ = i + lwin; + *mp++ = lwin; + *mp++ = cb; + } + i += 6*l; + } + iemmp3_mapend[j][1] = mp; + + mp = iemmp3_map[j][2] = iemmp3_mapbuf2[j]; + bdf = bi->longDiff; + for(cb = 0; cb < 22 ; cb++) + { + *mp++ = (*bdf++) >> 1; + *mp++ = cb; + } + iemmp3_mapend[j][2] = mp; + } + + for(j=0;j<9;j++) + { + for(i=0;i<23;i++) + { + iemmp3_longLimit[j][i] = (bandInfo[j].longIdx[i] - 1 + 8) / 18 + 1; + if(iemmp3_longLimit[j][i] > (down_sample_sblimit) ) + iemmp3_longLimit[j][i] = down_sample_sblimit; + } + for(i=0;i<14;i++) + { + iemmp3_shortLimit[j][i] = (bandInfo[j].shortIdx[i] - 1) / 18 + 1; + if(iemmp3_shortLimit[j][i] > (down_sample_sblimit) ) + iemmp3_shortLimit[j][i] = down_sample_sblimit; + } + } + + for(i=0;i<5;i++) + { + for(j=0;j<6;j++) + { + for(k=0;k<6;k++) + { + int n = k + j * 6 + i * 36; + iemmp3_slen2[n] = i|(j<<3)|(k<<6)|(3<<12); + } + } + } + for(i=0;i<4;i++) + { + for(j=0;j<4;j++) + { + for(k=0;k<4;k++) + { + int n = k + j * 4 + i * 16; + iemmp3_slen2[n+180] = i|(j<<3)|(k<<6)|(4<<12); + } + } + } + for(i=0;i<4;i++) + { + for(j=0;j<3;j++) + { + int n = j + i * 3; + iemmp3_slen2[n+244] = i|(j<<3) | (5<<12); + iemmp3_n_slen2[n+500] = i|(j<<3) | (2<<12) | (1<<15); + } + } + + for(i=0;i<5;i++) + { + for(j=0;j<5;j++) + { + for(k=0;k<4;k++) + { + for(l=0;l<4;l++) + { + int n = l + k * 4 + j * 16 + i * 80; + iemmp3_n_slen2[n] = i|(j<<3)|(k<<6)|(l<<9)|(0<<12); + } + } + } + } + for(i=0;i<5;i++) + { + for(j=0;j<5;j++) + { + for(k=0;k<4;k++) + { + int n = k + j * 4 + i * 20; + iemmp3_n_slen2[n+400] = i|(j<<3)|(k<<6)|(1<<12); + } + } + } +} + +static void remove_buf(struct iemmp3Struct *mp) +{ + struct iemmp3_buf *buf = mp->tail; + + mp->tail = buf->next; + if(mp->tail) + mp->tail->prev = NULL; + else + { + mp->tail = mp->head = NULL; + } + free(buf->pnt); + free(buf); +} + +static struct iemmp3_buf *addbuf(struct iemmp3Struct *mp,char *buf,int size) +{ + struct iemmp3_buf *nbuf; + + nbuf = malloc( sizeof(struct iemmp3_buf) ); + if(!nbuf) + { + post("Out of memory!\n"); + return NULL; + } + nbuf->pnt = malloc(size); + if(!nbuf->pnt) + { + free(nbuf); + return NULL; + } + nbuf->size = size; + memcpy(nbuf->pnt,buf,size); + nbuf->next = NULL; + nbuf->prev = mp->head; + nbuf->pos = 0; + if(!mp->tail) + { + mp->tail = nbuf; + } + else + { + mp->head->next = nbuf; + } + mp->head = nbuf; + mp->bsize += size; + return nbuf; +} + +static int read_buf_byte(struct iemmp3Struct *mp,int *err) +{ + unsigned int b; + int pos; + + pos = mp->tail->pos; + while(pos >= mp->tail->size) + { + remove_buf(mp); + pos = mp->tail->pos; + if(!mp->tail) + { + post("Fatal error!\n"); + *err = 0; + return(0); + } + } + b = mp->tail->pnt[pos]; + mp->bsize--; + mp->tail->pos++; + return(b); +} + +static int read_head(struct iemmp3Struct *mp) +{ + unsigned long head; + int error=1; + + head = read_buf_byte(mp,&error); + head <<= 8; + head |= read_buf_byte(mp,&error); + head <<= 8; + head |= read_buf_byte(mp,&error); + head <<= 8; + head |= read_buf_byte(mp,&error); + mp->header = head; + return(error); +} + +static int decode_header(struct iemmp3_frame *fr,unsigned long newhead) +{ + if( newhead & (1<<20) ) + { + fr->lsf = (newhead & (1<<19)) ? 0x0 : 0x1; + fr->mpeg25 = 0; + } + else + { + fr->lsf = 1; + fr->mpeg25 = 1; + } + fr->lay = 4-((newhead>>17)&3); + if( ((newhead>>10)&0x3) == 0x3) + { + post("Stream error"); + return(MP3_EX); + } + if(fr->mpeg25) + { + fr->sampling_frequency = 6 + ((newhead>>10)&0x3); + } + else + fr->sampling_frequency = ((newhead>>10)&0x3) + (fr->lsf*3); + fr->error_protection = ((newhead>>16)&0x1)^0x1; + if(fr->mpeg25) /* allow Bitrate change for 2.5 ... */ + fr->bitrate_index = ((newhead>>12)&0xf); + fr->bitrate_index = ((newhead>>12)&0xf); + fr->padding = ((newhead>>9)&0x1); + fr->extension = ((newhead>>8)&0x1); + fr->mode = ((newhead>>6)&0x3); + fr->mode_ext = ((newhead>>4)&0x3); + fr->copyright = ((newhead>>3)&0x1); + fr->original = ((newhead>>2)&0x1); + fr->emphasis = newhead & 0x3; + fr->stereo = (fr->mode == MPG_MD_MONO) ? 1 : 2; + if(!fr->bitrate_index) + { + post("Free format not supported.\n"); + return(0); + } + switch(fr->lay) + { + case 1: + post("Layer I not supported!\n"); + break; + case 2: + post("Layer II not supported!\n"); + break; + case 3: + fr->framesize = (long) iemmp3_tabsel_123[fr->lsf][2][fr->bitrate_index] * 144000; + fr->framesize /= iemmp3_freqs[fr->sampling_frequency]<<(fr->lsf); + fr->framesize = fr->framesize + fr->padding - 4; + //post("Framesize: %d",fr->framesize); + break; + default: + post("Sorry, unknown layer type.\n"); + return (0); + } + return(1); +} + +static unsigned int getbits(int number_of_bits) +{ + unsigned long rval; + + if(!number_of_bits) + return 0; + { + rval = iemmp3_wordpointer[0]; + rval <<= 8; + rval |= iemmp3_wordpointer[1]; + rval <<= 8; + rval |= iemmp3_wordpointer[2]; + rval <<= iemmp3_bitindex; + rval &= 0xffffff; + iemmp3_bitindex += number_of_bits; + rval >>= (24-number_of_bits); + iemmp3_wordpointer += (iemmp3_bitindex>>3); + iemmp3_bitindex &= 7; + } + return rval; +} + +static unsigned int getbits_fast(int number_of_bits) +{ + unsigned long rval; + + { + rval = iemmp3_wordpointer[0]; + rval <<= 8; + rval |= iemmp3_wordpointer[1]; + rval <<= iemmp3_bitindex; + rval &= 0xffff; + iemmp3_bitindex += number_of_bits; + rval >>= (16-number_of_bits); + iemmp3_wordpointer += (iemmp3_bitindex>>3); + iemmp3_bitindex &= 7; + } + return rval; +} + +static unsigned int get1bit(void) +{ + unsigned char rval; + rval = *iemmp3_wordpointer << iemmp3_bitindex; + + iemmp3_bitindex++; + iemmp3_wordpointer += (iemmp3_bitindex>>3); + iemmp3_bitindex &= 7; + + return rval>>7; +} + +static int do_layer3(struct iemmp3_frame *fr,unsigned char *pcm_sample,int *pcm_point,int *err) +{ + int gr, ch, ss,clip=0; + int scalefacs[39]; /* max 39 for short[13][3] mode, mixed: 38, long: 22 */ + struct iemmp3_III_sideinfo sideinfo; + int stereo = fr->stereo; + int single = fr->single; + int ms_stereo,i_stereo; + int sfreq = fr->sampling_frequency; + int stereo1,granules; + + if(stereo == 1) + { /* stream is mono */ + stereo1 = 1; + single = 0; + } + else if(single >= 0) /* stream is stereo, but force to mono */ + stereo1 = 1; + else + stereo1 = 2; + + if(fr->mode == MPG_MD_JOINT_STEREO) + { + ms_stereo = fr->mode_ext & 0x2; + i_stereo = fr->mode_ext & 0x1; + } + else + ms_stereo = i_stereo = 0; + + if(fr->lsf) + { + granules = 1; + if(!III_get_side_info_2(&sideinfo,stereo,ms_stereo,sfreq,single)) + { + *err = 0; + return 0; + } + } + else + { + granules = 2; +#ifdef IEM_MPEG1 + if(!III_get_side_info_1(&sideinfo,stereo,ms_stereo,sfreq,single)) + { + *err = 0; + return 0; + } +#else + post("Not supported\n"); +#endif + } + + if(set_pointer(sideinfo.main_data_begin) == MP3_ERR) + return 0; + + for (gr=0;gr<granules;gr++) + { + static real hybridIn[2][SBLIMIT][SSLIMIT]; + static real hybridOut[2][SSLIMIT][SBLIMIT]; + + { + struct iemmp3_gr_info_s *gr_info = &(sideinfo.ch[0].gr[gr]); + long part2bits; + if(fr->lsf) + part2bits = III_get_scale_factors_2(scalefacs,gr_info,0); + else + { +#ifdef IEM_MPEG1 + part2bits = III_get_scale_factors_1(scalefacs,gr_info); +#else + post("Not supported\n"); +#endif + } + if(III_dequantize_sample(hybridIn[0], scalefacs,gr_info,sfreq,part2bits)) + return clip; + } + if(stereo == 2) + { + struct iemmp3_gr_info_s *gr_info = &(sideinfo.ch[1].gr[gr]); + long part2bits; + if(fr->lsf) + part2bits = III_get_scale_factors_2(scalefacs,gr_info,i_stereo); + else + { +#ifdef IEM_MPEG1 + part2bits = III_get_scale_factors_1(scalefacs,gr_info); +#else + post("Not supported\n"); +#endif + } + + if(III_dequantize_sample(hybridIn[1],scalefacs,gr_info,sfreq,part2bits)) + return clip; + + if(ms_stereo) + { + int i; + for(i=0;i<SBLIMIT*SSLIMIT;i++) + { + real tmp0,tmp1; + tmp0 = ((real *) hybridIn[0])[i]; + tmp1 = ((real *) hybridIn[1])[i]; + ((real *) hybridIn[1])[i] = tmp0 - tmp1; + ((real *) hybridIn[0])[i] = tmp0 + tmp1; + } + } + + if(i_stereo) + III_i_stereo(hybridIn,scalefacs,gr_info,sfreq,ms_stereo,fr->lsf); + + if(ms_stereo || i_stereo || (single == 3) ) + { + if(gr_info->maxb > sideinfo.ch[0].gr[gr].maxb) + sideinfo.ch[0].gr[gr].maxb = gr_info->maxb; + else + gr_info->maxb = sideinfo.ch[0].gr[gr].maxb; + } + + switch(single) + { + case 3: + { + register unsigned int i; + register real *in0 = (real *) hybridIn[0],*in1 = (real *) hybridIn[1]; + for(i=0;i<SSLIMIT*gr_info->maxb;i++,in0++) + *in0 = (*in0 + *in1++); /* *0.5 done by pow-scale */ + } + break; + case 1: + { + register unsigned int i; + register real *in0 = (real *) hybridIn[0],*in1 = (real *) hybridIn[1]; + for(i=0;i<SSLIMIT*gr_info->maxb;i++) + *in0++ = *in1++; + } + break; + } + } + + for(ch=0;ch<stereo1;ch++) + { + struct iemmp3_gr_info_s *gr_info = &(sideinfo.ch[ch].gr[gr]); + III_antialias(hybridIn[ch],gr_info); + III_hybrid(hybridIn[ch], hybridOut[ch], ch,gr_info); + } + + for(ss=0;ss<SSLIMIT;ss++) + { + if(single >= 0) + { + clip += synth_1to1_mono(hybridOut[0][ss],pcm_sample,pcm_point); + } + else + { + int p1 = *pcm_point; + clip += synth_1to1(hybridOut[0][ss],0,pcm_sample,&p1); + clip += synth_1to1(hybridOut[1][ss],1,pcm_sample,pcm_point); + } + } + } + + return clip; +} + +static int III_get_side_info_2(struct iemmp3_III_sideinfo *si,int stereo, + int ms_stereo,long sfreq,int single) +{ + int ch; + int powdiff = (single == 3) ? 4 : 0; + + si->main_data_begin = getbits(8); + if (stereo == 1) + si->private_bits = get1bit(); + else + si->private_bits = getbits_fast(2); + + for (ch=0; ch<stereo; ch++) + { + register struct iemmp3_gr_info_s *gr_info = &(si->ch[ch].gr[0]); + + gr_info->part2_3_length = getbits(12); + gr_info->big_values = getbits_fast(9); + if(gr_info->big_values > 288) + { + post("big_values too large!\n"); + gr_info->big_values = 288; + } + gr_info->pow2gain = iemmp3_gainpow2+256 - getbits_fast(8) + powdiff; + if(ms_stereo) + gr_info->pow2gain += 2; + gr_info->scalefac_compress = getbits(9); + /* window-switching flag == 1 for block_Type != 0 .. and block-type == 0 -> win-sw-flag = 0 */ + if(get1bit()) + { + int i; + gr_info->block_type = getbits_fast(2); + gr_info->mixed_block_flag = get1bit(); + gr_info->table_select[0] = getbits_fast(5); + gr_info->table_select[1] = getbits_fast(5); + /* + * table_select[2] not needed, because there is no region2, + * but to satisfy some verifications tools we set it either. + */ + gr_info->table_select[2] = 0; + for(i=0;i<3;i++) + gr_info->full_gain[i] = gr_info->pow2gain + (getbits_fast(3)<<3); + if(gr_info->block_type == 0) + { + post("Blocktype == 0 and window-switching == 1 not allowed.\n"); + return(0); + } + /* region_count/start parameters are implicit in this case. */ + /* check this again! */ + if(gr_info->block_type == 2) + gr_info->region1start = 36>>1; + else if(sfreq == 8) + /* check this for 2.5 and sfreq=8 */ + gr_info->region1start = 108>>1; + else + gr_info->region1start = 54>>1; + gr_info->region2start = 576>>1; + } + else + { + int i,r0c,r1c; + for (i=0; i<3; i++) + gr_info->table_select[i] = getbits_fast(5); + r0c = getbits_fast(4); + r1c = getbits_fast(3); + gr_info->region1start = bandInfo[sfreq].longIdx[r0c+1] >> 1 ; + gr_info->region2start = bandInfo[sfreq].longIdx[r0c+1+r1c+1] >> 1; + gr_info->block_type = 0; + gr_info->mixed_block_flag = 0; + } + gr_info->scalefac_scale = get1bit(); + gr_info->count1table_select = get1bit(); + } + return(1); +} + + +#ifdef IEM_MPEG1 +static int III_get_side_info_1(struct iemmp3_III_sideinfo *si,int stereo, + int ms_stereo,long sfreq,int single) +{ + int ch, gr; + int powdiff = (single == 3) ? 4 : 0; + + si->main_data_begin = getbits(9); + if (stereo == 1) + si->private_bits = getbits_fast(5); + else + si->private_bits = getbits_fast(3); + + for (ch=0; ch<stereo; ch++) + { + si->ch[ch].gr[0].scfsi = -1; + si->ch[ch].gr[1].scfsi = getbits_fast(4); + } + + for (gr=0; gr<2; gr++) + { + for (ch=0; ch<stereo; ch++) + { + register struct iemmp3_gr_info_s *gr_info = &(si->ch[ch].gr[gr]); + + gr_info->part2_3_length = getbits(12); + gr_info->big_values = getbits_fast(9); + if(gr_info->big_values > 288) + { + post("big_values too large!\n"); + gr_info->big_values = 288; + } + gr_info->pow2gain = iemmp3_gainpow2+256 - getbits_fast(8) + powdiff; + if(ms_stereo) + gr_info->pow2gain += 2; + gr_info->scalefac_compress = getbits_fast(4); + /* window-switching flag == 1 for block_Type != 0 .. and block-type == 0 -> win-sw-flag = 0 */ + if(get1bit()) + { + int i; + + gr_info->block_type = getbits_fast(2); + gr_info->mixed_block_flag = get1bit(); + gr_info->table_select[0] = getbits_fast(5); + gr_info->table_select[1] = getbits_fast(5); + /* + * table_select[2] not needed, because there is no region2, + * but to satisfy some verifications tools we set it either. + */ + gr_info->table_select[2] = 0; + for(i=0;i<3;i++) + gr_info->full_gain[i] = gr_info->pow2gain + (getbits_fast(3)<<3); + + if(gr_info->block_type == 0) + { + post("Blocktype == 0 and window-switching == 1 not allowed.\n"); + return(0); + } + /* region_count/start parameters are implicit in this case. */ + gr_info->region1start = 36>>1; + gr_info->region2start = 576>>1; + } + else + { + int i,r0c,r1c; + for (i=0; i<3; i++) + gr_info->table_select[i] = getbits_fast(5); + r0c = getbits_fast(4); + r1c = getbits_fast(3); + gr_info->region1start = bandInfo[sfreq].longIdx[r0c+1] >> 1 ; + gr_info->region2start = bandInfo[sfreq].longIdx[r0c+1+r1c+1] >> 1; + gr_info->block_type = 0; + gr_info->mixed_block_flag = 0; + } + gr_info->preflag = get1bit(); + gr_info->scalefac_scale = get1bit(); + gr_info->count1table_select = get1bit(); + } + } + return(1); +} +#endif + +static int set_pointer(long backstep) +{ + unsigned char *bsbufold; + if(iemmp3_gmp->fsizeold < 0 && backstep > 0) + { + post("Can't step back %ld!\n",backstep); + return MP3_ERR; + } + bsbufold = iemmp3_gmp->bsspace[iemmp3_gmp->bsnum] + 512; + iemmp3_wordpointer -= backstep; + if (backstep) + memcpy(iemmp3_wordpointer,bsbufold+iemmp3_gmp->fsizeold-backstep,backstep); + iemmp3_bitindex = 0; + return MP3_OK; +} + +#ifdef IEM_MPEG1 +static int III_get_scale_factors_1(int *scf,struct iemmp3_gr_info_s *gr_info) +{ + static unsigned char slen[2][16] = { + {0, 0, 0, 0, 3, 1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4}, + {0, 1, 2, 3, 0, 1, 2, 3, 1, 2, 3, 1, 2, 3, 2, 3} + }; + int numbits; + int num0 = slen[0][gr_info->scalefac_compress]; + int num1 = slen[1][gr_info->scalefac_compress]; + + if (gr_info->block_type == 2) + { + int i=18; + + numbits = (num0 + num1) * 18; + if (gr_info->mixed_block_flag) + { + for (i=8;i;i--) + *scf++ = getbits_fast(num0); + i = 9; + numbits -= num0; /* num0 * 17 + num1 * 18 */ + } + + for (;i;i--) + *scf++ = getbits_fast(num0); + for (i = 18; i; i--) + *scf++ = getbits_fast(num1); + *scf++ = 0; *scf++ = 0; *scf++ = 0; /* short[13][0..2] = 0 */ + } + else + { + int i; + int scfsi = gr_info->scfsi; + + if(scfsi < 0) + { /* scfsi < 0 => granule == 0 */ + for(i=11;i;i--) + *scf++ = getbits_fast(num0); + for(i=10;i;i--) + *scf++ = getbits_fast(num1); + numbits = (num0 + num1) * 10 + num0; + } + else + { + numbits = 0; + if(!(scfsi & 0x8)) + { + for (i=6;i;i--) + *scf++ = getbits_fast(num0); + numbits += num0 * 6; + } + else + { + *scf++ = 0; *scf++ = 0; *scf++ = 0; /* set to ZERO necessary? */ + *scf++ = 0; *scf++ = 0; *scf++ = 0; + } + + if(!(scfsi & 0x4)) + { + for (i=5;i;i--) + *scf++ = getbits_fast(num0); + numbits += num0 * 5; + } + else + { + *scf++ = 0; *scf++ = 0; *scf++ = 0; /* set to ZERO necessary? */ + *scf++ = 0; *scf++ = 0; + } + + if(!(scfsi & 0x2)) + { + for(i=5;i;i--) + *scf++ = getbits_fast(num1); + numbits += num1 * 5; + } + else + { + *scf++ = 0; *scf++ = 0; *scf++ = 0; /* set to ZERO necessary? */ + *scf++ = 0; *scf++ = 0; + } + + if(!(scfsi & 0x1)) + { + for (i=5;i;i--) + *scf++ = getbits_fast(num1); + numbits += num1 * 5; + } + else + { + *scf++ = 0; *scf++ = 0; *scf++ = 0; /* set to ZERO necessary? */ + *scf++ = 0; *scf++ = 0; + } + } + + *scf++ = 0; /* no l[21] in original sources */ + } + return numbits; +} +#endif + +static int III_get_scale_factors_2(int *scf,struct iemmp3_gr_info_s *gr_info,int i_stereo) +{ + unsigned char *pnt; + int i,j; + unsigned int slen; + int n = 0; + int numbits = 0; + + static unsigned char stab[3][6][4] = { + { { 6, 5, 5,5 } , { 6, 5, 7,3 } , { 11,10,0,0} , + { 7, 7, 7,0 } , { 6, 6, 6,3 } , { 8, 8,5,0} } , + { { 9, 9, 9,9 } , { 9, 9,12,6 } , { 18,18,0,0} , + {12,12,12,0 } , {12, 9, 9,6 } , { 15,12,9,0} } , + { { 6, 9, 9,9 } , { 6, 9,12,6 } , { 15,18,0,0} , + { 6,15,12,0 } , { 6,12, 9,6 } , { 6,18,9,0} } }; + + if(i_stereo) /* i_stereo AND second channel -> do_layer3() checks this */ + slen = iemmp3_slen2[gr_info->scalefac_compress>>1]; + else + slen = iemmp3_n_slen2[gr_info->scalefac_compress]; + + gr_info->preflag = (slen>>15) & 0x1; + + n = 0; + if( gr_info->block_type == 2 ) + { + n++; + if(gr_info->mixed_block_flag) + n++; + } + + pnt = stab[n][(slen>>12)&0x7]; + + for(i=0;i<4;i++) + { + int num = slen & 0x7; + slen >>= 3; + if(num) + { + for(j=0;j<(int)(pnt[i]);j++) + *scf++ = getbits_fast(num); + numbits += pnt[i] * num; + } + else + { + for(j=0;j<(int)(pnt[i]);j++) + *scf++ = 0; + } + } + + n = (n << 1) + 1; + for(i=0;i<n;i++) + *scf++ = 0; + + return numbits; +} + + + +static int III_dequantize_sample(real xr[SBLIMIT][SSLIMIT],int *scf, + struct iemmp3_gr_info_s *gr_info,int sfreq,int part2bits) +{ + int shift = 1 + gr_info->scalefac_scale; + real *xrpnt = (real *) xr; + int l[3],l3; + int part2remain = gr_info->part2_3_length - part2bits; + int *me; + + { + int bv = gr_info->big_values; + int region1 = gr_info->region1start; + int region2 = gr_info->region2start; + + l3 = ((576>>1)-bv)>>1; + /* + * we may lose the 'odd' bit here !! + * check this later again + */ + if(bv <= region1) + { + l[0] = bv; l[1] = 0; l[2] = 0; + } + else + { + l[0] = region1; + if(bv <= region2) + { + l[1] = bv - l[0]; l[2] = 0; + } + else + { + l[1] = region2 - l[0]; l[2] = bv - region2; + } + } + } + + if(gr_info->block_type == 2) + { + /* + * decoding with short or mixed mode BandIndex table + */ + int i,max[4]; + int step=0,lwin=0,cb=0; + register real v = 0.0; + register int *m,mc; + + if(gr_info->mixed_block_flag) + { + max[3] = -1; + max[0] = max[1] = max[2] = 2; + m = iemmp3_map[sfreq][0]; + me = iemmp3_mapend[sfreq][0]; + } + else + { + max[0] = max[1] = max[2] = max[3] = -1; + /* max[3] not really needed in this case */ + m = iemmp3_map[sfreq][1]; + me = iemmp3_mapend[sfreq][1]; + } + + mc = 0; + for(i=0;i<2;i++) + { + int lp = l[i]; + struct iemmp3_newHuff *h = iemmp3_ht+gr_info->table_select[i]; + for(;lp;lp--,mc--) + { + register int x,y; + if( (!mc) ) + { + mc = *m++; + xrpnt = ((real *) xr) + (*m++); + lwin = *m++; + cb = *m++; + if(lwin == 3) + { + v = gr_info->pow2gain[(*scf++) << shift]; + step = 1; + } + else + { + v = gr_info->full_gain[lwin][(*scf++) << shift]; + step = 3; + } + } + { + register short *val = h->table; + while((y=*val++)<0) + { + if (get1bit()) + val -= y; + part2remain--; + } + x = y >> 4; + y &= 0xf; + } + if(x == 15) + { + max[lwin] = cb; + part2remain -= h->linbits+1; + x += getbits(h->linbits); + if(get1bit()) + *xrpnt = -iemmp3_ispow[x] * v; + else + *xrpnt = iemmp3_ispow[x] * v; + } + else if(x) + { + max[lwin] = cb; + if(get1bit()) + *xrpnt = -iemmp3_ispow[x] * v; + else + *xrpnt = iemmp3_ispow[x] * v; + part2remain--; + } + else + *xrpnt = 0.0; + xrpnt += step; + if(y == 15) + { + max[lwin] = cb; + part2remain -= h->linbits+1; + y += getbits(h->linbits); + if(get1bit()) + *xrpnt = -iemmp3_ispow[y] * v; + else + *xrpnt = iemmp3_ispow[y] * v; + } + else if(y) + { + max[lwin] = cb; + if(get1bit()) + *xrpnt = -iemmp3_ispow[y] * v; + else + *xrpnt = iemmp3_ispow[y] * v; + part2remain--; + } + else + *xrpnt = 0.0; + xrpnt += step; + } + } + for(;l3 && (part2remain > 0);l3--) + { + struct iemmp3_newHuff *h = iemmp3_htc+gr_info->count1table_select; + register short *val = h->table,a; + + while((a=*val++)<0) + { + part2remain--; + if(part2remain < 0) + { + part2remain++; + a = 0; + break; + } + if (get1bit()) + val -= a; + } + + for(i=0;i<4;i++) + { + if(!(i & 1)) + { + if(!mc) + { + mc = *m++; + xrpnt = ((real *) xr) + (*m++); + lwin = *m++; + cb = *m++; + if(lwin == 3) + { + v = gr_info->pow2gain[(*scf++) << shift]; + step = 1; + } + else + { + v = gr_info->full_gain[lwin][(*scf++) << shift]; + step = 3; + } + } + mc--; + } + if( (a & (0x8>>i)) ) + { + max[lwin] = cb; + part2remain--; + if(part2remain < 0) + { + part2remain++; + break; + } + if(get1bit()) + *xrpnt = -v; + else + *xrpnt = v; + } + else + *xrpnt = 0.0; + xrpnt += step; + } + } + + while( m < me ) + { + if(!mc) + { + mc = *m++; + xrpnt = ((real *) xr) + *m++; + if( (*m++) == 3) + step = 1; + else + step = 3; + m++; /* cb */ + } + mc--; + *xrpnt = 0.0; + xrpnt += step; + *xrpnt = 0.0; + xrpnt += step; + /* we could add a little opt. here: + * if we finished a band for window 3 or a long band + * further bands could copied in a simple loop without a + * special 'map' decoding + */ + } + + gr_info->maxband[0] = max[0]+1; + gr_info->maxband[1] = max[1]+1; + gr_info->maxband[2] = max[2]+1; + gr_info->maxbandl = max[3]+1; + + { + int rmax = max[0] > max[1] ? max[0] : max[1]; + rmax = (rmax > max[2] ? rmax : max[2]) + 1; + gr_info->maxb = rmax ? iemmp3_shortLimit[sfreq][rmax] : iemmp3_longLimit[sfreq][max[3]+1]; + } + + } + else + { + /* + * decoding with 'long' BandIndex table (block_type != 2) + */ + int *pretab = gr_info->preflag ? iemmp3_pretab1 : iemmp3_pretab2; + int i,max = -1; + int cb = 0; + register int *m = iemmp3_map[sfreq][2]; + register real v = 0.0; + register int mc = 0; + + /* + * long hash table values + */ + for(i=0;i<3;i++) + { + int lp = l[i]; + struct iemmp3_newHuff *h = iemmp3_ht+gr_info->table_select[i]; + + for(;lp;lp--,mc--) + { + int x,y; + + if(!mc) + { + mc = *m++; + v = gr_info->pow2gain[((*scf++) + (*pretab++)) << shift]; + cb = *m++; + } + { + register short *val = h->table; + while((y=*val++)<0) + { + if (get1bit()) + val -= y; + part2remain--; + } + x = y >> 4; + y &= 0xf; + } + if (x == 15) + { + max = cb; + part2remain -= h->linbits+1; + x += getbits(h->linbits); + if(get1bit()) + *xrpnt++ = -iemmp3_ispow[x] * v; + else + *xrpnt++ = iemmp3_ispow[x] * v; + } + else if(x) + { + max = cb; + if(get1bit()) + *xrpnt++ = -iemmp3_ispow[x] * v; + else + *xrpnt++ = iemmp3_ispow[x] * v; + part2remain--; + } + else + *xrpnt++ = 0.0; + + if (y == 15) + { + max = cb; + part2remain -= h->linbits+1; + y += getbits(h->linbits); + if(get1bit()) + *xrpnt++ = -iemmp3_ispow[y] * v; + else + *xrpnt++ = iemmp3_ispow[y] * v; + } + else if(y) + { + max = cb; + if(get1bit()) + *xrpnt++ = -iemmp3_ispow[y] * v; + else + *xrpnt++ = iemmp3_ispow[y] * v; + part2remain--; + } + else + *xrpnt++ = 0.0; + } + } + + /* + * short (count1table) values + */ + for(;l3 && (part2remain > 0);l3--) + { + struct iemmp3_newHuff *h = iemmp3_htc+gr_info->count1table_select; + register short *val = h->table,a; + + while((a=*val++)<0) + { + part2remain--; + if(part2remain < 0) + { + part2remain++; + a = 0; + break; + } + if (get1bit()) + val -= a; + } + + for(i=0;i<4;i++) + { + if(!(i & 1)) + { + if(!mc) + { + mc = *m++; + cb = *m++; + v = gr_info->pow2gain[((*scf++) + (*pretab++)) << shift]; + } + mc--; + } + if ( (a & (0x8>>i)) ) + { + max = cb; + part2remain--; + if(part2remain < 0) + { + part2remain++; + break; + } + if(get1bit()) + *xrpnt++ = -v; + else + *xrpnt++ = v; + } + else + *xrpnt++ = 0.0; + } + } + + /* + * zero part + */ + for(i=(&xr[SBLIMIT][0]-xrpnt)>>1;i;i--) + { + *xrpnt++ = 0.0; + *xrpnt++ = 0.0; + } + + gr_info->maxbandl = max+1; + gr_info->maxb = iemmp3_longLimit[sfreq][gr_info->maxbandl]; + } + + while( part2remain > 16 ) + { + getbits(16); /* Dismiss stuffing Bits */ + part2remain -= 16; + } + if(part2remain > 0) + getbits(part2remain); + else if(part2remain < 0) + { + post("mpg123: Can't rewind stream by %d bits!\n",-part2remain); + return 1; /* -> error */ + } + return 0; +} + +static void III_i_stereo(real xr_buf[2][SBLIMIT][SSLIMIT],int *scalefac, + struct iemmp3_gr_info_s *gr_info,int sfreq,int ms_stereo,int lsf) +{ + real (*xr)[SBLIMIT*SSLIMIT] = (real (*)[SBLIMIT*SSLIMIT] ) xr_buf; + struct iemmp3_bandInfoStruct *bi = &bandInfo[sfreq]; + real *tab1,*tab2; + + if(lsf) + { + int p = gr_info->scalefac_compress & 0x1; + if(ms_stereo) + { + tab1 = iemmp3_pow1_2[p]; tab2 = iemmp3_pow2_2[p]; + } + else + { + tab1 = iemmp3_pow1_1[p]; tab2 = iemmp3_pow2_1[p]; + } + } + else + { + if(ms_stereo) + { + tab1 = iemmp3_tan1_2; tab2 = iemmp3_tan2_2; + } + else + { + tab1 = iemmp3_tan1_1; tab2 = iemmp3_tan2_1; + } + } + + if (gr_info->block_type == 2) + { + int lwin,do_l = 0; + if( gr_info->mixed_block_flag ) + do_l = 1; + + for (lwin=0;lwin<3;lwin++) /* process each window */ + { + /* get first band with zero values */ + int is_p,sb,idx,sfb = gr_info->maxband[lwin]; /* sfb is minimal 3 for mixed mode */ + if(sfb > 3) + do_l = 0; + + for(;sfb<12;sfb++) + { + is_p = scalefac[sfb*3+lwin-gr_info->mixed_block_flag]; /* scale: 0-15 */ + if(is_p != 7) { + real t1,t2; + sb = bi->shortDiff[sfb]; + idx = bi->shortIdx[sfb] + lwin; + t1 = tab1[is_p]; t2 = tab2[is_p]; + for (; sb > 0; sb--,idx+=3) + { + real v = xr[0][idx]; + xr[0][idx] = v * t1; + xr[1][idx] = v * t2; + } + } + } + +#if 1 + /* in the original: copy 10 to 11 , here: copy 11 to 12 + maybe still wrong??? (copy 12 to 13?) */ + is_p = scalefac[11*3+lwin-gr_info->mixed_block_flag]; /* scale: 0-15 */ + sb = bi->shortDiff[12]; + idx = bi->shortIdx[12] + lwin; +#else + is_p = scalefac[10*3+lwin-gr_info->mixed_block_flag]; /* scale: 0-15 */ + sb = bi->shortDiff[11]; + idx = bi->shortIdx[11] + lwin; +#endif + if(is_p != 7) + { + real t1,t2; + t1 = tab1[is_p]; t2 = tab2[is_p]; + for ( ; sb > 0; sb--,idx+=3 ) + { + real v = xr[0][idx]; + xr[0][idx] = v * t1; + xr[1][idx] = v * t2; + } + } + } /* end for(lwin; .. ; . ) */ + + if (do_l) + { + /* also check l-part, if ALL bands in the three windows are 'empty' + * and mode = mixed_mode + */ + int sfb = gr_info->maxbandl; + int idx = bi->longIdx[sfb]; + + for ( ; sfb<8; sfb++ ) + { + int sb = bi->longDiff[sfb]; + int is_p = scalefac[sfb]; /* scale: 0-15 */ + if(is_p != 7) { + real t1,t2; + t1 = tab1[is_p]; t2 = tab2[is_p]; + for ( ; sb > 0; sb--,idx++) + { + real v = xr[0][idx]; + xr[0][idx] = v * t1; + xr[1][idx] = v * t2; + } + } + else + idx += sb; + } + } + } + else /* ((gr_info->block_type != 2)) */ + { + int sfb = gr_info->maxbandl; + int is_p,idx = bi->longIdx[sfb]; + for ( ; sfb<21; sfb++) + { + int sb = bi->longDiff[sfb]; + is_p = scalefac[sfb]; /* scale: 0-15 */ + if(is_p != 7) { + real t1,t2; + t1 = tab1[is_p]; t2 = tab2[is_p]; + for ( ; sb > 0; sb--,idx++) + { + real v = xr[0][idx]; + xr[0][idx] = v * t1; + xr[1][idx] = v * t2; + } + } + else + idx += sb; + } + + is_p = scalefac[20]; /* copy l-band 20 to l-band 21 */ + if(is_p != 7) + { + int sb; + real t1 = tab1[is_p],t2 = tab2[is_p]; + + for ( sb = bi->longDiff[21]; sb > 0; sb--,idx++ ) + { + real v = xr[0][idx]; + xr[0][idx] = v * t1; + xr[1][idx] = v * t2; + } + } + } /* ... */ +} + + +static void III_antialias(real xr[SBLIMIT][SSLIMIT],struct iemmp3_gr_info_s *gr_info) +{ + int sblim; + + if(gr_info->block_type == 2) + { + if(!gr_info->mixed_block_flag) + return; + sblim = 1; + } + else { + sblim = gr_info->maxb-1; + } + + /* 31 alias-reduction operations between each pair of sub-bands */ + /* with 8 butterflies between each pair */ + + { + int sb; + real *xr1=(real *) xr[1]; + + for(sb=sblim;sb;sb--,xr1+=10) + { + int ss; + real *cs=iemmp3_aa_cs,*ca=iemmp3_aa_ca; + real *xr2 = xr1; + + for(ss=7;ss>=0;ss--) + { /* upper and lower butterfly inputs */ + register real bu = *--xr2,bd = *xr1; + *xr2 = (bu * (*cs) ) - (bd * (*ca) ); + *xr1++ = (bd * (*cs++) ) + (bu * (*ca++) ); + } + } + } +} + +static void III_hybrid(real fsIn[SBLIMIT][SSLIMIT],real tsOut[SSLIMIT][SBLIMIT], + int ch,struct iemmp3_gr_info_s *gr_info) +{ + real *tspnt = (real *) tsOut; + real (*block)[2][SBLIMIT*SSLIMIT] = iemmp3_gmp->hybrid_block; + int *blc = iemmp3_gmp->hybrid_blc; + real *rawout1,*rawout2; + int bt; + unsigned int sb = 0; + + { + int b = blc[ch]; + rawout1=block[b][ch]; + b=-b+1; + rawout2=block[b][ch]; + blc[ch] = b; + } + + + if(gr_info->mixed_block_flag) { + sb = 2; + dct36(fsIn[0],rawout1,rawout2,iemmp3_win[0],tspnt); + dct36(fsIn[1],rawout1+18,rawout2+18,iemmp3_win1[0],tspnt+1); + rawout1 += 36; rawout2 += 36; tspnt += 2; + } + + bt = gr_info->block_type; + if(bt == 2) { + for (; sb<gr_info->maxb; sb+=2,tspnt+=2,rawout1+=36,rawout2+=36) { + dct12(fsIn[sb],rawout1,rawout2,iemmp3_win[2],tspnt); + dct12(fsIn[sb+1],rawout1+18,rawout2+18,iemmp3_win1[2],tspnt+1); + } + } + else { + for (; sb<gr_info->maxb; sb+=2,tspnt+=2,rawout1+=36,rawout2+=36) { + dct36(fsIn[sb],rawout1,rawout2,iemmp3_win[bt],tspnt); + dct36(fsIn[sb+1],rawout1+18,rawout2+18,iemmp3_win1[bt],tspnt+1); + } + } + + for(;sb<SBLIMIT;sb++,tspnt++) { + int i; + for(i=0;i<SSLIMIT;i++) { + tspnt[i*SBLIMIT] = *rawout1++; + *rawout2++ = 0.0; + } + } +} + +static void dct64_1(real *out0,real *out1,real *b1,real *b2,real *samples) +{ + + { + register real *costab = iemmp3_pnts[0]; + + b1[0x00] = samples[0x00] + samples[0x1F]; + b1[0x1F] = (samples[0x00] - samples[0x1F]) * costab[0x0]; + + b1[0x01] = samples[0x01] + samples[0x1E]; + b1[0x1E] = (samples[0x01] - samples[0x1E]) * costab[0x1]; + + b1[0x02] = samples[0x02] + samples[0x1D]; + b1[0x1D] = (samples[0x02] - samples[0x1D]) * costab[0x2]; + + b1[0x03] = samples[0x03] + samples[0x1C]; + b1[0x1C] = (samples[0x03] - samples[0x1C]) * costab[0x3]; + + b1[0x04] = samples[0x04] + samples[0x1B]; + b1[0x1B] = (samples[0x04] - samples[0x1B]) * costab[0x4]; + + b1[0x05] = samples[0x05] + samples[0x1A]; + b1[0x1A] = (samples[0x05] - samples[0x1A]) * costab[0x5]; + + b1[0x06] = samples[0x06] + samples[0x19]; + b1[0x19] = (samples[0x06] - samples[0x19]) * costab[0x6]; + + b1[0x07] = samples[0x07] + samples[0x18]; + b1[0x18] = (samples[0x07] - samples[0x18]) * costab[0x7]; + + b1[0x08] = samples[0x08] + samples[0x17]; + b1[0x17] = (samples[0x08] - samples[0x17]) * costab[0x8]; + + b1[0x09] = samples[0x09] + samples[0x16]; + b1[0x16] = (samples[0x09] - samples[0x16]) * costab[0x9]; + + b1[0x0A] = samples[0x0A] + samples[0x15]; + b1[0x15] = (samples[0x0A] - samples[0x15]) * costab[0xA]; + + b1[0x0B] = samples[0x0B] + samples[0x14]; + b1[0x14] = (samples[0x0B] - samples[0x14]) * costab[0xB]; + + b1[0x0C] = samples[0x0C] + samples[0x13]; + b1[0x13] = (samples[0x0C] - samples[0x13]) * costab[0xC]; + + b1[0x0D] = samples[0x0D] + samples[0x12]; + b1[0x12] = (samples[0x0D] - samples[0x12]) * costab[0xD]; + + b1[0x0E] = samples[0x0E] + samples[0x11]; + b1[0x11] = (samples[0x0E] - samples[0x11]) * costab[0xE]; + + b1[0x0F] = samples[0x0F] + samples[0x10]; + b1[0x10] = (samples[0x0F] - samples[0x10]) * costab[0xF]; + } + + + { + register real *costab = iemmp3_pnts[1]; + + b2[0x00] = b1[0x00] + b1[0x0F]; + b2[0x0F] = (b1[0x00] - b1[0x0F]) * costab[0]; + b2[0x01] = b1[0x01] + b1[0x0E]; + b2[0x0E] = (b1[0x01] - b1[0x0E]) * costab[1]; + b2[0x02] = b1[0x02] + b1[0x0D]; + b2[0x0D] = (b1[0x02] - b1[0x0D]) * costab[2]; + b2[0x03] = b1[0x03] + b1[0x0C]; + b2[0x0C] = (b1[0x03] - b1[0x0C]) * costab[3]; + b2[0x04] = b1[0x04] + b1[0x0B]; + b2[0x0B] = (b1[0x04] - b1[0x0B]) * costab[4]; + b2[0x05] = b1[0x05] + b1[0x0A]; + b2[0x0A] = (b1[0x05] - b1[0x0A]) * costab[5]; + b2[0x06] = b1[0x06] + b1[0x09]; + b2[0x09] = (b1[0x06] - b1[0x09]) * costab[6]; + b2[0x07] = b1[0x07] + b1[0x08]; + b2[0x08] = (b1[0x07] - b1[0x08]) * costab[7]; + + b2[0x10] = b1[0x10] + b1[0x1F]; + b2[0x1F] = (b1[0x1F] - b1[0x10]) * costab[0]; + b2[0x11] = b1[0x11] + b1[0x1E]; + b2[0x1E] = (b1[0x1E] - b1[0x11]) * costab[1]; + b2[0x12] = b1[0x12] + b1[0x1D]; + b2[0x1D] = (b1[0x1D] - b1[0x12]) * costab[2]; + b2[0x13] = b1[0x13] + b1[0x1C]; + b2[0x1C] = (b1[0x1C] - b1[0x13]) * costab[3]; + b2[0x14] = b1[0x14] + b1[0x1B]; + b2[0x1B] = (b1[0x1B] - b1[0x14]) * costab[4]; + b2[0x15] = b1[0x15] + b1[0x1A]; + b2[0x1A] = (b1[0x1A] - b1[0x15]) * costab[5]; + b2[0x16] = b1[0x16] + b1[0x19]; + b2[0x19] = (b1[0x19] - b1[0x16]) * costab[6]; + b2[0x17] = b1[0x17] + b1[0x18]; + b2[0x18] = (b1[0x18] - b1[0x17]) * costab[7]; + } + + { + register real *costab = iemmp3_pnts[2]; + + b1[0x00] = b2[0x00] + b2[0x07]; + b1[0x07] = (b2[0x00] - b2[0x07]) * costab[0]; + b1[0x01] = b2[0x01] + b2[0x06]; + b1[0x06] = (b2[0x01] - b2[0x06]) * costab[1]; + b1[0x02] = b2[0x02] + b2[0x05]; + b1[0x05] = (b2[0x02] - b2[0x05]) * costab[2]; + b1[0x03] = b2[0x03] + b2[0x04]; + b1[0x04] = (b2[0x03] - b2[0x04]) * costab[3]; + + b1[0x08] = b2[0x08] + b2[0x0F]; + b1[0x0F] = (b2[0x0F] - b2[0x08]) * costab[0]; + b1[0x09] = b2[0x09] + b2[0x0E]; + b1[0x0E] = (b2[0x0E] - b2[0x09]) * costab[1]; + b1[0x0A] = b2[0x0A] + b2[0x0D]; + b1[0x0D] = (b2[0x0D] - b2[0x0A]) * costab[2]; + b1[0x0B] = b2[0x0B] + b2[0x0C]; + b1[0x0C] = (b2[0x0C] - b2[0x0B]) * costab[3]; + + b1[0x10] = b2[0x10] + b2[0x17]; + b1[0x17] = (b2[0x10] - b2[0x17]) * costab[0]; + b1[0x11] = b2[0x11] + b2[0x16]; + b1[0x16] = (b2[0x11] - b2[0x16]) * costab[1]; + b1[0x12] = b2[0x12] + b2[0x15]; + b1[0x15] = (b2[0x12] - b2[0x15]) * costab[2]; + b1[0x13] = b2[0x13] + b2[0x14]; + b1[0x14] = (b2[0x13] - b2[0x14]) * costab[3]; + + b1[0x18] = b2[0x18] + b2[0x1F]; + b1[0x1F] = (b2[0x1F] - b2[0x18]) * costab[0]; + b1[0x19] = b2[0x19] + b2[0x1E]; + b1[0x1E] = (b2[0x1E] - b2[0x19]) * costab[1]; + b1[0x1A] = b2[0x1A] + b2[0x1D]; + b1[0x1D] = (b2[0x1D] - b2[0x1A]) * costab[2]; + b1[0x1B] = b2[0x1B] + b2[0x1C]; + b1[0x1C] = (b2[0x1C] - b2[0x1B]) * costab[3]; + } + + { + register real const cos0 = iemmp3_pnts[3][0]; + register real const cos1 = iemmp3_pnts[3][1]; + + b2[0x00] = b1[0x00] + b1[0x03]; + b2[0x03] = (b1[0x00] - b1[0x03]) * cos0; + b2[0x01] = b1[0x01] + b1[0x02]; + b2[0x02] = (b1[0x01] - b1[0x02]) * cos1; + + b2[0x04] = b1[0x04] + b1[0x07]; + b2[0x07] = (b1[0x07] - b1[0x04]) * cos0; + b2[0x05] = b1[0x05] + b1[0x06]; + b2[0x06] = (b1[0x06] - b1[0x05]) * cos1; + + b2[0x08] = b1[0x08] + b1[0x0B]; + b2[0x0B] = (b1[0x08] - b1[0x0B]) * cos0; + b2[0x09] = b1[0x09] + b1[0x0A]; + b2[0x0A] = (b1[0x09] - b1[0x0A]) * cos1; + + b2[0x0C] = b1[0x0C] + b1[0x0F]; + b2[0x0F] = (b1[0x0F] - b1[0x0C]) * cos0; + b2[0x0D] = b1[0x0D] + b1[0x0E]; + b2[0x0E] = (b1[0x0E] - b1[0x0D]) * cos1; + + b2[0x10] = b1[0x10] + b1[0x13]; + b2[0x13] = (b1[0x10] - b1[0x13]) * cos0; + b2[0x11] = b1[0x11] + b1[0x12]; + b2[0x12] = (b1[0x11] - b1[0x12]) * cos1; + + b2[0x14] = b1[0x14] + b1[0x17]; + b2[0x17] = (b1[0x17] - b1[0x14]) * cos0; + b2[0x15] = b1[0x15] + b1[0x16]; + b2[0x16] = (b1[0x16] - b1[0x15]) * cos1; + + b2[0x18] = b1[0x18] + b1[0x1B]; + b2[0x1B] = (b1[0x18] - b1[0x1B]) * cos0; + b2[0x19] = b1[0x19] + b1[0x1A]; + b2[0x1A] = (b1[0x19] - b1[0x1A]) * cos1; + + b2[0x1C] = b1[0x1C] + b1[0x1F]; + b2[0x1F] = (b1[0x1F] - b1[0x1C]) * cos0; + b2[0x1D] = b1[0x1D] + b1[0x1E]; + b2[0x1E] = (b1[0x1E] - b1[0x1D]) * cos1; + } + + { + register real const cos0 = iemmp3_pnts[4][0]; + + b1[0x00] = b2[0x00] + b2[0x01]; + b1[0x01] = (b2[0x00] - b2[0x01]) * cos0; + b1[0x02] = b2[0x02] + b2[0x03]; + b1[0x03] = (b2[0x03] - b2[0x02]) * cos0; + b1[0x02] += b1[0x03]; + + b1[0x04] = b2[0x04] + b2[0x05]; + b1[0x05] = (b2[0x04] - b2[0x05]) * cos0; + b1[0x06] = b2[0x06] + b2[0x07]; + b1[0x07] = (b2[0x07] - b2[0x06]) * cos0; + b1[0x06] += b1[0x07]; + b1[0x04] += b1[0x06]; + b1[0x06] += b1[0x05]; + b1[0x05] += b1[0x07]; + + b1[0x08] = b2[0x08] + b2[0x09]; + b1[0x09] = (b2[0x08] - b2[0x09]) * cos0; + b1[0x0A] = b2[0x0A] + b2[0x0B]; + b1[0x0B] = (b2[0x0B] - b2[0x0A]) * cos0; + b1[0x0A] += b1[0x0B]; + + b1[0x0C] = b2[0x0C] + b2[0x0D]; + b1[0x0D] = (b2[0x0C] - b2[0x0D]) * cos0; + b1[0x0E] = b2[0x0E] + b2[0x0F]; + b1[0x0F] = (b2[0x0F] - b2[0x0E]) * cos0; + b1[0x0E] += b1[0x0F]; + b1[0x0C] += b1[0x0E]; + b1[0x0E] += b1[0x0D]; + b1[0x0D] += b1[0x0F]; + + b1[0x10] = b2[0x10] + b2[0x11]; + b1[0x11] = (b2[0x10] - b2[0x11]) * cos0; + b1[0x12] = b2[0x12] + b2[0x13]; + b1[0x13] = (b2[0x13] - b2[0x12]) * cos0; + b1[0x12] += b1[0x13]; + + b1[0x14] = b2[0x14] + b2[0x15]; + b1[0x15] = (b2[0x14] - b2[0x15]) * cos0; + b1[0x16] = b2[0x16] + b2[0x17]; + b1[0x17] = (b2[0x17] - b2[0x16]) * cos0; + b1[0x16] += b1[0x17]; + b1[0x14] += b1[0x16]; + b1[0x16] += b1[0x15]; + b1[0x15] += b1[0x17]; + + b1[0x18] = b2[0x18] + b2[0x19]; + b1[0x19] = (b2[0x18] - b2[0x19]) * cos0; + b1[0x1A] = b2[0x1A] + b2[0x1B]; + b1[0x1B] = (b2[0x1B] - b2[0x1A]) * cos0; + b1[0x1A] += b1[0x1B]; + + b1[0x1C] = b2[0x1C] + b2[0x1D]; + b1[0x1D] = (b2[0x1C] - b2[0x1D]) * cos0; + b1[0x1E] = b2[0x1E] + b2[0x1F]; + b1[0x1F] = (b2[0x1F] - b2[0x1E]) * cos0; + b1[0x1E] += b1[0x1F]; + b1[0x1C] += b1[0x1E]; + b1[0x1E] += b1[0x1D]; + b1[0x1D] += b1[0x1F]; + } + + out0[0x10*16] = b1[0x00]; + out0[0x10*12] = b1[0x04]; + out0[0x10* 8] = b1[0x02]; + out0[0x10* 4] = b1[0x06]; + out0[0x10* 0] = b1[0x01]; + out1[0x10* 0] = b1[0x01]; + out1[0x10* 4] = b1[0x05]; + out1[0x10* 8] = b1[0x03]; + out1[0x10*12] = b1[0x07]; + + b1[0x08] += b1[0x0C]; + out0[0x10*14] = b1[0x08]; + b1[0x0C] += b1[0x0a]; + out0[0x10*10] = b1[0x0C]; + b1[0x0A] += b1[0x0E]; + out0[0x10* 6] = b1[0x0A]; + b1[0x0E] += b1[0x09]; + out0[0x10* 2] = b1[0x0E]; + b1[0x09] += b1[0x0D]; + out1[0x10* 2] = b1[0x09]; + b1[0x0D] += b1[0x0B]; + out1[0x10* 6] = b1[0x0D]; + b1[0x0B] += b1[0x0F]; + out1[0x10*10] = b1[0x0B]; + out1[0x10*14] = b1[0x0F]; + + b1[0x18] += b1[0x1C]; + out0[0x10*15] = b1[0x10] + b1[0x18]; + out0[0x10*13] = b1[0x18] + b1[0x14]; + b1[0x1C] += b1[0x1a]; + out0[0x10*11] = b1[0x14] + b1[0x1C]; + out0[0x10* 9] = b1[0x1C] + b1[0x12]; + b1[0x1A] += b1[0x1E]; + out0[0x10* 7] = b1[0x12] + b1[0x1A]; + out0[0x10* 5] = b1[0x1A] + b1[0x16]; + b1[0x1E] += b1[0x19]; + out0[0x10* 3] = b1[0x16] + b1[0x1E]; + out0[0x10* 1] = b1[0x1E] + b1[0x11]; + b1[0x19] += b1[0x1D]; + out1[0x10* 1] = b1[0x11] + b1[0x19]; + out1[0x10* 3] = b1[0x19] + b1[0x15]; + b1[0x1D] += b1[0x1B]; + out1[0x10* 5] = b1[0x15] + b1[0x1D]; + out1[0x10* 7] = b1[0x1D] + b1[0x13]; + b1[0x1B] += b1[0x1F]; + out1[0x10* 9] = b1[0x13] + b1[0x1B]; + out1[0x10*11] = b1[0x1B] + b1[0x17]; + out1[0x10*13] = b1[0x17] + b1[0x1F]; + out1[0x10*15] = b1[0x1F]; +} + +/* + * the call via dct64 is a trick to force GCC to use + * (new) registers for the b1,b2 pointer to the bufs[xx] field + */ +void dct64(real *a,real *b,real *c) +{ + real bufs[0x40]; + dct64_1(a,b,bufs,bufs+0x20,c); +} + +static void dct36(real *inbuf,real *o1,real *o2,real *wintab,real *tsbuf) +{ + { + register real *in = inbuf; + + in[17]+=in[16]; in[16]+=in[15]; in[15]+=in[14]; + in[14]+=in[13]; in[13]+=in[12]; in[12]+=in[11]; + in[11]+=in[10]; in[10]+=in[9]; in[9] +=in[8]; + in[8] +=in[7]; in[7] +=in[6]; in[6] +=in[5]; + in[5] +=in[4]; in[4] +=in[3]; in[3] +=in[2]; + in[2] +=in[1]; in[1] +=in[0]; + + in[17]+=in[15]; in[15]+=in[13]; in[13]+=in[11]; in[11]+=in[9]; + in[9] +=in[7]; in[7] +=in[5]; in[5] +=in[3]; in[3] +=in[1]; + + + { + +#define MACRO0(v) { \ + real tmp; \ + out2[9+(v)] = (tmp = sum0 + sum1) * w[27+(v)]; \ + out2[8-(v)] = tmp * w[26-(v)]; } \ + sum0 -= sum1; \ + ts[SBLIMIT*(8-(v))] = out1[8-(v)] + sum0 * w[8-(v)]; \ + ts[SBLIMIT*(9+(v))] = out1[9+(v)] + sum0 * w[9+(v)]; +#define MACRO1(v) { \ + real sum0,sum1; \ + sum0 = tmp1a + tmp2a; \ + sum1 = (tmp1b + tmp2b) * iemmp3_tfcos36[(v)]; \ + MACRO0(v); } +#define MACRO2(v) { \ + real sum0,sum1; \ + sum0 = tmp2a - tmp1a; \ + sum1 = (tmp2b - tmp1b) * iemmp3_tfcos36[(v)]; \ + MACRO0(v); } + + register const real *c = iemmp3_COS9; + register real *out2 = o2; + register real *w = wintab; + register real *out1 = o1; + register real *ts = tsbuf; + + real ta33,ta66,tb33,tb66; + + ta33 = in[2*3+0] * c[3]; + ta66 = in[2*6+0] * c[6]; + tb33 = in[2*3+1] * c[3]; + tb66 = in[2*6+1] * c[6]; + + { + real tmp1a,tmp2a,tmp1b,tmp2b; + tmp1a = in[2*1+0] * c[1] + ta33 + in[2*5+0] * c[5] + in[2*7+0] * c[7]; + tmp1b = in[2*1+1] * c[1] + tb33 + in[2*5+1] * c[5] + in[2*7+1] * c[7]; + tmp2a = in[2*0+0] + in[2*2+0] * c[2] + in[2*4+0] * c[4] + ta66 + in[2*8+0] * c[8]; + tmp2b = in[2*0+1] + in[2*2+1] * c[2] + in[2*4+1] * c[4] + tb66 + in[2*8+1] * c[8]; + + MACRO1(0); + MACRO2(8); + } + + { + real tmp1a,tmp2a,tmp1b,tmp2b; + tmp1a = ( in[2*1+0] - in[2*5+0] - in[2*7+0] ) * c[3]; + tmp1b = ( in[2*1+1] - in[2*5+1] - in[2*7+1] ) * c[3]; + tmp2a = ( in[2*2+0] - in[2*4+0] - in[2*8+0] ) * c[6] - in[2*6+0] + in[2*0+0]; + tmp2b = ( in[2*2+1] - in[2*4+1] - in[2*8+1] ) * c[6] - in[2*6+1] + in[2*0+1]; + + MACRO1(1); + MACRO2(7); + } + + { + real tmp1a,tmp2a,tmp1b,tmp2b; + tmp1a = in[2*1+0] * c[5] - ta33 - in[2*5+0] * c[7] + in[2*7+0] * c[1]; + tmp1b = in[2*1+1] * c[5] - tb33 - in[2*5+1] * c[7] + in[2*7+1] * c[1]; + tmp2a = in[2*0+0] - in[2*2+0] * c[8] - in[2*4+0] * c[2] + ta66 + in[2*8+0] * c[4]; + tmp2b = in[2*0+1] - in[2*2+1] * c[8] - in[2*4+1] * c[2] + tb66 + in[2*8+1] * c[4]; + + MACRO1(2); + MACRO2(6); + } + + { + real tmp1a,tmp2a,tmp1b,tmp2b; + tmp1a = in[2*1+0] * c[7] - ta33 + in[2*5+0] * c[1] - in[2*7+0] * c[5]; + tmp1b = in[2*1+1] * c[7] - tb33 + in[2*5+1] * c[1] - in[2*7+1] * c[5]; + tmp2a = in[2*0+0] - in[2*2+0] * c[4] + in[2*4+0] * c[8] + ta66 - in[2*8+0] * c[2]; + tmp2b = in[2*0+1] - in[2*2+1] * c[4] + in[2*4+1] * c[8] + tb66 - in[2*8+1] * c[2]; + + MACRO1(3); + MACRO2(5); + } + + { + real sum0,sum1; + sum0 = in[2*0+0] - in[2*2+0] + in[2*4+0] - in[2*6+0] + in[2*8+0]; + sum1 = (in[2*0+1] - in[2*2+1] + in[2*4+1] - in[2*6+1] + in[2*8+1] ) * iemmp3_tfcos36[4]; + MACRO0(4); + } + } + + } +} + +/* + * new DCT12 + */ +static void dct12(real *in,real *rawout1,real *rawout2,register real *wi,register real *ts) +{ +#define DCT12_PART1 \ + in5 = in[5*3]; \ + in5 += (in4 = in[4*3]); \ + in4 += (in3 = in[3*3]); \ + in3 += (in2 = in[2*3]); \ + in2 += (in1 = in[1*3]); \ + in1 += (in0 = in[0*3]); \ + \ + in5 += in3; in3 += in1; \ + \ + in2 *= iemmp3_COS6_1; \ + in3 *= iemmp3_COS6_1; \ + +#define DCT12_PART2 \ + in0 += in4 * iemmp3_COS6_2; \ + \ + in4 = in0 + in2; \ + in0 -= in2; \ + \ + in1 += in5 * iemmp3_COS6_2; \ + \ + in5 = (in1 + in3) * iemmp3_tfcos12[0]; \ + in1 = (in1 - in3) * iemmp3_tfcos12[2]; \ + \ + in3 = in4 + in5; \ + in4 -= in5; \ + \ + in2 = in0 + in1; \ + in0 -= in1; + + + { + real in0,in1,in2,in3,in4,in5; + register real *out1 = rawout1; + ts[SBLIMIT*0] = out1[0]; ts[SBLIMIT*1] = out1[1]; ts[SBLIMIT*2] = out1[2]; + ts[SBLIMIT*3] = out1[3]; ts[SBLIMIT*4] = out1[4]; ts[SBLIMIT*5] = out1[5]; + + DCT12_PART1 + + { + real tmp0,tmp1 = (in0 - in4); + { + real tmp2 = (in1 - in5) * iemmp3_tfcos12[1]; + tmp0 = tmp1 + tmp2; + tmp1 -= tmp2; + } + ts[(17-1)*SBLIMIT] = out1[17-1] + tmp0 * wi[11-1]; + ts[(12+1)*SBLIMIT] = out1[12+1] + tmp0 * wi[6+1]; + ts[(6 +1)*SBLIMIT] = out1[6 +1] + tmp1 * wi[1]; + ts[(11-1)*SBLIMIT] = out1[11-1] + tmp1 * wi[5-1]; + } + + DCT12_PART2 + + ts[(17-0)*SBLIMIT] = out1[17-0] + in2 * wi[11-0]; + ts[(12+0)*SBLIMIT] = out1[12+0] + in2 * wi[6+0]; + ts[(12+2)*SBLIMIT] = out1[12+2] + in3 * wi[6+2]; + ts[(17-2)*SBLIMIT] = out1[17-2] + in3 * wi[11-2]; + + ts[(6+0)*SBLIMIT] = out1[6+0] + in0 * wi[0]; + ts[(11-0)*SBLIMIT] = out1[11-0] + in0 * wi[5-0]; + ts[(6+2)*SBLIMIT] = out1[6+2] + in4 * wi[2]; + ts[(11-2)*SBLIMIT] = out1[11-2] + in4 * wi[5-2]; + } + + in++; + + { + real in0,in1,in2,in3,in4,in5; + register real *out2 = rawout2; + + DCT12_PART1 + + { + real tmp0,tmp1 = (in0 - in4); + { + real tmp2 = (in1 - in5) * iemmp3_tfcos12[1]; + tmp0 = tmp1 + tmp2; + tmp1 -= tmp2; + } + out2[5-1] = tmp0 * wi[11-1]; + out2[0+1] = tmp0 * wi[6+1]; + ts[(12+1)*SBLIMIT] += tmp1 * wi[1]; + ts[(17-1)*SBLIMIT] += tmp1 * wi[5-1]; + } + + DCT12_PART2 + + out2[5-0] = in2 * wi[11-0]; + out2[0+0] = in2 * wi[6+0]; + out2[0+2] = in3 * wi[6+2]; + out2[5-2] = in3 * wi[11-2]; + + ts[(12+0)*SBLIMIT] += in0 * wi[0]; + ts[(17-0)*SBLIMIT] += in0 * wi[5-0]; + ts[(12+2)*SBLIMIT] += in4 * wi[2]; + ts[(17-2)*SBLIMIT] += in4 * wi[5-2]; + } + + in++; + + { + real in0,in1,in2,in3,in4,in5; + register real *out2 = rawout2; + out2[12]=out2[13]=out2[14]=out2[15]=out2[16]=out2[17]=0.0; + + DCT12_PART1 + + { + real tmp0,tmp1 = (in0 - in4); + { + real tmp2 = (in1 - in5) * iemmp3_tfcos12[1]; + tmp0 = tmp1 + tmp2; + tmp1 -= tmp2; + } + out2[11-1] = tmp0 * wi[11-1]; + out2[6 +1] = tmp0 * wi[6+1]; + out2[0+1] += tmp1 * wi[1]; + out2[5-1] += tmp1 * wi[5-1]; + } + + DCT12_PART2 + + out2[11-0] = in2 * wi[11-0]; + out2[6 +0] = in2 * wi[6+0]; + out2[6 +2] = in3 * wi[6+2]; + out2[11-2] = in3 * wi[11-2]; + + out2[0+0] += in0 * wi[0]; + out2[5-0] += in0 * wi[5-0]; + out2[0+2] += in4 * wi[2]; + out2[5-2] += in4 * wi[5-2]; + } +} + +static int synth_1to1_mono(real *bandPtr,unsigned char *samples,int *pnt) +{ + short samples_tmp[64]; + short *tmp1 = samples_tmp; + int i,ret; + int pnt1 = 0; + + ret = synth_1to1(bandPtr,0,(unsigned char *) samples_tmp,&pnt1); + samples += *pnt; + + for(i=0;i<32;i++) + { + *( (short *) samples) = *tmp1; + samples += 2; + tmp1 += 2; + } + *pnt += 64; + + return ret; +} + + +static int synth_1to1(real *bandPtr,int channel,unsigned char *out,int *pnt) +{ + static const int step = 2; + int bo; + short *samples = (short *) (out + *pnt); + + real *b0,(*buf)[0x110]; + int clip = 0; + int bo1; + + bo = iemmp3_gmp->synth_bo; + + if(!channel) + { + bo--; + bo &= 0xf; + buf = iemmp3_gmp->synth_buffs[0]; + } + else + { + samples++; + buf = iemmp3_gmp->synth_buffs[1]; + } + + if(bo & 0x1) + { + b0 = buf[0]; + bo1 = bo; + dct64(buf[1]+((bo+1)&0xf),buf[0]+bo,bandPtr); + } + else + { + b0 = buf[1]; + bo1 = bo+1; + dct64(buf[0]+bo,buf[1]+bo+1,bandPtr); + } + + iemmp3_gmp->synth_bo = bo; + + { + register int j; + real *window = iemmp3_decwin + 16 - bo1; + + for (j=16;j;j--,b0+=0x10,window+=0x20,samples+=step) + { + real sum; + sum = window[0x0] * b0[0x0]; + sum -= window[0x1] * b0[0x1]; + sum += window[0x2] * b0[0x2]; + sum -= window[0x3] * b0[0x3]; + sum += window[0x4] * b0[0x4]; + sum -= window[0x5] * b0[0x5]; + sum += window[0x6] * b0[0x6]; + sum -= window[0x7] * b0[0x7]; + sum += window[0x8] * b0[0x8]; + sum -= window[0x9] * b0[0x9]; + sum += window[0xA] * b0[0xA]; + sum -= window[0xB] * b0[0xB]; + sum += window[0xC] * b0[0xC]; + sum -= window[0xD] * b0[0xD]; + sum += window[0xE] * b0[0xE]; + sum -= window[0xF] * b0[0xF]; + WRITE_SAMPLE(samples,sum,clip); + } + + { + real sum; + sum = window[0x0] * b0[0x0]; + sum += window[0x2] * b0[0x2]; + sum += window[0x4] * b0[0x4]; + sum += window[0x6] * b0[0x6]; + sum += window[0x8] * b0[0x8]; + sum += window[0xA] * b0[0xA]; + sum += window[0xC] * b0[0xC]; + sum += window[0xE] * b0[0xE]; + WRITE_SAMPLE(samples,sum,clip); + b0-=0x10,window-=0x20,samples+=step; + } + window += bo1<<1; + + for (j=15;j;j--,b0-=0x10,window-=0x20,samples+=step) + { + real sum; + sum = -window[-0x1] * b0[0x0]; + sum -= window[-0x2] * b0[0x1]; + sum -= window[-0x3] * b0[0x2]; + sum -= window[-0x4] * b0[0x3]; + sum -= window[-0x5] * b0[0x4]; + sum -= window[-0x6] * b0[0x5]; + sum -= window[-0x7] * b0[0x6]; + sum -= window[-0x8] * b0[0x7]; + sum -= window[-0x9] * b0[0x8]; + sum -= window[-0xA] * b0[0x9]; + sum -= window[-0xB] * b0[0xA]; + sum -= window[-0xC] * b0[0xB]; + sum -= window[-0xD] * b0[0xC]; + sum -= window[-0xE] * b0[0xD]; + sum -= window[-0xF] * b0[0xE]; + sum -= window[-0x0] * b0[0xF]; + WRITE_SAMPLE(samples,sum,clip); + } + } + *pnt += 128; + + return clip; +} + + + +static void *sigmp3play_new(void) +{ + char *vec; + t_sigmp3play *x = (t_sigmp3play *)pd_new(sigmp3play_class); + + x->file_is_open = 0; + x->play_state = 0; + x->mp3_encode_size = 0; + x->mp3_out_index = 0; + x->file_block_num = 0; + x->file_remain = 0; + x->file_size = 0; + x->mp3_ch = 1; + x->mp3_sr = 44100; + x->obj_sr = 44100; + x->obj_n = 1; + x->samp_per_frame = 1152; + x->mp3_byterate = 11; + x->down = 0; + x->scale = 1.0/32768.0; + x->offset_sec = 0.0; + x->fh = (FILE *)0L; + x->mp3inbuf = (char *)getzbytes(MY_MP3_MALLOC_IN_SIZE); + x->mp3outbuf = (char *)getzbytes(MY_MP3_MALLOC_OUT_SIZE); + x->filename = (char *)getzbytes(MY_MP3_MALLOC_FN); + x->begframeseek = (int *)0; + x->curframeseek = 0; + x->maxframeseek = 0; + x->frame_counter = 0; + x->time1_bang0_handle = 0; + x->time_factor = 0.0; + vec = x->filename; + *vec = 0; + InitMP3(&(x->mp)); + x->mp_is_init = 1; + x->x_clock = clock_new(x, (t_method)sigmp3play_tick); + outlet_new(&x->x_obj, &s_signal); + outlet_new(&x->x_obj, &s_signal); + x->x_floatout = outlet_new(&x->x_obj, &s_float); + x->x_bangout = outlet_new(&x->x_obj, &s_bang); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("ft1")); + x->x_canvas = canvas_getcurrent(); + return (x); +} + +static void sigmp3play_cleanup(t_sigmp3play *x) +{ + x->file_is_open = 0; + fclose(x->fh); + x->play_state = 0; + x->mp3_out_index = 0; + x->mp_is_init = 0; + ExitMP3(&(x->mp)); + x->time1_bang0_handle = 0; + clock_delay(x->x_clock, 0); +} + +static int sigmp3play_read_frame_length_first(t_sigmp3play *x, int *frsz) +{ + int framesize, lsf, bitrate_index, sampling_frequency, padding, mpeg25, lay, ret=MP3_EX; + int version, syncword; + unsigned long head; + unsigned char chead; + + *frsz = 0; + if((x->file_size) >= 4) + { + fread(&chead, 1, sizeof(char), x->fh); + head = (unsigned int)chead; + fread(&chead, 1, sizeof(char), x->fh); + head <<= 8; + head |= (unsigned int)chead; + fread(&chead, 1, sizeof(char), x->fh); + head <<= 8; + head |= (unsigned int)chead; + fread(&chead, 1, sizeof(char), x->fh); + head <<= 8; + head |= (unsigned int)chead; + syncword = (head >> 20) & 0x0fff; + version = ((head >> 19) & 0x01) ? 0 : 1; + if((syncword & 0x01) == 0) + version = 2; + if(version == 0) + x->samp_per_frame = 1152; + else + x->samp_per_frame = 576; + + if(head & (1<<20)) + { + lsf = (head & (1<<19)) ? 0x0 : 0x1; + mpeg25 = 0; + } + else + { + lsf = 1; + mpeg25 = 1; + } + lay = 4-((head>>17)&3); + if(((head>>10)&0x3) == 0x3) + { + post("Stream error"); + return(MP3_EX); + } + if(mpeg25) + sampling_frequency = 6 + ((head>>10)&0x3); + else + sampling_frequency = ((head>>10)&0x3) + (lsf*3); + x->mp3_sr = (int)iemmp3_freqs[sampling_frequency]; + if(mpeg25) + bitrate_index = ((head>>12)&0xf); + bitrate_index = ((head>>12)&0xf); + padding = ((head>>9)&0x1); + if(!bitrate_index) + { + post("Free format not supported.\n"); + return(MP3_EX); + } + switch(lay) + { + case 1: + post("Layer I not supported!\n"); + break; + case 2: + post("Layer II not supported!\n"); + break; + case 3: + framesize = iemmp3_tabsel_123[lsf][2][bitrate_index]*144000; + framesize /= (iemmp3_freqs[sampling_frequency] << lsf); + framesize += padding; + *frsz = framesize; + ret = 0; + break; + default: + post("Sorry, unknown layer type.\n"); + break; + } + return(ret); + } + else + { + return(1); + } +} + +static int sigmp3play_read_frame_length_next(t_sigmp3play *x, int *frsz, int frame_counter) +{ + int framesize, lsf, bitrate_index, sampling_frequency, *begframeseek=x->begframeseek; + unsigned long head; + unsigned char chead; + + *frsz = 0; + if(begframeseek[frame_counter] < ((x->file_size) - 4)) + { + fread(&chead, 1, sizeof(char), x->fh); + head = (unsigned int)chead; + fread(&chead, 1, sizeof(char), x->fh); + head <<= 8; + head |= (unsigned int)chead; + fread(&chead, 1, sizeof(char), x->fh); + head <<= 8; + head |= (unsigned int)chead; + fread(&chead, 1, sizeof(char), x->fh); + head <<= 8; + head |= (unsigned int)chead; + if(head & (1<<20)) + { + lsf = (head & (1<<19)) ? 0x0 : 0x1; + sampling_frequency = ((head>>10)&0x3) + (lsf*3); + } + else + { + lsf = 1; + sampling_frequency = 6 + ((head>>10)&0x3); + } + bitrate_index = ((head>>12)&0xf); + framesize = iemmp3_tabsel_123[lsf][2][bitrate_index]*144000; + framesize /= (iemmp3_freqs[sampling_frequency] << lsf); + framesize += ((head>>9)&0x1); + *frsz = framesize; + return(0); + } + else + return(1); +} + +static int sigmp3play_calc_frames(t_sigmp3play *x) +{ + int *begframeseek=x->begframeseek, i, maxframeseek, framesize, frame_counter; + float length; + + fseek(x->fh,0,SEEK_SET); + if(!sigmp3play_read_frame_length_first(x, &framesize)) + { + if(framesize <= 0) + { + return(MP3_EX); + } + i = framesize - 6; + maxframeseek = (x->file_size) / i; + if(!begframeseek) + { + x->begframeseek = (int *)getzbytes((maxframeseek)*sizeof(int)); + x->maxframeseek = maxframeseek; + } + else + { + if(maxframeseek > (x->maxframeseek)) + { + freebytes(x->begframeseek, (x->maxframeseek)*sizeof(int)); + x->begframeseek = (int *)getzbytes((maxframeseek)*sizeof(int)); + x->maxframeseek = maxframeseek; + } + } + begframeseek = x->begframeseek; + begframeseek[0] = 0; + begframeseek[1] = framesize; + frame_counter = 1; + /*x->curframeseek = maxframeseek;*/ + fseek(x->fh, begframeseek[1], SEEK_SET); + while(!sigmp3play_read_frame_length_next(x, &framesize, frame_counter)) + { + begframeseek[frame_counter+1] = begframeseek[frame_counter] + framesize; + frame_counter++; + fseek(x->fh, begframeseek[frame_counter], SEEK_SET); + }; + frame_counter--; + length = (float)(frame_counter)*(float)(x->samp_per_frame) / (float)(x->mp3_sr); + x->length_sec = length; + x->time_factor = length / (float)(frame_counter); + x->curframeseek = frame_counter; + fseek(x->fh,0,SEEK_SET); + return(MP3_OK); + } + else + return(MP3_EX); +} + +static void sigmp3play_do_open(t_sigmp3play *x, char *str, int calc_it) +{ + int mp3_sr, obj_sr; + int file_size, size, mp3_encode_return=MP3_OK, mp3_read_length, i, j, *begframeseek; + static char *modes[4] = { "Stereo", "Joint-Stereo", "Dual-Channel", "Single-Channel" }; + static char *layers[4] = { "Unknown" , "I", "II", "III" }; + char completefilename[400]; + + if(x->file_is_open) + { + post("mp3play-ERROR: file is already open, please stop it first!"); + } + else if(*str == 0) + { + post("mp3play-ERROR: there is no filename to open"); + } + else + { + if(str[0] == '/') + { + strcpy(completefilename, str); + } + else if(((str[0] >= 'A')&&(str[0] <= 'Z')|| + (str[0] >= 'a')&&(str[0] <= 'z'))&& + (str[1] == ':')&&(str[2] == '/')) + { + strcpy(completefilename, str); + } + else + { + strcpy(completefilename, canvas_getdir(x->x_canvas)->s_name); + strcat(completefilename, "/"); + strcat(completefilename, str); + } + + if((x->fh = fopen(completefilename, "rb")) == NULL) + { + post("mp3play-ERROR: cannot open %s", completefilename); + } + else + { + strcpy(x->filename, completefilename); + fseek(x->fh,0,SEEK_END); + file_size = (int)ftell(x->fh); + x->file_size = file_size; + if(!x->mp_is_init) + { + InitAgainMP3(&(x->mp)); + x->mp_is_init = 1; + } + if(calc_it) + mp3_encode_return = sigmp3play_calc_frames(x); + if(mp3_encode_return == MP3_EX) + { + sigmp3play_cleanup(x); + return; + } + if(x->frame_counter) + x->frame_counter = (int)(x->offset_sec / x->time_factor); + i = x->frame_counter; + if(i > (x->curframeseek - 1)) + i = x->curframeseek - 1; + begframeseek = x->begframeseek; + j = begframeseek[i]; + fseek(x->fh,j,SEEK_SET); + x->file_block_num = (file_size-j) / MY_MP3_MALLOC_IN_SIZE; + x->file_remain = (file_size-j) - (x->file_block_num)*MY_MP3_MALLOC_IN_SIZE; + if(x->file_block_num) + { + mp3_read_length = MY_MP3_MALLOC_IN_SIZE; + x->file_block_num--; + } + else + { + mp3_read_length = x->file_remain; + x->file_remain = 0; + } + if(mp3_read_length > 0) + { + fread(x->mp3inbuf, mp3_read_length, sizeof(char), x->fh); + mp3_encode_return = decodeMP3(&(x->mp), x->mp3inbuf, mp3_read_length, x->mp3outbuf, + MY_MP3_MALLOC_IN_SIZE2, &size); + if(mp3_encode_return == MP3_EX) + { + sigmp3play_cleanup(x); + return; + } + post ("MPEG %s, Layer: %s, Freq: %ld, mode: %s, modext: %d, BPF : %d", + x->mp.fr.mpeg25 ? "2.5" : (x->mp.fr.lsf ? "2.0" : "1.0"), + layers[x->mp.fr.lay],iemmp3_freqs[x->mp.fr.sampling_frequency], + modes[x->mp.fr.mode],x->mp.fr.mode_ext,x->mp.fr.framesize+4); + post ("Channels: %d, copyright: %s, original: %s, CRC: %s, emphasis: %d.", + x->mp.fr.stereo,x->mp.fr.copyright?"Yes":"No", + x->mp.fr.original?"Yes":"No",x->mp.fr.error_protection?"Yes":"No", + x->mp.fr.emphasis); + post ("Bitrate: %d Kbits/s, Extension value: %d", + iemmp3_tabsel_123[x->mp.fr.lsf][x->mp.fr.lay-1] + [x->mp.fr.bitrate_index],x->mp.fr.extension); + post ("Original Soundfile-Length : %.3f sec.\n",x->length_sec); + + x->mp3_byterate = 128*iemmp3_tabsel_123[x->mp.fr.lsf][x->mp.fr.lay-1][x->mp.fr.bitrate_index]; + /* 1024/8 */ + + if(x->mp.fr.stereo == 2) + x->mp3_ch = 2; + else if(x->mp.fr.stereo == 1) + x->mp3_ch = 1; + else + { + x->mp3_ch = 1; + post("mp3_play~ WARNING: unknown number of channels : %d channels", + x->mp.fr.stereo); + } + mp3_sr = (int)(iemmp3_freqs[x->mp.fr.sampling_frequency]); + obj_sr = x->obj_sr; + x->mp3_sr = mp3_sr; + if(mp3_sr == obj_sr) + { + x->down = 0; + } + else if(2*mp3_sr == obj_sr) + { + x->down = 1; + } + else if(4*mp3_sr == obj_sr) + { + x->down = 2; + } + else if(mp3_sr == 2*obj_sr) + { + x->down = -1; + } + else if(mp3_sr == 4*obj_sr) + { + x->down = -2; + } + else + { + post("mp3_play~ WARNING: playing the filesamplerate of %d Hz at %d Hz", mp3_sr,obj_sr); + x->down = 0; + } + + if(mp3_encode_return == MP3_OK) + { + x->file_is_open = 1; + x->mp3_encode_size = size * sizeof(char) / sizeof(short); + } + else + { + x->file_is_open = 0; + x->mp3_out_index = 0; + fclose(x->fh); + } + } + else + { + x->file_is_open = 0; + fclose(x->fh); + } + } + x->play_state = 2; + x->mp3_out_index = 0; + } +} + +static t_int *sigmp3play_perform(t_int *w) +{ + t_sigmp3play *x = (t_sigmp3play *)(w[1]); + t_float *out1 = (t_float *)(w[2]); + t_float *out2 = (t_float *)(w[3]); + int n = (int)(w[4]); + short *ivec = (short *)(x->mp3outbuf); + int size, mp3_encode_return, mp3_read_length, mp3_ch, down; + float scale = x->scale, outa, outb; + int mp3_out_index = x->mp3_out_index; + + if (!x->file_is_open) + goto sigmp3play_labelzero; + if (x->play_state != 1) + goto sigmp3play_labelzero; + + if(mp3_out_index >= x->mp3_encode_size) + { + x->frame_counter++; + x->time1_bang0_handle = 1; + clock_delay(x->x_clock, 0); + mp3_out_index = 0; + mp3_encode_return = decodeMP3(&(x->mp), NULL, 0, x->mp3outbuf, + MY_MP3_MALLOC_IN_SIZE2, &size); + if(mp3_encode_return == MP3_OK) + x->mp3_encode_size = size * sizeof(char) / sizeof(short); + else if(mp3_encode_return == MP3_EX) + { + sigmp3play_cleanup(x); + goto sigmp3play_labelzero; + } + else + { + if(x->file_block_num > 0) + { + mp3_read_length = MY_MP3_MALLOC_IN_SIZE; + x->file_block_num--; + } + else if(x->file_remain > 0) + { + mp3_read_length = x->file_remain; + x->file_remain = 0; + } + else + { + sigmp3play_cleanup(x); + goto sigmp3play_labelzero; + } + + fread(x->mp3inbuf, mp3_read_length, sizeof(char), x->fh); + mp3_encode_return = decodeMP3(&(x->mp), x->mp3inbuf, mp3_read_length, + x->mp3outbuf, MY_MP3_MALLOC_IN_SIZE2, &size); + x->mp3_encode_size = size * sizeof(char) / sizeof(short); + if(mp3_encode_return == MP3_EX) + { + sigmp3play_cleanup(x); + goto sigmp3play_labelzero; + } + } + } + + mp3_ch = x->mp3_ch; + down = x->down; + if(mp3_ch == 2) + { + if(down == 0) + { + ivec += mp3_out_index; + x->mp3_out_index = mp3_out_index + 2*n; + while (n--) + { + *out1++ = scale * (float)(*ivec++); + *out2++ = scale * (float)(*ivec++); + } + } + else if(down == 1) + { + ivec += mp3_out_index; + x->mp3_out_index = mp3_out_index + n; + n /= 2; + while (n--) + { + outa = scale * (float)(*ivec++); + outb = scale * (float)(*ivec++); + *out1++ = outa; + *out2++ = outb; + *out1++ = outa; + *out2++ = outb; + } + } + else if(down == 2) + { + ivec += mp3_out_index; + x->mp3_out_index = mp3_out_index + n/2; + n /= 4; + while (n--) + { + outa = scale * (float)(*ivec++); + outb = scale * (float)(*ivec++); + *out1++ = outa; + *out2++ = outb; + *out1++ = outa; + *out2++ = outb; + *out1++ = outa; + *out2++ = outb; + *out1++ = outa; + *out2++ = outb; + } + } + else if(down == -1) + { + ivec += mp3_out_index; + x->mp3_out_index = mp3_out_index + 4*n; + while (n--) + { + outa = scale * (float)(*ivec++); + outb = scale * (float)(*ivec); + ivec += 3; + *out1++ = outa; + *out2++ = outa; + } + } + else if(down == -2) + { + ivec += mp3_out_index; + x->mp3_out_index = mp3_out_index + 8*n; + while (n--) + { + outa = scale * (float)(*ivec++); + outb = scale * (float)(*ivec); + ivec += 7; + *out1++ = outa; + *out2++ = outa; + } + } + } + else + { + if(down == 0) + { + ivec += mp3_out_index; + x->mp3_out_index = mp3_out_index + n; + while (n--) + { + outa = scale * (float)(*ivec++); + *out1++ = outa; + *out2++ = outa; + } + } + else if(down == 1) + { + ivec += mp3_out_index; + n /= 2; + x->mp3_out_index = mp3_out_index + n; + while (n--) + { + outa = scale * (float)(*ivec++); + *out1++ = outa; + *out2++ = outa; + *out1++ = outa; + *out2++ = outa; + } + } + else if(down == 2) + { + ivec += mp3_out_index; + n /= 4; + x->mp3_out_index = mp3_out_index + n; + while (n--) + { + outa = scale * (float)(*ivec++); + *out1++ = outa; + *out2++ = outa; + *out1++ = outa; + *out2++ = outa; + *out1++ = outa; + *out2++ = outa; + *out1++ = outa; + *out2++ = outa; + } + } + else if(down == -1) + { + ivec += mp3_out_index; + x->mp3_out_index = mp3_out_index + 2*n; + while (n--) + { + outa = scale * (float)(*ivec); + ivec += 2; + *out1++ = outa; + *out2++ = outa; + } + } + else if(down == -2) + { + ivec += mp3_out_index; + x->mp3_out_index = mp3_out_index + 4*n; + while (n--) + { + outa = scale * (float)(*ivec); + ivec += 4; + *out1++ = outa; + *out2++ = outa; + } + } + } + return (w+5); + +sigmp3play_labelzero: + + while (n--) + { + *out1++ = 0; + *out2++ = 0; + } + return (w+5); +} + +static void sigmp3play_dsp(t_sigmp3play *x, t_signal **sp) +{ + x->obj_sr = (int)(sp[0]->s_sr); + x->obj_n = (int)(sp[0]->s_n); + dsp_add(sigmp3play_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n); +} + + + +static void sigmp3play_stop(t_sigmp3play *x) +{ + if(x->file_is_open) + { + x->file_block_num = 0; + x->file_remain = 0; + } +} + +static void sigmp3play_start(t_sigmp3play *x) +{ + if(x->file_is_open) + { + x->play_state = 1; + } +} + +static void sigmp3play_ft1(t_sigmp3play *x, t_floatarg offset) +{ + if(offset < 0.0) + offset = 0.0; + x->offset_sec = (float)offset; +} + +static void sigmp3play_pause(t_sigmp3play *x) +{ + if(x->file_is_open) + { + if(x->play_state == 0) + x->play_state = 1; + else if(x->play_state == 1) + x->play_state = 0; + } +} + +static void sigmp3play_open(t_sigmp3play *x, t_symbol *s) +{ + x->frame_counter = 0; + sigmp3play_do_open(x, (char *)s->s_name, 1); +} + +static void sigmp3play_open_again(t_sigmp3play *x) +{ + x->frame_counter = 0; + sigmp3play_do_open(x, x->filename, 0); +} + +static void sigmp3play_open_at(t_sigmp3play *x, t_symbol *s) +{ + x->frame_counter = 1; + sigmp3play_do_open(x, (char *)s->s_name, 1); +} + +static void sigmp3play_open_again_at(t_sigmp3play *x) +{ + x->frame_counter = 1; + sigmp3play_do_open(x, x->filename, 0); +} + + +static void sigmp3play_tick(t_sigmp3play *x) +{ + if(x->time1_bang0_handle) + { + outlet_float(x->x_floatout, (float)(x->frame_counter)*(x->time_factor)); + } + else + { + outlet_bang(x->x_bangout); + } +} + +static void sigmp3play_free(t_sigmp3play *x) +{ + if(x->mp_is_init) + ExitMP3(&(x->mp)); + if(x->begframeseek) + freebytes(x->begframeseek, (x->maxframeseek)*sizeof(int)); + freebytes(x->filename, MY_MP3_MALLOC_FN); + freebytes(x->mp3outbuf, MY_MP3_MALLOC_OUT_SIZE); + freebytes(x->mp3inbuf, MY_MP3_MALLOC_IN_SIZE); + clock_free(x->x_clock); +} + +void sigmp3play_setup(void) +{ + sigmp3play_class = class_new(gensym("mp3play~"), (t_newmethod)sigmp3play_new, + (t_method)sigmp3play_free, sizeof(t_sigmp3play), 0, 0); + class_addmethod(sigmp3play_class, (t_method)sigmp3play_dsp, gensym("dsp"), 0); + class_addmethod(sigmp3play_class, (t_method)sigmp3play_start, gensym("start"), 0); + class_addmethod(sigmp3play_class, (t_method)sigmp3play_ft1, + gensym("ft1"), A_FLOAT, 0); + class_addmethod(sigmp3play_class, (t_method)sigmp3play_stop, gensym("stop"), 0); + class_addmethod(sigmp3play_class, (t_method)sigmp3play_pause, gensym("pause"), 0); + class_addmethod(sigmp3play_class, (t_method)sigmp3play_open_again_at, gensym("open_again_at"), 0); + class_addmethod(sigmp3play_class, (t_method)sigmp3play_open, gensym("open"), A_DEFSYM, 0); + class_addmethod(sigmp3play_class, (t_method)sigmp3play_open_again, gensym("open_again"), 0); + class_addmethod(sigmp3play_class, (t_method)sigmp3play_open_at, gensym("open_at"), A_DEFSYM, 0); + class_sethelpsymbol(sigmp3play_class, gensym("iemhelp/help-mp3play~")); + /*post("\nmp3play~ written by thomas musil & norbert math\nV 0.1 iem graz + austria 05 2000\n");*/ +} + diff --git a/src/iem_t3_lib/iem_t3_lib.c b/src/iem_t3_lib/iem_t3_lib.c new file mode 100644 index 0000000..1e19576 --- /dev/null +++ b/src/iem_t3_lib/iem_t3_lib.c @@ -0,0 +1,65 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iem_t3_lib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> +/* +#include <ctype.h> +#include <signal.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> + +#ifndef NT +#include <sys/signal.h> +#include <unistd.h> +#endif + +#ifdef NT +#include <io.h> +#endif + */ + +static t_class *iem_t3_lib_class; + +static void *iem_t3_lib_new(void) +{ + t_object *x = (t_object *)pd_new(iem_t3_lib_class); + + return (x); +} + +void sigt3_line_setup(void); +void sigt3_sig_setup(void); +void t3_bpe_setup(void); +void t3_delay_setup(void); +void t3_metro_setup(void); +void t3_timer_setup(void); + +/* ------------------------ setup routine ------------------------- */ + +void iem_t3_lib_setup(void) +{ + iem_t3_lib_class = class_new(gensym("iem_t3_lib"), iem_t3_lib_new, 0, + sizeof(t_object), CLASS_NOINLET, 0); + + sigt3_line_setup(); + sigt3_sig_setup(); + t3_bpe_setup(); + t3_delay_setup(); + t3_metro_setup(); + t3_timer_setup(); + + post("iem_t3_lib (R-1.15) library loaded!"); +} diff --git a/src/iem_t3_lib/iem_t3_lib.dsp b/src/iem_t3_lib/iem_t3_lib.dsp new file mode 100644 index 0000000..e6a61be --- /dev/null +++ b/src/iem_t3_lib/iem_t3_lib.dsp @@ -0,0 +1,85 @@ +# Microsoft Developer Studio Project File - Name="iem_t3_lib" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) External Target" 0x0106 + +CFG=iem_t3_lib - Win32 Debug +!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "iem_t3_lib.mak". +!MESSAGE +!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "iem_t3_lib.mak" CFG="iem_t3_lib - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "iem_t3_lib - Win32 Release" (basierend auf "Win32 (x86) External Target") +!MESSAGE "iem_t3_lib - Win32 Debug" (basierend auf "Win32 (x86) External Target") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" + +!IF "$(CFG)" == "iem_t3_lib - Win32 Release" + +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Cmd_Line "NMAKE /f makefile_win" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "makefile_win.exe" +# PROP BASE Bsc_Name "makefile_win.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Cmd_Line "NMAKE /f makefile_win" +# PROP Rebuild_Opt "/a" +# PROP Target_File "iem_t3_lib.exe" +# PROP Bsc_Name "iem_t3_lib.bsc" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "iem_t3_lib - Win32 Debug" + +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Cmd_Line "NMAKE /f makefile_win" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "makefile_win.exe" +# PROP BASE Bsc_Name "makefile_win.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Cmd_Line "NMAKE /f makefile_win" +# PROP Rebuild_Opt "/a" +# PROP Target_File "iem_t3_lib.exe" +# PROP Bsc_Name "iem_t3_lib.bsc" +# PROP Target_Dir "" + +!ENDIF + +# Begin Target + +# Name "iem_t3_lib - Win32 Release" +# Name "iem_t3_lib - Win32 Debug" + +!IF "$(CFG)" == "iem_t3_lib - Win32 Release" + +!ELSEIF "$(CFG)" == "iem_t3_lib - Win32 Debug" + +!ENDIF + +# Begin Source File + +SOURCE=.\makefile_win +# End Source File +# End Target +# End Project diff --git a/src/iem_t3_lib/iem_t3_lib.dsw b/src/iem_t3_lib/iem_t3_lib.dsw new file mode 100644 index 0000000..2b4e202 --- /dev/null +++ b/src/iem_t3_lib/iem_t3_lib.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "iem_t3_lib"=.\iem_t3_lib.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/src/iem_t3_lib/iemlib.h b/src/iem_t3_lib/iemlib.h new file mode 100644 index 0000000..d518565 --- /dev/null +++ b/src/iem_t3_lib/iemlib.h @@ -0,0 +1,98 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifndef __IEMLIB_H__ +#define __IEMLIB_H__ + + +#define IS_A_POINTER(atom,index) ((atom+index)->a_type == A_POINTER) +#define IS_A_FLOAT(atom,index) ((atom+index)->a_type == A_FLOAT) +#define IS_A_SYMBOL(atom,index) ((atom+index)->a_type == A_SYMBOL) +#define IS_A_DOLLAR(atom,index) ((atom+index)->a_type == A_DOLLAR) +#define IS_A_DOLLSYM(atom,index) ((atom+index)->a_type == A_DOLLSYM) +#define IS_A_SEMI(atom,index) ((atom+index)->a_type == A_SEMI) +#define IS_A_COMMA(atom,index) ((atom+index)->a_type == A_COMMA) + + +#ifdef NT +int sys_noloadbang; +//t_symbol *iemgui_key_sym=0; +#include <io.h> +#else +extern int sys_noloadbang; +//extern t_symbol *iemgui_key_sym; +#include <unistd.h> +#endif + +#define DEFDELVS 64 +#define XTRASAMPS 4 +#define SAMPBLK 4 + + +#define UNITBIT32 1572864. /* 3*2^19; bit 32 has place value 1 */ + + /* machine-dependent definitions. These ifdefs really + should have been by CPU type and not by operating system! */ +#ifdef IRIX + /* big-endian. Most significant byte is at low address in memory */ +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#define int32 long /* a data type that has 32 bits */ +#else +#ifdef MSW + /* little-endian; most significant byte is at highest address */ +#define HIOFFSET 1 +#define LOWOFFSET 0 +#define int32 long +#else +#ifdef __FreeBSD__ +#include <machine/endian.h> +#if BYTE_ORDER == LITTLE_ENDIAN +#define HIOFFSET 1 +#define LOWOFFSET 0 +#else +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#endif /* BYTE_ORDER */ +#include <sys/types.h> +#define int32 int32_t +#endif +#ifdef __linux__ + +#include <endian.h> + +#if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) +#error No byte order defined +#endif + +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define HIOFFSET 1 +#define LOWOFFSET 0 +#else +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#endif /* __BYTE_ORDER */ + +#include <sys/types.h> +#define int32 int32_t + +#else +#ifdef MACOSX +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#define int32 int /* a data type that has 32 bits */ + +#endif /* MACOSX */ +#endif /* __linux__ */ +#endif /* MSW */ +#endif /* SGI */ + +union tabfudge +{ + double tf_d; + int32 tf_i[2]; +}; + +#endif diff --git a/src/iem_t3_lib/makefile b/src/iem_t3_lib/makefile new file mode 100644 index 0000000..34d19d6 --- /dev/null +++ b/src/iem_t3_lib/makefile @@ -0,0 +1,56 @@ +current: all + +.SUFFIXES: .pd_linux + +INCLUDE = -I. -I/usr/local/src/pd/src + +LDFLAGS = -export-dynamic -shared +LIB = -ldl -lm -lpthread + +#select either the DBG and OPT compiler flags below: + +CFLAGS = -DPD -DUNIX -Wall -W -Werror -Wno-unused \ + -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer \ + -DDL_OPEN + +SYSTEM = $(shell uname -m) + +# the sources + +SRC = sigt3_line.c \ + sigt3_sig.c \ + t3_bpe.c \ + t3_delay.c \ + t3_metro.c \ + t3_timer.c \ + iem_t3_lib.c + +TARGET = iem_t3_lib.pd_linux + + +OBJ = $(SRC:.c=.o) + +# +# ------------------ targets ------------------------------------ +# + +clean: + rm ../../lib/$(TARGET) + rm *.o + +all: $(OBJ) + + @echo :: $(OBJ) + + ld $(LDFLAGS) -o $(TARGET) *.o $(LIB) + strip --strip-unneeded $(TARGET) + mv $(TARGET) ../../lib + rm *.o + +$(OBJ) : %.o : %.c + touch $*.c + cc $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c + + + + diff --git a/src/iem_t3_lib/makefile_win b/src/iem_t3_lib/makefile_win new file mode 100644 index 0000000..6f31894 --- /dev/null +++ b/src/iem_t3_lib/makefile_win @@ -0,0 +1,43 @@ + +all: ..\..\lib\iem_t3_lib.dll + +VIS_CPP_PATH = "C:\Programme\Microsoft Visual Studio\Vc98" + +PD_INST_PATH = "C:\Programme\pd" + +PD_WIN_INCLUDE_PATH = /I. /I$(PD_INST_PATH)\src /I$(VIS_CPP_PATH)\include + +PD_WIN_C_FLAGS = /nologo /W3 /WX /DMSW /DNT /DPD /DWIN32 /DWINDOWS /Ox -DPA_LITTLE_ENDIAN + +PD_WIN_L_FLAGS = /nologo + +PD_WIN_LIB = /NODEFAULTLIB:libc /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel /NODEFAULTLIB:uuid \ + $(VIS_CPP_PATH)\lib\libc.lib \ + $(VIS_CPP_PATH)\lib\oldnames.lib \ + $(VIS_CPP_PATH)\lib\kernel32.lib \ + $(VIS_CPP_PATH)\lib\wsock32.lib \ + $(VIS_CPP_PATH)\lib\winmm.lib \ + $(PD_INST_PATH)\bin\pthreadVC.lib \ + $(PD_INST_PATH)\bin\pd.lib + + +SRC = sigt3_line.c \ + sigt3_sig.c \ + t3_bpe.c \ + t3_delay.c \ + t3_metro.c \ + t3_timer.c \ + iem_t3_lib.c + + +OBJ = $(SRC:.c=.obj) + +.c.obj: + cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c + +..\..\lib\iem_t3_lib.dll: $(OBJ) + link $(PD_WIN_L_FLAGS) /dll /export:iem_t3_lib_setup \ + /out:..\..\lib\iem_t3_lib.dll $(OBJ) $(PD_WIN_LIB) + +clean: + del *.obj diff --git a/src/iem_t3_lib/sigt3_line.c b/src/iem_t3_lib/sigt3_line.c new file mode 100644 index 0000000..525f7f7 --- /dev/null +++ b/src/iem_t3_lib/sigt3_line.c @@ -0,0 +1,279 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iem_t3_lib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* -------------------------- t3_line~ ------------------------------ */ +static t_class *sigt3_line_class; + +typedef struct _sigt3_line +{ + t_object x_obj; + t_clock *x_clock; + float *x_beg; + double x_cur_val; + double x_dst_val; + double x_inlet_val; + double x_inc64; + double x_inc; + double x_ms2samps; + double x_ticks2ms; + double x_inlet_time; + double x_dst_time; + int x_cur_samps; + int x_dur_samps; + int x_n; + int x_t3_bang_samps; + int x_transient; +} t_sigt3_line; + +static void sigt3_line_nontransient(float *vec, t_sigt3_line *x, int n) +{ + int cur_samps = x->x_cur_samps, i; + double inc = x->x_inc; + double cur_val = x->x_cur_val; + + if(cur_samps) + { + if(cur_samps > n) + { + x->x_cur_samps -= n; + while(n--) + { + cur_val += inc; + *vec++ = (float)cur_val; + } + x->x_cur_val += x->x_inc64; + } + else if(cur_samps == n) + { + x->x_cur_samps = 0; + while(n--) + { + cur_val += inc; + *vec++ = (float)cur_val; + } + x->x_cur_val = x->x_dst_val; + } + else + { + for(i=0; i<cur_samps; i++) + { + cur_val += inc; + *vec++ = (float)cur_val; + } + x->x_cur_val = cur_val = x->x_dst_val; + for(i=cur_samps; i<n; i++) + *vec++ = (float)cur_val; + x->x_cur_samps = 0; + } + } + else + { + while(n--) + *vec++ = (float)cur_val; + } +} + +static t_int *sigt3_line_perform(t_int *w) +{ + t_float *out = (t_float *)(w[1]); + t_sigt3_line *x = (t_sigt3_line *)(w[2]); + int n = (int)(w[3]); + + if(x->x_transient) + { + float *trans = x->x_beg; + + while(n--) + *out++ = *trans++; + x->x_transient = 0; + } + else + sigt3_line_nontransient(out, x, n); + return(w+4); +} + +static void sigt3_line_tick(t_sigt3_line *x) +{ + float *trans = x->x_beg; + int n = x->x_n, t3_bang_samps, cur_samps, i; + double inc, cur_val; + + if(!x->x_transient) + sigt3_line_nontransient(trans, x, n); + t3_bang_samps = x->x_t3_bang_samps; + x->x_dst_val = x->x_inlet_val; + if(x->x_inlet_time <= 0.0) + { + x->x_inlet_time = 0.0; + x->x_dst_time = 0.0; + x->x_dur_samps = 0; + x->x_cur_samps = 0; + cur_val = x->x_cur_val = x->x_dst_val; + for(i=t3_bang_samps; i<n; i++) + trans[i] = (float)cur_val; + } + else + { + int diff, end; + + x->x_dst_time = x->x_inlet_time; + x->x_inlet_time = 0.0; + cur_samps = (int)(x->x_dst_time * x->x_ms2samps); + if(!cur_samps) + cur_samps = 1; + x->x_dur_samps = cur_samps; + x->x_cur_samps = cur_samps; + cur_val = x->x_cur_val = (double)trans[t3_bang_samps]; + inc = x->x_inc = (x->x_dst_val - cur_val)/(double)cur_samps; + x->x_inc64 = (double)x->x_n * inc; + diff = n - t3_bang_samps; + if(cur_samps > diff) + { + for(i=t3_bang_samps; i<n; i++) + { + cur_val += inc; + trans[i] = (float)cur_val; + } + x->x_cur_val += (double)diff * inc; + x->x_cur_samps -= diff; + } + else if(cur_samps == diff) + { + for(i=t3_bang_samps; i<n; i++) + { + cur_val += inc; + trans[i] = (float)cur_val; + } + x->x_cur_val = x->x_dst_val; + x->x_cur_samps = 0; + } + else + { + end = t3_bang_samps + cur_samps; + for(i=t3_bang_samps; i<end; i++) + { + cur_val += inc; + trans[i] = (float)cur_val; + } + cur_val = x->x_cur_val = x->x_dst_val; + x->x_cur_samps = 0; + for(i=end; i<n; i++) + trans[i] = (float)cur_val; + } + } + x->x_transient = 1; +} + +static void sigt3_line_list(t_sigt3_line *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac >= 2)&&IS_A_FLOAT(av,0)&&IS_A_FLOAT(av,1)) + { + int t3_bang_samps, ticks; + double time; + + x->x_inlet_val = (double)atom_getfloatarg(1, ac, av); + t3_bang_samps = (int)((float)atom_getfloatarg(0, ac, av)*x->x_ms2samps); + if(t3_bang_samps < 0) + t3_bang_samps = 0; + ticks = t3_bang_samps / x->x_n; + x->x_t3_bang_samps = t3_bang_samps - x->x_n * ticks; + if((ac >= 3)&&IS_A_FLOAT(av,2)) + { + time = (double)atom_getfloatarg(2, ac, av); + if(time < 0.0) + time = 0.0; + x->x_inlet_time = time; + } + if(ticks < 1) + sigt3_line_tick(x); + else + clock_delay(x->x_clock, (double)ticks * x->x_ticks2ms); + } +} + +static void sigt3_line_ft1(t_sigt3_line *x, t_float time) +{ + if(time < 0.0) + time = 0.0; + x->x_inlet_time = (double)time; +} + +static void sigt3_line_stop(t_sigt3_line *x) +{ + clock_unset(x->x_clock); + x->x_cur_samps = x->x_dur_samps = x->x_transient = 0; + x->x_inc = x->x_inc64 = x->x_inlet_time = x->x_dst_time = 0.0; +} + +static void sigt3_line_dsp(t_sigt3_line *x, t_signal **sp) +{ + int i; + float val, *trans; + + if(sp[0]->s_n > x->x_n) + { + freebytes(x->x_beg, x->x_n*sizeof(float)); + x->x_n = (int)sp[0]->s_n; + x->x_beg = (float *)getbytes(x->x_n*sizeof(float)); + } + else + x->x_n = (int)sp[0]->s_n; + i = x->x_n; + val = x->x_cur_val; + trans = x->x_beg; + while(i--) + *trans++ = val; + x->x_ms2samps = 0.001*(double)sp[0]->s_sr; + x->x_ticks2ms = (double)x->x_n / x->x_ms2samps; + dsp_add(sigt3_line_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); +} + +static void sigt3_line_free(t_sigt3_line *x) +{ + if(x->x_beg) + freebytes(x->x_beg, x->x_n*sizeof(float)); + clock_free(x->x_clock); +} + +static void *sigt3_line_new(t_floatarg init_val) +{ + t_sigt3_line *x = (t_sigt3_line *)pd_new(sigt3_line_class); + int i; + + x->x_n = (int)sys_getblksize(); + x->x_beg = (float *)getbytes(x->x_n*sizeof(float)); + x->x_inlet_val = x->x_cur_val = x->x_dst_val = init_val; + x->x_t3_bang_samps = x->x_cur_samps = x->x_dur_samps = x->x_transient = 0; + x->x_inlet_time = x->x_dst_time = 0.0; + x->x_inc64 = x->x_inc = 0.0; + x->x_ms2samps = 0.001 * (double)sys_getsr(); + x->x_ticks2ms = (double)x->x_n / x->x_ms2samps; + x->x_clock = clock_new(x, (t_method)sigt3_line_tick); + outlet_new(&x->x_obj, &s_signal); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("ft1")); + return (x); +} + +void sigt3_line_setup(void) +{ + sigt3_line_class = class_new(gensym("t3_line~"), (t_newmethod)sigt3_line_new, + (t_method)sigt3_line_free, sizeof(t_sigt3_line), 0, A_DEFFLOAT, 0); + class_addmethod(sigt3_line_class, (t_method)sigt3_line_dsp, gensym("dsp"), 0); + class_addmethod(sigt3_line_class, (t_method)sigt3_line_stop, gensym("stop"), 0); + class_addmethod(sigt3_line_class, (t_method)sigt3_line_ft1, gensym("ft1"), A_FLOAT, 0); + class_addlist(sigt3_line_class, (t_method)sigt3_line_list); + class_sethelpsymbol(sigt3_line_class, gensym("iemhelp/help-t3_line~")); +} diff --git a/src/iem_t3_lib/sigt3_sig.c b/src/iem_t3_lib/sigt3_sig.c new file mode 100644 index 0000000..84429b6 --- /dev/null +++ b/src/iem_t3_lib/sigt3_sig.c @@ -0,0 +1,200 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iem_t3_lib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* -------------------------- sigt3_sig~ ------------------------------ */ +static t_class *sigt3_sig_class; + +typedef struct _sigt3_sig +{ + t_object x_obj; + t_clock *x_clock; + float x_old_val; + float x_new_val; + float *x_beg; + int x_n; + int x_t3_bang_samps; + int x_transient; + float x_ms2samps; + float x_ticks2ms; +} t_sigt3_sig; + +static void sigt3_sig_tick(t_sigt3_sig *x) +{ + float *trans = x->x_beg, val; + int n = x->x_n, t3_bang_samps, i; + + t3_bang_samps = x->x_t3_bang_samps; + if(!x->x_transient) + { + val = x->x_old_val; + for(i=0; i<t3_bang_samps; i++) + trans[i] = val; + x->x_transient = 1; + } + val = x->x_old_val = x->x_new_val; + for(i=t3_bang_samps; i<n; i++) + trans[i] = val; +} + +static void sigt3_sig_stop(t_sigt3_sig *x) +{ + clock_unset(x->x_clock); + x->x_new_val = x->x_old_val; +} + +static void sigt3_sig_list(t_sigt3_sig *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac == 2)&&IS_A_FLOAT(av,0)&&IS_A_FLOAT(av,1)) + { + int n = x->x_n, t3_bang_samps, ticks; + + t3_bang_samps = (int)((float)atom_getfloatarg(0, ac, av)*x->x_ms2samps); + x->x_new_val = (float)atom_getfloatarg(1, ac, av); + if(t3_bang_samps < 0) + t3_bang_samps = 0; + ticks = t3_bang_samps / n; + x->x_t3_bang_samps = t3_bang_samps - n*ticks; + if(ticks < 1) + sigt3_sig_tick(x); + else + clock_delay(x->x_clock, (double)ticks * (double)x->x_ticks2ms); + } +} + +static t_int *sigt3_sig_perform(t_int *w) +{ + t_float *out = (t_float *)(w[1]); + t_sigt3_sig *x = (t_sigt3_sig *)(w[2]); + int n = (int)(w[3]); + + if(x->x_transient) + { + float *trans = x->x_beg; + + while(n--) + *out++ = *trans++; + x->x_transient = 0; + } + else + { + float val = x->x_new_val; + + while(n--) + *out++ = val; + } + return (w+4); +} + +static t_int *sigt3_sig_perf8(t_int *w) +{ + t_float *out = (t_float *)(w[1]); + t_sigt3_sig *x = (t_sigt3_sig *)(w[2]); + int n = (int)(w[3]), i; + + if(x->x_transient) + { + float *trans = x->x_beg; + + for(i=0; i<n; i+=8, out+=8, trans+=8) + { + out[0] = trans[0]; + out[1] = trans[1]; + out[2] = trans[2]; + out[3] = trans[3]; + out[4] = trans[4]; + out[5] = trans[5]; + out[6] = trans[6]; + out[7] = trans[7]; + } + x->x_transient = 0; + } + else + { + float val = x->x_new_val; + + for(i=0; i<n; i+=8, out+=8) + { + out[0] = val; + out[1] = val; + out[2] = val; + out[3] = val; + out[4] = val; + out[5] = val; + out[6] = val; + out[7] = val; + } + } + return (w+4); +} + +static void sigt3_sig_dsp(t_sigt3_sig *x, t_signal **sp) +{ + int i; + float *trans, val; + + if(sp[0]->s_n > x->x_n) + { + freebytes(x->x_beg, x->x_n*sizeof(float)); + x->x_n = sp[0]->s_n; + x->x_beg = (float *)getbytes(x->x_n*sizeof(float)); + } + else + x->x_n = sp[0]->s_n; + x->x_ms2samps = 0.001*(float)sp[0]->s_sr; + x->x_ticks2ms = (float)x->x_n / x->x_ms2samps; + i = x->x_n; + val = x->x_new_val; + trans = x->x_beg; + while(i--) + *trans++ = val; + + if((sp[0]->s_n)&7) + dsp_add(sigt3_sig_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); + else + dsp_add(sigt3_sig_perf8, 3, sp[0]->s_vec, x, sp[0]->s_n); +} + +static void sigt3_sig_free(t_sigt3_sig *x) +{ + if(x->x_beg) + freebytes(x->x_beg, x->x_n*sizeof(float)); + clock_free(x->x_clock); +} + +static void *sigt3_sig_new(t_floatarg init_val) +{ + t_sigt3_sig *x = (t_sigt3_sig *)pd_new(sigt3_sig_class); + + x->x_new_val = x->x_old_val = init_val; + x->x_n = (int)sys_getblksize(); + x->x_beg = (float *)getbytes(x->x_n*sizeof(float)); + x->x_t3_bang_samps = x->x_transient = 0; + x->x_ms2samps = 0.001 * (float)sys_getsr(); + x->x_ticks2ms = (float)x->x_n / x->x_ms2samps; + x->x_clock = clock_new(x, (t_method)sigt3_sig_tick); + outlet_new(&x->x_obj, &s_signal); + return (x); +} + +void sigt3_sig_setup(void) +{ + sigt3_sig_class = class_new(gensym("t3_sig~"), (t_newmethod)sigt3_sig_new, + (t_method)sigt3_sig_free, sizeof(t_sigt3_sig), 0, A_DEFFLOAT, 0); + class_addmethod(sigt3_sig_class, (t_method)sigt3_sig_dsp, gensym("dsp"), 0); + class_addmethod(sigt3_sig_class, (t_method)sigt3_sig_stop, gensym("stop"), 0); + class_addlist(sigt3_sig_class, (t_method)sigt3_sig_list); + class_sethelpsymbol(sigt3_sig_class, gensym("iemhelp/help-t3_sig~")); +} diff --git a/src/iem_t3_lib/t3_bpe.c b/src/iem_t3_lib/t3_bpe.c new file mode 100644 index 0000000..6a2dbe0 --- /dev/null +++ b/src/iem_t3_lib/t3_bpe.c @@ -0,0 +1,142 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iem_t3_lib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ------------------------ t3_bpe ---------------------------- */ +static t_class *t3_bpe_class; + +typedef struct _t3_bpe +{ + t_object x_obj; + t_atom x_at[2]; + t_clock *x_clock; + int x_maxnum; + int x_curnum; + int x_curindex; + t_atom *x_beg; + double x_t3_bang; + double x_ticks2ms; + int x_hit; + void *x_out_val; + void *x_out_time; + void *x_out_finished; +} t_t3_bpe; + +static void t3_bpe_stop(t_t3_bpe *x) +{ + clock_unset(x->x_clock); +} + +static void t3_bpe_tick(t_t3_bpe *x) +{ + t_atom *vec = x->x_beg; + float val; + double dticks, time; + int iticks; + + if(x->x_curindex >= x->x_curnum) + { + t3_bpe_stop(x); + outlet_float(x->x_out_finished, x->x_t3_bang); + } + else + { + x->x_hit = 0; + vec += x->x_curindex; + val = atom_getfloat(vec++); + time = (double)atom_getfloat(vec); + outlet_float(x->x_out_time, (float)time); + x->x_at[1].a_w.w_float = val; + x->x_at[0].a_w.w_float = x->x_t3_bang; + outlet_list(x->x_obj.ob_outlet, &s_list, 2, x->x_at); + dticks = (time + x->x_t3_bang)/x->x_ticks2ms; + iticks = (int)dticks; + x->x_t3_bang = (dticks - (double)iticks)*x->x_ticks2ms; + if(!x->x_hit) + clock_delay(x->x_clock, (double)iticks*x->x_ticks2ms); + x->x_curindex += 2; + } +} + +static void t3_bpe_float(t_t3_bpe *x, t_floatarg f) +{ + double dticks; + int iticks; + + if(x->x_curnum) + { + x->x_curindex = 0; + dticks = (double)f/x->x_ticks2ms; + iticks = (int)dticks; + x->x_t3_bang = (dticks - (double)iticks)*x->x_ticks2ms; + clock_delay(x->x_clock, (double)iticks*x->x_ticks2ms); + x->x_hit = 1; + } +} + +static void t3_bpe_list(t_t3_bpe *x, t_symbol *s, int ac, t_atom *av) +{ + int n = ac & 0xfffffffe, i; + t_atom *vec = x->x_beg; + if(n > x->x_maxnum) + { + freebytes(x->x_beg, x->x_maxnum*sizeof(t_atom)); + x->x_maxnum = 2 + n; + x->x_beg = (t_atom *)getbytes(x->x_maxnum*sizeof(t_atom)); + vec = x->x_beg; + } + x->x_curnum = n; + for(i=0; i<n; i++) + { + *vec++ = *av++; + } +} + +static void t3_bpe_free(t_t3_bpe *x) +{ + freebytes(x->x_beg, x->x_maxnum*sizeof(t_atom)); + clock_free(x->x_clock); +} + +static void *t3_bpe_new(void) +{ + t_t3_bpe *x = (t_t3_bpe *)pd_new(t3_bpe_class); + + x->x_t3_bang = 0.0; + x->x_ticks2ms = 1000.0*(double)sys_getblksize()/(double)sys_getsr(); + x->x_curindex = 0; + x->x_maxnum = 20; + x->x_curnum = 0; + x->x_hit = 0; + x->x_beg = (t_atom *)getbytes(x->x_maxnum*sizeof(t_atom)); + x->x_clock = clock_new(x, (t_method)t3_bpe_tick); + outlet_new(&x->x_obj, &s_list); + x->x_out_time = outlet_new(&x->x_obj, &s_float); + x->x_out_finished = outlet_new(&x->x_obj, &s_float); + x->x_at[0].a_type = A_FLOAT; + x->x_at[1].a_type = A_FLOAT; + return (x); +} + +void t3_bpe_setup(void) +{ + t3_bpe_class = class_new(gensym("t3_bpe"), (t_newmethod)t3_bpe_new, + (t_method)t3_bpe_free, sizeof(t_t3_bpe), 0, 0); + class_addmethod(t3_bpe_class, (t_method)t3_bpe_stop, gensym("stop"), 0); + class_addfloat(t3_bpe_class, (t_method)t3_bpe_float); + class_addlist(t3_bpe_class, (t_method)t3_bpe_list); + class_sethelpsymbol(t3_bpe_class, gensym("iemhelp/help-t3_bpe")); +} + diff --git a/src/iem_t3_lib/t3_delay.c b/src/iem_t3_lib/t3_delay.c new file mode 100644 index 0000000..a422718 --- /dev/null +++ b/src/iem_t3_lib/t3_delay.c @@ -0,0 +1,97 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iem_t3_lib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ------------------------ t3_delay ---------------------------- */ +static t_class *t3_delay_class; + +typedef struct _t3_delay +{ + t_object x_obj; + t_clock *x_clock; + double x_deltime; + double x_ticks2ms; + double x_t3_bang; +} t_t3_delay; + +static void t3_delay_tick(t_t3_delay *x) +{ + outlet_float(x->x_obj.ob_outlet, x->x_t3_bang); +} + +static void t3_delay_stop(t_t3_delay *x) +{ + clock_unset(x->x_clock); +} + +static void t3_delay_float(t_t3_delay *x, t_floatarg t3_bang) +{ + double dticks; + int iticks; + + if(t3_bang < 0) + t3_bang = 0; + dticks = (x->x_deltime + (double)t3_bang)/x->x_ticks2ms; + iticks = (int)dticks; + x->x_t3_bang = (dticks - (double)iticks)*x->x_ticks2ms; + clock_delay(x->x_clock, (double)iticks*x->x_ticks2ms); +} + +static void t3_delay_ft1(t_t3_delay *x, t_floatarg f) +{ + if(f < 0) + f = 0; + x->x_deltime = f; +} + +static void t3_delay_list(t_t3_delay *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac == 2)&&IS_A_FLOAT(av,0)&&IS_A_FLOAT(av,1)) + { + t3_delay_ft1(x, atom_getfloatarg(1, ac, av)); + t3_delay_float(x, atom_getfloatarg(0, ac, av)); + } +} + +static void t3_delay_free(t_t3_delay *x) +{ + clock_free(x->x_clock); +} + +static void *t3_delay_new(t_floatarg f) +{ + t_t3_delay *x = (t_t3_delay *)pd_new(t3_delay_class); + + x->x_ticks2ms = 1000.0*(double)sys_getblksize()/(double)sys_getsr(); + t3_delay_ft1(x, f); + x->x_clock = clock_new(x, (t_method)t3_delay_tick); + outlet_new(&x->x_obj, &s_float); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("ft1")); + return (x); +} + +void t3_delay_setup(void) +{ + t3_delay_class = class_new(gensym("t3_delay"), (t_newmethod)t3_delay_new, + (t_method)t3_delay_free, sizeof(t_t3_delay), 0, A_DEFFLOAT, 0); + class_addcreator((t_newmethod)t3_delay_new, gensym("t3_del"), A_DEFFLOAT, 0); + class_addmethod(t3_delay_class, (t_method)t3_delay_stop, gensym("stop"), 0); + class_addmethod(t3_delay_class, (t_method)t3_delay_ft1, + gensym("ft1"), A_FLOAT, 0); + class_addfloat(t3_delay_class, (t_method)t3_delay_float); + class_addlist(t3_delay_class, (t_method)t3_delay_list); + class_sethelpsymbol(t3_delay_class, gensym("iemhelp/help-t3_delay")); +} + diff --git a/src/iem_t3_lib/t3_metro.c b/src/iem_t3_lib/t3_metro.c new file mode 100644 index 0000000..b33ad7e --- /dev/null +++ b/src/iem_t3_lib/t3_metro.c @@ -0,0 +1,121 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iem_t3_lib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ------------------------ t3_metro ---------------------------- */ +static t_class *t3_metro_class; + +typedef struct _t3_metro +{ + t_object x_obj; + t_clock *x_clock; + double x_metrotime; + double x_ticks2ms; + double x_t3_bang; + int x_hit; + void *x_out_next; +} t_t3_metro; + +static void t3_metro_stop(t_t3_metro *x) +{ + clock_unset(x->x_clock); +} + +static void t3_metro_tick(t_t3_metro *x) +{ + double dticks; + int iticks; + + x->x_hit = 0; + outlet_float(x->x_out_next, x->x_metrotime); + outlet_float(x->x_obj.ob_outlet, x->x_t3_bang); + dticks = (x->x_metrotime + x->x_t3_bang)/x->x_ticks2ms; + iticks = (int)dticks; + x->x_t3_bang = (dticks - (double)iticks)*x->x_ticks2ms; + if(!x->x_hit) + clock_delay(x->x_clock, (double)iticks*x->x_ticks2ms); +} + +static void t3_metro_float(t_t3_metro *x, t_floatarg t3_bang) +{ + double dticks; + int iticks; + + if(t3_bang < 0) + t3_bang = 0; + dticks = (double)t3_bang/x->x_ticks2ms; + iticks = (int)dticks; + x->x_t3_bang = (dticks - (double)iticks)*x->x_ticks2ms; + clock_delay(x->x_clock, (double)iticks*x->x_ticks2ms); + x->x_hit = 1; +} + +static void t3_metro_start(t_t3_metro *x, t_floatarg f) +{ + t3_metro_float(x, f); + x->x_hit = 1; +} + +static void t3_metro_ft1(t_t3_metro *x, t_floatarg f) +{ + if(f < 0.01) f = 0.01; + x->x_metrotime = (double)f; +} + +static void t3_metro_list(t_t3_metro *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac == 2)&&IS_A_FLOAT(av,0)&&IS_A_FLOAT(av,1)) + { + t3_metro_ft1(x, atom_getfloatarg(1, ac, av)); + t3_metro_float(x, atom_getfloatarg(0, ac, av)); + } +} + +static void t3_metro_free(t_t3_metro *x) +{ + clock_free(x->x_clock); +} + +static void *t3_metro_new(t_symbol *s, int ac, t_atom *av) +{ + t_t3_metro *x = (t_t3_metro *)pd_new(t3_metro_class); + + x->x_metrotime = 10.0; + x->x_t3_bang = 0.0; + x->x_hit = 0; + if((ac == 1)&&IS_A_FLOAT(av,0)) + { + t3_metro_ft1(x, atom_getfloatarg(0, ac, av)); + } + x->x_ticks2ms = 1000.0*(double)sys_getblksize()/(double)sys_getsr(); + x->x_clock = clock_new(x, (t_method)t3_metro_tick); + outlet_new(&x->x_obj, &s_float); + x->x_out_next = outlet_new(&x->x_obj, &s_float); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, gensym("float"), gensym("ft1")); + return (x); +} + +void t3_metro_setup(void) +{ + t3_metro_class = class_new(gensym("t3_metro"), (t_newmethod)t3_metro_new, + (t_method)t3_metro_free, sizeof(t_t3_metro), 0, A_GIMME, 0); + class_addmethod(t3_metro_class, (t_method)t3_metro_stop, gensym("stop"), 0); + class_addmethod(t3_metro_class, (t_method)t3_metro_start, gensym("start"), A_FLOAT, 0); + class_addmethod(t3_metro_class, (t_method)t3_metro_ft1, gensym("ft1"), A_FLOAT, 0); + class_addfloat(t3_metro_class, (t_method)t3_metro_float); + class_addlist(t3_metro_class, (t_method)t3_metro_list); + class_sethelpsymbol(t3_metro_class, gensym("iemhelp/help-t3_metro")); +} + diff --git a/src/iem_t3_lib/t3_timer.c b/src/iem_t3_lib/t3_timer.c new file mode 100644 index 0000000..c52a926 --- /dev/null +++ b/src/iem_t3_lib/t3_timer.c @@ -0,0 +1,55 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iem_t3_lib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* -------------------------- t3_timer ------------------------------ */ +static t_class *t3_timer_class; + +typedef struct _t3_timer +{ + t_object x_obj; + double x_settime; + double x_t3_off; +} t_t3_timer; + +static void t3_timer_float(t_t3_timer *x, t_float t3_bang) +{ + x->x_settime = (double)clock_getsystime(); + x->x_t3_off = (double)t3_bang; +} + +static void t3_timer_ft1(t_t3_timer *x, t_float t3_bang) +{ + outlet_float(x->x_obj.ob_outlet, clock_gettimesince(x->x_settime) + + (double)t3_bang - x->x_t3_off); +} + +static void *t3_timer_new(void) +{ + t_t3_timer *x = (t_t3_timer *)pd_new(t3_timer_class); + t3_timer_float(x, 0.0); + outlet_new(&x->x_obj, &s_float); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + return (x); +} + +void t3_timer_setup(void) +{ + t3_timer_class = class_new(gensym("t3_timer"), (t_newmethod)t3_timer_new, 0, + sizeof(t_t3_timer), 0, 0); + class_addfloat(t3_timer_class, t3_timer_float); + class_addmethod(t3_timer_class, (t_method)t3_timer_ft1, gensym("ft1"), A_FLOAT, 0); + class_sethelpsymbol(t3_timer_class, gensym("iemhelp/help-t3_timer")); +} diff --git a/src/iemlib1/biquad_freq_resp.c b/src/iemlib1/biquad_freq_resp.c new file mode 100644 index 0000000..3ebe25d --- /dev/null +++ b/src/iemlib1/biquad_freq_resp.c @@ -0,0 +1,92 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* --------------------------- biquad_freq_resp ----------------------------- */ + +typedef struct _biquad_freq_resp +{ + t_object x_obj; + float a0; + float a1; + float a2; + float b1; + float b2; + t_outlet *x_out_re; + t_outlet *x_out_im; +} t_biquad_freq_resp; + +static t_class *biquad_freq_resp_class; + +static void biquad_freq_resp_float(t_biquad_freq_resp *x, t_float f) +{ + float re1, im1, re2, im2; + float c, s, a; + + if(f < 0.0f) + f = 0.0f; + else if(f > 180.0f) + f = 180.0; + f *= 3.14159265f; + f /= 180.0f; + + c = cos(f); + s = sin(f); + + re1 = x->a0 + x->a1*c + x->a2*(c*c - s*s); + im1 = x->a1*s + x->a2*2.0f*(s*c); + re2 = 1.0f - x->b1*c - x->b2*(c*c - s*s); + im2 = -x->b1*s - x->b2*2.0f*(s*c); + a = re2*re2 + im2*im2; + outlet_float(x->x_out_im, (re1*im2 - re2*im1)/a);/* because z^-1 = e^-jwt, negative sign */ + outlet_float(x->x_out_re, (re1*re2 + im1*im2)/a); + +} +/* y/x = (a0 + a1*z-1 + a2*z-2)/(1 - b1*z-1 - b2*z-2);*/ + +static void biquad_freq_resp_list(t_biquad_freq_resp *x, t_symbol *s, int argc, t_atom *argv) +{ + if((argc == 5)&&IS_A_FLOAT(argv,4)&&IS_A_FLOAT(argv,3)&&IS_A_FLOAT(argv,2)&&IS_A_FLOAT(argv,1)&&IS_A_FLOAT(argv,0)) + { + x->b1 = (float)atom_getfloatarg(0, argc, argv); + x->b2 = (float)atom_getfloatarg(1, argc, argv); + x->a0 = (float)atom_getfloatarg(2, argc, argv); + x->a1 = (float)atom_getfloatarg(3, argc, argv); + x->a2 = (float)atom_getfloatarg(4, argc, argv); + } +} + +static void *biquad_freq_resp_new(void) +{ + t_biquad_freq_resp *x = (t_biquad_freq_resp *)pd_new(biquad_freq_resp_class); + x->x_out_re = outlet_new(&x->x_obj, &s_float); + x->x_out_im = outlet_new(&x->x_obj, &s_float); + x->b1 = 0.0f; + x->b2 = 0.0f; + x->a0 = 0.0f; + x->a1 = 0.0f; + x->a2 = 0.0f; + return (x); +} + +void biquad_freq_resp_setup(void) +{ + biquad_freq_resp_class = class_new(gensym("biquad_freq_resp"), (t_newmethod)biquad_freq_resp_new, 0, + sizeof(t_biquad_freq_resp), 0, 0); + class_addfloat(biquad_freq_resp_class, biquad_freq_resp_float); + class_addlist(biquad_freq_resp_class, (t_method)biquad_freq_resp_list); + class_sethelpsymbol(biquad_freq_resp_class, gensym("iemhelp/help-biquad_freq_resp")); +}
\ No newline at end of file diff --git a/src/iemlib1/db2v.c b/src/iemlib1/db2v.c new file mode 100644 index 0000000..bbf1c21 --- /dev/null +++ b/src/iemlib1/db2v.c @@ -0,0 +1,45 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ---------------- db2v - dB to value converter. ----------------- */ + +static t_class *db2v_class; + +float db2v(float f) +{ + return (f <= -199.9 ? 0 : exp(0.11512925465 * f)); +} + +static void db2v_float(t_object *x, t_float f) +{ + outlet_float(x->ob_outlet, db2v(f)); +} + +static void *db2v_new(void) +{ + t_object *x = (t_object *)pd_new(db2v_class); + outlet_new(x, &s_float); + return (x); +} + +void db2v_setup(void) +{ + db2v_class = class_new(gensym("db2v"), db2v_new, 0, + sizeof(t_object), 0, 0); + class_addfloat(db2v_class, (t_method)db2v_float); + class_sethelpsymbol(db2v_class, gensym("iemhelp/help-db2v")); +} diff --git a/src/iemlib1/f2note.c b/src/iemlib1/f2note.c new file mode 100644 index 0000000..4df6612 --- /dev/null +++ b/src/iemlib1/f2note.c @@ -0,0 +1,189 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ------ frequency to note plus cents converter --------- */ + +typedef struct _f2note +{ + t_object x_obj; + void *x_outlet_midi; + void *x_outlet_note; + void *x_outlet_cent; + int x_centomidi; + float x_refhz; + float x_refexp; + float x_reflog; + t_symbol *x_set; +} t_f2note; + +static t_class *f2note_class; + +float f2note_mtof(t_f2note *x, float midi) +{ + return(x->x_refexp * exp(0.057762265047 * midi)); +} + +float f2note_ftom(t_f2note *x, float freq) +{ + return (freq > 0 ? 17.31234049 * log(x->x_reflog * freq) : -1500); +} + +void f2note_calc_ref(t_f2note *x) +{ + float ln2=log(2.0); + + x->x_refexp = x->x_refhz*exp(-5.75*ln2); + x->x_reflog = 1.0/x->x_refexp; +} + +static void f2note_make_note(char *str, int midi) +{ + int j,k,l=0; + + j = midi / 12; + k = midi % 12; + if(k <= 5) + { + if(k <= 2) + { + if(k==0) + str[l]='c'; + else if(k==1) + { + str[l++]='#'; + str[l]='c'; + } + else + str[l]='d'; + } + else + { + if(k==3) + { + str[l++]='#'; + str[l]='d'; + } + else if(k==4) + str[l]='e'; + else + str[l]='f'; + } + } + else + { + if(k <= 8) + { + if(k==6) + { + str[l++]='#'; + str[l]='f'; + } + else if(k==7) + str[l]='g'; + else + { + str[l++]='#'; + str[l]='g'; + } + } + else + { + if(k==9) + str[l]='a'; + else if(k==10) + { + str[l++]='#'; + str[l]='a'; + } + else + str[l]='h'; + } + } + + if(j < 4) + { + str[l] -= 'a'; + str[l] += 'A'; + } + l++; + if(j < 3) + { + str[l++] = '0' + (char)(3 - j); + } + else if(j > 4) + { + str[l++] = '0' + (char)(j - 4); + } + str[l] = 0; +} + +static void f2note_bang(t_f2note *x) +{ + int i,j; + t_atom at; + char s[4]; + + i = (x->x_centomidi + 50)/100; + j = x->x_centomidi - 100*i; + outlet_float(x->x_outlet_cent, (float)j); + f2note_make_note(s, i); + SETSYMBOL(&at, gensym(s)); + outlet_anything(x->x_outlet_note, x->x_set, 1, &at); + outlet_float(x->x_outlet_midi, 0.01*(float)(x->x_centomidi)); +} + +static void f2note_float(t_f2note *x, t_floatarg freq) +{ + x->x_centomidi = (int)(100.0*f2note_ftom(x, freq) + 0.5); + f2note_bang(x); +} + +void f2note_ref(t_f2note *x, t_floatarg ref) +{ + x->x_refhz = ref; + f2note_calc_ref(x); +} + +static void *f2note_new(t_floatarg ref) +{ + t_f2note *x = (t_f2note *)pd_new(f2note_class); + + if(ref == 0.0) + ref=440.0; + x->x_refhz = ref; + x->x_centomidi = (int)(100.0*ref + 0.499); + f2note_calc_ref(x); + x->x_outlet_midi = outlet_new(&x->x_obj, &s_float); + x->x_outlet_note = outlet_new(&x->x_obj, &s_list); + x->x_outlet_cent = outlet_new(&x->x_obj, &s_float); + x->x_set = gensym("set"); + return (x); +} + +static void f2note_free(t_f2note *x) +{ +} + +void f2note_setup(void) +{ + f2note_class = class_new(gensym("f2note"), (t_newmethod)f2note_new, (t_method)f2note_free, + sizeof(t_f2note), 0, A_DEFFLOAT, 0); + class_addbang(f2note_class,f2note_bang); + class_addfloat(f2note_class,f2note_float); + class_addmethod(f2note_class, (t_method)f2note_ref, gensym("ref"), A_FLOAT, 0); + class_sethelpsymbol(f2note_class, gensym("iemhelp/help-f2note")); +} diff --git a/src/iemlib1/forpp.c b/src/iemlib1/forpp.c new file mode 100644 index 0000000..3e98539 --- /dev/null +++ b/src/iemlib1/forpp.c @@ -0,0 +1,192 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* -------------------------- forpp ------------------------------ */ + +typedef struct _forpp +{ + t_object x_obj; + int x_beg; + int x_end; + float x_delay; + int x_cur; + int x_incr; + void *x_out_end; + void *x_clock; + void *x_clock2; +} t_forpp; + +static t_class *forpp_class; + +static void forpp_tick2(t_forpp *x) +{ + outlet_bang(x->x_out_end); + clock_unset(x->x_clock2); +} + +static void forpp_tick(t_forpp *x) +{ + outlet_float(x->x_obj.ob_outlet, x->x_cur); + x->x_cur += x->x_incr; + if(x->x_incr > 0) + { + if(x->x_cur <= x->x_end) + clock_delay(x->x_clock, x->x_delay); + else + { + clock_unset(x->x_clock); + clock_delay(x->x_clock2, x->x_delay); + } + } + else + { + if(x->x_cur >= x->x_end) + clock_delay(x->x_clock, x->x_delay); + else + { + clock_unset(x->x_clock); + clock_delay(x->x_clock2, x->x_delay); + } + } +} + +static void forpp_bang(t_forpp *x) +{ + x->x_cur = x->x_beg; + outlet_float(x->x_obj.ob_outlet, x->x_cur); + x->x_cur += x->x_incr; + if(x->x_incr > 0) + { + if(x->x_cur <= x->x_end) + clock_delay(x->x_clock, x->x_delay); + else + { + clock_unset(x->x_clock); + clock_delay(x->x_clock2, x->x_delay); + } + } + else + { + if(x->x_cur >= x->x_end) + clock_delay(x->x_clock, x->x_delay); + else + { + clock_unset(x->x_clock); + clock_delay(x->x_clock2, x->x_delay); + } + } + +} + +static void forpp_start(t_forpp *x) +{ + forpp_bang(x); +} + +static void forpp_stop(t_forpp *x) +{ + if(x->x_incr > 0) + x->x_cur = x->x_end + 1; + else + x->x_cur = x->x_end - 1; + clock_unset(x->x_clock); + clock_unset(x->x_clock2); +} + +static void forpp_float(t_forpp *x, t_float beg) +{ + x->x_beg = (int)beg; + if(x->x_end < x->x_beg) + x->x_incr = -1; + else + x->x_incr = 1; +} + +static void forpp_ft1(t_forpp *x, t_float end) +{ + x->x_end = (int)end; + if(x->x_end < x->x_beg) + x->x_incr = -1; + else + x->x_incr = 1; +} + +static void forpp_ft2(t_forpp *x, t_float delay) +{ + if(delay < 0.0) + delay = 0.0; + x->x_delay = delay; +} + +static void forpp_list(t_forpp *x, t_symbol *s, int argc, t_atom *argv) +{ + if(argc == 2) + { + forpp_float(x, atom_getfloatarg(0, argc, argv)); + forpp_ft1(x, atom_getfloatarg(1, argc, argv)); + } + else if(argc == 3) + { + forpp_float(x, atom_getfloatarg(0, argc, argv)); + forpp_ft1(x, atom_getfloatarg(1, argc, argv)); + forpp_ft2(x, atom_getfloatarg(2, argc, argv)); + } +} + +static void *forpp_new(t_floatarg beg, t_floatarg end, t_floatarg delay) +{ + t_forpp *x = (t_forpp *)pd_new(forpp_class); + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft2")); + outlet_new(&x->x_obj, &s_float); + x->x_out_end = outlet_new(&x->x_obj, &s_bang); + x->x_clock = clock_new(x, (t_method)forpp_tick); + x->x_clock2 = clock_new(x, (t_method)forpp_tick2); + x->x_beg = (int)beg; + x->x_end = (int)end; + if(x->x_end < x->x_beg) + x->x_incr = -1; + else + x->x_incr = 1; + if(delay < 0.0) + delay = 0.0; + x->x_delay = delay; + x->x_cur = x->x_beg; + return(x); +} + +static void forpp_ff(t_forpp *x) +{ + clock_free(x->x_clock); + clock_free(x->x_clock2); +} + +void forpp_setup(void) +{ + forpp_class = class_new(gensym("for++"), (t_newmethod)forpp_new, + (t_method)forpp_ff, sizeof(t_forpp), + 0, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addbang(forpp_class, forpp_bang); + class_addfloat(forpp_class, forpp_float); + class_addlist(forpp_class, forpp_list); + class_addmethod(forpp_class, (t_method)forpp_start, gensym("start"), 0); + class_addmethod(forpp_class, (t_method)forpp_stop, gensym("stop"), 0); + class_addmethod(forpp_class, (t_method)forpp_ft1, gensym("ft1"), A_FLOAT, 0); + class_addmethod(forpp_class, (t_method)forpp_ft2, gensym("ft2"), A_FLOAT, 0); + class_sethelpsymbol(forpp_class, gensym("iemhelp/help-for++")); +} diff --git a/src/iemlib1/gate.c b/src/iemlib1/gate.c new file mode 100644 index 0000000..957ee07 --- /dev/null +++ b/src/iemlib1/gate.c @@ -0,0 +1,84 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* -------------------------- gate ------------------------------ */ + +typedef struct _gate +{ + t_object x_obj; + float x_state; +} t_gate; + +static t_class *gate_class; + +static void gate_bang(t_gate *x) +{ + if(x->x_state != 0) + outlet_bang(x->x_obj.ob_outlet); +} + +static void gate_pointer(t_gate *x, t_gpointer *gp) +{ + if(x->x_state != 0) + outlet_pointer(x->x_obj.ob_outlet, gp); +} + +static void gate_float(t_gate *x, t_floatarg f) +{ + if(x->x_state != 0) + outlet_float(x->x_obj.ob_outlet, f); +} + +static void gate_symbol(t_gate *x, t_symbol *s) +{ + if(x->x_state != 0) + outlet_symbol(x->x_obj.ob_outlet, s); +} + +static void gate_list(t_gate *x, t_symbol *s, int argc, t_atom *argv) +{ + if(x->x_state != 0) + outlet_list(x->x_obj.ob_outlet, s, argc, argv); +} + +static void gate_anything(t_gate *x, t_symbol *s, int argc, t_atom *argv) +{ + if(x->x_state != 0) + outlet_anything(x->x_obj.ob_outlet, s, argc, argv); +} + +static void *gate_new(t_floatarg f) +{ + t_gate *x = (t_gate *)pd_new(gate_class); + floatinlet_new(&x->x_obj, &x->x_state); + outlet_new(&x->x_obj, 0); + x->x_state = (f==0.0)?0:1; + return (x); +} + +void gate_setup(void) +{ + gate_class = class_new(gensym("gate"), (t_newmethod)gate_new, 0, + sizeof(t_gate), 0, A_DEFFLOAT, 0); + class_addbang(gate_class, gate_bang); + class_addpointer(gate_class, gate_pointer); + class_addfloat(gate_class, gate_float); + class_addsymbol(gate_class, gate_symbol); + class_addlist(gate_class, gate_list); + class_addanything(gate_class, gate_anything); + class_sethelpsymbol(gate_class, gensym("iemhelp/help-gate")); +} diff --git a/src/iemlib1/iemlib.h b/src/iemlib1/iemlib.h new file mode 100644 index 0000000..cc882b1 --- /dev/null +++ b/src/iemlib1/iemlib.h @@ -0,0 +1,98 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifndef __IEMLIB_H__ +#define __IEMLIB_H__ + + +#define IS_A_POINTER(atom,index) ((atom+index)->a_type == A_POINTER) +#define IS_A_FLOAT(atom,index) ((atom+index)->a_type == A_FLOAT) +#define IS_A_SYMBOL(atom,index) ((atom+index)->a_type == A_SYMBOL) +#define IS_A_DOLLAR(atom,index) ((atom+index)->a_type == A_DOLLAR) +#define IS_A_DOLLSYM(atom,index) ((atom+index)->a_type == A_DOLLSYM) +#define IS_A_SEMI(atom,index) ((atom+index)->a_type == A_SEMI) +#define IS_A_COMMA(atom,index) ((atom+index)->a_type == A_COMMA) + + +#ifdef NT +int sys_noloadbang; +//t_symbol *iemgui_key_sym=0; +#include <io.h> +#else +extern int sys_noloadbang; +//extern t_symbol *iemgui_key_sym; +#include <unistd.h> +#endif + +#define DEFDELVS 64 +#define XTRASAMPS 4 +#define SAMPBLK 4 + + +#define UNITBIT32 1572864. /* 3*2^19; bit 32 has place value 1 */ + + /* machine-dependent definitions. These ifdefs really + should have been by CPU type and not by operating system! */ +#ifdef IRIX + /* big-endian. Most significant byte is at low address in memory */ +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#define int32 long /* a data type that has 32 bits */ +#else +#ifdef MSW + /* little-endian; most significant byte is at highest address */ +#define HIOFFSET 1 +#define LOWOFFSET 0 +#define int32 long +#else +#ifdef __FreeBSD__ +#include <machine/endian.h> +#if BYTE_ORDER == LITTLE_ENDIAN +#define HIOFFSET 1 +#define LOWOFFSET 0 +#else +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#endif /* BYTE_ORDER */ +#include <sys/types.h> +#define int32 int32_t +#endif +#ifdef __linux__ + +#include <endian.h> + +#if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) +#error No byte order defined +#endif + +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define HIOFFSET 1 +#define LOWOFFSET 0 +#else +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#endif /* __BYTE_ORDER */ + +#include <sys/types.h> +#define int32 int32_t + +#else +#ifdef __APPLE__ +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#define int32 int /* a data type that has 32 bits */ + +#endif /* __APPLE__ */ +#endif /* __linux__ */ +#endif /* MSW */ +#endif /* SGI */ + +union tabfudge +{ + double tf_d; + int32 tf_i[2]; +}; + +#endif diff --git a/src/iemlib1/iemlib1.c b/src/iemlib1/iemlib1.c new file mode 100644 index 0000000..3700c40 --- /dev/null +++ b/src/iemlib1/iemlib1.c @@ -0,0 +1,82 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" + +static t_class *iemlib1_class; + +static void *iemlib1_new(void) +{ + t_object *x = (t_object *)pd_new(iemlib1_class); + + return (x); +} + +void biquad_freq_resp_setup(void); +void db2v_setup(void); +void f2note_setup(void); +void forpp_setup(void); +void gate_setup(void); +void sigfilter_setup(void); +void sigFIR_setup(void); +void sighml_shelf_setup(void); +void sigiem_cot4_setup(void); +void sigiem_delay_setup(void); +void sigiem_sqrt4_setup(void); +void sigiem_pow4_setup(void); +void siglp1_t_setup(void); +void sigmov_avrg_kern_setup(void); +void sigpara_bp2_setup(void); +void sigpeakenv_setup(void); +void sigprvu_setup(void); +void sigpvu_setup(void); +void sigrvu_setup(void); +void sigsin_phase_setup(void); +void sigvcf_filter_setup(void); +void soundfile_info_setup(void); +void split_setup(void); +void v2db_setup(void); + +/* ------------------------ setup routine ------------------------- */ + +void iemlib1_setup(void) +{ + iemlib1_class = class_new(gensym("iemlib1"), iemlib1_new, 0, + sizeof(t_object), CLASS_NOINLET, 0); + + biquad_freq_resp_setup(); + db2v_setup(); + f2note_setup(); + forpp_setup(); + gate_setup(); + sigfilter_setup(); + sigFIR_setup(); + sighml_shelf_setup(); + sigiem_cot4_setup(); + sigiem_delay_setup(); + sigiem_sqrt4_setup(); + sigiem_pow4_setup(); + siglp1_t_setup(); + sigmov_avrg_kern_setup(); + sigpara_bp2_setup(); + sigpeakenv_setup(); + sigprvu_setup(); + sigpvu_setup(); + sigrvu_setup(); + sigsin_phase_setup(); + sigvcf_filter_setup(); + soundfile_info_setup(); + split_setup(); + v2db_setup(); + + post("iemlib1 (R-1.15) library loaded!"); +} diff --git a/src/iemlib1/iemlib1.dsp b/src/iemlib1/iemlib1.dsp new file mode 100644 index 0000000..7d63ad2 --- /dev/null +++ b/src/iemlib1/iemlib1.dsp @@ -0,0 +1,85 @@ +# Microsoft Developer Studio Project File - Name="iemlib1" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) External Target" 0x0106 + +CFG=iemlib1 - Win32 Debug +!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "iemlib1.mak". +!MESSAGE +!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "iemlib1.mak" CFG="iemlib1 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "iemlib1 - Win32 Release" (basierend auf "Win32 (x86) External Target") +!MESSAGE "iemlib1 - Win32 Debug" (basierend auf "Win32 (x86) External Target") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" + +!IF "$(CFG)" == "iemlib1 - Win32 Release" + +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Cmd_Line "NMAKE /f makefile_win" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "makefile_win.exe" +# PROP BASE Bsc_Name "makefile_win.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Cmd_Line "NMAKE /f makefile_win" +# PROP Rebuild_Opt "/a" +# PROP Target_File "iemlib1.exe" +# PROP Bsc_Name "iemlib1.bsc" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "iemlib1 - Win32 Debug" + +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Cmd_Line "NMAKE /f makefile_win" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "makefile_win.exe" +# PROP BASE Bsc_Name "makefile_win.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Cmd_Line "NMAKE /f makefile_win" +# PROP Rebuild_Opt "/a" +# PROP Target_File "iemlib1.exe" +# PROP Bsc_Name "iemlib1.bsc" +# PROP Target_Dir "" + +!ENDIF + +# Begin Target + +# Name "iemlib1 - Win32 Release" +# Name "iemlib1 - Win32 Debug" + +!IF "$(CFG)" == "iemlib1 - Win32 Release" + +!ELSEIF "$(CFG)" == "iemlib1 - Win32 Debug" + +!ENDIF + +# Begin Source File + +SOURCE=.\makefile_win +# End Source File +# End Target +# End Project diff --git a/src/iemlib1/iemlib1.dsw b/src/iemlib1/iemlib1.dsw new file mode 100644 index 0000000..c8260a7 --- /dev/null +++ b/src/iemlib1/iemlib1.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "iemlib1"=.\iemlib1.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/src/iemlib1/makefile b/src/iemlib1/makefile new file mode 100644 index 0000000..c8148cf --- /dev/null +++ b/src/iemlib1/makefile @@ -0,0 +1,72 @@ +current: all + +.SUFFIXES: .pd_linux + +INCLUDE = -I. -I/usr/local/src/pd/src + +LDFLAGS = -export-dynamic -shared +LIB = -ldl -lm -lpthread + +#select either the DBG and OPT compiler flags below: + +CFLAGS = -DPD -DUNIX -Wall -W -Werror -Wno-unused \ + -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer \ + -DDL_OPEN + +SYSTEM = $(shell uname -m) + +# the sources + +SRC = biquad_freq_resp.c \ + db2v.c \ + f2note.c \ + forpp.c \ + gate.c \ + sigfilter.c \ + sigFIR.c \ + sighml_shelf.c \ + sigiem_cot4.c \ + sigiem_delay.c \ + sigiem_pow4.c \ + sigiem_sqrt4.c \ + siglp1_t.c \ + sigmov_avrg_kern.c \ + sigpara_bp2.c \ + sigpeakenv.c \ + sigprvu.c \ + sigpvu.c \ + sigrvu.c \ + sigsin_phase.c \ + sigvcf_filter.c \ + soundfile_info.c \ + split.c \ + v2db.c \ + iemlib1.c + +TARGET = iemlib1.pd_linux + + +OBJ = $(SRC:.c=.o) + +# +# ------------------ targets ------------------------------------ +# + +clean: + rm ../../lib/$(TARGET) + rm *.o + +all: $(OBJ) + @echo :: $(OBJ) + ld $(LDFLAGS) -o $(TARGET) *.o $(LIB) + strip --strip-unneeded $(TARGET) + mv $(TARGET) ../../lib + rm *.o + +$(OBJ) : %.o : %.c + touch $*.c + cc $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c + + + + diff --git a/src/iemlib1/makefile.darwin b/src/iemlib1/makefile.darwin new file mode 100644 index 0000000..338310e --- /dev/null +++ b/src/iemlib1/makefile.darwin @@ -0,0 +1,72 @@ +current: all + +.SUFFIXES: .pd_darwin + +INCLUDE = -I. -I/usr/local/src/pd-0.37-1test6/src + +LDFLAGS = -export-dynamic -shared +LIB = -ldl -lm -lpthread + +#select either the DBG and OPT compiler flags below: + +CFLAGS = -DPD -DUNIX -g -Wall -W -Werror -Wno-unused \ + -Wno-parentheses -Wno-switch -O2 $(INCLUDE) $(UCFLAGS) $(AFLAGS) \ + +MACOSXLINKFLAGS = -bundle -bundle_loader /usr/local/src/pd-0.37-1test6/bin/pd + +SYSTEM = $(shell uname -m) + +# the sources + +SRC = biquad_freq_resp.c \ + db2v.c \ + f2note.c \ + forpp.c \ + gate.c \ + sigfilter.c \ + sigFIR.c \ + sighml_shelf.c \ + sigiem_cot4.c \ + sigiem_delay.c \ + sigiem_pow4.c \ + sigiem_sqrt4.c \ + siglp1_t.c \ + sigmov_avrg_kern.c \ + sigpara_bp2.c \ + sigpeakenv.c \ + sigprvu.c \ + sigpvu.c \ + sigrvu.c \ + sigsin_phase.c \ + sigvcf_filter.c \ + soundfile_info.c \ + split.c \ + v2db.c \ + iemlib1.c + +TARGET = iemlib1.pd_darwin + + +OBJ = $(SRC:.c=.o) + +# +# ------------------ targets ------------------------------------ +# + +clean: + rm ../../lib/$(TARGET) + rm *.o + +all: $(OBJ) + @echo :: $(OBJ) + $(CC) $(MACOSXLINKFLAGS) -o $(TARGET) *.o $(LIB) + strip --strip-unneeded $(TARGET) + mv $(TARGET) ../../lib + +$(OBJ) : %.o : %.c + touch $*.c + $(CC) $(CFLAGS) -DPD $(INCLUDE) -c -o $*.o $*.c + + + + diff --git a/src/iemlib1/makefile_win b/src/iemlib1/makefile_win new file mode 100644 index 0000000..8ab353c --- /dev/null +++ b/src/iemlib1/makefile_win @@ -0,0 +1,61 @@ + +all: ..\..\lib\iemlib1.dll + +VIS_CPP_PATH = "C:\Programme\Microsoft Visual Studio\Vc98" + +PD_INST_PATH = "C:\Programme\pd" + +PD_WIN_INCLUDE_PATH = /I. /I$(PD_INST_PATH)\src /I$(VIS_CPP_PATH)\include + +PD_WIN_C_FLAGS = /nologo /W3 /WX /DMSW /DNT /DPD /DWIN32 /DWINDOWS /Ox -DPA_LITTLE_ENDIAN + +PD_WIN_L_FLAGS = /nologo + +PD_WIN_LIB = /NODEFAULTLIB:libc /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel /NODEFAULTLIB:uuid \ + $(VIS_CPP_PATH)\lib\libc.lib \ + $(VIS_CPP_PATH)\lib\oldnames.lib \ + $(VIS_CPP_PATH)\lib\kernel32.lib \ + $(VIS_CPP_PATH)\lib\wsock32.lib \ + $(VIS_CPP_PATH)\lib\winmm.lib \ + $(PD_INST_PATH)\bin\pthreadVC.lib \ + $(PD_INST_PATH)\bin\pd.lib + + +SRC = biquad_freq_resp.c \ + db2v.c \ + f2note.c \ + forpp.c \ + gate.c \ + sigfilter.c \ + sigFIR.c \ + sighml_shelf.c \ + sigiem_cot4.c \ + sigiem_delay.c \ + sigiem_sqrt4.c \ + sigiem_pow4.c \ + siglp1_t.c \ + sigmov_avrg_kern.c \ + sigpara_bp2.c \ + sigpeakenv.c \ + sigprvu.c \ + sigpvu.c \ + sigrvu.c \ + sigsin_phase.c \ + sigvcf_filter.c \ + soundfile_info.c \ + split.c \ + v2db.c \ + iemlib1.c + + +OBJ = $(SRC:.c=.obj) + +.c.obj: + cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c + +..\..\lib\iemlib1.dll: $(OBJ) + link $(PD_WIN_L_FLAGS) /dll /export:iemlib1_setup \ + /out:..\..\lib\iemlib1.dll $(OBJ) $(PD_WIN_LIB) + +clean: + del *.obj diff --git a/src/iemlib1/sigFIR.c b/src/iemlib1/sigFIR.c new file mode 100644 index 0000000..51c9de0 --- /dev/null +++ b/src/iemlib1/sigFIR.c @@ -0,0 +1,177 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + + +/* ---------- FIR~ - FIR-filter with table~-coef ----------- */ + +typedef struct sigFIR +{ + t_object x_obj; + float *x_coef_beg; + float *x_history_beg; + int x_rw_index; + int x_fir_order; + t_symbol *x_table_name; + float x_msi; +} t_sigFIR; + +t_class *sigFIR_class; + +static t_int *sigFIR_perform(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_sigFIR *x = (t_sigFIR *)(w[3]); + int n = (t_int)(w[4]); + int rw_index = x->x_rw_index; + int i, j; + int order = x->x_fir_order; + int ord16 = order / 16; + float sum=0.0f; + float *coef = x->x_coef_beg; + float *write_hist1=x->x_history_beg; + float *write_hist2; + float *read_hist; + float *coef_vec; + float *hist_vec; + + if(!coef) + goto sigFIRperfzero; + + write_hist1 = x->x_history_beg; + write_hist2 = write_hist1 + order; + read_hist = write_hist2; + + for(i=0; i<n; i++) + { + write_hist1[rw_index] = in[i]; + write_hist2[rw_index] = in[i]; + + sum = 0.0f; + coef_vec = coef; + hist_vec = &read_hist[rw_index]; + for(j=0; j<ord16; j++) + { + sum += coef_vec[0] * hist_vec[0]; + sum += coef_vec[1] * hist_vec[-1]; + sum += coef_vec[2] * hist_vec[-2]; + sum += coef_vec[3] * hist_vec[-3]; + sum += coef_vec[4] * hist_vec[-4]; + sum += coef_vec[5] * hist_vec[-5]; + sum += coef_vec[6] * hist_vec[-6]; + sum += coef_vec[7] * hist_vec[-7]; + sum += coef_vec[8] * hist_vec[-8]; + sum += coef_vec[9] * hist_vec[-9]; + sum += coef_vec[10] * hist_vec[-10]; + sum += coef_vec[11] * hist_vec[-11]; + sum += coef_vec[12] * hist_vec[-12]; + sum += coef_vec[13] * hist_vec[-13]; + sum += coef_vec[14] * hist_vec[-14]; + sum += coef_vec[15] * hist_vec[-15]; + coef_vec += 16; + hist_vec -= 16; + } + for(j=ord16*16; j<order; j++) + { + sum += coef[j] * read_hist[rw_index-j]; + } + out[i] = sum; + + rw_index++; + if(rw_index >= order) + rw_index -= order; + } + + x->x_rw_index = rw_index; + return(w+5); + +sigFIRperfzero: + + while(n--) + *out++ = 0.0f; + return(w+5); +} + +void sigFIR_set(t_sigFIR *x, t_symbol *table_name, t_floatarg forder) +{ + t_garray *ga; + int table_size; + int order = (int)forder; + + x->x_table_name = table_name; + if(!(ga = (t_garray *)pd_findbyclass(x->x_table_name, garray_class))) + { + if(*table_name->s_name) + error("FIR~: %s: no such table~", x->x_table_name->s_name); + x->x_coef_beg = 0; + } + else if(!garray_getfloatarray(ga, &table_size, &x->x_coef_beg)) + { + error("%s: bad template for FIR~", x->x_table_name->s_name); + x->x_coef_beg = 0; + } + else if(table_size < order) + { + error("FIR~: tablesize %d < order %d !!!!", table_size, order); + x->x_coef_beg = 0; + } + else + garray_usedindsp(ga); + x->x_rw_index = 0; + if(order > x->x_fir_order)/* resize */ + x->x_history_beg = (float *)resizebytes(x->x_history_beg, 2*x->x_fir_order*sizeof(float), 2*order*sizeof(float)); + x->x_fir_order = order; +} + +static void sigFIR_dsp(t_sigFIR *x, t_signal **sp) +{ + sigFIR_set(x, x->x_table_name, x->x_fir_order); + dsp_add(sigFIR_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); +} + +static void *sigFIR_new(t_symbol *ref, t_floatarg np) +{ + t_sigFIR *x = (t_sigFIR *)pd_new(sigFIR_class); + + outlet_new(&x->x_obj, &s_signal); + x->x_msi = 0; + x->x_table_name = ref; + x->x_coef_beg = 0; + if((int)np < 1) + np = 1.0; + x->x_fir_order = (int)np; + x->x_history_beg = (float *)getbytes((2*x->x_fir_order)*sizeof(float)); + x->x_rw_index = 0; + return(x); +} + +static void sigFIR_free(t_sigFIR *x) +{ + if(x->x_history_beg) + freebytes(x->x_history_beg, (2*x->x_fir_order)*sizeof(float)); +} + +void sigFIR_setup(void) +{ + sigFIR_class = class_new(gensym("FIR~"), (t_newmethod)sigFIR_new, + (t_method)sigFIR_free, sizeof(t_sigFIR), 0, A_DEFSYM, A_DEFFLOAT, 0); + CLASS_MAINSIGNALIN(sigFIR_class, t_sigFIR, x_msi); + class_addmethod(sigFIR_class, (t_method)sigFIR_dsp, gensym("dsp"), 0); + class_addmethod(sigFIR_class, (t_method)sigFIR_set, + gensym("set"), A_SYMBOL, A_FLOAT, 0); + class_sethelpsymbol(sigFIR_class, gensym("iemhelp/help-FIR~")); +} diff --git a/src/iemlib1/sigfilter.c b/src/iemlib1/sigfilter.c new file mode 100644 index 0000000..6a05206 --- /dev/null +++ b/src/iemlib1/sigfilter.c @@ -0,0 +1,822 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + + +/* ---------- filter~ - slow dynamic filter 1. and 2. order ----------- */ + +typedef struct sigfilter +{ + t_object x_obj; + float wn1; + float wn2; + float a0; + float a1; + float a2; + float b1; + float b2; + float sr; + float cur_f; + float cur_l; + float cur_a; + float cur_b; + float delta_f; + float delta_a; + float delta_b; + float end_f; + float end_a; + float end_b; + float ticks_per_interpol_time; + float rcp_ticks; + float interpol_time; + int ticks; + int counter_f; + int counter_a; + int counter_b; + int inv; + int hp; + int first_order; + int event_mask; + void (*calc)(); + void *x_debug_outlet; + t_atom x_at[5]; + float x_msi; +} t_sigfilter; + +t_class *sigfilter_class; + +static void sigfilter_snafu(t_sigfilter *x) +{ + +} + +static void sigfilter_lp1(t_sigfilter *x) +{ + float al; + + al = x->cur_a * x->cur_l; + x->a0 = 1.0f/(1.0f + al); + x->a1 = x->a0; + x->b1 = (al - 1.0f)*x->a0; +} + +static void sigfilter_lp2(t_sigfilter *x) +{ + float l, al, bl2, rcp; + + l = x->cur_l; + al = l*x->cur_a; + bl2 = l*l*x->cur_b + 1.0f; + rcp = 1.0f/(al + bl2); + x->a0 = rcp; + x->a1 = 2.0f*rcp; + x->a2 = x->a0; + x->b1 = rcp*2.0f*(bl2 - 2.0f); + x->b2 = rcp*(al - bl2); +} + +static void sigfilter_hp1(t_sigfilter *x) +{ + float al, rcp; + + al = x->cur_a * x->cur_l; + rcp = 1.0f/(1.0f + al); + x->a0 = rcp*al; + x->a1 = -x->a0; + x->b1 = rcp*(al - 1.0f); +} + +static void sigfilter_hp2(t_sigfilter *x) +{ + float l, al, bl2, rcp; + + l = x->cur_l; + bl2 = l*l*x->cur_b + 1.0f; + al = l*x->cur_a; + rcp = 1.0f/(al + bl2); + x->a0 = rcp*(bl2 - 1.0f); + x->a1 = -2.0f*x->a0; + x->a2 = x->a0; + x->b1 = rcp*2.0f*(bl2 - 2.0f); + x->b2 = rcp*(al - bl2); +} + +static void sigfilter_rp2(t_sigfilter *x) +{ + float l, al, l2, rcp; + + l = x->cur_l; + l2 = l*l + 1.0f; + al = l*x->cur_a; + rcp = 1.0f/(al + l2); + x->a0 = rcp*l; + x->a2 = -x->a0; + x->b1 = rcp*2.0f*(l2 - 2.0f); + x->b2 = rcp*(al - l2); +} + +static void sigfilter_bp2(t_sigfilter *x) +{ + float l, al, l2, rcp; + + l = x->cur_l; + l2 = l*l + 1.0f; + al = l*x->cur_a; + rcp = 1.0f/(al + l2); + x->a0 = rcp*al; + x->a2 = -x->a0; + x->b1 = rcp*2.0f*(l2 - 2.0f); + x->b2 = rcp*(al - l2); +} + +static void sigfilter_bs2(t_sigfilter *x) +{ + float l, al, l2, rcp; + + l = x->cur_l; + l2 = l*l + 1.0f; + al = l*x->cur_a; + rcp = 1.0f/(al + l2); + x->a0 = rcp*l2; + x->a1 = rcp*2.0f*(2.0f - l2); + x->a2 = x->a0; + x->b1 = -x->a1; + x->b2 = rcp*(al - l2); +} + +static void sigfilter_rpw2(t_sigfilter *x) +{ + float l, al, l2, rcp; + + l = x->cur_l; + l2 = l*l + 1.0f; + al = l*x->cur_a/x->cur_f; + rcp = 1.0f/(al + l2); + x->a0 = rcp*l; + x->a2 = -x->a0; + x->b1 = rcp*2.0f*(l2 - 2.0f); + x->b2 = rcp*(al - l2); +} + +static void sigfilter_bpw2(t_sigfilter *x) +{ + float l, al, l2, rcp; + + l = x->cur_l; + l2 = l*l + 1.0f; + al = l*x->cur_a/x->cur_f; + rcp = 1.0f/(al + l2); + x->a0 = rcp*al; + x->a2 = -x->a0; + x->b1 = rcp*2.0f*(l2 - 2.0f); + x->b2 = rcp*(al - l2); +} + +static void sigfilter_bsw2(t_sigfilter *x) +{ + float l, al, l2, rcp; + + l = x->cur_l; + l2 = l*l + 1.0f; + al = l*x->cur_a/x->cur_f; + rcp = 1.0f/(al + l2); + x->a0 = rcp*l2; + x->a1 = rcp*2.0f*(2.0f - l2); + x->a2 = x->a0; + x->b1 = -x->a1; + x->b2 = rcp*(al - l2); +} + +static void sigfilter_ap1(t_sigfilter *x) +{ + float al; + + al = x->cur_a * x->cur_l; + x->a0 = (1.0f - al)/(1.0f + al); + x->b1 = -x->a0; +} + +static void sigfilter_ap2(t_sigfilter *x) +{ + float l, al, bl2, rcp; + + l = x->cur_l; + bl2 = l*l*x->cur_b + 1.0f; + al = l*x->cur_a; + rcp = 1.0f/(al + bl2); + x->a1 = rcp*2.0f*(2.0f - bl2); + x->a0 = rcp*(bl2 - al); + x->b1 = -x->a1; + x->b2 = -x->a0; +} + +/*static void sigfilter_bp2(t_sigfilter *x) +{ + float l, al, l2, rcp; + + l = x->cur_l; + l2 = l*l + 1.0; + al = l*x->cur_a; + rcp = 1.0f/(al + l2); + x->a0 = rcp*al; + x->a2 = -x->a0; + x->b1 = rcp*2.0f*(2.0f - l2); + x->b2 = rcp*(l2 - al); +}*/ + +static void sigfilter_dsp_tick(t_sigfilter *x) +{ + if(x->event_mask) + { + if(x->counter_f) + { + float l, si, co; + + if(x->counter_f <= 1) + { + x->cur_f = x->end_f; + x->counter_f = 0; + x->event_mask &= 6;/*set event_mask_bit 0 = 0*/ + } + else + { + x->counter_f--; + x->cur_f *= x->delta_f; + } + l = x->cur_f * x->sr; + if(l < 1.0e-20f) + x->cur_l = 1.0e20f; + else if(l > 1.57079632f) + x->cur_l = 0.0f; + else + { + si = sin(l); + co = cos(l); + x->cur_l = co/si; + } + } + if(x->counter_a) + { + if(x->counter_a <= 1) + { + x->cur_a = x->end_a; + x->counter_a = 0; + x->event_mask &= 5;/*set event_mask_bit 1 = 0*/ + } + else + { + x->counter_a--; + x->cur_a *= x->delta_a; + } + } + if(x->counter_b) + { + if(x->counter_b <= 1) + { + x->cur_b = x->end_b; + x->counter_b = 0; + x->event_mask &= 3;/*set event_mask_bit 2 = 0*/ + } + else + { + x->counter_b--; + x->cur_b *= x->delta_b; + } + } + + (*(x->calc))(x); + + /* stability check */ + if(x->first_order) + { + if(x->b1 <= -0.9999998f) + x->b1 = -0.9999998f; + else if(x->b1 >= 0.9999998f) + x->b1 = 0.9999998f; + } + else + { + float discriminant = x->b1 * x->b1 + 4.0f * x->b2; + + if(x->b1 <= -1.9999996f) + x->b1 = -1.9999996f; + else if(x->b1 >= 1.9999996f) + x->b1 = 1.9999996f; + + if(x->b2 <= -0.9999998f) + x->b2 = -0.9999998f; + else if(x->b2 >= 0.9999998f) + x->b2 = 0.9999998f; + + if(discriminant >= 0.0f) + { + if(0.9999998f - x->b1 - x->b2 < 0.0f) + x->b2 = 0.9999998f - x->b1; + if(0.9999998f + x->b1 - x->b2 < 0.0f) + x->b2 = 0.9999998f + x->b1; + } + } + } +} + +static t_int *sigfilter_perform_2o(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_sigfilter *x = (t_sigfilter *)(w[3]); + int i, n = (t_int)(w[4]); + float wn0, wn1=x->wn1, wn2=x->wn2; + float a0=x->a0, a1=x->a1, a2=x->a2; + float b1=x->b1, b2=x->b2; + + sigfilter_dsp_tick(x); + for(i=0; i<n; i++) + { + wn0 = *in++ + b1*wn1 + b2*wn2; + *out++ = a0*wn0 + a1*wn1 + a2*wn2; + wn2 = wn1; + wn1 = wn0; + } + /* NAN protect */ + if(PD_BADFLOAT(wn2)) + wn2 = 0.0f; + if(PD_BADFLOAT(wn1)) + wn1 = 0.0f; + + x->wn1 = wn1; + x->wn2 = wn2; + return(w+5); +} +/* yn0 = *out; + xn0 = *in; + ************* + yn0 = a0*xn0 + a1*xn1 + a2*xn2 + b1*yn1 + b2*yn2; + yn2 = yn1; + yn1 = yn0; + xn2 = xn1; + xn1 = xn0; + ************************* + y/x = (a0 + a1*z-1 + a2*z-2)/(1 - b1*z-1 - b2*z-2);*/ + +static t_int *sigfilter_perf8_2o(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_sigfilter *x = (t_sigfilter *)(w[3]); + int i, n = (t_int)(w[4]); + float wn[10]; + float a0=x->a0, a1=x->a1, a2=x->a2; + float b1=x->b1, b2=x->b2; + + sigfilter_dsp_tick(x); + wn[0] = x->wn2; + wn[1] = x->wn1; + for(i=0; i<n; i+=8, in+=8, out+=8) + { + wn[2] = in[0] + b1*wn[1] + b2*wn[0]; + out[0] = a0*wn[2] + a1*wn[1] + a2*wn[0]; + wn[3] = in[1] + b1*wn[2] + b2*wn[1]; + out[1] = a0*wn[3] + a1*wn[2] + a2*wn[1]; + wn[4] = in[2] + b1*wn[3] + b2*wn[2]; + out[2] = a0*wn[4] + a1*wn[3] + a2*wn[2]; + wn[5] = in[3] + b1*wn[4] + b2*wn[3]; + out[3] = a0*wn[5] + a1*wn[4] + a2*wn[3]; + wn[6] = in[4] + b1*wn[5] + b2*wn[4]; + out[4] = a0*wn[6] + a1*wn[5] + a2*wn[4]; + wn[7] = in[5] + b1*wn[6] + b2*wn[5]; + out[5] = a0*wn[7] + a1*wn[6] + a2*wn[5]; + wn[8] = in[6] + b1*wn[7] + b2*wn[6]; + out[6] = a0*wn[8] + a1*wn[7] + a2*wn[6]; + wn[9] = in[7] + b1*wn[8] + b2*wn[7]; + out[7] = a0*wn[9] + a1*wn[8] + a2*wn[7]; + wn[0] = wn[8]; + wn[1] = wn[9]; + } + /* NAN protect */ + if(PD_BADFLOAT(wn[0])) + wn[0] = 0.0f; + if(PD_BADFLOAT(wn[1])) + wn[1] = 0.0f; + + x->wn1 = wn[1]; + x->wn2 = wn[0]; + return(w+5); +} + +static t_int *sigfilter_perform_1o(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_sigfilter *x = (t_sigfilter *)(w[3]); + int i, n = (t_int)(w[4]); + float wn0, wn1=x->wn1; + float a0=x->a0, a1=x->a1; + float b1=x->b1; + + sigfilter_dsp_tick(x); + for(i=0; i<n; i++) + { + wn0 = *in++ + b1*wn1; + *out++ = a0*wn0 + a1*wn1; + wn1 = wn0; + } + /* NAN protect */ + if(PD_BADFLOAT(wn1)) + wn1 = 0.0f; + + x->wn1 = wn1; + return(w+5); +} + +static t_int *sigfilter_perf8_1o(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_sigfilter *x = (t_sigfilter *)(w[3]); + int i, n = (t_int)(w[4]); + float wn[9]; + float a0=x->a0, a1=x->a1; + float b1=x->b1; + + sigfilter_dsp_tick(x); + wn[0] = x->wn1; + for(i=0; i<n; i+=8, in+=8, out+=8) + { + wn[1] = in[0] + b1*wn[0]; + out[0] = a0*wn[1] + a1*wn[0]; + wn[2] = in[1] + b1*wn[1]; + out[1] = a0*wn[2] + a1*wn[1]; + wn[3] = in[2] + b1*wn[2]; + out[2] = a0*wn[3] + a1*wn[2]; + wn[4] = in[3] + b1*wn[3]; + out[3] = a0*wn[4] + a1*wn[3]; + wn[5] = in[4] + b1*wn[4]; + out[4] = a0*wn[5] + a1*wn[4]; + wn[6] = in[5] + b1*wn[5]; + out[5] = a0*wn[6] + a1*wn[5]; + wn[7] = in[6] + b1*wn[6]; + out[6] = a0*wn[7] + a1*wn[6]; + wn[8] = in[7] + b1*wn[7]; + out[7] = a0*wn[8] + a1*wn[7]; + wn[0] = wn[8]; + } + /* NAN protect */ + if(PD_BADFLOAT(wn[0])) + wn[0] = 0.0f; + + x->wn1 = wn[0]; + return(w+5); +} + +static void sigfilter_ft4(t_sigfilter *x, t_floatarg t) +{ + int i = (int)((x->ticks_per_interpol_time)*t+0.49999f); + + x->interpol_time = t; + if(i <= 0) + { + x->ticks = 1; + x->rcp_ticks = 1.0; + } + else + { + x->ticks = i; + x->rcp_ticks = 1.0 / (float)i; + } +} + +static void sigfilter_ft3(t_sigfilter *x, t_floatarg b) +{ + if(b <= 0.0f) + b = 0.000001f; + if(x->hp) + b = 1.0 / b; + if(b != x->cur_b) + { + x->end_b = b; + x->counter_b = x->ticks; + x->delta_b = exp(log(b/x->cur_b)*x->rcp_ticks); + x->event_mask |= 4;/*set event_mask_bit 2 = 1*/ + } +} + +static void sigfilter_ft2(t_sigfilter *x, t_floatarg a) +{ + if(a <= 0.0f) + a = 0.000001f; + if(x->inv) + a = 1.0f / a; + if(x->hp) + a /= x->cur_b; + if(a != x->cur_a) + { + x->end_a = a; + x->counter_a = x->ticks; + x->delta_a = exp(log(a/x->cur_a)*x->rcp_ticks); + x->event_mask |= 2;/*set event_mask_bit 1 = 1*/ + } +} + +static void sigfilter_ft1(t_sigfilter *x, t_floatarg f) +{ + if(f <= 0.0f) + f = 0.000001f; + if(f != x->cur_f) + { + x->end_f = f; + x->counter_f = x->ticks; + x->delta_f = exp(log(f/x->cur_f)*x->rcp_ticks); + x->event_mask |= 1;/*set event_mask_bit 0 = 1*/ + } +} + +static void sigfilter_print(t_sigfilter *x) +{ +// post("fb1 = %g, fb2 = %g, ff1 = %g, ff2 = %g, ff3 = %g", x->b1, x->b2, x->a0, x->a1, x->a2); + x->x_at[0].a_w.w_float = x->b1; + x->x_at[1].a_w.w_float = x->b2; + x->x_at[2].a_w.w_float = x->a0; + x->x_at[3].a_w.w_float = x->a1; + x->x_at[4].a_w.w_float = x->a2; + outlet_list(x->x_debug_outlet, &s_list, 5, x->x_at); +} + +static void sigfilter_dsp(t_sigfilter *x, t_signal **sp) +{ + float si, co, f; + int i, n=(int)sp[0]->s_n; + + x->sr = 3.14159265358979323846f / (float)(sp[0]->s_sr); + x->ticks_per_interpol_time = 0.001f * (float)(sp[0]->s_sr) / (float)n; + i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)+0.49999f); + if(i <= 0) + { + x->ticks = 1; + x->rcp_ticks = 1.0f; + } + else + { + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; + } + f = x->cur_f * x->sr; + if(f < 1.0e-20f) + x->cur_l = 1.0e20f; + else if(f > 1.57079632f) + x->cur_l = 0.0f; + else + { + si = sin(f); + co = cos(f); + x->cur_l = co/si; + } + if(x->first_order) + { + if(n&7) + dsp_add(sigfilter_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); + else + dsp_add(sigfilter_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); + } + else + { + if(n&7) + dsp_add(sigfilter_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); + else + dsp_add(sigfilter_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); + } +} + +static void *sigfilter_new(t_symbol *s, int argc, t_atom *argv) +{ + t_sigfilter *x = (t_sigfilter *)pd_new(sigfilter_class); + char *filt_name; + int i; + float si, co, f=0.0f, a=0.0f, b=0.0f, interpol=0.0f; + t_symbol *filt_typ=gensym(""); + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft2")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft3")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft4")); + outlet_new(&x->x_obj, &s_signal); + x->x_debug_outlet = outlet_new(&x->x_obj, &s_list); + x->x_msi = 0.0f; + + x->x_at[0].a_type = A_FLOAT; + x->x_at[1].a_type = A_FLOAT; + x->x_at[2].a_type = A_FLOAT; + x->x_at[3].a_type = A_FLOAT; + x->x_at[4].a_type = A_FLOAT; + + x->event_mask = 1; + x->counter_f = 1; + x->counter_a = 0; + x->counter_b = 0; + x->delta_f = 0.0f; + x->delta_a = 0.0f; + x->delta_b = 0.0f; + x->interpol_time = 0.0f; + x->wn1 = 0.0f; + x->wn2 = 0.0f; + x->a0 = 0.0f; + x->a1 = 0.0f; + x->a2 = 0.0f; + x->b1 = 0.0f; + x->b2 = 0.0f; + x->sr = 3.14159265358979323846f / 44100.0f; + x->calc = sigfilter_snafu; + x->first_order = 0; + if((argc == 5)&&IS_A_FLOAT(argv,4)&&IS_A_FLOAT(argv,3)&&IS_A_FLOAT(argv,2)&&IS_A_FLOAT(argv,1)&&IS_A_SYMBOL(argv,0)) + { + filt_typ = atom_getsymbolarg(0, argc, argv); + f = (float)atom_getfloatarg(1, argc, argv); + a = (float)atom_getfloatarg(2, argc, argv); + b = (float)atom_getfloatarg(3, argc, argv); + interpol = (float)atom_getfloatarg(4, argc, argv); + } + filt_name = (char *)filt_typ->s_name; + x->cur_f = f; + f *= x->sr; + if(f < 1.0e-20f) + x->cur_l = 1.0e20f; + else if(f > 1.57079632f) + x->cur_l = 0.0f; + else + { + si = sin(f); + co = cos(f); + x->cur_l = co/si; + } + if(a <= 0.0f) + a = 0.000001f; + if(b <= 0.0f) + b = 0.000001f; + x->cur_b = b; + + if(interpol <= 0.0f) + interpol = 0.0f; + x->interpol_time = interpol; + x->ticks_per_interpol_time = 0.001f * 44100.0f / 64.0f; + i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)+0.49999f); + if(i <= 0) + { + x->ticks = 1; + x->rcp_ticks = 1.0f; + } + else + { + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; + } + + x->calc = sigfilter_snafu; + + x->cur_a = 1.0f/a; /*a was Q*/ + x->inv = 1; + x->hp = 0; + + if(filt_name) + { + if(!strcmp(filt_name,"ap1")) + { + x->calc = sigfilter_ap1; + x->a1 = 1.0f; + x->first_order = 1; + } + else if(!strcmp(filt_name,"ap2")) + { + x->calc = sigfilter_ap2; + x->a2 = 1.0f; + } + else if(!strcmp(filt_name,"ap1c")) + { + x->calc = sigfilter_ap1; + x->a1 = 1.0f; + x->inv = 0; + x->cur_a = a; /*a was damping*/ + x->first_order = 1; + } + else if(!strcmp(filt_name,"ap2c")) + { + x->calc = sigfilter_ap2; + x->a2 = 1.0f; + x->inv = 0; + x->cur_a = a; /*a was damping*/ + } + else if(!strcmp(filt_name,"bpq2")) + { + x->calc = sigfilter_bp2; + } + else if(!strcmp(filt_name,"rbpq2")) + { + x->calc = sigfilter_rp2; + } + else if(!strcmp(filt_name,"bsq2")) + { + x->calc = sigfilter_bs2; + } + else if(!strcmp(filt_name,"bpw2")) + { + x->calc = sigfilter_bpw2; + x->inv = 0; + x->cur_a = a; /*a was bw*/ + } + else if(!strcmp(filt_name,"rbpw2")) + { + x->calc = sigfilter_rpw2; + x->inv = 0; + x->cur_a = a; /*a was bw*/ + } + else if(!strcmp(filt_name,"bsw2")) + { + x->calc = sigfilter_bsw2; + x->inv = 0; + x->cur_a = a; /*a was bw*/ + } + else if(!strcmp(filt_name,"hp1")) + { + x->calc = sigfilter_hp1; + x->first_order = 1; + } + else if(!strcmp(filt_name,"hp2")) + { + x->calc = sigfilter_hp2; + } + else if(!strcmp(filt_name,"lp1")) + { + x->calc = sigfilter_lp1; + x->first_order = 1; + } + else if(!strcmp(filt_name,"lp2")) + { + x->calc = sigfilter_lp2; + } + else if(!strcmp(filt_name,"hp1c")) + { + x->calc = sigfilter_hp1; + x->cur_a = 1.0f / a; + x->first_order = 1; + } + else if(!strcmp(filt_name,"hp2c")) + { + x->calc = sigfilter_hp2; + x->inv = 0; + x->cur_a = a / b; + x->cur_b = 1.0f / b; + x->hp = 1; + } + else if(!strcmp(filt_name,"lp1c")) + { + x->calc = sigfilter_lp1; + x->inv = 0; + x->cur_a = a; /*a was damping*/ + x->first_order = 1; + } + else if(!strcmp(filt_name,"lp2c")) + { + x->calc = sigfilter_lp2; + x->inv = 0; + x->cur_a = a; /*a was damping*/ + } + else + { + post("filter~-Error: 1. initial-arguments: <sym> kind: \ + lp1, lp2, hp1, hp2, \ + lp1c, lp2c, hp1c, hp2c, \ + ap1, ap2, ap1c, ap2c, \ + bpq2, rbpq2, bsq2, \ + bpw2, rbpw2, bsw2!"); + } + x->end_f = x->cur_f; + x->end_a = x->cur_a; + x->end_b = x->cur_b; + } + return (x); +} + +void sigfilter_setup(void) +{ + sigfilter_class = class_new(gensym("filter~"), (t_newmethod)sigfilter_new, + 0, sizeof(t_sigfilter), 0, A_GIMME, 0); + CLASS_MAINSIGNALIN(sigfilter_class, t_sigfilter, x_msi); + class_addmethod(sigfilter_class, (t_method)sigfilter_dsp, gensym("dsp"), 0); + class_addmethod(sigfilter_class, (t_method)sigfilter_ft1, gensym("ft1"), A_FLOAT, 0); + class_addmethod(sigfilter_class, (t_method)sigfilter_ft2, gensym("ft2"), A_FLOAT, 0); + class_addmethod(sigfilter_class, (t_method)sigfilter_ft3, gensym("ft3"), A_FLOAT, 0); + class_addmethod(sigfilter_class, (t_method)sigfilter_ft4, gensym("ft4"), A_FLOAT, 0); + class_addmethod(sigfilter_class, (t_method)sigfilter_print, gensym("print"), 0); + class_sethelpsymbol(sigfilter_class, gensym("iemhelp/help-filter~")); +} diff --git a/src/iemlib1/sighml_shelf.c b/src/iemlib1/sighml_shelf.c new file mode 100644 index 0000000..ef209d1 --- /dev/null +++ b/src/iemlib1/sighml_shelf.c @@ -0,0 +1,558 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + + +/* ---------- hml_shelf~ - high-middle-low-shelving filter ----------- */ + +typedef struct sighml_shelf +{ + t_object x_obj; + float wn1; + float wn2; + float a0; + float a1; + float a2; + float b1; + float b2; + float sr; + float cur_lf; + float cur_hf; + float cur_lg; + float cur_mg; + float cur_hg; + float delta_lf; + float delta_hf; + float delta_lg; + float delta_mg; + float delta_hg; + float end_lf; + float end_hf; + float end_lg; + float end_mg; + float end_hg; + float ticks_per_interpol_time; + float rcp_ticks; + float interpol_time; + int ticks; + int counter_lf; + int counter_hf; + int counter_lg; + int counter_mg; + int counter_hg; + int event_mask; + void *x_debug_outlet; + t_atom x_at[5]; + float x_msi; +} t_sighml_shelf; + +t_class *sighml_shelf_class; + +static void sighml_shelf_calc(t_sighml_shelf *x) +{ + float rf = x->cur_hf/x->cur_lf; + float mf = x->cur_hf*x->cur_lf; + float lg = x->cur_lg; + float rcplg = 1.0f/lg; + float mg = x->cur_mg; + float rcpmg = 1.0f/mg; + float hg = x->cur_hg; + float rcphg = 1.0f/hg; + float f = mf*x->sr; + float l = cos(f)/sin(f); + float k1 = rf*l; + float k2 = l/rf; + float k3 = l*l; + float k4 = k3*hg; + float k5 = k3*rcphg; + float k6 = rcplg + k5; + float k7 = rcpmg*k1 + k2*rcplg*rcphg*mg; + float k8 = lg + k4; + float k9 = mg*k1 + k2*lg*hg*rcpmg; + float k10 = 1.0f/(k6 + k7); + + x->b2 = k10*(k7 - k6); + x->b1 = k10*2.0f*(k5 - rcplg); + x->a2 = k10*(k8 - k9); + x->a1 = k10*2.0f*(lg - k4); + x->a0 = k10*(k8 + k9); +} +/* +high- & low- shelving-filter: +L....sqrt(lowlevel); +rL...rsqrt(lowlevel); +M....sqrt(mediumlevel); +rM...rsqrt(mediumlevel); +H....sqrt(highlevel); +rH...rsqrt(highlevel); +V....sqrt(highfrequency/lowfrequency); +P....j*2*pi*f/(2*pi*V*lowfrequency); + +Y/X = [M/(1/M)] * [(L/M + PV)/(M/L + PV)] * [(1 + HP/(VM))/(1 + MP/(VH))]; +Y/X = (L + P*(M*V + L*H/(V*M)) + P*P*H) / (rL + P*(rM*V + rL*rH/(V*rM)) + P*P*rH); + +hlshlv: lowlevel: ll; mediumlevel: lm; highlevel: hl; lowfrequency: fl; highfrequency: fh; samplerate: sr; + { + V = sqrt(fh/fl); + f = fl*V; + L = sqrt(ll); + rL = 1.0/L; + M = sqrt(lm); + rM = 1.0/M; + H = sqrt(lh); + rH = 1.0/H; + + l = cot(f*3.14159265358979323846/sr); + k1 = V*l; + k2 = l/V; + l2 = l*l; + l3 = l2*H; + l4 = l2*rH; + m1 = k2*L*H*rM; + m2 = k2*rL*rH*M; + n1 = rL + l4; + n2 = rM*k1 + m2; + p1 = L + l3; + p2 = M*k1 + m1; + a012 = 1.0/(n1 + n2); + + b2 = a012*(n2 - n1); + b1 = a012*2.0*(l4 - rL); + a2 = a012*(p1 - p2); + a1 = a012*2.0*(L - l3); + a0 = a012*(p1 + p2); + + + + + + + rf = sqrt(fh/fl); + mf = fl*rf; + L = sqrt(ll); + rL = 1.0/L; + M = sqrt(lm); + rM = 1.0/M; + H = sqrt(lh); + rH = 1.0/H; + + l = cot(fm*3.14159265358979323846/sr); + k1 = V*l; + k2 = l/V; + k3 = l*l; + k4 = k3*H; + k5 = k3*rH; + k6 = rL + k5; + k7 = rM*k1 + k2*rL*rH*M; + k8 = L + k4; + k9 = M*k1 + k2*L*H*rM; + k10 = 1.0/(k6 + k7); + + b2 = k10*(k7 - k6); + b1 = k10*2.0*(k5 - rL); + a2 = k10*(k8 - k9); + a1 = k10*2.0*(L - k4); + a0 = k10*(k8 + k9); +*/ + +static void sighml_shelf_dsp_tick(t_sighml_shelf *x) +{ + if(x->event_mask) + { + float discriminant; + + if(x->counter_lg) + { + if(x->counter_lg <= 1) + { + x->cur_lg = x->end_lg; + x->counter_lg = 0; + x->event_mask &= 30;/*set event_mask_bit 0 = 0*/ + } + else + { + x->counter_lg--; + x->cur_lg *= x->delta_lg; + } + } + if(x->counter_lf) + { + if(x->counter_lf <= 1) + { + x->cur_lf = x->end_lf; + x->counter_lf = 0; + x->event_mask &= 29;/*set event_mask_bit 1 = 0*/ + } + else + { + x->counter_lf--; + x->cur_lf *= x->delta_lf; + } + } + if(x->counter_mg) + { + if(x->counter_mg <= 1) + { + x->cur_mg = x->end_mg; + x->counter_mg = 0; + x->event_mask &= 27;/*set event_mask_bit 2 = 0*/ + } + else + { + x->counter_mg--; + x->cur_mg *= x->delta_mg; + } + } + if(x->counter_hf) + { + if(x->counter_hf <= 1) + { + x->cur_hf = x->end_hf; + x->counter_hf = 0; + x->event_mask &= 23;/*set event_mask_bit 3 = 0*/ + } + else + { + x->counter_hf--; + x->cur_hf *= x->delta_hf; + } + } + if(x->counter_hg) + { + if(x->counter_hg <= 1) + { + x->cur_hg = x->end_hg; + x->counter_hg = 0; + x->event_mask &= 15;/*set event_mask_bit 4 = 0*/ + } + else + { + x->counter_hg--; + x->cur_hg *= x->delta_hg; + } + } + sighml_shelf_calc(x); + + /* stability check */ + + discriminant = x->b1 * x->b1 + 4.0f * x->b2; + if(x->b1 <= -1.9999996f) + x->b1 = -1.9999996f; + else if(x->b1 >= 1.9999996f) + x->b1 = 1.9999996f; + + if(x->b2 <= -0.9999998f) + x->b2 = -0.9999998f; + else if(x->b2 >= 0.9999998f) + x->b2 = 0.9999998f; + + if(discriminant >= 0.0f) + { + if(0.9999998f - x->b1 - x->b2 < 0.0f) + x->b2 = 0.9999998f - x->b1; + if(0.9999998f + x->b1 - x->b2 < 0.0f) + x->b2 = 0.9999998f + x->b1; + } + } +} + +static t_int *sighml_shelf_perform(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_sighml_shelf *x = (t_sighml_shelf *)(w[3]); + int i, n = (t_int)(w[4]); + float wn0, wn1=x->wn1, wn2=x->wn2; + float a0=x->a0, a1=x->a1, a2=x->a2; + float b1=x->b1, b2=x->b2; + + sighml_shelf_dsp_tick(x); + for(i=0; i<n; i++) + { + wn0 = *in++ + b1*wn1 + b2*wn2; + *out++ = a0*wn0 + a1*wn1 + a2*wn2; + wn2 = wn1; + wn1 = wn0; + } + /* NAN protect */ + if(PD_BADFLOAT(wn2)) + wn2 = 0.0f; + if(PD_BADFLOAT(wn1)) + wn1 = 0.0f; + + x->wn1 = wn1; + x->wn2 = wn2; + return(w+5); +} +/* yn0 = *out; + xn0 = *in; + ************* + yn0 = a0*xn0 + a1*xn1 + a2*xn2 + b1*yn1 + b2*yn2; + yn2 = yn1; + yn1 = yn0; + xn2 = xn1; + xn1 = xn0; + ************************* + y/x = (a0 + a1*z-1 + a2*z-2)/(1 - b1*z-1 - b2*z-2);*/ + +static t_int *sighml_shelf_perf8(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_sighml_shelf *x = (t_sighml_shelf *)(w[3]); + int i, n = (t_int)(w[4]); + float wn[10]; + float a0=x->a0, a1=x->a1, a2=x->a2; + float b1=x->b1, b2=x->b2; + + sighml_shelf_dsp_tick(x); + wn[0] = x->wn2; + wn[1] = x->wn1; + for(i=0; i<n; i+=8, in+=8, out+=8) + { + wn[2] = in[0] + b1*wn[1] + b2*wn[0]; + out[0] = a0*wn[2] + a1*wn[1] + a2*wn[0]; + wn[3] = in[1] + b1*wn[2] + b2*wn[1]; + out[1] = a0*wn[3] + a1*wn[2] + a2*wn[1]; + wn[4] = in[2] + b1*wn[3] + b2*wn[2]; + out[2] = a0*wn[4] + a1*wn[3] + a2*wn[2]; + wn[5] = in[3] + b1*wn[4] + b2*wn[3]; + out[3] = a0*wn[5] + a1*wn[4] + a2*wn[3]; + wn[6] = in[4] + b1*wn[5] + b2*wn[4]; + out[4] = a0*wn[6] + a1*wn[5] + a2*wn[4]; + wn[7] = in[5] + b1*wn[6] + b2*wn[5]; + out[5] = a0*wn[7] + a1*wn[6] + a2*wn[5]; + wn[8] = in[6] + b1*wn[7] + b2*wn[6]; + out[6] = a0*wn[8] + a1*wn[7] + a2*wn[6]; + wn[9] = in[7] + b1*wn[8] + b2*wn[7]; + out[7] = a0*wn[9] + a1*wn[8] + a2*wn[7]; + wn[0] = wn[8]; + wn[1] = wn[9]; + } + /* NAN protect */ + if(PD_BADFLOAT(wn[0])) + wn[0] = 0.0f; + if(PD_BADFLOAT(wn[1])) + wn[1] = 0.0f; + + x->wn1 = wn[1]; + x->wn2 = wn[0]; + return(w+5); +} + +static void sighml_shelf_ft6(t_sighml_shelf *x, t_floatarg t) +{ + int i = (int)((x->ticks_per_interpol_time)*t); + + x->interpol_time = t; + if(i <= 0) + i = 1; + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; +} + +static void sighml_shelf_ft5(t_sighml_shelf *x, t_floatarg hl) +{ + float hg = exp(0.057564627325 * hl); + + if(hg != x->cur_hg) + { + x->end_hg = hg; + x->counter_hg = x->ticks; + x->delta_hg = exp(log(hg/x->cur_hg)*x->rcp_ticks); + x->event_mask |= 16;/*set event_mask_bit 4 = 1*/ + } +} + +static void sighml_shelf_ft4(t_sighml_shelf *x, t_floatarg hf) +{ + float sqhf; + + if(hf <= 0.0f) + hf = 0.000001f; + sqhf = sqrt(hf); + if(sqhf != x->cur_hf) + { + x->end_hf = sqhf; + x->counter_hf = x->ticks; + x->delta_hf = exp(log(sqhf/x->cur_hf)*x->rcp_ticks); + x->event_mask |= 8;/*set event_mask_bit 3 = 1*/ + } +} + +static void sighml_shelf_ft3(t_sighml_shelf *x, t_floatarg ml) +{ + float mg = exp(0.057564627325 * ml); + + if(mg != x->cur_mg) + { + x->end_mg = mg; + x->counter_mg = x->ticks; + x->delta_mg = exp(log(mg/x->cur_mg)*x->rcp_ticks); + x->event_mask |= 4;/*set event_mask_bit 2 = 1*/ + } +} + +static void sighml_shelf_ft2(t_sighml_shelf *x, t_floatarg lf) +{ + float sqlf; + + if(lf <= 0.0f) + lf = 0.000001f; + sqlf = sqrt(lf); + if(sqlf != x->cur_lf) + { + x->end_lf = sqlf; + x->counter_lf = x->ticks; + x->delta_lf = exp(log(sqlf/x->cur_lf)*x->rcp_ticks); + x->event_mask |= 2;/*set event_mask_bit 1 = 1*/ + } +} + +static void sighml_shelf_ft1(t_sighml_shelf *x, t_floatarg ll) +{ + float lg = exp(0.057564627325 * ll); + + if(lg != x->cur_lg) + { + x->end_lg = lg; + x->counter_lg = x->ticks; + x->delta_lg = exp(log(lg/x->cur_lg)*x->rcp_ticks); + x->event_mask |= 1;/*set event_mask_bit 0 = 1*/ + } +} + +static void sighml_shelf_print(t_sighml_shelf *x) +{ +// post("fb1 = %g, fb2 = %g, ff1 = %g, ff2 = %g, ff3 = %g", x->b1, x->b2, x->a0, x->a1, x->a2); + x->x_at[0].a_w.w_float = x->b1; + x->x_at[1].a_w.w_float = x->b2; + x->x_at[2].a_w.w_float = x->a0; + x->x_at[3].a_w.w_float = x->a1; + x->x_at[4].a_w.w_float = x->a2; + outlet_list(x->x_debug_outlet, &s_list, 5, x->x_at); +} + +static void sighml_shelf_dsp(t_sighml_shelf *x, t_signal **sp) +{ + int i, n=(int)sp[0]->s_n; + + x->sr = 3.14159265358979323846f / (float)(sp[0]->s_sr); + x->ticks_per_interpol_time = 0.001f * (float)(sp[0]->s_sr) / (float)n; + i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)); + if(i <= 0) + i = 1; + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; + if(n&7) + dsp_add(sighml_shelf_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); + else + dsp_add(sighml_shelf_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); +} + +static void *sighml_shelf_new(t_symbol *s, int argc, t_atom *argv) +{ + t_sighml_shelf *x = (t_sighml_shelf *)pd_new(sighml_shelf_class); + int i; + float lf=200.0f, hf=2000.0f, ll=0.0f, ml=0.0f, hl=0.0f, interpol=0.0f; + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft2")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft3")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft4")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft5")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft6")); + outlet_new(&x->x_obj, &s_signal); + x->x_debug_outlet = outlet_new(&x->x_obj, &s_list); + x->x_msi = 0; + + x->x_at[0].a_type = A_FLOAT; + x->x_at[1].a_type = A_FLOAT; + x->x_at[2].a_type = A_FLOAT; + x->x_at[3].a_type = A_FLOAT; + x->x_at[4].a_type = A_FLOAT; + + x->event_mask = 2; + x->counter_lg = 0; + x->counter_lf = 1; + x->counter_mg = 0; + x->counter_hf = 0; + x->counter_hg = 0; + x->delta_lg = 0.0f; + x->delta_lf = 0.0f; + x->delta_mg = 0.0f; + x->delta_hf = 0.0f; + x->delta_hg = 0.0f; + x->interpol_time = 0.0f; + x->wn1 = 0.0f; + x->wn2 = 0.0f; + x->a0 = 0.0f; + x->a1 = 0.0f; + x->a2 = 0.0f; + x->b1 = 0.0f; + x->b2 = 0.0f; + x->sr = 3.14159265358979323846f / 44100.0f; + if((argc == 6)&&IS_A_FLOAT(argv,5)&&IS_A_FLOAT(argv,4)&&IS_A_FLOAT(argv,3) + &&IS_A_FLOAT(argv,2)&&IS_A_FLOAT(argv,1)&&IS_A_FLOAT(argv,0)) + { + ll = (float)atom_getfloatarg(0, argc, argv); + lf = (float)atom_getfloatarg(1, argc, argv); + ml = (float)atom_getfloatarg(2, argc, argv); + hf = (float)atom_getfloatarg(3, argc, argv); + hl = (float)atom_getfloatarg(4, argc, argv); + interpol = (float)atom_getfloatarg(5, argc, argv); + } + x->cur_lg = exp(0.057564627325 * ll); + x->cur_mg = exp(0.057564627325 * ml); + x->cur_hg = exp(0.057564627325 * hl); + if(lf <= 0.0f) + lf = 0.000001f; + if(hf <= 0.0f) + hf = 0.000001f; + x->cur_lf = sqrt(lf); + x->cur_hf = sqrt(hf); + if(interpol < 0.0f) + interpol = 0.0f; + x->interpol_time = interpol; + x->ticks_per_interpol_time = 0.5f; + i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)); + if(i <= 0) + i = 1; + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; + x->end_lf = x->cur_lf; + x->end_hf = x->cur_hf; + x->end_lg = x->cur_lg; + x->end_mg = x->cur_mg; + x->end_hg = x->cur_hg; + return(x); +} + +void sighml_shelf_setup(void) +{ + sighml_shelf_class = class_new(gensym("hml_shelf~"), (t_newmethod)sighml_shelf_new, + 0, sizeof(t_sighml_shelf), 0, A_GIMME, 0); + CLASS_MAINSIGNALIN(sighml_shelf_class, t_sighml_shelf, x_msi); + class_addmethod(sighml_shelf_class, (t_method)sighml_shelf_dsp, gensym("dsp"), 0); + class_addmethod(sighml_shelf_class, (t_method)sighml_shelf_ft1, gensym("ft1"), A_FLOAT, 0); + class_addmethod(sighml_shelf_class, (t_method)sighml_shelf_ft2, gensym("ft2"), A_FLOAT, 0); + class_addmethod(sighml_shelf_class, (t_method)sighml_shelf_ft3, gensym("ft3"), A_FLOAT, 0); + class_addmethod(sighml_shelf_class, (t_method)sighml_shelf_ft4, gensym("ft4"), A_FLOAT, 0); + class_addmethod(sighml_shelf_class, (t_method)sighml_shelf_ft5, gensym("ft5"), A_FLOAT, 0); + class_addmethod(sighml_shelf_class, (t_method)sighml_shelf_ft6, gensym("ft6"), A_FLOAT, 0); + class_addmethod(sighml_shelf_class, (t_method)sighml_shelf_print, gensym("print"), 0); + class_sethelpsymbol(sighml_shelf_class, gensym("iemhelp/help-hml_shelf~")); +} diff --git a/src/iemlib1/sigiem_cot4.c b/src/iemlib1/sigiem_cot4.c new file mode 100644 index 0000000..b0990d9 --- /dev/null +++ b/src/iemlib1/sigiem_cot4.c @@ -0,0 +1,176 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ------------------------ iem_cot4~ ----------------------------- */ + +float *iem_cot4_table_cos=(float *)0L; +float *iem_cot4_table_sin=(float *)0L; + +static t_class *sigiem_cot4_class; + +typedef struct _sigiem_cot4 +{ + t_object x_obj; + float x_sr; + float x_msi; +} t_sigiem_cot4; + +static t_int *sigiem_cot4_perform(t_int *w) +{ + t_float *in = (t_float *)(w[1]); + t_float *out = (t_float *)(w[2]); + t_float norm_freq; + t_float hout; + t_sigiem_cot4 *x = (t_sigiem_cot4 *)(w[3]); + t_float sr=x->x_sr; + int n = (int)(w[4]); + float *ctab = iem_cot4_table_cos, *stab = iem_cot4_table_sin; + float *caddr, *saddr, cf1, cf2, sf1, sf2, frac; + double dphase; + int normhipart; + int32 mytfi; + union tabfudge tf; + + tf.tf_d = UNITBIT32; + normhipart = tf.tf_i[HIOFFSET]; + +#if 0 /* this is the readable version of the code. */ + while (n--) + { + norm_freq = *in * sr; + if(norm_freq < 0.0001f) + norm_freq = 0.0001f; + else if(norm_freq > 0.9f) + norm_freq = 0.9f; + dphase = (double)(norm_freq * (float)(COSTABSIZE)) + UNITBIT32; + tf.tf_d = dphase; + mytfi = tf.tf_i[HIOFFSET] & (COSTABSIZE-1); + saddr = stab + (mytfi); + caddr = ctab + (mytfi); + tf.tf_i[HIOFFSET] = normhipart; + frac = tf.tf_d - UNITBIT32; + sf1 = saddr[0]; + sf2 = saddr[1]; + cf1 = caddr[0]; + cf2 = caddr[1]; + in++; + *out++ = (cf1 + frac * (cf2 - cf1))/(sf1 + frac * (sf2 - sf1)); + } +#endif +#if 1 /* this is the same, unwrapped by hand. prolog beg*/ + n /= 4; + norm_freq = *in * sr; + if(norm_freq < 0.0001f) + norm_freq = 0.0001f; + else if(norm_freq > 0.9f) + norm_freq = 0.9f; + dphase = (double)(norm_freq * (float)(COSTABSIZE)) + UNITBIT32; + tf.tf_d = dphase; + mytfi = tf.tf_i[HIOFFSET] & (COSTABSIZE-1); + saddr = stab + (mytfi); + caddr = ctab + (mytfi); + tf.tf_i[HIOFFSET] = normhipart; + in += 4; /*prolog end*/ + while (--n) + { + norm_freq = *in * sr; + if(norm_freq < 0.0001f) + norm_freq = 0.0001f; + else if(norm_freq > 0.9f) + norm_freq = 0.9f; + dphase = (double)(norm_freq * (float)(COSTABSIZE)) + UNITBIT32; + frac = tf.tf_d - UNITBIT32; + tf.tf_d = dphase; + sf1 = saddr[0]; + sf2 = saddr[1]; + cf1 = caddr[0]; + cf2 = caddr[1]; + mytfi = tf.tf_i[HIOFFSET] & (COSTABSIZE-1); + saddr = stab + (mytfi); + caddr = ctab + (mytfi); + hout = (cf1 + frac * (cf2 - cf1))/(sf1 + frac * (sf2 - sf1)); + *out++ = hout; + *out++ = hout; + *out++ = hout; + *out++ = hout; + in += 4; + tf.tf_i[HIOFFSET] = normhipart; + }/*epilog beg*/ + frac = tf.tf_d - UNITBIT32; + sf1 = saddr[0]; + sf2 = saddr[1]; + cf1 = caddr[0]; + cf2 = caddr[1]; + hout = (cf1 + frac * (cf2 - cf1))/(sf1 + frac * (sf2 - sf1)); + *out++ = hout; + *out++ = hout; + *out++ = hout; + *out++ = hout; + /*epilog end*/ +#endif + return (w+5); +} + +static void sigiem_cot4_dsp(t_sigiem_cot4 *x, t_signal **sp) +{ + x->x_sr = 2.0f / (float)sp[0]->s_sr; + dsp_add(sigiem_cot4_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); +} + +static void sigiem_cot4_maketable(void) +{ + int i; + float *fp, phase, fff, phsinc = 0.5*3.141592653 / ((float)COSTABSIZE); + union tabfudge tf; + + if(!iem_cot4_table_sin) + { + iem_cot4_table_sin = (float *)getbytes(sizeof(float) * (COSTABSIZE+1)); + for(i=COSTABSIZE+1, fp=iem_cot4_table_sin, phase=0; i--; fp++, phase+=phsinc) + *fp = sin(phase); + } + if(!iem_cot4_table_cos) + { + iem_cot4_table_cos = (float *)getbytes(sizeof(float) * (COSTABSIZE+1)); + for(i=COSTABSIZE+1, fp=iem_cot4_table_cos, phase=0; i--; fp++, phase+=phsinc) + *fp = cos(phase); + } + tf.tf_d = UNITBIT32 + 0.5; + if((unsigned)tf.tf_i[LOWOFFSET] != 0x80000000) + bug("iem_cot4~: unexpected machine alignment"); +} + +static void *sigiem_cot4_new(void) +{ + t_sigiem_cot4 *x = (t_sigiem_cot4 *)pd_new(sigiem_cot4_class); + + outlet_new(&x->x_obj, gensym("signal")); + x->x_msi = 0; + return (x); +} + +void sigiem_cot4_setup(void) +{ + sigiem_cot4_class = class_new(gensym("iem_cot4~"), (t_newmethod)sigiem_cot4_new, 0, + sizeof(t_sigiem_cot4), 0, 0); + class_addcreator((t_newmethod)sigiem_cot4_new, gensym("iem_cot~"), 0); + CLASS_MAINSIGNALIN(sigiem_cot4_class, t_sigiem_cot4, x_msi); + class_addmethod(sigiem_cot4_class, (t_method)sigiem_cot4_dsp, gensym("dsp"), 0); + sigiem_cot4_maketable(); + class_sethelpsymbol(sigiem_cot4_class, gensym("iemhelp/help-iem_cot4~")); +} + diff --git a/src/iemlib1/sigiem_delay.c b/src/iemlib1/sigiem_delay.c new file mode 100644 index 0000000..56afbf3 --- /dev/null +++ b/src/iemlib1/sigiem_delay.c @@ -0,0 +1,208 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil (c) IEM KUG Graz Austria 2002 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* -------------------------- sigiem_delay~ ------------------------------ */ +static t_class *sigiem_delay_class; + +#define IEMDELAY_DEF_VEC_SIZE 64 + +typedef struct _sigiem_delay +{ + t_object x_obj; + int x_mallocsize; + t_float x_max_delay_ms; + t_float x_current_delay_ms; + t_float *x_begmem1; + t_float *x_begmem2; + int x_writeindex; + int x_blocksize; + int x_delay_samples; + t_float x_sr; + t_float x_msi; +} t_sigiem_delay; + +static void sigiem_delay_cur_del(t_sigiem_delay *x, t_floatarg f) +{ + if(f < 0.0f) + f = 0.0f; + else if(f > x->x_max_delay_ms) + f = x->x_max_delay_ms; + x->x_current_delay_ms = f; + x->x_delay_samples = (int)(0.001f*x->x_sr * f + 0.5f); +} + +static t_int *sigiem_delay_perform(t_int *w) +{ + t_float *in = (t_float *)(w[1]); + t_float *out = (t_float *)(w[2]); + t_sigiem_delay *x = (t_sigiem_delay *)(w[3]); + int n=(int)(w[4]); + int writeindex = x->x_writeindex; + t_float *vec1, *vec2, *vec3; + + vec1 = x->x_begmem1 + writeindex; + vec2 = x->x_begmem2 + writeindex; + vec3 = x->x_begmem2 + writeindex - x->x_delay_samples; + writeindex += n; + while(n--) + { + *vec1++ = *vec2++ = *in++; + *out++ = *vec3++; + } + if(writeindex >= x->x_mallocsize) + { + writeindex -= x->x_mallocsize; + } + x->x_writeindex = writeindex; + return(w+5); +} + +static t_int *sigiem_delay_perf8(t_int *w) +{ + t_float *in = (t_float *)(w[1]); + t_float *out = (t_float *)(w[2]); + t_sigiem_delay *x = (t_sigiem_delay *)(w[3]); + int i, n=(int)(w[4]); + int writeindex = x->x_writeindex; + t_float *vec1, *vec2; + + vec1 = x->x_begmem1 + writeindex; + vec2 = x->x_begmem2 + writeindex; + for(i=0; i<n; i+=8) + { + *vec1++ = *vec2++ = *in++; + *vec1++ = *vec2++ = *in++; + *vec1++ = *vec2++ = *in++; + *vec1++ = *vec2++ = *in++; + *vec1++ = *vec2++ = *in++; + *vec1++ = *vec2++ = *in++; + *vec1++ = *vec2++ = *in++; + *vec1++ = *vec2++ = *in++; + } + + vec2 = x->x_begmem2 + writeindex - x->x_delay_samples; + for(i=0; i<n; i+=8) + { + *out++ = *vec2++; + *out++ = *vec2++; + *out++ = *vec2++; + *out++ = *vec2++; + *out++ = *vec2++; + *out++ = *vec2++; + *out++ = *vec2++; + *out++ = *vec2++; + } + + writeindex += n; + if(writeindex >= x->x_mallocsize) + { + writeindex -= x->x_mallocsize; + } + x->x_writeindex = writeindex; + return(w+5); +} + +static void sigiem_delay_dsp(t_sigiem_delay *x, t_signal **sp) +{ + int blocksize = sp[0]->s_n, i; + + if(!x->x_blocksize)/*first time*/ + { + int nsamps = x->x_max_delay_ms * (t_float)sp[0]->s_sr * 0.001f; + + if(nsamps < 1) + nsamps = 1; + nsamps += ((- nsamps) & (blocksize - 1)); + nsamps += blocksize; + x->x_mallocsize = nsamps; + x->x_begmem1 = (t_float *)getbytes(2 * x->x_mallocsize * sizeof(t_float)); + x->x_begmem2 = x->x_begmem1 + x->x_mallocsize; + post("beginn = %x", (unsigned long)x->x_begmem1); + x->x_writeindex = blocksize; + x->x_sr = (t_float)sp[0]->s_sr; + x->x_blocksize = blocksize; + x->x_delay_samples = (int)(0.001f*x->x_sr * x->x_current_delay_ms + 0.5f); + } + else if((x->x_blocksize != blocksize) || ((t_float)sp[0]->s_sr != x->x_sr)) + { + int nsamps = x->x_max_delay_ms * (t_float)sp[0]->s_sr * 0.001f; + + if(nsamps < 1) + nsamps = 1; + nsamps += ((- nsamps) & (blocksize - 1)); + nsamps += blocksize; + + x->x_begmem1 = (t_float *)resizebytes(x->x_begmem1, 2*x->x_mallocsize*sizeof(t_float), 2*nsamps*sizeof(t_float)); + x->x_mallocsize = nsamps; + x->x_begmem2 = x->x_begmem1 + x->x_mallocsize; + post("beginn = %x", (unsigned long)x->x_begmem1); + if(x->x_writeindex >= nsamps) + x->x_writeindex -= nsamps; + x->x_sr = (t_float)sp[0]->s_sr; + x->x_blocksize = blocksize; + x->x_delay_samples = (int)(0.001f*x->x_sr * x->x_current_delay_ms + 0.5f); + } + + if(blocksize&7) + dsp_add(sigiem_delay_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, blocksize); + else + dsp_add(sigiem_delay_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, blocksize); +} + +static void *sigiem_delay_new(t_floatarg max_delay_ms, t_floatarg current_delay_ms) +{ + t_sigiem_delay *x = (t_sigiem_delay *)pd_new(sigiem_delay_class); + int nsamps; + + if(max_delay_ms < 2.0f) + max_delay_ms = 2.0f; + x->x_max_delay_ms = max_delay_ms; + if(current_delay_ms < 0.0f) + current_delay_ms = 0.0f; + else if(current_delay_ms > max_delay_ms) + current_delay_ms = max_delay_ms; + x->x_current_delay_ms = current_delay_ms; + nsamps = max_delay_ms * sys_getsr() * 0.001f; + if(nsamps < 1) + nsamps = 1; + nsamps += ((- nsamps) & (IEMDELAY_DEF_VEC_SIZE - 1)); + nsamps += IEMDELAY_DEF_VEC_SIZE; + x->x_mallocsize = nsamps; + x->x_begmem1 = (t_float *)getbytes(2 * x->x_mallocsize * sizeof(t_float)); + x->x_begmem2 = x->x_begmem1 + x->x_mallocsize; + x->x_writeindex = IEMDELAY_DEF_VEC_SIZE; + x->x_blocksize = 0; + x->x_sr = 0.0f; + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + outlet_new(&x->x_obj, &s_signal); + x->x_msi = 0.0f; + return (x); +} + +static void sigiem_delay_free(t_sigiem_delay *x) +{ + freebytes(x->x_begmem1, 2 * x->x_mallocsize * sizeof(t_float)); +} + +void sigiem_delay_setup(void) +{ + sigiem_delay_class = class_new(gensym("iem_delay~"), (t_newmethod)sigiem_delay_new, (t_method)sigiem_delay_free, + sizeof(t_sigiem_delay), 0, A_DEFFLOAT, A_DEFFLOAT, 0); + CLASS_MAINSIGNALIN(sigiem_delay_class, t_sigiem_delay, x_msi); + class_addmethod(sigiem_delay_class, (t_method)sigiem_delay_dsp, gensym("dsp"), 0); + class_addmethod(sigiem_delay_class, (t_method)sigiem_delay_cur_del, gensym("ft1"), A_FLOAT, 0); +} diff --git a/src/iemlib1/sigiem_pow4.c b/src/iemlib1/sigiem_pow4.c new file mode 100644 index 0000000..ae5334c --- /dev/null +++ b/src/iemlib1/sigiem_pow4.c @@ -0,0 +1,86 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ------------------------ iem_pow4~ ----------------------------- */ + +static t_class *sigiem_pow4_class; + +typedef struct _sigiem_pow4 +{ + t_object x_obj; + float x_exp; + float x_msi; +} t_sigiem_pow4; + +static void sigiem_pow4_ft1(t_sigiem_pow4 *x, t_floatarg f) +{ + x->x_exp = f; +} + +static t_int *sigiem_pow4_perform(t_int *w) +{ + t_float *in = (t_float *)(w[1]); + t_float *out = (t_float *)(w[2]); + t_sigiem_pow4 *x = (t_sigiem_pow4 *)(w[3]); + t_float y=x->x_exp; + t_float f, g; + int n = (int)(w[4])/4; + + while (n--) + { + f = *in; + if(f < 0.01f) + f = 0.01f; + else if(f > 1000.0f) + f = 1000.0f; + g = log(f); + f = exp(g*y); + *out++ = f; + *out++ = f; + *out++ = f; + *out++ = f; + in += 4; + } + return (w+5); +} + +static void sigiem_pow4_dsp(t_sigiem_pow4 *x, t_signal **sp) +{ + dsp_add(sigiem_pow4_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); +} + +static void *sigiem_pow4_new(t_floatarg f) +{ + t_sigiem_pow4 *x = (t_sigiem_pow4 *)pd_new(sigiem_pow4_class); + + x->x_exp = f; + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + outlet_new(&x->x_obj, gensym("signal")); + x->x_msi = 0; + return (x); +} + +void sigiem_pow4_setup(void) +{ + sigiem_pow4_class = class_new(gensym("iem_pow4~"), (t_newmethod)sigiem_pow4_new, 0, + sizeof(t_sigiem_pow4), 0, A_DEFFLOAT, 0); + class_addcreator((t_newmethod)sigiem_pow4_new, gensym("icot~"), 0); + CLASS_MAINSIGNALIN(sigiem_pow4_class, t_sigiem_pow4, x_msi); + class_addmethod(sigiem_pow4_class, (t_method)sigiem_pow4_dsp, gensym("dsp"), 0); + class_addmethod(sigiem_pow4_class, (t_method)sigiem_pow4_ft1, gensym("ft1"), A_FLOAT, 0); + class_sethelpsymbol(sigiem_pow4_class, gensym("iemhelp/help-iem_pow4~")); +} diff --git a/src/iemlib1/sigiem_sqrt4.c b/src/iemlib1/sigiem_sqrt4.c new file mode 100644 index 0000000..49d9982 --- /dev/null +++ b/src/iemlib1/sigiem_sqrt4.c @@ -0,0 +1,117 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +#define IEMSQRT4TAB1SIZE 256 +#define IEMSQRT4TAB2SIZE 1024 + +/* ------------------------ iem_sqrt4~ ----------------------------- */ + +float *iem_sqrt4_exptab=(float *)0L; +float *iem_sqrt4_mantissatab=(float *)0L; + +static t_class *sigiem_sqrt4_class; + +typedef struct _sigiem_sqrt4 +{ + t_object x_obj; + float x_msi; +} t_sigiem_sqrt4; + +static t_int *sigiem_sqrt4_perform(t_int *w) +{ + t_float *in = (t_float *)(w[1]); + t_float *out = (t_float *)(w[2]); + t_int n = (t_int)(w[3])/4; + + while(n--) + { + float f = *in; + float g, h; + long l = *(long *)(in); + + if(f < 0.0f) + { + *out++ = 0.0f; + *out++ = 0.0f; + *out++ = 0.0f; + *out++ = 0.0f; + } + else + { + g = iem_sqrt4_exptab[(l >> 23) & 0xff] * iem_sqrt4_mantissatab[(l >> 13) & 0x3ff]; + h = f * (1.5f * g - 0.5f * g * g * g * f); + *out++ = h; + *out++ = h; + *out++ = h; + *out++ = h; + } + in += 4; + } + return(w+4); +} + +static void sigiem_sqrt4_dsp(t_sigiem_sqrt4 *x, t_signal **sp) +{ + dsp_add(sigiem_sqrt4_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n); +} + +static void sigiem_sqrt4_maketable(void) +{ + int i; + float f; + long l; + + if(!iem_sqrt4_exptab) + { + iem_sqrt4_exptab = (float *)getbytes(sizeof(float) * IEMSQRT4TAB1SIZE); + for(i=0; i<IEMSQRT4TAB1SIZE; i++) + { + l = (i ? (i == IEMSQRT4TAB1SIZE-1 ? IEMSQRT4TAB1SIZE-2 : i) : 1)<< 23; + *(long *)(&f) = l; + iem_sqrt4_exptab[i] = 1.0f/sqrt(f); + } + } + if(!iem_sqrt4_mantissatab) + { + iem_sqrt4_mantissatab = (float *)getbytes(sizeof(float) * IEMSQRT4TAB2SIZE); + for(i=0; i<IEMSQRT4TAB2SIZE; i++) + { + f = 1.0f + (1.0f/(float)IEMSQRT4TAB2SIZE) * (float)i; + iem_sqrt4_mantissatab[i] = 1.0f/sqrt(f); + } + } +} + +static void *sigiem_sqrt4_new(void) +{ + t_sigiem_sqrt4 *x = (t_sigiem_sqrt4 *)pd_new(sigiem_sqrt4_class); + + outlet_new(&x->x_obj, gensym("signal")); + x->x_msi = 0; + return (x); +} + +void sigiem_sqrt4_setup(void) +{ + sigiem_sqrt4_class = class_new(gensym("iem_sqrt4~"), (t_newmethod)sigiem_sqrt4_new, 0, + sizeof(t_sigiem_sqrt4), 0, 0); + CLASS_MAINSIGNALIN(sigiem_sqrt4_class, t_sigiem_sqrt4, x_msi); + class_addmethod(sigiem_sqrt4_class, (t_method)sigiem_sqrt4_dsp, gensym("dsp"), 0); + sigiem_sqrt4_maketable(); + class_sethelpsymbol(sigiem_sqrt4_class, gensym("iemhelp/help-iem_sqrt4~")); +} + diff --git a/src/iemlib1/siglp1_t.c b/src/iemlib1/siglp1_t.c new file mode 100644 index 0000000..060d988 --- /dev/null +++ b/src/iemlib1/siglp1_t.c @@ -0,0 +1,219 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + + +/* -- lp1_t~ - slow dynamic lowpass-filter 1. order with tau input --- */ + +typedef struct siglp1_t +{ + t_object x_obj; + float yn1; + float c0; + float c1; + float sr; + float cur_t; + float delta_t; + float end_t; + float ticks_per_interpol_time; + float rcp_ticks; + float interpol_time; + int ticks; + int counter_t; + float x_msi; +} t_siglp1_t; + +t_class *siglp1_t_class; + +static void siglp1_t_dsp_tick(t_siglp1_t *x) +{ + if(x->counter_t) + { + if(x->counter_t <= 1) + { + x->cur_t = x->end_t; + x->counter_t = 0; + } + else + { + x->counter_t--; + x->cur_t += x->delta_t; + } + if(x->cur_t == 0.0f) + x->c1 = 0.0f; + else + x->c1 = exp((x->sr)/x->cur_t); + x->c0 = 1.0f - x->c1; + } +} + +static t_int *siglp1_t_perform(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_siglp1_t *x = (t_siglp1_t *)(w[3]); + int i, n = (t_int)(w[4]); + float yn0, yn1=x->yn1; + float c0=x->c0, c1=x->c1; + + siglp1_t_dsp_tick(x); + for(i=0; i<n; i++) + { + yn0 = (*in++)*c0 + yn1*c1; + *out++ = yn0; + yn1 = yn0; + } + /* NAN protect */ + if(PD_BADFLOAT(yn1)) + yn1 = 0.0f; + x->yn1 = yn1; + return(w+5); +} + +static t_int *siglp1_t_perf8(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_siglp1_t *x = (t_siglp1_t *)(w[3]); + int i, n = (t_int)(w[4]); + float yn[9]; + float c0=x->c0, c1=x->c1; + + siglp1_t_dsp_tick(x); + yn[0] = x->yn1; + for(i=0; i<n; i+=8, in+=8, out+=8) + { + yn[1] = in[0]*c0 + yn[0]*c1; + out[0] = yn[1]; + yn[2] = in[1]*c0 + yn[1]*c1; + out[1] = yn[2]; + yn[3] = in[2]*c0 + yn[2]*c1; + out[2] = yn[3]; + yn[4] = in[3]*c0 + yn[3]*c1; + out[3] = yn[4]; + yn[5] = in[4]*c0 + yn[4]*c1; + out[4] = yn[5]; + yn[6] = in[5]*c0 + yn[5]*c1; + out[5] = yn[6]; + yn[7] = in[6]*c0 + yn[6]*c1; + out[6] = yn[7]; + yn[8] = in[7]*c0 + yn[7]*c1; + out[7] = yn[8]; + yn[0] = yn[8]; + } + /* NAN protect */ + if(PD_BADFLOAT(yn[0])) + yn[0] = 0.0f; + + x->yn1 = yn[0]; + return(w+5); +} + +static void siglp1_t_ft2(t_siglp1_t *x, t_floatarg t) +{ + int i = (int)((x->ticks_per_interpol_time)*t); + + x->interpol_time = t; + if(i <= 0) + i = 1; + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; +} + +static void siglp1_t_ft1(t_siglp1_t *x, t_floatarg time_const) +{ + if(time_const < 0.0f) + time_const = 0.0f; + if(time_const != x->cur_t) + { + x->end_t = time_const; + x->counter_t = x->ticks; + x->delta_t = (time_const - x->cur_t) * x->rcp_ticks; + } +} + +static void siglp1_t_dsp(t_siglp1_t *x, t_signal **sp) +{ + int i, n=(int)sp[0]->s_n; + + x->sr = -1000.0f / (float)(sp[0]->s_sr); + x->ticks_per_interpol_time = 0.001f * (float)(sp[0]->s_sr) / (float)n; + i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)); + if(i <= 0) + i = 1; + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; + if(x->cur_t == 0.0f) + x->c1 = 0.0f; + else + x->c1 = exp((x->sr)/x->cur_t); + x->c0 = 1.0f - x->c1; + if(n&7) + dsp_add(siglp1_t_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); + else + dsp_add(siglp1_t_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); +} + +static void *siglp1_t_new(t_symbol *s, int argc, t_atom *argv) +{ + t_siglp1_t *x = (t_siglp1_t *)pd_new(siglp1_t_class); + int i; + float time_const=0.0f, interpol=0.0f; + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft2")); + outlet_new(&x->x_obj, &s_signal); + x->x_msi = 0; + x->counter_t = 1; + x->delta_t = 0.0f; + x->interpol_time = 0.0f; + x->yn1 = 0.0f; + x->sr = -1.0f / 44.1f; + if((argc >= 1)&&IS_A_FLOAT(argv,0)) + time_const = (float)atom_getfloatarg(0, argc, argv); + if((argc >= 2)&&IS_A_FLOAT(argv,1)) + interpol = (float)atom_getfloatarg(1, argc, argv); + if(time_const < 0.0f) + time_const = 0.0f; + x->cur_t = time_const; + if(time_const == 0.0f) + x->c1 = 0.0f; + else + x->c1 = exp((x->sr)/time_const); + x->c0 = 1.0f - x->c1; + if(interpol < 0.0f) + interpol = 0.0f; + x->interpol_time = interpol; + x->ticks_per_interpol_time = 0.5f; + i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)); + if(i <= 0) + i = 1; + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; + x->end_t = x->cur_t; + return (x); +} + +void siglp1_t_setup(void) +{ + siglp1_t_class = class_new(gensym("lp1_t~"), (t_newmethod)siglp1_t_new, + 0, sizeof(t_siglp1_t), 0, A_GIMME, 0); + CLASS_MAINSIGNALIN(siglp1_t_class, t_siglp1_t, x_msi); + class_addmethod(siglp1_t_class, (t_method)siglp1_t_dsp, gensym("dsp"), 0); + class_addmethod(siglp1_t_class, (t_method)siglp1_t_ft1, gensym("ft1"), A_FLOAT, 0); + class_addmethod(siglp1_t_class, (t_method)siglp1_t_ft2, gensym("ft2"), A_FLOAT, 0); + class_sethelpsymbol(siglp1_t_class, gensym("iemhelp/help-lp1_t~")); +} diff --git a/src/iemlib1/sigmov_avrg_kern.c b/src/iemlib1/sigmov_avrg_kern.c new file mode 100644 index 0000000..1c77a49 --- /dev/null +++ b/src/iemlib1/sigmov_avrg_kern.c @@ -0,0 +1,143 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + + +/* -- mov_avrg_kern~ - kernel for a moving-average-filter with IIR - */ + +typedef struct sigmov_avrg_kern +{ + t_object x_obj; + double x_wn1; + double x_a0; + double x_sr; + double x_mstime; + int x_nsamps; + int x_counter; + float x_msi; +} t_sigmov_avrg_kern; + +t_class *sigmov_avrg_kern_class; + +static t_int *sigmov_avrg_kern_perform(t_int *w) +{ + float *in_direct = (float *)(w[1]); + float *in_delayed = (float *)(w[2]); + float *out = (float *)(w[3]); + t_sigmov_avrg_kern *x = (t_sigmov_avrg_kern *)(w[4]); + int i, n = (int)(w[5]); + double wn0, wn1=x->x_wn1, a0=x->x_a0; + + if(x->x_counter) + { + int counter = x->x_counter; + + if(counter >= n) + { + x->x_counter = counter - n; + for(i=0; i<n; i++) + { + wn0 = wn1 + a0*(double)(*in_direct++); + *out++ = (float)wn0; + wn1 = wn0; + } + } + else + { + x->x_counter = 0; + for(i=0; i<counter; i++) + { + wn0 = wn1 + a0*(double)(*in_direct++); + *out++ = (float)wn0; + wn1 = wn0; + } + for(i=counter; i<n; i++) + { + wn0 = wn1 + a0*(double)(*in_direct++ - *in_delayed++); + *out++ = (float)wn0; + wn1 = wn0; + } + } + } + else + { + for(i=0; i<n; i++) + { + wn0 = wn1 + a0*(double)(*in_direct++ - *in_delayed++); + *out++ = (float)wn0; + wn1 = wn0; + } + } + x->x_wn1 = wn1; + return(w+6); +} + +static void sigmov_avrg_kern_ft1(t_sigmov_avrg_kern *x, t_floatarg mstime) +{ + if(mstime < 0.04) + mstime = 0.04; + x->x_mstime = (double)mstime; + x->x_nsamps = (int)(x->x_sr * x->x_mstime); + x->x_counter = x->x_nsamps; + x->x_wn1 = 0.0; + x->x_a0 = 1.0/(double)(x->x_nsamps); +} + +static void sigmov_avrg_kern_reset(t_sigmov_avrg_kern *x) +{ + x->x_counter = x->x_nsamps; + x->x_wn1 = 0.0; +} + +static void sigmov_avrg_kern_dsp(t_sigmov_avrg_kern *x, t_signal **sp) +{ + x->x_sr = 0.001*(double)(sp[0]->s_sr); + x->x_nsamps = (int)(x->x_sr * x->x_mstime); + x->x_counter = x->x_nsamps; + x->x_wn1 = 0.0; + x->x_a0 = 1.0/(double)(x->x_nsamps); + dsp_add(sigmov_avrg_kern_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, sp[0]->s_n); +} + +static void *sigmov_avrg_kern_new(t_floatarg mstime) +{ + t_sigmov_avrg_kern *x = (t_sigmov_avrg_kern *)pd_new(sigmov_avrg_kern_class); + + if(mstime < 0.04) + mstime = 0.04; + x->x_mstime = (double)mstime; + x->x_sr = 44.1; + x->x_nsamps = (int)(x->x_sr * x->x_mstime); + x->x_counter = x->x_nsamps; + x->x_wn1 = 0.0; + x->x_a0 = 1.0/(double)(x->x_nsamps); + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + outlet_new(&x->x_obj, &s_signal); + x->x_msi = 0; + return(x); +} + +void sigmov_avrg_kern_setup(void) +{ + sigmov_avrg_kern_class = class_new(gensym("mov_avrg_kern~"), (t_newmethod)sigmov_avrg_kern_new, + 0, sizeof(t_sigmov_avrg_kern), 0, A_FLOAT, 0); + CLASS_MAINSIGNALIN(sigmov_avrg_kern_class, t_sigmov_avrg_kern, x_msi); + class_addmethod(sigmov_avrg_kern_class, (t_method)sigmov_avrg_kern_dsp, gensym("dsp"), 0); + class_addmethod(sigmov_avrg_kern_class, (t_method)sigmov_avrg_kern_ft1, gensym("ft1"), A_FLOAT, 0); + class_addmethod(sigmov_avrg_kern_class, (t_method)sigmov_avrg_kern_reset, gensym("reset"), 0); +} diff --git a/src/iemlib1/sigpara_bp2.c b/src/iemlib1/sigpara_bp2.c new file mode 100644 index 0000000..871191e --- /dev/null +++ b/src/iemlib1/sigpara_bp2.c @@ -0,0 +1,426 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + + +/* ---------- para_bp2~ - parametric bandpass 2. order ----------- */ + +typedef struct sigpara_bp2 +{ + t_object x_obj; + float wn1; + float wn2; + float a0; + float a1; + float a2; + float b1; + float b2; + float sr; + float cur_f; + float cur_l; + float cur_a; + float cur_g; + float delta_f; + float delta_a; + float delta_g; + float end_f; + float end_a; + float end_g; + float ticks_per_interpol_time; + float rcp_ticks; + float interpol_time; + int ticks; + int counter_f; + int counter_a; + int counter_g; + int event_mask; + void *x_debug_outlet; + t_atom x_at[5]; + float x_msi; +} t_sigpara_bp2; + +t_class *sigpara_bp2_class; + +static void sigpara_bp2_calc(t_sigpara_bp2 *x) +{ + float l, al, gal, l2, rcp; + + l = x->cur_l; + l2 = l*l + 1.0; + al = l*x->cur_a; + gal = al*x->cur_g; + rcp = 1.0f/(al + l2); + x->a0 = rcp*(l2 + gal); + x->a1 = rcp*2.0f*(2.0f - l2); + x->a2 = rcp*(l2 - gal); + x->b1 = -x->a1; + x->b2 = rcp*(al - l2); +} + +static void sigpara_bp2_dsp_tick(t_sigpara_bp2 *x) +{ + if(x->event_mask) + { + float discriminant; + + if(x->counter_f) + { + float l, si, co; + + if(x->counter_f <= 1) + { + x->cur_f = x->end_f; + x->counter_f = 0; + x->event_mask &= 6;/*set event_mask_bit 0 = 0*/ + } + else + { + x->counter_f--; + x->cur_f *= x->delta_f; + } + l = x->cur_f * x->sr; + if(l < 1.0e-20f) + x->cur_l = 1.0e20f; + else if(l > 1.57079632f) + x->cur_l = 0.0f; + else + { + si = sin(l); + co = cos(l); + x->cur_l = co/si; + } + } + if(x->counter_a) + { + if(x->counter_a <= 1) + { + x->cur_a = x->end_a; + x->counter_a = 0; + x->event_mask &= 5;/*set event_mask_bit 1 = 0*/ + } + else + { + x->counter_a--; + x->cur_a *= x->delta_a; + } + } + if(x->counter_g) + { + if(x->counter_g <= 1) + { + x->cur_g = x->end_g; + x->counter_g = 0; + x->event_mask &= 3;/*set event_mask_bit 2 = 0*/ + } + else + { + x->counter_g--; + x->cur_g *= x->delta_g; + } + } + + sigpara_bp2_calc(x); + + /* stability check */ + + discriminant = x->b1 * x->b1 + 4.0f * x->b2; + if(x->b1 <= -1.9999996f) + x->b1 = -1.9999996f; + else if(x->b1 >= 1.9999996f) + x->b1 = 1.9999996f; + + if(x->b2 <= -0.9999998f) + x->b2 = -0.9999998f; + else if(x->b2 >= 0.9999998f) + x->b2 = 0.9999998f; + + if(discriminant >= 0.0f) + { + if(0.9999998f - x->b1 - x->b2 < 0.0f) + x->b2 = 0.9999998f - x->b1; + if(0.9999998f + x->b1 - x->b2 < 0.0f) + x->b2 = 0.9999998f + x->b1; + } + } +} + +static t_int *sigpara_bp2_perform(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_sigpara_bp2 *x = (t_sigpara_bp2 *)(w[3]); + int i, n = (t_int)(w[4]); + float wn0, wn1=x->wn1, wn2=x->wn2; + float a0=x->a0, a1=x->a1, a2=x->a2; + float b1=x->b1, b2=x->b2; + + sigpara_bp2_dsp_tick(x); + for(i=0; i<n; i++) + { + wn0 = *in++ + b1*wn1 + b2*wn2; + *out++ = a0*wn0 + a1*wn1 + a2*wn2; + wn2 = wn1; + wn1 = wn0; + } + /* NAN protect */ + if(PD_BADFLOAT(wn2)) + wn2 = 0.0f; + if(PD_BADFLOAT(wn1)) + wn1 = 0.0f; + + x->wn1 = wn1; + x->wn2 = wn2; + return(w+5); +} +/* yn0 = *out; + xn0 = *in; + ************* + yn0 = a0*xn0 + a1*xn1 + a2*xn2 + b1*yn1 + b2*yn2; + yn2 = yn1; + yn1 = yn0; + xn2 = xn1; + xn1 = xn0; + ************************* + y/x = (a0 + a1*z-1 + a2*z-2)/(1 - b1*z-1 - b2*z-2);*/ + +static t_int *sigpara_bp2_perf8(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_sigpara_bp2 *x = (t_sigpara_bp2 *)(w[3]); + int i, n = (t_int)(w[4]); + float wn[10]; + float a0=x->a0, a1=x->a1, a2=x->a2; + float b1=x->b1, b2=x->b2; + + sigpara_bp2_dsp_tick(x); + wn[0] = x->wn2; + wn[1] = x->wn1; + for(i=0; i<n; i+=8, in+=8, out+=8) + { + wn[2] = in[0] + b1*wn[1] + b2*wn[0]; + out[0] = a0*wn[2] + a1*wn[1] + a2*wn[0]; + wn[3] = in[1] + b1*wn[2] + b2*wn[1]; + out[1] = a0*wn[3] + a1*wn[2] + a2*wn[1]; + wn[4] = in[2] + b1*wn[3] + b2*wn[2]; + out[2] = a0*wn[4] + a1*wn[3] + a2*wn[2]; + wn[5] = in[3] + b1*wn[4] + b2*wn[3]; + out[3] = a0*wn[5] + a1*wn[4] + a2*wn[3]; + wn[6] = in[4] + b1*wn[5] + b2*wn[4]; + out[4] = a0*wn[6] + a1*wn[5] + a2*wn[4]; + wn[7] = in[5] + b1*wn[6] + b2*wn[5]; + out[5] = a0*wn[7] + a1*wn[6] + a2*wn[5]; + wn[8] = in[6] + b1*wn[7] + b2*wn[6]; + out[6] = a0*wn[8] + a1*wn[7] + a2*wn[6]; + wn[9] = in[7] + b1*wn[8] + b2*wn[7]; + out[7] = a0*wn[9] + a1*wn[8] + a2*wn[7]; + wn[0] = wn[8]; + wn[1] = wn[9]; + } + /* NAN protect */ + if(PD_BADFLOAT(wn[0])) + wn[0] = 0.0f; + if(PD_BADFLOAT(wn[1])) + wn[1] = 0.0f; + + x->wn1 = wn[1]; + x->wn2 = wn[0]; + return(w+5); +} + +static void sigpara_bp2_ft4(t_sigpara_bp2 *x, t_floatarg t) +{ + int i = (int)((x->ticks_per_interpol_time)*t); + + x->interpol_time = t; + if(i <= 0) + i = 1; + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; +} + +static void sigpara_bp2_ft3(t_sigpara_bp2 *x, t_floatarg l) +{ + float g = exp(0.11512925465 * l); + + if(g != x->cur_g) + { + x->end_g = g; + x->counter_g = x->ticks; + x->delta_g = exp(log(g/x->cur_g)*x->rcp_ticks); + x->event_mask |= 4;/*set event_mask_bit 2 = 1*/ + } +} + +static void sigpara_bp2_ft2(t_sigpara_bp2 *x, t_floatarg q) +{ + float a; + + if(q <= 0.0f) + q = 0.000001f; + a = 1.0f/q; + if(a != x->cur_a) + { + x->end_a = a; + x->counter_a = x->ticks; + x->delta_a = exp(log(a/x->cur_a)*x->rcp_ticks); + x->event_mask |= 2;/*set event_mask_bit 1 = 1*/ + } +} + +static void sigpara_bp2_ft1(t_sigpara_bp2 *x, t_floatarg f) +{ + if(f <= 0.0f) + f = 0.000001f; + if(f != x->cur_f) + { + x->end_f = f; + x->counter_f = x->ticks; + x->delta_f = exp(log(f/x->cur_f)*x->rcp_ticks); + x->event_mask |= 1;/*set event_mask_bit 0 = 1*/ + } +} + +static void sigpara_bp2_print(t_sigpara_bp2 *x) +{ +// post("fb1 = %g, fb2 = %g, ff1 = %g, ff2 = %g, ff3 = %g", x->b1, x->b2, x->a0, x->a1, x->a2); + x->x_at[0].a_w.w_float = x->b1; + x->x_at[1].a_w.w_float = x->b2; + x->x_at[2].a_w.w_float = x->a0; + x->x_at[3].a_w.w_float = x->a1; + x->x_at[4].a_w.w_float = x->a2; + outlet_list(x->x_debug_outlet, &s_list, 5, x->x_at); post("fb1 = %g, fb2 = %g, ff1 = %g, ff2 = %g, ff3 = %g", x->b1, x->b2, x->a0, x->a1, x->a2); +} + +static void sigpara_bp2_dsp(t_sigpara_bp2 *x, t_signal **sp) +{ + float si, co, f; + int i, n=(int)sp[0]->s_n; + + x->sr = 3.14159265358979323846f / (float)(sp[0]->s_sr); + x->ticks_per_interpol_time = 0.001f * (float)(sp[0]->s_sr) / (float)n; + i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)); + if(i <= 0) + i = 1; + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; + f = x->cur_f * x->sr; + if(f < 1.0e-20f) + x->cur_l = 1.0e20f; + else if(f > 1.57079632f) + x->cur_l = 0.0f; + else + { + si = sin(f); + co = cos(f); + x->cur_l = co/si; + } + if(n&7) + dsp_add(sigpara_bp2_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); + else + dsp_add(sigpara_bp2_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); +} + +static void *sigpara_bp2_new(t_symbol *s, int argc, t_atom *argv) +{ + t_sigpara_bp2 *x = (t_sigpara_bp2 *)pd_new(sigpara_bp2_class); + int i; + float si, co, f=0.0, q=1.0, l=0.0, interpol=0.0; + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft2")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft3")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft4")); + outlet_new(&x->x_obj, &s_signal); + x->x_debug_outlet = outlet_new(&x->x_obj, &s_list); + x->x_msi = 0; + + x->x_at[0].a_type = A_FLOAT; + x->x_at[1].a_type = A_FLOAT; + x->x_at[2].a_type = A_FLOAT; + x->x_at[3].a_type = A_FLOAT; + x->x_at[4].a_type = A_FLOAT; + + x->event_mask = 1; + x->counter_f = 1; + x->counter_a = 0; + x->counter_g = 0; + x->delta_f = 0.0f; + x->delta_a = 0.0f; + x->delta_g = 0.0f; + x->interpol_time = 500.0f; + x->wn1 = 0.0; + x->wn2 = 0.0; + x->a0 = 0.0; + x->a1 = 0.0; + x->a2 = 0.0; + x->b1 = 0.0; + x->b2 = 0.0; + x->sr = 3.14159265358979323846f / 44100.0f; + x->cur_a = 1.0; + if((argc == 4)&&IS_A_FLOAT(argv,3)&&IS_A_FLOAT(argv,2)&&IS_A_FLOAT(argv,1)&&IS_A_FLOAT(argv,0)) + { + f = (float)atom_getfloatarg(0, argc, argv); + q = (float)atom_getfloatarg(1, argc, argv); + l = (float)atom_getfloatarg(2, argc, argv); + interpol = (float)atom_getfloatarg(3, argc, argv); + } + if(f <= 0.0f) + f = 0.000001f; + x->cur_f = f; + f *= x->sr; + if(f < 1.0e-20f) + x->cur_l = 1.0e20f; + else if(f > 1.57079632f) + x->cur_l = 0.0f; + else + { + si = sin(f); + co = cos(f); + x->cur_l = co/si; + } + if(q <= 0.0f) + q = 0.000001f; + x->cur_a = 1.0f/q; + x->cur_g = exp(0.11512925465 * l); + if(interpol <= 0.0f) + interpol = 0.0f; + x->interpol_time = interpol; + x->ticks_per_interpol_time = 0.5f; + i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)); + if(i <= 0) + i = 1; + x->ticks = i; + x->rcp_ticks = 1.0f / (float)i; + x->end_f = x->cur_f; + x->end_a = x->cur_a; + x->end_g = x->cur_g; + return(x); +} + +void sigpara_bp2_setup(void) +{ + sigpara_bp2_class = class_new(gensym("para_bp2~"), (t_newmethod)sigpara_bp2_new, + 0, sizeof(t_sigpara_bp2), 0, A_GIMME, 0); + CLASS_MAINSIGNALIN(sigpara_bp2_class, t_sigpara_bp2, x_msi); + class_addmethod(sigpara_bp2_class, (t_method)sigpara_bp2_dsp, gensym("dsp"), 0); + class_addmethod(sigpara_bp2_class, (t_method)sigpara_bp2_ft1, gensym("ft1"), A_FLOAT, 0); + class_addmethod(sigpara_bp2_class, (t_method)sigpara_bp2_ft2, gensym("ft2"), A_FLOAT, 0); + class_addmethod(sigpara_bp2_class, (t_method)sigpara_bp2_ft3, gensym("ft3"), A_FLOAT, 0); + class_addmethod(sigpara_bp2_class, (t_method)sigpara_bp2_ft4, gensym("ft4"), A_FLOAT, 0); + class_addmethod(sigpara_bp2_class, (t_method)sigpara_bp2_print, gensym("print"), 0); + class_sethelpsymbol(sigpara_bp2_class, gensym("iemhelp/help-para_bp2~")); +} diff --git a/src/iemlib1/sigpeakenv.c b/src/iemlib1/sigpeakenv.c new file mode 100644 index 0000000..a16638e --- /dev/null +++ b/src/iemlib1/sigpeakenv.c @@ -0,0 +1,102 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ---------------- peakenv~ - simple peak-envelope-converter. ----------------- */ + +typedef struct sigpeakenv +{ + t_object x_obj; + float x_sr; + float x_old_peak; + float x_c1; + float x_releasetime; + float x_msi; +} t_sigpeakenv; + +t_class *sigpeakenv_class; + +static void sigpeakenv_reset(t_sigpeakenv *x) +{ + x->x_old_peak = 0.0f; +} + +static void sigpeakenv_ft1(t_sigpeakenv *x, t_floatarg f)/* release-time in ms */ +{ + if(f < 0.0f) + f = 0.0f; + x->x_releasetime = f; + x->x_c1 = exp(-1.0/(x->x_sr*0.001*x->x_releasetime)); +} + +static t_int *sigpeakenv_perform(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[2]); + t_sigpeakenv *x = (t_sigpeakenv *)(w[3]); + int n = (int)(w[4]); + float peak = x->x_old_peak; + float c1 = x->x_c1; + float absolute; + int i; + + for(i=0; i<n; i++) + { + absolute = fabs(*in++); + peak *= c1; + if(absolute > peak) + peak = absolute; + *out++ = peak; + } + /* NAN protect */ + if(PD_BADFLOAT(peak)) + peak = 0.0f; + x->x_old_peak = peak; + return(w+5); +} + +static void sigpeakenv_dsp(t_sigpeakenv *x, t_signal **sp) +{ + x->x_sr = (float)sp[0]->s_sr; + sigpeakenv_ft1(x, x->x_releasetime); + dsp_add(sigpeakenv_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); +} + +static void *sigpeakenv_new(t_floatarg f) +{ + t_sigpeakenv *x = (t_sigpeakenv *)pd_new(sigpeakenv_class); + + if(f <= 0.0f) + f = 0.0f; + x->x_sr = 44100.0f; + sigpeakenv_ft1(x, f); + x->x_old_peak = 0.0f; + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + outlet_new(&x->x_obj, &s_signal); + x->x_msi = 0; + return(x); +} + +void sigpeakenv_setup(void) +{ + sigpeakenv_class = class_new(gensym("peakenv~"), (t_newmethod)sigpeakenv_new, + 0, sizeof(t_sigpeakenv), 0, A_DEFFLOAT, 0); + CLASS_MAINSIGNALIN(sigpeakenv_class, t_sigpeakenv, x_msi); + class_addmethod(sigpeakenv_class, (t_method)sigpeakenv_dsp, gensym("dsp"), 0); + class_addmethod(sigpeakenv_class, (t_method)sigpeakenv_ft1, gensym("ft1"), A_FLOAT, 0); + class_addmethod(sigpeakenv_class, (t_method)sigpeakenv_reset, gensym("reset"), 0); + class_sethelpsymbol(sigpeakenv_class, gensym("iemhelp/help-peakenv~")); +} diff --git a/src/iemlib1/sigprvu.c b/src/iemlib1/sigprvu.c new file mode 100644 index 0000000..bb4b72a --- /dev/null +++ b/src/iemlib1/sigprvu.c @@ -0,0 +1,282 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ---------------- prvu~ - simple peak&rms-vu-meter. ----------------- */ + +typedef struct sigprvu +{ + t_object x_obj; + t_atom x_at[3]; + void *x_clock_metro; + int x_metro_time; + void *x_clock_hold; + int x_hold_time; + float x_cur_peak; + float x_old_peak; + float x_hold_peak; + int x_hold; + float x_sum_rms; + float x_old_rms; + float x_rcp; + float x_sr; + float x_threshold_over; + int x_overflow_counter; + float x_release_time; + float x_c1; + int x_started; + float x_msi; +} t_sigprvu; + +t_class *sigprvu_class; +static void sigprvu_tick_metro(t_sigprvu *x); +static void sigprvu_tick_hold(t_sigprvu *x); + +static void sigprvu_reset(t_sigprvu *x) +{ + x->x_at[0].a_w.w_float = -99.9f; + x->x_at[1].a_w.w_float = -99.9f; + x->x_at[2].a_w.w_float = 0.0f; + outlet_list(x->x_obj.ob_outlet, &s_list, 3, x->x_at); + x->x_overflow_counter = 0; + x->x_cur_peak = 0.0f; + x->x_old_peak = 0.0f; + x->x_hold_peak = 0.0f; + x->x_sum_rms = 0.0f; + x->x_old_rms = 0.0f; + x->x_hold = 0; + clock_unset(x->x_clock_hold); + clock_delay(x->x_clock_metro, x->x_metro_time); +} + +static void sigprvu_stop(t_sigprvu *x) +{ + clock_unset(x->x_clock_metro); + x->x_started = 0; +} + +static void sigprvu_start(t_sigprvu *x) +{ + clock_delay(x->x_clock_metro, x->x_metro_time); + x->x_started = 1; +} + +static void sigprvu_float(t_sigprvu *x, t_floatarg f) +{ + if(f == 0.0) + { + clock_unset(x->x_clock_metro); + x->x_started = 0; + } + else + { + clock_delay(x->x_clock_metro, x->x_metro_time); + x->x_started = 1; + } +} + +static void sigprvu_t_release(t_sigprvu *x, t_floatarg release_time) +{ + if(release_time <= 20.0f) + release_time = 20.0f; + x->x_release_time = release_time; + x->x_c1 = exp(-2.0*(float)x->x_metro_time/x->x_release_time); +} + +static void sigprvu_t_metro(t_sigprvu *x, t_floatarg metro_time) +{ + if(metro_time <= 20.0f) + metro_time = 20.0f; + x->x_metro_time = (int)metro_time; + x->x_c1 = exp(-2.0*(float)x->x_metro_time/x->x_release_time); + x->x_rcp = 1.0f/(x->x_sr*(float)x->x_metro_time); +} + +static void sigprvu_t_hold(t_sigprvu *x, t_floatarg hold_time) +{ + if(hold_time <= 20.0f) + hold_time = 20.0f; + x->x_hold_time = (int)hold_time; +} + +static void sigprvu_threshold(t_sigprvu *x, t_floatarg thresh) +{ + x->x_threshold_over = thresh; +} + +static t_int *sigprvu_perform(t_int *w) +{ + float *in = (float *)(w[1]); + t_sigprvu *x = (t_sigprvu *)(w[2]); + int n = (int)(w[3]); + float peak = x->x_cur_peak, pow, sum=x->x_sum_rms; + int i; + + if(x->x_started) + { + for(i=0; i<n; i++) + { + pow = in[i]*in[i]; + if(pow > peak) + peak = pow; + sum += pow; + } + x->x_cur_peak = peak; + x->x_sum_rms = sum; + } + return(w+4); +} + +static void sigprvu_dsp(t_sigprvu *x, t_signal **sp) +{ + x->x_sr = 0.001*(float)sp[0]->s_sr; + x->x_rcp = 1.0f/(x->x_sr*(float)x->x_metro_time); + dsp_add(sigprvu_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); + clock_delay(x->x_clock_metro, x->x_metro_time); +} + +static void sigprvu_tick_hold(t_sigprvu *x) +{ + x->x_hold = 0; + x->x_hold_peak = x->x_old_peak; +} + +static void sigprvu_tick_metro(t_sigprvu *x) +{ + float dbr, dbp, cur_rms, c1=x->x_c1; + + x->x_old_peak *= c1; + /* NAN protect */ + if(PD_BADFLOAT(x->x_old_peak)) + x->x_old_peak = 0.0f; + + if(x->x_cur_peak > x->x_old_peak) + x->x_old_peak = x->x_cur_peak; + if(x->x_old_peak > x->x_hold_peak) + { + x->x_hold = 1; + x->x_hold_peak = x->x_old_peak; + clock_delay(x->x_clock_hold, x->x_hold_time); + } + if(!x->x_hold) + x->x_hold_peak = x->x_old_peak; + if(x->x_hold_peak <= 0.0000000001f) + dbp = -99.9f; + else if(x->x_hold_peak > 1000000.0f) + { + dbp = 60.0f; + x->x_hold_peak = 1000000.0f; + x->x_old_peak = 1000000.0f; + } + else + dbp = 4.3429448195f*log(x->x_hold_peak); + x->x_cur_peak = 0.0f; + if(dbp >= x->x_threshold_over) + x->x_overflow_counter++; + x->x_at[1].a_w.w_float = dbp; + x->x_at[2].a_w.w_float = (float)x->x_overflow_counter; + + cur_rms = (1.0f - c1)*x->x_sum_rms*x->x_rcp + c1*x->x_old_rms; + /* NAN protect */ + if(PD_BADFLOAT(cur_rms)) + cur_rms = 0.0f; + + if(cur_rms <= 0.0000000001f) + dbr = -99.9f; + else if(cur_rms > 1000000.0f) + { + dbr = 60.0f; + x->x_old_rms = 1000000.0f; + } + else + dbr = 4.3429448195f*log(cur_rms); + x->x_sum_rms = 0.0f; + x->x_old_rms = cur_rms; + x->x_at[0].a_w.w_float = dbr; + outlet_list(x->x_obj.ob_outlet, &s_list, 3, x->x_at); + clock_delay(x->x_clock_metro, x->x_metro_time); +} + +static void sigprvu_ff(t_sigprvu *x) +{ + clock_free(x->x_clock_metro); + clock_free(x->x_clock_hold); +} + +static void *sigprvu_new(t_floatarg metro_time, t_floatarg hold_time, + t_floatarg release_time, t_floatarg threshold) +{ + t_sigprvu *x; + float t; + int i; + + x = (t_sigprvu *)pd_new(sigprvu_class); + if(metro_time <= 0.0f) + metro_time = 300.0f; + if(metro_time <= 20.0f) + metro_time = 20.0f; + if(release_time <= 0.0f) + release_time = 300.0f; + if(release_time <= 20.0f) + release_time = 20.0f; + if(hold_time <= 0.0f) + hold_time = 1000.0f; + if(hold_time <= 20.0f) + hold_time = 20.0f; + if(threshold == 0.0f) + threshold = -0.01f; + x->x_metro_time = (int)metro_time; + x->x_release_time = release_time; + x->x_hold_time = (int)hold_time; + x->x_threshold_over = threshold; + x->x_c1 = exp(-2.0*(float)x->x_metro_time/x->x_release_time); + x->x_cur_peak = 0.0f; + x->x_old_peak = 0.0f; + x->x_hold_peak = 0.0f; + x->x_hold = 0; + x->x_sum_rms = 0.0f; + x->x_old_rms = 0.0f; + x->x_sr = 44.1f; + x->x_rcp = 1.0f/(x->x_sr*(float)x->x_metro_time); + x->x_overflow_counter = 0; + x->x_clock_metro = clock_new(x, (t_method)sigprvu_tick_metro); + x->x_clock_hold = clock_new(x, (t_method)sigprvu_tick_hold); + x->x_started = 1; + outlet_new(&x->x_obj, &s_list); + x->x_at[0].a_type = A_FLOAT; + x->x_at[1].a_type = A_FLOAT; + x->x_at[2].a_type = A_FLOAT; + x->x_msi = 0.0f; + return(x); +} + +void sigprvu_setup(void) +{ + sigprvu_class = class_new(gensym("prvu~"), (t_newmethod)sigprvu_new, + (t_method)sigprvu_ff, sizeof(t_sigprvu), 0, + A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + CLASS_MAINSIGNALIN(sigprvu_class, t_sigprvu, x_msi); + class_addmethod(sigprvu_class, (t_method)sigprvu_dsp, gensym("dsp"), 0); + class_addfloat(sigprvu_class, sigprvu_float); + class_addmethod(sigprvu_class, (t_method)sigprvu_reset, gensym("reset"), 0); + class_addmethod(sigprvu_class, (t_method)sigprvu_start, gensym("start"), 0); + class_addmethod(sigprvu_class, (t_method)sigprvu_stop, gensym("stop"), 0); + class_addmethod(sigprvu_class, (t_method)sigprvu_t_release, gensym("t_release"), A_FLOAT, 0); + class_addmethod(sigprvu_class, (t_method)sigprvu_t_metro, gensym("t_metro"), A_FLOAT, 0); + class_addmethod(sigprvu_class, (t_method)sigprvu_t_hold, gensym("t_hold"), A_FLOAT, 0); + class_addmethod(sigprvu_class, (t_method)sigprvu_threshold, gensym("threshold"), A_FLOAT, 0); + class_sethelpsymbol(sigprvu_class, gensym("iemhelp/help-prvu~")); +} diff --git a/src/iemlib1/sigpvu.c b/src/iemlib1/sigpvu.c new file mode 100644 index 0000000..5dd4ea4 --- /dev/null +++ b/src/iemlib1/sigpvu.c @@ -0,0 +1,206 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ---------------- pvu~ - simple peak-vu-meter. ----------------- */ + +typedef struct sigpvu +{ + t_object x_obj; + void *x_outlet_meter; + void *x_outlet_over; + void *x_clock; + float x_cur_peak; + float x_old_peak; + float x_threshold_over; + float x_c1; + int x_metro_time; + float x_release_time; + int x_overflow_counter; + int x_started; + float x_msi; +} t_sigpvu; + +t_class *sigpvu_class; +static void sigpvu_tick(t_sigpvu *x); + +static void sigpvu_reset(t_sigpvu *x) +{ + outlet_float(x->x_outlet_over, (t_float)0); + outlet_float(x->x_outlet_meter, -199.9); + x->x_overflow_counter = 0; + x->x_cur_peak = 0.0f; + x->x_old_peak = 0.0f; + clock_delay(x->x_clock, x->x_metro_time); +} + +static void sigpvu_stop(t_sigpvu *x) +{ + clock_unset(x->x_clock); + x->x_started = 0; +} + +static void sigpvu_start(t_sigpvu *x) +{ + clock_delay(x->x_clock, x->x_metro_time); + x->x_started = 1; +} + +static void sigpvu_float(t_sigpvu *x, t_floatarg f) +{ + if(f == 0.0) + { + clock_unset(x->x_clock); + x->x_started = 0; + } + else + { + clock_delay(x->x_clock, x->x_metro_time); + x->x_started = 1; + } +} + +static void sigpvu_t_release(t_sigpvu *x, t_floatarg release_time) +{ + if(release_time <= 20.0f) + release_time = 20.0f; + x->x_release_time = release_time; + x->x_c1 = exp(-(float)x->x_metro_time/(float)release_time); +} + +static void sigpvu_t_metro(t_sigpvu *x, t_floatarg metro_time) +{ + if(metro_time <= 20.0f) + metro_time = 20.0f; + x->x_metro_time = (int)metro_time; + x->x_c1 = exp(-(float)metro_time/(float)x->x_release_time); +} + +static void sigpvu_threshold(t_sigpvu *x, t_floatarg thresh) +{ + x->x_threshold_over = thresh; +} + +static t_int *sigpvu_perform(t_int *w) +{ + float *in = (float *)(w[1]); + t_sigpvu *x = (t_sigpvu *)(w[2]); + int n = (int)(w[3]); + float peak = x->x_cur_peak; + float absolute; + int i; + + if(x->x_started) + { + for(i=0; i<n; i++) + { + absolute = fabs(*in++); + if(absolute > peak) + peak = absolute; + } + x->x_cur_peak = peak; + } + return(w+4); +} + +static void sigpvu_dsp(t_sigpvu *x, t_signal **sp) +{ + dsp_add(sigpvu_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); + clock_delay(x->x_clock, x->x_metro_time); +} + +static void sigpvu_tick(t_sigpvu *x) +{ + float db; + int i; + + x->x_old_peak *= x->x_c1; + /* NAN protect */ + if(PD_BADFLOAT(x->x_old_peak)) + x->x_old_peak = 0.0f; + + if(x->x_cur_peak > x->x_old_peak) + x->x_old_peak = x->x_cur_peak; + if(x->x_old_peak <= 0.0000000001f) + db = -199.9f; + else if(x->x_old_peak > 1000000.0f) + { + db = 120.0f; + x->x_old_peak = 1000000.0f; + } + else + db = 8.6858896381f*log(x->x_old_peak); + if(db >= x->x_threshold_over) + { + x->x_overflow_counter++; + outlet_float(x->x_outlet_over, (t_float)x->x_overflow_counter); + } + outlet_float(x->x_outlet_meter, db); + x->x_cur_peak = 0.0f; + clock_delay(x->x_clock, x->x_metro_time); +} + +static void *sigpvu_new(t_floatarg metro_time, t_floatarg release_time, t_floatarg threshold) +{ + t_sigpvu *x; + float t; + + x = (t_sigpvu *)pd_new(sigpvu_class); + if(metro_time <= 0.0f) + metro_time = 300.0f; + if(metro_time <= 20.0f) + metro_time = 20.0f; + if(release_time <= 0.0f) + release_time = 300.0f; + if(release_time <= 20.0f) + release_time = 20.0f; + if(threshold == 0.0f) + threshold = -0.01f; + x->x_threshold_over = threshold; + x->x_overflow_counter = 0; + x->x_metro_time = (int)metro_time; + x->x_release_time = release_time; + x->x_c1 = exp(-(float)metro_time/(float)release_time); + x->x_cur_peak = 0.0f; + x->x_old_peak = 0.0f; + x->x_clock = clock_new(x, (t_method)sigpvu_tick); + x->x_outlet_meter = outlet_new(&x->x_obj, &s_float);/* left */ + x->x_outlet_over = outlet_new(&x->x_obj, &s_float); /* right */ + x->x_started = 1; + x->x_msi = 0; + return(x); +} + +static void sigpvu_ff(t_sigpvu *x) +{ + clock_free(x->x_clock); +} + +void sigpvu_setup(void ) +{ + sigpvu_class = class_new(gensym("pvu~"), (t_newmethod)sigpvu_new, + (t_method)sigpvu_ff, sizeof(t_sigpvu), 0, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); + CLASS_MAINSIGNALIN(sigpvu_class, t_sigpvu, x_msi); + class_addmethod(sigpvu_class, (t_method)sigpvu_dsp, gensym("dsp"), 0); + class_addfloat(sigpvu_class, sigpvu_float); + class_addmethod(sigpvu_class, (t_method)sigpvu_reset, gensym("reset"), 0); + class_addmethod(sigpvu_class, (t_method)sigpvu_start, gensym("start"), 0); + class_addmethod(sigpvu_class, (t_method)sigpvu_stop, gensym("stop"), 0); + class_addmethod(sigpvu_class, (t_method)sigpvu_t_release, gensym("t_release"), A_FLOAT, 0); + class_addmethod(sigpvu_class, (t_method)sigpvu_t_metro, gensym("t_metro"), A_FLOAT, 0); + class_addmethod(sigpvu_class, (t_method)sigpvu_threshold, gensym("threshold"), A_FLOAT, 0); + class_sethelpsymbol(sigpvu_class, gensym("iemhelp/help-pvu~")); +} diff --git a/src/iemlib1/sigrvu.c b/src/iemlib1/sigrvu.c new file mode 100644 index 0000000..70b9cd7 --- /dev/null +++ b/src/iemlib1/sigrvu.c @@ -0,0 +1,187 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ---------------- rvu~ - simple peak&rms-vu-meter. ----------------- */ + +typedef struct sigrvu +{ + t_object x_obj; + void *x_clock_metro; + int x_metro_time; + float x_sum_rms; + float x_old_rms; + float x_rcp; + float x_sr; + float x_release_time; + float x_c1; + int x_started; + float x_msi; +} t_sigrvu; + +t_class *sigrvu_class; +static void sigrvu_tick_metro(t_sigrvu *x); + +static void sigrvu_reset(t_sigrvu *x) +{ + outlet_float(x->x_obj.ob_outlet, -99.9f); + x->x_sum_rms = 0.0f; + x->x_old_rms = 0.0f; + clock_delay(x->x_clock_metro, x->x_metro_time); +} + +static void sigrvu_stop(t_sigrvu *x) +{ + clock_unset(x->x_clock_metro); + x->x_started = 0; +} + +static void sigrvu_start(t_sigrvu *x) +{ + clock_delay(x->x_clock_metro, x->x_metro_time); + x->x_started = 1; +} + +static void sigrvu_float(t_sigrvu *x, t_floatarg f) +{ + if(f == 0.0) + { + clock_unset(x->x_clock_metro); + x->x_started = 0; + } + else + { + clock_delay(x->x_clock_metro, x->x_metro_time); + x->x_started = 1; + } +} + +static void sigrvu_t_release(t_sigrvu *x, t_floatarg release_time) +{ + if(release_time <= 20.0f) + release_time = 20.0f; + x->x_release_time = release_time; + x->x_c1 = exp(-2.0*(float)x->x_metro_time/x->x_release_time); +} + +static void sigrvu_t_metro(t_sigrvu *x, t_floatarg metro_time) +{ + if(metro_time <= 20.0f) + metro_time = 20.0f; + x->x_metro_time = (int)metro_time; + x->x_c1 = exp(-2.0*(float)x->x_metro_time/x->x_release_time); + x->x_rcp = 1.0f/(x->x_sr*(float)x->x_metro_time); +} + +static t_int *sigrvu_perform(t_int *w) +{ + float *in = (float *)(w[1]); + t_sigrvu *x = (t_sigrvu *)(w[2]); + int n = (int)(w[3]); + float pow, sum=x->x_sum_rms; + int i; + + if(x->x_started) + { + for(i=0; i<n; i++) + { + sum += in[i]*in[i]; + } + x->x_sum_rms = sum; + } + return(w+4); +} + +static void sigrvu_dsp(t_sigrvu *x, t_signal **sp) +{ + x->x_sr = 0.001*(float)sp[0]->s_sr; + x->x_rcp = 1.0f/(x->x_sr*(float)x->x_metro_time); + dsp_add(sigrvu_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); + clock_delay(x->x_clock_metro, x->x_metro_time); +} + +static void sigrvu_tick_metro(t_sigrvu *x) +{ + float dbr, cur_rms, c1=x->x_c1; + + cur_rms = (1.0f - c1)*x->x_sum_rms*x->x_rcp + c1*x->x_old_rms; + /* NAN protect */ + if(PD_BADFLOAT(cur_rms)) + cur_rms = 0.0f; + + if(cur_rms <= 0.0000000001f) + dbr = -99.9f; + else if(cur_rms > 1000000.0f) + { + dbr = 60.0f; + x->x_old_rms = 1000000.0f; + } + else + dbr = 4.3429448195f*log(cur_rms); + x->x_sum_rms = 0.0f; + x->x_old_rms = cur_rms; + outlet_float(x->x_obj.ob_outlet, dbr); + clock_delay(x->x_clock_metro, x->x_metro_time); +} + +static void sigrvu_ff(t_sigrvu *x) +{ + clock_free(x->x_clock_metro); +} + +static void *sigrvu_new(t_floatarg metro_time, t_floatarg release_time) +{ + t_sigrvu *x=(t_sigrvu *)pd_new(sigrvu_class); + float t; + int i; + + if(metro_time <= 0.0f) + metro_time = 300.0f; + if(metro_time <= 20.0f) + metro_time = 20.0f; + if(release_time <= 0.0f) + release_time = 300.0f; + if(release_time <= 20.0f) + release_time = 20.0f; + x->x_metro_time = (int)metro_time; + x->x_release_time = release_time; + x->x_c1 = exp(-2.0*(float)x->x_metro_time/x->x_release_time); + x->x_sum_rms = 0.0f; + x->x_old_rms = 0.0f; + x->x_sr = 44.1f; + x->x_rcp = 1.0f/(x->x_sr*(float)x->x_metro_time); + x->x_clock_metro = clock_new(x, (t_method)sigrvu_tick_metro); + x->x_started = 1; + outlet_new(&x->x_obj, &s_float); + x->x_msi = 0.0f; + return(x); +} + +void sigrvu_setup(void) +{ + sigrvu_class = class_new(gensym("rvu~"), (t_newmethod)sigrvu_new, + (t_method)sigrvu_ff, sizeof(t_sigrvu), 0, + A_DEFFLOAT, A_DEFFLOAT, 0); + CLASS_MAINSIGNALIN(sigrvu_class, t_sigrvu, x_msi); + class_addmethod(sigrvu_class, (t_method)sigrvu_dsp, gensym("dsp"), 0); + class_addfloat(sigrvu_class, sigrvu_float); + class_addmethod(sigrvu_class, (t_method)sigrvu_reset, gensym("reset"), 0); + class_addmethod(sigrvu_class, (t_method)sigrvu_start, gensym("start"), 0); + class_addmethod(sigrvu_class, (t_method)sigrvu_stop, gensym("stop"), 0); + class_addmethod(sigrvu_class, (t_method)sigrvu_t_release, gensym("t_release"), A_FLOAT, 0); + class_addmethod(sigrvu_class, (t_method)sigrvu_t_metro, gensym("t_metro"), A_FLOAT, 0); + class_sethelpsymbol(sigrvu_class, gensym("iemhelp/help-rvu~")); +} diff --git a/src/iemlib1/sigsin_phase.c b/src/iemlib1/sigsin_phase.c new file mode 100644 index 0000000..0594962 --- /dev/null +++ b/src/iemlib1/sigsin_phase.c @@ -0,0 +1,129 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + + +/* --- sin_phase~ - output the phase-difference between 2 sinewaves in samples (sig) ---- */ + +typedef struct sigsin_phase +{ + t_object x_obj; + float x_prev1; + float x_prev2; + float x_cur_out; + int x_counter1; + int x_counter2; + int x_state1; + int x_state2; + float x_msi; +} t_sigsin_phase; + +t_class *sigsin_phase_class; + +static t_int *sigsin_phase_perform(t_int *w) +{ + float *in1 = (float *)(w[1]); + float *in2 = (float *)(w[2]); + float *out = (float *)(w[3]); + t_sigsin_phase *x = (t_sigsin_phase *)(w[4]); + int i, n = (t_int)(w[5]); + float prev1=x->x_prev1; + float prev2=x->x_prev2; + float cur_out=x->x_cur_out; + int counter1=x->x_counter1; + int counter2=x->x_counter2; + int state1=x->x_state1; + int state2=x->x_state2; + + for(i=0; i<n; i++) + { + if((in1[i] >= 0.0f) && (prev1 < 0.0f)) + { + state1 = 1; + counter1 = 0; + } + else if((in1[i] < 0.0f) && (prev1 >= 0.0f)) + { + state2 = 1; + counter2 = 0; + } + + if((in2[i] >= 0.0f) && (prev2 < 0.0f)) + { + state1 = 0; + cur_out = (float)(counter1); + counter1 = 0; + } + else if((in2[i] < 0.0f) && (prev2 >= 0.0f)) + { + state2 = 0; + cur_out = (float)(counter2); + counter2 = 0; + } + + if(state1) + counter1++; + if(state2) + counter2++; + + prev1 = in1[i]; + prev2 = in2[i]; + out[i] = cur_out; + } + + x->x_prev1 = prev1; + x->x_prev2 = prev2; + x->x_cur_out = cur_out; + x->x_counter1 = counter1; + x->x_counter2 = counter2; + x->x_state1 = state1; + x->x_state2 = state2; + + return(w+6); +} + +static void sigsin_phase_dsp(t_sigsin_phase *x, t_signal **sp) +{ + dsp_add(sigsin_phase_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, sp[0]->s_n); +} + +static void *sigsin_phase_new(void) +{ + t_sigsin_phase *x = (t_sigsin_phase *)pd_new(sigsin_phase_class); + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal); + outlet_new(&x->x_obj, &s_signal); + + x->x_prev1 = 0.0f; + x->x_prev2 = 0.0f; + x->x_cur_out = 0.0f; + x->x_counter1 = 0; + x->x_counter2 = 0; + x->x_state1 = 0; + x->x_state2 = 0; + x->x_msi = 0; + + return (x); +} + +void sigsin_phase_setup(void) +{ + sigsin_phase_class = class_new(gensym("sin_phase~"), (t_newmethod)sigsin_phase_new, + 0, sizeof(t_sigsin_phase), 0, 0); + CLASS_MAINSIGNALIN(sigsin_phase_class, t_sigsin_phase, x_msi); + class_addmethod(sigsin_phase_class, (t_method)sigsin_phase_dsp, gensym("dsp"), 0); + class_sethelpsymbol(sigsin_phase_class, gensym("iemhelp/help-sin_phase~")); +} diff --git a/src/iemlib1/sigvcf_filter.c b/src/iemlib1/sigvcf_filter.c new file mode 100644 index 0000000..ec14306 --- /dev/null +++ b/src/iemlib1/sigvcf_filter.c @@ -0,0 +1,334 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ---------- vcf_filter~ - slow dynamic vcf_filter 1. and 2. order ----------- */ + +typedef struct sigvcf_filter +{ + t_object x_obj; + float x_wn1; + float x_wn2; + float x_msi; + char x_filtname[6]; +} t_sigvcf_filter; + +t_class *sigvcf_filter_class; + +static t_int *sigvcf_filter_perform_snafu(t_int *w) +{ + float *in = (float *)(w[1]); + float *out = (float *)(w[4]); + int n = (t_int)(w[6]); + + while(n--) + *out++ = *in++; + return(w+7); +} + +/* +lp2 + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*(wn0 + 2.0f*wn1 + wn2); + wn2 = wn1; + wn1 = wn0; + +bp2 + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*al*(wn0 - wn2); + wn2 = wn1; + wn1 = wn0; + +rbp2 + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*l*(wn0 - wn2); + wn2 = wn1; + wn1 = wn0; + +hp2 + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*(wn0 - 2.0f*wn1 + wn2); + wn2 = wn1; + wn1 = wn0; + +*/ + +static t_int *sigvcf_filter_perform_lp2(t_int *w) +{ + float *in = (float *)(w[1]); + float *lp = (float *)(w[2]); + float *q = (float *)(w[3]); + float *out = (float *)(w[4]); + t_sigvcf_filter *x = (t_sigvcf_filter *)(w[5]); + int i, n = (t_int)(w[6]); + float wn0, wn1=x->x_wn1, wn2=x->x_wn2; + float l, al, l2, rcp; + + for(i=0; i<n; i+=4) + { + l = lp[i]; + if(q[i] < 0.000001) + al = 1000000.0*l; + else if(q[i] > 1000000.0) + al = 0.000001*l; + else + al = l/q[i]; + l2 = l*l + 1.0f; + rcp = 1.0f/(al + l2); + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*(wn0 + 2.0f*wn1 + wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*(wn0 + 2.0f*wn1 + wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*(wn0 + 2.0f*wn1 + wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*(wn0 + 2.0f*wn1 + wn2); + wn2 = wn1; + wn1 = wn0; + } + /* NAN protect */ + if(PD_BADFLOAT(wn2)) + wn2 = 0.0f; + if(PD_BADFLOAT(wn1)) + wn1 = 0.0f; + + x->x_wn1 = wn1; + x->x_wn2 = wn2; + return(w+7); +} + +static t_int *sigvcf_filter_perform_bp2(t_int *w) +{ + float *in = (float *)(w[1]); + float *lp = (float *)(w[2]); + float *q = (float *)(w[3]); + float *out = (float *)(w[4]); + t_sigvcf_filter *x = (t_sigvcf_filter *)(w[5]); + int i, n = (t_int)(w[6]); + float wn0, wn1=x->x_wn1, wn2=x->x_wn2; + float l, al, l2, rcp; + + for(i=0; i<n; i+=4) + { + l = lp[i]; + if(q[i] < 0.000001) + al = 1000000.0*l; + else if(q[i] > 1000000.0) + al = 0.000001*l; + else + al = l/q[i]; + l2 = l*l + 1.0f; + rcp = 1.0f/(al + l2); + + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*al*(wn0 - wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*al*(wn0 - wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*al*(wn0 - wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*al*(wn0 - wn2); + wn2 = wn1; + wn1 = wn0; + } + /* NAN protect */ + if(PD_BADFLOAT(wn2)) + wn2 = 0.0f; + if(PD_BADFLOAT(wn1)) + wn1 = 0.0f; + + x->x_wn1 = wn1; + x->x_wn2 = wn2; + return(w+7); +} + +static t_int *sigvcf_filter_perform_rbp2(t_int *w) +{ + float *in = (float *)(w[1]); + float *lp = (float *)(w[2]); + float *q = (float *)(w[3]); + float *out = (float *)(w[4]); + t_sigvcf_filter *x = (t_sigvcf_filter *)(w[5]); + int i, n = (t_int)(w[6]); + float wn0, wn1=x->x_wn1, wn2=x->x_wn2; + float al, l, l2, rcp; + + for(i=0; i<n; i+=4) + { + l = lp[i]; + if(q[i] < 0.000001) + al = 1000000.0*l; + else if(q[i] > 1000000.0) + al = 0.000001*l; + else + al = l/q[i]; + l2 = l*l + 1.0f; + rcp = 1.0f/(al + l2); + + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*l*(wn0 - wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*l*(wn0 - wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*l*(wn0 - wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = rcp*l*(wn0 - wn2); + wn2 = wn1; + wn1 = wn0; + } + /* NAN protect */ + if(PD_BADFLOAT(wn2)) + wn2 = 0.0f; + if(PD_BADFLOAT(wn1)) + wn1 = 0.0f; + + x->x_wn1 = wn1; + x->x_wn2 = wn2; + return(w+7); +} + +static t_int *sigvcf_filter_perform_hp2(t_int *w) +{ + float *in = (float *)(w[1]); + float *lp = (float *)(w[2]); + float *q = (float *)(w[3]); + float *out = (float *)(w[4]); + t_sigvcf_filter *x = (t_sigvcf_filter *)(w[5]); + int i, n = (t_int)(w[6]); + float wn0, wn1=x->x_wn1, wn2=x->x_wn2; + float l, al, l2, rcp, forw; + + for(i=0; i<n; i+=4) + { + l = lp[i]; + if(q[i] < 0.000001) + al = 1000000.0*l; + else if(q[i] > 1000000.0) + al = 0.000001*l; + else + al = l/q[i]; + l2 = l*l + 1.0f; + rcp = 1.0f/(al + l2); + forw = rcp * (l2 - 1.0f); + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = forw*(wn0 - 2.0f*wn1 + wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = forw*(wn0 - 2.0f*wn1 + wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = forw*(wn0 - 2.0f*wn1 + wn2); + wn2 = wn1; + wn1 = wn0; + + wn0 = *in++ - rcp*(2.0f*(2.0f - l2)*wn1 + (l2 - al)*wn2); + *out++ = forw*(wn0 - 2.0f*wn1 + wn2); + wn2 = wn1; + wn1 = wn0; + } + /* NAN protect */ + if(PD_BADFLOAT(wn2)) + wn2 = 0.0f; + if(PD_BADFLOAT(wn1)) + wn1 = 0.0f; + + x->x_wn1 = wn1; + x->x_wn2 = wn2; + return(w+7); +} + +static void sigvcf_filter_dsp(t_sigvcf_filter *x, t_signal **sp) +{ + if(!strcmp(x->x_filtname,"bp2")) + dsp_add(sigvcf_filter_perform_bp2, 6, sp[0]->s_vec, sp[1]->s_vec, + sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n); + else if(!strcmp(x->x_filtname,"rbp2")) + dsp_add(sigvcf_filter_perform_rbp2, 6, sp[0]->s_vec, sp[1]->s_vec, + sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n); + else if(!strcmp(x->x_filtname,"lp2")) + dsp_add(sigvcf_filter_perform_lp2, 6, sp[0]->s_vec, sp[1]->s_vec, + sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n); + else if(!strcmp(x->x_filtname,"hp2")) + dsp_add(sigvcf_filter_perform_hp2, 6, sp[0]->s_vec, sp[1]->s_vec, + sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n); + else + { + dsp_add(sigvcf_filter_perform_snafu, 6, sp[0]->s_vec, sp[1]->s_vec, + sp[2]->s_vec, sp[3]->s_vec, x, sp[0]->s_n); + post("vcf_filter~-Error: 1. initial-arguments: <sym> kind: lp2, bp2, rbp2, hp2!"); + } +} + +static void *sigvcf_filter_new(t_symbol *filt_typ) +{ + t_sigvcf_filter *x = (t_sigvcf_filter *)pd_new(sigvcf_filter_class); + char *c; + + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_signal, &s_signal); + outlet_new(&x->x_obj, &s_signal); + x->x_msi = 0; + x->x_wn1 = 0.0; + x->x_wn2 = 0.0; + c = (char *)filt_typ->s_name; + c[5] = 0; + strcpy(x->x_filtname, c); + return(x); +} + +void sigvcf_filter_setup(void) +{ + sigvcf_filter_class = class_new(gensym("vcf_filter~"), (t_newmethod)sigvcf_filter_new, + 0, sizeof(t_sigvcf_filter), 0, A_DEFSYM, 0); + CLASS_MAINSIGNALIN(sigvcf_filter_class, t_sigvcf_filter, x_msi); + class_addmethod(sigvcf_filter_class, (t_method)sigvcf_filter_dsp, gensym("dsp"), 0); + class_sethelpsymbol(sigvcf_filter_class, gensym("iemhelp/help-vcf_filter~")); +} diff --git a/src/iemlib1/soundfile_info.c b/src/iemlib1/soundfile_info.c new file mode 100644 index 0000000..f7cbf6b --- /dev/null +++ b/src/iemlib1/soundfile_info.c @@ -0,0 +1,261 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +#define SFI_HEADER_SAMPLERATE 0 +#define SFI_HEADER_FILENAME 1 +#define SFI_HEADER_MULTICHANNEL_FILE_LENGTH 2 +#define SFI_HEADER_HEADERBYTES 3 +#define SFI_HEADER_CHANNELS 4 +#define SFI_HEADER_BYTES_PER_SAMPLE 5 +#define SFI_HEADER_ENDINESS 6 + +#define SFI_HEADER_SIZE 7 + + + +/* -------------------- soundfile_info ------------------------------- */ + +static t_class *soundfile_info_class; + +typedef struct _soundfile_info +{ + t_object x_obj; + long *x_begmem; + int x_size; + t_atom x_atheader[SFI_HEADER_SIZE]; + t_canvas *x_canvas; + void *x_list_out; +} t_soundfile_info; + +static short soundfile_info_str2short(char *cvec) +{ + short s=0; + unsigned char *uc=(unsigned char *)cvec; + + s += (short)(*uc); + s += (short)(*(uc+1)*256); + return(s); +} + +static long soundfile_info_str2long(char *cvec) +{ + long l=0; + unsigned char *uc=(unsigned char *)cvec; + + l += (long)(*uc); + l += (long)(*(uc+1)*256); + l += (long)(*(uc+2)*65536); + l += (long)(*(uc+3)*16777216); + return(l); +} + +static void soundfile_info_read(t_soundfile_info *x, t_symbol *filename) +{ + char completefilename[400]; + int i, n, n2, n4, filesize, read_chars, header_size=0, ch, bps, sr; + FILE *fh; + t_atom *at; + char *cvec; + long ll; + short ss; + + if(filename->s_name[0] == '/')/*make complete path + filename*/ + { + strcpy(completefilename, filename->s_name); + } + else if(((filename->s_name[0] >= 'A')&&(filename->s_name[0] <= 'Z')|| + (filename->s_name[0] >= 'a')&&(filename->s_name[0] <= 'z'))&& + (filename->s_name[1] == ':')&&(filename->s_name[2] == '/')) + { + strcpy(completefilename, filename->s_name); + } + else + { + strcpy(completefilename, canvas_getdir(x->x_canvas)->s_name); + strcat(completefilename, "/"); + strcat(completefilename, filename->s_name); + } + + fh = fopen(completefilename,"rb"); + if(!fh) + { + post("soundfile_info_read: cannot open %s !!\n", completefilename); + } + else + { + n = x->x_size; + n2 = sizeof(short) * x->x_size; + n4 = sizeof(long) * x->x_size; + fseek(fh, 0, SEEK_END); + filesize = ftell(fh); + fseek(fh,0,SEEK_SET); + read_chars = (int)fread(x->x_begmem, sizeof(char), n4, fh) /2; + fclose(fh); +// post("read chars = %d", read_chars); + cvec = (char *)x->x_begmem; + if(read_chars > 4) + { + if(strncmp(cvec, "RIFF", 4)) + { + post("soundfile_info_read-error: %s is no RIFF-WAVE-file", completefilename); + goto soundfile_info_end; + } + header_size += 8; + cvec += 8; + if(strncmp(cvec, "WAVE", 4)) + { + post("soundfile_info_read-error: %s is no RIFF-WAVE-file", completefilename); + goto soundfile_info_end; + } + header_size += 4; + cvec += 4; + + for(i=header_size/2; i<read_chars; i++) + { + if(!strncmp(cvec, "fmt ", 4)) + goto soundfile_info_fmt; + header_size += 2; + cvec += 2; + } + post("soundfile_info_read-error: %s has at begin no format-chunk", completefilename); + goto soundfile_info_end; + +soundfile_info_fmt: + header_size += 4; + cvec += 4; + ll = soundfile_info_str2long(cvec); + if(ll != 16) + { + post("soundfile_info_read-error: %s has a format-chunk not equal to 16", completefilename); + goto soundfile_info_end; + } + header_size += 4; + cvec += 4; + ss = soundfile_info_str2short(cvec); + /* format */ + if(ss != 1) /* PCM = 1 */ + { + post("soundfile_info_read-error: %s is not PCM-format coded", completefilename); + goto soundfile_info_end; + } + header_size += 2; + cvec += 2; + ss = soundfile_info_str2short(cvec); + /* channels */ + if((ss < 1) || (ss > 100)) + { + post("soundfile_info_read-error: %s has no common channel-number", completefilename); + goto soundfile_info_end; + } + SETFLOAT(x->x_atheader+SFI_HEADER_CHANNELS, (float)ss); + ch = ss; + header_size += 2; + cvec += 2; + ll = soundfile_info_str2long(cvec); + /* samplerate */ + if((ll > 400000) || (ll < 200)) + { + post("soundfile_info_read-error: %s has no common samplerate", completefilename); + goto soundfile_info_end; + } + SETFLOAT(x->x_atheader+SFI_HEADER_SAMPLERATE, (float)ll); + sr = ll; + header_size += 4; + cvec += 4; + + header_size += 4; /* bytes_per_sec */ + cvec += 4; + ss = soundfile_info_str2short(cvec); + + /* bytes_per_sample */ + if((ss < 1) || (ss > 100)) + { + post("soundfile_info_read-error: %s has no common number of bytes per sample", completefilename); + goto soundfile_info_end; + } + SETFLOAT(x->x_atheader+SFI_HEADER_BYTES_PER_SAMPLE, (float)(ss/ch)); + bps = ss; + header_size += 2; + cvec += 2; + + header_size += 2; /* bits_per_sample */ + cvec += 2; + + for(i=header_size/2; i<read_chars; i++) + { + if(!strncmp(cvec, "data", 4)) + goto soundfile_info_data; + header_size += 2; + cvec += 2; + } + post("soundfile_info_read-error: %s has at begin no data-chunk", completefilename); + goto soundfile_info_end; + +soundfile_info_data: + header_size += 8; + cvec += 8; + + SETFLOAT(x->x_atheader+SFI_HEADER_HEADERBYTES, (float)header_size); + + filesize -= header_size; + filesize /= bps; + SETFLOAT(x->x_atheader+SFI_HEADER_MULTICHANNEL_FILE_LENGTH, (float)filesize); + SETSYMBOL(x->x_atheader+SFI_HEADER_ENDINESS, gensym("l")); + SETSYMBOL(x->x_atheader+SFI_HEADER_FILENAME, gensym(completefilename)); + +/* post("ch = %d", ss); + post("sr = %d", ll); + post("bps = %d", ss/ch); + post("head = %d", header_size); + post("len = %d", filesize);*/ + + outlet_list(x->x_list_out, &s_list, SFI_HEADER_SIZE, x->x_atheader); + + +soundfile_info_end: + + ; + } + } +} + +static void soundfile_info_free(t_soundfile_info *x) +{ + freebytes(x->x_begmem, x->x_size * sizeof(long)); +} + +static void *soundfile_info_new(void) +{ + t_soundfile_info *x = (t_soundfile_info *)pd_new(soundfile_info_class); + + x->x_size = 10000; + x->x_begmem = (long *)getbytes(x->x_size * sizeof(long)); + x->x_list_out = outlet_new(&x->x_obj, &s_list); + x->x_canvas = canvas_getcurrent(); + return (x); +} + +/* ---------------- global setup function -------------------- */ + +void soundfile_info_setup(void) +{ + soundfile_info_class = class_new(gensym("soundfile_info"), (t_newmethod)soundfile_info_new, + (t_method)soundfile_info_free, sizeof(t_soundfile_info), 0, 0); + class_addmethod(soundfile_info_class, (t_method)soundfile_info_read, gensym("read"), A_SYMBOL, 0); + class_sethelpsymbol(soundfile_info_class, gensym("iemhelp/help-soundfile_info")); +} + diff --git a/src/iemlib1/split.c b/src/iemlib1/split.c new file mode 100644 index 0000000..0a3bcff --- /dev/null +++ b/src/iemlib1/split.c @@ -0,0 +1,54 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* --------------------------- split ----------------------------- */ + +typedef struct _split +{ + t_object x_obj; + t_outlet *x_out_less; + t_outlet *x_out_greater_equal; + float x_threshold; +} t_split; + +static t_class *split_class; + +static void split_float(t_split *x, t_float f) +{ + if(f < x->x_threshold) + outlet_float(x->x_out_less, f); + else + outlet_float(x->x_out_greater_equal, f); +} + +static void *split_new(t_floatarg f) +{ + t_split *x = (t_split *)pd_new(split_class); + floatinlet_new(&x->x_obj, &x->x_threshold); + x->x_out_less = outlet_new(&x->x_obj, &s_float); + x->x_out_greater_equal = outlet_new(&x->x_obj, &s_float); + x->x_threshold = f; + return (x); +} + +void split_setup(void) +{ + split_class = class_new(gensym("split"), (t_newmethod)split_new, 0, + sizeof(t_split), 0, A_DEFFLOAT, 0); + class_addfloat(split_class, split_float); + class_sethelpsymbol(split_class, gensym("iemhelp/help-split")); +}
\ No newline at end of file diff --git a/src/iemlib1/v2db.c b/src/iemlib1/v2db.c new file mode 100644 index 0000000..b3e342d --- /dev/null +++ b/src/iemlib1/v2db.c @@ -0,0 +1,45 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + +/* ---------------- v2db - value to dB converter. ----------------- */ + +static t_class *v2db_class; + +float v2db(float f) +{ + return (f <= 0 ? -199.9 : 8.6858896381*log(f)); +} + +static void v2db_float(t_object *x, t_float f) +{ + outlet_float(x->ob_outlet, v2db(f)); +} + +static void *v2db_new(void) +{ + t_object *x = (t_object *)pd_new(v2db_class); + outlet_new(x, &s_float); + return (x); +} + +void v2db_setup(void) +{ + v2db_class = class_new(gensym("v2db"), v2db_new, 0, + sizeof(t_object), 0, 0); + class_addfloat(v2db_class, (t_method)v2db_float); + class_sethelpsymbol(v2db_class, gensym("iemhelp/help-v2db")); +} diff --git a/src/iemlib2/add2_comma.c b/src/iemlib2/add2_comma.c new file mode 100644 index 0000000..62ee45f --- /dev/null +++ b/src/iemlib2/add2_comma.c @@ -0,0 +1,123 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ add2_comma ---------------------------- */ +static t_class *add2_comma_class; + +typedef struct _add2_comma +{ + t_object x_obj; + int x_size; + t_atom *x_at; + t_symbol *x_sym; + t_atomtype x_type; +} t_add2_comma; + +static void add2_comma_bang(t_add2_comma *x) +{ + SETCOMMA(x->x_at); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, x->x_at); +} + +static void add2_comma_float(t_add2_comma *x, t_float f) +{ + SETCOMMA(x->x_at); + SETFLOAT(x->x_at+1, f); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, 2, x->x_at); +} + +static void add2_comma_symbol(t_add2_comma *x, t_symbol *s) +{ + SETCOMMA(x->x_at); + SETSYMBOL(x->x_at+1, s); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, 2, x->x_at); +} + +/*static void add2_comma_pointer(t_add2_comma *x, t_gpointer *gp) +{ + if(!x->x_at) + { + x->x_n = 1; + x->x_at = (t_atom *)getbytes(sizeof(t_atom)); + } + x->x_ac = 1; + SETPOINTER(x->x_at, gp); + x->x_sym = &s_pointer; + outlet_pointer(x->x_obj.ob_outlet, gp); +}*/ + +static void add2_comma_list(t_add2_comma *x, t_symbol *s, int ac, t_atom *av) +{ + int i; + + if((ac+1) > x->x_size) + { + x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+2)*sizeof(t_atom)); + x->x_size = ac+2; + } + SETCOMMA(x->x_at); + for(i=1; i<=ac; i++) + x->x_at[i] = av[i-1]; + outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+1, x->x_at); +} + +static void add2_comma_anything(t_add2_comma *x, t_symbol *s, int ac, t_atom *av) +{ + int i; + + if((ac+2) > x->x_size) + { + x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+3)*sizeof(t_atom)); + x->x_size = ac+3; + } + SETCOMMA(x->x_at); + SETSYMBOL(x->x_at+1, s); + for(i=1; i<=ac; i++) + x->x_at[i+1] = av[i-1]; + outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+2, x->x_at); +} + +static void add2_comma_free(t_add2_comma *x) +{ + if(x->x_at) + freebytes(x->x_at, x->x_size * sizeof(t_atom)); +} + +static void *add2_comma_new(void) +{ + t_add2_comma *x = (t_add2_comma *)pd_new(add2_comma_class); + + x->x_size = 10; + x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom)); + x->x_sym = gensym("add2"); + outlet_new(&x->x_obj, &s_list); + return(x); +} + +void add2_comma_setup(void) +{ + add2_comma_class = class_new(gensym("add2_comma"), (t_newmethod)add2_comma_new, + (t_method)add2_comma_free, sizeof(t_add2_comma), 0, 0); + class_addbang(add2_comma_class, (t_method)add2_comma_bang); + class_addanything(add2_comma_class, add2_comma_anything); + class_addlist(add2_comma_class, add2_comma_list); + /*class_addpointer(add2_comma_class, add2_comma_pointer);*/ + class_addfloat(add2_comma_class, (t_method)add2_comma_float); + class_addsymbol(add2_comma_class, add2_comma_symbol); + class_sethelpsymbol(add2_comma_class, gensym("iemhelp/help-add2_comma")); +} + diff --git a/src/iemlib2/bpe.c b/src/iemlib2/bpe.c new file mode 100644 index 0000000..c011424 --- /dev/null +++ b/src/iemlib2/bpe.c @@ -0,0 +1,125 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ bpe ---------------------------- */ +static t_class *bpe_class; + +typedef struct _bpe +{ + t_object x_obj; + t_clock *x_clock; + int x_maxnum; + int x_curnum; + int x_curindex; + t_atom *x_beg; + void *x_out_val; + void *x_out_time; + void *x_out_finished; +} t_bpe; + +static void bpe_stop(t_bpe *x) +{ + clock_unset(x->x_clock); +} + +static void bpe_tick(t_bpe *x) +{ + t_atom *vec = x->x_beg; + float val, time; + + if(x->x_curindex >= x->x_curnum) + { + bpe_stop(x); + outlet_bang(x->x_out_finished); + } + else + { + vec += x->x_curindex; + val = atom_getfloat(vec++); + time = atom_getfloat(vec); + outlet_float(x->x_out_time, time); + outlet_float(x->x_out_val, val); + x->x_curindex += 2; + clock_delay(x->x_clock, time); + } +} + +static void bpe_bang(t_bpe *x) +{ + t_atom *vec = x->x_beg; + float val, time; + + if(x->x_curnum) + { + x->x_curindex = 2; + val = atom_getfloat(vec++); + time = atom_getfloat(vec); + outlet_float(x->x_out_time, time); + outlet_float(x->x_out_val, val); + clock_delay(x->x_clock, time); + } +} + +static void bpe_list(t_bpe *x, t_symbol *s, int ac, t_atom *av) +{ + int n = ac & 0xfffffffe, i; + t_atom *vec = x->x_beg; + if(n > x->x_maxnum) + { + freebytes(x->x_beg, x->x_maxnum*sizeof(t_atom)); + x->x_maxnum = 2 + n; + x->x_beg = (t_atom *)getbytes(x->x_maxnum*sizeof(t_atom)); + vec = x->x_beg; + } + x->x_curnum = n; + for(i=0; i<n; i++) + { + *vec++ = *av++; + } +} + +static void bpe_free(t_bpe *x) +{ + freebytes(x->x_beg, x->x_maxnum*sizeof(t_atom)); + clock_free(x->x_clock); +} + +static void *bpe_new(void) +{ + t_bpe *x = (t_bpe *)pd_new(bpe_class); + + x->x_curindex = 0; + x->x_maxnum = 20; + x->x_curnum = 0; + x->x_beg = (t_atom *)getbytes(x->x_maxnum*sizeof(t_atom)); + x->x_clock = clock_new(x, (t_method)bpe_tick); + x->x_out_val = outlet_new(&x->x_obj, &s_float); + x->x_out_time = outlet_new(&x->x_obj, &s_float); + x->x_out_finished = outlet_new(&x->x_obj, &s_bang); + return (x); +} + +void bpe_setup(void) +{ + bpe_class = class_new(gensym("bpe"), (t_newmethod)bpe_new, + (t_method)bpe_free, sizeof(t_bpe), 0, 0); + class_addmethod(bpe_class, (t_method)bpe_stop, gensym("stop"), 0); + class_addbang(bpe_class, bpe_bang); + class_addlist(bpe_class, (t_method)bpe_list); + class_sethelpsymbol(bpe_class, gensym("iemhelp/help-bpe")); +} + diff --git a/src/iemlib2/dollarg.c b/src/iemlib2/dollarg.c new file mode 100644 index 0000000..253c0ff --- /dev/null +++ b/src/iemlib2/dollarg.c @@ -0,0 +1,113 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "g_canvas.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +EXTERN void canvas_getargs(int *argcp, t_atom **argvp); + +/* ------------------------ dollarg ---------------------------- */ + +static t_class *dollarg_class; + +typedef struct _dollarg +{ + t_object x_obj; + void *x_outlet_ac; + t_atom *x_at; + int x_ac; +} t_dollarg; + +static void dollarg_float(t_dollarg *x, t_floatarg f) +{ + int i = (int)f; + + if(!i) + { + outlet_float(x->x_outlet_ac, x->x_ac); + if(x->x_ac) + outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at); + } + else if(i > 0) + { + if(i <= x->x_ac) + { + outlet_float(x->x_outlet_ac, i); + if(IS_A_FLOAT(x->x_at, i-1)) + outlet_float(x->x_obj.ob_outlet, atom_getfloatarg(i-1, x->x_ac, x->x_at)); + else if(IS_A_SYMBOL(x->x_at, i-1)) + outlet_symbol(x->x_obj.ob_outlet, atom_getsymbolarg(i-1, x->x_ac, x->x_at)); + } + else + outlet_float(x->x_outlet_ac, 0); + } + else + { + int j = x->x_ac + i; + + if(j >= 0) + { + outlet_float(x->x_outlet_ac, j+1); + if(IS_A_FLOAT(x->x_at, j)) + outlet_float(x->x_obj.ob_outlet, atom_getfloatarg(j, x->x_ac, x->x_at)); + else if(IS_A_SYMBOL(x->x_at, j)) + outlet_symbol(x->x_obj.ob_outlet, atom_getsymbolarg(j, x->x_ac, x->x_at)); + } + else + outlet_float(x->x_outlet_ac, 0); + } +} + +static void dollarg_bang(t_dollarg *x) +{ + dollarg_float(x, 0.0f); +} + +static void dollarg_free(t_dollarg *x) +{ + if(x->x_ac) + freebytes(x->x_at, x->x_ac * sizeof(t_atom)); +} + +static void *dollarg_new(void) +{ + t_dollarg *x = (t_dollarg *)pd_new(dollarg_class); + t_glist *glist=(t_glist *)canvas_getcurrent(); + t_canvas *canvas=glist_getcanvas(glist); + int pargc; + t_atom *pargv, *at; + + canvas_setcurrent(canvas); + canvas_getargs(&pargc, &pargv); + canvas_unsetcurrent(canvas); + x->x_at = (t_atom *)getbytes(pargc*sizeof(t_atom)); + x->x_ac = pargc; + at = x->x_at; + while(pargc--) + *at++ = *pargv++; + outlet_new(&x->x_obj, &s_list); + x->x_outlet_ac = outlet_new(&x->x_obj, &s_float); + return (x); +} + +void dollarg_setup(void) +{ + dollarg_class = class_new(gensym("dollarg"), (t_newmethod)dollarg_new, + (t_method)dollarg_free, sizeof(t_dollarg), 0, 0); + class_addcreator((t_newmethod)dollarg_new, gensym("$n"), 0); + class_addbang(dollarg_class, (t_method)dollarg_bang); + class_addfloat(dollarg_class, (t_method)dollarg_float); + class_sethelpsymbol(dollarg_class, gensym("iemhelp/help-dollarg")); +} diff --git a/src/iemlib2/exp_inc.c b/src/iemlib2/exp_inc.c new file mode 100644 index 0000000..065937f --- /dev/null +++ b/src/iemlib2/exp_inc.c @@ -0,0 +1,138 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ exp_inc ---------------------------- */ +static t_class *exp_inc_class; + +typedef struct _exp_inc +{ + t_object x_obj; + float x_initialval; + float x_currentval; + float x_mulfactor; + float x_addincrement; + float x_min; + float x_max; +} t_exp_inc; + +static void exp_inc_bang(t_exp_inc *x) +{ + outlet_float(x->x_obj.ob_outlet, x->x_currentval); + x->x_currentval = x->x_currentval * x->x_mulfactor + x->x_addincrement; + if(x->x_currentval < x->x_min) + x->x_currentval = x->x_min; + if(x->x_currentval > x->x_max) + x->x_currentval = x->x_max; +} + +static void exp_inc_reset(t_exp_inc *x) +{ + x->x_currentval = x->x_initialval; + if(x->x_currentval < x->x_min) + x->x_currentval = x->x_min; + if(x->x_currentval > x->x_max) + x->x_currentval = x->x_max; +} + +static void exp_inc_float(t_exp_inc *x, t_floatarg f) +{ + x->x_initialval = (float)f; + x->x_currentval = x->x_initialval; + if(x->x_currentval < x->x_min) + x->x_currentval = x->x_min; + if(x->x_currentval > x->x_max) + x->x_currentval = x->x_max; +} + +static void exp_inc_ft1(t_exp_inc *x, t_floatarg f) +{ + x->x_mulfactor = 1.0 + 0.01*(float)f; +} + +static void exp_inc_ft2(t_exp_inc *x, t_floatarg f) +{ + x->x_addincrement = (float)f; +} + +static void exp_inc_ft3(t_exp_inc *x, t_floatarg f) +{ + x->x_min = (float)f; + if(x->x_currentval < x->x_min) + x->x_currentval = x->x_min; +} + +static void exp_inc_ft4(t_exp_inc *x, t_floatarg f) +{ + x->x_max = (float)f; + if(x->x_currentval > x->x_max) + x->x_currentval = x->x_max; +} + +static void exp_inc_list(t_exp_inc *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac == 5)&&IS_A_FLOAT(av,0)&&IS_A_FLOAT(av,1)&&IS_A_FLOAT(av,2) + &&IS_A_FLOAT(av,3)&&IS_A_FLOAT(av,4)) + { + exp_inc_ft4(x, atom_getfloatarg(4, ac, av)); + exp_inc_ft3(x, atom_getfloatarg(3, ac, av)); + exp_inc_ft2(x, atom_getfloatarg(2, ac, av)); + exp_inc_ft1(x, atom_getfloatarg(1, ac, av)); + exp_inc_float(x, atom_getfloatarg(0, ac, av)); + } +} + +static void *exp_inc_new(t_symbol *s, int ac, t_atom *av) +{ + t_exp_inc *x = (t_exp_inc *)pd_new(exp_inc_class); + + x->x_currentval = 10.0; + x->x_mulfactor = 1.0; + x->x_addincrement = 0.0; + x->x_min = 0.0; + x->x_max = 1000.0; + if((ac == 5)&&IS_A_FLOAT(av,0)&&IS_A_FLOAT(av,1)&&IS_A_FLOAT(av,2) + &&IS_A_FLOAT(av,3)&&IS_A_FLOAT(av,4)) + { + exp_inc_ft4(x, atom_getfloatarg(4, ac, av)); + exp_inc_ft3(x, atom_getfloatarg(3, ac, av)); + exp_inc_ft2(x, atom_getfloatarg(2, ac, av)); + exp_inc_ft1(x, atom_getfloatarg(1, ac, av)); + exp_inc_float(x, atom_getfloatarg(0, ac, av)); + } + outlet_new(&x->x_obj, &s_float); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft2")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft3")); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft4")); + return (x); +} + +void exp_inc_setup(void) +{ + exp_inc_class = class_new(gensym("exp_inc"), (t_newmethod)exp_inc_new, + 0, sizeof(t_exp_inc), 0, A_GIMME, 0); + class_addbang(exp_inc_class, exp_inc_bang); + class_addlist(exp_inc_class, (t_method)exp_inc_list); + class_addmethod(exp_inc_class, (t_method)exp_inc_reset, gensym("reset"), 0); + class_addfloat(exp_inc_class, (t_method)exp_inc_float); + class_addmethod(exp_inc_class, (t_method)exp_inc_ft1, gensym("ft1"), A_FLOAT, 0); + class_addmethod(exp_inc_class, (t_method)exp_inc_ft2, gensym("ft2"), A_FLOAT, 0); + class_addmethod(exp_inc_class, (t_method)exp_inc_ft3, gensym("ft3"), A_FLOAT, 0); + class_addmethod(exp_inc_class, (t_method)exp_inc_ft4, gensym("ft4"), A_FLOAT, 0); + class_sethelpsymbol(exp_inc_class, gensym("iemhelp/help-exp_inc")); +} + diff --git a/src/iemlib2/float24.c b/src/iemlib2/float24.c new file mode 100644 index 0000000..3923482 --- /dev/null +++ b/src/iemlib2/float24.c @@ -0,0 +1,83 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ---- float24 - float=int or list of float=symbol concaternat to int=float ----- */ + +typedef struct _float24 +{ + t_object x_obj; + float x_arg; +} t_float24; + +static t_class *float24_class; + +static float float24_calc_sum(int argc, t_atom *argv) +{ + int i; + char str[1000], buf[100]; + + str[0] = 0; + for(i=0; i<argc; i++) + { + if(IS_A_FLOAT(argv, i)) + { + sprintf(buf, "%g", (float)atom_getfloatarg(i, argc, argv)); + strcat(str, buf); + } + } + return(atof(str)); +} + +static void float24_bang(t_float24 *x) +{ + outlet_float(x->x_obj.ob_outlet, x->x_arg); +} + +static void float24_float(t_float24 *x, t_float f) +{ + x->x_arg = f; + float24_bang(x); +} + +static void float24_list(t_float24 *x, t_symbol *s, int argc, t_atom *argv) +{ + if(argc > 0) + x->x_arg = float24_calc_sum(argc, argv); + float24_bang(x); +} + +static void *float24_new(t_symbol *s, int argc, t_atom *argv) +{ + t_float24 *x = (t_float24 *)pd_new(float24_class); + + outlet_new(&x->x_obj, &s_float); + x->x_arg = 0.0f; + if(argc > 0) + x->x_arg = float24_calc_sum(argc, argv); + return (x); +} + +void float24_setup(void) +{ + float24_class = class_new(gensym("float24"), (t_newmethod)float24_new, 0, + sizeof(t_float24), 0, A_GIMME, 0); + class_addcreator((t_newmethod)float24_new, gensym("f24"), A_GIMME, 0); + class_addbang(float24_class, (t_method)float24_bang); + class_addfloat(float24_class, (t_method)float24_float); + class_addlist(float24_class, (t_method)float24_list); + class_sethelpsymbol(float24_class, gensym("iemhelp/help-float24")); +} diff --git a/src/iemlib2/iem_anything_kernel.c b/src/iemlib2/iem_anything_kernel.c new file mode 100644 index 0000000..11fee81 --- /dev/null +++ b/src/iemlib2/iem_anything_kernel.c @@ -0,0 +1,148 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "g_canvas.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +EXTERN void canvas_getargs(int *argcp, t_atom **argvp); + +/* ------------------------ iem_anything_kernel ---------------------------- */ +static t_class *iem_anything_kernel_class; + +typedef struct _iem_anything_kernel +{ + t_object x_obj; + int x_inlet_select; + int x_size; + int x_ac; + t_atom *x_at; + t_symbol *x_sym; +} t_iem_anything_kernel; + +static void iem_anything_kernel_atcopy(t_atom *src, t_atom *dst, int n) +{ + while(n--) + *dst++ = *src++; +} + +static void iem_anything_kernel_inlet_select(t_iem_anything_kernel *x, t_floatarg in_sel_01) +{ + x->x_inlet_select = (int)in_sel_01; +} + +static void iem_anything_kernel_anything(t_iem_anything_kernel *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac == 0)&&(s == &s_bang)) + { + if(x->x_inlet_select) + { + x->x_ac = ac; + x->x_sym = s; + } + else + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at); + } + else + { + if(ac > x->x_size) + { + x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), ac*sizeof(t_atom)); + x->x_size = ac; + } + x->x_ac = ac; + x->x_sym = s; + iem_anything_kernel_atcopy(av, x->x_at, ac); + if(!x->x_inlet_select) + outlet_anything(x->x_obj.ob_outlet, s, ac, av); + } +} + +static void iem_anything_kernel_free(t_iem_anything_kernel *x) +{ + if(x->x_at) + freebytes(x->x_at, x->x_size * sizeof(t_atom)); +} + +static void *iem_anything_kernel_new(void) +{ + t_iem_anything_kernel *x = (t_iem_anything_kernel *)pd_new(iem_anything_kernel_class); + t_glist *glist = (t_glist *)canvas_getcurrent(); + t_canvas *canvas=glist_getcanvas(glist); + int ac=0; + t_atom *av; + + canvas_setcurrent(canvas); + canvas_getargs(&ac, &av); + canvas_unsetcurrent(canvas); + + if(!ac) + { + x->x_sym = &s_bang; + x->x_size = 10; + x->x_ac = 0; + x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom)); + } + else if(ac == 1) + { + x->x_size = 10; + x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom)); + if(IS_A_SYMBOL(av,0)) + { + x->x_sym = atom_getsymbol(av); + x->x_ac = 0; + } + else + { + x->x_sym = &s_list; + x->x_ac = 1; + x->x_at[0] = *av; + } + } + else /* ac > 1 */ + { + if(IS_A_SYMBOL(av,0)) + { + x->x_sym = atom_getsymbol(av++); + ac--; + } + else + x->x_sym = &s_list; + if(ac < 10) + x->x_size = 10; + else + x->x_size = ac; + x->x_ac = ac; + x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom)); + iem_anything_kernel_atcopy(av, x->x_at, ac); + } + x->x_inlet_select = 1; + outlet_new(&x->x_obj, &s_list); + return (x); +} + +void iem_anything_kernel_setup(void) +{ + char str[2]; + + str[0] = 1;/*inlet-sym = "\0x01"*/ + str[1] = 0; + iem_anything_kernel_class = class_new(gensym("iem_anything_kernel"), + (t_newmethod)iem_anything_kernel_new, (t_method)iem_anything_kernel_free, + sizeof(t_iem_anything_kernel), 0, 0); + class_addmethod(iem_anything_kernel_class, (t_method)iem_anything_kernel_inlet_select, gensym(str), A_FLOAT, 0); + class_addanything(iem_anything_kernel_class, iem_anything_kernel_anything); + class_sethelpsymbol(iem_anything_kernel_class, gensym("iemhelp/help-iem_anything")); +} + diff --git a/src/iemlib2/iem_append_kernel.c b/src/iemlib2/iem_append_kernel.c new file mode 100644 index 0000000..2c67872 --- /dev/null +++ b/src/iemlib2/iem_append_kernel.c @@ -0,0 +1,351 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "g_canvas.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +EXTERN void canvas_getargs(int *argcp, t_atom **argvp); + + +/* ------------------------ iem_append_kernel ---------------------------- */ +static t_class *iem_append_kernel_class; + +typedef struct _iem_append_kernel +{ + t_object x_obj; + int x_inlet_select; + int x_size12; + int x_size2; + int x_ac1; + int x_ac2; + t_atom *x_at12; + t_atom *x_at2; + t_symbol *x_sym1; + t_symbol *x_sym2; + t_atomtype x_type1; + t_atomtype x_type2; +} t_iem_append_kernel; + +static void iem_append_kernel_atcopy(t_atom *src, t_atom *dst, int n) +{ + while(n--) + *dst++ = *src++; +} + +static void iem_append_kernel_merge(t_iem_append_kernel *x, int off) +{ + if((x->x_ac1+x->x_ac2+1) > x->x_size12) + { + x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_ac1+x->x_ac2+1)*sizeof(t_atom)); + x->x_size12 = 2*(x->x_ac1+x->x_ac2+1); + } + if(off) + SETSYMBOL(x->x_at12 + x->x_ac1, x->x_sym2); + iem_append_kernel_atcopy(x->x_at2, x->x_at12 + x->x_ac1 + off, x->x_ac2); +} + +static void iem_append_kernel_out(t_iem_append_kernel *x) +{ + int off=0; + + if(x->x_type1 == A_GIMME) + { + if(x->x_type2 == A_COMMA) + off = 1; + else + off = 0; + iem_append_kernel_merge(x, off); + outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at12); + } + else if(x->x_type1 == A_COMMA) + { + if(x->x_type2 == A_COMMA) + off = 1; + else + off = 0; + iem_append_kernel_merge(x, off); + outlet_anything(x->x_obj.ob_outlet, x->x_sym1, x->x_ac1+x->x_ac2+off, x->x_at12); + } + else if(x->x_type1 == A_NULL)/*depends on 2.part*/ + { + iem_append_kernel_merge(x, 0); + if(x->x_type2 == A_GIMME) + outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac2, x->x_at12); + else if(x->x_type2 == A_COMMA) + outlet_anything(x->x_obj.ob_outlet, x->x_sym2, x->x_ac2, x->x_at12); + else if(x->x_type2 == A_FLOAT) + outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at12)); + else if(x->x_type2 == A_SYMBOL) + outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at12)); + else if(x->x_type2 == A_NULL) + outlet_bang(x->x_obj.ob_outlet); + else if(x->x_type2 == A_POINTER) + outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at12->a_w.w_gpointer); + } + else + { + if(x->x_type2 == A_COMMA) + off = 1; + else + off = 0; + iem_append_kernel_merge(x, off); + if(x->x_type2 == A_NULL) + { + if(x->x_type1 == A_FLOAT) + outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at12)); + else if(x->x_type1 == A_SYMBOL) + outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at12)); + else if(x->x_type1 == A_POINTER) + outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at12->a_w.w_gpointer); + } + else + outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at12); + } +} + +static void iem_append_kernel_inlet_select(t_iem_append_kernel *x, t_floatarg fin_sel_01) +{ + x->x_inlet_select = (int)fin_sel_01; +} + +static void iem_append_kernel_bang(t_iem_append_kernel *x) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac2 = 0; + x->x_type2 = A_NULL; + x->x_sym2 = &s_list; + } + else /* if 1st inlet */ + { + x->x_ac1 = 0; + x->x_type1 = A_NULL; + iem_append_kernel_out(x); + } +} + +static void iem_append_kernel_float(t_iem_append_kernel *x, t_float f) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac2 = 1; + x->x_type2 = A_FLOAT; + SETFLOAT(x->x_at2, f); + x->x_sym2 = &s_list; + } + else /* if 1st inlet */ + { + x->x_ac1 = 1; + x->x_type1 = A_FLOAT; + SETFLOAT(x->x_at12, f); + iem_append_kernel_out(x); + } +} + +static void iem_append_kernel_symbol(t_iem_append_kernel *x, t_symbol *s) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac2 = 1; + x->x_type2 = A_SYMBOL; + SETSYMBOL(x->x_at2, s); + x->x_sym2 = &s_list; + } + else /* if 1st inlet */ + { + x->x_ac1 = 1; + x->x_type1 = A_SYMBOL; + SETSYMBOL(x->x_at12, s); + iem_append_kernel_out(x); + } +} + +static void iem_append_kernel_pointer(t_iem_append_kernel *x, t_gpointer *gp) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac2 = 1; + x->x_type2 = A_POINTER; + SETPOINTER(x->x_at2, gp); + x->x_sym2 = &s_list; + } + else /* if 1st inlet */ + { + x->x_ac1 = 1; + x->x_type1 = A_POINTER; + SETPOINTER(x->x_at12, gp); + iem_append_kernel_out(x); + } +} + +static void iem_append_kernel_list(t_iem_append_kernel *x, t_symbol *s, int ac, t_atom *av) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + if(ac > x->x_size2) + { + x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom)); + x->x_size2 = 2*ac; + } + x->x_ac2 = ac; + x->x_type2 = A_GIMME; + x->x_sym2 = &s_list; + iem_append_kernel_atcopy(av, x->x_at2, ac); + } + else /* if 1st inlet */ + { + if((x->x_size2+ac) > x->x_size12) + { + x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_size2+ac)*sizeof(t_atom)); + x->x_size12 = 2*(x->x_size2+ac); + } + x->x_ac1 = ac; + x->x_type1 = A_GIMME; + iem_append_kernel_atcopy(av, x->x_at12, ac); + x->x_sym1 = &s_list; + iem_append_kernel_out(x); + } +} + +static void iem_append_kernel_anything(t_iem_append_kernel *x, t_symbol *s, int ac, t_atom *av) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + if((ac+1) > x->x_size2) + { + x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom)); + x->x_size2 = 2*ac; + } + x->x_ac2 = ac; + x->x_type2 = A_COMMA; + x->x_sym2 = s; + iem_append_kernel_atcopy(av, x->x_at2, ac); + } + else /* if 1st inlet */ + { + if((x->x_size2+ac+1) > x->x_size12) + { + x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_size2+ac+1)*sizeof(t_atom)); + x->x_size12 = 2*(x->x_size2+ac+1); + } + x->x_ac1 = ac; + x->x_type1 = A_COMMA; + iem_append_kernel_atcopy(av, x->x_at12, ac); + x->x_sym1 = s; + iem_append_kernel_out(x); + } +} + +static void iem_append_kernel_free(t_iem_append_kernel *x) +{ + if(x->x_at12) + freebytes(x->x_at12, x->x_size12 * sizeof(t_atom)); + if(x->x_at2) + freebytes(x->x_at2, x->x_size2 * sizeof(t_atom)); +} + +static void *iem_append_kernel_new(void) +{ + t_iem_append_kernel *x = (t_iem_append_kernel *)pd_new(iem_append_kernel_class); + t_glist *glist = (t_glist *)canvas_getcurrent(); + t_canvas *canvas=glist_getcanvas(glist); + int ac=0; + t_atom *av; + + canvas_setcurrent(canvas); + canvas_getargs(&ac, &av); + canvas_unsetcurrent(canvas); + + x->x_type1 = A_NULL; + x->x_sym1 = &s_list; + x->x_size2 = 10; + if(ac > 5) + x->x_size2 = 2*ac; + x->x_at2 = (t_atom *)getbytes(x->x_size2 * sizeof(t_atom)); + x->x_size12 = x->x_size2 + 10; + x->x_at12 = (t_atom *)getbytes(x->x_size12 * sizeof(t_atom)); + x->x_ac1 = 0; + x->x_inlet_select = 1; + if(ac <= 0) + { + x->x_type2 = A_NULL; + x->x_ac2 = 0; + x->x_sym2 = &s_list; + } + else + { + if(IS_A_FLOAT(av, 0)) + { + if(ac == 1) + iem_append_kernel_float(x, atom_getfloat(av)); + else + iem_append_kernel_list(x, &s_list, ac, av); + } + else if(IS_A_SYMBOL(av, 0)) + { + t_symbol *xsym=atom_getsymbol(av); + + if(xsym == gensym("symbol")) + { + if(ac > 1) + iem_append_kernel_symbol(x, atom_getsymbol(av+1)); + else + iem_append_kernel_symbol(x, gensym("")); + } + else if(xsym == gensym("float")) + { + if(ac > 1) + { + if(IS_A_FLOAT(av, 1)) + iem_append_kernel_float(x, atom_getfloat(av+1)); + else + iem_append_kernel_float(x, 0.0f); + } + else + iem_append_kernel_float(x, 0.0f); + } + else if(xsym == gensym("list")) + { + iem_append_kernel_list(x, &s_list, ac-1, av+1); + } + else + { + iem_append_kernel_anything(x, xsym, ac-1, av+1); + } + } + } + outlet_new(&x->x_obj, &s_list); + return (x); +} + +void iem_append_kernel_setup(void) +{ + char str[2]; + + str[0] = 1; + str[1] = 0; + iem_append_kernel_class = class_new(gensym("iem_append_kernel"), + (t_newmethod)iem_append_kernel_new, (t_method)iem_append_kernel_free, + sizeof(t_iem_append_kernel), 0, 0); + class_addbang(iem_append_kernel_class, (t_method)iem_append_kernel_bang); + class_addpointer(iem_append_kernel_class, iem_append_kernel_pointer); + class_addfloat(iem_append_kernel_class, (t_method)iem_append_kernel_float); + class_addsymbol(iem_append_kernel_class, iem_append_kernel_symbol); + class_addlist(iem_append_kernel_class, iem_append_kernel_list); + class_addmethod(iem_append_kernel_class, (t_method)iem_append_kernel_inlet_select, gensym(str), A_FLOAT, 0); + class_addanything(iem_append_kernel_class, iem_append_kernel_anything); + class_sethelpsymbol(iem_append_kernel_class, gensym("iemhelp/help-merge_any")); +} diff --git a/src/iemlib2/iem_i_route.c b/src/iemlib2/iem_i_route.c new file mode 100644 index 0000000..48855e6 --- /dev/null +++ b/src/iemlib2/iem_i_route.c @@ -0,0 +1,111 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* -------------------------- iem_i_route ------------------------------ */ +/* routes a list beginning with a float to an outlet, which are defined by + first- , last- index and offset-index */ + +static t_class *iem_i_route_class; + +typedef struct _iem_i_route +{ + t_object x_obj; + int x_first_element; + int x_last_element; + t_outlet **x_out; +} t_iem_i_route; + +static void iem_i_route_list(t_iem_i_route *x, t_symbol *sel, int argc, t_atom *argv) +{ + t_outlet **out; + int first, last, i; + + if(!argc) + return; + i = (int)atom_getintarg(0, argc, argv); + first = x->x_first_element; + last = x->x_last_element; + out = x->x_out; + if((i >= first)&&(i <= last)) + { + out += i - first; + if(argc >= 3) + { + if(IS_A_FLOAT(argv,1)) + outlet_list(*out, &s_list, argc-1, argv+1); + else if(IS_A_SYMBOL(argv,1)) + outlet_anything(*out, atom_getsymbolarg(1, argc, argv), argc-2, argv+2); + } + else if(argc >= 2) + { + if(IS_A_FLOAT(argv,1)) + outlet_float(*out, (float)atom_getfloatarg(1, argc, argv)); + else if(IS_A_SYMBOL(argv,1)) + outlet_anything(*out, atom_getsymbolarg(1, argc, argv), 0, argv+2); + } + else + outlet_bang(*out); + } + else + { + out += last - first + 1; + outlet_list(*out, &s_list, argc, argv); + } +} + +static void iem_i_route_free(t_iem_i_route *x) +{ + freebytes(x->x_out, (x->x_last_element-x->x_first_element+2) * sizeof(t_outlet *)); +} + +static void *iem_i_route_new(t_symbol *s, int argc, t_atom *argv) +{ + int n, i; + t_outlet **out; + t_iem_i_route *x = (t_iem_i_route *)pd_new(iem_i_route_class); + + if((argc >= 2)&&IS_A_FLOAT(argv,0)&&IS_A_FLOAT(argv,1)) + { + x->x_first_element = (int)atom_getintarg(0, argc, argv); + x->x_last_element = (int)atom_getintarg(1, argc, argv); + if((argc >= 3)&&IS_A_FLOAT(argv,2)) + { + i = (int)atom_getintarg(2, argc, argv); + x->x_first_element += i; + x->x_last_element += i; + } + x->x_out = (t_outlet **)getbytes((x->x_last_element-x->x_first_element+2) * sizeof(t_outlet *)); + n = x->x_last_element - x->x_first_element + 2; + for(i=0, out=x->x_out; i<n; i++, out++) + *out = outlet_new(&x->x_obj, &s_list); + return (x); + } + else + { + post("iem_i_route-ERROR: needs 3 floats!!"); + return(0); + } +} + +void iem_i_route_setup(void) +{ + iem_i_route_class = class_new(gensym("iem_i_route"), (t_newmethod)iem_i_route_new, + (t_method)iem_i_route_free, sizeof(t_iem_i_route), 0, A_GIMME, 0); + class_addcreator((t_newmethod)iem_i_route_new, gensym("iiroute"), A_GIMME, 0); + class_addlist(iem_i_route_class, iem_i_route_list); + class_sethelpsymbol(iem_i_route_class, gensym("iemhelp/help-iem_i_route")); +} diff --git a/src/iemlib2/iem_pbank_csv.c b/src/iemlib2/iem_pbank_csv.c new file mode 100644 index 0000000..d426d2d --- /dev/null +++ b/src/iemlib2/iem_pbank_csv.c @@ -0,0 +1,801 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + + +/* -------------------- iem_pbank_csv ------------------------------- */ + +/* read and write method needs 2 symbols, + 1. symbol is a filename, + 2. symbol is a 3 character descriptor + + 1.char: 'b'...for blank as ITEM_SEPARATOR (" ") + 1.char: 'c'...for comma as ITEM_SEPARATOR (",") + 1.char: 's'...for semicolon as ITEM_SEPARATOR (";") + 1.char: 't'...for tabulator as ITEM_SEPARATOR (" " = 0x09) + + 2.char: 'b'...for blank,return as END_OF_LINE (" \n") + 2.char: 'r'...for return-only as END_OF_LINE ("\n") + 2.char: 's'...for semicolon,return as END_OF_LINE (";\n") + + 3.char: 'l'...for linux RETURN (0x0A) + 3.char: 'w'...for windows RETURN (0x0D,0x0A) + 3.char: 'm'...for mac RETURN (0x0D) + + + + change: recall + offset + number + */ + +static t_class *iem_pbank_csv_class; + +typedef struct _iem_pbank_csv +{ + t_object x_obj; + int x_nr_para; + int x_nr_line; + int x_line; + t_atom *x_atbegmem; + t_atom *x_atbegbuf; + t_atom *x_atbegout; + t_canvas *x_canvas; + void *x_list_out; + void *x_offset_list_out; +} t_iem_pbank_csv; + +static void iem_pbank_csv_write(t_iem_pbank_csv *x, t_symbol *filename, t_symbol *format) +{ + char completefilename[400], eol[4], sep, mode[4], string[200]; + int size, p, l, nrl=x->x_nr_line, nrp=x->x_nr_para; + int state, max=nrl*nrp, org_size, eollen; + FILE *fh; + t_atom *ap=x->x_atbegmem; + char formattext[100]; + + strcpy(mode, "bsl"); /*blank-separator, semicolon-return-eol, linux_return*/ + sep = ' '; + eol[0] = ';'; + eol[1] = 0x0a; + eol[2] = 0; + if(filename->s_name[0] == '/') + { + strcpy(completefilename, filename->s_name); + } + else if(((filename->s_name[0] >= 'A')&&(filename->s_name[0] <= 'Z')|| + (filename->s_name[0] >= 'a')&&(filename->s_name[0] <= 'z'))&& + (filename->s_name[1] == ':')&&(filename->s_name[2] == '/')) + { + strcpy(completefilename, filename->s_name); + } + else + { + strcpy(completefilename, canvas_getdir(x->x_canvas)->s_name); + strcat(completefilename, "/"); + strcat(completefilename, filename->s_name); + } + + fh = fopen(completefilename,"wb"); + if(!fh) + { + post("iem_pbank_csv_write: cannot create %s !!\n", completefilename); + } + else + { + if(strlen(format->s_name) >= 3) + { + for(p=0; p<3; p++) + { + if((format->s_name[p] >= 'A')&&(format->s_name[p] <= 'Z')) + format->s_name[p] += 'a' - 'A'; + } + if((format->s_name[0] == 'b')||(format->s_name[0] == 'c')||(format->s_name[0] == 's')||(format->s_name[0] == 't')) + mode[0] = format->s_name[0]; + if((format->s_name[1] == 'b')||(format->s_name[1] == 'r')||(format->s_name[1] == 's')) + mode[1] = format->s_name[1]; + if((format->s_name[2] == 'l')||(format->s_name[2] == 'w')||(format->s_name[2] == 'm')) + mode[2] = format->s_name[2]; + } + else + post("iem_pbank_csv_write: use default format %s !!\n", mode); + + if(mode[0] == 'b') + { + sep = ' '; + strcpy(formattext, "item-separator = BLANK; "); + } + else if(mode[0] == 'c') + { + sep = ','; + strcpy(formattext, "item-separator = COMMA; "); + } + else if(mode[0] == 's') + { + sep = ';'; + strcpy(formattext, "item-separator = SEMICOLON; "); + } + else if(mode[0] == 't') + { + sep = 0x09; + strcpy(formattext, "item-separator = TABULATOR; "); + } + + eollen = 1; + if(mode[1] == 'b') + { + eol[0] = ' '; + strcat(formattext, "end_of_line_terminator = BLANK-RETURN in "); + } + else if(mode[1] == 'r') + { + eollen = 0; + strcat(formattext, "end_of_line_terminator = RETURN in "); + } + else if(mode[1] == 's') + { + eol[0] = ';'; + strcat(formattext, "end_of_line_terminator = SEMICOLON-RETURN in "); + } + + if(mode[2] == 'l') + { + eol[eollen++] = 0x0a; + strcat(formattext, "LINUX-Format."); + } + else if(mode[2] == 'w') + { + eol[eollen++] = 0x0d; + eol[eollen++] = 0x0a; + strcat(formattext, "WINDOWS-Format."); + } + else if(mode[2] == 'm') + { + eol[eollen++] = 0x0d; + strcat(formattext, "MACINTOSH-Format."); + } + eol[eollen] = 0; + + ap = x->x_atbegmem; + for(l=0; l<nrl; l++) + { + for(p=1; p<nrp; p++) + { + if(IS_A_FLOAT(ap, 0)) + fprintf(fh, "%g%c", ap->a_w.w_float, sep); + else if(IS_A_SYMBOL(ap, 0)) + fprintf(fh, "%s%c", ap->a_w.w_symbol->s_name, sep); + ap++; + } + if(IS_A_FLOAT(ap, 0)) + fprintf(fh, "%g%s", ap->a_w.w_float, eol); + else if(IS_A_SYMBOL(ap, 0)) + fprintf(fh, "%s%s", ap->a_w.w_symbol->s_name, eol); + ap++; + } + fclose(fh); + post("iem_pbank_csv: wrote %d parameters x %d lines to file:\n%s\nwith following format:\n%s\n", nrp, nrl, completefilename, formattext); + } +} + +int iem_pbank_csv_text2atom(char *text, int text_size, t_atom **at_beg, + int *nalloc, char sep, char eol) +{ + char buf[MAXPDSTRING+1], *bufp, *ebuf = buf+MAXPDSTRING; + const char *textp = text, *etext = text + text_size; + int natom = 0; + t_atom *ap = *at_beg; + float f; + + while(1) + { + int type; + + if(textp == etext) + break; + if(*textp == eol) + { + SETSEMI(ap); + textp++; + } + else if(*textp == sep) + { + SETCOMMA(ap); + textp++; + } + else + { + char c; + int flst = 0, slash = 0, lastslash = 0; + int firstslash = (*textp == '\\'); + + bufp = buf; + do + { + c = *bufp = *textp++; + lastslash = slash; + slash = (c == '\\'); + + if (flst >= 0) + { + int digit = (c >= '0' && c <= '9'), + dot = (c == '.'), minus = (c == '-'), + plusminus = (minus || (c == '+')), + expon = (c == 'e' || c == 'E'); + if (flst == 0) /* beginning */ + { + if (minus) flst = 1; + else if (digit) flst = 2; + else if (dot) flst = 3; + else flst = -1; + } + else if (flst == 1) /* got minus */ + { + if (digit) flst = 2; + else if (dot) flst = 3; + else flst = -1; + } + else if (flst == 2) /* got digits */ + { + if (dot) flst = 4; + else if (expon) flst = 6; + else if (!digit) flst = -1; + } + else if (flst == 3) /* got '.' without digits */ + { + if (digit) flst = 5; + else flst = -1; + } + else if (flst == 4) /* got '.' after digits */ + { + if (digit) flst = 5; + else if (expon) flst = 6; + else flst = -1; + } + else if (flst == 5) /* got digits after . */ + { + if (expon) flst = 6; + else if (!digit) flst = -1; + } + else if (flst == 6) /* got 'e' */ + { + if (plusminus) flst = 7; + else if (digit) flst = 8; + else flst = -1; + } + else if (flst == 7) /* got plus or minus */ + { + if (digit) flst = 8; + else flst = -1; + } + else if (flst == 8) /* got digits */ + { + if (!digit) flst = -1; + } + } + if (!slash) bufp++; + } + while (textp != etext && bufp != ebuf && *textp != ' ' && + (slash || (*textp != sep && *textp != eol))); + *bufp = 0; + + if(*buf == '$' && buf[1] >= '0' && buf[1] <= '9' && !firstslash) + { + for (bufp = buf+2; *bufp; bufp++) + if (*bufp < '0' || *bufp > '9') + { + SETDOLLSYM(ap, gensym(buf+1)); + goto iem_pbank_csv_didit; + } + SETDOLLAR(ap, atoi(buf+1)); + iem_pbank_csv_didit: ; + } + else + { + if(flst == 2 || flst == 4 || flst == 5 || flst == 8) + { + f = atof(buf); + if((f < 1.0e-20)&&(f > -1.0e-20)) + f = 0.0; + SETFLOAT(ap, f); + } + else + SETSYMBOL(ap, gensym(buf)); + } + } + + ap++; + natom++; + if(natom == *nalloc) + { + *at_beg = t_resizebytes(*at_beg, *nalloc * sizeof(t_atom), + *nalloc * (2*sizeof(t_atom))); + *nalloc = *nalloc * 2; + ap = *at_beg + natom; + } + if(textp == etext) + break; + } + return(natom); +} + +/*static char myq(t_atom *a, int off) +{ + char c='0'; + + if(IS_A_SEMI(a,off)) + c = 's'; + else if(IS_A_COMMA(a,off)) + c = 'c'; + else if(IS_A_FLOAT(a,off)) + c = 'f'; + else if(IS_A_SYMBOL(a,off)) + c = 'y'; + return(c); +} */ + +static void iem_pbank_csv_read(t_iem_pbank_csv *x, t_symbol *filename, t_symbol *format) +{ + char completefilename[400], eol[4], sep, mode[4], *txbuf1, *txbuf2, *txvec_src, *txvec_dst; + int size, p, l, i, j, nrl=x->x_nr_line, nrp=x->x_nr_para, atlen=0; + int txlen, txalloc, hat_alloc, max, eollen; + FILE *fh; + t_atom *ap, *hap, *at; + char formattext[100]; + + strcpy(mode, "bsl"); /*blank-separator, semicolon-return-eol, linux_return*/ + sep = ' '; + eol[0] = ';'; + eol[1] = 0x0a; + eol[2] = 0; + if(filename->s_name[0] == '/')/*make complete path + filename*/ + { + strcpy(completefilename, filename->s_name); + } + else if(((filename->s_name[0] >= 'A')&&(filename->s_name[0] <= 'Z')|| + (filename->s_name[0] >= 'a')&&(filename->s_name[0] <= 'z'))&& + (filename->s_name[1] == ':')&&(filename->s_name[2] == '/')) + { + strcpy(completefilename, filename->s_name); + } + else + { + strcpy(completefilename, canvas_getdir(x->x_canvas)->s_name); + strcat(completefilename, "/"); + strcat(completefilename, filename->s_name); + } + + fh = fopen(completefilename,"rb"); + if(!fh) + { + post("iem_pbank_csv_read: cannot open %s !!\n", completefilename); + } + else + { + if(strlen(format->s_name) >= 3) + { + for(p=0; p<3; p++) + { + if((format->s_name[p] >= 'A')&&(format->s_name[p] <= 'Z')) + format->s_name[p] += 'a' - 'A'; + } + if((format->s_name[0] == 'b')||(format->s_name[0] == 'c')||(format->s_name[0] == 's')||(format->s_name[0] == 't')) + mode[0] = format->s_name[0]; + if((format->s_name[1] == 'b')||(format->s_name[1] == 'r')||(format->s_name[1] == 's')) + mode[1] = format->s_name[1]; + if((format->s_name[2] == 'l')||(format->s_name[2] == 'w')||(format->s_name[2] == 'm')) + mode[2] = format->s_name[2]; + } + else + post("iem_pbank_csv_read: use default format %s !!\n", mode); + if(mode[0] == 'b') + { + sep = ' '; + strcpy(formattext, "item-separator = BLANK; "); + } + else if(mode[0] == 'c') + { + sep = ','; + strcpy(formattext, "item-separator = COMMA; "); + } + else if(mode[0] == 's') + { + sep = ';'; + strcpy(formattext, "item-separator = SEMICOLON; "); + } + else if(mode[0] == 't') + { + sep = 0x09; + strcpy(formattext, "item-separator = TABULATOR; "); + } + + eollen = 1; + if(mode[1] == 'b') + { + eol[0] = ' '; + strcat(formattext, "end_of_line_terminator = BLANK-RETURN in "); + } + else if(mode[1] == 'r') + { + eollen = 0; + strcat(formattext, "end_of_line_terminator = RETURN in "); + } + else if(mode[1] == 's') + { + eol[0] = ';'; + strcat(formattext, "end_of_line_terminator = SEMICOLON-RETURN in "); + } + + if(mode[2] == 'l') + { + eol[eollen++] = 0x0a; + strcat(formattext, "LINUX-Format."); + } + else if(mode[2] == 'w') + { + eol[eollen++] = 0x0d; + eol[eollen++] = 0x0a; + strcat(formattext, "WINDOWS-Format."); + } + else if(mode[2] == 'm') + { + eol[eollen++] = 0x0d; + strcat(formattext, "MACINTOSH-Format."); + } + eol[eollen] = 0; + + fseek(fh, 0, SEEK_END); + txalloc = ftell(fh); + fseek(fh,0,SEEK_SET); + txbuf1 = (char *)getbytes(2 * txalloc * sizeof(char)); + txbuf2 = (char *)getbytes(2 * txalloc * sizeof(char)); + fread(txbuf1, sizeof(char), txalloc, fh); + fclose(fh); + + txvec_src = txbuf1; + txvec_dst = txbuf2; + p = 0; + for(l=0; l<txalloc; l++) + { + if(!strncmp(txvec_src, eol, eollen)) /* replace eol by 0x0a */ + { + txvec_src += eollen; + l += eollen - 1; + *txvec_dst++ = 0x0a; + p++; + } + else if(*txvec_src == sep) /* replace sep by ; */ + { + txvec_src++; + *txvec_dst++ = ';'; + p++; + } + else if((*txvec_src == '\r')||(*txvec_src == '\n')||(*txvec_src == '\t')) /* remove '\n'-returns */ + txvec_src++; + else /* copy the same char */ + { + *txvec_dst++ = *txvec_src++; + p++; + } + } + txlen = p; + + txvec_src = txbuf2; + txvec_dst = txbuf1; + p = 0; + for(l=0; l<txlen; l++) + { + if((*txvec_src == ';')&&(txvec_src[1] == ';')) /* fill between 2 sep a zero */ + { + *txvec_dst++ = *txvec_src++; + *txvec_dst++ = '0'; + p += 2; + } + else if((*txvec_src == ';')&&(txvec_src[1] == 0x0a)) /* fill between sep and eol a zero */ + { + *txvec_dst++ = *txvec_src++; + *txvec_dst++ = '0'; + p += 2; + } + else if((*txvec_src == 0x0a)&&(txvec_src[1] == ';')) /* fill between eol and sep a zero */ + { + *txvec_dst++ = *txvec_src++; + *txvec_dst++ = '0'; + p += 2; + } + else if(*txvec_src == ',') /* replace a comma by a dot */ + { + *txvec_dst++ = '.'; + txvec_src++; + p++; + } + else /* copy the same char */ + { + *txvec_dst++ = *txvec_src++; + p++; + } + } + txlen = p; + + /* strncpy(txbuf2, txbuf1, txlen); + txbuf2[txlen] = 0; + post("\n\n%s\n\n", txbuf2); */ + + hat_alloc = 200; + hap = t_getbytes(hat_alloc * sizeof(t_atom)); + + atlen = iem_pbank_csv_text2atom(txbuf1, txlen, &hap, &hat_alloc, ';', 0x0a); + + /* ap = hap; + i = atlen; + while(i >= 20) + { + post("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",myq(ap,0),myq(ap,1),myq(ap,2),myq(ap,3),myq(ap,4),myq(ap,5),myq(ap,6),myq(ap,7),myq(ap,8),myq(ap,9),myq(ap,10),myq(ap,11),myq(ap,12),myq(ap,13),myq(ap,14),myq(ap,15),myq(ap,16),myq(ap,17),myq(ap,18),myq(ap,19)); + ap += 20; + i -= 20; + } */ + + at = x->x_atbegmem; + for(l=0; l<nrl; l++)/*reset all*/ + { + for(p=0; p<nrp; p++) + { + SETFLOAT(at, 0.0f); + at++; + } + } + + at = x->x_atbegmem; + ap = hap; + nrp++; + i = 0; /* atom-counter */ + j = 0; + for(l=0; l<nrl; l++)/* nrl line times */ + { + for(p=1; p<=nrp;) + { + if((p == nrp) && !(IS_A_SEMI(ap,0))) + { + /*post("too long");*/ + while(!(IS_A_SEMI(ap,0))) + { + ap++; + atlen--; + /*post("ignore");*/ + j++; + if(atlen <= 0) + { + goto iem_pbank_csv_end; + } + } + } + else + { + if(IS_A_FLOAT(ap,0)) + { + SETFLOAT(at, ap->a_w.w_float); + /*post("float");*/ + p++; + i++; + at++; + } + else if(IS_A_SYMBOL(ap,0)) + { + SETSYMBOL(at, ap->a_w.w_symbol); + /*post("sym");*/ + p++; + i++; + at++; + } + else if(IS_A_SEMI(ap,0)) + { + /*post("semi");*/ + for(; p<nrp;) + { + SETFLOAT(at,0.0); + /*post("zero");*/ + p++; + i++; + at++; + } + p=nrp + 1; + } + ap++; + atlen--; + j++; + } + if(atlen <= 0) + { + goto iem_pbank_csv_end; + } + } + } + +iem_pbank_csv_end: + + + freebytes(hap, hat_alloc * sizeof(t_atom)); + freebytes(txbuf1, 2 * txalloc * sizeof(char)); + freebytes(txbuf2, 2 * txalloc * sizeof(char)); + post("iem_pbank_csv: read %d parameters x %d lines from file:\n%s\nwith following format:\n%s\n", nrp-1, nrl, completefilename, formattext); + } +} + +static void iem_pbank_csv_recall(t_iem_pbank_csv *x, t_symbol *s, int ac, t_atom *av) +{ + int i, n, beg=0, nrp=x->x_nr_para; + t_atom *atbuf=x->x_atbegbuf, *atmem=x->x_atbegmem; + t_atom *atout=x->x_atbegout; + + if(ac >= 2) + nrp = atom_getintarg(1, ac, av); + if(ac >= 1) + beg = atom_getintarg(0, ac, av); + if(beg < 0) + beg = 0; + else if(beg >= x->x_nr_para) + beg = x->x_nr_para - 1; + if(nrp < 0) + nrp = 0; + else if((beg+nrp) > x->x_nr_para) + nrp = x->x_nr_para - beg; + atmem += x->x_nr_para * x->x_line + beg; + atbuf += beg; + SETFLOAT(atout, (float)beg); + atout++; + for(i=0; i<nrp; i++) + { + *atbuf++ = *atmem; + *atout++ = *atmem++; + } + outlet_list(x->x_offset_list_out, &s_list, nrp+1, x->x_atbegout); + outlet_list(x->x_list_out, &s_list, nrp, x->x_atbegout+1); +} + +static void iem_pbank_csv_bang(t_iem_pbank_csv *x) +{ + int i, nrp=x->x_nr_para; + t_atom *atbuf=x->x_atbegbuf; + t_atom *atout=x->x_atbegout; + + SETFLOAT(atout, 0.0f); + atout++; + for(i=0; i<nrp; i++) + *atout++ = *atbuf++; + outlet_list(x->x_offset_list_out, &s_list, nrp+1, x->x_atbegout); + outlet_list(x->x_list_out, &s_list, nrp, x->x_atbegout+1); +} + +static void iem_pbank_csv_store(t_iem_pbank_csv *x, t_symbol *s, int ac, t_atom *av) +{ + int i, beg=0, nrp=x->x_nr_para; + t_atom *atbuf=x->x_atbegbuf, *atmem=x->x_atbegmem; + + if(ac >= 2) + nrp = atom_getintarg(1, ac, av); + if(ac >= 1) + beg = atom_getintarg(0, ac, av); + if(beg < 0) + beg = 0; + else if(beg >= x->x_nr_para) + beg = x->x_nr_para - 1; + if(nrp < 0) + nrp = 0; + else if((beg+nrp) > x->x_nr_para) + nrp = x->x_nr_para - beg; + atmem += x->x_nr_para * x->x_line; + atmem += beg; + atbuf += beg; + for(i=0; i<nrp; i++) + *atmem++ = *atbuf++; +} + +static void iem_pbank_csv_list(t_iem_pbank_csv *x, t_symbol *s, int ac, t_atom *av) +{ + if(ac >= 2) + { + int para_index = atom_getintarg(0, ac, av); + + if(para_index >= 0) + { + if((para_index+ac-1) <= x->x_nr_para) + { + int i; + + for(i=1; i<ac; i++) + { + x->x_atbegbuf[para_index] = av[i]; + para_index++; + } + } + } + } +} + +static void iem_pbank_csv_ft1(t_iem_pbank_csv *x, t_float fline_nr) +{ + int line = (int)fline_nr; + + if(line < 0) + line = 0; + else if(line >= x->x_nr_line) + line = x->x_nr_line - 1; + x->x_line = line; +} + +static void iem_pbank_csv_free(t_iem_pbank_csv *x) +{ + freebytes(x->x_atbegmem, x->x_nr_para * x->x_nr_line * sizeof(t_atom)); + freebytes(x->x_atbegbuf, x->x_nr_para * sizeof(t_atom)); + freebytes(x->x_atbegout, (x->x_nr_para+1) * sizeof(t_atom)); +} + +static void *iem_pbank_csv_new(t_symbol *s, int ac, t_atom *av) +{ + t_iem_pbank_csv *x = (t_iem_pbank_csv *)pd_new(iem_pbank_csv_class); + int nrpp=0, nrp=10, nrl=10, p, l, i; + t_atom *ap; + + if((ac >= 1) && IS_A_FLOAT(av,0)) + nrp = atom_getintarg(0, ac, av); + if((ac >= 2) && IS_A_FLOAT(av,1)) + nrl = atom_getintarg(1, ac, av); + if(nrp <= 0) + nrp = 10; + if(nrl <= 0) + nrl = 10; + x->x_line = 0; + x->x_nr_para = nrp; + x->x_nr_line = nrl; + x->x_atbegmem = (t_atom *)getbytes(x->x_nr_para * x->x_nr_line * sizeof(t_atom)); + x->x_atbegbuf = (t_atom *)getbytes(x->x_nr_para * sizeof(t_atom)); + x->x_atbegout = (t_atom *)getbytes((x->x_nr_para+1) * sizeof(t_atom)); + ap = x->x_atbegmem; + for(l=0; l<nrl; l++) + { + for(p=0; p<nrp; p++) + { + SETFLOAT(ap, 0.0f); + ap++; + } + } + ap = x->x_atbegbuf; + for(p=0; p<nrp; p++) + { + SETFLOAT(ap, 0.0f); + ap++; + } + x->x_list_out = outlet_new(&x->x_obj, &s_list); /*left out*/ + x->x_offset_list_out = outlet_new(&x->x_obj, &s_list); /*right out*/ + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + x->x_canvas = canvas_getcurrent(); + return (x); +} + +/* ---------------- global setup function -------------------- */ + +void iem_pbank_csv_setup(void ) +{ + iem_pbank_csv_class = class_new(gensym("iem_pbank_csv"), (t_newmethod)iem_pbank_csv_new, + (t_method)iem_pbank_csv_free, sizeof(t_iem_pbank_csv), 0, A_GIMME, 0); + class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_recall, gensym("recall"), A_GIMME, 0); + class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_store, gensym("store"), A_GIMME, 0); + class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_read, gensym("read"), A_SYMBOL, A_DEFSYM, 0); + class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_write, gensym("write"), A_SYMBOL, A_DEFSYM, 0); + class_addlist(iem_pbank_csv_class, iem_pbank_csv_list); + class_addbang(iem_pbank_csv_class, iem_pbank_csv_bang); + class_addmethod(iem_pbank_csv_class, (t_method)iem_pbank_csv_ft1, gensym("ft1"), A_FLOAT, 0); + class_sethelpsymbol(iem_pbank_csv_class, gensym("iemhelp/help-iem_pbank_csv")); +} + diff --git a/src/iemlib2/iem_prepend_kernel.c b/src/iemlib2/iem_prepend_kernel.c new file mode 100644 index 0000000..5147107 --- /dev/null +++ b/src/iemlib2/iem_prepend_kernel.c @@ -0,0 +1,259 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "g_canvas.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +EXTERN void canvas_getargs(int *argcp, t_atom **argvp); + + +/* ------------------------ iem_prepend_kernel ---------------------------- */ +static t_class *iem_prepend_kernel_class; + +typedef struct _iem_prepend_kernel +{ + t_object x_obj; + int x_inlet_select; + int x_size; + int x_ac; + t_atom *x_at; + t_symbol *x_sym; + t_atomtype x_type; +} t_iem_prepend_kernel; + +static void iem_prepend_kernel_atcopy(t_atom *src, t_atom *dst, int n) +{ + while(n--) + *dst++ = *src++; +} + +static void iem_prepend_kernel_inlet_select(t_iem_prepend_kernel *x, t_floatarg fin_sel_01) +{ + x->x_inlet_select = (int)fin_sel_01; +} + +static void iem_prepend_kernel_bang(t_iem_prepend_kernel *x) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac = 0; + x->x_type = A_NULL; + x->x_sym = &s_bang; + } + else /* if 1st inlet */ + { + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at); + } +} + +static void iem_prepend_kernel_float(t_iem_prepend_kernel *x, t_float f) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac = 1; + x->x_type = A_FLOAT; + SETFLOAT(x->x_at, f); + x->x_sym = &s_list; + } + else /* if 1st inlet */ + { + if(x->x_type == A_NULL) + { + outlet_float(x->x_obj.ob_outlet, f); + } + else + { + SETFLOAT(x->x_at+x->x_ac, f); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at); + } + } +} + +static void iem_prepend_kernel_symbol(t_iem_prepend_kernel *x, t_symbol *s) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac = 1; + x->x_type = A_SYMBOL; + SETSYMBOL(x->x_at, s); + x->x_sym = &s_list; + } + else /* if 1st inlet */ + { + if(x->x_type == A_NULL) + { + outlet_symbol(x->x_obj.ob_outlet, s); + } + else + { + SETSYMBOL(x->x_at+x->x_ac, s); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at); + } + } +} + +static void iem_prepend_kernel_pointer(t_iem_prepend_kernel *x, t_gpointer *gp) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac = 1; + x->x_type = A_POINTER; + SETPOINTER(x->x_at, gp); + x->x_sym = &s_list; + } + else /* if 1st inlet */ + { + if(x->x_type == A_NULL) + { + outlet_pointer(x->x_obj.ob_outlet, gp); + } + else + { + SETPOINTER(x->x_at+x->x_ac, gp); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at); + } + } +} + +static void iem_prepend_kernel_list(t_iem_prepend_kernel *x, t_symbol *s, int ac, t_atom *av) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + if((ac+10) > x->x_size) + { + x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+10)*sizeof(t_atom)); + x->x_size = 2*(ac+10); + } + x->x_ac = ac; + x->x_type = A_GIMME; + x->x_sym = &s_list; + iem_prepend_kernel_atcopy(av, x->x_at, ac); + } + else /* if 1st inlet */ + { + if((ac+x->x_ac+1) > x->x_size) + { + x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+x->x_ac+1)*sizeof(t_atom)); + x->x_size = 2*(ac+x->x_ac+1); + } + if(x->x_type == A_NULL) + { + outlet_anything(x->x_obj.ob_outlet, &s_list, ac, av); + } + else + { + iem_prepend_kernel_atcopy(av, x->x_at + x->x_ac, ac); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+ac, x->x_at); + } + } +} + +static void iem_prepend_kernel_anything(t_iem_prepend_kernel *x, t_symbol *s, int ac, t_atom *av) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + if((ac+10) > x->x_size) + { + x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+10)*sizeof(t_atom)); + x->x_size = 2*(ac+10); + } + x->x_ac = ac; + x->x_type = A_COMMA; + x->x_sym = s; + iem_prepend_kernel_atcopy(av, x->x_at, ac); + } + else /* if 1st inlet */ + { + if((ac+x->x_ac+1) > x->x_size) + { + x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), 2*(ac+x->x_ac+1)*sizeof(t_atom)); + x->x_size = 2*(ac+x->x_ac+1); + } + if(x->x_type == A_NULL) + { + outlet_anything(x->x_obj.ob_outlet, s, ac, av); + } + else + { + SETSYMBOL(x->x_at + x->x_ac, s); + iem_prepend_kernel_atcopy(av, x->x_at+x->x_ac+1, ac); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+ac+1, x->x_at); + } + } +} + +static void iem_prepend_kernel_free(t_iem_prepend_kernel *x) +{ + if(x->x_at) + freebytes(x->x_at, x->x_size * sizeof(t_atom)); +} + +static void *iem_prepend_kernel_new(void) +{ + t_iem_prepend_kernel *x = (t_iem_prepend_kernel *)pd_new(iem_prepend_kernel_class); + t_glist *glist = (t_glist *)canvas_getcurrent(); + t_canvas *canvas=glist_getcanvas(glist); + int ac=0; + t_atom *av; + + canvas_setcurrent(canvas); + canvas_getargs(&ac, &av); + canvas_unsetcurrent(canvas); + + x->x_size = 30; + if(ac > 5) + x->x_size = 2*(ac+10); + x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom)); + x->x_inlet_select = 1; + if(ac <= 0) + { + x->x_type = A_NULL; + x->x_ac = 0; + x->x_sym = &s_bang; + } + else + { + if(IS_A_FLOAT(av, 0)) + { + iem_prepend_kernel_list(x, &s_list, ac, av); + } + else if(IS_A_SYMBOL(av, 0)) + { + iem_prepend_kernel_anything(x, atom_getsymbol(av), ac-1, av+1); + } + } + outlet_new(&x->x_obj, &s_list); + return(x); +} + +void iem_prepend_kernel_setup(void) +{ + char str[2]; + + str[0] = 1; + str[1] = 0; + iem_prepend_kernel_class = class_new(gensym("iem_prepend_kernel"), + (t_newmethod)iem_prepend_kernel_new, (t_method)iem_prepend_kernel_free, + sizeof(t_iem_prepend_kernel), 0, 0); + class_addbang(iem_prepend_kernel_class, (t_method)iem_prepend_kernel_bang); + class_addpointer(iem_prepend_kernel_class, iem_prepend_kernel_pointer); + class_addfloat(iem_prepend_kernel_class, (t_method)iem_prepend_kernel_float); + class_addsymbol(iem_prepend_kernel_class, iem_prepend_kernel_symbol); + class_addlist(iem_prepend_kernel_class, iem_prepend_kernel_list); + class_addmethod(iem_prepend_kernel_class, (t_method)iem_prepend_kernel_inlet_select, gensym(str), A_FLOAT, 0); + class_addanything(iem_prepend_kernel_class, iem_prepend_kernel_anything); + class_sethelpsymbol(iem_prepend_kernel_class, gensym("iemhelp/help-merge_any")); +} diff --git a/src/iemlib2/iem_receive_kernel.c b/src/iemlib2/iem_receive_kernel.c new file mode 100644 index 0000000..4ff3c76 --- /dev/null +++ b/src/iemlib2/iem_receive_kernel.c @@ -0,0 +1,155 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "g_canvas.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +EXTERN void canvas_getargs(int *argcp, t_atom **argvp); + +/* ------------------------ iem_receive_kernel ---------------------------- */ + +static t_class *iem_receive_kernel_class; + +typedef struct _iem_receive_kernel +{ + t_object x_obj; + t_symbol *x_sym; +} t_iem_receive_kernel; + +void iem_receive_kernel_copy_at(t_atom *src, t_atom *dst, int n) +{ + while(n--) + *dst++ = *src++; +} + +static void iem_receive_kernel_set_name(t_iem_receive_kernel *x, t_symbol *s, int argc, t_atom *argv) +{ + if((argc > 0)&&((IS_A_SYMBOL(argv,0))||(IS_A_FLOAT(argv,0)))) + { + if(x->x_sym) + pd_unbind(&x->x_obj.ob_pd, x->x_sym); + if(IS_A_SYMBOL(argv,0)) + x->x_sym = atom_getsymbol(argv); + else if(IS_A_FLOAT(argv,0)) + { + char str[100]; + + sprintf(str, "%g", atom_getfloat(argv)); + x->x_sym = gensym(str); + } + pd_bind(&x->x_obj.ob_pd, x->x_sym); + } +} + +static void iem_receive_kernel_clear(t_iem_receive_kernel *x) +{ + if(x->x_sym) + pd_unbind(&x->x_obj.ob_pd, x->x_sym); + x->x_sym = 0; +} + +static void iem_receive_kernel_bang(t_iem_receive_kernel *x) +{ + outlet_bang(x->x_obj.ob_outlet); +} + +static void iem_receive_kernel_float(t_iem_receive_kernel *x, t_float f) +{ + outlet_float(x->x_obj.ob_outlet, f); +} + +static void iem_receive_kernel_symbol(t_iem_receive_kernel *x, t_symbol *s) +{ + outlet_symbol(x->x_obj.ob_outlet, s); +} + +static void iem_receive_kernel_pointer(t_iem_receive_kernel *x, t_gpointer *gp) +{ + outlet_pointer(x->x_obj.ob_outlet, gp); +} + +static void iem_receive_kernel_list(t_iem_receive_kernel *x, t_symbol *s, int argc, t_atom *argv) +{ + outlet_list(x->x_obj.ob_outlet, &s_list, argc, argv); +} + +static void iem_receive_kernel_anything(t_iem_receive_kernel *x, t_symbol *s, int argc, t_atom *argv) +{ + outlet_anything(x->x_obj.ob_outlet, s, argc, argv); +} + +static void iem_receive_kernel_free(t_iem_receive_kernel *x) +{ + if(x->x_sym) + pd_unbind(&x->x_obj.ob_pd, x->x_sym); +} + +static void *iem_receive_kernel_new(void) +{ + t_iem_receive_kernel *x = (t_iem_receive_kernel *)pd_new(iem_receive_kernel_class); + t_glist *glist = (t_glist *)canvas_getcurrent(); + t_canvas *canvas=glist_getcanvas(glist); + int ac=0; + t_atom *av; + + canvas_setcurrent(canvas); + canvas_getargs(&ac, &av); + canvas_unsetcurrent(canvas); + + if(ac > 0) + { + if(IS_A_SYMBOL(av,0)) + { + x->x_sym = atom_getsymbol(av); + pd_bind(&x->x_obj.ob_pd, x->x_sym); + } + else if(IS_A_FLOAT(av,0)) + { + char str[100]; + + sprintf(str, "%g", atom_getfloat(av)); + x->x_sym = gensym(str); + pd_bind(&x->x_obj.ob_pd, x->x_sym); + } + else + x->x_sym = 0; + } + else + x->x_sym = 0; + + outlet_new(&x->x_obj, &s_list); + return (x); +} + +void iem_receive_kernel_setup(void) +{ + char str[2]; + + str[1] = 0; + iem_receive_kernel_class = class_new(gensym("iem_receive_kernel"), (t_newmethod)iem_receive_kernel_new, + (t_method)iem_receive_kernel_free, sizeof(t_iem_receive_kernel), 0, 0); + class_addbang(iem_receive_kernel_class, iem_receive_kernel_bang); + class_addfloat(iem_receive_kernel_class, iem_receive_kernel_float); + class_addsymbol(iem_receive_kernel_class, iem_receive_kernel_symbol); + class_addpointer(iem_receive_kernel_class, iem_receive_kernel_pointer); + class_addlist(iem_receive_kernel_class, iem_receive_kernel_list); + class_addanything(iem_receive_kernel_class, iem_receive_kernel_anything); +// class_addmethod(iem_receive_kernel_class, (t_method)iem_receive_kernel_set, gensym("set"), A_GIMME, 0); + str[0] = 1;/*inlet-sym = "\0x01"*/ + class_addmethod(iem_receive_kernel_class, (t_method)iem_receive_kernel_set_name, gensym(str), A_GIMME, 0); + str[0] = 2;/*inlet-sym = "\0x02"*/ + class_addmethod(iem_receive_kernel_class, (t_method)iem_receive_kernel_clear, gensym(str), 0); + class_sethelpsymbol(iem_receive_kernel_class, gensym("iemhelp/help-iem_receive")); +} diff --git a/src/iemlib2/iem_route.c b/src/iemlib2/iem_route.c new file mode 100644 index 0000000..85071ae --- /dev/null +++ b/src/iemlib2/iem_route.c @@ -0,0 +1,198 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* -------------------------- iem_route ------------------------------ */ + +static t_class *iem_route_class; + +typedef struct _iem_routeelement +{ + t_word e_w; + t_outlet *e_outlet; +} t_iem_routeelement; + +typedef struct _iem_route +{ + t_object x_obj; + t_atomtype x_type; + t_int x_nelement; + t_iem_routeelement *x_vec; + t_outlet *x_rejectout; +} t_iem_route; + +static void iem_route_anything(t_iem_route *x, t_symbol *sel, int argc, t_atom *argv) +{ + t_iem_routeelement *e; + int nelement; + + if(x->x_type == A_SYMBOL) + { + for(nelement = x->x_nelement, e = x->x_vec; nelement--; e++) + { + if(e->e_w.w_symbol == sel) + { + if(!argc) + outlet_bang(e->e_outlet); + else + { + if(argc == 1) + { + if(argv[0].a_type == A_FLOAT) + outlet_float(e->e_outlet, argv[0].a_w.w_float); + else + outlet_anything(e->e_outlet, argv[0].a_w.w_symbol, 0, argv+1); + } + else + { + if(argv[0].a_type == A_SYMBOL) + outlet_anything(e->e_outlet, argv[0].a_w.w_symbol, argc-1, argv+1); + else + outlet_list(e->e_outlet, &s_list, argc, argv); + } + } + return; + } + } + } + outlet_anything(x->x_rejectout, sel, argc, argv); +} + +static void iem_route_list(t_iem_route *x, t_symbol *sel, int argc, t_atom *argv) +{ + t_iem_routeelement *e; + int nelement; + + if (x->x_type == A_FLOAT) + { + float f; + + if(!argc) + return; + f = atom_getfloat(argv); + for(nelement = x->x_nelement, e = x->x_vec; nelement--; e++) + { + if(e->e_w.w_float == f) + { + if(argc > 1 && argv[1].a_type == A_SYMBOL) + outlet_anything(e->e_outlet, argv[1].a_w.w_symbol, argc-2, argv+2); + else + { + if(argc == 1) + outlet_bang(e->e_outlet); + else if(argc == 2) + outlet_float(e->e_outlet, atom_getfloat(argv+1)); + else + outlet_list(e->e_outlet, &s_list, argc-1, argv+1); + } + return; + } + } + } + else /* symbol arguments */ + { + if(argc > 1) /* 2 or more args: treat as "list" */ + { + for(nelement = x->x_nelement, e = x->x_vec; nelement--; e++) + { + if(e->e_w.w_symbol == &s_list) + { + if(argv[0].a_type == A_SYMBOL) + outlet_anything(e->e_outlet, argv[0].a_w.w_symbol, argc-1, argv+1); + else + outlet_list(e->e_outlet, &s_list, argc, argv); + return; + } + } + } + else if(argc == 0) /* no args: treat as "bang" */ + { + for (nelement = x->x_nelement, e = x->x_vec; nelement--; e++) + { + if (e->e_w.w_symbol == &s_bang) + { + outlet_bang(e->e_outlet); + return; + } + } + } + else if (argv[0].a_type == A_FLOAT) /* one float arg */ + { + for (nelement = x->x_nelement, e = x->x_vec; nelement--; e++) + { + if (e->e_w.w_symbol == &s_float) + { + outlet_float(e->e_outlet, argv[0].a_w.w_float); + return; + } + } + } + else + { + for (nelement = x->x_nelement, e = x->x_vec; nelement--; e++) + { + if (e->e_w.w_symbol == &s_symbol) + { + outlet_symbol(e->e_outlet, argv[0].a_w.w_symbol); + return; + } + } + } + } + outlet_list(x->x_rejectout, &s_list, argc, argv); +} + + +static void iem_route_free(t_iem_route *x) +{ + freebytes(x->x_vec, x->x_nelement * sizeof(*x->x_vec)); +} + +static void *iem_route_new(t_symbol *s, int argc, t_atom *argv) +{ + int n; + t_iem_routeelement *e; + t_iem_route *x = (t_iem_route *)pd_new(iem_route_class); + t_atom a; + if (argc == 0) + { + argc = 1; + SETFLOAT(&a, 0); + argv = &a; + } + x->x_type = argv[0].a_type; + x->x_nelement = argc; + x->x_vec = (t_iem_routeelement *)getbytes(argc * sizeof(*x->x_vec)); + for (n = 0, e = x->x_vec; n < argc; n++, e++) + { + e->e_outlet = outlet_new(&x->x_obj, &s_list); + if (x->x_type == A_FLOAT) + e->e_w.w_float = atom_getfloatarg(n, argc, argv); + else e->e_w.w_symbol = atom_getsymbolarg(n, argc, argv); + } + x->x_rejectout = outlet_new(&x->x_obj, &s_list); + return (x); +} + +void iem_route_setup(void) +{ + iem_route_class = class_new(gensym("iem_route"), (t_newmethod)iem_route_new, + (t_method)iem_route_free, sizeof(t_iem_route), 0, A_GIMME, 0); + class_addcreator((t_newmethod)iem_route_new, gensym("ir"), A_GIMME, 0); + class_addlist(iem_route_class, iem_route_list); + class_addanything(iem_route_class, iem_route_anything); + class_sethelpsymbol(iem_route_class, gensym("iemhelp/help-iem_route")); +} diff --git a/src/iemlib2/iem_sel_any.c b/src/iemlib2/iem_sel_any.c new file mode 100644 index 0000000..e6ff7e0 --- /dev/null +++ b/src/iemlib2/iem_sel_any.c @@ -0,0 +1,111 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ iem_sel_any ---------------------------- */ +static t_class *iem_sel_any_class; + +typedef struct _iem_sel_any +{ + t_object x_obj; + int x_ac; + int x_max_ac; + t_symbol **x_any; + t_symbol *x_set; + void *x_out_any; + void *x_out_set_any; +} t_iem_sel_any; + + +static void iem_sel_any_float(t_iem_sel_any *x, t_float f) +{ + int i = (int)f; + t_atom at; + + if(x->x_ac > 0) + { + if(i < 0) + i = 0; + if(i >= x->x_ac) + i = x->x_ac - 1; + SETSYMBOL(&at, x->x_any[i]); + outlet_anything(x->x_out_any, x->x_any[i], 0, 0); + outlet_anything(x->x_out_set_any, x->x_set, 1, &at); + } +} + +static void iem_sel_any_add(t_iem_sel_any *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac >= 2) && (IS_A_FLOAT(av, 0))) + { + int i = (int)atom_getintarg(0, ac, av); + + if((i >= 0) && (i < x->x_max_ac)) + { + if(IS_A_SYMBOL(av, 1)) + x->x_any[i] = atom_getsymbolarg(1, ac, av); + else if(IS_A_FLOAT(av, 1)) + { + char str[100]; + + sprintf(str, "%g", atom_getfloatarg(1, ac, av)); + x->x_any[i] = gensym(str); + } + if(i >= x->x_ac) + x->x_ac = i+1; + } + } +} + +static void iem_sel_any_clear(t_iem_sel_any *x) +{ + x->x_ac = 0; +} + +static void iem_sel_any_free(t_iem_sel_any *x) +{ + freebytes(x->x_any, x->x_max_ac * sizeof(t_symbol *)); +} + +static void *iem_sel_any_new(t_float fmax) +{ + t_iem_sel_any *x = (t_iem_sel_any *)pd_new(iem_sel_any_class); + int i; + t_symbol *default_sym=gensym("no_entry"); + + if(fmax <= 0.0) + fmax = 10.0; + x->x_max_ac = (int)fmax; + x->x_any = (t_symbol **)getbytes(x->x_max_ac * sizeof(t_symbol *)); + x->x_ac = 0; + x->x_set = gensym("set"); + for(i=0; i<x->x_max_ac; i++) + x->x_any[i] = default_sym; + x->x_out_set_any = outlet_new(&x->x_obj, &s_list); + x->x_out_any = outlet_new(&x->x_obj, &s_list); + return (x); +} + +void iem_sel_any_setup(void) +{ + iem_sel_any_class = class_new(gensym("iem_sel_any"), (t_newmethod)iem_sel_any_new, + (t_method)iem_sel_any_free, sizeof(t_iem_sel_any), 0, A_DEFFLOAT, 0); + class_addmethod(iem_sel_any_class, (t_method)iem_sel_any_add, gensym("add"), A_GIMME, 0); + class_addmethod(iem_sel_any_class, (t_method)iem_sel_any_clear, gensym("clear"), 0); + class_addfloat(iem_sel_any_class, (t_method)iem_sel_any_float); + class_sethelpsymbol(iem_sel_any_class, gensym("iemhelp/help-iem_sel_any")); +} + diff --git a/src/iemlib2/iem_send_kernel.c b/src/iemlib2/iem_send_kernel.c new file mode 100644 index 0000000..62adec7 --- /dev/null +++ b/src/iemlib2/iem_send_kernel.c @@ -0,0 +1,140 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "g_canvas.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +EXTERN void canvas_getargs(int *argcp, t_atom **argvp); + +/* -------------------- iem_send_kernel ------------------------------ */ + +static t_class *iem_send_kernel_class; + +typedef struct _iem_send_kernel +{ + t_object x_obj; + t_symbol *x_sym; +} t_iem_send_kernel; + +static void iem_send_kernel_set_name(t_iem_send_kernel *x, t_symbol *s, int argc, t_atom *argv) +{ + if((argc > 0)&&((IS_A_SYMBOL(argv,0))||(IS_A_FLOAT(argv,0)))) + { + if(IS_A_SYMBOL(argv,0)) + x->x_sym = atom_getsymbol(argv); + else if(IS_A_FLOAT(argv,0)) + { + char str[100]; + + sprintf(str, "%g", atom_getfloat(argv)); + x->x_sym = gensym(str); + } + } +} + +static void iem_send_kernel_clear(t_iem_send_kernel *x) +{ + x->x_sym = 0; +} + +static void iem_send_kernel_bang(t_iem_send_kernel *x) +{ + if(x->x_sym->s_thing) + pd_bang(x->x_sym->s_thing); +} + +static void iem_send_kernel_float(t_iem_send_kernel *x, t_float f) +{ + if(x->x_sym->s_thing) + pd_float(x->x_sym->s_thing, f); +} + +static void iem_send_kernel_symbol(t_iem_send_kernel *x, t_symbol *s) +{ + if(x->x_sym->s_thing) + pd_symbol(x->x_sym->s_thing, s); +} + +static void iem_send_kernel_pointer(t_iem_send_kernel *x, t_gpointer *gp) +{ + if(x->x_sym->s_thing) + pd_pointer(x->x_sym->s_thing, gp); +} + +static void iem_send_kernel_list(t_iem_send_kernel *x, t_symbol *s, int argc, t_atom *argv) +{ + if(x->x_sym->s_thing) + pd_list(x->x_sym->s_thing, s, argc, argv); +} + +static void iem_send_kernel_anything(t_iem_send_kernel *x, t_symbol *s, int argc, t_atom *argv) +{ + if(x->x_sym->s_thing) + typedmess(x->x_sym->s_thing, s, argc, argv); +} + +static void *iem_send_kernel_new(void) +{ + t_iem_send_kernel *x = (t_iem_send_kernel *)pd_new(iem_send_kernel_class); + t_glist *glist = (t_glist *)canvas_getcurrent(); + t_canvas *canvas=glist_getcanvas(glist); + int ac=0; + t_atom *av; + + canvas_setcurrent(canvas); + canvas_getargs(&ac, &av); + canvas_unsetcurrent(canvas); + + if(ac > 0) + { + if(IS_A_SYMBOL(av,0)) + { + x->x_sym = atom_getsymbol(av); + } + else if(IS_A_FLOAT(av,0)) + { + char str[100]; + + sprintf(str, "%g", atom_getfloat(av)); + x->x_sym = gensym(str); + } + else + x->x_sym = 0; + } + else + x->x_sym = 0; + return (x); +} + +void iem_send_kernel_setup(void) +{ + char str[2]; + + str[1] = 0; + iem_send_kernel_class = class_new(gensym("iem_send_kernel"), (t_newmethod)iem_send_kernel_new, 0, + sizeof(t_iem_send_kernel), 0, 0); + class_addcreator((t_newmethod)iem_send_kernel_new, gensym("s"), A_DEFSYM, 0); + class_addbang(iem_send_kernel_class, iem_send_kernel_bang); + class_addfloat(iem_send_kernel_class, iem_send_kernel_float); + class_addsymbol(iem_send_kernel_class, iem_send_kernel_symbol); + class_addpointer(iem_send_kernel_class, iem_send_kernel_pointer); + class_addlist(iem_send_kernel_class, iem_send_kernel_list); + class_addanything(iem_send_kernel_class, iem_send_kernel_anything); + str[0] = 1;/*inlet-sym = "\0x01"*/ + class_addmethod(iem_send_kernel_class, (t_method)iem_send_kernel_set_name, gensym(str), A_GIMME, 0); + str[0] = 2;/*inlet-sym = "\0x02"*/ + class_addmethod(iem_send_kernel_class, (t_method)iem_send_kernel_clear, gensym(str), 0); + class_sethelpsymbol(iem_send_kernel_class, gensym("iemhelp/help-iem_send")); +} diff --git a/src/iemlib2/iemlib.h b/src/iemlib2/iemlib.h new file mode 100644 index 0000000..d518565 --- /dev/null +++ b/src/iemlib2/iemlib.h @@ -0,0 +1,98 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib1 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifndef __IEMLIB_H__ +#define __IEMLIB_H__ + + +#define IS_A_POINTER(atom,index) ((atom+index)->a_type == A_POINTER) +#define IS_A_FLOAT(atom,index) ((atom+index)->a_type == A_FLOAT) +#define IS_A_SYMBOL(atom,index) ((atom+index)->a_type == A_SYMBOL) +#define IS_A_DOLLAR(atom,index) ((atom+index)->a_type == A_DOLLAR) +#define IS_A_DOLLSYM(atom,index) ((atom+index)->a_type == A_DOLLSYM) +#define IS_A_SEMI(atom,index) ((atom+index)->a_type == A_SEMI) +#define IS_A_COMMA(atom,index) ((atom+index)->a_type == A_COMMA) + + +#ifdef NT +int sys_noloadbang; +//t_symbol *iemgui_key_sym=0; +#include <io.h> +#else +extern int sys_noloadbang; +//extern t_symbol *iemgui_key_sym; +#include <unistd.h> +#endif + +#define DEFDELVS 64 +#define XTRASAMPS 4 +#define SAMPBLK 4 + + +#define UNITBIT32 1572864. /* 3*2^19; bit 32 has place value 1 */ + + /* machine-dependent definitions. These ifdefs really + should have been by CPU type and not by operating system! */ +#ifdef IRIX + /* big-endian. Most significant byte is at low address in memory */ +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#define int32 long /* a data type that has 32 bits */ +#else +#ifdef MSW + /* little-endian; most significant byte is at highest address */ +#define HIOFFSET 1 +#define LOWOFFSET 0 +#define int32 long +#else +#ifdef __FreeBSD__ +#include <machine/endian.h> +#if BYTE_ORDER == LITTLE_ENDIAN +#define HIOFFSET 1 +#define LOWOFFSET 0 +#else +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#endif /* BYTE_ORDER */ +#include <sys/types.h> +#define int32 int32_t +#endif +#ifdef __linux__ + +#include <endian.h> + +#if !defined(__BYTE_ORDER) || !defined(__LITTLE_ENDIAN) +#error No byte order defined +#endif + +#if __BYTE_ORDER == __LITTLE_ENDIAN +#define HIOFFSET 1 +#define LOWOFFSET 0 +#else +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#endif /* __BYTE_ORDER */ + +#include <sys/types.h> +#define int32 int32_t + +#else +#ifdef MACOSX +#define HIOFFSET 0 /* word offset to find MSB */ +#define LOWOFFSET 1 /* word offset to find LSB */ +#define int32 int /* a data type that has 32 bits */ + +#endif /* MACOSX */ +#endif /* __linux__ */ +#endif /* MSW */ +#endif /* SGI */ + +union tabfudge +{ + double tf_d; + int32 tf_i[2]; +}; + +#endif diff --git a/src/iemlib2/iemlib2.c b/src/iemlib2/iemlib2.c new file mode 100644 index 0000000..2875f26 --- /dev/null +++ b/src/iemlib2/iemlib2.c @@ -0,0 +1,121 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> +/* +#include <ctype.h> +#include <signal.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <fcntl.h> + +#ifndef NT +#include <sys/signal.h> +#include <unistd.h> +#endif + +#ifdef NT +#include <io.h> +#endif + */ + +static t_class *iemlib2_class; + +static void *iemlib2_new(void) +{ + t_object *x = (t_object *)pd_new(iemlib2_class); + + return (x); +} + +void add2_comma_setup(void); +void bpe_setup(void); +void dollarg_setup(void); +void exp_inc_setup(void); +void float24_setup(void); +void iem_anything_kernel_setup(void); +void iem_append_kernel_setup(void); +void iem_i_route_setup(void); +void iem_prepend_kernel_setup(void); +void iem_pbank_csv_setup(void); +void iem_receive_kernel_setup(void); +void iem_send_kernel_setup(void); +void iem_route_setup(void); +void iem_sel_any_setup(void); +void init_setup(void); +void list2send_setup(void); +void mergefilename_setup(void); +void modulo_counter_setup(void); +void pre_inlet_setup(void); +void prepend_ascii_setup(void); +void post_netreceive_setup(void); +void round_zero_setup(void); +void sigfade_setup(void); +void sigiem_blocksize_setup(void); +void sigiem_samplerate_setup(void); +void sigLFO_noise_setup(void); +void sigm2f_setup(void); +void speedlim_setup(void); +void splitfilename_setup(void); +void stripfilename_setup(void); +void toggle_mess_setup(void); +void transf_fader_setup(void); +void unsymbol_setup(void); +void wrap_setup(void); + +/* ------------------------ setup routine ------------------------- */ + +void iemlib2_setup(void) +{ + iemlib2_class = class_new(gensym("iemlib2"), iemlib2_new, 0, + sizeof(t_object), CLASS_NOINLET, 0); + + add2_comma_setup(); + bpe_setup(); + dollarg_setup(); + exp_inc_setup(); + float24_setup(); + iem_anything_kernel_setup(); + iem_append_kernel_setup(); + iem_i_route_setup(); + iem_pbank_csv_setup(); + iem_prepend_kernel_setup(); + iem_receive_kernel_setup(); + iem_send_kernel_setup(); + iem_route_setup(); + iem_sel_any_setup(); + init_setup(); + list2send_setup(); + mergefilename_setup(); + modulo_counter_setup(); + pre_inlet_setup(); + prepend_ascii_setup(); + post_netreceive_setup(); + round_zero_setup(); + sigfade_setup(); + sigiem_blocksize_setup(); + sigiem_samplerate_setup(); + sigLFO_noise_setup(); + sigm2f_setup(); + speedlim_setup(); + splitfilename_setup(); + stripfilename_setup(); + toggle_mess_setup(); + transf_fader_setup(); + unsymbol_setup(); + wrap_setup(); + + post("iemlib2 (R-1.15) library loaded!"); +} diff --git a/src/iemlib2/iemlib2.dsp b/src/iemlib2/iemlib2.dsp new file mode 100644 index 0000000..d8c2966 --- /dev/null +++ b/src/iemlib2/iemlib2.dsp @@ -0,0 +1,85 @@ +# Microsoft Developer Studio Project File - Name="iemlib2" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) External Target" 0x0106 + +CFG=iemlib2 - Win32 Debug +!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "iemlib2.mak". +!MESSAGE +!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "iemlib2.mak" CFG="iemlib2 - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "iemlib2 - Win32 Release" (basierend auf "Win32 (x86) External Target") +!MESSAGE "iemlib2 - Win32 Debug" (basierend auf "Win32 (x86) External Target") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" + +!IF "$(CFG)" == "iemlib2 - Win32 Release" + +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Cmd_Line "NMAKE /f makefile_win" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "makefile_win.exe" +# PROP BASE Bsc_Name "makefile_win.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Cmd_Line "NMAKE /f makefile_win" +# PROP Rebuild_Opt "/a" +# PROP Target_File "iemlib2.exe" +# PROP Bsc_Name "iemlib2.bsc" +# PROP Target_Dir "" + +!ELSEIF "$(CFG)" == "iemlib2 - Win32 Debug" + +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Cmd_Line "NMAKE /f makefile_win" +# PROP BASE Rebuild_Opt "/a" +# PROP BASE Target_File "makefile_win.exe" +# PROP BASE Bsc_Name "makefile_win.bsc" +# PROP BASE Target_Dir "" +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Cmd_Line "NMAKE /f makefile_win" +# PROP Rebuild_Opt "/a" +# PROP Target_File "iemlib2.exe" +# PROP Bsc_Name "iemlib2.bsc" +# PROP Target_Dir "" + +!ENDIF + +# Begin Target + +# Name "iemlib2 - Win32 Release" +# Name "iemlib2 - Win32 Debug" + +!IF "$(CFG)" == "iemlib2 - Win32 Release" + +!ELSEIF "$(CFG)" == "iemlib2 - Win32 Debug" + +!ENDIF + +# Begin Source File + +SOURCE=.\makefile_win +# End Source File +# End Target +# End Project diff --git a/src/iemlib2/iemlib2.dsw b/src/iemlib2/iemlib2.dsw new file mode 100644 index 0000000..2226931 --- /dev/null +++ b/src/iemlib2/iemlib2.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "iemlib2"=.\iemlib2.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/src/iemlib2/init.c b/src/iemlib2/init.c new file mode 100644 index 0000000..e7ab93b --- /dev/null +++ b/src/iemlib2/init.c @@ -0,0 +1,203 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ init ---------------------------- */ +static t_class *init_class; + +typedef struct _init +{ + t_object x_obj; + int x_n; + int x_ac; + t_atom *x_at; + t_symbol *x_sym; + t_atomtype x_type; +} t_init; + +static void init_bang(t_init *x) +{ + if(x->x_type == A_FLOAT) + outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at)); + else if(x->x_type == A_SYMBOL) + outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at)); + else if(x->x_type == A_NULL) + outlet_bang(x->x_obj.ob_outlet); + else if(x->x_type == A_COMMA) + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at); + else if(x->x_type == A_GIMME) + outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at); + else if(x->x_type == A_POINTER) + outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at->a_w.w_gpointer); +} + +static void init_loadbang(t_init *x) +{ + if(!sys_noloadbang) + init_bang(x); +} + +static void init_float(t_init *x, t_float f) +{ + x->x_ac = 1; + SETFLOAT(x->x_at, f); + x->x_sym = &s_float; + x->x_type = A_FLOAT; + outlet_float(x->x_obj.ob_outlet, f); +} + +static void init_symbol(t_init *x, t_symbol *s) +{ + x->x_ac = 1; + SETSYMBOL(x->x_at, s); + x->x_sym = &s_symbol; + x->x_type = A_SYMBOL; + outlet_symbol(x->x_obj.ob_outlet, s); +} + +static void init_pointer(t_init *x, t_gpointer *gp) +{ + x->x_ac = 1; + SETPOINTER(x->x_at, gp); + x->x_sym = &s_pointer; + x->x_type = A_POINTER; + outlet_pointer(x->x_obj.ob_outlet, gp); +} + +static void init_list(t_init *x, t_symbol *s, int ac, t_atom *av) +{ + t_atom *at; + + if(ac > x->x_n) + { + if(x->x_at) + freebytes(x->x_at, x->x_n * sizeof(t_atom)); + x->x_n = ac; + x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); + } + x->x_ac = ac; + x->x_sym = &s_list; + at = x->x_at; + while(ac--) + *at++ = *av++; + x->x_type = A_GIMME; + outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac, x->x_at); +} + +static void init_anything(t_init *x, t_symbol *s, int ac, t_atom *av) +{ + t_atom *at; + + if(ac > x->x_n) + { + if(x->x_at) + freebytes(x->x_at, x->x_n * sizeof(t_atom)); + x->x_n = ac; + x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); + } + x->x_ac = ac; + x->x_sym = s; + at = x->x_at; + while(ac--) + *at++ = *av++; + x->x_type = A_COMMA; + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at); +} + +static void init_free(t_init *x) +{ + if(x->x_at) + freebytes(x->x_at, x->x_n * sizeof(t_atom)); +} + +static void *init_new(t_symbol *s, int ac, t_atom *av) +{ + t_init *x = (t_init *)pd_new(init_class); + int i; + + x->x_type = A_NULL; + if(!ac) + { + x->x_type = A_NULL; + x->x_sym = &s_bang; + x->x_n = 1; + x->x_ac = 0; + x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); + } + else if(ac == 1) + { + if(IS_A_SYMBOL(av,0)) + { + x->x_type = A_COMMA; + x->x_sym = atom_getsymbol(av); + x->x_n = 1; + x->x_ac = 0; + x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); + } + else + { + if(IS_A_FLOAT(av,0)) + { + x->x_type = A_FLOAT; + x->x_sym = &s_float; + } + else if(IS_A_POINTER(av,0)) + { + x->x_type = A_POINTER; + x->x_sym = &s_pointer; + } + x->x_n = x->x_ac = 1; + x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); + x->x_at[0] = *av; + } + } + else + { + if(IS_A_SYMBOL(av,0)) + { + x->x_type = A_COMMA;/*for anything*/ + x->x_sym = atom_getsymbol(av++); + ac--; + } + else + { + x->x_type = A_GIMME; + x->x_sym = &s_list; + } + x->x_n = x->x_ac = ac; + x->x_at = (t_atom *)getbytes(x->x_n * sizeof(t_atom)); + for(i=0; i<ac; i++) + x->x_at[i] = *av++; + } + outlet_new(&x->x_obj, &s_list); + return (x); +} + +void init_setup(void) +{ + init_class = class_new(gensym("init"), (t_newmethod)init_new, + (t_method)init_free, sizeof(t_init), 0, A_GIMME, 0); + class_addcreator((t_newmethod)init_new, gensym("ii"), A_GIMME, 0); + class_addmethod(init_class, (t_method)init_loadbang, gensym("loadbang"), 0); + class_addbang(init_class, (t_method)init_bang); + class_addanything(init_class, init_anything); + class_addlist(init_class, init_list); + class_addpointer(init_class, init_pointer); + class_addfloat(init_class, (t_method)init_float); + class_addsymbol(init_class, init_symbol); + class_sethelpsymbol(init_class, gensym("iemhelp/help-init")); +} + diff --git a/src/iemlib2/list2send.c b/src/iemlib2/list2send.c new file mode 100644 index 0000000..eb956d1 --- /dev/null +++ b/src/iemlib2/list2send.c @@ -0,0 +1,246 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ list2send ---------------------------- */ +static t_class *list2send_class; + +typedef struct _list2send +{ + t_object x_obj; + int x_max; + char *x_snd_able; + t_symbol **x_send_entries; + t_symbol *x_set; +} t_list2send; + +static void list2send_list(t_list2send *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac >= 2) && (IS_A_FLOAT(av,0))) + { + int identifier_index = (int)atom_getintarg(0, ac, av); + + if(identifier_index < x->x_max) + { + if(x->x_snd_able[identifier_index]) + { + t_symbol *sender = x->x_send_entries[identifier_index]; + + if(sender->s_thing) + { + if(ac == 2) + { + if(IS_A_FLOAT(av, 1)) + pd_float(sender->s_thing, atom_getfloatarg(1, ac, av)); + else if(IS_A_SYMBOL(av, 1)) + pd_symbol(sender->s_thing, atom_getsymbolarg(1, ac, av)); + } + else + pd_list(sender->s_thing, &s_list, ac-1, av+1); + } + } + } + } +} + +static void list2send_set(t_list2send *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac >= 2) && (IS_A_FLOAT(av,0))) + { + int identifier_index = (int)atom_getintarg(0, ac, av); + + if(identifier_index < x->x_max) + { + if(x->x_snd_able[identifier_index]) + { + t_symbol *sender = x->x_send_entries[identifier_index]; + + if(sender->s_thing) + typedmess(sender->s_thing, s, ac-1, av+1); + } + } + } +} + +static void list2send_all(t_list2send *x, t_symbol *s, int ac, t_atom *av) +{ + int i, n=x->x_max; + + if(ac == n) + { + for(i=n-1; i>=0; i--)/*change*/ + { + if(x->x_snd_able[i]) + { + t_symbol *sender = x->x_send_entries[i]; + + if(sender->s_thing) + { + if(IS_A_FLOAT(av, i)) + pd_float(sender->s_thing, atom_getfloatarg(i, ac, av)); + else if(IS_A_SYMBOL(av, i)) + pd_symbol(sender->s_thing, atom_getsymbolarg(i, ac, av)); + } + } + } + } +} + +static void list2send_set_all(t_list2send *x, t_symbol *s, int ac, t_atom *av) +{ + int i, n=x->x_max; + + if(ac == n) + { + for(i=n-1; i>=0; i--)/*change*/ + { + if(x->x_snd_able[i]) + { + t_symbol *sender = x->x_send_entries[i]; + + if(sender->s_thing) + typedmess(sender->s_thing, x->x_set, 1, av+i); + } + } + } +} + +static void list2send_from(t_list2send *x, t_symbol *s, int ac, t_atom *av) +{ + int n=x->x_max; + + if(ac >= 1) + { + int i, j, beg=(int)atom_getintarg(0, ac, av); + + if((beg + ac - 1) <= n) + { + for(i=ac-1,j=beg+ac-2; i>=1; i--,j--)/*change*/ + { + if(x->x_snd_able[j]) + { + t_symbol *sender = x->x_send_entries[j]; + + if(sender->s_thing) + { + if(IS_A_FLOAT(av, i)) + pd_float(sender->s_thing, atom_getfloatarg(i, ac, av)); + else if(IS_A_SYMBOL(av, i)) + pd_symbol(sender->s_thing, atom_getsymbolarg(i, ac, av)); + } + } + } + } + } +} + +static void list2send_set_from(t_list2send *x, t_symbol *s, int ac, t_atom *av) +{ + int n=x->x_max; + + if(ac >= 1) + { + int i, j, beg=(int)atom_getintarg(0, ac, av); + + if((beg + ac - 1) <= n) + { + for(i=ac-1,j=beg+ac-2; i>=1; i--,j--)/*change*/ + { + if(x->x_snd_able[j]) + { + t_symbol *sender = x->x_send_entries[j]; + + if(sender->s_thing) + typedmess(sender->s_thing, x->x_set, 1, av+i); + } + } + } + } +} + +static void list2send_add(t_list2send *x, t_symbol *s, int ac, t_atom *av) +{ + if(ac == 2) + { + int identifier_index = (int)atom_getintarg(0, ac, av); + + if(identifier_index < x->x_max) + { + if(IS_A_SYMBOL(av, 1)) + { + x->x_send_entries[identifier_index] = atom_getsymbolarg(1, ac, av); + x->x_snd_able[identifier_index] = 1; + } + else if(IS_A_FLOAT(av, 1)) + { + char str[100]; + + sprintf(str, "%g", atom_getfloatarg(1, ac, av)); + x->x_send_entries[identifier_index] = gensym(str); + x->x_snd_able[identifier_index] = 1; + } + } + } +} + +static void list2send_clear(t_list2send *x) +{ + int i, n=x->x_max; + + for(i=0; i<n; i++) + { + if(x->x_snd_able[i]) + x->x_snd_able[i] = 0; + } +} + +static void list2send_free(t_list2send *x) +{ + freebytes(x->x_snd_able, x->x_max * sizeof(char)); + freebytes(x->x_send_entries, x->x_max * sizeof(t_symbol *)); +} + +static void *list2send_new(t_float fmax) +{ + t_list2send *x = (t_list2send *)pd_new(list2send_class); + int i, max = (int)fmax; + t_atom *ap; + + if(max <= 0) + max = 80; + x->x_max = max; + x->x_snd_able = (char *)getbytes(max * sizeof(char)); + x->x_send_entries = (t_symbol **)getbytes(max * sizeof(t_symbol *)); + for(i=0; i<max; i++) + x->x_snd_able[i] = 0; + x->x_set = gensym("set"); + return (x); +} + +void list2send_setup(void) +{ + list2send_class = class_new(gensym("list2send"), (t_newmethod)list2send_new, + (t_method)list2send_free, sizeof(t_list2send), 0, A_DEFFLOAT, 0); + class_addlist(list2send_class, list2send_list); + class_addmethod(list2send_class, (t_method)list2send_add, gensym("add"), A_GIMME, 0); + class_addmethod(list2send_class, (t_method)list2send_set, gensym("set"), A_GIMME, 0); + class_addmethod(list2send_class, (t_method)list2send_all, gensym("all"), A_GIMME, 0); + class_addmethod(list2send_class, (t_method)list2send_set_all, gensym("set_all"), A_GIMME, 0); + class_addmethod(list2send_class, (t_method)list2send_from, gensym("from"), A_GIMME, 0); + class_addmethod(list2send_class, (t_method)list2send_set_from, gensym("set_from"), A_GIMME, 0); + class_addmethod(list2send_class, (t_method)list2send_clear, gensym("clear"), 0); + class_sethelpsymbol(list2send_class, gensym("iemhelp/help-list2send")); +} diff --git a/src/iemlib2/makefile b/src/iemlib2/makefile new file mode 100644 index 0000000..d44bf58 --- /dev/null +++ b/src/iemlib2/makefile @@ -0,0 +1,82 @@ +current: all + +.SUFFIXES: .pd_linux + +INCLUDE = -I. -I/usr/local/src/pd/src + +LDFLAGS = -export-dynamic -shared +LIB = -ldl -lm -lpthread + +#select either the DBG and OPT compiler flags below: + +CFLAGS = -DPD -DUNIX -Wall -W -Werror -Wno-unused \ + -Wno-parentheses -Wno-switch -O6 -funroll-loops -fomit-frame-pointer \ + -DDL_OPEN + +SYSTEM = $(shell uname -m) + +# the sources + +SRC = add2_comma.c \ + bpe.c \ + dollarg.c \ + exp_inc.c \ + float24.c \ + iem_anything_kernel.c \ + iem_append_kernel.c \ + iem_i_route.c \ + iem_pbank_csv.c \ + iem_prepend_kernel.c \ + iem_receive_kernel.c \ + iem_route.c \ + iem_sel_any.c \ + iem_send_kernel.c \ + init.c \ + list2send.c \ + mergefilename.c \ + modulo_counter.c \ + post_netreceive.c \ + pre_inlet.c \ + prepend_ascii.c \ + round_zero.c \ + sigfade.c \ + sigiem_blocksize.c \ + sigiem_samplerate.c \ + sigLFO_noise.c \ + sigm2f.c \ + speedlim.c \ + splitfilename.c \ + stripfilename.c \ + toggle_mess.c \ + transf_fader.c \ + unsymbol.c \ + wrap.c \ + iemlib2.c + +TARGET = iemlib2.pd_linux + + +OBJ = $(SRC:.c=.o) + +# +# ------------------ targets ------------------------------------ +# + +clean: + rm ../../lib/$(TARGET) + rm *.o + +all: $(OBJ) + @echo :: $(OBJ) + ld $(LDFLAGS) -o $(TARGET) *.o $(LIB) + strip --strip-unneeded $(TARGET) + mv $(TARGET) ../../lib + rm *.o + +$(OBJ) : %.o : %.c + touch $*.c + cc $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c + + + + diff --git a/src/iemlib2/makefile_win b/src/iemlib2/makefile_win new file mode 100644 index 0000000..21e5678 --- /dev/null +++ b/src/iemlib2/makefile_win @@ -0,0 +1,71 @@ + +all: ..\..\lib\iemlib2.dll + +VIS_CPP_PATH = "C:\Programme\Microsoft Visual Studio\Vc98" + +PD_INST_PATH = "C:\Programme\pd" + +PD_WIN_INCLUDE_PATH = /I. /I$(PD_INST_PATH)\src /I$(VIS_CPP_PATH)\include + +PD_WIN_C_FLAGS = /nologo /W3 /WX /DMSW /DNT /DPD /DWIN32 /DWINDOWS /Ox -DPA_LITTLE_ENDIAN + +PD_WIN_L_FLAGS = /nologo + +PD_WIN_LIB = /NODEFAULTLIB:libc /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel /NODEFAULTLIB:uuid \ + $(VIS_CPP_PATH)\lib\libc.lib \ + $(VIS_CPP_PATH)\lib\oldnames.lib \ + $(VIS_CPP_PATH)\lib\kernel32.lib \ + $(VIS_CPP_PATH)\lib\wsock32.lib \ + $(VIS_CPP_PATH)\lib\winmm.lib \ + $(PD_INST_PATH)\bin\pthreadVC.lib \ + $(PD_INST_PATH)\bin\pd.lib + + +SRC = add2_comma.c \ + bpe.c \ + dollarg.c \ + exp_inc.c \ + float24.c \ + iem_anything_kernel.c \ + iem_append_kernel.c \ + iem_i_route.c \ + iem_pbank_csv.c \ + iem_prepend_kernel.c \ + iem_receive_kernel.c \ + iem_route.c \ + iem_sel_any.c \ + iem_send_kernel.c \ + init.c \ + list2send.c \ + mergefilename.c \ + modulo_counter.c \ + post_netreceive.c \ + pre_inlet.c \ + prepend_ascii.c \ + round_zero.c \ + sigfade.c \ + sigiem_blocksize.c \ + sigiem_samplerate.c \ + sigLFO_noise.c \ + sigm2f.c \ + speedlim.c \ + splitfilename.c \ + stripfilename.c \ + toggle_mess.c \ + transf_fader.c \ + unsymbol.c \ + wrap.c \ + iemlib2.c + + +OBJ = $(SRC:.c=.obj) + +.c.obj: + cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c + +..\..\lib\iemlib2.dll: $(OBJ) + link $(PD_WIN_L_FLAGS) /dll /export:iemlib2_setup \ + /out:..\..\lib\iemlib2.dll $(OBJ) $(PD_WIN_LIB) + +clean: + del *.obj diff --git a/src/iemlib2/mergefilename.c b/src/iemlib2/mergefilename.c new file mode 100644 index 0000000..7fe134b --- /dev/null +++ b/src/iemlib2/mergefilename.c @@ -0,0 +1,229 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* -------------------------- mergefilename ------------------------------ */ + +static t_class *mergefilename_class; + +typedef struct _mergefilename +{ + t_object x_obj; + char x_sep[2]; +} t_mergefilename; + +static void mergefilename_separator(t_mergefilename *x, t_symbol *s, int ac, t_atom *av) +{ + if(ac > 0) + { + if(IS_A_SYMBOL(av, 0)) + { + if(strlen(av->a_w.w_symbol->s_name) == 1) + x->x_sep[0] = av->a_w.w_symbol->s_name[0]; + else if(!strcmp(av->a_w.w_symbol->s_name, "backslash")) + x->x_sep[0] = '\\'; + else if(!strcmp(av->a_w.w_symbol->s_name, "slash")) + x->x_sep[0] = '/'; + else if(!strcmp(av->a_w.w_symbol->s_name, "blank")) + x->x_sep[0] = ' '; + else if(!strcmp(av->a_w.w_symbol->s_name, "space")) + x->x_sep[0] = ' '; + else if(!strcmp(av->a_w.w_symbol->s_name, "dollar")) + x->x_sep[0] = '$'; + else if(!strcmp(av->a_w.w_symbol->s_name, "comma")) + x->x_sep[0] = ','; + else if(!strcmp(av->a_w.w_symbol->s_name, "semi")) + x->x_sep[0] = ';'; + else if(!strcmp(av->a_w.w_symbol->s_name, "leftbrace")) + x->x_sep[0] = '{'; + else if(!strcmp(av->a_w.w_symbol->s_name, "rightbrace")) + x->x_sep[0] = '}'; + else + x->x_sep[0] = 0; + } + else if(IS_A_FLOAT(av, 0)) + { + int i; + float f=fabs(av->a_w.w_float); + + while(f >= 10.0) + f *= 0.1; + i = (int)f; + x->x_sep[0] = (char)i + '0'; + } + } + else + x->x_sep[0] = 0; +} + +static void mergefilename_float(t_mergefilename *x, t_floatarg f) +{ + char fbuf[30]; + + fbuf[0] = 0; + sprintf(fbuf, "%g", f); + outlet_symbol(x->x_obj.ob_outlet, gensym(fbuf)); +} + +static void mergefilename_symbol(t_mergefilename *x, t_symbol *s) +{ + outlet_symbol(x->x_obj.ob_outlet, s); +} + +static void mergefilename_list(t_mergefilename *x, t_symbol *s, int ac, t_atom *av) +{ + char *cbeg, fbuf[30]; + int size=400, i, len, cursize=0; + + cbeg = (char *)getbytes(size * sizeof(char)); + cbeg[0] = 0; + if(ac > 0) + { + if(IS_A_SYMBOL(av, 0)) + { + len = strlen(av->a_w.w_symbol->s_name); + if((len + cursize) >= (size-1)) + { + cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char)); + size = 2*(len + cursize); + } + strcat(cbeg, av->a_w.w_symbol->s_name); + cursize += len; + } + else if(IS_A_FLOAT(av, 0)) + { + sprintf(fbuf, "%g", av->a_w.w_float); + len = strlen(fbuf); + if((len + cursize) >= (size-1)) + { + cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char)); + size = 2*(len + cursize); + } + strcat(cbeg, fbuf); + cursize += len; + } + } + + if(ac > 1) + { + for(i=1; i<ac; i++) + { + av++; + strcat(cbeg, x->x_sep); + if(IS_A_SYMBOL(av, 0)) + { + len = strlen(av->a_w.w_symbol->s_name); + if((len + cursize) >= (size-1)) + { + cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char)); + size = 2*(len + cursize); + } + strcat(cbeg, av->a_w.w_symbol->s_name); + cursize += len; + } + else if(IS_A_FLOAT(av, 0)) + { + sprintf(fbuf, "%g", av->a_w.w_float); + len = strlen(fbuf); + if((len + cursize) >= (size-1)) + { + cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char)); + size = 2*(len + cursize); + } + strcat(cbeg, fbuf); + cursize += len; + } + } + } + outlet_symbol(x->x_obj.ob_outlet, gensym(cbeg)); + freebytes(cbeg, size * sizeof(char)); +} + +static void mergefilename_anything(t_mergefilename *x, t_symbol *s, int ac, t_atom *av) +{ + char *cbeg, fbuf[30]; + int size=400, i, len, cursize=0; + + cbeg = (char *)getbytes(size * sizeof(char)); + cbeg[0] = 0; + len = strlen(s->s_name); + if((len + cursize) >= (size-1)) + { + cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char)); + size = 2*(len + cursize); + } + strcat(cbeg, s->s_name); + cursize += len; + if(ac > 0) + { + for(i=0; i<ac; i++) + { + strcat(cbeg, x->x_sep); + if(IS_A_SYMBOL(av, 0)) + { + len = strlen(av->a_w.w_symbol->s_name); + if((len + cursize) >= (size-1)) + { + cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char)); + size = 2*(len + cursize); + } + strcat(cbeg, av->a_w.w_symbol->s_name); + cursize += len; + } + else if(IS_A_FLOAT(av, 0)) + { + sprintf(fbuf, "%g", av->a_w.w_float); + len = strlen(fbuf); + if((len + cursize) >= (size-1)) + { + cbeg = (char *)resizebytes(cbeg, size*sizeof(char), 2*(len + cursize)*sizeof(char)); + size = 2*(len + cursize); + } + strcat(cbeg, fbuf); + cursize += len; + } + av++; + } + } + outlet_symbol(x->x_obj.ob_outlet, gensym(cbeg)); + freebytes(cbeg, size * sizeof(char)); +} + +static void *mergefilename_new(t_symbol *s, int ac, t_atom *av) +{ + t_mergefilename *x = (t_mergefilename *)pd_new(mergefilename_class); + + x->x_sep[0] = 0; + x->x_sep[1] = 0; + if(ac > 0) + mergefilename_separator(x, s, ac, av); + outlet_new(&x->x_obj, &s_symbol); + return (x); +} + +void mergefilename_setup(void) +{ + mergefilename_class = class_new(gensym("mergefilename"), (t_newmethod)mergefilename_new, + 0, sizeof(t_mergefilename), 0, A_GIMME, 0); + class_addmethod(mergefilename_class, (t_method)mergefilename_separator, gensym("separator"), A_GIMME, 0); + class_addmethod(mergefilename_class, (t_method)mergefilename_separator, gensym("sep"), A_GIMME, 0); + class_addfloat(mergefilename_class, mergefilename_float); + class_addsymbol(mergefilename_class, mergefilename_symbol); + class_addlist(mergefilename_class, mergefilename_list); + class_addanything(mergefilename_class, mergefilename_anything); + class_sethelpsymbol(mergefilename_class, gensym("iemhelp/help-mergefilename")); +} diff --git a/src/iemlib2/modulo_counter.c b/src/iemlib2/modulo_counter.c new file mode 100644 index 0000000..3c072e2 --- /dev/null +++ b/src/iemlib2/modulo_counter.c @@ -0,0 +1,90 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ---------------- modulo-counter. ----------------- */ + +static t_class *modulo_counter_class; + +typedef struct _modulo_counter +{ + t_object x_obj; + int x_max; + int x_cur; +} t_modulo_counter; + +static void modulo_counter_bang(t_modulo_counter *x) +{ + outlet_float(x->x_obj.ob_outlet, x->x_cur++); + x->x_cur = x->x_cur % x->x_max; +} + +static void modulo_counter_float(t_modulo_counter *x, t_float max) +{ + int i = (int)max; + + if(i < 1) + i = 1; + if(x->x_cur >= i) + x->x_cur = i - 1; + x->x_max = i; +} + +static void modulo_counter_ft1(t_modulo_counter *x, t_float set_init) +{ + int i = (int)set_init; + + if(i < 0) + i = 0; + if(i >= x->x_max) + i = x->x_max - 1; + x->x_cur = i; +} + +static void *modulo_counter_new(t_symbol *s, int ac, t_atom *av) +{ + t_modulo_counter *x = (t_modulo_counter *)pd_new(modulo_counter_class); + int max = 1, cur = 0; + + if((ac > 0) && IS_A_FLOAT(av, 0)) + max = atom_getintarg(0, ac, av); + if((ac > 1) && IS_A_FLOAT(av, 1)) + cur = atom_getintarg(1, ac, av); + if(max < 1) + x->x_max = 1; + else + x->x_max = max; + if(cur < 0) + cur = 0; + if(cur >= x->x_max) + cur = x->x_max - 1; + x->x_cur = cur; + outlet_new(&x->x_obj, &s_float); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + return (x); +} + +void modulo_counter_setup(void) +{ + modulo_counter_class = class_new(gensym("modulo_counter"), + (t_newmethod)modulo_counter_new, 0, + sizeof(t_modulo_counter), 0, A_GIMME, 0); + class_addbang(modulo_counter_class, (t_method)modulo_counter_bang); + class_addfloat(modulo_counter_class, (t_method)modulo_counter_float); + class_addmethod(modulo_counter_class, (t_method)modulo_counter_ft1, gensym("ft1"), A_FLOAT, 0); + class_sethelpsymbol(modulo_counter_class, gensym("iemhelp/help-modulo_counter")); +} diff --git a/src/iemlib2/post_netreceive.c b/src/iemlib2/post_netreceive.c new file mode 100644 index 0000000..1d42c3d --- /dev/null +++ b/src/iemlib2/post_netreceive.c @@ -0,0 +1,243 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ post_netreceive ---------------------------- */ +static t_class *post_netreceive_class; + +typedef struct _post_netreceive +{ + t_object x_obj; + int x_max_send_entries; + int x_min_send_entries; + char *x_snd_able; + t_symbol **x_send_entries; + t_symbol **x_plus_entries; + t_symbol *x_set; + t_atom x_at[2]; + t_atom *x_atbuf; + t_symbol *x_send; + t_symbol *x_setall; +} t_post_netreceive; + +static void post_netreceive_list(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av) +{ + int identifier_index = (int)atom_getintarg(0, ac, av); + t_symbol *sender=0; + + if((identifier_index >= x->x_min_send_entries) && (identifier_index < x->x_max_send_entries)) + { + if(x->x_snd_able[identifier_index] == 1) + { + sender = x->x_send_entries[identifier_index]; + if(sender->s_thing) + { + if(ac == 2) + pd_float(sender->s_thing, atom_getfloatarg(1, ac, av)); + else + pd_list(sender->s_thing, &s_list, ac-1, av+1); + } + } + else if(x->x_snd_able[identifier_index] == 2) + { + sender = x->x_send_entries[identifier_index]; + if(sender->s_thing) + { + typedmess(sender->s_thing, x->x_plus_entries[identifier_index], ac-1, av+1); + } + } + if(IS_A_FLOAT(av,1)) + SETFLOAT(x->x_atbuf+identifier_index+1, atom_getfloatarg(1, ac, av)); + else if(IS_A_SYMBOL(av,1)) + SETSYMBOL(x->x_atbuf+identifier_index+1, atom_getsymbolarg(1, ac, av)); + } +} + +/*static void post_netreceive_set_item_name(t_post_netreceive *x, t_symbol *snd, t_float findex) +{ + int index = (int)findex; + + if((index >= 0) && (index < x->x_max_send_entries)) + { + x->x_send_entries[index] = snd; + x->x_snd_able[index] = 1; + } +}*/ + +static void post_netreceive_set_item_name(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av) +{ + if(ac == 2) + { + int identifier_index = (int)atom_getintarg(1, ac, av); + + if((identifier_index >= x->x_min_send_entries) && (identifier_index < x->x_max_send_entries)) + { + x->x_send_entries[identifier_index] = atom_getsymbolarg(0, ac, av); + x->x_snd_able[identifier_index] = 1; + } + } + else if(ac >= 3) + { + int identifier_index = (int)atom_getintarg(2, ac, av); + + if((identifier_index >= 0) && (identifier_index < x->x_max_send_entries)) + { + x->x_send_entries[identifier_index] = atom_getsymbolarg(1, ac, av); + x->x_snd_able[identifier_index] = 2; + x->x_plus_entries[identifier_index] = atom_getsymbolarg(0, ac, av); + } + } +} + +static void post_netreceive_all_parameters(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av) +{ + int i, min = x->x_min_send_entries, max = x->x_max_send_entries; + t_symbol *sendname=0; + + if(min > ac) + min = ac; + if(max > ac) + max = ac; + for(i=min; i<max; i++) + { + if(x->x_snd_able[i] == 1) + { + sendname = x->x_send_entries[i]; + if(sendname->s_thing) + { + pd_float(sendname->s_thing, atom_getfloatarg(i, ac, av)); + } + } + else if(x->x_snd_able[i] == 2) + { + sendname = x->x_send_entries[i]; + if(sendname->s_thing) + { + typedmess(sendname->s_thing, x->x_plus_entries[i], 1, av+i); + } + } + if(IS_A_FLOAT(av,i)) + SETFLOAT(x->x_atbuf+i+1, atom_getfloatarg(i, ac, av)); + else if(IS_A_SYMBOL(av,i)) + SETSYMBOL(x->x_atbuf+i+1, atom_getsymbolarg(i, ac, av)); + } +} + +static void post_netreceive_set_all_parameters(t_post_netreceive *x, t_symbol *s, int ac, t_atom *av) +{ + int i, min = x->x_min_send_entries, max = x->x_max_send_entries; + t_symbol *sendname; + + if(min > ac) + min = ac; + if(max > ac) + max = ac; + for(i=min; i<max; i++) + { + if(x->x_snd_able[i]) + { + sendname = x->x_send_entries[i]; + if(sendname->s_thing) + { + typedmess(sendname->s_thing, x->x_set, 1, av+i); + } + } + } +} + +static void post_netreceive_clear(t_post_netreceive *x) +{ + int i, max = x->x_max_send_entries; + + for(i=0; i<max; i++) + { + if(x->x_snd_able[i]) + { + x->x_snd_able[i] = 0; + } + } +} + +static void post_netreceive_fetch_all_parameters(t_post_netreceive *x, t_float nr_sended_para) +{ + int nrsp=(int)nr_sended_para; + t_atom *ap=x->x_atbuf+x->x_min_send_entries; + + if(nrsp <= 0) + nrsp = 1; + if(nrsp > (x->x_max_send_entries - x->x_min_send_entries)) + nrsp = (x->x_max_send_entries - x->x_min_send_entries); + outlet_anything(x->x_obj.ob_outlet, x->x_send, nrsp+1, x->x_atbuf); +} + +static void post_netreceive_free(t_post_netreceive *x) +{ + freebytes(x->x_snd_able, x->x_max_send_entries * sizeof(char)); + freebytes(x->x_send_entries, x->x_max_send_entries * sizeof(t_symbol *)); + freebytes(x->x_atbuf, (x->x_max_send_entries+2) * sizeof(t_atom)); + freebytes(x->x_plus_entries, x->x_max_send_entries * sizeof(t_symbol *)); +} + +static void *post_netreceive_new(t_float fmin, t_float fmax) +{ + t_post_netreceive *x = (t_post_netreceive *)pd_new(post_netreceive_class); + int i, min = (int)fmin, max = (int)fmax; + t_atom *ap; + + if(min < 0) + min = 0; + if(max <= 0) + max = 80; + x->x_min_send_entries = min; + x->x_max_send_entries = max; + x->x_atbuf = (t_atom *)getbytes((x->x_max_send_entries+2) * sizeof(t_atom)); + x->x_snd_able = (char *)getbytes(x->x_max_send_entries * sizeof(char)); + x->x_send_entries = (t_symbol **)getbytes(x->x_max_send_entries * sizeof(t_symbol *)); + x->x_plus_entries = (t_symbol **)getbytes(x->x_max_send_entries * sizeof(t_symbol *)); + x->x_set = gensym("set"); + x->x_setall = gensym("set_all_parameters"); + x->x_send = gensym("send"); + ap = x->x_atbuf; + SETSYMBOL(ap, x->x_setall); + ap++; + for(i=1; i<=max; i++) + { + SETFLOAT(ap, 0.0); + ap++; + } + for(i=0; i<max; i++) + { + x->x_snd_able[i] = 0; + x->x_plus_entries[i] = x->x_set; + } + outlet_new(&x->x_obj, &s_list); + return (x); +} + +void post_netreceive_setup(void) +{ + post_netreceive_class = class_new(gensym("post_netreceive"), (t_newmethod)post_netreceive_new, + (t_method)post_netreceive_free, sizeof(t_post_netreceive), 0, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addlist(post_netreceive_class, post_netreceive_list); + class_addmethod(post_netreceive_class, (t_method)post_netreceive_set_item_name, gensym("set_item_name"), A_GIMME, 0); + class_addmethod(post_netreceive_class, (t_method)post_netreceive_all_parameters, gensym("all_parameters"), A_GIMME, 0); + class_addmethod(post_netreceive_class, (t_method)post_netreceive_set_all_parameters, gensym("set_all_parameters"), A_GIMME, 0); + class_addmethod(post_netreceive_class, (t_method)post_netreceive_fetch_all_parameters, gensym("fetch_all_parameters"), A_DEFFLOAT, 0); + class_addmethod(post_netreceive_class, (t_method)post_netreceive_clear, gensym("clear"), 0); + class_sethelpsymbol(post_netreceive_class, gensym("iemhelp/help-post_netreceive")); +} + diff --git a/src/iemlib2/pre_inlet.c b/src/iemlib2/pre_inlet.c new file mode 100644 index 0000000..dd0b440 --- /dev/null +++ b/src/iemlib2/pre_inlet.c @@ -0,0 +1,94 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ pre_inlet ---------------------------- */ +static t_class *pre_inlet_class; + +typedef struct _pre_inlet +{ + t_object x_obj; + t_atom x_at; + t_symbol *x_sym; +} t_pre_inlet; + +static void pre_inlet_bang(t_pre_inlet *x) +{ + outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at); + outlet_bang(x->x_obj.ob_outlet); +} + +static void pre_inlet_float(t_pre_inlet *x, t_float f) +{ + outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at); + outlet_float(x->x_obj.ob_outlet, f); +} + +static void pre_inlet_symbol(t_pre_inlet *x, t_symbol *s) +{ + outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at); + outlet_symbol(x->x_obj.ob_outlet, s); +} + +static void pre_inlet_pointer(t_pre_inlet *x, t_gpointer *gp) +{ + outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at); + outlet_pointer(x->x_obj.ob_outlet, gp); +} + +static void pre_inlet_list(t_pre_inlet *x, t_symbol *s, int ac, t_atom *av) +{ + outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at); + outlet_list(x->x_obj.ob_outlet, s, ac, av); +} + +static void pre_inlet_anything(t_pre_inlet *x, t_symbol *s, int ac, t_atom *av) +{ + outlet_anything(x->x_obj.ob_outlet, x->x_sym, 1, &x->x_at); + outlet_anything(x->x_obj.ob_outlet, s, ac, av); +} + +static void pre_inlet_free(t_pre_inlet *x) +{ +} + +static void *pre_inlet_new(t_floatarg fsym, t_floatarg finlet) +{ + t_pre_inlet *x = (t_pre_inlet *)pd_new(pre_inlet_class); + char str[2]; + + SETFLOAT(&x->x_at, finlet); + str[0] = (char)((int)(fsym)&0xff); + str[1] = 0; + x->x_sym = gensym(str); + outlet_new(&x->x_obj, &s_list); + return (x); +} + +void pre_inlet_setup(void) +{ + pre_inlet_class = class_new(gensym("pre_inlet"), (t_newmethod)pre_inlet_new, + (t_method)pre_inlet_free, sizeof(t_pre_inlet), 0, A_DEFFLOAT, A_DEFFLOAT, 0); + class_addbang(pre_inlet_class, (t_method)pre_inlet_bang); + class_addfloat(pre_inlet_class, (t_method)pre_inlet_float); + class_addsymbol(pre_inlet_class, pre_inlet_symbol); + class_addpointer(pre_inlet_class, pre_inlet_pointer); + class_addlist(pre_inlet_class, pre_inlet_list); + class_addanything(pre_inlet_class, pre_inlet_anything); + class_sethelpsymbol(pre_inlet_class, gensym("iemhelp/help-pre_inlet")); +} + diff --git a/src/iemlib2/prepend_ascii.c b/src/iemlib2/prepend_ascii.c new file mode 100644 index 0000000..7541ff9 --- /dev/null +++ b/src/iemlib2/prepend_ascii.c @@ -0,0 +1,127 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ prepend_ascii ---------------------------- */ +static t_class *prepend_ascii_class; + +typedef struct _prepend_ascii +{ + t_object x_obj; + t_atom *x_at; + int x_size; + int x_ac; + t_symbol *x_sym; +} t_prepend_ascii; + +static void prepend_ascii_atcopy(t_atom *src, t_atom *dst, int n) +{ + while(n--) + *dst++ = *src++; +} + +static void prepend_ascii_bang(t_prepend_ascii *x) +{ + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac, x->x_at); +} + +static void prepend_ascii_float(t_prepend_ascii *x, t_float f) +{ + SETFLOAT(x->x_at+x->x_ac, f); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at); +} + +static void prepend_ascii_symbol(t_prepend_ascii *x, t_symbol *s) +{ + SETSYMBOL(x->x_at+x->x_ac, s); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at); +} + +static void prepend_ascii_pointer(t_prepend_ascii *x, t_gpointer *gp) +{ + SETPOINTER(x->x_at+x->x_ac, gp); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, x->x_ac+1, x->x_at); +} + +static void prepend_ascii_list(t_prepend_ascii *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac+x->x_ac) > x->x_size) + { + x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac)*sizeof(t_atom)); + x->x_size = (ac+x->x_ac); + } + prepend_ascii_atcopy(av, x->x_at+x->x_ac, ac); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+x->x_ac, x->x_at); +} + +static void prepend_ascii_anything(t_prepend_ascii *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac+x->x_ac+1) > x->x_size) + { + x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac+1)*sizeof(t_atom)); + x->x_size = (ac+x->x_ac+1); + } + SETSYMBOL(x->x_at+x->x_ac, s); + prepend_ascii_atcopy(av, x->x_at+x->x_ac+1, ac); + outlet_anything(x->x_obj.ob_outlet, x->x_sym, ac+x->x_ac+1, x->x_at); +} + +static void prepend_ascii_free(t_prepend_ascii *x) +{ + if(x->x_at) + freebytes(x->x_at, x->x_size * sizeof(t_atom)); +} + +static void *prepend_ascii_new(t_symbol *s, int ac, t_atom *av) +{ + if((ac <= 0) || (!IS_A_FLOAT(av,0))) + { + post("ERROR: prepend_ascii need a float between 1 and 255 as 1. arg. !!!"); + return(0); + } + else + { + t_prepend_ascii *x = (t_prepend_ascii *)pd_new(prepend_ascii_class); + char str[2]; + int i; + + x->x_size = 10 + ac; + x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom)); + str[0] = (char)((int)(atom_getfloatarg(0,ac,av))&0xff); + str[1] = 0; + x->x_sym = gensym(str); + x->x_ac = ac - 1; + for(i=1; i<ac; i++) + x->x_at[i-1] = av[i]; + outlet_new(&x->x_obj, &s_list); + return (x); + } +} + +void prepend_ascii_setup(void) +{ + prepend_ascii_class = class_new(gensym("prepend_ascii"), (t_newmethod)prepend_ascii_new, + (t_method)prepend_ascii_free, sizeof(t_prepend_ascii), 0, A_GIMME, 0); + class_addbang(prepend_ascii_class, (t_method)prepend_ascii_bang); + class_addfloat(prepend_ascii_class, (t_method)prepend_ascii_float); + class_addsymbol(prepend_ascii_class, prepend_ascii_symbol); + class_addpointer(prepend_ascii_class, prepend_ascii_pointer); + class_addlist(prepend_ascii_class, prepend_ascii_list); + class_addanything(prepend_ascii_class, prepend_ascii_anything); + class_sethelpsymbol(prepend_ascii_class, gensym("iemhelp/help-prepend_ascii")); +} + diff --git a/src/iemlib2/prepend_kernel.c b/src/iemlib2/prepend_kernel.c new file mode 100644 index 0000000..d66c7be --- /dev/null +++ b/src/iemlib2/prepend_kernel.c @@ -0,0 +1,351 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + + +/* ------------------------ prepend_kernel ---------------------------- */ +static t_class *prepend_kernel_class; + +typedef struct _prepend_kernel +{ + t_object x_obj; + int x_inlet_select; + int x_size12; + int x_size2; + int x_ac1; + int x_ac2; + t_atom *x_at12; + t_atom *x_at2; + t_symbol *x_sym1; + t_symbol *x_sym2; + t_atomtype x_type1; + t_atomtype x_type2; +} t_prepend_kernel; + +static void prepend_kernel_atcopy(t_atom *src, t_atom *dst, int n) +{ + while(n--) + *dst++ = *src++; +} + +static void prepend_kernel_merge(t_prepend_kernel *x, int off) +{ + if((x->x_ac1+x->x_ac2) > x->x_size1) + { + x->x_at1 = (t_atom *)resizebytes(x->x_at1, x->x_size1*sizeof(t_atom), 2*(x->x_ac1+x->x_ac2)*sizeof(t_atom)); + x->x_size1 = 2*(x->x_ac1+x->x_ac2); + } + if(off) + SETSYMBOL(x->x_at1 + x->x_ac1, x->x_sym2); + prepend_kernel_atcopy(x->x_at2, x->x_at1 + x->x_ac1 + off, x->x_ac2); +} + +static void prepend_kernel_out(t_prepend_kernel *x) +{ + int off=0; + + if(x->x_type1 == A_GIMME) + { + if(x->x_type2 == A_COMMA) + off = 1; + else + off = 0; + prepend_kernel_merge(x, off); + outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at1); + } + else if(x->x_type1 == A_COMMA) + { + if(x->x_type2 == A_COMMA) + off = 1; + else + off = 0; + prepend_kernel_merge(x, off); + outlet_anything(x->x_obj.ob_outlet, x->x_sym1, x->x_ac1+x->x_ac2+off, x->x_at1); + } + else if(x->x_type1 == A_NULL)/*depends on 2.part*/ + { + prepend_kernel_merge(x, 0); + if(x->x_type2 == A_GIMME) + outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac2, x->x_at1); + else if(x->x_type2 == A_COMMA) + outlet_anything(x->x_obj.ob_outlet, x->x_sym2, x->x_ac2, x->x_at1); + else if(x->x_type2 == A_FLOAT) + outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at1)); + else if(x->x_type2 == A_SYMBOL) + outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at1)); + else if(x->x_type2 == A_NULL) + outlet_bang(x->x_obj.ob_outlet); + else if(x->x_type2 == A_POINTER) + outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at1->a_w.w_gpointer); + } + else + { + if(x->x_type2 == A_COMMA) + off = 1; + else + off = 0; + prepend_kernel_merge(x, off); + if(x->x_type2 == A_NULL) + { + if(x->x_type1 == A_FLOAT) + outlet_float(x->x_obj.ob_outlet, atom_getfloat(x->x_at1)); + else if(x->x_type1 == A_SYMBOL) + outlet_symbol(x->x_obj.ob_outlet, atom_getsymbol(x->x_at1)); + else if(x->x_type1 == A_POINTER) + outlet_pointer(x->x_obj.ob_outlet, (t_gpointer *)x->x_at1->a_w.w_gpointer); + } + else + outlet_list(x->x_obj.ob_outlet, &s_list, x->x_ac1+x->x_ac2+off, x->x_at1); + } +} + +static void prepend_kernel_inlet_select(t_prepend_kernel *x, t_floatarg fin_sel_01) +{ + x->x_inlet_select = (int)fin_sel_01; +} + +static void prepend_kernel_bang(t_prepend_kernel *x) +{ + if(!x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac2 = 0; + x->x_type2 = A_NULL; + x->x_sym2 = &s_list; + } + else /* if 1st inlet */ + { + x->x_ac1 = 0; + x->x_type1 = A_NULL; + prepend_kernel_out(x); + } +} + +static void prepend_kernel_float(t_prepend_kernel *x, t_float f) +{ + if(!x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac2 = 1; + x->x_type2 = A_FLOAT; + SETFLOAT(x->x_at2, f); + x->x_sym2 = &s_list; + } + else /* if 1st inlet */ + { + x->x_ac1 = 1; + x->x_type1 = A_FLOAT; + SETFLOAT(x->x_at1, f); + prepend_kernel_out(x); + } +} + +static void prepend_kernel_symbol(t_prepend_kernel *x, t_symbol *s) +{ + if(!x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac2 = 1; + x->x_type2 = A_SYMBOL; + SETSYMBOL(x->x_at2, s); + x->x_sym2 = &s_list; + } + else /* if 1st inlet */ + { + x->x_ac1 = 1; + x->x_type1 = A_SYMBOL; + SETSYMBOL(x->x_at12, s); + prepend_kernel_out(x); + } +} + +static void prepend_kernel_pointer(t_prepend_kernel *x, t_gpointer *gp) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + x->x_ac2 = 1; + x->x_type2 = A_POINTER; + SETPOINTER(x->x_at2, gp); + x->x_sym2 = &s_list; + } + else /* if 1st inlet */ + { + x->x_ac1 = 1; + x->x_type1 = A_POINTER; + SETPOINTER(x->x_at12, gp); + prepend_kernel_out(x); + } +} + +static void prepend_kernel_list(t_prepend_kernel *x, t_symbol *s, int ac, t_atom *av) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + if(ac > x->x_size2) + { + x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom)); + x->x_size2 = 2*ac; + } + x->x_ac2 = ac; + x->x_type2 = A_GIMME; + x->x_sym2 = &s_list; + prepend_kernel_atcopy(av, x->x_at2, ac); + } + else /* if 1st inlet */ + { + if((x->x_ac1+ac) > x->x_size12) + { + x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), 2*(x->x_ac1+ac)*sizeof(t_atom)); + x->x_size12 = 2*(x->x_ac1+ac); + } + x->x_ac1 = ac; + x->x_type1 = A_GIMME; + prepend_kernel_atcopy(av, x->x_at12, ac); + x->x_sym1 = &s_list; + prepend_kernel_out(x); + } +} + +static void prepend_kernel_anything(t_prepend_kernel *x, t_symbol *s, int ac, t_atom *av) +{ + if(x->x_inlet_select) /* if 2nd inlet */ + { + if((ac+1) > x->x_size2) + { + x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), 2*ac*sizeof(t_atom)); + x->x_size2 = 2*ac; + } + SETSYMBOL(x->x_at2, s); + x->x_ac2 = ac; + x->x_type2 = A_COMMA; + x->x_sym2 = s; + prepend_kernel_atcopy(av, x->x_at2, ac); + } + else /* if 1st inlet */ + { + if((x->x_ac1+ac) > x->x_size12) + { + x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), (2*x->x_ac1+ac)*sizeof(t_atom)); + x->x_size12 = (2*x->x_ac1+ac); + } + x->x_ac1 = ac; + x->x_type1 = A_COMMA; + prepend_kernel_atcopy(av, x->x_at12, ac); + x->x_sym1 = s; + prepend_kernel_out(x); + } +} + +static void prepend_kernel_free(t_prepend_kernel *x) +{ + if(x->x_at1) + freebytes(x->x_at1, x->x_size1 * sizeof(t_atom)); +} + +static void *prepend_kernel_new(void) +{ + t_prepend_kernel *x = (t_prepend_kernel *)pd_new(prepend_kernel_class); + t_glist *glist = (t_glist *)canvas_getcurrent(); + t_canvas *canvas=glist_getcanvas(glist); + int ac=0; + t_atom *av; + + x->x_type2 = A_NULL; + x->x_sym2 = &s_list; + x->x_ac2 = 0; + + canvas_setcurrent(canvas); + canvas_getargs(&ac, &av); + canvas_unsetcurrent(canvas); + + x->x_type1 = A_NULL; + if(!ac) + { + x->x_type1 = A_NULL; + x->x_sym1 = &s_bang; + x->x_size1 = 10; + x->x_ac1 = 0; + x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom)); + } + else if(ac == 1) + { + if(IS_A_SYMBOL(av,0)) + { + x->x_type1 = A_COMMA; + x->x_sym1 = atom_getsymbol(av); + x->x_size1 = 10; + x->x_ac1 = 0; + x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom)); + } + else + { + if(IS_A_FLOAT(av,0)) + { + x->x_type1 = A_FLOAT; + x->x_sym1 = &s_float; + } + else if(IS_A_POINTER(av,0)) + { + x->x_type1 = A_POINTER; + x->x_sym1 = &s_pointer; + } + x->x_size1 = 11; + x->x_ac1 = 1; + x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom)); + x->x_at1[0] = *av; + } + } + else /* ac > 1 */ + { + if(IS_A_SYMBOL(av,0)) + { + x->x_type1 = A_COMMA;/*for anything*/ + x->x_sym1 = atom_getsymbol(av++); + ac--; + } + else + { + x->x_type1 = A_GIMME; + x->x_sym1 = &s_list; + } + x->x_size1 = ac + 10; + x->x_ac1 = ac; + x->x_at1 = (t_atom *)getbytes(x->x_size1 * sizeof(t_atom)); + prepend_kernel_atcopy(av, x->x_at1, ac); + } + + x->x_inlet_select = 1; + outlet_new(&x->x_obj, &s_list); + return (x); +} + +void prepend_kernel_setup(void) +{ + char str[2]; + + str[0] = 1; + str[1] = 0; + prepend_kernel_class = class_new(gensym("prepend_kernel"), + (t_newmethod)prepend_kernel_new, (t_method)prepend_kernel_free, + sizeof(t_prepend_kernel), 0, 0); + class_addbang(prepend_kernel_class, (t_method)prepend_kernel_bang); + class_addpointer(prepend_kernel_class, prepend_kernel_pointer); + class_addfloat(prepend_kernel_class, (t_method)prepend_kernel_float); + class_addsymbol(prepend_kernel_class, prepend_kernel_symbol); + class_addlist(prepend_kernel_class, prepend_kernel_list); + class_addmethod(prepend_kernel_class, (t_method)prepend_kernel_inlet_select, gensym(str), A_FLOAT, 0); + class_addanything(prepend_kernel_class, prepend_kernel_anything); + class_sethelpsymbol(prepend_kernel_class, gensym("iemhelp/help-merge_any")); +} + diff --git a/src/iemlib2/round_zero.c b/src/iemlib2/round_zero.c new file mode 100644 index 0000000..b37afb4 --- /dev/null +++ b/src/iemlib2/round_zero.c @@ -0,0 +1,67 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + + +/* ------------------------ round_zero ---------------------------- */ +static t_class *round_zero_class; + +typedef struct _round_zero +{ + t_object x_obj; + t_float x_bound; +} t_round_zero; + +static void round_zero_anything(t_round_zero *x, t_symbol *s, int ac, t_atom *av) +{ + int i; + t_float f, bound=x->x_bound; + + for(i=0; i<ac; i++) + { + if(IS_A_FLOAT(av, i)) + { + f = atom_getfloatarg(i, ac, av); + if((f <= bound)&&(f >= -bound)) + { + f = 0.0f; + SETFLOAT(av+i, f); + } + } + } + outlet_anything(x->x_obj.ob_outlet, s, ac, av); +} + +static void *round_zero_new(t_floatarg bound) +{ + t_round_zero *x = (t_round_zero *)pd_new(round_zero_class); + + if(bound < 0.0f) + x->x_bound = -bound; + else + x->x_bound = bound; + outlet_new(&x->x_obj, &s_list); + return (x); +} + +void round_zero_setup(void) +{ + round_zero_class = class_new(gensym("round_zero"), (t_newmethod)round_zero_new, + 0, sizeof(t_round_zero), 0, A_DEFFLOAT, 0); + class_addanything(round_zero_class, round_zero_anything); + class_sethelpsymbol(round_zero_class, gensym("iemhelp/help-round_zero")); +} + diff --git a/src/iemlib2/sigLFO_noise.c b/src/iemlib2/sigLFO_noise.c new file mode 100644 index 0000000..3714f5a --- /dev/null +++ b/src/iemlib2/sigLFO_noise.c @@ -0,0 +1,129 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ LFO_noise~ ----------------------------- */ + +static t_class *sigLFO_noise_class; + +typedef struct _sigLFO_noise +{ + t_object x_obj; + double x_range; + double x_rcp_range; + unsigned int x_state; + float x_fact; + float x_incr; + float x_y1; + float x_y2; + float x_phase; +} t_sigLFO_noise; + +static int sigLFO_noise_makeseed(void) +{ + static unsigned int sigLFO_noise_nextseed = 1489853723; + + sigLFO_noise_nextseed = sigLFO_noise_nextseed * 435898247 + 938284287; + return(sigLFO_noise_nextseed & 0x7fffffff); +} + +static float sigLFO_noise_new_rand(t_sigLFO_noise *x) +{ + unsigned int state = x->x_state; + double new_val, range = x->x_range; + + x->x_state = state = state * 472940017 + 832416023; + new_val = range * ((double)state) * (1./4294967296.); + if(new_val >= range) + new_val = range-1; + new_val -= 32767.0; + return(new_val*(1.0/32767.0)); +} + +static void *sigLFO_noise_new(t_float freq) +{ + t_sigLFO_noise *x = (t_sigLFO_noise *)pd_new(sigLFO_noise_class); + + x->x_range = 65535.0; + x->x_rcp_range = (double)x->x_range * (1.0/4294967296.0); + x->x_state = sigLFO_noise_makeseed(); + x->x_fact = 2. / 44100.0; + x->x_incr = freq * x->x_fact; + if(x->x_incr < 0.0) + x->x_incr = 0.0; + else if(x->x_incr > 0.1) + x->x_incr = 0.1; + x->x_y1 = sigLFO_noise_new_rand(x); + x->x_y2 = sigLFO_noise_new_rand(x); + x->x_phase = 0.0; + outlet_new(&x->x_obj, gensym("signal")); + return (x); +} + +static t_int *sigLFO_noise_perform(t_int *w) +{ + t_float *out = (t_float *)(w[1]); + t_sigLFO_noise *x = (t_sigLFO_noise *)(w[2]); + int n = (int)(w[3]); + float phase = x->x_phase; + float x_y1 = x->x_y1; + float x_y2 = x->x_y2; + float incr = x->x_incr; + + while(n--) + { + if(phase > 1.0) + { + x_y1 = x_y2; + x_y2 = sigLFO_noise_new_rand(x); + phase -= 1.0; + } + *out++ = (x_y2 - x_y1) * phase + x_y1; + phase += incr; + } + x->x_phase = phase; + x->x_y1 = x_y1; + x->x_y2 = x_y2; + return (w+4); +} + +static void sigLFO_noise_float(t_sigLFO_noise *x, t_float freq) +{ + x->x_incr = freq * x->x_fact; + if(x->x_incr < 0.0) + x->x_incr = 0.0; + else if(x->x_incr > 0.1) + x->x_incr = 0.1; +} + +static void sigLFO_noise_dsp(t_sigLFO_noise *x, t_signal **sp) +{ + x->x_fact = 2. / sp[0]->s_sr; + dsp_add(sigLFO_noise_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); +} + +void sigLFO_noise_setup(void) +{ + sigLFO_noise_class = class_new(gensym("LFO_noise~"), + (t_newmethod)sigLFO_noise_new, 0, + sizeof(t_sigLFO_noise), 0, A_DEFFLOAT, 0); + class_addmethod(sigLFO_noise_class, (t_method)sigLFO_noise_dsp, + gensym("dsp"), 0); + class_addfloat(sigLFO_noise_class, (t_method)sigLFO_noise_float); + class_sethelpsymbol(sigLFO_noise_class, gensym("iemhelp/help-LFO_noise~")); +} + diff --git a/src/iemlib2/sigfade.c b/src/iemlib2/sigfade.c new file mode 100644 index 0000000..d63f363 --- /dev/null +++ b/src/iemlib2/sigfade.c @@ -0,0 +1,183 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ fade~ ----------------------------- */ + +float *iem_fade_table_lin=(float *)0L; +float *iem_fade_table_linsqrt=(float *)0L; +float *iem_fade_table_sqrt=(float *)0L; +float *iem_fade_table_sin=(float *)0L; +float *iem_fade_table_sinhann=(float *)0L; +float *iem_fade_table_hann=(float *)0L; + +static t_class *sigfade_class; + +typedef struct _sigfade +{ + t_object x_obj; + float *x_table; + float x_f; +} t_sigfade; + +static void sigfade_set(t_sigfade *x, t_symbol *s) +{ + if(!strcmp(s->s_name, "_lin")) + x->x_table = iem_fade_table_lin; + else if(!strcmp(s->s_name, "_linsqrt")) + x->x_table = iem_fade_table_linsqrt; + else if(!strcmp(s->s_name, "_sqrt")) + x->x_table = iem_fade_table_sqrt; + else if(!strcmp(s->s_name, "_sin")) + x->x_table = iem_fade_table_sin; + else if(!strcmp(s->s_name, "_sinhann")) + x->x_table = iem_fade_table_sinhann; + else if(!strcmp(s->s_name, "_hann")) + x->x_table = iem_fade_table_hann; +} + +static void *sigfade_new(t_symbol *s) +{ + t_sigfade *x = (t_sigfade *)pd_new(sigfade_class); + outlet_new(&x->x_obj, gensym("signal")); + x->x_f = 0; + x->x_table = iem_fade_table_lin; + sigfade_set(x, s); + return (x); +} + +static t_int *sigfade_perform(t_int *w) +{ + t_float *in = (t_float *)(w[1]); + t_float *out = (t_float *)(w[2]); + t_sigfade *x = (t_sigfade *)(w[3]); + int n = (int)(w[4]); + float *tab = x->x_table, *addr, f1, f2, frac; + double dphase; + int normhipart; + union tabfudge tf; + + tf.tf_d = UNITBIT32; + normhipart = tf.tf_i[HIOFFSET]; + +#if 0 /* this is the readable version of the code. */ + while (n--) + { + dphase = (double)(*in++ * (float)(COSTABSIZE) * 0.99999) + UNITBIT32; + tf.tf_d = dphase; + addr = tab + (tf.tf_i[HIOFFSET] & (COSTABSIZE-1)); + tf.tf_i[HIOFFSET] = normhipart; + frac = tf.tf_d - UNITBIT32; + f1 = addr[0]; + f2 = addr[1]; + *out++ = f1 + frac * (f2 - f1); + } +#endif +#if 1 /* this is the same, unwrapped by hand. */ + dphase = (double)(*in++ * (float)(COSTABSIZE) * 0.99999) + UNITBIT32; + tf.tf_d = dphase; + addr = tab + (tf.tf_i[HIOFFSET] & (COSTABSIZE-1)); + tf.tf_i[HIOFFSET] = normhipart; + while (--n) + { + dphase = (double)(*in++ * (float)(COSTABSIZE) * 0.99999) + UNITBIT32; + frac = tf.tf_d - UNITBIT32; + tf.tf_d = dphase; + f1 = addr[0]; + f2 = addr[1]; + addr = tab + (tf.tf_i[HIOFFSET] & (COSTABSIZE-1)); + *out++ = f1 + frac * (f2 - f1); + tf.tf_i[HIOFFSET] = normhipart; + } + frac = tf.tf_d - UNITBIT32; + f1 = addr[0]; + f2 = addr[1]; + *out++ = f1 + frac * (f2 - f1); +#endif + return (w+5); +} + +static void sigfade_dsp(t_sigfade *x, t_signal **sp) +{ + dsp_add(sigfade_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); +} + +static void sigfade_maketable(void) +{ + int i; + float *fp, phase, fff,phsinc = 0.5*3.141592653 / ((float)COSTABSIZE*0.99999); + union tabfudge tf; + + if(!iem_fade_table_sin) + { + iem_fade_table_sin = (float *)getbytes(sizeof(float) * (COSTABSIZE+1)); + for(i=COSTABSIZE+1, fp=iem_fade_table_sin, phase=0; i--; fp++, phase+=phsinc) + *fp = sin(phase); + } + if(!iem_fade_table_sinhann) + { + iem_fade_table_sinhann = (float *)getbytes(sizeof(float) * (COSTABSIZE+1)); + for(i=COSTABSIZE+1, fp=iem_fade_table_sinhann, phase=0; i--; fp++, phase+=phsinc) + { + fff = sin(phase); + *fp = fff*sqrt(fff); + } + } + if(!iem_fade_table_hann) + { + iem_fade_table_hann = (float *)getbytes(sizeof(float) * (COSTABSIZE+1)); + for(i=COSTABSIZE+1, fp=iem_fade_table_hann, phase=0; i--; fp++, phase+=phsinc) + { + fff = sin(phase); + *fp = fff*fff; + } + } + phsinc = 1.0 / ((float)COSTABSIZE*0.99999); + if(!iem_fade_table_lin) + { + iem_fade_table_lin = (float *)getbytes(sizeof(float) * (COSTABSIZE+1)); + for(i=COSTABSIZE+1, fp=iem_fade_table_lin, phase=0; i--; fp++, phase+=phsinc) + *fp = phase; + } + if(!iem_fade_table_linsqrt) + { + iem_fade_table_linsqrt = (float *)getbytes(sizeof(float) * (COSTABSIZE+1)); + for(i=COSTABSIZE+1, fp=iem_fade_table_linsqrt, phase=0; i--; fp++, phase+=phsinc) + *fp = pow(phase, 0.75); + } + if(!iem_fade_table_sqrt) + { + iem_fade_table_sqrt = (float *)getbytes(sizeof(float) * (COSTABSIZE+1)); + for(i=COSTABSIZE+1, fp=iem_fade_table_sqrt, phase=0; i--; fp++, phase+=phsinc) + *fp = sqrt(phase); + } + tf.tf_d = UNITBIT32 + 0.5; + if((unsigned)tf.tf_i[LOWOFFSET] != 0x80000000) + bug("fade~: unexpected machine alignment"); +} + +void sigfade_setup(void) +{ + sigfade_class = class_new(gensym("fade~"), (t_newmethod)sigfade_new, 0, + sizeof(t_sigfade), 0, A_DEFSYM, 0); + CLASS_MAINSIGNALIN(sigfade_class, t_sigfade, x_f); + class_addmethod(sigfade_class, (t_method)sigfade_dsp, gensym("dsp"), 0); + class_addmethod(sigfade_class, (t_method)sigfade_set, gensym("set"), A_DEFSYM, 0); + class_sethelpsymbol(sigfade_class, gensym("iemhelp/help-fade~")); + sigfade_maketable(); +} + diff --git a/src/iemlib2/sigiem_blocksize.c b/src/iemlib2/sigiem_blocksize.c new file mode 100644 index 0000000..1f8d016 --- /dev/null +++ b/src/iemlib2/sigiem_blocksize.c @@ -0,0 +1,61 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> + +/* ------------------------ iem_blocksize~ ----------------------------- */ + +static t_class *sigiem_blocksize_class; + +typedef struct _sigiem_blocksize +{ + t_object x_obj; + t_float x_blocksize; + t_clock *x_clock; + t_float x_f; +} t_sigiem_blocksize; + +static void sigiem_blocksize_out(t_sigiem_blocksize *x) +{ + outlet_float(x->x_obj.ob_outlet, x->x_blocksize); +} + +static void sigiem_blocksize_free(t_sigiem_blocksize *x) +{ + clock_free(x->x_clock); +} + +static void *sigiem_blocksize_new(t_symbol *s) +{ + t_sigiem_blocksize *x = (t_sigiem_blocksize *)pd_new(sigiem_blocksize_class); + x->x_clock = clock_new(x, (t_method)sigiem_blocksize_out); + outlet_new(&x->x_obj, &s_float); + x->x_blocksize = 64.0f; + x->x_f = 0.0f; + return (x); +} + +static void sigiem_blocksize_dsp(t_sigiem_blocksize *x, t_signal **sp) +{ + x->x_blocksize = (t_float)(sp[0]->s_n); + clock_delay(x->x_clock, 0.0f); +} + +void sigiem_blocksize_setup(void) +{ + sigiem_blocksize_class = class_new(gensym("iem_blocksize~"), (t_newmethod)sigiem_blocksize_new, + (t_method)sigiem_blocksize_free, sizeof(t_sigiem_blocksize), 0, 0); + CLASS_MAINSIGNALIN(sigiem_blocksize_class, t_sigiem_blocksize, x_f); + class_addmethod(sigiem_blocksize_class, (t_method)sigiem_blocksize_dsp, gensym("dsp"), 0); +} + diff --git a/src/iemlib2/sigiem_samplerate.c b/src/iemlib2/sigiem_samplerate.c new file mode 100644 index 0000000..fee7f5c --- /dev/null +++ b/src/iemlib2/sigiem_samplerate.c @@ -0,0 +1,61 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> + +/* ------------------------ iem_samplerate~ ----------------------------- */ + +static t_class *sigiem_samplerate_class; + +typedef struct _sigiem_samplerate +{ + t_object x_obj; + t_float x_samplerate; + t_clock *x_clock; + t_float x_f; +} t_sigiem_samplerate; + +static void sigiem_samplerate_out(t_sigiem_samplerate *x) +{ + outlet_float(x->x_obj.ob_outlet, x->x_samplerate); +} + +static void sigiem_samplerate_free(t_sigiem_samplerate *x) +{ + clock_free(x->x_clock); +} + +static void *sigiem_samplerate_new(t_symbol *s) +{ + t_sigiem_samplerate *x = (t_sigiem_samplerate *)pd_new(sigiem_samplerate_class); + x->x_clock = clock_new(x, (t_method)sigiem_samplerate_out); + outlet_new(&x->x_obj, &s_float); + x->x_samplerate = 44100.0f; + x->x_f = 0.0f; + return (x); +} + +static void sigiem_samplerate_dsp(t_sigiem_samplerate *x, t_signal **sp) +{ + x->x_samplerate = (t_float)(sp[0]->s_sr); + clock_delay(x->x_clock, 0.0f); +} + +void sigiem_samplerate_setup(void) +{ + sigiem_samplerate_class = class_new(gensym("iem_samplerate~"), (t_newmethod)sigiem_samplerate_new, + (t_method)sigiem_samplerate_free, sizeof(t_sigiem_samplerate), 0, 0); + CLASS_MAINSIGNALIN(sigiem_samplerate_class, t_sigiem_samplerate, x_f); + class_addmethod(sigiem_samplerate_class, (t_method)sigiem_samplerate_dsp, gensym("dsp"), 0); +} + diff --git a/src/iemlib2/sigm2f.c b/src/iemlib2/sigm2f.c new file mode 100644 index 0000000..f623905 --- /dev/null +++ b/src/iemlib2/sigm2f.c @@ -0,0 +1,127 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ m2f~ ----------------------------- */ + +#define M2FTABSIZE 2048 + +float *iem_m2f_table=(float *)0L; + +static t_class *sigm2f_class; + +typedef struct _sigm2f +{ + t_object x_obj; + float x_msi; +} t_sigm2f; + +static void *sigm2f_new(void) +{ + t_sigm2f *x = (t_sigm2f *)pd_new(sigm2f_class); + outlet_new(&x->x_obj, gensym("signal")); + x->x_msi = 0; + return (x); +} + +static t_int *sigm2f_perform(t_int *w) +{ + t_float *in = (t_float *)(w[1]); + t_float *out = (t_float *)(w[2]); + t_sigm2f *x = (t_sigm2f *)(w[3]); + int n = (int)(w[4]); + float *tab = iem_m2f_table, *addr, f1, f2, frac, iinn; + double dphase; + int normhipart; + union tabfudge tf; + + tf.tf_d = UNITBIT32; + normhipart = tf.tf_i[HIOFFSET]; + +#if 0 /* this is the readable version of the code. */ + while (n--) + { + iinn = (*in++)*10.0+670.0; + dphase = (double)iinn + UNITBIT32; + tf.tf_d = dphase; + addr = tab + (tf.tf_i[HIOFFSET] & (M2FTABSIZE-1)); + tf.tf_i[HIOFFSET] = normhipart; + frac = tf.tf_d - UNITBIT32; + f1 = addr[0]; + f2 = addr[1]; + *out++ = f1 + frac * (f2 - f1); + } +#endif +#if 1 /* this is the same, unwrapped by hand. */ + iinn = (*in++)*10.0+670.0; + dphase = (double)iinn + UNITBIT32; + tf.tf_d = dphase; + addr = tab + (tf.tf_i[HIOFFSET] & (M2FTABSIZE-1)); + tf.tf_i[HIOFFSET] = normhipart; + while (--n) + { + iinn = (*in++)*10.0+670.0; + dphase = (double)iinn + UNITBIT32; + frac = tf.tf_d - UNITBIT32; + tf.tf_d = dphase; + f1 = addr[0]; + f2 = addr[1]; + addr = tab + (tf.tf_i[HIOFFSET] & (M2FTABSIZE-1)); + *out++ = f1 + frac * (f2 - f1); + tf.tf_i[HIOFFSET] = normhipart; + } + frac = tf.tf_d - UNITBIT32; + f1 = addr[0]; + f2 = addr[1]; + *out++ = f1 + frac * (f2 - f1); +#endif + return (w+5); +} + +static void sigm2f_dsp(t_sigm2f *x, t_signal **sp) +{ + dsp_add(sigm2f_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); +} + +static void sigm2f_maketable(void) +{ + union tabfudge tf; + + if(!iem_m2f_table) + { + int i; + float *fp, midi, refexp=440.0*exp(-5.75*log(2.0)); + + iem_m2f_table = (float *)getbytes(sizeof(float) * (M2FTABSIZE+1)); + for(i=0, fp=iem_m2f_table, midi=-67.0; i<=M2FTABSIZE; i++, fp++, midi+=0.1) + *fp = refexp * exp(0.057762265047 * midi); + } + tf.tf_d = UNITBIT32 + 0.5; + if((unsigned)tf.tf_i[LOWOFFSET] != 0x80000000) + bug("m2f~: unexpected machine alignment"); +} + +void sigm2f_setup(void) +{ + sigm2f_class = class_new(gensym("m2f~"), (t_newmethod)sigm2f_new, 0, + sizeof(t_sigm2f), 0, 0); + CLASS_MAINSIGNALIN(sigm2f_class, t_sigm2f, x_msi); + class_addmethod(sigm2f_class, (t_method)sigm2f_dsp, gensym("dsp"), 0); + sigm2f_maketable(); + class_sethelpsymbol(sigm2f_class, gensym("iemhelp/help-m2f~")); +} + diff --git a/src/iemlib2/speedlim.c b/src/iemlib2/speedlim.c new file mode 100644 index 0000000..023835a --- /dev/null +++ b/src/iemlib2/speedlim.c @@ -0,0 +1,107 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ speedlim ---------------------------- */ +static t_class *speedlim_class; + +typedef struct _speedlim +{ + t_object x_obj; + t_clock *x_clock; + float x_delay; + int x_output_is_locked; + int x_there_was_n_event; + float x_curval; + float x_lastout; +} t_speedlim; + +static void speedlim_stop(t_speedlim *x) +{ + x->x_output_is_locked = 0; + x->x_there_was_n_event = 0; + clock_unset(x->x_clock); +} + +static void speedlim_tick(t_speedlim *x) +{ + if(x->x_there_was_n_event) + { + x->x_output_is_locked = 1; + x->x_there_was_n_event = 0; + outlet_float(x->x_obj.ob_outlet, x->x_curval); + clock_delay(x->x_clock, x->x_delay); + } + else + { + x->x_output_is_locked = 0; + x->x_there_was_n_event = 0; + } +} + +static void speedlim_float(t_speedlim *x, t_float val) +{ + x->x_curval = val; + if(!x->x_output_is_locked) + { + x->x_output_is_locked = 1; + x->x_there_was_n_event = 0; + outlet_float(x->x_obj.ob_outlet, x->x_curval); + clock_delay(x->x_clock, x->x_delay); + } + else + x->x_there_was_n_event = 1; +} + +static void speedlim_ft1(t_speedlim *x, t_float delay) +{ + if(delay < 0.0) + delay = 0.0; + x->x_delay = delay; +} + +static void speedlim_free(t_speedlim *x) +{ + clock_free(x->x_clock); +} + +static void *speedlim_new(t_float delay) +{ + t_speedlim *x = (t_speedlim *)pd_new(speedlim_class); + + if(delay < 0.0) + delay = 0.0; + x->x_delay = delay; + x->x_curval = 0.0f; + x->x_output_is_locked = 0; + x->x_there_was_n_event = 0; + x->x_clock = clock_new(x, (t_method)speedlim_tick); + outlet_new(&x->x_obj, &s_float); + inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); + return (x); +} + +void speedlim_setup(void) +{ + speedlim_class = class_new(gensym("speedlim"), (t_newmethod)speedlim_new, + (t_method)speedlim_free, sizeof(t_speedlim), 0, A_DEFFLOAT, 0); + class_addmethod(speedlim_class, (t_method)speedlim_stop, gensym("stop"), 0); + class_addfloat(speedlim_class, (t_method)speedlim_float); + class_addmethod(speedlim_class, (t_method)speedlim_ft1, gensym("ft1"), A_FLOAT, 0); + class_sethelpsymbol(speedlim_class, gensym("iemhelp/help-speedlim")); +} + diff --git a/src/iemlib2/splitfilename.c b/src/iemlib2/splitfilename.c new file mode 100644 index 0000000..485b214 --- /dev/null +++ b/src/iemlib2/splitfilename.c @@ -0,0 +1,142 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* -------------------------- splitfilename ------------------------------ */ + +static t_class *splitfilename_class; + +typedef struct _splitfilename +{ + t_object x_obj; + char x_sep[2]; + void *x_outpath; + void *x_outfile; +} t_splitfilename; + +static void splitfilename_separator(t_splitfilename *x, t_symbol *s, int ac, t_atom *av) +{ + if(ac > 0) + { + if(IS_A_SYMBOL(av, 0)) + { + if(strlen(av->a_w.w_symbol->s_name) == 1) + x->x_sep[0] = av->a_w.w_symbol->s_name[0]; + else if(!strcmp(av->a_w.w_symbol->s_name, "backslash")) + x->x_sep[0] = '\\'; + else if(!strcmp(av->a_w.w_symbol->s_name, "slash")) + x->x_sep[0] = '/'; + else if(!strcmp(av->a_w.w_symbol->s_name, "blank")) + x->x_sep[0] = ' '; + else if(!strcmp(av->a_w.w_symbol->s_name, "space")) + x->x_sep[0] = ' '; + else if(!strcmp(av->a_w.w_symbol->s_name, "dollar")) + x->x_sep[0] = '$'; + else if(!strcmp(av->a_w.w_symbol->s_name, "comma")) + x->x_sep[0] = ','; + else if(!strcmp(av->a_w.w_symbol->s_name, "semi")) + x->x_sep[0] = ';'; + else if(!strcmp(av->a_w.w_symbol->s_name, "leftbrace")) + x->x_sep[0] = '{'; + else if(!strcmp(av->a_w.w_symbol->s_name, "rightbrace")) + x->x_sep[0] = '}'; + else + x->x_sep[0] = '/'; + } + else if(IS_A_FLOAT(av, 0)) + { + int i; + float f=fabs(av->a_w.w_float); + + while(f >= 10.0) + f *= 0.1; + i = (int)f; + x->x_sep[0] = (char)i + '0'; + } + } + else + x->x_sep[0] = 0; +} + +static void splitfilename_symbol(t_splitfilename *x, t_symbol *s) +{ + int len = strlen(s->s_name); + + if(len) + { + if(x->x_sep[0] != 0) + { + char *str_path = (char *)getbytes(len*sizeof(char)); + char *str_file = (char *)getbytes(len*sizeof(char)); + char *cpp, *cpf; + + strcpy(str_path, s->s_name); + strcpy(str_file, s->s_name); + cpp = strrchr(str_path, x->x_sep[0]); + cpf = strrchr(str_file, x->x_sep[0]); + if(((int)cpp - (int)str_path) < 0) + { + outlet_symbol(x->x_outfile, gensym(str_file)); + outlet_symbol(x->x_outpath, &s_); + } + else if(((int)cpp - (int)str_path) >= len) + { + outlet_symbol(x->x_outfile, &s_); + outlet_symbol(x->x_outpath, gensym(str_path)); + } + else + { + *cpp = 0; + cpf++; + outlet_symbol(x->x_outfile, gensym(cpf)); + outlet_symbol(x->x_outpath, gensym(str_path)); + } + freebytes(str_file, len*sizeof(char)); + freebytes(str_path, len*sizeof(char)); + } + else + { + outlet_symbol(x->x_outfile, &s_); + outlet_symbol(x->x_outpath, s); + } + } +} + +static void *splitfilename_new(t_symbol *s, int ac, t_atom *av) +{ + t_splitfilename *x = (t_splitfilename *)pd_new(splitfilename_class); + + x->x_sep[0] = 0; + x->x_sep[1] = 0; + if(ac == 0) + x->x_sep[0] = '/'; + else + splitfilename_separator(x, s, ac, av); + x->x_outpath = outlet_new(&x->x_obj, &s_symbol); + x->x_outfile = outlet_new(&x->x_obj, &s_symbol); + return (x); +} + +void splitfilename_setup(void) +{ + splitfilename_class = class_new(gensym("splitfilename"), (t_newmethod)splitfilename_new, + 0, sizeof(t_splitfilename), 0, A_GIMME, 0); + class_addsymbol(splitfilename_class, splitfilename_symbol); + class_addmethod(splitfilename_class, (t_method)splitfilename_separator, gensym("separator"), A_GIMME, 0); + class_addmethod(splitfilename_class, (t_method)splitfilename_separator, gensym("sep"), A_GIMME, 0); + class_sethelpsymbol(splitfilename_class, gensym("iemhelp/help-splitfilename")); +} diff --git a/src/iemlib2/stripfilename.c b/src/iemlib2/stripfilename.c new file mode 100644 index 0000000..d229086 --- /dev/null +++ b/src/iemlib2/stripfilename.c @@ -0,0 +1,81 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* -------------------------- stripfilename ------------------------------ */ + +static t_class *stripfilename_class; + +typedef struct _stripfilename +{ + t_object x_obj; + int x_nr_char; +} t_stripfilename; + +static void stripfilename_symbol(t_stripfilename *x, t_symbol *s) +{ + if(x->x_nr_char < 0) + { + int len = strlen(s->s_name); + char *str=(char *)getbytes((len+2)*sizeof(char)); + int i=len + x->x_nr_char; + + strcpy(str, s->s_name); + if(i < 0) + i = 0; + str[i] = 0; + outlet_symbol(x->x_obj.ob_outlet, gensym(str)); + freebytes(str, (len+2)*sizeof(char)); + } + else if(x->x_nr_char > 0) + { + int len = strlen(s->s_name); + char *str=(char *)getbytes((len+2)*sizeof(char)); + int i=x->x_nr_char; + + strcpy(str, s->s_name); + if(i > len) + i = len; + outlet_symbol(x->x_obj.ob_outlet, gensym(str+i)); + freebytes(str, (len+2)*sizeof(char)); + } + else + outlet_symbol(x->x_obj.ob_outlet, s); +} + +static void stripfilename_set(t_stripfilename *x, t_floatarg nr_char) +{ + x->x_nr_char = (int)nr_char; +} + +static void *stripfilename_new(t_floatarg nr_char) +{ + t_stripfilename *x = (t_stripfilename *)pd_new(stripfilename_class); + + stripfilename_set(x, nr_char); + outlet_new(&x->x_obj, &s_symbol); + return (x); +} + +void stripfilename_setup(void) +{ + stripfilename_class = class_new(gensym("stripfilename"), (t_newmethod)stripfilename_new, + 0, sizeof(t_stripfilename), 0, A_DEFFLOAT, 0); + class_addsymbol(stripfilename_class, stripfilename_symbol); + class_addmethod(stripfilename_class, (t_method)stripfilename_set, gensym("set"), A_FLOAT, 0); + class_sethelpsymbol(stripfilename_class, gensym("iemhelp/help-stripfilename")); +} diff --git a/src/iemlib2/toggle_mess.c b/src/iemlib2/toggle_mess.c new file mode 100644 index 0000000..b8cb569 --- /dev/null +++ b/src/iemlib2/toggle_mess.c @@ -0,0 +1,119 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ------------------------ toggle_mess ---------------------------- */ +static t_class *toggle_mess_class; + +typedef struct _toggle_mess +{ + t_object x_obj; + int x_index; + int x_ac; + t_atom *x_at; + void *x_out_mid_sym; + void *x_out_rght_flt; + t_symbol *x_set; +} t_toggle_mess; + +static void toggle_mess_bang(t_toggle_mess *x) +{ + int i = x->x_index; + + outlet_float(x->x_out_rght_flt, (float)i); + if(IS_A_FLOAT(x->x_at, i)) + outlet_float(x->x_out_mid_sym, atom_getfloat(&x->x_at[i])); + else + outlet_anything(x->x_out_mid_sym, atom_getsymbol(&x->x_at[i]), 0, x->x_at); + outlet_anything(x->x_obj.ob_outlet, x->x_set, 1, &x->x_at[i]); +} + +static void toggle_mess_float(t_toggle_mess *x, t_float f) +{ + x->x_index++; + if(x->x_index >= x->x_ac) + x->x_index = 0; + toggle_mess_bang(x); +} + +static void toggle_mess_set(t_toggle_mess *x, t_symbol *s, int ac, t_atom *av) +{ + if((ac >= 1) && (IS_A_FLOAT(av, 0))) + { + int x_index = (int)atom_getint(av); + + if(x_index < 0) + x_index = 0; + else if(x_index >= x->x_ac) + x_index = x->x_ac; + x->x_index = x_index; + outlet_anything(x->x_obj.ob_outlet, x->x_set, 1, &x->x_at[x_index]); + } + else + toggle_mess_float(x, 0); +} + +static void toggle_mess_symbol(t_toggle_mess *x, t_symbol *s) +{ + toggle_mess_float(x, 0); +} + +static void toggle_mess_anything(t_toggle_mess *x, t_symbol *s, int ac, t_atom *av) +{ + toggle_mess_float(x, 0); +} + +static void toggle_mess_free(t_toggle_mess *x) +{ + freebytes(x->x_at, x->x_ac * sizeof(t_atom)); +} + +static void *toggle_mess_new(t_symbol *s, int ac, t_atom *av) +{ + t_toggle_mess *x = (t_toggle_mess *)pd_new(toggle_mess_class); + int i; + + if(!ac) + { + post("toggle_mess-ERROR: must have at least one argument!"); + x->x_at = (t_atom *)0; + return(0); + } + x->x_ac = ac; + x->x_at = (t_atom *)getbytes(ac * sizeof(t_atom)); + for(i=0; i<ac; i++) + x->x_at[i] = *av++; + x->x_index = 0; + x->x_set = gensym("set"); + outlet_new(&x->x_obj, &s_list); + x->x_out_mid_sym = outlet_new(&x->x_obj, &s_list); + x->x_out_rght_flt = outlet_new(&x->x_obj, &s_float); + return(x); +} + +void toggle_mess_setup(void) +{ + toggle_mess_class = class_new(gensym("toggle_mess"), (t_newmethod)toggle_mess_new, + (t_method)toggle_mess_free, sizeof(t_toggle_mess), 0, A_GIMME, 0); + class_addcreator((t_newmethod)toggle_mess_new, gensym("tm"), A_GIMME, 0); + class_addbang(toggle_mess_class, (t_method)toggle_mess_bang); + class_addmethod(toggle_mess_class, (t_method)toggle_mess_set, gensym("set"), A_GIMME, 0); + class_addfloat(toggle_mess_class, (t_method)toggle_mess_float); + class_addsymbol(toggle_mess_class, toggle_mess_symbol); + class_addanything(toggle_mess_class, toggle_mess_anything); + class_sethelpsymbol(toggle_mess_class, gensym("iemhelp/help-toggle_mess")); +} diff --git a/src/iemlib2/transf_fader.c b/src/iemlib2/transf_fader.c new file mode 100644 index 0000000..e2988d6 --- /dev/null +++ b/src/iemlib2/transf_fader.c @@ -0,0 +1,153 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + + +#include "m_pd.h" +#include "iemlib.h" +#include <math.h> +#include <stdio.h> +#include <string.h> + + +/* -------------------------- transf_fader ------------------------------ */ + +typedef struct _transf_fader +{ + t_object x_obj; + int x_size; + int x_message; + float *x_array; +} t_transf_fader; + +static t_class *transf_fader_class; + +static void transf_fader_pairs(t_transf_fader *x, t_symbol *s, int argc, t_atom *argv) +{ + if(argc >= 4) + { + int i, j, k, ac=argc/2; + int n=1000; + int i_prev=0; + int first=1; + int i_delta; + float val_delta; + float delta; + float val_prev=0.0f; + float val=0.0f; + float *vec=x->x_array; + float fad_in, fad_out; + + for(j=0; j<n; j++) + { + vec[j] = -123456.0f; + } + + for(j=0; j<ac; j++) + { + fad_in = atom_getfloat(argv++); + while(fad_in < 0.0f) + fad_in = 0.0f; + while(fad_in > 1000.0f) + fad_in = 1000.0f; + + fad_out = atom_getfloat(argv++); + while(fad_out < -123455.0f) + fad_out = -123455.0f; + + i = (int)fad_in; + vec[i] = fad_out; + } + + for(j=0; j<n; j++) + { + if(vec[j] > -123456.0f) + { + if(first) + { + first = 0; + i_prev = j; + val_prev = vec[j]; + } + else + { + i = j; + val = vec[j]; + i_delta = i - i_prev; + val_delta = val - val_prev; + if(i_delta > 1) + { + delta = val_delta / (float)i_delta; + for(k=i_prev+1; k<i; k++) + { + vec[k] = val_prev + delta*(float)(k - i_prev); + } + } + i_prev = i; + val_prev = val; + } + } + } + } + else + { + if(x->x_message) + post("transf_fader-ERROR: less than 2 pairs make no sense"); + } +} + +static void transf_fader_float(t_transf_fader *x, t_floatarg fad_in) +{ + float fad_out; + float *vec=x->x_array; + float fract; + int i; + + while(fad_in < 0.0f) + fad_in = 0.0f; + while(fad_in > 999.0f) + fad_in = 999.0f; + + i = (int)fad_in; + fract = fad_in - (float)i; + fad_out = vec[i] + fract*(vec[i+1] - vec[i]); + if(fad_out > -123455.0f) + outlet_float(x->x_obj.ob_outlet, fad_out); +} + +static void transf_fader_free(t_transf_fader *x) +{ + freebytes(x->x_array, x->x_size * sizeof(float)); +} + +static void *transf_fader_new(t_symbol *s, int argc, t_atom *argv) +{ + t_transf_fader *x = (t_transf_fader *)pd_new(transf_fader_class); + int i, n; + + x->x_size = 1001; + x->x_message = 0; + x->x_array = (float *)getbytes(x->x_size * sizeof(float)); + n = x->x_size; + for(i=0; i<n; i++) + x->x_array[i] = -123456.0f; + transf_fader_pairs(x, gensym("pairs"), argc, argv); + x->x_message = 1; + outlet_new(&x->x_obj, &s_float); + return (x); +} + +void transf_fader_setup(void) +{ + transf_fader_class = class_new(gensym("transf_fader"), (t_newmethod)transf_fader_new, (t_method)transf_fader_free, + sizeof(t_transf_fader), 0, A_GIMME, 0); + class_addfloat(transf_fader_class, (t_method)transf_fader_float); + class_addmethod(transf_fader_class, (t_method)transf_fader_pairs, gensym("pairs"), A_GIMME, 0); + class_sethelpsymbol(transf_fader_class, gensym("iemhelp/help-transf_fader")); +} diff --git a/src/iemlib2/unsymbol.c b/src/iemlib2/unsymbol.c new file mode 100644 index 0000000..b617836 --- /dev/null +++ b/src/iemlib2/unsymbol.c @@ -0,0 +1,49 @@ +/* Copyright (c) 1997-2003 Miller Puckette. +* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* -------------------------- unsymbol ------------------------------ */ + +static t_class *unsymbol_class; + +typedef struct _unsymbol +{ + t_object x_obj; + t_atom x_at; +} t_unsymbol; + +static void unsymbol_symbol(t_unsymbol *x, t_symbol *s) +{ + outlet_anything(x->x_obj.ob_outlet, s, 0, &(x->x_at)); +} + +static void *unsymbol_new(void) +{ + t_unsymbol *x = (t_unsymbol *)pd_new(unsymbol_class); + + outlet_new(&x->x_obj, &s_list); + return (x); +} + +void unsymbol_setup(void) +{ + unsymbol_class = class_new(gensym("unsymbol"), (t_newmethod)unsymbol_new, + 0, sizeof(t_unsymbol), 0, 0); + class_addcreator((t_newmethod)unsymbol_new, gensym("unsym"), 0); + class_addsymbol(unsymbol_class, unsymbol_symbol); + class_sethelpsymbol(unsymbol_class, gensym("iemhelp/help-unsymbol")); +} diff --git a/src/iemlib2/wrap.c b/src/iemlib2/wrap.c new file mode 100644 index 0000000..b594998 --- /dev/null +++ b/src/iemlib2/wrap.c @@ -0,0 +1,69 @@ +/* For information on usage and redistribution, and for a DISCLAIMER OF ALL +* WARRANTIES, see the file, "LICENSE.txt," in this distribution. + +iemlib2 written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2003 */ + +#ifdef NT +#pragma warning( disable : 4244 ) +#pragma warning( disable : 4305 ) +#endif + +#include "m_pd.h" +#include "iemlib.h" +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <math.h> + +/* ---- wrap - float=int or list of float=symbol concaternat to int=float ----- */ + + + +typedef struct _wrap +{ + t_object x_obj; + float x_f; +} t_wrap; + +static t_class *wrap_class; + +static void wrap_bang(t_wrap *x) +{ + outlet_float(x->x_obj.ob_outlet, x->x_f); +} + +static void wrap_float(t_wrap *x, t_float f) +{ + int i=(int)f; + + if(f > 0.0) + x->x_f = f - (float)i; + else + x->x_f = f - (float)(i - 1); + wrap_bang(x); +} + +static void wrap_list(t_wrap *x, t_symbol *s, int argc, t_atom *argv) +{ + if((argc > 0) && (IS_A_FLOAT(argv, 0))) + wrap_float(x, atom_getfloat(argv)); +} + +static void *wrap_new(void) +{ + t_wrap *x = (t_wrap *)pd_new(wrap_class); + + outlet_new(&x->x_obj, &s_float); + x->x_f = 0.0; + return (x); +} + +void wrap_setup(void) +{ + wrap_class = class_new(gensym("wrap"), (t_newmethod)wrap_new, 0, + sizeof(t_wrap), 0, 0); + class_addbang(wrap_class, (t_method)wrap_bang); + class_addfloat(wrap_class, (t_method)wrap_float); + class_addlist(wrap_class, (t_method)wrap_list); + class_sethelpsymbol(wrap_class, gensym("iemhelp/help-wrap")); +} diff --git a/start_pd36 b/start_pd36 new file mode 100755 index 0000000..1a35687 --- /dev/null +++ b/start_pd36 @@ -0,0 +1,5 @@ +#!/bin/sh + +/usr/local/bin/pd -r 44100 -channels 2 -audiobuf 400 -audiodev 1 -nomidi \ +-path lib -path iemabs \ +-lib iemlib1 -lib iemlib2 -lib iem_mp3 -lib iem_t3_lib diff --git a/start_pd36_inst b/start_pd36_inst new file mode 100755 index 0000000..592880b --- /dev/null +++ b/start_pd36_inst @@ -0,0 +1,5 @@ +#!/bin/sh + +/usr/local/bin/pd -r 44100 -channels 2 -audiobuf 400 -audiodev 1 -nomidi \ +-path /usr/local/lib/pd/externs -path /usr/local/lib/pd/iemabs \ +-lib iemlib1 -lib iemlib2 -lib iem_mp3 -lib iem_t3_lib |