iemlib-1.20.1/0000755002537200234200000000000012253610457013307 5ustar zmoelnigiemusersiemlib-1.20.1/CONTENT.txt0000644002537200234200000001655310536420427015172 0ustar zmoelnigiemuserscontents of iemlib Release 1.17 from November 2006 ============================ 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 parentdollarzero receive parent unique number ------------------------- 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_netsendiemlib-1.20.1/GnuLGPL.txt0000644002537200234200000006446010247650726015276 0ustar zmoelnigiemusers 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. Copyright (C) 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. , 1 April 1990 Ty Coon, President of Vice That's all there is to it! iemlib-1.20.1/iemlib1/0000755002537200234200000000000012243414230014617 5ustar zmoelnigiemusersiemlib-1.20.1/iemlib1/db2v-help.pd0000644002537200234200000000072511560743711016745 0ustar zmoelnigiemusers#N canvas 512 284 283 224 10; #X floatatom 23 99 9 0 0 0 - - -; #X text 57 75 no arg; #X obj 23 76 db2v; #X floatatom 23 52 9 0 0 0 - - -; #X text 89 53 input_level [dB]; #X text 24 11 db2v; #X text 104 12 dB to value converter; #X text 91 102 output_value [-]; #X text 114 184 IEM KUG; #X text 91 172 musil; #X text 128 172 @; #X text 138 172 iem.at; #X text 49 161 (c) Thomas Musil 2000 - 2005; #X text 97 194 Graz \, Austria; #X connect 2 0 0 0; #X connect 3 0 2 0; iemlib-1.20.1/iemlib1/for++-help.pd0000644002537200234200000000761511560743610017027 0ustar zmoelnigiemusers#N canvas 276 220 940 584 10; #X obj 16 56 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 103 78 4 0 0 0 - - -; #X floatatom 65 163 4 0 0 0 - - -; #X floatatom 143 95 4 0 0 0 - - -; #X text 7 8 for++; #X obj 111 166 print; #X msg 16 75 start; #X msg 16 95 stop; #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 141 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #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 163 181 finished; #X text 336 208 finished; #X obj 237 264 print finished; #X obj 522 93 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X obj 642 136 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X text 641 151 finished; #X obj 522 160 timer; #X obj 522 135 sel 0 1000; #X floatatom 522 183 5 0 0 0 - - -; #X obj 522 112 for++ 0 1000 1.234; #X text 78 437 IEM KUG; #X text 55 425 musil; #X text 92 425 @; #X text 100 425 iem.at; #X text 61 447 Graz \, Austria; #X text 397 22 1.arg: beginning number; #X text 397 34 2.arg: ending number; #X text 397 58 4.arg: incremental value (optional \, default 1); #X text 13 414 (c) Thomas Musil 2000 - 2011; #X obj 65 132 for++ 10 20 200 1; #X floatatom 181 111 4 0 0 0 - - -; #X text 177 93 increment value; #X obj 475 241 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X floatatom 475 282 5 0 0 0 - - -; #X obj 476 302 print; #X obj 475 260 for++ 0 5; #X obj 591 240 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X floatatom 591 281 5 0 0 0 - - -; #X obj 592 301 print; #X obj 591 259 for++ 16 8; #X obj 767 186 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X floatatom 731 280 5 0 0 0 - - -; #X obj 732 300 print; #X obj 731 258 for++ 3 -3; #X obj 821 291 timer; #X floatatom 821 314 5 0 0 0 - - -; #X obj 766 206 t b b; #X obj 429 309 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X floatatom 429 350 5 0 0 0 - - -; #X obj 430 370 print; #X obj 429 328 for++ 0 5 0 0.5; #X floatatom 576 397 5 0 0 0 - - -; #X obj 577 417 print; #X obj 576 352 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 576 375 for++ 3 -3 0 -0.5; #X floatatom 713 393 5 0 0 0 - - -; #X obj 714 413 print; #X obj 713 348 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 712 372 for++ 3 -3 0 0.5; #X text 757 391 incremnt will be corrected; #X text 67 9 counter with optional timer interval; #X text 116 21 and increment step size; #X text 64 47 beginning number; #X text 104 62 ending number; #X text 137 77 increment delay in ms; #X text 397 46 3.arg: increment delay in ms (optional \, default 0); #X connect 0 0 36 0; #X connect 2 0 36 0; #X connect 3 0 36 1; #X connect 4 0 1 0; #X connect 5 0 36 2; #X connect 8 0 36 0; #X connect 9 0 36 0; #X connect 11 0 10 0; #X connect 13 0 14 0; #X connect 14 0 11 0; #X connect 14 0 12 0; #X connect 14 1 16 0; #X connect 15 0 19 0; #X connect 16 0 19 0; #X connect 20 0 26 0; #X connect 23 0 25 0; #X connect 24 0 23 0; #X connect 24 1 23 1; #X connect 26 0 24 0; #X connect 26 1 21 0; #X connect 36 0 4 0; #X connect 36 0 7 0; #X connect 36 1 15 0; #X connect 37 0 36 3; #X connect 39 0 42 0; #X connect 40 0 41 0; #X connect 42 0 40 0; #X connect 43 0 46 0; #X connect 44 0 45 0; #X connect 46 0 44 0; #X connect 47 0 53 0; #X connect 48 0 49 0; #X connect 50 0 48 0; #X connect 50 1 51 1; #X connect 51 0 52 0; #X connect 53 0 50 0; #X connect 53 1 51 0; #X connect 54 0 57 0; #X connect 55 0 56 0; #X connect 57 0 55 0; #X connect 58 0 59 0; #X connect 60 0 61 0; #X connect 61 0 58 0; #X connect 62 0 63 0; #X connect 64 0 65 0; #X connect 65 0 62 0; iemlib-1.20.1/iemlib1/split-help.pd0000644002537200234200000000174111055052215017231 0ustar zmoelnigiemusers#N canvas 168 213 427 347 10; #X obj 21 212 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X obj 58 170 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #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 0 - - -; #X floatatom 58 109 4 0 0 0 - - -; #X floatatom 21 192 4 0 0 0 - - -; #X floatatom 58 150 4 0 0 0 - - -; #X text 19 50 input_value ; #X text 52 8 part -messages into less and greater equal than limit; #X text 60 94 limit ; #X text 92 150 output: input greater equal than limit; #X text 55 193 output: input less than limit; #X text 115 308 IEM KUG; #X text 99 296 musil; #X text 129 296 @; #X text 135 296 iem.at; #X text 50 285 (c) Thomas Musil 2000 - 2005; #X text 98 318 Graz \, Austria; #X connect 4 0 8 0; #X connect 4 1 9 0; #X connect 6 0 4 0; #X connect 7 0 4 1; #X connect 8 0 0 0; #X connect 9 0 1 0; iemlib-1.20.1/iemlib1/src/0000755002537200234200000000000012243414230015406 5ustar zmoelnigiemusersiemlib-1.20.1/iemlib1/src/rvu~.c0000644002537200234200000001101112022143506016556 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* ---------------- rvu~ - simple peak&rms-vu-meter. ----------------- */ typedef struct _rvu_tilde { t_object x_obj; void *x_clock_metro; t_float x_metro_time; t_float x_sum_rms; t_float x_old_rms; t_float x_rcp; t_float x_sr; t_float x_release_time; t_float x_c1; int x_started; t_float x_float_sig_in; } t_rvu_tilde; static t_class *rvu_tilde_class; static void rvu_tilde_tick_metro(t_rvu_tilde *x); static void rvu_tilde_reset(t_rvu_tilde *x) { outlet_float(x->x_obj.ob_outlet, -99.9); x->x_sum_rms = 0.0; x->x_old_rms = 0.0; clock_delay(x->x_clock_metro, x->x_metro_time); } static void rvu_tilde_stop(t_rvu_tilde *x) { clock_unset(x->x_clock_metro); x->x_started = 0; } static void rvu_tilde_start(t_rvu_tilde *x) { clock_delay(x->x_clock_metro, x->x_metro_time); x->x_started = 1; } static void rvu_tilde_float(t_rvu_tilde *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 rvu_tilde_t_release(t_rvu_tilde *x, t_floatarg release_time) { if(release_time <= 5.0) release_time = 5.0; x->x_release_time = release_time; x->x_c1 = exp(-2.0*x->x_metro_time/x->x_release_time); } static void rvu_tilde_t_metro(t_rvu_tilde *x, t_floatarg metro_time) { if(metro_time <= 5.0) metro_time = 5.0; x->x_metro_time = metro_time; x->x_c1 = exp(-2.0*x->x_metro_time/x->x_release_time); x->x_rcp = 1.0/(x->x_sr*x->x_metro_time); } static t_int *rvu_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_rvu_tilde *x = (t_rvu_tilde *)(w[2]); int n = (int)(w[3]); t_float sum=x->x_sum_rms; int i; if(x->x_started) { for(i=0; ix_sum_rms = sum; } return(w+4); } static void rvu_tilde_dsp(t_rvu_tilde *x, t_signal **sp) { x->x_sr = 0.001*(t_float)sp[0]->s_sr; x->x_rcp = 1.0/(x->x_sr*x->x_metro_time); dsp_add(rvu_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); clock_delay(x->x_clock_metro, x->x_metro_time); } static void rvu_tilde_tick_metro(t_rvu_tilde *x) { t_float dbr, cur_rms, c1=x->x_c1; cur_rms = (1.0 - c1)*x->x_sum_rms*x->x_rcp + c1*x->x_old_rms; /* NAN protect */ if(IEM_DENORMAL(cur_rms)) cur_rms = 0.0; if(cur_rms <= 0.0000000001) dbr = -99.9; else if(cur_rms > 1000000.0) { dbr = 60.0; x->x_old_rms = 1000000.0; } else dbr = 4.3429448195*log(cur_rms); x->x_sum_rms = 0.0; 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 rvu_tilde_ff(t_rvu_tilde *x) { clock_free(x->x_clock_metro); } static void *rvu_tilde_new(t_floatarg metro_time, t_floatarg release_time) { t_rvu_tilde *x=(t_rvu_tilde *)pd_new(rvu_tilde_class); if(metro_time <= 0.0) metro_time = 300.0; if(metro_time <= 5.0) metro_time = 5.0; if(release_time <= 0.0) release_time = 300.0; if(release_time <= 5.0) release_time = 5.0; x->x_metro_time = metro_time; x->x_release_time = release_time; x->x_c1 = exp(-2.0*x->x_metro_time/x->x_release_time); x->x_sum_rms = 0.0; x->x_old_rms = 0.0; x->x_sr = 44.1; x->x_rcp = 1.0/(x->x_sr*x->x_metro_time); x->x_clock_metro = clock_new(x, (t_method)rvu_tilde_tick_metro); x->x_started = 1; outlet_new(&x->x_obj, &s_float); x->x_float_sig_in = 0.0; return(x); } void rvu_tilde_setup(void) { rvu_tilde_class = class_new(gensym("rvu~"), (t_newmethod)rvu_tilde_new, (t_method)rvu_tilde_ff, sizeof(t_rvu_tilde), 0, A_DEFFLOAT, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(rvu_tilde_class, t_rvu_tilde, x_float_sig_in); class_addmethod(rvu_tilde_class, (t_method)rvu_tilde_dsp, gensym("dsp"), 0); class_addfloat(rvu_tilde_class, rvu_tilde_float); class_addmethod(rvu_tilde_class, (t_method)rvu_tilde_reset, gensym("reset"), 0); class_addmethod(rvu_tilde_class, (t_method)rvu_tilde_start, gensym("start"), 0); class_addmethod(rvu_tilde_class, (t_method)rvu_tilde_stop, gensym("stop"), 0); class_addmethod(rvu_tilde_class, (t_method)rvu_tilde_t_release, gensym("t_release"), A_FLOAT, 0); class_addmethod(rvu_tilde_class, (t_method)rvu_tilde_t_metro, gensym("t_metro"), A_FLOAT, 0); } iemlib-1.20.1/iemlib1/src/db2v.c0000644002537200234200000000161310536414324016417 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* -------- db2v - a techn. dB to rms-value converter. --------- */ static t_class *db2v_class; t_float db2v(t_float f) { return (f <= -199.9 ? 0 : exp(0.11512925465 * f)); } static void db2v_float(t_object *x, t_floatarg 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")); } iemlib-1.20.1/iemlib1/src/peakenv~.c0000644002537200234200000000514212022150247017403 0ustar zmoelnigiemusers/* 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 - 2010 */ #include "m_pd.h" #include "iemlib.h" #include /* ---------------- peakenv~ - simple peak-envelope-converter. ----------------- */ /* -- now with double precision; for low-frequency filters it is important to calculate the filter in double precision -- */ typedef struct _peakenv_tilde { t_object x_obj; double x_sr; double x_old_peak; double x_c1; double x_releasetime; t_float x_float_sig_in; } t_peakenv_tilde; static t_class *peakenv_tilde_class; static void peakenv_tilde_reset(t_peakenv_tilde *x) { x->x_old_peak = 0.0; } static void peakenv_tilde_ft1(t_peakenv_tilde *x, t_floatarg f)/* release-time in ms */ { if(f < 0.0) f = 0.0; x->x_releasetime = (double)f; x->x_c1 = exp(-1.0/(x->x_sr*0.001*x->x_releasetime)); } static t_int *peakenv_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_peakenv_tilde *x = (t_peakenv_tilde *)(w[3]); int n = (int)(w[4]); double peak = x->x_old_peak; double c1 = x->x_c1; double absolute; int i; for(i=0; i peak) peak = absolute; *out++ = (t_sample)peak; } /* NAN protect */ //if(IEM_DENORMAL(peak)) // peak = 0.0f; x->x_old_peak = peak; return(w+5); } static void peakenv_tilde_dsp(t_peakenv_tilde *x, t_signal **sp) { x->x_sr = (double)sp[0]->s_sr; peakenv_tilde_ft1(x, x->x_releasetime); dsp_add(peakenv_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); } static void *peakenv_tilde_new(t_floatarg f) { t_peakenv_tilde *x = (t_peakenv_tilde *)pd_new(peakenv_tilde_class); if(f <= 0.0) f = 0.0; x->x_sr = 44100.0; peakenv_tilde_ft1(x, f); x->x_old_peak = 0.0; inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); outlet_new(&x->x_obj, &s_signal); x->x_float_sig_in = 0.0; return(x); } void peakenv_tilde_setup(void) { peakenv_tilde_class = class_new(gensym("peakenv~"), (t_newmethod)peakenv_tilde_new, 0, sizeof(t_peakenv_tilde), 0, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(peakenv_tilde_class, t_peakenv_tilde, x_float_sig_in); class_addmethod(peakenv_tilde_class, (t_method)peakenv_tilde_dsp, gensym("dsp"), 0); class_addmethod(peakenv_tilde_class, (t_method)peakenv_tilde_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(peakenv_tilde_class, (t_method)peakenv_tilde_reset, gensym("reset"), 0); } iemlib-1.20.1/iemlib1/src/iemlib1.vcproj0000644002537200234200000000353412165064572020177 0ustar zmoelnigiemusers iemlib-1.20.1/iemlib1/src/makefile_d_fat0000644002537200234200000000223112205157153020247 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .d_fat PDSOURCE = "/Applications/Pd.app/Contents/Resources/src" IEMLIB_INCLUDE = ../../include PD_INCLUDES = -I. -I$(IEMLIB_INCLUDE) -I$(PDSOURCE) PD_DEFINES = -DPD CFLAGS =-O2 -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch -fPIC LFLAGS = -bundle -undefined suppress -flat_namespace ARCH_FLAGS=-arch i386 -arch ppc # the sources SRC = biquad_freq_resp.c \ db2v.c \ f2note.c \ filter~.c \ FIR~.c \ for++.c \ gate.c \ hml_shelf~.c \ iem_cot4~.c \ iem_delay~.c \ iem_pow4~.c \ iem_sqrt4~.c \ lp1_t~.c \ mov_avrg_kern~.c \ para_bp2~.c \ peakenv~.c \ peakenv_hold~.c \ prvu~.c \ pvu~.c \ rvu~.c \ sin_freq~.c \ sin_phase~.c \ sparse_FIR~.c \ soundfile_info.c \ split.c \ v2db.c \ vcf_filter~.c \ iemlib1.c TARGET = iemlib1.d_fat OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm -f ../$(TARGET) rm -f *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(ARCH_FLAGS) $(LFLAGS) -o $(TARGET) *.o strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c $(CC) $(ARCH_FLAGS) $(PD_DEFINES) $(CFLAGS) $(PD_INCLUDES) -c -o $*.o $*.c iemlib-1.20.1/iemlib1/src/FIR~.c0000644002537200234200000001242112022143371016370 0ustar zmoelnigiemusers/* 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 - 2012 */ #include "m_pd.h" #include "iemlib.h" /* ---------- FIR~ - FIR-filter with table-coef ----------- */ typedef struct _FIR_tilde { t_object x_obj; iemarray_t *x_array_coef_beg; t_sample *x_history_beg; int x_rw_index; int x_fir_order; int x_malloc_history; t_symbol *x_table_name; t_float x_float_sig_in; } t_FIR_tilde; static t_class *FIR_tilde_class; static t_int *FIR_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_FIR_tilde *x = (t_FIR_tilde *)(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; t_sample sum=0.0; iemarray_t *coef = x->x_array_coef_beg; t_sample *write_hist1=x->x_history_beg; t_sample *write_hist2; t_sample *read_hist; iemarray_t *coef_vec; t_sample *hist_vec; if(!coef) goto FIR_tildeperfzero; write_hist1 = x->x_history_beg; write_hist2 = write_hist1 + order; read_hist = write_hist2; for(i=0; i= order) rw_index -= order; } x->x_rw_index = rw_index; return(w+5); FIR_tildeperfzero: while(n--) *out++ = 0.0; return(w+5); } void FIR_tilde_set(t_FIR_tilde *x, t_symbol *table_name, t_floatarg forder) { t_garray *ga; int table_size; int order = (int)forder; int i; x->x_table_name = table_name; if(order < 1) order = 1; x->x_fir_order = order; 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_array_coef_beg = (iemarray_t *)0; } else if(!iemarray_getarray(ga, &table_size, &x->x_array_coef_beg)) { error("%s: bad template for FIR~", x->x_table_name->s_name); x->x_array_coef_beg = (iemarray_t *)0; } else if(table_size < order) { error("FIR~: tablesize %d < order %d !!!!", table_size, order); x->x_array_coef_beg = (iemarray_t *)0; } else { garray_usedindsp(ga);/* good */ } x->x_rw_index = 0; if(x->x_fir_order > x->x_malloc_history)/* resize */ { x->x_history_beg = (t_sample *)resizebytes(x->x_history_beg, 2*x->x_malloc_history*sizeof(t_sample), 2*x->x_fir_order*sizeof(t_sample)); x->x_malloc_history = x->x_fir_order; } } static void FIR_tilde_dsp(t_FIR_tilde *x, t_signal **sp) { FIR_tilde_set(x, x->x_table_name, x->x_fir_order); dsp_add(FIR_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); } static void *FIR_tilde_new(t_symbol *array_name, t_floatarg forder) { t_FIR_tilde *x = (t_FIR_tilde *)pd_new(FIR_tilde_class); int order = (int)forder; outlet_new(&x->x_obj, &s_signal); x->x_float_sig_in = 0; x->x_table_name = array_name; x->x_array_coef_beg = 0; if(order < 1) order = 1; x->x_fir_order = order; x->x_malloc_history = order; x->x_history_beg = (t_sample *)getbytes((2*x->x_malloc_history)*sizeof(t_sample)); x->x_rw_index = 0; return(x); } static void FIR_tilde_free(t_FIR_tilde *x) { if(x->x_history_beg) freebytes(x->x_history_beg, (2*x->x_malloc_history)*sizeof(t_sample)); } void FIR_tilde_setup(void) { FIR_tilde_class = class_new(gensym("FIR~"), (t_newmethod)FIR_tilde_new, (t_method)FIR_tilde_free, sizeof(t_FIR_tilde), 0, A_DEFSYM, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(FIR_tilde_class, t_FIR_tilde, x_float_sig_in); class_addmethod(FIR_tilde_class, (t_method)FIR_tilde_dsp, gensym("dsp"), 0); class_addmethod(FIR_tilde_class, (t_method)FIR_tilde_set, gensym("set"), A_SYMBOL, A_FLOAT, 0); } iemlib-1.20.1/iemlib1/src/hml_shelf~.c0000644002537200234200000003366411560742130017731 0ustar zmoelnigiemusers/* 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 - 2011 */ #include "m_pd.h" #include "iemlib.h" #include /* ---------- hml_shelf~ - high-middle-low-shelving filter ----------- */ typedef struct _hml_shelf_tilde { t_object x_obj; t_float wn1; t_float wn2; t_float a0; t_float a1; t_float a2; t_float b1; t_float b2; t_float sr; t_float cur_lf; t_float cur_hf; t_float cur_lg; t_float cur_mg; t_float cur_hg; t_float delta_lf; t_float delta_hf; t_float delta_lg; t_float delta_mg; t_float delta_hg; t_float end_lf; t_float end_hf; t_float end_lg; t_float end_mg; t_float end_hg; t_float ticks_per_interpol_time; t_float rcp_ticks; t_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]; t_float x_float_sig_in; } t_hml_shelf_tilde; static t_class *hml_shelf_tilde_class; static void hml_shelf_tilde_calc(t_hml_shelf_tilde *x) { t_float rf = x->cur_hf/x->cur_lf; t_float mf = x->cur_hf*x->cur_lf; t_float lg = x->cur_lg; t_float rcplg = 1.0f/lg; t_float mg = x->cur_mg; t_float rcpmg = 1.0f/mg; t_float hg = x->cur_hg; t_float rcphg = 1.0f/hg; t_float f = mf*x->sr; t_float l = cos(f)/sin(f); t_float k1 = rf*l; t_float k2 = l/rf; t_float k3 = l*l; t_float k4 = k3*hg; t_float k5 = k3*rcphg; t_float k6 = rcplg + k5; t_float k7 = rcpmg*k1 + k2*rcplg*rcphg*mg; t_float k8 = lg + k4; t_float k9 = mg*k1 + k2*lg*hg*rcpmg; t_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 hml_shelf_tilde_dsp_tick(t_hml_shelf_tilde *x) { if(x->event_mask) { t_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; } } hml_shelf_tilde_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 *hml_shelf_tilde_perform(t_int *w) { t_float *in = (t_float *)(w[1]); t_float *out = (t_float *)(w[2]); t_hml_shelf_tilde *x = (t_hml_shelf_tilde *)(w[3]); int i, n = (t_int)(w[4]); t_float wn0, wn1=x->wn1, wn2=x->wn2; t_float a0=x->a0, a1=x->a1, a2=x->a2; t_float b1=x->b1, b2=x->b2; hml_shelf_tilde_dsp_tick(x); for(i=0; iwn1 = 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 *hml_shelf_tilde_perf8(t_int *w) { t_float *in = (t_float *)(w[1]); t_float *out = (t_float *)(w[2]); t_hml_shelf_tilde *x = (t_hml_shelf_tilde *)(w[3]); int i, n = (t_int)(w[4]); t_float wn[10]; t_float a0=x->a0, a1=x->a1, a2=x->a2; t_float b1=x->b1, b2=x->b2; hml_shelf_tilde_dsp_tick(x); wn[0] = x->wn2; wn[1] = x->wn1; for(i=0; iwn1 = wn[1]; x->wn2 = wn[0]; return(w+5); } static void hml_shelf_tilde_ft6(t_hml_shelf_tilde *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 / (t_float)i; } static void hml_shelf_tilde_ft5(t_hml_shelf_tilde *x, t_floatarg hl) { t_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 hml_shelf_tilde_ft4(t_hml_shelf_tilde *x, t_floatarg hf) { t_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 hml_shelf_tilde_ft3(t_hml_shelf_tilde *x, t_floatarg ml) { t_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 hml_shelf_tilde_ft2(t_hml_shelf_tilde *x, t_floatarg lf) { t_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 hml_shelf_tilde_ft1(t_hml_shelf_tilde *x, t_floatarg ll) { t_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 hml_shelf_tilde_set(t_hml_shelf_tilde *x, t_symbol *s, int argc, t_atom *argv) { if((argc >= 2) && IS_A_FLOAT(argv, 1) && IS_A_FLOAT(argv, 0)) { x->wn1 = (t_float)atom_getfloatarg(0, argc, argv); x->wn2 = (t_float)atom_getfloatarg(1, argc, argv); } } static void hml_shelf_tilde_print(t_hml_shelf_tilde *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 hml_shelf_tilde_dsp(t_hml_shelf_tilde *x, t_signal **sp) { int i, n=(int)sp[0]->s_n; x->sr = 3.14159265358979323846f / (t_float)(sp[0]->s_sr); x->ticks_per_interpol_time = 0.001f * (t_float)(sp[0]->s_sr) / (t_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 / (t_float)i; if(n&7) dsp_add(hml_shelf_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); else dsp_add(hml_shelf_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); } static void *hml_shelf_tilde_new(t_symbol *s, int argc, t_atom *argv) { t_hml_shelf_tilde *x = (t_hml_shelf_tilde *)pd_new(hml_shelf_tilde_class); int i; t_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_float_sig_in = 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 = 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 = (t_float)atom_getfloatarg(0, argc, argv); lf = (t_float)atom_getfloatarg(1, argc, argv); ml = (t_float)atom_getfloatarg(2, argc, argv); hf = (t_float)atom_getfloatarg(3, argc, argv); hl = (t_float)atom_getfloatarg(4, argc, argv); interpol = (t_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 / (t_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 hml_shelf_tilde_setup(void) { hml_shelf_tilde_class = class_new(gensym("hml_shelf~"), (t_newmethod)hml_shelf_tilde_new, 0, sizeof(t_hml_shelf_tilde), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(hml_shelf_tilde_class, t_hml_shelf_tilde, x_float_sig_in); class_addmethod(hml_shelf_tilde_class, (t_method)hml_shelf_tilde_dsp, gensym("dsp"), 0); class_addmethod(hml_shelf_tilde_class, (t_method)hml_shelf_tilde_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(hml_shelf_tilde_class, (t_method)hml_shelf_tilde_ft2, gensym("ft2"), A_FLOAT, 0); class_addmethod(hml_shelf_tilde_class, (t_method)hml_shelf_tilde_ft3, gensym("ft3"), A_FLOAT, 0); class_addmethod(hml_shelf_tilde_class, (t_method)hml_shelf_tilde_ft4, gensym("ft4"), A_FLOAT, 0); class_addmethod(hml_shelf_tilde_class, (t_method)hml_shelf_tilde_ft5, gensym("ft5"), A_FLOAT, 0); class_addmethod(hml_shelf_tilde_class, (t_method)hml_shelf_tilde_ft6, gensym("ft6"), A_FLOAT, 0); class_addmethod(hml_shelf_tilde_class, (t_method)hml_shelf_tilde_set, gensym("set"), A_GIMME, 0); class_addmethod(hml_shelf_tilde_class, (t_method)hml_shelf_tilde_print, gensym("print"), 0); } iemlib-1.20.1/iemlib1/src/iem_pow4~.c0000644002537200234200000000421712022145440017476 0ustar zmoelnigiemusers/* 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 - 2012 */ #include "m_pd.h" #include "iemlib.h" #include /* ------------------------ iem_pow4~ ----------------------------- */ static t_class *iem_pow4_tilde_class; typedef struct _iem_pow4_tilde { t_object x_obj; t_sample x_expo; t_float x_float_sig_in; } t_iem_pow4_tilde; static void iem_pow4_tilde_ft1(t_iem_pow4_tilde *x, t_floatarg f) { x->x_expo = (t_sample)f; } static t_int *iem_pow4_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_iem_pow4_tilde *x = (t_iem_pow4_tilde *)(w[3]); t_sample expo=x->x_expo; t_sample f, g; int n = (int)(w[4])/4; while (n--) { f = (t_sample)(*in); if(f > 0.0) { g = log(f); f = exp(g * expo); *out++ = f; *out++ = f; *out++ = f; *out++ = f; /*g = pow(f, expo); *out++ = g; *out++ = g; *out++ = g; *out++ = g;*/ } else { *out++ = 0.0; *out++ = 0.0; *out++ = 0.0; *out++ = 0.0; } in += 4; } return (w+5); } static void iem_pow4_tilde_dsp(t_iem_pow4_tilde *x, t_signal **sp) { dsp_add(iem_pow4_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); } static void *iem_pow4_tilde_new(t_floatarg f) { t_iem_pow4_tilde *x = (t_iem_pow4_tilde *)pd_new(iem_pow4_tilde_class); x->x_expo = (t_sample)f; inlet_new(&x->x_obj, &x->x_obj.ob_pd, &s_float, gensym("ft1")); outlet_new(&x->x_obj, gensym("signal")); x->x_float_sig_in = 0.0; return (x); } void iem_pow4_tilde_setup(void) { iem_pow4_tilde_class = class_new(gensym("iem_pow4~"), (t_newmethod)iem_pow4_tilde_new, 0, sizeof(t_iem_pow4_tilde), 0, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(iem_pow4_tilde_class, t_iem_pow4_tilde, x_float_sig_in); class_addmethod(iem_pow4_tilde_class, (t_method)iem_pow4_tilde_dsp, gensym("dsp"), 0); class_addmethod(iem_pow4_tilde_class, (t_method)iem_pow4_tilde_ft1, gensym("ft1"), A_FLOAT, 0); } iemlib-1.20.1/iemlib1/src/pvu~.c0000644002537200234200000001206712022150247016570 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* ---------------- pvu~ - simple peak-vu-meter. ----------------- */ typedef struct _pvu_tilde { t_object x_obj; void *x_outlet_meter; void *x_outlet_over; void *x_clock; t_float x_cur_peak; t_float x_old_peak; t_float x_threshold_over; t_float x_c1; t_float x_metro_time; t_float x_release_time; int x_overflow_counter; int x_started; t_float x_float_sig_in; } t_pvu_tilde; static t_class *pvu_tilde_class; static void pvu_tilde_tick(t_pvu_tilde *x); static void pvu_tilde_reset(t_pvu_tilde *x) { outlet_float(x->x_outlet_over, 0.0); outlet_float(x->x_outlet_meter, -199.9); x->x_overflow_counter = 0; x->x_cur_peak = 0.0; x->x_old_peak = 0.0; clock_delay(x->x_clock, x->x_metro_time); } static void pvu_tilde_stop(t_pvu_tilde *x) { clock_unset(x->x_clock); x->x_started = 0; } static void pvu_tilde_start(t_pvu_tilde *x) { clock_delay(x->x_clock, x->x_metro_time); x->x_started = 1; } static void pvu_tilde_float(t_pvu_tilde *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 pvu_tilde_t_release(t_pvu_tilde *x, t_floatarg release_time) { if(release_time <= 5.0) release_time = 5.0; x->x_release_time = release_time; x->x_c1 = exp(-x->x_metro_time/release_time); } static void pvu_tilde_t_metro(t_pvu_tilde *x, t_floatarg metro_time) { if(metro_time <= 5.0) metro_time = 5.0; x->x_metro_time = (int)metro_time; x->x_c1 = exp(-metro_time/x->x_release_time); } static void pvu_tilde_threshold(t_pvu_tilde *x, t_floatarg thresh) { x->x_threshold_over = thresh; } static t_int *pvu_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_pvu_tilde *x = (t_pvu_tilde *)(w[2]); int n = (int)(w[3]); t_float peak = x->x_cur_peak; t_float absolute; int i; if(x->x_started) { for(i=0; i peak) peak = absolute; } x->x_cur_peak = peak; } return(w+4); } static void pvu_tilde_dsp(t_pvu_tilde *x, t_signal **sp) { dsp_add(pvu_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); clock_delay(x->x_clock, x->x_metro_time); } static void pvu_tilde_tick(t_pvu_tilde *x) { t_float db; int i; x->x_old_peak *= x->x_c1; /* NAN protect */ if(IEM_DENORMAL(x->x_old_peak)) x->x_old_peak = 0.0; if(x->x_cur_peak > x->x_old_peak) x->x_old_peak = x->x_cur_peak; if(x->x_old_peak <= 0.0000000001) db = -199.9; else if(x->x_old_peak > 1000000.0) { db = 120.0; x->x_old_peak = 1000000.0; } else db = 8.6858896381*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.0; clock_delay(x->x_clock, x->x_metro_time); } static void *pvu_tilde_new(t_floatarg metro_time, t_floatarg release_time, t_floatarg threshold) { t_pvu_tilde *x; t_float t; x = (t_pvu_tilde *)pd_new(pvu_tilde_class); if(metro_time <= 0.0) metro_time = 300.0; if(metro_time <= 5.0) metro_time = 5.0; if(release_time <= 0.0) release_time = 300.0; if(release_time <= 5.0) release_time = 5.0; if(threshold == 0.0) threshold = -0.01; x->x_threshold_over = threshold; x->x_overflow_counter = 0; x->x_metro_time = metro_time; x->x_release_time = release_time; x->x_c1 = exp(-metro_time/release_time); x->x_cur_peak = 0.0; x->x_old_peak = 0.0; x->x_clock = clock_new(x, (t_method)pvu_tilde_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_float_sig_in = 0.0; return(x); } static void pvu_tilde_ff(t_pvu_tilde *x) { clock_free(x->x_clock); } void pvu_tilde_setup(void ) { pvu_tilde_class = class_new(gensym("pvu~"), (t_newmethod)pvu_tilde_new, (t_method)pvu_tilde_ff, sizeof(t_pvu_tilde), 0, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(pvu_tilde_class, t_pvu_tilde, x_float_sig_in); class_addmethod(pvu_tilde_class, (t_method)pvu_tilde_dsp, gensym("dsp"), 0); class_addfloat(pvu_tilde_class, pvu_tilde_float); class_addmethod(pvu_tilde_class, (t_method)pvu_tilde_reset, gensym("reset"), 0); class_addmethod(pvu_tilde_class, (t_method)pvu_tilde_start, gensym("start"), 0); class_addmethod(pvu_tilde_class, (t_method)pvu_tilde_stop, gensym("stop"), 0); class_addmethod(pvu_tilde_class, (t_method)pvu_tilde_t_release, gensym("t_release"), A_FLOAT, 0); class_addmethod(pvu_tilde_class, (t_method)pvu_tilde_t_metro, gensym("t_metro"), A_FLOAT, 0); class_addmethod(pvu_tilde_class, (t_method)pvu_tilde_threshold, gensym("threshold"), A_FLOAT, 0); } iemlib-1.20.1/iemlib1/src/vcf_filter~.c0000644002537200234200000002067112022143506020101 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include #include /* ---------- vcf_filter~ - slow dynamic vcf_filter 1. and 2. order ----------- */ typedef struct _vcf_filter_tilde { t_object x_obj; t_sample x_wn1; t_sample x_wn2; t_float x_float_sig_in1; char x_filtname[6]; } t_vcf_filter_tilde; static t_class *vcf_filter_tilde_class; static t_int *vcf_filter_tilde_perform_snafu(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(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 *vcf_filter_tilde_perform_lp2(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *lp = (t_sample *)(w[2]); t_sample *q = (t_sample *)(w[3]); t_sample *out = (t_sample *)(w[4]); t_vcf_filter_tilde *x = (t_vcf_filter_tilde *)(w[5]); int i, n = (t_int)(w[6]); t_sample wn0, wn1=x->x_wn1, wn2=x->x_wn2; t_sample l, al, l2, rcp; for(i=0; i 1000000.0) al = 0.000001*l; else al = l/q[i]; l2 = l*l + 1.0; rcp = 1.0/(al + l2); wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*(wn0 + 2.0*wn1 + wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*(wn0 + 2.0*wn1 + wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*(wn0 + 2.0*wn1 + wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*(wn0 + 2.0*wn1 + wn2); wn2 = wn1; wn1 = wn0; } /* NAN protect */ if(IEM_DENORMAL(wn2)) wn2 = 0.0; if(IEM_DENORMAL(wn1)) wn1 = 0.0; x->x_wn1 = wn1; x->x_wn2 = wn2; return(w+7); } static t_int *vcf_filter_tilde_perform_bp2(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *lp = (t_sample *)(w[2]); t_sample *q = (t_sample *)(w[3]); t_sample *out = (t_sample *)(w[4]); t_vcf_filter_tilde *x = (t_vcf_filter_tilde *)(w[5]); int i, n = (t_int)(w[6]); t_sample wn0, wn1=x->x_wn1, wn2=x->x_wn2; t_sample l, al, l2, rcp; for(i=0; i 1000000.0) al = 0.000001*l; else al = l/q[i]; l2 = l*l + 1.0; rcp = 1.0/(al + l2); wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*al*(wn0 - wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*al*(wn0 - wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*al*(wn0 - wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*al*(wn0 - wn2); wn2 = wn1; wn1 = wn0; } /* NAN protect */ if(IEM_DENORMAL(wn2)) wn2 = 0.0; if(IEM_DENORMAL(wn1)) wn1 = 0.0; x->x_wn1 = wn1; x->x_wn2 = wn2; return(w+7); } static t_int *vcf_filter_tilde_perform_rbp2(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *lp = (t_sample *)(w[2]); t_sample *q = (t_sample *)(w[3]); t_sample *out = (t_sample *)(w[4]); t_vcf_filter_tilde *x = (t_vcf_filter_tilde *)(w[5]); int i, n = (t_int)(w[6]); t_sample wn0, wn1=x->x_wn1, wn2=x->x_wn2; t_sample al, l, l2, rcp; for(i=0; i 1000000.0) al = 0.000001*l; else al = l/q[i]; l2 = l*l + 1.0; rcp = 1.0/(al + l2); wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*l*(wn0 - wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*l*(wn0 - wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*l*(wn0 - wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = rcp*l*(wn0 - wn2); wn2 = wn1; wn1 = wn0; } /* NAN protect */ if(IEM_DENORMAL(wn2)) wn2 = 0.0; if(IEM_DENORMAL(wn1)) wn1 = 0.0; x->x_wn1 = wn1; x->x_wn2 = wn2; return(w+7); } static t_int *vcf_filter_tilde_perform_hp2(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *lp = (t_sample *)(w[2]); t_sample *q = (t_sample *)(w[3]); t_sample *out = (t_sample *)(w[4]); t_vcf_filter_tilde *x = (t_vcf_filter_tilde *)(w[5]); int i, n = (t_int)(w[6]); t_sample wn0, wn1=x->x_wn1, wn2=x->x_wn2; t_sample l, al, l2, rcp, forw; for(i=0; i 1000000.0) al = 0.000001*l; else al = l/q[i]; l2 = l*l + 1.0; rcp = 1.0/(al + l2); forw = rcp * (l2 - 1.0); wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = forw*(wn0 - 2.0*wn1 + wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = forw*(wn0 - 2.0*wn1 + wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = forw*(wn0 - 2.0*wn1 + wn2); wn2 = wn1; wn1 = wn0; wn0 = *in++ - rcp*(2.0*(2.0 - l2)*wn1 + (l2 - al)*wn2); *out++ = forw*(wn0 - 2.0*wn1 + wn2); wn2 = wn1; wn1 = wn0; } /* NAN protect */ if(IEM_DENORMAL(wn2)) wn2 = 0.0; if(IEM_DENORMAL(wn1)) wn1 = 0.0; x->x_wn1 = wn1; x->x_wn2 = wn2; return(w+7); } static void vcf_filter_tilde_dsp(t_vcf_filter_tilde *x, t_signal **sp) { if(!strcmp(x->x_filtname,"bp2")) dsp_add(vcf_filter_tilde_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(vcf_filter_tilde_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(vcf_filter_tilde_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(vcf_filter_tilde_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(vcf_filter_tilde_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: kind: lp2, bp2, rbp2, hp2!"); } } static void vcf_filter_tilde_set(t_vcf_filter_tilde *x, t_symbol *s, int argc, t_atom *argv) { if((argc >= 2) && IS_A_FLOAT(argv, 1) && IS_A_FLOAT(argv, 0)) { x->x_wn1 = (t_float)atom_getfloatarg(0, argc, argv); x->x_wn2 = (t_float)atom_getfloatarg(1, argc, argv); } } static void *vcf_filter_tilde_new(t_symbol *filt_typ) { t_vcf_filter_tilde *x = (t_vcf_filter_tilde *)pd_new(vcf_filter_tilde_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_float_sig_in1 = 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 vcf_filter_tilde_setup(void) { vcf_filter_tilde_class = class_new(gensym("vcf_filter~"), (t_newmethod)vcf_filter_tilde_new, 0, sizeof(t_vcf_filter_tilde), 0, A_SYMBOL, 0); CLASS_MAINSIGNALIN(vcf_filter_tilde_class, t_vcf_filter_tilde, x_float_sig_in1); class_addmethod(vcf_filter_tilde_class, (t_method)vcf_filter_tilde_dsp, gensym("dsp"), 0); class_addmethod(vcf_filter_tilde_class, (t_method)vcf_filter_tilde_set, gensym("set"), A_GIMME, 0); } iemlib-1.20.1/iemlib1/src/makefile0000644002537200234200000000070112165307376017123 0ustar zmoelnigiemusersTARGET = iemlib1 SRC = biquad_freq_resp.c \ db2v.c \ f2note.c \ filter~.c \ FIR~.c \ for++.c \ gate.c \ hml_shelf~.c \ iem_cot4~.c \ iem_delay~.c \ iem_pow4~.c \ iem_sqrt4~.c \ lp1_t~.c \ mov_avrg_kern~.c \ para_bp2~.c \ peakenv~.c \ peakenv_hold~.c \ prvu~.c \ pvu~.c \ rvu~.c \ sin_freq~.c \ sin_phase~.c \ sparse_FIR~.c \ soundfile_info.c \ split.c \ v2db.c \ vcf_filter~.c \ $(TARGET).c include ../../Make.include iemlib-1.20.1/iemlib1/src/iem_sqrt4~.c0000644002537200234200000000470712022143506017667 0ustar zmoelnigiemusers/* 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 - 2012 */ #include "m_pd.h" #include "iemlib.h" #include #define IEMSQRT4TAB1SIZE 256 #define IEMSQRT4TAB2SIZE 1024 /* ------------------------ iem_sqrt4~ ----------------------------- */ static t_float iem_rsqrt4_tilde_exptab[IEMSQRT4TAB1SIZE]; static t_float iem_rsqrt4_tilde_mantissatab[IEMSQRT4TAB2SIZE]; static t_class *iem_sqrt4_tilde_class; typedef struct _iem_sqrt4_tilde { t_object x_obj; t_float x_float_sig_in; } t_iem_sqrt4_tilde; static t_int *iem_sqrt4_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_int n = (t_int)(w[3])/4; while(n--) { t_sample f = *in; t_sample g, h; union tabfudge_f tf; if(f <= 0.0) { *out++ = 0.0; *out++ = 0.0; *out++ = 0.0; *out++ = 0.0; } else { tf.tf_f = f; g = iem_rsqrt4_tilde_exptab[((tf.tf_l) >> 23) & 0xff] * iem_rsqrt4_tilde_mantissatab[((tf.tf_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 iem_sqrt4_tilde_dsp(t_iem_sqrt4_tilde *x, t_signal **sp) { dsp_add(iem_sqrt4_tilde_perform, 3, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n); } static void iem_sqrt4_tilde_init(void) { int i; t_float f; union tabfudge_f tf; for(i=0; ix_obj, gensym("signal")); x->x_float_sig_in = 0; return (x); } void iem_sqrt4_tilde_setup(void) { iem_sqrt4_tilde_init(); iem_sqrt4_tilde_class = class_new(gensym("iem_sqrt4~"), (t_newmethod)iem_sqrt4_tilde_new, 0, sizeof(t_iem_sqrt4_tilde), 0, 0); CLASS_MAINSIGNALIN(iem_sqrt4_tilde_class, t_iem_sqrt4_tilde, x_float_sig_in); class_addmethod(iem_sqrt4_tilde_class, (t_method)iem_sqrt4_tilde_dsp, gensym("dsp"), 0); } iemlib-1.20.1/iemlib1/src/makefile_d_ppc0000644002537200234200000000176411524474766020310 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .d_ppc PD_INSTALL_PATH = "/Applications/Pd.app/Contents/Resources" INCLUDE = -I. -I$(PD_INSTALL_PATH)/src CFLAGS =-DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch LFLAGS = -bundle -undefined suppress -flat_namespace # the sources SRC = biquad_freq_resp.c \ db2v.c \ f2note.c \ filter~.c \ FIR~.c \ for++.c \ gate.c \ hml_shelf~.c \ iem_cot4~.c \ iem_delay~.c \ iem_pow4~.c \ iem_sqrt4~.c \ lp1_t~.c \ mov_avrg_kern~.c \ para_bp2~.c \ peakenv~.c \ peakenv_hold~.c \ prvu~.c \ pvu~.c \ rvu~.c \ sin_phase~.c \ soundfile_info.c \ split.c \ v2db.c \ vcf_filter~.c \ iemlib1.c TARGET = iemlib1.d_ppc OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm ../$(TARGET) rm *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(LFLAGS) -o $(TARGET) *.o strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c touch $*.c $(CC) $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c iemlib-1.20.1/iemlib1/src/para_bp2~.c0000644002537200234200000002522712022143506017446 0ustar zmoelnigiemusers/* 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 - 2011 */ #include "m_pd.h" #include "iemlib.h" #include /* ---------- para_bp2~ - parametric bandpass 2. order ----------- */ typedef struct _para_bp2_tilde { t_object x_obj; t_float wn1; t_float wn2; t_float a0; t_float a1; t_float a2; t_float b1; t_float b2; t_float sr; t_float cur_f; t_float cur_l; t_float cur_a; t_float cur_g; t_float delta_f; t_float delta_a; t_float delta_g; t_float end_f; t_float end_a; t_float end_g; t_float ticks_per_interpol_time; t_float rcp_ticks; t_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]; t_float x_float_sig_in; } t_para_bp2_tilde; static t_class *para_bp2_tilde_class; static void para_bp2_tilde_calc(t_para_bp2_tilde *x) { t_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.0/(al + l2); x->a0 = rcp*(l2 + gal); x->a1 = rcp*2.0*(2.0 - l2); x->a2 = rcp*(l2 - gal); x->b1 = -x->a1; x->b2 = rcp*(al - l2); } static void para_bp2_tilde_dsp_tick(t_para_bp2_tilde *x) { if(x->event_mask) { t_float discriminant; if(x->counter_f) { t_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-20) x->cur_l = 1.0e20; else if(l > 1.57079632) x->cur_l = 0.0; 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; } } para_bp2_tilde_calc(x); /* stability check */ discriminant = x->b1 * x->b1 + 4.0 * x->b2; if(x->b1 <= -1.9999996) x->b1 = -1.9999996; else if(x->b1 >= 1.9999996) x->b1 = 1.9999996; if(x->b2 <= -0.9999998) x->b2 = -0.9999998; else if(x->b2 >= 0.9999998) x->b2 = 0.9999998; if(discriminant >= 0.0) { if(0.9999998 - x->b1 - x->b2 < 0.0) x->b2 = 0.9999998 - x->b1; if(0.9999998 + x->b1 - x->b2 < 0.0) x->b2 = 0.9999998 + x->b1; } } } static t_int *para_bp2_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_para_bp2_tilde *x = (t_para_bp2_tilde *)(w[3]); int i, n = (t_int)(w[4]); t_float wn0, wn1=x->wn1, wn2=x->wn2; t_float a0=x->a0, a1=x->a1, a2=x->a2; t_float b1=x->b1, b2=x->b2; para_bp2_tilde_dsp_tick(x); for(i=0; iwn1 = 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 *para_bp2_tilde_perf8(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_para_bp2_tilde *x = (t_para_bp2_tilde *)(w[3]); int i, n = (t_int)(w[4]); t_float wn[10]; t_float a0=x->a0, a1=x->a1, a2=x->a2; t_float b1=x->b1, b2=x->b2; para_bp2_tilde_dsp_tick(x); wn[0] = x->wn2; wn[1] = x->wn1; for(i=0; iwn1 = wn[1]; x->wn2 = wn[0]; return(w+5); } static void para_bp2_tilde_ft4(t_para_bp2_tilde *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 / (t_float)i; } static void para_bp2_tilde_ft3(t_para_bp2_tilde *x, t_floatarg l) { t_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 para_bp2_tilde_ft2(t_para_bp2_tilde *x, t_floatarg q) { t_float a; if(q <= 0.0) q = 0.000001; a = 1.0/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 para_bp2_tilde_ft1(t_para_bp2_tilde *x, t_floatarg f) { if(f <= 0.0) f = 0.000001; 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 para_bp2_tilde_set(t_para_bp2_tilde *x, t_symbol *s, int argc, t_atom *argv) { if((argc >= 2) && IS_A_FLOAT(argv, 1) && IS_A_FLOAT(argv, 0)) { x->wn1 = (t_float)atom_getfloatarg(0, argc, argv); x->wn2 = (t_float)atom_getfloatarg(1, argc, argv); } } static void para_bp2_tilde_print(t_para_bp2_tilde *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 para_bp2_tilde_dsp(t_para_bp2_tilde *x, t_signal **sp) { t_float si, co, f; int i, n=(int)sp[0]->s_n; x->sr = 3.14159265358979323846 / (t_float)(sp[0]->s_sr); x->ticks_per_interpol_time = 0.001 * (t_float)(sp[0]->s_sr) / (t_float)n; i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)); if(i <= 0) i = 1; x->ticks = i; x->rcp_ticks = 1.0 / (t_float)i; f = x->cur_f * x->sr; if(f < 1.0e-20) x->cur_l = 1.0e20; else if(f > 1.57079632) x->cur_l = 0.0; else { si = sin(f); co = cos(f); x->cur_l = co/si; } if(n&7) dsp_add(para_bp2_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); else dsp_add(para_bp2_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); } static void *para_bp2_tilde_new(t_symbol *s, int argc, t_atom *argv) { t_para_bp2_tilde *x = (t_para_bp2_tilde *)pd_new(para_bp2_tilde_class); int i; t_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_float_sig_in = 0.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.0; x->delta_a = 0.0; x->delta_g = 0.0; x->interpol_time = 500.0; 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.14159265358979323846 / 44100.0; 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 = (t_float)atom_getfloatarg(0, argc, argv); q = (t_float)atom_getfloatarg(1, argc, argv); l = (t_float)atom_getfloatarg(2, argc, argv); interpol = (t_float)atom_getfloatarg(3, argc, argv); } if(f <= 0.0) f = 0.000001; x->cur_f = f; f *= x->sr; if(f < 1.0e-20) x->cur_l = 1.0e20; else if(f > 1.57079632) x->cur_l = 0.0; else { si = sin(f); co = cos(f); x->cur_l = co/si; } if(q <= 0.0) q = 0.000001; x->cur_a = 1.0/q; x->cur_g = exp(0.11512925465 * l); if(interpol <= 0.0) interpol = 0.0; x->interpol_time = interpol; x->ticks_per_interpol_time = 0.5; i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)); if(i <= 0) i = 1; x->ticks = i; x->rcp_ticks = 1.0 / (t_float)i; x->end_f = x->cur_f; x->end_a = x->cur_a; x->end_g = x->cur_g; return(x); } void para_bp2_tilde_setup(void) { para_bp2_tilde_class = class_new(gensym("para_bp2~"), (t_newmethod)para_bp2_tilde_new, 0, sizeof(t_para_bp2_tilde), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(para_bp2_tilde_class, t_para_bp2_tilde, x_float_sig_in); class_addmethod(para_bp2_tilde_class, (t_method)para_bp2_tilde_dsp, gensym("dsp"), 0); class_addmethod(para_bp2_tilde_class, (t_method)para_bp2_tilde_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(para_bp2_tilde_class, (t_method)para_bp2_tilde_ft2, gensym("ft2"), A_FLOAT, 0); class_addmethod(para_bp2_tilde_class, (t_method)para_bp2_tilde_ft3, gensym("ft3"), A_FLOAT, 0); class_addmethod(para_bp2_tilde_class, (t_method)para_bp2_tilde_ft4, gensym("ft4"), A_FLOAT, 0); class_addmethod(para_bp2_tilde_class, (t_method)para_bp2_tilde_set, gensym("set"), A_GIMME, 0); class_addmethod(para_bp2_tilde_class, (t_method)para_bp2_tilde_print, gensym("print"), 0); } iemlib-1.20.1/iemlib1/src/iem_cot4~.c0000644002537200234200000001126612022143506017461 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* ------------------------ iem_cot4~ ----------------------------- */ t_float *iem_cot4_tilde_table_cos=(t_float *)0L; t_float *iem_cot4_tilde_table_sin=(t_float *)0L; static t_class *iem_cot4_tilde_class; typedef struct _iem_cot4_tilde { t_object x_obj; t_float x_sr; t_float x_float_sig_in; } t_iem_cot4_tilde; static t_int *iem_cot4_tilde_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_iem_cot4_tilde *x = (t_iem_cot4_tilde *)(w[3]); t_float sr=x->x_sr; int n = (int)(w[4]); t_float *ctab = iem_cot4_tilde_table_cos, *stab = iem_cot4_tilde_table_sin; t_float *caddr, *saddr, cf1, cf2, sf1, sf2, frac; double dphase; int normhipart; int32 mytfi; union tabfudge_d 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 * (t_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 * (t_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 * (t_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 iem_cot4_tilde_dsp(t_iem_cot4_tilde *x, t_signal **sp) { x->x_sr = 2.0f / (t_float)sp[0]->s_sr; dsp_add(iem_cot4_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); } static void iem_cot4_tilde_maketable(void) { int i; t_float *fp, phase, fff, phsinc = 0.5*3.141592653 / ((t_float)COSTABSIZE); union tabfudge_d tf; if(!iem_cot4_tilde_table_sin) { iem_cot4_tilde_table_sin = (t_float *)getbytes(sizeof(t_float) * (COSTABSIZE+1)); for(i=COSTABSIZE+1, fp=iem_cot4_tilde_table_sin, phase=0; i--; fp++, phase+=phsinc) *fp = sin(phase); } if(!iem_cot4_tilde_table_cos) { iem_cot4_tilde_table_cos = (t_float *)getbytes(sizeof(t_float) * (COSTABSIZE+1)); for(i=COSTABSIZE+1, fp=iem_cot4_tilde_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 *iem_cot4_tilde_new(void) { t_iem_cot4_tilde *x = (t_iem_cot4_tilde *)pd_new(iem_cot4_tilde_class); outlet_new(&x->x_obj, gensym("signal")); x->x_float_sig_in = 0.0f; return (x); } void iem_cot4_tilde_setup(void) { iem_cot4_tilde_class = class_new(gensym("iem_cot4~"), (t_newmethod)iem_cot4_tilde_new, 0, sizeof(t_iem_cot4_tilde), 0, 0); class_addcreator((t_newmethod)iem_cot4_tilde_new, gensym("iem_cot~"), 0); CLASS_MAINSIGNALIN(iem_cot4_tilde_class, t_iem_cot4_tilde, x_float_sig_in); class_addmethod(iem_cot4_tilde_class, (t_method)iem_cot4_tilde_dsp, gensym("dsp"), 0); iem_cot4_tilde_maketable(); } iemlib-1.20.1/iemlib1/src/prvu~.c0000644002537200234200000001631012022143506016745 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* ---------------- prvu~ - simple peak&rms-vu-meter. ----------------- */ typedef struct _prvu_tilde { t_object x_obj; t_atom x_at[3]; void *x_clock_metro; t_float x_metro_time; void *x_clock_hold; t_float x_hold_time; t_float x_cur_peak; t_float x_old_peak; t_float x_hold_peak; int x_hold; t_float x_sum_rms; t_float x_old_rms; t_float x_rcp; t_float x_sr; t_float x_threshold_over; int x_overflow_counter; t_float x_release_time; t_float x_c1; int x_started; t_float x_float_sig_in; } t_prvu_tilde; static t_class *prvu_tilde_class; static void prvu_tilde_tick_metro(t_prvu_tilde *x); static void prvu_tilde_tick_hold(t_prvu_tilde *x); static void prvu_tilde_reset(t_prvu_tilde *x) { x->x_at[0].a_w.w_float = -99.9; x->x_at[1].a_w.w_float = -99.9; x->x_at[2].a_w.w_float = 0.0; outlet_list(x->x_obj.ob_outlet, &s_list, 3, x->x_at); x->x_overflow_counter = 0; x->x_cur_peak = 0.0; x->x_old_peak = 0.0; x->x_hold_peak = 0.0; x->x_sum_rms = 0.0; x->x_old_rms = 0.0; x->x_hold = 0; clock_unset(x->x_clock_hold); clock_delay(x->x_clock_metro, x->x_metro_time); } static void prvu_tilde_stop(t_prvu_tilde *x) { clock_unset(x->x_clock_metro); x->x_started = 0; } static void prvu_tilde_start(t_prvu_tilde *x) { clock_delay(x->x_clock_metro, x->x_metro_time); x->x_started = 1; } static void prvu_tilde_float(t_prvu_tilde *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 prvu_tilde_t_release(t_prvu_tilde *x, t_floatarg release_time) { if(release_time <= 5.0) release_time = 5.0; x->x_release_time = release_time; x->x_c1 = exp(-2.0*x->x_metro_time/x->x_release_time); } static void prvu_tilde_t_metro(t_prvu_tilde *x, t_floatarg metro_time) { if(metro_time <= 5.0) metro_time = 5.0; x->x_metro_time = metro_time; x->x_c1 = exp(-2.0*x->x_metro_time/x->x_release_time); x->x_rcp = 1.0/(x->x_sr*(t_float)x->x_metro_time); } static void prvu_tilde_t_hold(t_prvu_tilde *x, t_floatarg hold_time) { if(hold_time <= 5.0) hold_time = 5.0; x->x_hold_time = hold_time; } static void prvu_tilde_threshold(t_prvu_tilde *x, t_floatarg thresh) { x->x_threshold_over = thresh; } static t_int *prvu_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_prvu_tilde *x = (t_prvu_tilde *)(w[2]); int n = (int)(w[3]); t_float peak = x->x_cur_peak, power, sum=x->x_sum_rms; int i; if(x->x_started) { for(i=0; i peak) peak = power; sum += power; } x->x_cur_peak = peak; x->x_sum_rms = sum; } return(w+4); } static void prvu_tilde_dsp(t_prvu_tilde *x, t_signal **sp) { x->x_sr = 0.001*(t_float)sp[0]->s_sr; x->x_rcp = 1.0/(x->x_sr*x->x_metro_time); dsp_add(prvu_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); clock_delay(x->x_clock_metro, x->x_metro_time); } static void prvu_tilde_tick_hold(t_prvu_tilde *x) { x->x_hold = 0; x->x_hold_peak = x->x_old_peak; } static void prvu_tilde_tick_metro(t_prvu_tilde *x) { t_float dbr, dbp, cur_rms, c1=x->x_c1; x->x_old_peak *= c1; /* NAN protect */ if(IEM_DENORMAL(x->x_old_peak)) x->x_old_peak = 0.0; 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.0000000001) dbp = -99.9; else if(x->x_hold_peak > 1000000.0) { dbp = 60.0; x->x_hold_peak = 1000000.0; x->x_old_peak = 1000000.0; } else dbp = 4.3429448195*log(x->x_hold_peak); x->x_cur_peak = 0.0; 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 = (t_float)x->x_overflow_counter; cur_rms = (1.0 - c1)*x->x_sum_rms*x->x_rcp + c1*x->x_old_rms; /* NAN protect */ if(IEM_DENORMAL(cur_rms)) cur_rms = 0.0; if(cur_rms <= 0.0000000001) dbr = -99.9; else if(cur_rms > 1000000.0) { dbr = 60.0; x->x_old_rms = 1000000.0; } else dbr = 4.3429448195*log(cur_rms); x->x_sum_rms = 0.0; 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 prvu_tilde_ff(t_prvu_tilde *x) { clock_free(x->x_clock_metro); clock_free(x->x_clock_hold); } static void *prvu_tilde_new(t_floatarg metro_time, t_floatarg hold_time, t_floatarg release_time, t_floatarg threshold) { t_prvu_tilde *x; t_float t; int i; x = (t_prvu_tilde *)pd_new(prvu_tilde_class); if(metro_time <= 0.0) metro_time = 300.0; if(metro_time <= 5.0) metro_time = 5.0; if(release_time <= 0.0) release_time = 300.0; if(release_time <= 5.0) release_time = 5.0; if(hold_time <= 0.0) hold_time = 1000.0; if(hold_time <= 5.0) hold_time = 5.0; if(threshold == 0.0) threshold = -0.01; x->x_metro_time = metro_time; x->x_release_time = release_time; x->x_hold_time = hold_time; x->x_threshold_over = threshold; x->x_c1 = exp(-2.0*x->x_metro_time/x->x_release_time); x->x_cur_peak = 0.0; x->x_old_peak = 0.0; x->x_hold_peak = 0.0; x->x_hold = 0; x->x_sum_rms = 0.0; x->x_old_rms = 0.0; x->x_sr = 44.1; x->x_rcp = 1.0/(x->x_sr*x->x_metro_time); x->x_overflow_counter = 0; x->x_clock_metro = clock_new(x, (t_method)prvu_tilde_tick_metro); x->x_clock_hold = clock_new(x, (t_method)prvu_tilde_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_float_sig_in = 0.0; return(x); } void prvu_tilde_setup(void) { prvu_tilde_class = class_new(gensym("prvu~"), (t_newmethod)prvu_tilde_new, (t_method)prvu_tilde_ff, sizeof(t_prvu_tilde), 0, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(prvu_tilde_class, t_prvu_tilde, x_float_sig_in); class_addmethod(prvu_tilde_class, (t_method)prvu_tilde_dsp, gensym("dsp"), 0); class_addfloat(prvu_tilde_class, prvu_tilde_float); class_addmethod(prvu_tilde_class, (t_method)prvu_tilde_reset, gensym("reset"), 0); class_addmethod(prvu_tilde_class, (t_method)prvu_tilde_start, gensym("start"), 0); class_addmethod(prvu_tilde_class, (t_method)prvu_tilde_stop, gensym("stop"), 0); class_addmethod(prvu_tilde_class, (t_method)prvu_tilde_t_release, gensym("t_release"), A_FLOAT, 0); class_addmethod(prvu_tilde_class, (t_method)prvu_tilde_t_metro, gensym("t_metro"), A_FLOAT, 0); class_addmethod(prvu_tilde_class, (t_method)prvu_tilde_t_hold, gensym("t_hold"), A_FLOAT, 0); class_addmethod(prvu_tilde_class, (t_method)prvu_tilde_threshold, gensym("threshold"), A_FLOAT, 0); } iemlib-1.20.1/iemlib1/src/lp1_t~.c0000644002537200234200000001330512022143506016771 0ustar zmoelnigiemusers/* 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 - 2011 */ #include "m_pd.h" #include "iemlib.h" #include /* -- lp1_t~ - slow dynamic lowpass-filter 1. order controlled by time constant tau input --- */ /* -- now with double precision; for low-frequency filters it is important to calculate the filter in double precision -- */ typedef struct _lp1_t_tilde { t_object x_obj; double yn1; double c0; double c1; double sr; double cur_t; double delta_t; double end_t; t_float ticks_per_interpol_time; t_float rcp_ticks; t_float interpol_time; int ticks; int counter_t; t_float x_float_sig_in; } t_lp1_t_tilde; static t_class *lp1_t_tilde_class; static void lp1_t_tilde_dsp_tick(t_lp1_t_tilde *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.0) x->c1 = 0.0; else x->c1 = exp((x->sr)/x->cur_t); x->c0 = 1.0 - x->c1; } } static t_int *lp1_t_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_lp1_t_tilde *x = (t_lp1_t_tilde *)(w[3]); int i, n = (t_int)(w[4]); double yn0, yn1=x->yn1; double c0=x->c0, c1=x->c1; lp1_t_tilde_dsp_tick(x); for(i=0; iyn1 = yn1; return(w+5); } static t_int *lp1_t_tilde_perf8(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_lp1_t_tilde *x = (t_lp1_t_tilde *)(w[3]); int i, n = (t_int)(w[4]); double ynn[9]; double c0=x->c0, c1=x->c1; lp1_t_tilde_dsp_tick(x); ynn[0] = x->yn1; for(i=0; iyn1 = ynn[0]; return(w+5); } static void lp1_t_tilde_ft2(t_lp1_t_tilde *x, t_floatarg interpol) { int i = (int)((x->ticks_per_interpol_time)*interpol); x->interpol_time = interpol; if(i <= 0) i = 1; x->ticks = i; x->rcp_ticks = 1.0 / (t_float)i; } static void lp1_t_tilde_ft1(t_lp1_t_tilde *x, t_floatarg f_time_const) { double d_time_const; if(f_time_const < 0.0) f_time_const = 0.0; d_time_const = (double)f_time_const; if(d_time_const != x->cur_t) { x->end_t = d_time_const; x->counter_t = x->ticks; x->delta_t = (d_time_const - x->cur_t) * (double)x->rcp_ticks; } } static void lp1_t_tilde_set(t_lp1_t_tilde *x, t_floatarg w1) { x->yn1 = (double)w1; } static void lp1_t_tilde_dsp(t_lp1_t_tilde *x, t_signal **sp) { int i, n=(int)sp[0]->s_n; x->sr = -1000.0 / (double)(sp[0]->s_sr); x->ticks_per_interpol_time = 0.001 * (t_float)(sp[0]->s_sr) / (t_float)n; i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)); if(i <= 0) i = 1; x->ticks = i; x->rcp_ticks = 1.0 / (t_float)i; if(x->cur_t == 0.0) x->c1 = 0.0; else x->c1 = exp((x->sr)/x->cur_t); x->c0 = 1.0 - x->c1; if(n&7) dsp_add(lp1_t_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); else dsp_add(lp1_t_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); } static void *lp1_t_tilde_new(t_symbol *s, int argc, t_atom *argv) { t_lp1_t_tilde *x = (t_lp1_t_tilde *)pd_new(lp1_t_tilde_class); int i; t_float interpol=0.0; double time_const=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")); outlet_new(&x->x_obj, &s_signal); x->x_float_sig_in = 0.0; x->counter_t = 1; x->delta_t = 0.0; x->interpol_time = 0.0; x->yn1 = 0.0; x->sr = -1.0 / 44.1; if((argc >= 1)&&IS_A_FLOAT(argv,0)) time_const = (double)atom_getfloatarg(0, argc, argv); if((argc >= 2)&&IS_A_FLOAT(argv,1)) interpol = (t_float)atom_getfloatarg(1, argc, argv); if(time_const < 0.0) time_const = 0.0; x->cur_t = time_const; if(time_const == 0.0) x->c1 = 0.0; else x->c1 = exp((x->sr)/time_const); x->c0 = 1.0 - x->c1; if(interpol < 0.0) interpol = 0.0; x->interpol_time = interpol; x->ticks_per_interpol_time = 0.5; i = (int)((x->ticks_per_interpol_time)*(x->interpol_time)); if(i <= 0) i = 1; x->ticks = i; x->rcp_ticks = 1.0 / (t_float)i; x->end_t = x->cur_t; return (x); } void lp1_t_tilde_setup(void) { lp1_t_tilde_class = class_new(gensym("lp1_t~"), (t_newmethod)lp1_t_tilde_new, 0, sizeof(t_lp1_t_tilde), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(lp1_t_tilde_class, t_lp1_t_tilde, x_float_sig_in); class_addmethod(lp1_t_tilde_class, (t_method)lp1_t_tilde_dsp, gensym("dsp"), 0); class_addmethod(lp1_t_tilde_class, (t_method)lp1_t_tilde_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(lp1_t_tilde_class, (t_method)lp1_t_tilde_ft2, gensym("ft2"), A_FLOAT, 0); class_addmethod(lp1_t_tilde_class, (t_method)lp1_t_tilde_set, gensym("set"), A_FLOAT, 0); } iemlib-1.20.1/iemlib1/src/mov_avrg_kern~.c0000644002537200234200000000714412022143506020615 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* -- mov_avrg_kern~ - kernel for a moving-average-filter with IIR - */ typedef struct _mov_avrg_kern_tilde { t_object x_obj; double x_wn1; double x_a0; double x_sr; double x_mstime; int x_nsamps; int x_counter; t_float x_float_sig_in; } t_mov_avrg_kern_tilde; static t_class *mov_avrg_kern_tilde_class; static t_int *mov_avrg_kern_tilde_perform(t_int *w) { t_sample *in_direct = (t_sample *)(w[1]); t_sample *in_delayed = (t_sample *)(w[2]); t_sample *out = (t_sample *)(w[3]); t_mov_avrg_kern_tilde *x = (t_mov_avrg_kern_tilde *)(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; ix_counter = 0; for(i=0; ix_wn1 = wn1; return(w+6); } static void mov_avrg_kern_tilde_ft1(t_mov_avrg_kern_tilde *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 mov_avrg_kern_tilde_reset(t_mov_avrg_kern_tilde *x) { x->x_counter = x->x_nsamps; x->x_wn1 = 0.0; } static void mov_avrg_kern_tilde_dsp(t_mov_avrg_kern_tilde *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(mov_avrg_kern_tilde_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, sp[0]->s_n); } static void *mov_avrg_kern_tilde_new(t_floatarg mstime) { t_mov_avrg_kern_tilde *x = (t_mov_avrg_kern_tilde *)pd_new(mov_avrg_kern_tilde_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_float_sig_in = 0.0; return(x); } void mov_avrg_kern_tilde_setup(void) { mov_avrg_kern_tilde_class = class_new(gensym("mov_avrg_kern~"), (t_newmethod)mov_avrg_kern_tilde_new, 0, sizeof(t_mov_avrg_kern_tilde), 0, A_FLOAT, 0); CLASS_MAINSIGNALIN(mov_avrg_kern_tilde_class, t_mov_avrg_kern_tilde, x_float_sig_in); class_addmethod(mov_avrg_kern_tilde_class, (t_method)mov_avrg_kern_tilde_dsp, gensym("dsp"), 0); class_addmethod(mov_avrg_kern_tilde_class, (t_method)mov_avrg_kern_tilde_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(mov_avrg_kern_tilde_class, (t_method)mov_avrg_kern_tilde_reset, gensym("reset"), 0); } iemlib-1.20.1/iemlib1/src/soundfile_info.c0000644002537200234200000003270612022143506020565 0ustar zmoelnigiemusers/* 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 - 2010 */ #include "m_pd.h" #include "iemlib.h" #include #include #include #include #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_FORMAT_CODE 7 #define SFI_HEADER_SIZE 8 #define SFI_HEADER_CHUNK_SIZE_ESTIMATION 10000 /* --------------------------- soundfile_info -------------------------------- */ /* -- reads only header of a wave-file and outputs the important parameters -- */ static t_class *soundfile_info_class; typedef struct _soundfile_info { t_object x_obj; long *x_begmem; int x_mem_size; t_atom x_at_header[SFI_HEADER_SIZE]; t_canvas *x_canvas; void *x_list_out; } t_soundfile_info; static short soundfile_info_string_to_int16(char *cvec) { short ss=0; unsigned char *uc=(unsigned char *)cvec; ss += (short)(*uc); ss += (short)(*(uc+1)*256); return(ss); } static unsigned long soundfile_info_string_to_uint32(char *cvec) { unsigned long ul=0; unsigned char *uc=(unsigned char *)cvec; ul += (unsigned long)(*uc); ul += (unsigned long)(*(uc+1)*256); ul += (unsigned long)(*(uc+2)*65536); ul += (unsigned long)(*(uc+3)*16777216); return(ul); } static void soundfile_info_uint32_to_string(char *cvec, unsigned long ul) { unsigned char *uc=(unsigned char *)cvec; *uc = (unsigned char)(0x000000ff & ul); *(uc+1) = (unsigned char)(0x000000ff & (ul/256)); *(uc+2) = (unsigned char)(0x000000ff & (ul/65536)); *(uc+3) = (unsigned char)(0x000000ff & (ul/16777216)); return; } static void soundfile_info_overwrite_sr(t_soundfile_info *x, t_symbol *filename, t_floatarg new_sr) { char completefilename[400]; int i, n, n2, n4, filesize, read_chars, header_size=0, ch, bytesperframe, sr, n_frames; FILE *fh; t_atom *at; char *cvec; unsigned long ul_chunk_size, ul_sr; short ss_format, ss_ch, ss_bytesperframe; 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,"r+b"); if(!fh) { post("soundfile_info_read: cannot open %s !!\n", completefilename); } else { n = x->x_mem_size; // 10000 bytes n2 = sizeof(short) * x->x_mem_size; n4 = sizeof(long) * x->x_mem_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; // 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 sr_soundfile_info_end; } header_size += 8; // jump over RIFF chunk size cvec += 8; if(strncmp(cvec, "WAVE", 4)) { post("soundfile_info_read-error: %s is no RIFF-WAVE-file", completefilename); goto sr_soundfile_info_end; } header_size += 4; cvec += 4; for(i=header_size/2; i 32000)) { post("soundfile_info_read-error: %s has no common channel-number", completefilename); goto sr_soundfile_info_end; } SETFLOAT(x->x_at_header+SFI_HEADER_CHANNELS, (t_float)ss_ch); ch = (int)ss_ch; header_size += 2; cvec += 2; ul_sr = soundfile_info_string_to_uint32(cvec); /* samplerate */ if((ul_sr > 2000000000) || (ul_sr < 1)) { post("soundfile_info_read-error: %s has no common samplerate", completefilename); goto sr_soundfile_info_end; } ul_sr = (unsigned long)new_sr; soundfile_info_uint32_to_string(cvec, ul_sr); fseek(fh,0,SEEK_SET); read_chars = (int)fwrite (x->x_begmem, sizeof(char), n4, fh); fclose(fh); post("written"); sr = (int)ul_sr; header_size += 4; cvec += 4; header_size += 4; /* jump over bytes_per_sec */ cvec += 4; ss_bytesperframe = soundfile_info_string_to_int16(cvec); /* bytes_per_frame */ if((ss_bytesperframe < 1) || (ss_bytesperframe > 32000)) { post("soundfile_info_read-error: %s has no common number of bytes per frame", completefilename); goto sr_soundfile_info_end; } bytesperframe = (int)ss_bytesperframe; header_size += 2; cvec += 2; header_size += 2; /* jump over bits_per_sample */ cvec += 2; for(i=header_size/2; is_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_mem_size; // 10000 bytes n2 = sizeof(short) * x->x_mem_size; n4 = sizeof(long) * x->x_mem_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; // jump over RIFF chunk size 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; ix_at_header+SFI_HEADER_FORMAT_CODE, (t_float)ss_format); header_size += 2; cvec += 2; ss_ch = soundfile_info_string_to_int16(cvec); /* channels */ if((ss_ch < 1) || (ss_ch > 32000)) { post("soundfile_info_read-error: %s has no common channel-number", completefilename); goto soundfile_info_end; } SETFLOAT(x->x_at_header+SFI_HEADER_CHANNELS, (t_float)ss_ch); ch = (int)ss_ch; header_size += 2; cvec += 2; ul_sr = soundfile_info_string_to_uint32(cvec); /* samplerate */ if((ul_sr > 2000000000) || (ul_sr < 1)) { post("soundfile_info_read-error: %s has no common samplerate", completefilename); goto soundfile_info_end; } SETFLOAT(x->x_at_header+SFI_HEADER_SAMPLERATE, (t_float)ul_sr); sr = (int)ul_sr; header_size += 4; cvec += 4; header_size += 4; /* jump over bytes_per_sec */ cvec += 4; ss_bytesperframe = soundfile_info_string_to_int16(cvec); /* bytes_per_frame */ if((ss_bytesperframe < 1) || (ss_bytesperframe > 32000)) { post("soundfile_info_read-error: %s has no common number of bytes per frame", completefilename); goto soundfile_info_end; } SETFLOAT(x->x_at_header+SFI_HEADER_BYTES_PER_SAMPLE, (t_float)(ss_bytesperframe / ss_ch)); bytesperframe = (int)ss_bytesperframe; header_size += 2; cvec += 2; header_size += 2; /* jump over bits_per_sample */ cvec += 2; for(i=header_size/2; ix_at_header+SFI_HEADER_HEADERBYTES, (t_float)header_size); n_frames = (filesize - header_size) / bytesperframe; SETFLOAT(x->x_at_header+SFI_HEADER_MULTICHANNEL_FILE_LENGTH, (t_float)n_frames); SETSYMBOL(x->x_at_header+SFI_HEADER_ENDINESS, gensym("l")); SETSYMBOL(x->x_at_header+SFI_HEADER_FILENAME, gensym(completefilename)); /* post("ch = %d", ch); post("sr = %d", sr); post("bpf = %d", bytesperframe/ch); post("head = %d", header_size); post("len = %d", n_frames);*/ outlet_list(x->x_list_out, &s_list, SFI_HEADER_SIZE, x->x_at_header); soundfile_info_end: ; } } } static void soundfile_info_free(t_soundfile_info *x) { freebytes(x->x_begmem, x->x_mem_size * sizeof(long)); } static void *soundfile_info_new(void) { t_soundfile_info *x = (t_soundfile_info *)pd_new(soundfile_info_class); x->x_mem_size = SFI_HEADER_CHUNK_SIZE_ESTIMATION; /* try to read the first 10000 bytes of the soundfile */ x->x_begmem = (long *)getbytes(x->x_mem_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_addmethod(soundfile_info_class, (t_method)soundfile_info_overwrite_sr, gensym("overwrite_sr"), A_SYMBOL, A_FLOAT, 0); } iemlib-1.20.1/iemlib1/src/VC6/0000755002537200234200000000000012243414227016012 5ustar zmoelnigiemusersiemlib-1.20.1/iemlib1/src/VC6/iemlib1.dsp0000644002537200234200000000474511602665100020052 0ustar zmoelnigiemusers# 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 gltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE !MESSAGE verwenden Sie den Befehl "Makefile exportieren" und fhren Sie den Befehl !MESSAGE !MESSAGE NMAKE /f "iemlib1.mak". !MESSAGE !MESSAGE Sie knnen beim Ausfhren 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 Fr 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 iemlib-1.20.1/iemlib1/src/VC6/iemlib1.dsw0000644002537200234200000000106511602665100020051 0ustar zmoelnigiemusersMicrosoft Developer Studio Workspace File, Format Version 6.00 # WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELSCHT WERDEN! ############################################################################### Project: "iemlib1"=.\iemlib1.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### iemlib-1.20.1/iemlib1/src/VC6/makefile_win0000644002537200234200000000251311602665100020364 0ustar zmoelnigiemusersTARGET = iemlib1 all: ..\$(TARGET).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 \ filter~.c \ FIR~.c \ for++.c \ gate.c \ hml_shelf~.c \ iem_cot4~.c \ iem_delay~.c \ iem_pow4~.c \ iem_sqrt4~.c \ lp1_t~.c \ mov_avrg_kern~.c \ para_bp2~.c \ peakenv~.c \ peakenv_hold~.c \ prvu~.c \ pvu~.c \ rvu~.c \ sin_phase~.c \ sparse_FIR~ \ soundfile_info.c \ split.c \ v2db.c \ vcf_filter~.c \ $(TARGET).c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\$(TARGET).dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \ /out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iemlib1/src/v2db.c0000644002537200234200000000160710536414324016422 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* -------- v2db - a rms-value to techn. dB converter. --------- */ static t_class *v2db_class; t_float v2db(t_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")); } iemlib-1.20.1/iemlib1/src/iemlib1.c0000644002537200234200000000423612205156740017110 0ustar zmoelnigiemusers/* 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 - 2010 */ #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 filter_tilde_setup(void); void FIR_tilde_setup(void); void forpp_setup(void); void gate_setup(void); void hml_shelf_tilde_setup(void); void iem_cot4_tilde_setup(void); void iem_delay_tilde_setup(void); void iem_pow4_tilde_setup(void); void iem_sqrt4_tilde_setup(void); void lp1_t_tilde_setup(void); void mov_avrg_kern_tilde_setup(void); void para_bp2_tilde_setup(void); void peakenv_tilde_setup(void); void peakenv_hold_tilde_setup(void); void prvu_tilde_setup(void); void pvu_tilde_setup(void); void rvu_tilde_setup(void); void sin_freq_tilde_setup(void); void sin_phase_tilde_setup(void); void sparse_FIR_tilde_setup(void); void soundfile_info_setup(void); void split_setup(void); void v2db_setup(void); void vcf_filter_tilde_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(); filter_tilde_setup(); FIR_tilde_setup(); forpp_setup(); gate_setup(); hml_shelf_tilde_setup(); iem_cot4_tilde_setup(); iem_delay_tilde_setup(); iem_pow4_tilde_setup(); iem_sqrt4_tilde_setup(); lp1_t_tilde_setup(); mov_avrg_kern_tilde_setup(); para_bp2_tilde_setup(); peakenv_tilde_setup(); peakenv_hold_tilde_setup(); prvu_tilde_setup(); pvu_tilde_setup(); rvu_tilde_setup(); sin_freq_tilde_setup(); sin_phase_tilde_setup(); sparse_FIR_tilde_setup(); soundfile_info_setup(); split_setup(); v2db_setup(); vcf_filter_tilde_setup(); post("iemlib1 (R-1.20) library loaded! (c) Thomas Musil 07.2013"); post(" musil%ciem.at iem KUG Graz Austria", '@'); } iemlib-1.20.1/iemlib1/src/f2note.c0000644002537200234200000000676210536414324016771 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* ------------------------- f2note ---------------------- */ /* ------ 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; t_float x_refhz; t_float x_refexp; t_float x_reflog; t_symbol *x_set; } t_f2note; static t_class *f2note_class; t_float f2note_mtof(t_f2note *x, t_float midi) { return(x->x_refexp * exp(0.057762265047 * midi)); } t_float f2note_ftom(t_f2note *x, t_float freq) { return (freq > 0 ? 17.31234049 * log(x->x_reflog * freq) : -1500); } void f2note_calc_ref(t_f2note *x) { t_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, (t_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.01f*(t_float)(x->x_centomidi)); } static void f2note_float(t_f2note *x, t_floatarg freq) { x->x_centomidi = (int)(100.0f*f2note_ftom(x, freq) + 0.5f); 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.0f) ref=440.0f; x->x_refhz = ref; x->x_centomidi = (int)(100.0f*ref + 0.499f); 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")); } iemlib-1.20.1/iemlib1/src/peakenv_hold~.c0000644002537200234200000000724612022150247020420 0ustar zmoelnigiemusers/* 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 - 2010 */ #include "m_pd.h" #include "iemlib.h" #include /* ---------------- peakenv_hold~ - simple peak-envelope-converter with peak hold time and release time. ----------------- */ /* -- now with double precision; for low-frequency filters it is important to calculate the filter in double precision -- */ typedef struct _peakenv_hold_tilde { t_object x_obj; double x_sr; double x_old_peak; double x_c1; double x_releasetime; double x_holdtime; t_int x_n_hold; t_int x_counter; t_float x_float_sig_in; } t_peakenv_hold_tilde; static t_class *peakenv_hold_tilde_class; static void peakenv_hold_tilde_reset(t_peakenv_hold_tilde *x) { x->x_old_peak = 0.0; } static void peakenv_hold_tilde_ft1(t_peakenv_hold_tilde *x, t_float t_hold)/* hold-time in ms */ { double dhold; if(t_hold < 0.0) t_hold = 0.0; x->x_holdtime = (double)t_hold; dhold = x->x_sr*0.001*x->x_holdtime; if(dhold > 2147483647.0) dhold = 2147483647.0; x->x_n_hold = (t_int)(dhold + 0.5); } static void peakenv_hold_tilde_ft2(t_peakenv_hold_tilde *x, t_float t_rel)/* release-time in ms */ { if(t_rel < 0.0) t_rel = 0.0; x->x_releasetime = (double)t_rel; x->x_c1 = exp(-1.0/(x->x_sr*0.001*x->x_releasetime)); } static t_int *peakenv_hold_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_peakenv_hold_tilde *x = (t_peakenv_hold_tilde *)(w[3]); int n = (int)(w[4]); double peak = x->x_old_peak; double c1 = x->x_c1; double absolute; t_int i, counter; counter = x->x_counter; for(i=0; i 0) counter--;// hold peride else peak *= c1;// release periode if(absolute > peak) { peak = absolute; counter = x->x_n_hold;// new hold initialisation } *out++ = (t_sample)peak; } /* NAN protect */ //if(IEM_DENORMAL(peak)) // peak = 0.0f; x->x_old_peak = peak; x->x_counter = counter; return(w+5); } static void peakenv_hold_tilde_dsp(t_peakenv_hold_tilde *x, t_signal **sp) { x->x_sr = (double)sp[0]->s_sr; peakenv_hold_tilde_ft1(x, x->x_holdtime); peakenv_hold_tilde_ft2(x, x->x_releasetime); dsp_add(peakenv_hold_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); } static void *peakenv_hold_tilde_new(t_float t_hold, t_float t_rel) { t_peakenv_hold_tilde *x = (t_peakenv_hold_tilde *)pd_new(peakenv_hold_tilde_class); x->x_sr = 44100.0; peakenv_hold_tilde_ft1(x, t_hold); peakenv_hold_tilde_ft2(x, t_rel); x->x_old_peak = 0.0; x->x_counter = 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")); outlet_new(&x->x_obj, &s_signal); x->x_float_sig_in = 0.0; return(x); } void peakenv_hold_tilde_setup(void) { peakenv_hold_tilde_class = class_new(gensym("peakenv_hold~"), (t_newmethod)peakenv_hold_tilde_new, 0, sizeof(t_peakenv_hold_tilde), 0, A_DEFFLOAT, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(peakenv_hold_tilde_class, t_peakenv_hold_tilde, x_float_sig_in); class_addmethod(peakenv_hold_tilde_class, (t_method)peakenv_hold_tilde_dsp, gensym("dsp"), 0); class_addmethod(peakenv_hold_tilde_class, (t_method)peakenv_hold_tilde_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(peakenv_hold_tilde_class, (t_method)peakenv_hold_tilde_ft2, gensym("ft2"), A_FLOAT, 0); class_addmethod(peakenv_hold_tilde_class, (t_method)peakenv_hold_tilde_reset, gensym("reset"), 0); } iemlib-1.20.1/iemlib1/src/split.c0000644002537200234200000000223510536414324016716 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* --------- split is like moses ----------- */ 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")); } iemlib-1.20.1/iemlib1/src/sin_freq~.c0000644002537200234200000000462611672410720017573 0ustar zmoelnigiemusers/* 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 - 2011 */ #include "m_pd.h" #include "iemlib.h" /* --- sin_freq~ - output the frequency of a --- */ /* --- sinewave in Hz ----- */ /* --- as a signal ----------------------------- */ typedef struct _sin_freq_tilde { t_object x_obj; t_sample x_prev; t_sample x_cur_out; t_sample x_counter; t_sample x_sr; t_float x_float_sig_in; } t_sin_freq_tilde; static t_class *sin_freq_tilde_class; static t_int *sin_freq_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_sin_freq_tilde *x = (t_sin_freq_tilde *)(w[3]); int i, n = (t_int)(w[4]); t_sample prev=x->x_prev; t_sample cur_out=x->x_cur_out; t_sample counter=x->x_counter; t_sample sr=x->x_sr; t_sample delta_x=0.0; for(i=0; i= 0.0) && (prev < 0.0)) /* begin of counting, pos. zero cross of sig_in */ { delta_x = prev / (prev - in[i]); /* dx = y1 / (y1 - y2) */ counter += delta_x; cur_out = sr / counter; counter = 1.0 - delta_x; } else { counter += 1.0; } prev = in[i]; out[i] = cur_out; } x->x_prev = prev; x->x_cur_out = cur_out; x->x_counter = counter; return(w+5); } static void sin_freq_tilde_dsp(t_sin_freq_tilde *x, t_signal **sp) { x->x_sr = (t_sample)sp[0]->s_sr; dsp_add(sin_freq_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); } static void *sin_freq_tilde_new(void) { t_sin_freq_tilde *x = (t_sin_freq_tilde *)pd_new(sin_freq_tilde_class); outlet_new(&x->x_obj, &s_signal); x->x_prev = 0.0; x->x_cur_out = 0.0; x->x_counter = 0.0; x->x_sr = 44100.0; x->x_float_sig_in = 0.0; return (x); } void sin_freq_tilde_setup(void) { sin_freq_tilde_class = class_new(gensym("sin_freq~"), (t_newmethod)sin_freq_tilde_new, 0, sizeof(t_sin_freq_tilde), 0, 0); CLASS_MAINSIGNALIN(sin_freq_tilde_class, t_sin_freq_tilde, x_float_sig_in); class_addmethod(sin_freq_tilde_class, (t_method)sin_freq_tilde_dsp, gensym("dsp"), 0); } /* geradengleichung: y - y1 = ((y2 - y1) / (x2 - x1)) * (x - x1) y = ((y2 - y1) / (x2 - x1)) * (x - x1) + y1 = 0 x1 = 0 x2 = 1 0 = ((y2 - y1) / 1) * (x) + y1 -y1 = (y2 - y1) * x x = y1 / (y1 - y2) */ iemlib-1.20.1/iemlib1/src/iem_delay~.c0000644002537200234200000001346411560743074017724 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* -------------------------- iem_delay~ ------------------------------ */ static t_class *iem_delay_tilde_class; #define IEMDELAY_DEF_VEC_SIZE 64 typedef struct _iem_delay_tilde { 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_float_sig_in; } t_iem_delay_tilde; static void iem_delay_tilde_cur_del(t_iem_delay_tilde *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 *iem_delay_tilde_perform(t_int *w) { t_float *in = (t_float *)(w[1]); t_float *out = (t_float *)(w[2]); t_iem_delay_tilde *x = (t_iem_delay_tilde *)(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 *iem_delay_tilde_perf8(t_int *w) { t_float *in = (t_float *)(w[1]); t_float *out = (t_float *)(w[2]); t_iem_delay_tilde *x = (t_iem_delay_tilde *)(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; ix_begmem2 + writeindex - x->x_delay_samples; for(i=0; i= x->x_mallocsize) { writeindex -= x->x_mallocsize; } x->x_writeindex = writeindex; return(w+5); } static void iem_delay_tilde_dsp(t_iem_delay_tilde *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(iem_delay_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, blocksize); else dsp_add(iem_delay_tilde_perf8, 4, sp[0]->s_vec, sp[1]->s_vec, x, blocksize); } static void *iem_delay_tilde_new(t_floatarg max_delay_ms, t_floatarg current_delay_ms) { t_iem_delay_tilde *x = (t_iem_delay_tilde *)pd_new(iem_delay_tilde_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_float_sig_in = 0.0f; return (x); } static void iem_delay_tilde_free(t_iem_delay_tilde *x) { freebytes(x->x_begmem1, 2 * x->x_mallocsize * sizeof(t_float)); } void iem_delay_tilde_setup(void) { iem_delay_tilde_class = class_new(gensym("iem_delay~"), (t_newmethod)iem_delay_tilde_new, (t_method)iem_delay_tilde_free, sizeof(t_iem_delay_tilde), 0, A_DEFFLOAT, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(iem_delay_tilde_class, t_iem_delay_tilde, x_float_sig_in); class_addmethod(iem_delay_tilde_class, (t_method)iem_delay_tilde_dsp, gensym("dsp"), 0); class_addmethod(iem_delay_tilde_class, (t_method)iem_delay_tilde_cur_del, gensym("ft1"), A_FLOAT, 0); } iemlib-1.20.1/iemlib1/src/iemlib1.sln0000644002537200234200000000156312165064572017470 0ustar zmoelnigiemusers Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iemlib1", "iemlib1.vcproj", "{5ECC5EEF-09A4-4DDD-B1C8-D4FA1D5B8BD5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {5ECC5EEF-09A4-4DDD-B1C8-D4FA1D5B8BD5}.Debug|Win32.ActiveCfg = Release|Win32 {5ECC5EEF-09A4-4DDD-B1C8-D4FA1D5B8BD5}.Debug|Win32.Build.0 = Release|Win32 {5ECC5EEF-09A4-4DDD-B1C8-D4FA1D5B8BD5}.Release|Win32.ActiveCfg = Release|Win32 {5ECC5EEF-09A4-4DDD-B1C8-D4FA1D5B8BD5}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal iemlib-1.20.1/iemlib1/src/sin_phase~.c0000644002537200234200000000656712022143506017737 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* --- sin_phase~ - output the phase-difference between --- */ /* --- 2 sinewaves with the same frequency in samples ----- */ /* --- as a signal ---------------------------------------- */ typedef struct _sin_phase_tilde { t_object x_obj; t_sample x_prev1; t_sample x_prev2; t_sample x_cur_out; t_sample x_counter1; t_sample x_counter2; int x_state1; int x_state2; t_float x_float_sig_in; } t_sin_phase_tilde; static t_class *sin_phase_tilde_class; static t_int *sin_phase_tilde_perform(t_int *w) { t_sample *in1 = (t_sample *)(w[1]); t_sample *in2 = (t_sample *)(w[2]); t_sample *out = (t_sample *)(w[3]); t_sin_phase_tilde *x = (t_sin_phase_tilde *)(w[4]); int i, n = (t_int)(w[5]); t_sample prev1=x->x_prev1; t_sample prev2=x->x_prev2; t_sample cur_out=x->x_cur_out; t_sample counter1=x->x_counter1; t_sample counter2=x->x_counter2; int state1=x->x_state1; int state2=x->x_state2; for(i=0; i= 0.0) && (prev1 < 0.0)) {/* pos. zero cross of sig_in_1 */ state1 = 1; counter1 = prev1 / (prev1 - in1[i]); /* x = y1 / (y1 - y2) */ } else if((in1[i] < 0.0) && (prev1 >= 0.0)) {/* neg. zero cross of sig_in_1 */ state2 = 1; counter2 = prev1 / (prev1 - in1[i]); /* x = y1 / (y1 - y2) */ } if((in2[i] >= 0.0) && (prev2 < 0.0)) {/* pos. zero cross of sig_in_2 */ state1 = 0; cur_out = counter1 + prev2 / (prev2 - in2[i]) - 1.0; counter1 = 0.0; } else if((in2[i] < 0.0) && (prev2 >= 0.0)) {/* neg. zero cross of sig_in_2 */ state2 = 0; cur_out = counter2 + prev2 / (prev2 - in2[i]) - 1.0; counter2 = 0.0; } if(state1) counter1 += 1.0; if(state2) counter2 += 1.0; 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 sin_phase_tilde_dsp(t_sin_phase_tilde *x, t_signal **sp) { dsp_add(sin_phase_tilde_perform, 5, sp[0]->s_vec, sp[1]->s_vec, sp[2]->s_vec, x, sp[0]->s_n); } static void *sin_phase_tilde_new(void) { t_sin_phase_tilde *x = (t_sin_phase_tilde *)pd_new(sin_phase_tilde_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.0; x->x_prev2 = 0.0; x->x_cur_out = 0.0; x->x_counter1 = 0.0; x->x_counter2 = 0.0; x->x_state1 = 0; x->x_state2 = 0; x->x_float_sig_in = 0.0; return (x); } void sin_phase_tilde_setup(void) { sin_phase_tilde_class = class_new(gensym("sin_phase~"), (t_newmethod)sin_phase_tilde_new, 0, sizeof(t_sin_phase_tilde), 0, 0); CLASS_MAINSIGNALIN(sin_phase_tilde_class, t_sin_phase_tilde, x_float_sig_in); class_addmethod(sin_phase_tilde_class, (t_method)sin_phase_tilde_dsp, gensym("dsp"), 0); } /* geradengleichung: y - y1 = ((y2 - y1) / (x2 - x1)) * (x - x1) y = ((y2 - y1) / (x2 - x1)) * (x - x1) + y1 = 0 x1 = 0 x2 = 1 0 = ((y2 - y1) / 1) * (x) + y1 -y1 = (y2 - y1) * x x = y1 / (y1 - y2) */ iemlib-1.20.1/iemlib1/src/VC9/0000755002537200234200000000000012243414227016015 5ustar zmoelnigiemusersiemlib-1.20.1/iemlib1/src/VC9/iemlib1.vcproj0000644002537200234200000000353412165064572020600 0ustar zmoelnigiemusers iemlib-1.20.1/iemlib1/src/VC9/iemlib1.sln0000644002537200234200000000156312165064572020071 0ustar zmoelnigiemusers Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iemlib1", "iemlib1.vcproj", "{5ECC5EEF-09A4-4DDD-B1C8-D4FA1D5B8BD5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {5ECC5EEF-09A4-4DDD-B1C8-D4FA1D5B8BD5}.Debug|Win32.ActiveCfg = Release|Win32 {5ECC5EEF-09A4-4DDD-B1C8-D4FA1D5B8BD5}.Debug|Win32.Build.0 = Release|Win32 {5ECC5EEF-09A4-4DDD-B1C8-D4FA1D5B8BD5}.Release|Win32.ActiveCfg = Release|Win32 {5ECC5EEF-09A4-4DDD-B1C8-D4FA1D5B8BD5}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal iemlib-1.20.1/iemlib1/src/VC9/makefile_win0000644002537200234200000000244212165064572020403 0ustar zmoelnigiemusersTARGET = iemlib1 all: ..\$(TARGET).dll VIS_CPP_PATH = "$(PROGRAMFILES)\Microsoft Visual Studio 9.0\VC" VIS_SDK_PATH = "$(PROGRAMFILES)\Microsoft SDKs\Windows\v6.0A" PD_INST_PATH = "$(PROGRAMFILES)\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 /DHAVE_G_CANVAS_H /Ox -D_CRT_SECURE_NO_WARNINGS PD_WIN_L_FLAGS = /nologo PD_WIN_LIB = /NODEFAULTLIB:libcmt /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel32 \ $(VIS_CPP_PATH)\lib\libcmt.lib \ $(VIS_CPP_PATH)\lib\oldnames.lib \ $(VIS_SDK_PATH)\lib\kernel32.lib \ $(PD_INST_PATH)\bin\pd.lib SRC = biquad_freq_resp.c \ db2v.c \ f2note.c \ filter~.c \ FIR~.c \ for++.c \ gate.c \ hml_shelf~.c \ iem_cot4~.c \ iem_delay~.c \ iem_pow4~.c \ iem_sqrt4~.c \ lp1_t~.c \ mov_avrg_kern~.c \ para_bp2~.c \ peakenv~.c \ peakenv_hold~.c \ prvu~.c \ pvu~.c \ rvu~.c \ sin_phase~.c \ soundfile_info.c \ split.c \ v2db.c \ vcf_filter~.c \ $(TARGET).c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\$(TARGET).dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \ /out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iemlib1/src/for++.c0000644002537200234200000001161411734353752016510 0ustar zmoelnigiemusers/* 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 - 2011 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------------------ for++ -------------------------------------- */ /* -- an optional timed counter (begin number, end number, metro time, increment) -- */ typedef struct _forpp { t_object x_obj; double x_beg; double x_end; double x_delay; double x_cur; double x_incr; t_outlet *x_out_counter; t_outlet *x_out_end; t_clock *x_clock_incr; t_clock *x_clock_end; } t_forpp; static t_class *forpp_class; static void forpp_tick_end(t_forpp *x) { outlet_bang(x->x_out_end); clock_unset(x->x_clock_end); } static void forpp_tick_incr(t_forpp *x) { int stop_it=1; outlet_float(x->x_out_counter, (t_float)x->x_cur); x->x_cur += x->x_incr; if(x->x_incr > 0) { if(x->x_cur <= x->x_end) stop_it = 0; } else { if(x->x_cur >= x->x_end) stop_it = 0; } if(stop_it) { clock_unset(x->x_clock_incr); clock_delay(x->x_clock_end, x->x_delay); } else clock_delay(x->x_clock_incr, x->x_delay); } static void forpp_bang(t_forpp *x) { if(x->x_delay > 0.0) { x->x_cur = x->x_beg; forpp_tick_incr(x); } else { double cur=x->x_beg, end=x->x_end, incr=x->x_incr; if(x->x_end < x->x_beg) { for(; cur >= end; cur += incr) outlet_float(x->x_out_counter, (t_float)cur); } else { for(; cur <= end; cur += incr) outlet_float(x->x_out_counter, (t_float)cur); } outlet_bang(x->x_out_end); } } static void forpp_start(t_forpp *x) { forpp_bang(x); } static void forpp_stop(t_forpp *x) { x->x_cur = x->x_end + x->x_incr; clock_unset(x->x_clock_incr); clock_unset(x->x_clock_end); } static void forpp_ft3(t_forpp *x, t_floatarg incr) { if(x->x_end < x->x_beg) { if(incr > 0.0) incr = -incr; } else { if(incr < 0.0) incr = -incr; } x->x_incr = (double)incr; } static void forpp_ft2(t_forpp *x, t_floatarg delay) { if(delay < 0.0) delay = 0.0; x->x_delay = (double)delay; } static void forpp_ft1(t_forpp *x, t_floatarg end) { x->x_end = (double)end; forpp_ft3(x, (t_floatarg)x->x_incr); } static void forpp_float(t_forpp *x, t_floatarg beg) { x->x_beg = (double)beg; forpp_ft3(x, (t_floatarg)x->x_incr); } static void forpp_list(t_forpp *x, t_symbol *s, int argc, t_atom *argv) { if((argc >= 4) && IS_A_FLOAT(argv, 3)) forpp_ft3(x, atom_getfloatarg(3, argc, argv)); if((argc >= 3) && IS_A_FLOAT(argv, 2)) forpp_ft2(x, atom_getfloatarg(2, argc, argv)); if((argc >= 2) && IS_A_FLOAT(argv, 1)) forpp_ft1(x, atom_getfloatarg(1, argc, argv)); if((argc >= 1) && IS_A_FLOAT(argv, 0)) forpp_float(x, atom_getfloatarg(0, argc, argv)); } static void *forpp_new(t_symbol *s, int argc, t_atom *argv) { t_forpp *x = (t_forpp *)pd_new(forpp_class); t_float fbeg=0.0, fend=0.0, fdelay=0.0, fincr=1.0; // default if((argc >= 1) && IS_A_FLOAT(argv, 0)) fbeg = (t_float)atom_getfloatarg(0, argc, argv); if((argc >= 2) && IS_A_FLOAT(argv, 1)) fend = (t_float)atom_getfloatarg(1, argc, argv); if((argc >= 3) && IS_A_FLOAT(argv, 2)) fdelay = (t_float)atom_getfloatarg(2, argc, argv); if((argc >= 4) && IS_A_FLOAT(argv, 3)) fincr = (t_float)atom_getfloatarg(3, argc, argv); 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")); x->x_out_counter = outlet_new(&x->x_obj, &s_float); x->x_out_end = outlet_new(&x->x_obj, &s_bang); x->x_clock_incr = clock_new(x, (t_method)forpp_tick_incr); x->x_clock_end = clock_new(x, (t_method)forpp_tick_end); x->x_beg = (double)fbeg; x->x_end = (double)fend; forpp_ft3(x, (t_floatarg)fincr); forpp_ft2(x, (t_floatarg)fdelay); x->x_cur = x->x_beg; return(x); } static void forpp_ff(t_forpp *x) { clock_free(x->x_clock_incr); clock_free(x->x_clock_end); } void forpp_setup(void) { forpp_class = class_new(gensym("for++"), (t_newmethod)forpp_new, (t_method)forpp_ff, sizeof(t_forpp), 0, A_GIMME, 0); class_addcreator((t_newmethod)forpp_new, gensym("for_pp"), A_GIMME, 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_addmethod(forpp_class, (t_method)forpp_ft3, gensym("ft3"), A_FLOAT, 0); } void setup_for0x2b0x2b(void) { forpp_setup(); } iemlib-1.20.1/iemlib1/src/makefile_win0000644002537200234200000000244212165064572020002 0ustar zmoelnigiemusersTARGET = iemlib1 all: ..\$(TARGET).dll VIS_CPP_PATH = "$(PROGRAMFILES)\Microsoft Visual Studio 9.0\VC" VIS_SDK_PATH = "$(PROGRAMFILES)\Microsoft SDKs\Windows\v6.0A" PD_INST_PATH = "$(PROGRAMFILES)\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 /DHAVE_G_CANVAS_H /Ox -D_CRT_SECURE_NO_WARNINGS PD_WIN_L_FLAGS = /nologo PD_WIN_LIB = /NODEFAULTLIB:libcmt /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel32 \ $(VIS_CPP_PATH)\lib\libcmt.lib \ $(VIS_CPP_PATH)\lib\oldnames.lib \ $(VIS_SDK_PATH)\lib\kernel32.lib \ $(PD_INST_PATH)\bin\pd.lib SRC = biquad_freq_resp.c \ db2v.c \ f2note.c \ filter~.c \ FIR~.c \ for++.c \ gate.c \ hml_shelf~.c \ iem_cot4~.c \ iem_delay~.c \ iem_pow4~.c \ iem_sqrt4~.c \ lp1_t~.c \ mov_avrg_kern~.c \ para_bp2~.c \ peakenv~.c \ peakenv_hold~.c \ prvu~.c \ pvu~.c \ rvu~.c \ sin_phase~.c \ soundfile_info.c \ split.c \ v2db.c \ vcf_filter~.c \ $(TARGET).c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\$(TARGET).dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \ /out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iemlib1/src/gate.c0000644002537200234200000000353110536414324016503 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* --------- gate ---------------------- */ /* ----------- like spigot ------------ */ typedef struct _gate { t_object x_obj; t_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.0f)?0.0f:1.0f; 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")); } iemlib-1.20.1/iemlib1/src/sparse_FIR~.c0000644002537200234200000002253412022143506017753 0ustar zmoelnigiemusers/* 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 - 2010 */ #include "m_pd.h" #include "iemlib.h" /* ---------- sparse_FIR~ - sparse_FIR-filter with coef-matrix-message ----------- */ /* the list or matrix message should have an index and its value, index , value, aso.... */ typedef struct _sparse_FIR_tilde { t_object x_obj; t_sample *x_coef_beg; int *x_index_beg; int x_n_coef_resp_order; int x_n_coef; int x_n_coef_malloc; t_sample *x_history_beg; int x_n_order; int x_n_order_malloc; int x_rw_index; t_float x_float_sig_in; } t_sparse_FIR_tilde; static t_class *sparse_FIR_tilde_class; static t_int *sparse_FIR_tilde_perform(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_sparse_FIR_tilde *x = (t_sparse_FIR_tilde *)(w[3]); int n = (t_int)(w[4]); int rw_index = x->x_rw_index; int i, j, ix; int order = x->x_n_order; int n_coef = x->x_n_coef_resp_order; int n_coef8; t_sample sum=0.0; t_sample *coef = x->x_coef_beg; int *index = x->x_index_beg; t_sample *write_hist1=x->x_history_beg; t_sample *write_hist2; t_sample *read_hist; t_sample *coef_vec; int *index_vec; t_sample *hist_vec; if((order < 1) || (n_coef < 1)) goto sparse_FIR_tilde_perf_zero; n_coef8 = n_coef / 8; write_hist1 = x->x_history_beg; write_hist2 = write_hist1 + order; read_hist = write_hist2; for(i=0; i= order) rw_index -= order; } x->x_rw_index = rw_index; return(w+5); sparse_FIR_tilde_perf_zero: while(n--) *out++ = 0.0; return(w+5); } static void sparse_FIR_tilde_sort_within(t_sparse_FIR_tilde *x) { int cur_order = x->x_n_order; int n_coef = x->x_n_coef; int index, i; int n_coef_resp_order = 0; int *index_pointer_within = x->x_index_beg; t_float *coef_pointer_within = x->x_coef_beg; int *index_pointer = x->x_index_beg + x->x_n_coef_malloc; t_float *coef_pointer = x->x_coef_beg + x->x_n_coef_malloc; t_float coef; for(i=0; i= 0) && (index < cur_order)) { index_pointer_within[i] = -index; /* negate index for FIR direction */ coef_pointer_within[i] = coef; n_coef_resp_order++; } } x->x_n_coef_resp_order = n_coef_resp_order; } static void sparse_FIR_tilde_list(t_sparse_FIR_tilde *x, t_symbol *s, int argc, t_atom *argv) { int max_order = x->x_n_order_malloc; int n_pair_arg = argc/2, index, i; int n_coef = 0; int *index_pointer; t_float *coef_pointer; t_float coef; if(n_pair_arg > 0) { if(n_pair_arg > x->x_n_coef_malloc) /* resize */ { x->x_index_beg = (int *)resizebytes(x->x_index_beg, 2*x->x_n_coef_malloc*sizeof(int), 2*n_pair_arg*sizeof(int)); x->x_coef_beg = (t_float *)resizebytes(x->x_coef_beg, 2*x->x_n_coef_malloc*sizeof(t_float), 2*n_pair_arg*sizeof(t_float)); x->x_n_coef_malloc = n_pair_arg; } index_pointer = x->x_index_beg + x->x_n_coef_malloc; coef_pointer = x->x_coef_beg + x->x_n_coef_malloc; for(i=0; i= 0) && (index < max_order)) { *index_pointer++ = index; *coef_pointer++ = coef; n_coef++; } } x->x_n_coef = n_coef; sparse_FIR_tilde_sort_within(x); } } static void sparse_FIR_tilde_matrix(t_sparse_FIR_tilde *x, t_symbol *s, int argc, t_atom *argv) { int row, col; if(argc < 2) { post("sparse_FIR~ : corrupt matrix passed"); return; } row = (int)atom_getfloat(argv++); col = (int)atom_getfloat(argv++); if((row < 1)||(col < 1)) { post("sparse_FIR~ : corrupt matrix passed"); return; } if((row*col) < (argc - 2)) { post("sparse_FIR~ WARNING: row column product less than message content!"); sparse_FIR_tilde_list(x, &s_list, row*col, argv); } else if((row*col) > (argc-2)) { post("sparse_FIR~ WARNING: row column product greater than message content!"); sparse_FIR_tilde_list(x, &s_list, argc-2, argv); } else sparse_FIR_tilde_list(x, &s_list, argc-2, argv); } static void sparse_FIR_tilde_order(t_sparse_FIR_tilde *x, t_floatarg fn) { int n_order = (int)fn; if(n_order > 0) { if(n_order > x->x_n_order_malloc) /* resize */ { x->x_history_beg = (t_float *)resizebytes(x->x_history_beg, 2*x->x_n_order_malloc*sizeof(t_float), 2*n_order*sizeof(t_float)); x->x_n_order_malloc = n_order; } x->x_n_order = n_order; x->x_rw_index = 0; sparse_FIR_tilde_sort_within(x); } } static void sparse_FIR_tilde_dsp(t_sparse_FIR_tilde *x, t_signal **sp) { dsp_add(sparse_FIR_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); } static void *sparse_FIR_tilde_new(t_floatarg fn) { t_sparse_FIR_tilde *x = (t_sparse_FIR_tilde *)pd_new(sparse_FIR_tilde_class); int n_order=(int)fn; int i; outlet_new(&x->x_obj, &s_signal); x->x_n_coef = 1; x->x_n_coef_resp_order = 1; x->x_n_coef_malloc = 1; x->x_index_beg = (int *)getbytes(2*x->x_n_coef_malloc*sizeof(int)); x->x_coef_beg = (t_float *)getbytes(2*x->x_n_coef_malloc*sizeof(t_float)); x->x_index_beg[0] = 0; x->x_index_beg[1] = 0; x->x_coef_beg[0] = 0.0f; x->x_coef_beg[1] = 0.0f; if(n_order < 1) n_order = 1; x->x_n_order = n_order; x->x_n_order_malloc = n_order; x->x_history_beg = (t_float *)getbytes((2*x->x_n_order_malloc)*sizeof(t_float)); x->x_rw_index = 0; n_order = 2*x->x_n_order_malloc; for(i=0; ix_history_beg[i] = 0.0f; x->x_float_sig_in = 0.0f; post("NEW: n_coef_resp_order = %d, n_coef = %d, n_coef_malloc = %d, n_order = %d, n_order_malloc = %d", x->x_n_coef_resp_order, x->x_n_coef, x->x_n_coef_malloc, x->x_n_order, x->x_n_order_malloc); return(x); } static void sparse_FIR_tilde_free(t_sparse_FIR_tilde *x) { freebytes(x->x_history_beg, (2*x->x_n_order_malloc)*sizeof(t_float)); /* twice, because of my simple circle-buffer */ freebytes(x->x_index_beg, 2*x->x_n_coef_malloc*sizeof(int)); /* twice, because of buffering both, all coefficients and only the relevant for current order */ freebytes(x->x_coef_beg, 2*x->x_n_coef_malloc*sizeof(t_float)); /* twice, because of buffering both, all coefficients and only the relevant for current order */ } /*static void sparse_FIR_tilde_dump(t_sparse_FIR_tilde *x) { t_float *hist=x->x_history_beg; int *ix=x->x_index_beg; int n=x->x_n_order; post("n_coef_resp_order = %d, n_coef = %d, n_coef_malloc = %d, n_order = %d, n_order_malloc = %d", x->x_n_coef_resp_order, x->x_n_coef, x->x_n_coef_malloc, x->x_n_order, x->x_n_order_malloc); post("HIST:"); while(n > 8) { post("hist = %g, %g, %g, %g, %g, %g, %g, %g", hist[n-1], hist[n-2], hist[n-3], hist[n-4], hist[n-5], hist[n-6], hist[n-7], hist[n-8]); n -= 8; hist -= 8; } while(n > 0) { post("hist = %g", hist[n-1]); n--; hist--; } post("COEF:"); hist = x->x_coef_beg; n = x->x_n_coef_resp_order; while(n > 8) { post("coef = %d@%g, %d@%g, %d@%g, %d@%g, %d@%g, %d@%g, %d@%g, %d@%g", ix[n-1],hist[n-1], ix[n-2],hist[n-2], ix[n-3],hist[n-3], ix[n-4],hist[n-4], ix[n-5],hist[n-5], ix[n-6],hist[n-6], ix[n-7],hist[n-7], ix[n-8],hist[n-8]); n -= 8; hist -= 8; } while(n > 0) { post("coef = %d@%g", ix[n-1],hist[n-1]); n--; hist--; } post("***********************"); }*/ void sparse_FIR_tilde_setup(void) { sparse_FIR_tilde_class = class_new(gensym("sparse_FIR~"), (t_newmethod)sparse_FIR_tilde_new, (t_method)sparse_FIR_tilde_free, sizeof(t_sparse_FIR_tilde), 0, A_DEFFLOAT, 0); CLASS_MAINSIGNALIN(sparse_FIR_tilde_class, t_sparse_FIR_tilde, x_float_sig_in); class_addmethod(sparse_FIR_tilde_class, (t_method)sparse_FIR_tilde_dsp, gensym("dsp"), 0); class_addlist(sparse_FIR_tilde_class, (t_method)sparse_FIR_tilde_list); class_addmethod(sparse_FIR_tilde_class, (t_method)sparse_FIR_tilde_matrix, gensym("matrix"), A_GIMME, 0); class_addmethod(sparse_FIR_tilde_class, (t_method)sparse_FIR_tilde_order, gensym("order"), A_FLOAT, 0); class_addmethod(sparse_FIR_tilde_class, (t_method)sparse_FIR_tilde_order, gensym("size"), A_FLOAT, 0); //class_addmethod(sparse_FIR_tilde_class, (t_method)sparse_FIR_tilde_dump, gensym("dump"), 0); } iemlib-1.20.1/iemlib1/src/VC7/0000755002537200234200000000000012243414227016013 5ustar zmoelnigiemusersiemlib-1.20.1/iemlib1/src/VC7/iemlib1.vcproj0000644002537200234200000000242111602665100020555 0ustar zmoelnigiemusers iemlib-1.20.1/iemlib1/src/VC7/makefile_vc7proj0000644002537200234200000000247511602665100021171 0ustar zmoelnigiemusersTARGET = iemlib1 all: ..\$(TARGET).dll VIS_CPP_PATH = "C:\Programme\Microsoft Visual Studio .NET 2003\Vc7" VIS_SDK_PATH = "C:\Programme\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK" PD_INST_PATH = "C:\Programme\pd-0.42-5" 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 -D_CRT_SECURE_NO_WARNINGS PD_WIN_L_FLAGS = /nologo PD_WIN_LIB = /NODEFAULTLIB:libcmt /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel32 \ $(VIS_CPP_PATH)\lib\libcmt.lib \ $(VIS_CPP_PATH)\lib\oldnames.lib \ $(VIS_SDK_PATH)\lib\kernel32.lib \ $(PD_INST_PATH)\bin\pd.lib SRC = biquad_freq_resp.c \ db2v.c \ f2note.c \ filter~.c \ FIR~.c \ for++.c \ gate.c \ hml_shelf~.c \ iem_cot4~.c \ iem_delay~.c \ iem_pow4~.c \ iem_sqrt4~.c \ lp1_t~.c \ mov_avrg_kern~.c \ para_bp2~.c \ peakenv~.c \ peakenv_hold~.c \ prvu~.c \ pvu~.c \ rvu~.c \ sin_phase~.c \ soundfile_info.c \ sparse_FIR~.c \ split.c \ v2db.c \ vcf_filter~.c \ $(TARGET).c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\$(TARGET).dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \ /out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iemlib1/src/biquad_freq_resp.c0000644002537200234200000000542412022143506021072 0ustar zmoelnigiemusers/* 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 - 2011 */ #include "m_pd.h" #include "iemlib.h" #include /* ------------------------ biquad_freq_resp ------------------- */ /* -- calculates the frequency responce of a biquad structure -- */ typedef struct _biquad_freq_resp { t_object x_obj; t_float a0; t_float a1; t_float a2; t_float b1; t_float b2; t_outlet *x_out_re; t_outlet *x_out_im; t_outlet *x_out_abs; t_outlet *x_out_arg; } t_biquad_freq_resp; static t_class *biquad_freq_resp_class; static void biquad_freq_resp_float(t_biquad_freq_resp *x, t_floatarg freq_phase) { t_float re1, im1, re2, im2, re, im; t_float c, s, ra; t_float pi = 4.0 * atan(1.0); if(freq_phase < 0.0) freq_phase = 0.0; else if(freq_phase > 180.0) freq_phase = 180.0; freq_phase *= pi; freq_phase /= 180.0; c = cos(freq_phase); s = sin(freq_phase); re1 = x->a0 + x->a1*c + x->a2*(c*c - s*s); im1 = x->a1*s + x->a2*2.0*(s*c); re2 = 1.0 - x->b1*c - x->b2*(c*c - s*s); im2 = -x->b1*s - x->b2*2.0*(s*c); ra = 1.0 / (re2*re2 + im2*im2); im = (re1*im2 - re2*im1) * ra; /* because z^-1 = e^-jwt, negative sign */ re = (re1*re2 + im1*im2) * ra; outlet_float(x->x_out_arg, 180.0*atan2(im, re)/pi); outlet_float(x->x_out_abs, sqrt(re*re + im*im)); outlet_float(x->x_out_im, im); outlet_float(x->x_out_re, re); } /* 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->x_out_abs = outlet_new(&x->x_obj, &s_float); x->x_out_arg = outlet_new(&x->x_obj, &s_float); x->b1 = 0.0; x->b2 = 0.0; x->a0 = 0.0; x->a1 = 0.0; x->a2 = 0.0; 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); } iemlib-1.20.1/iemlib1/src/makefile_darwin0000644002537200234200000000217611524474766020505 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .pd_darwin PD_INSTALL_PATH = "/Applications/Pd.app/Contents/Resources" INCLUDE = -I. -I$(PD_INSTALL_PATH)/src LIB = -ldl -lm -lpthread CFLAGS = -DPD -DUNIX -g -Wall -W -Werror -Wno-unused \ -Wno-parentheses -Wno-switch -O2 -fno-strict-aliasing \ $(INCLUDE) $(UCFLAGS) $(AFLAGS) \ MACOSXLINKFLAGS = -bundle -bundle_loader $(PD_INSTALL_PATH)/bin/pd SYSTEM = $(shell uname -m) # the sources SRC = biquad_freq_resp.c \ db2v.c \ f2note.c \ filter~.c \ FIR~.c \ for++.c \ gate.c \ hml_shelf~.c \ iem_cot4~.c \ iem_delay~.c \ iem_pow4~.c \ iem_sqrt4~.c \ lp1_t~.c \ mov_avrg_kern~.c \ para_bp2~.c \ peakenv~.c \ peakenv_hold~.c \ prvu~.c \ pvu~.c \ rvu~.c \ sin_phase~.c \ soundfile_info.c \ split.c \ v2db.c \ vcf_filter~.c \ iemlib1.c TARGET = iemlib1.pd_darwin OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm ../$(TARGET) rm *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(MACOSXLINKFLAGS) -o $(TARGET) *.o $(LIB) strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c touch $*.c $(CC) $(CFLAGS) -DPD $(INCLUDE) -c -o $*.o $*.c iemlib-1.20.1/iemlib1/src/filter~.c0000644002537200234200000013157611560742130017256 0ustar zmoelnigiemusers/* 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 - 2011 */ #include "m_pd.h" #include "iemlib.h" #include /* ---------- filter~ - slow dynamic filter-kernel 1. and 2. order ----------- */ /* -------------- now with single and double precision option ---------------- */ /* ------- sp ..... single precision, ---- dp ..... double precision --------- */ typedef struct _filter_tilde_sp_para t_filter_tilde_sp_para; typedef void (*filt_calc_sp_fun_ptr)(t_filter_tilde_sp_para *); struct _filter_tilde_sp_para { t_float wn1;// old wn of biquad recursion t_float wn2;// two times old wn of biquad recursion t_float a0;// wn factor of numerator term of biquad recursion t_float a1;// wn1 factor of numerator term of biquad recursion t_float a2;// wn2 factor of numerator term of biquad recursion t_float b1;// wn1 factor of denominator term of biquad recursion t_float b2;// wn2 factor of denominator term of biquad recursion t_float pi_over_sr;// pi/samplerate t_float cur_f;// current frequency t_float cur_l;// current bilinear transformed frequency t_float cur_a;// current damping t_float cur_b;// current freqency shifting factor t_float delta_f;// frequency ratio from previous to current frequency t_float delta_a;// damping ratio from previous to current damping t_float delta_b;// freqency shift ratio from previous to current freqency shift t_float end_f;// destination frequency t_float end_a;// destination damping t_float end_b;// destination freqency shift t_float ticks_per_interpol_time;// dsp ticks per interpolation time intervall t_float rcp_ticks;// reciprocal number of dsp ticks within intervall t_float interpol_time;// interpolation time int ticks;// number of dsp ticks within intervall int counter_f;// number of dsp ticks to compute new frequency int counter_a;// number of dsp ticks to compute new damping int counter_b;// number of dsp ticks to compute new frequency shift int inlet3_is_Q;// if flag is HIGH, the third inlet (Q) has to be inverted to damping int filter_function_is_highpass;// flag is HIGH if filter has highpass characteristic int filter_function_is_first_order;// flag is HIGH if filter is first order int event_mask;// a three bit mask: Bit 0 is HIGH during frequency ramp, Bit 1 is HIGH during damping ramp, Bit 2 is HIGH during frequency shift ramp filt_calc_sp_fun_ptr calc; }; typedef struct _filter_tilde_dp_para t_filter_tilde_dp_para; typedef void (*filt_calc_dp_fun_ptr)(t_filter_tilde_dp_para*); struct _filter_tilde_dp_para { double wn1;// old wn of biquad recursion double wn2;// two times old wn of biquad recursion double a0;// wn factor of numerator term of biquad recursion double a1;// wn1 factor of numerator term of biquad recursion double a2;// wn2 factor of numerator term of biquad recursion double b1;// wn1 factor of denominator term of biquad recursion double b2;// wn2 factor of denominator term of biquad recursion double pi_over_sr;// pi/samplerate double cur_f;// current frequency double cur_l;// current bilinear transformed frequency double cur_a;// current damping double cur_b;// current freqency shifting factor double delta_f;// frequency ratio from previous to current frequency double delta_a;// damping ratio from previous to current damping double delta_b;// freqency shift ratio from previous to current freqency shift double end_f;// destination frequency double end_a;// destination damping double end_b;// destination freqency shift double ticks_per_interpol_time;// dsp ticks per interpolation time intervall double rcp_ticks;// reciprocal number of dsp ticks within intervall double interpol_time;// interpolation time int ticks;// number of dsp ticks within intervall int counter_f;// number of dsp ticks to compute new frequency int counter_a;// number of dsp ticks to compute new damping int counter_b;// number of dsp ticks to compute new frequency shift int inlet3_is_Q;// if flag is HIGH, the third inlet (Q) has to be inverted to damping int filter_function_is_highpass;// flag is HIGH if filter has highpass characteristic int filter_function_is_first_order;// flag is HIGH if filter is first order int event_mask;// a three bit mask: Bit 0 is HIGH during frequency ramp, Bit 1 is HIGH during damping ramp, Bit 2 is HIGH during frequency shift ramp filt_calc_dp_fun_ptr calc; }; typedef union _filt_para { t_filter_tilde_sp_para sp; t_filter_tilde_dp_para dp; } t_filt_para; typedef struct _filter_tilde { t_object x_obj; t_filt_para x_para; int x_precision_dp1_sp0; t_outlet *x_debug_outlet; t_atom x_at[5]; t_float x_float_sig_in; } t_filter_tilde; static t_class *filter_tilde_class; static void filter_tilde_sp_dummy(t_filter_tilde_sp_para *x) { } static void filter_tilde_dp_dummy(t_filter_tilde_dp_para *x) { } static void filter_tilde_sp_lp1(t_filter_tilde_sp_para *x) { t_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 filter_tilde_sp_lp2(t_filter_tilde_sp_para *x) { t_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 filter_tilde_sp_hp1(t_filter_tilde_sp_para *x) { t_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 filter_tilde_sp_hp2(t_filter_tilde_sp_para *x) { t_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 filter_tilde_sp_rp2(t_filter_tilde_sp_para *x) { t_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 filter_tilde_sp_bp2(t_filter_tilde_sp_para *x) { t_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 filter_tilde_sp_bs2(t_filter_tilde_sp_para *x) { t_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 filter_tilde_sp_rpw2(t_filter_tilde_sp_para *x) { t_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 filter_tilde_sp_bpw2(t_filter_tilde_sp_para *x) { t_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 filter_tilde_sp_bsw2(t_filter_tilde_sp_para *x) { t_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 filter_tilde_sp_ap1(t_filter_tilde_sp_para *x) { t_float al; al = x->cur_a * x->cur_l; x->a0 = (1.0f - al)/(1.0f + al); x->b1 = -x->a0; } static void filter_tilde_sp_ap2(t_filter_tilde_sp_para *x) { t_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 filter_tilde_dp_lp1(t_filter_tilde_dp_para *x) { double al; al = x->cur_a * x->cur_l; x->a0 = 1.0/(1.0 + al); x->a1 = x->a0; x->b1 = (al - 1.0)*x->a0; } static void filter_tilde_dp_lp2(t_filter_tilde_dp_para *x) { double l, al, bl2, rcp; l = x->cur_l; al = l*x->cur_a; bl2 = l*l*x->cur_b + 1.0; rcp = 1.0/(al + bl2); x->a0 = rcp; x->a1 = 2.0*rcp; x->a2 = x->a0; x->b1 = rcp*2.0*(bl2 - 2.0); x->b2 = rcp*(al - bl2); } static void filter_tilde_dp_hp1(t_filter_tilde_dp_para *x) { double al, rcp; al = x->cur_a * x->cur_l; rcp = 1.0/(1.0 + al); x->a0 = rcp*al; x->a1 = -x->a0; x->b1 = rcp*(al - 1.0); } static void filter_tilde_dp_hp2(t_filter_tilde_dp_para *x) { double l, al, bl2, rcp; l = x->cur_l; bl2 = l*l*x->cur_b + 1.0; al = l*x->cur_a; rcp = 1.0/(al + bl2); x->a0 = rcp*(bl2 - 1.0); x->a1 = -2.0*x->a0; x->a2 = x->a0; x->b1 = rcp*2.0*(bl2 - 2.0); x->b2 = rcp*(al - bl2); } static void filter_tilde_dp_rp2(t_filter_tilde_dp_para *x) { double l, al, l2, rcp; l = x->cur_l; l2 = l*l + 1.0; al = l*x->cur_a; rcp = 1.0/(al + l2); x->a0 = rcp*l; x->a2 = -x->a0; x->b1 = rcp*2.0*(l2 - 2.0); x->b2 = rcp*(al - l2); } static void filter_tilde_dp_bp2(t_filter_tilde_dp_para *x) { double l, al, l2, rcp; l = x->cur_l; l2 = l*l + 1.0; al = l*x->cur_a; rcp = 1.0/(al + l2); x->a0 = rcp*al; x->a2 = -x->a0; x->b1 = rcp*2.0*(l2 - 2.0); x->b2 = rcp*(al - l2); } static void filter_tilde_dp_bs2(t_filter_tilde_dp_para *x) { double l, al, l2, rcp; l = x->cur_l; l2 = l*l + 1.0; al = l*x->cur_a; rcp = 1.0/(al + l2); x->a0 = rcp*l2; x->a1 = rcp*2.0*(2.0 - l2); x->a2 = x->a0; x->b1 = -x->a1; x->b2 = rcp*(al - l2); } static void filter_tilde_dp_rpw2(t_filter_tilde_dp_para *x) { double l, al, l2, rcp; l = x->cur_l; l2 = l*l + 1.0; al = l*x->cur_a/x->cur_f; rcp = 1.0/(al + l2); x->a0 = rcp*l; x->a2 = -x->a0; x->b1 = rcp*2.0*(l2 - 2.0); x->b2 = rcp*(al - l2); } static void filter_tilde_dp_bpw2(t_filter_tilde_dp_para *x) { double l, al, l2, rcp; l = x->cur_l; l2 = l*l + 1.0; al = l*x->cur_a/x->cur_f; rcp = 1.0/(al + l2); x->a0 = rcp*al; x->a2 = -x->a0; x->b1 = rcp*2.0*(l2 - 2.0); x->b2 = rcp*(al - l2); } static void filter_tilde_dp_bsw2(t_filter_tilde_dp_para *x) { double l, al, l2, rcp; l = x->cur_l; l2 = l*l + 1.0; al = l*x->cur_a/x->cur_f; rcp = 1.0/(al + l2); x->a0 = rcp*l2; x->a1 = rcp*2.0*(2.0 - l2); x->a2 = x->a0; x->b1 = -x->a1; x->b2 = rcp*(al - l2); } static void filter_tilde_dp_ap1(t_filter_tilde_dp_para *x) { double al; al = x->cur_a * x->cur_l; x->a0 = (1.0 - al)/(1.0 + al); x->b1 = -x->a0; } static void filter_tilde_dp_ap2(t_filter_tilde_dp_para *x) { double l, al, bl2, rcp; l = x->cur_l; bl2 = l*l*x->cur_b + 1.0; al = l*x->cur_a; rcp = 1.0/(al + bl2); x->a1 = rcp*2.0*(2.0 - bl2); x->a0 = rcp*(bl2 - al); x->b1 = -x->a1; x->b2 = -x->a0; } static void filter_tilde_dsp_sp_tick(t_filter_tilde_sp_para *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->pi_over_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->filter_function_is_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; } } //post("float a0=%f, a1=%f, a2=%f, b1=%f, b2=%f", x->a0, x->a1, x->a2, x->b1, x->b2); } } static void filter_tilde_dsp_dp_tick(t_filter_tilde_dp_para *x) { if(x->event_mask) { if(x->counter_f) { double 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->pi_over_sr; if(l < 1.0e-20) x->cur_l = 1.0e20; else if(l > 1.57079632) x->cur_l = 0.0; 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->filter_function_is_first_order) { if(x->b1 <= -0.9999998) x->b1 = -0.9999998; else if(x->b1 >= 0.9999998) x->b1 = 0.9999998; } else { double discriminant = x->b1 * x->b1 + 4.0 * x->b2; if(x->b1 <= -1.9999996) x->b1 = -1.9999996; else if(x->b1 >= 1.9999996) x->b1 = 1.9999996; if(x->b2 <= -0.9999998) x->b2 = -0.9999998; else if(x->b2 >= 0.9999998) x->b2 = 0.9999998; if(discriminant >= 0.0) { if(0.9999998 - x->b1 - x->b2 < 0.0) x->b2 = 0.9999998 - x->b1; if(0.9999998 + x->b1 - x->b2 < 0.0) x->b2 = 0.9999998 + x->b1; } } //post("double a0=%f, a1=%f, a2=%f, b1=%f, b2=%f", (t_float)x->a0, (t_float)x->a1, (t_float)x->a2, (t_float)x->b1, (t_float)x->b2); } } static t_int *filter_tilde_sp_perform_2o(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_filter_tilde *x = (t_filter_tilde *)(w[3]); int i, n = (t_int)(w[4]); t_float wn0, wn1=x->x_para.sp.wn1, wn2=x->x_para.sp.wn2; t_float a0=x->x_para.sp.a0, a1=x->x_para.sp.a1, a2=x->x_para.sp.a2; t_float b1=x->x_para.sp.b1, b2=x->x_para.sp.b2; filter_tilde_dsp_sp_tick(&x->x_para.sp); for(i=0; ix_para.sp.wn1 = wn1; x->x_para.sp.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 *filter_tilde_sp_perf8_2o(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_filter_tilde *x = (t_filter_tilde *)(w[3]); int i, n = (t_int)(w[4]); t_float wn[10]; t_float a0=x->x_para.sp.a0, a1=x->x_para.sp.a1, a2=x->x_para.sp.a2; t_float b1=x->x_para.sp.b1, b2=x->x_para.sp.b2; filter_tilde_dsp_sp_tick(&x->x_para.sp); wn[0] = x->x_para.sp.wn2; wn[1] = x->x_para.sp.wn1; for(i=0; ix_para.sp.wn1 = wn[1]; x->x_para.sp.wn2 = wn[0]; return(w+5); } static t_int *filter_tilde_sp_perform_1o(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_filter_tilde *x = (t_filter_tilde *)(w[3]); int i, n = (t_int)(w[4]); t_float wn0, wn1=x->x_para.sp.wn1; t_float a0=x->x_para.sp.a0, a1=x->x_para.sp.a1; t_float b1=x->x_para.sp.b1; filter_tilde_dsp_sp_tick(&x->x_para.sp); for(i=0; ix_para.sp.wn1 = wn1; return(w+5); } static t_int *filter_tilde_sp_perf8_1o(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_filter_tilde *x = (t_filter_tilde *)(w[3]); int i, n = (t_int)(w[4]); t_float wn[9]; t_float a0=x->x_para.sp.a0, a1=x->x_para.sp.a1; t_float b1=x->x_para.sp.b1; filter_tilde_dsp_sp_tick(&x->x_para.sp); wn[0] = x->x_para.sp.wn1; for(i=0; ix_para.sp.wn1 = wn[0]; return(w+5); } static t_int *filter_tilde_dp_perform_2o(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_filter_tilde *x = (t_filter_tilde *)(w[3]); int i, n = (t_int)(w[4]); double wn0, wn1=x->x_para.dp.wn1, wn2=x->x_para.dp.wn2; double a0=x->x_para.dp.a0, a1=x->x_para.dp.a1, a2=x->x_para.dp.a2; double b1=x->x_para.dp.b1, b2=x->x_para.dp.b2; filter_tilde_dsp_dp_tick(&x->x_para.dp); for(i=0; ix_para.dp.wn1 = wn1; x->x_para.dp.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 *filter_tilde_dp_perf8_2o(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_filter_tilde *x = (t_filter_tilde *)(w[3]); int i, n = (t_int)(w[4]); double wn[10]; double a0=x->x_para.dp.a0, a1=x->x_para.dp.a1, a2=x->x_para.dp.a2; double b1=x->x_para.dp.b1, b2=x->x_para.dp.b2; filter_tilde_dsp_dp_tick(&x->x_para.dp); wn[0] = x->x_para.dp.wn2; wn[1] = x->x_para.dp.wn1; for(i=0; ix_para.dp.wn1 = wn[1]; x->x_para.dp.wn2 = wn[0]; return(w+5); } static t_int *filter_tilde_dp_perform_1o(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_filter_tilde *x = (t_filter_tilde *)(w[3]); int i, n = (t_int)(w[4]); double wn0, wn1=x->x_para.dp.wn1; double a0=x->x_para.dp.a0, a1=x->x_para.dp.a1; double b1=x->x_para.dp.b1; filter_tilde_dsp_dp_tick(&x->x_para.dp); for(i=0; ix_para.dp.wn1 = wn1; return(w+5); } static t_int *filter_tilde_dp_perf8_1o(t_int *w) { t_sample *in = (t_sample *)(w[1]); t_sample *out = (t_sample *)(w[2]); t_filter_tilde *x = (t_filter_tilde *)(w[3]); int i, n = (t_int)(w[4]); double wn[9]; double a0=x->x_para.dp.a0, a1=x->x_para.dp.a1; double b1=x->x_para.dp.b1; filter_tilde_dsp_dp_tick(&x->x_para.dp); wn[0] = x->x_para.dp.wn1; for(i=0; ix_para.dp.wn1 = wn[0]; return(w+5); } static void filter_tilde_ft4(t_filter_tilde *x, t_floatarg t) { if(x->x_precision_dp1_sp0) { double dt = (double)t; int di = (int)((x->x_para.dp.ticks_per_interpol_time)*dt+0.49999); x->x_para.dp.interpol_time = dt; if(di <= 0) { x->x_para.dp.ticks = 1; x->x_para.dp.rcp_ticks = 1.0; } else { x->x_para.dp.ticks = di; x->x_para.dp.rcp_ticks = 1.0 / (double)di; } } else { t_float st = (t_float)t; int i = (int)((x->x_para.sp.ticks_per_interpol_time)*st+0.49999f); x->x_para.sp.interpol_time = st; if(i <= 0) { x->x_para.sp.ticks = 1; x->x_para.sp.rcp_ticks = 1.0f; } else { x->x_para.sp.ticks = i; x->x_para.sp.rcp_ticks = 1.0f / (t_float)i; } } } static void filter_tilde_ft3(t_filter_tilde *x, t_floatarg b) { if(x->x_precision_dp1_sp0) { double db = (double)b; if(db <= 0.0) db = 0.000001; if(x->x_para.dp.filter_function_is_highpass) db = 1.0 / db; if(db != x->x_para.dp.cur_b) { x->x_para.dp.end_b = db; x->x_para.dp.counter_b = x->x_para.dp.ticks; x->x_para.dp.delta_b = exp(log(db/x->x_para.dp.cur_b)*x->x_para.dp.rcp_ticks); x->x_para.dp.event_mask |= 4;/*set event_mask_bit 2 = 1*/ } } else { t_float sb = (t_float)b; if(sb <= 0.0f) sb = 0.000001f; if(x->x_para.sp.filter_function_is_highpass) sb = 1.0f / sb; if(sb != x->x_para.sp.cur_b) { x->x_para.sp.end_b = sb; x->x_para.sp.counter_b = x->x_para.sp.ticks; x->x_para.sp.delta_b = exp(log(sb/x->x_para.sp.cur_b)*x->x_para.sp.rcp_ticks); x->x_para.sp.event_mask |= 4;/*set event_mask_bit 2 = 1*/ } } } static void filter_tilde_ft2(t_filter_tilde *x, t_floatarg a) { if(x->x_precision_dp1_sp0) { double da = (double)a; if(da <= 0.0) da = 0.000001; if(x->x_para.dp.inlet3_is_Q) da = 1.0 / da; if(x->x_para.dp.filter_function_is_highpass) da /= x->x_para.dp.cur_b; if(da != x->x_para.dp.cur_a) { x->x_para.dp.end_a = da; x->x_para.dp.counter_a = x->x_para.dp.ticks; x->x_para.dp.delta_a = exp(log(da/x->x_para.dp.cur_a)*x->x_para.dp.rcp_ticks); x->x_para.dp.event_mask |= 2;/*set event_mask_bit 1 = 1*/ } } else { t_float sa = (t_float)a; if(sa <= 0.0f) sa = 0.000001f; if(x->x_para.sp.inlet3_is_Q) sa = 1.0f / sa; if(x->x_para.sp.filter_function_is_highpass) sa /= x->x_para.sp.cur_b; if(sa != x->x_para.sp.cur_a) { x->x_para.sp.end_a = sa; x->x_para.sp.counter_a = x->x_para.sp.ticks; x->x_para.sp.delta_a = exp(log(sa/x->x_para.sp.cur_a)*x->x_para.sp.rcp_ticks); x->x_para.sp.event_mask |= 2;/*set event_mask_bit 1 = 1*/ } } } static void filter_tilde_ft1(t_filter_tilde *x, t_floatarg f) { if(x->x_precision_dp1_sp0) { double df = (double)f; if(df <= 0.0) df = 0.000001; if(df != x->x_para.dp.cur_f) { x->x_para.dp.end_f = df; x->x_para.dp.counter_f = x->x_para.dp.ticks; x->x_para.dp.delta_f = exp(log(df/x->x_para.dp.cur_f)*x->x_para.dp.rcp_ticks); x->x_para.dp.event_mask |= 1;/*set event_mask_bit 0 = 1*/ } } else { t_float sf = (t_float)f; if(sf <= 0.0f) sf = 0.000001f; if(sf != x->x_para.sp.cur_f) { x->x_para.sp.end_f = sf; x->x_para.sp.counter_f = x->x_para.sp.ticks; x->x_para.sp.delta_f = exp(log(sf/x->x_para.sp.cur_f)*x->x_para.sp.rcp_ticks); x->x_para.sp.event_mask |= 1;/*set event_mask_bit 0 = 1*/ } } } static void filter_tilde_print(t_filter_tilde *x) { // post("fb1 = %g, fb2 = %g, ff1 = %g, ff2 = %g, ff3 = %g", x->b1, x->b2, x->a0, x->a1, x->a2); if(x->x_precision_dp1_sp0) { x->x_at[0].a_w.w_float = (t_float)x->x_para.dp.b1; x->x_at[1].a_w.w_float = (t_float)x->x_para.dp.b2; x->x_at[2].a_w.w_float = (t_float)x->x_para.dp.a0; x->x_at[3].a_w.w_float = (t_float)x->x_para.dp.a1; x->x_at[4].a_w.w_float = (t_float)x->x_para.dp.a2; } else { x->x_at[0].a_w.w_float = x->x_para.sp.b1; x->x_at[1].a_w.w_float = x->x_para.sp.b2; x->x_at[2].a_w.w_float = x->x_para.sp.a0; x->x_at[3].a_w.w_float = x->x_para.sp.a1; x->x_at[4].a_w.w_float = x->x_para.sp.a2; } outlet_list(x->x_debug_outlet, &s_list, 5, x->x_at); } static void filter_tilde_set(t_filter_tilde *x, t_symbol *s, int argc, t_atom *argv) { if((argc >= 1) && IS_A_FLOAT(argv, 0)) { if(x->x_precision_dp1_sp0) x->x_para.dp.wn1 = (double)atom_getfloatarg(0, argc, argv); else x->x_para.sp.wn1 = (t_float)atom_getfloatarg(0, argc, argv); } if((argc >= 2) && IS_A_FLOAT(argv, 1) && (x->x_para.dp.filter_function_is_first_order == 0)) { if(x->x_precision_dp1_sp0) x->x_para.dp.wn2 = (double)atom_getfloatarg(1, argc, argv); else x->x_para.sp.wn2 = (t_float)atom_getfloatarg(1, argc, argv); } } static void filter_tilde_dsp(t_filter_tilde *x, t_signal **sp) { int i, n=(int)sp[0]->s_n; if(x->x_precision_dp1_sp0) { double si, co, f; x->x_para.dp.pi_over_sr = 3.14159265358979323846 / (double)(sp[0]->s_sr); x->x_para.dp.ticks_per_interpol_time = 0.001 * (double)(sp[0]->s_sr) / (double)n; i = (int)((x->x_para.dp.ticks_per_interpol_time)*(x->x_para.dp.interpol_time)+0.49999); if(i <= 0) { x->x_para.dp.ticks = 1; x->x_para.dp.rcp_ticks = 1.0; } else { x->x_para.dp.ticks = i; x->x_para.dp.rcp_ticks = 1.0 / (double)i; } f = x->x_para.dp.cur_f * x->x_para.dp.pi_over_sr; if(f < 1.0e-20) x->x_para.dp.cur_l = 1.0e20; else if(f > 1.57079632) x->x_para.dp.cur_l = 0.0; else { si = sin(f); co = cos(f); x->x_para.dp.cur_l = co/si; } if(x->x_para.dp.filter_function_is_first_order) { if(n&7) dsp_add(filter_tilde_dp_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); else dsp_add(filter_tilde_dp_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); } else { if(n&7) dsp_add(filter_tilde_dp_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); else dsp_add(filter_tilde_dp_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); } } else { t_float si, co, f; x->x_para.sp.pi_over_sr = 3.14159265358979323846f / (t_float)(sp[0]->s_sr); x->x_para.sp.ticks_per_interpol_time = 0.001f * (t_float)(sp[0]->s_sr) / (t_float)n; i = (int)((x->x_para.sp.ticks_per_interpol_time)*(x->x_para.sp.interpol_time)+0.49999f); if(i <= 0) { x->x_para.sp.ticks = 1; x->x_para.sp.rcp_ticks = 1.0f; } else { x->x_para.sp.ticks = i; x->x_para.sp.rcp_ticks = 1.0f / (t_float)i; } f = x->x_para.sp.cur_f * x->x_para.sp.pi_over_sr; if(f < 1.0e-20f) x->x_para.sp.cur_l = 1.0e20f; else if(f > 1.57079632f) x->x_para.sp.cur_l = 0.0f; else { si = sin(f); co = cos(f); x->x_para.sp.cur_l = co/si; } if(x->x_para.sp.filter_function_is_first_order) { if(n&7) dsp_add(filter_tilde_sp_perform_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); else dsp_add(filter_tilde_sp_perf8_1o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); } else { if(n&7) dsp_add(filter_tilde_sp_perform_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); else dsp_add(filter_tilde_sp_perf8_2o, 4, sp[0]->s_vec, sp[1]->s_vec, x, n); } } } static void *filter_tilde_new(t_symbol *s, int argc, t_atom *argv) { t_filter_tilde *x = (t_filter_tilde *)pd_new(filter_tilde_class); int i; 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_float_sig_in = 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->x_para.dp.delta_f = 0.0; x->x_para.dp.delta_a = 0.0; x->x_para.dp.delta_b = 0.0; x->x_para.dp.interpol_time = 0.0; x->x_para.dp.wn1 = 0.0; x->x_para.dp.wn2 = 0.0; x->x_para.dp.a0 = 0.0; x->x_para.dp.a1 = 0.0; x->x_para.dp.a2 = 0.0; x->x_para.dp.b1 = 0.0; x->x_para.dp.b2 = 0.0; x->x_para.dp.pi_over_sr = 3.14159265358979323846 / 44100.0; x->x_para.dp.event_mask = 1; x->x_para.dp.counter_f = 1; x->x_para.dp.counter_a = 0; x->x_para.dp.counter_b = 0; x->x_para.dp.filter_function_is_first_order = 0; x->x_para.sp.delta_f = 0.0f; x->x_para.sp.delta_a = 0.0f; x->x_para.sp.delta_b = 0.0f; x->x_para.sp.interpol_time = 0.0f; x->x_para.sp.wn1 = 0.0f; x->x_para.sp.wn2 = 0.0f; x->x_para.sp.a0 = 0.0f; x->x_para.sp.a1 = 0.0f; x->x_para.sp.a2 = 0.0f; x->x_para.sp.b1 = 0.0f; x->x_para.sp.b2 = 0.0f; x->x_para.sp.pi_over_sr = 3.14159265358979323846f / 44100.0f; x->x_para.sp.event_mask = 1; x->x_para.sp.counter_f = 1; x->x_para.sp.counter_a = 0; x->x_para.sp.counter_b = 0; x->x_para.sp.filter_function_is_first_order = 0; if((argc >= 1) && IS_A_SYMBOL(argv,0)) filt_typ = atom_getsymbolarg(0, argc, argv); if(filt_typ->s_name[0] == 'd') x->x_precision_dp1_sp0 = 1; else x->x_precision_dp1_sp0 = 0; if(x->x_precision_dp1_sp0) { double si, co, f=0.0, a=0.0, b=0.0, interpol=0.0; if((argc >= 5) && IS_A_FLOAT(argv,4) && IS_A_FLOAT(argv,3) && IS_A_FLOAT(argv,2) && IS_A_FLOAT(argv,1)) { f = (double)atom_getfloatarg(1, argc, argv); a = (double)atom_getfloatarg(2, argc, argv); b = (double)atom_getfloatarg(3, argc, argv); interpol = (double)atom_getfloatarg(4, argc, argv); } x->x_para.dp.cur_f = f; f *= x->x_para.dp.pi_over_sr; if(f < 1.0e-20) x->x_para.dp.cur_l = 1.0e20; else if(f > 1.57079632) x->x_para.dp.cur_l = 0.0; else { si = sin(f); co = cos(f); x->x_para.dp.cur_l = co/si; } if(a <= 0.0) a = 0.000001; if(b <= 0.0) b = 0.000001; if(interpol <= 0.0) interpol = 0.0; x->x_para.dp.interpol_time = interpol; x->x_para.dp.ticks_per_interpol_time = 0.001 * 44100.0 / 64.0; i = (int)((x->x_para.dp.ticks_per_interpol_time)*(x->x_para.dp.interpol_time)+0.49999); if(i <= 0) { x->x_para.dp.ticks = 1; x->x_para.dp.rcp_ticks = 1.0; } else { x->x_para.dp.ticks = i; x->x_para.dp.rcp_ticks = 1.0 / (double)i; } x->x_para.dp.cur_b = b; x->x_para.dp.cur_a = 1.0/a; /*"a" is default Q*/ x->x_para.dp.inlet3_is_Q = 1; x->x_para.dp.filter_function_is_highpass = 0; x->x_para.dp.calc = filter_tilde_dp_dummy; if(filt_typ->s_name) { if(filt_typ == gensym("dap1")) { x->x_para.dp.calc = filter_tilde_dp_ap1; x->x_para.dp.a1 = 1.0; x->x_para.dp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("dap2")) { x->x_para.dp.calc = filter_tilde_dp_ap2; x->x_para.dp.a2 = 1.0; } else if(filt_typ == gensym("dap1c")) { x->x_para.dp.calc = filter_tilde_dp_ap1; x->x_para.dp.a1 = 1.0; x->x_para.dp.inlet3_is_Q = 0; x->x_para.dp.cur_a = a; /*"a" was damping*/ x->x_para.dp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("dap2c")) { x->x_para.dp.calc = filter_tilde_dp_ap2; x->x_para.dp.a2 = 1.0; x->x_para.dp.inlet3_is_Q = 0; x->x_para.dp.cur_a = a; /*"a" was damping*/ } else if(filt_typ == gensym("dbpq2")) { x->x_para.dp.calc = filter_tilde_dp_bp2; } else if(filt_typ == gensym("drbpq2")) { x->x_para.dp.calc = filter_tilde_dp_rp2; } else if(filt_typ == gensym("dbsq2")) { x->x_para.dp.calc = filter_tilde_dp_bs2; } else if(filt_typ == gensym("dbpw2")) { x->x_para.dp.calc = filter_tilde_dp_bpw2; x->x_para.dp.inlet3_is_Q = 0; x->x_para.dp.cur_a = a; /*"a" was bw*/ } else if(filt_typ == gensym("drbpw2")) { x->x_para.dp.calc = filter_tilde_dp_rpw2; x->x_para.dp.inlet3_is_Q = 0; x->x_para.dp.cur_a = a; /*"a" was bw*/ } else if(filt_typ == gensym("dbsw2")) { x->x_para.dp.calc = filter_tilde_dp_bsw2; x->x_para.dp.inlet3_is_Q = 0; x->x_para.dp.cur_a = a; /*"a" was bw*/ } else if(filt_typ == gensym("dhp1")) { x->x_para.dp.calc = filter_tilde_dp_hp1; x->x_para.dp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("dhp2")) { x->x_para.dp.calc = filter_tilde_dp_hp2; } else if(filt_typ == gensym("dlp1")) { x->x_para.dp.calc = filter_tilde_dp_lp1; x->x_para.dp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("dlp2")) { x->x_para.dp.calc = filter_tilde_dp_lp2; } else if(filt_typ == gensym("dhp1c")) { x->x_para.dp.calc = filter_tilde_dp_hp1; x->x_para.dp.cur_a = 1.0 / a; x->x_para.dp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("dhp2c")) { x->x_para.dp.calc = filter_tilde_dp_hp2; x->x_para.dp.inlet3_is_Q = 0; x->x_para.dp.cur_a = a / b; x->x_para.dp.cur_b = 1.0 / b; x->x_para.dp.filter_function_is_highpass = 1; } else if(filt_typ == gensym("dlp1c")) { x->x_para.dp.calc = filter_tilde_dp_lp1; x->x_para.dp.inlet3_is_Q = 0; x->x_para.dp.cur_a = a; /*"a" was damping*/ x->x_para.dp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("dlp2c")) { x->x_para.dp.calc = filter_tilde_dp_lp2; x->x_para.dp.inlet3_is_Q = 0; x->x_para.dp.cur_a = a; /*"a" was damping*/ } else { post("filter~-Error: 1. initial-arguments: kind: \ lp1, lp2, hp1, hp2, \ lp1c, lp2c, hp1c, hp2c, \ ap1, ap2, ap1c, ap2c, \ bpq2, rbpq2, bsq2, \ bpw2, rbpw2, bsw2, \ dlp1, dlp2, dhp1, dhp2, \ dlp1c, dlp2c, dhp1c, dhp2c, \ dap1, dap2, dap1c, dap2c, \ dbpq2, drbpq2, dbsq2, \ dbpw2, drbpw2, dbsw2 !"); } x->x_para.dp.end_f = x->x_para.dp.cur_f; x->x_para.dp.end_a = x->x_para.dp.cur_a; x->x_para.dp.end_b = x->x_para.dp.cur_b; } } else { t_float si, co, f=0.0f, a=0.0f, b=0.0f, interpol=0.0f; if((argc >= 5) && IS_A_FLOAT(argv,4) && IS_A_FLOAT(argv,3) && IS_A_FLOAT(argv,2) && IS_A_FLOAT(argv,1)) { f = (t_float)atom_getfloatarg(1, argc, argv); a = (t_float)atom_getfloatarg(2, argc, argv); b = (t_float)atom_getfloatarg(3, argc, argv); interpol = (t_float)atom_getfloatarg(4, argc, argv); } x->x_para.sp.cur_f = f; f *= x->x_para.sp.pi_over_sr; if(f < 1.0e-20f) x->x_para.sp.cur_l = 1.0e20f; else if(f > 1.57079632f) x->x_para.sp.cur_l = 0.0f; else { si = sin(f); co = cos(f); x->x_para.sp.cur_l = co/si; } if(a <= 0.0f) a = 0.000001f; if(b <= 0.0f) b = 0.000001f; if(interpol <= 0.0f) interpol = 0.0f; x->x_para.sp.interpol_time = interpol; x->x_para.sp.ticks_per_interpol_time = 0.001f * 44100.0f / 64.0f; i = (int)((x->x_para.sp.ticks_per_interpol_time)*(x->x_para.sp.interpol_time)+0.49999f); if(i <= 0) { x->x_para.sp.ticks = 1; x->x_para.sp.rcp_ticks = 1.0f; } else { x->x_para.sp.ticks = i; x->x_para.sp.rcp_ticks = 1.0f / (t_float)i; } x->x_para.sp.cur_b = b; x->x_para.sp.cur_a = 1.0f/a; /*"a" is default Q*/ x->x_para.sp.inlet3_is_Q = 1; x->x_para.sp.filter_function_is_highpass = 0; x->x_para.sp.calc = filter_tilde_sp_dummy; if(filt_typ->s_name) { if(filt_typ == gensym("ap1")) { x->x_para.sp.calc = filter_tilde_sp_ap1; x->x_para.sp.a1 = 1.0f; x->x_para.sp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("ap2")) { x->x_para.sp.calc = filter_tilde_sp_ap2; x->x_para.sp.a2 = 1.0f; } else if(filt_typ == gensym("ap1c")) { x->x_para.sp.calc = filter_tilde_sp_ap1; x->x_para.sp.a1 = 1.0f; x->x_para.sp.inlet3_is_Q = 0; x->x_para.sp.cur_a = a; /*"a" was damping*/ x->x_para.sp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("ap2c")) { x->x_para.sp.calc = filter_tilde_sp_ap2; x->x_para.sp.a2 = 1.0f; x->x_para.sp.inlet3_is_Q = 0; x->x_para.sp.cur_a = a; /*"a" was damping*/ } else if(filt_typ == gensym("bpq2")) { x->x_para.sp.calc = filter_tilde_sp_bp2; } else if(filt_typ == gensym("rbpq2")) { x->x_para.sp.calc = filter_tilde_sp_rp2; } else if(filt_typ == gensym("bsq2")) { x->x_para.sp.calc = filter_tilde_sp_bs2; } else if(filt_typ == gensym("bpw2")) { x->x_para.sp.calc = filter_tilde_sp_bpw2; x->x_para.sp.inlet3_is_Q = 0; x->x_para.sp.cur_a = a; /*"a" was bw*/ } else if(filt_typ == gensym("rbpw2")) { x->x_para.sp.calc = filter_tilde_sp_rpw2; x->x_para.sp.inlet3_is_Q = 0; x->x_para.sp.cur_a = a; /*"a" was bw*/ } else if(filt_typ == gensym("bsw2")) { x->x_para.sp.calc = filter_tilde_sp_bsw2; x->x_para.sp.inlet3_is_Q = 0; x->x_para.sp.cur_a = a; /*"a" was bw*/ } else if(filt_typ == gensym("hp1")) { x->x_para.sp.calc = filter_tilde_sp_hp1; x->x_para.sp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("hp2")) { x->x_para.sp.calc = filter_tilde_sp_hp2; } else if(filt_typ == gensym("lp1")) { x->x_para.sp.calc = filter_tilde_sp_lp1; x->x_para.sp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("lp2")) { x->x_para.sp.calc = filter_tilde_sp_lp2; } else if(filt_typ == gensym("hp1c")) { x->x_para.sp.calc = filter_tilde_sp_hp1; x->x_para.sp.cur_a = 1.0f / a; x->x_para.sp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("hp2c")) { x->x_para.sp.calc = filter_tilde_sp_hp2; x->x_para.sp.inlet3_is_Q = 0; x->x_para.sp.cur_a = a / b; x->x_para.sp.cur_b = 1.0f / b; x->x_para.sp.filter_function_is_highpass = 1; } else if(filt_typ == gensym("lp1c")) { x->x_para.sp.calc = filter_tilde_sp_lp1; x->x_para.sp.inlet3_is_Q = 0; x->x_para.sp.cur_a = a; /*"a" was damping*/ x->x_para.sp.filter_function_is_first_order = 1; } else if(filt_typ == gensym("lp2c")) { x->x_para.sp.calc = filter_tilde_sp_lp2; x->x_para.sp.inlet3_is_Q = 0; x->x_para.sp.cur_a = a; /*"a" was damping*/ } else { post("filter~-Error: 1. initial-arguments: kind: \ lp1, lp2, hp1, hp2, \ lp1c, lp2c, hp1c, hp2c, \ ap1, ap2, ap1c, ap2c, \ bpq2, rbpq2, bsq2, \ bpw2, rbpw2, bsw2, \ dlp1, dlp2, dhp1, dhp2, \ dlp1c, dlp2c, dhp1c, dhp2c, \ dap1, dap2, dap1c, dap2c, \ dbpq2, drbpq2, dbsq2, \ dbpw2, drbpw2, dbsw2 !"); } x->x_para.sp.end_f = x->x_para.sp.cur_f; x->x_para.sp.end_a = x->x_para.sp.cur_a; x->x_para.sp.end_b = x->x_para.sp.cur_b; } } return (x); } void filter_tilde_setup(void) { filter_tilde_class = class_new(gensym("filter~"), (t_newmethod)filter_tilde_new, 0, sizeof(t_filter_tilde), 0, A_GIMME, 0); CLASS_MAINSIGNALIN(filter_tilde_class, t_filter_tilde, x_float_sig_in); class_addmethod(filter_tilde_class, (t_method)filter_tilde_dsp, gensym("dsp"), 0); class_addmethod(filter_tilde_class, (t_method)filter_tilde_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(filter_tilde_class, (t_method)filter_tilde_ft2, gensym("ft2"), A_FLOAT, 0); class_addmethod(filter_tilde_class, (t_method)filter_tilde_ft3, gensym("ft3"), A_FLOAT, 0); class_addmethod(filter_tilde_class, (t_method)filter_tilde_ft4, gensym("ft4"), A_FLOAT, 0); class_addmethod(filter_tilde_class, (t_method)filter_tilde_set, gensym("set"), A_GIMME, 0); class_addmethod(filter_tilde_class, (t_method)filter_tilde_print, gensym("print"), 0); } iemlib-1.20.1/iemlib1/lp1.wav0000644002537200234200000000105410536414324016041 0ustar zmoelnigiemusersRIFF$WAVEfmt DXdata$5FVer}xhS:b=?s@.y,OabO(8=p1O FAbm" Y/zrxyw8!d (qc;> D*k=</WkjX53Aq;8^<Vl|wiZI7&iemlib-1.20.1/iemlib1/f2note-help.pd0000644002537200234200000000150611560743711017303 0ustar zmoelnigiemusers#N canvas 320 113 547 283 10; #X floatatom 100 175 9 0 0 0 - - -; #X floatatom 100 71 9 8 24000 0 - - -; #X floatatom 166 125 6 0 0 0 - - -; #X obj 100 101 f2note 440; #X msg 132 148 #A; #X text 8 52 input frequency; #X text 173 70 Hz; #X text 215 124 cents; #X text 67 147 note; #X text 4 2 f2note; #X text 233 241 IEM KUG; #X text 209 229 musil; #X text 247 229 @; #X text 257 229 iem.at; #X text 216 251 Graz \, Austria; #X text 67 3 converts a frequency in Hz into a floatingpoint midi pitch ; #X text 96 16 and a note plus its deviation in cents; #X text 195 97 1.arg: reference-frequency a' or A4; #X text 344 112 (today 440 .. 444 Hz); #X text 168 218 (c) Thomas Musil 2000 - 2011; #X text 24 174 midi pitch; #X text 35 122 deviation; #X connect 1 0 3 0; #X connect 3 0 0 0; #X connect 3 1 4 0; #X connect 3 2 2 0; iemlib-1.20.1/iemlib1/rvu~-help.pd0000644002537200234200000000605611055052215017114 0ustar zmoelnigiemusers#N canvas 210 11 730 597 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 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: 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: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:releasetime [ms] (default: 300 ms); #X obj 96 307 rvu~; #X text 106 323 output: :; #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 text 195 468 IEM KUG; #X text 179 456 musil; #X text 209 456 @; #X text 215 456 iem.at; #X text 130 445 (c) Thomas Musil 2000 - 2005; #X text 178 478 Graz \, Austria; #X connect 0 0 28 0; #X connect 1 0 28 0; #X connect 2 0 28 0; #X connect 3 0 31 0; #X connect 5 0 54 0; #X connect 6 0 54 0; #X connect 7 0 54 0; #X connect 8 0 28 0; #X connect 9 0 28 0; #X connect 10 0 28 0; #X connect 11 0 28 0; #X connect 12 0 28 0; #X connect 13 0 28 0; #X connect 14 0 28 0; #X connect 15 0 28 0; #X connect 16 0 28 0; #X connect 17 0 28 0; #X connect 18 0 28 0; #X connect 22 0 23 0; #X connect 26 0 22 0; #X connect 27 0 32 0; #X connect 27 1 33 0; #X connect 28 0 3 0; #X connect 29 0 30 0; #X connect 30 0 31 1; #X connect 31 0 54 0; #X connect 32 0 40 0; #X connect 33 0 41 0; #X connect 34 0 54 0; #X connect 35 0 54 0; #X connect 36 0 34 0; #X connect 37 0 35 0; #X connect 42 0 46 0; #X connect 43 0 44 0; #X connect 44 0 45 0; #X connect 45 0 28 0; #X connect 46 0 43 0; #X connect 48 0 29 0; #X connect 54 0 27 0; #X connect 54 0 4 0; iemlib-1.20.1/iemlib1/peakenv_hold~-help.pd0000644002537200234200000000456610763523054020754 0ustar zmoelnigiemusers#N canvas 190 268 1155 521 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 155 125 reset; #X msg 81 144 10; #X text 51 188 ~signal_in~; #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 text 120 337 1.output: peak-envelope; #X obj 45 260 unsig~ 50; #X text 194 124 resets peak-envelope to 0; #X obj 14 41 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X text 126 388 IEM KUG; #X text 99 376 musil; #X text 137 376 @; #X text 146 376 iem.at; #X text 109 398 Graz \, Austria; #X text 9 7 peakenv_hold~; #X text 128 6 signal-peak-envelope with peak hold time in ms; #X obj 45 237 peakenv_hold~ 700 2000; #X msg 170 170 700; #X floatatom 170 191 5 0 0 0 - - -; #X floatatom 265 190 5 0 0 0 - - -; #X msg 265 169 2000; #X text 305 188 ms; #X text 211 191 ms; #X text 267 205 release time; #X text 169 208 hold time; #X text 237 294 (output_envelope decrements about 63% in this time) ; #X text 585 280 (default: 0 ms); #X text 232 280 2.arg: time-constant of release time [ms]; #X text 234 240 1.arg: peak hold time [ms] (default: 0 ms) ; #X text 237 254 (output_envelope sustains constant during this time) ; #X text 50 365 (c) Thomas Musil 2000 - 2008; #N canvas 0 0 450 300 (subpatch) 0; #X array input 50 float 1; #A 0 0 0 0 0 0.228571 0.0999998 -0.0285714 0 0.0714284 0.271428 0.442856 0.699998 0.771427 0 0 0 0 0 0 0.0714284 0.114285 0.271428 0.299999 0 0 0 0 0 -0.0142857 -0.0285714 -0.0285714 -0.0428571 -0.0428571 -0.0857141 -0.0999998 -0.485713 -0.785713 -0.785713 -0.771427 -0.714284 -0.799998 -0.957141 0 0 0 0 0 0 0 0; #X coords 0 1 49 -1 100 140 1; #X restore 726 46 graph; #N canvas 0 22 450 300 (subpatch) 0; #X array output 200 float 0; #X coords 0 1 199 -1 400 140 1; #X restore 726 206 graph; #X obj 906 114 peakenv_hold~ 0.3 0.7; #X obj 905 92 tabplay~ input; #X obj 876 48 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 875 70 t b b; #X obj 891 160 tabwrite~ output; #X connect 0 0 2 0; #X connect 1 0 2 0; #X connect 2 0 22 0; #X connect 4 0 22 0; #X connect 5 0 2 0; #X connect 8 0 9 0; #X connect 12 0 3 0; #X connect 14 0 8 0; #X connect 22 0 12 0; #X connect 23 0 24 0; #X connect 24 0 22 1; #X connect 25 0 22 2; #X connect 26 0 25 0; #X connect 39 0 43 0; #X connect 40 0 39 0; #X connect 41 0 42 0; #X connect 42 0 43 0; #X connect 42 1 40 0; iemlib-1.20.1/iemlib1/pvu~-help.pd0000644002537200234200000000656311055052215017115 0ustar zmoelnigiemusers#N canvas 210 11 730 597 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 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: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: overflow_per_metrotime_counter [-] ; #X text 162 436 1.outlet: 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:releasetime [ms] (default: 300 ms); #X text 181 151 3.arg:overflow_threshold [dB] (default: -0.01 dB); #X obj 150 361 pvu~ 300 300 -0.01; #X text 195 528 IEM KUG; #X text 179 516 musil; #X text 209 516 @; #X text 215 516 iem.at; #X text 130 505 (c) Thomas Musil 2000 - 2005; #X text 178 538 Graz \, Austria; #X connect 0 0 28 0; #X connect 1 0 28 0; #X connect 2 0 28 0; #X connect 3 0 31 0; #X connect 5 0 54 0; #X connect 6 0 54 0; #X connect 7 0 54 0; #X connect 8 0 28 0; #X connect 9 0 28 0; #X connect 10 0 28 0; #X connect 11 0 28 0; #X connect 12 0 28 0; #X connect 13 0 28 0; #X connect 14 0 28 0; #X connect 15 0 28 0; #X connect 16 0 28 0; #X connect 17 0 28 0; #X connect 18 0 28 0; #X connect 22 0 23 0; #X connect 26 0 22 0; #X connect 27 1 32 0; #X connect 28 0 3 0; #X connect 29 0 30 0; #X connect 30 0 31 1; #X connect 31 0 54 0; #X connect 32 0 43 0; #X connect 33 0 54 0; #X connect 34 0 54 0; #X connect 35 0 54 0; #X connect 36 0 33 0; #X connect 37 0 34 0; #X connect 40 0 35 0; #X connect 44 0 48 0; #X connect 45 0 46 0; #X connect 46 0 47 0; #X connect 47 0 28 0; #X connect 48 0 45 0; #X connect 50 0 29 0; #X connect 54 0 25 0; #X connect 54 0 27 1; #X connect 54 1 4 0; iemlib-1.20.1/iemlib1/peakenv~-help.pd0000644002537200234200000000207411055052215017725 0ustar zmoelnigiemusers#N canvas 190 268 481 430 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 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: peak-envelope; #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: 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 text 115 388 IEM KUG; #X text 99 376 musil; #X text 129 376 @; #X text 135 376 iem.at; #X text 50 365 (c) Thomas Musil 2000 - 2005; #X text 98 398 Graz \, Austria; #X connect 0 0 2 0; #X connect 1 0 2 0; #X connect 2 0 11 0; #X connect 4 0 11 0; #X connect 5 0 2 0; #X connect 8 0 9 0; #X connect 11 0 14 0; #X connect 14 0 3 0; #X connect 19 0 8 0; iemlib-1.20.1/iemlib1/lp3.wav0000644002537200234200000000105410536414324016043 0ustar zmoelnigiemusersRIFF$WAVEfmt DXdata   "(.(376H7\4s.2v W~D umj~h1 dond 2gkmt C}W!t2.t5]8I784)/)#    iemlib-1.20.1/iemlib1/prvu~-help.pd0000644002537200234200000000776711055052215017306 0ustar zmoelnigiemusers#N canvas 210 11 728 595 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 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: peak_level [dB]; #X text 160 482 1.item: 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:overflow_threshold [dB] (default: -0.01 dB); #X text 200 85 (repeat the peak on output until peakholdtime); #X text 106 377 output: of 3 items:; #X text 229 435 3.item: 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:metrotime [ms] (default: 300 ms); #X text 181 109 3.arg:releasetime [ms] (default: 300 ms); #X text 180 74 2.arg: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 text 175 538 IEM KUG; #X text 159 526 musil; #X text 189 526 @; #X text 195 526 iem.at; #X text 110 515 (c) Thomas Musil 2000 - 2005; #X text 158 548 Graz \, Austria; #X connect 0 0 32 0; #X connect 1 0 32 0; #X connect 2 0 32 0; #X connect 3 0 35 0; #X connect 6 0 61 0; #X connect 7 0 61 0; #X connect 8 0 61 0; #X connect 9 0 32 0; #X connect 10 0 32 0; #X connect 11 0 32 0; #X connect 12 0 32 0; #X connect 13 0 32 0; #X connect 14 0 32 0; #X connect 15 0 32 0; #X connect 16 0 32 0; #X connect 17 0 32 0; #X connect 18 0 32 0; #X connect 19 0 32 0; #X connect 23 0 24 0; #X connect 26 0 4 0; #X connect 26 1 27 0; #X connect 26 2 5 0; #X connect 30 0 23 0; #X connect 31 0 36 0; #X connect 31 1 37 0; #X connect 32 0 3 0; #X connect 33 0 34 0; #X connect 34 0 35 1; #X connect 35 0 61 0; #X connect 36 0 54 0; #X connect 37 0 55 0; #X connect 42 0 61 0; #X connect 43 0 61 0; #X connect 44 0 61 0; #X connect 45 0 61 0; #X connect 46 0 42 0; #X connect 47 0 43 0; #X connect 48 0 44 0; #X connect 51 0 45 0; #X connect 56 0 60 0; #X connect 57 0 58 0; #X connect 58 0 59 0; #X connect 59 0 32 0; #X connect 60 0 57 0; #X connect 61 0 26 0; #X connect 61 0 31 0; #X connect 65 0 33 0; iemlib-1.20.1/iemlib1/FIR~-help.pd0000644002537200234200000000402211560744065016723 0ustar zmoelnigiemusers#N canvas 345 25 559 627 10; #N canvas 0 22 450 300 (subpatch) 0; #X array fir_coeff 256 float 0; #X coords 0 1 255 -1 256 140 1; #X restore 63 195 graph; #X obj 109 154 soundfiler; #X floatatom 4 133 5 0 0 0 - - -; #X text 32 96 % cpu; #X obj 4 93 dsp; #X obj 4 73 tgl 15 0 empty empty dsp_ON/OFF 2 -8 0 10 -225271 -42246 -90881 1 1; #X floatatom 413 444 7 0 0 0 - - -; #X obj 342 323 dac~; #X obj 342 297 gainvu~ 300; #X obj 404 319 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 491 166 vsl 15 128 0 127 0 1 empty empty gain -7 -8 0 10 -225271 -42246 -90881 4400 1; #X obj 343 75 noise~; #X floatatom 403 462 7 0 0 0 - - -; #X obj 109 71 bng 15 250 50 1 empty empty loadbang 0 -8 0 10 -225271 -24198 -90881; #X msg 109 91 read -resize lp1.wav fir_coeff; #X msg 114 112 read -resize lp2.wav fir_coeff; #X msg 121 132 read -resize lp3.wav fir_coeff; #X obj 19 406 soundfiler; #N canvas 0 22 450 300 (subpatch) 0; #X array fir_coeff2 256 float 0; #X coords 0 1 255 -1 256 140 1; #X restore 70 452 graph; #X msg 20 385 read -resize lp3.wav fir_coeff2; #X obj 20 365 bng 15 250 50 1 empty empty loadbang 0 -8 0 10 -225271 -24198 -90881; #X msg 359 105 set fir_coeff 256; #X msg 373 127 set fir_coeff2 256; #X floatatom 17 113 5 0 0 0 - - -; #X obj 343 155 FIR~ fir_coeff 256; #X text 398 517 IEM KUG; #X text 382 505 musil; #X text 412 505 @; #X text 418 505 iem.at; #X text 333 494 (c) Thomas Musil 2000 - 2005; #X text 381 527 Graz \, Austria; #X text 15 13 FIR~; #X text 50 12 convolve a signal with an array; #X text 276 5 1.arg: array-name; #X text 276 15 2.arg: convolution-length; #X floatatom 376 273 5 0 0 0 - - -; #X connect 4 0 2 0; #X connect 4 1 23 0; #X connect 5 0 4 0; #X connect 8 0 7 0; #X connect 8 0 7 1; #X connect 8 1 35 0; #X connect 8 2 9 0; #X connect 9 0 12 0; #X connect 9 1 6 0; #X connect 10 0 8 1; #X connect 11 0 24 0; #X connect 13 0 14 0; #X connect 14 0 1 0; #X connect 15 0 1 0; #X connect 16 0 1 0; #X connect 19 0 17 0; #X connect 20 0 19 0; #X connect 21 0 24 0; #X connect 22 0 24 0; #X connect 24 0 8 0; iemlib-1.20.1/iemlib1/sin_phase~-help.pd0000644002537200234200000000351212205156575020257 0ustar zmoelnigiemusers#N canvas 375 118 502 514 10; #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 338 75 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 213 197 cos~; #X obj 155 197 cos~; #X obj 155 175 +~ 0; #X obj 155 122 phasor~ 440; #X text 180 61 midi-pitch; #X text 339 57 phase-difference; #X obj 155 325 lp1~ 10 100; #X obj 156 347 unsig~; #X floatatom 156 393 5 0 0 0 - - -; #X floatatom 90 359 5 0 0 0 - - -; #X obj 156 371 * 360; #X text 194 392 degree; #X obj 31 271 unsig~; #X floatatom 31 294 5 0 0 0 - - -; #X obj 338 98 / 360; #X obj 237 117 f; #X text 113 451 IEM KUG; #X text 97 439 musil; #X text 127 439 @; #X text 133 439 iem.at; #X text 48 428 (c) Thomas Musil 2000 - 2005; #X text 96 461 Graz \, Austria; #X text 384 72 degree; #X obj 240 242 sin_freq~; #X obj 155 272 *~; #X obj 24 316 unsig~; #X floatatom 24 339 9 0 0 0 - - -; #X obj 156 298 /~ 44100; #X floatatom 303 282 5 0 0 0 - - -; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 17 0; #X connect 3 0 29 0; #X connect 5 0 28 0; #X connect 8 0 6 0; #X connect 9 0 8 0; #X connect 13 0 26 0; #X connect 13 0 38 0; #X connect 14 0 13 1; #X connect 14 0 37 0; #X connect 15 0 13 0; #X connect 16 0 15 0; #X connect 17 0 14 0; #X connect 17 0 16 0; #X connect 20 0 21 0; #X connect 21 0 23 0; #X connect 21 0 24 0; #X connect 24 0 22 0; #X connect 26 0 27 0; #X connect 28 0 16 1; #X connect 37 0 38 1; #X connect 38 0 39 0; #X connect 38 0 41 0; #X connect 39 0 40 0; #X connect 41 0 20 0; #X connect 42 0 20 1; iemlib-1.20.1/iemlib1/hml_shelf~-help.pd0000644002537200234200000000601411560744065020247 0ustar zmoelnigiemusers#N canvas 105 49 635 570 10; #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 274 304 5 2 9999 0 - - -; #X text 312 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 0 empty empty empty 8 -8 0 10 -262144 -1 -1 6000 1; #X obj 47 132 testtone~ 200; #X obj 114 93 init 69; #X text 74 111 midi; #X text 200 144 6.arg: interpolation_time [ms]; #X text 200 91 1.arg: low_level [dB]; #X text 200 101 2.arg: low_freq. [Hz]; #X text 200 112 3.arg: medium_level [dB]; #X text 200 122 4.arg: high_freq. [Hz]; #X text 200 133 5.arg: high_level [dB]; #X obj 341 213 vsl 15 49 27.5 440 1 1 empty empty low_freq. -8 -8 0 8 -262144 -1 -1 2200 1; #X obj 85 216 vsl 15 81 -40 40 0 1 empty empty low_level -18 -8 0 8 -262144 -1 -1 3000 1; #X obj 161 215 vsl 15 81 -40 40 0 1 empty empty mid_level -10 -8 0 8 -262144 -1 -1 4000 1; #X obj 236 214 vsl 15 81 -40 40 0 1 empty empty high_level 0 -8 0 8 -262144 -1 -1 3000 1; #X text 358 207 -440Hz; #X text 358 255 -27.5Hz; #X text 358 231 -110Hz; #X obj 421 213 vsl 15 49 880 14080 1 1 empty empty high_freq. -8 -8 0 8 -262144 -1 -1 2400 1; #X text 438 207 -14080Hz; #X text 438 255 -880Hz; #X text 438 231 -3520Hz; #X floatatom 530 385 7 0 0 0 - - -; #X text 588 387 dB; #X floatatom 85 305 4 0 0 0 - - -; #X floatatom 161 304 4 0 0 0 - - -; #X floatatom 236 303 4 0 0 0 - - -; #X floatatom 341 305 8 0 0 0 - - -; #X floatatom 421 305 8 0 0 0 - - -; #X text 157 8 high-middle-low-shelving-filter; #X text 4 311 signal_in~; #X text 101 211 +40; #X text 103 250 0; #X text 101 290 -40; #X text 179 249 0; #X text 177 289 -40; #X text 177 210 +40; #X text 252 209 +40; #X text 254 248 0; #X text 252 288 -40; #X text 84 188 dB; #X text 159 186 dB; #X text 235 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 text 78 467 IEM KUG; #X text 62 455 musil; #X text 92 455 @; #X text 98 455 iem.at; #X text 13 444 (c) Thomas Musil 2000 - 2005; #X text 61 477 Graz \, Austria; #X obj 47 328 hml_shelf~ -10 98 0 3520 -10 200; #X msg 277 412 set 0 0; #X text 246 397 set internal state; #X obj 529 212 init 60; #X connect 5 0 16 0; #X connect 8 0 65 6; #X connect 10 0 6 0; #X connect 11 0 10 0; #X connect 13 0 12 0; #X connect 13 0 12 1; #X connect 13 1 36 0; #X connect 13 2 14 0; #X connect 14 1 1 0; #X connect 15 0 13 1; #X connect 16 0 65 0; #X connect 16 1 3 0; #X connect 17 0 5 0; #X connect 25 0 41 0; #X connect 26 0 38 0; #X connect 27 0 39 0; #X connect 28 0 40 0; #X connect 32 0 42 0; #X connect 38 0 65 1; #X connect 39 0 65 3; #X connect 40 0 65 5; #X connect 41 0 65 2; #X connect 42 0 65 4; #X connect 65 0 13 0; #X connect 66 0 65 0; #X connect 68 0 15 0; iemlib-1.20.1/iemlib1/sparse_FIR~-help.pd0000644002537200234200000001046212205156467020305 0ustar zmoelnigiemusers#N canvas 125 49 986 684 10; #X floatatom 4 149 5 0 0 0 - - -; #X text 32 112 % cpu; #X obj 4 109 dsp; #X obj 4 89 tgl 15 0 empty empty dsp_ON/OFF 2 -8 0 10 -225271 -42246 -90881 0 1; #X floatatom 183 510 7 0 0 0 - - -; #X obj 112 389 dac~; #X obj 112 363 gainvu~ 300; #X obj 174 385 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 294 232 vsl 15 128 0 127 0 0 empty empty gain -7 -8 0 10 -225271 -42246 -90881 6000 1; #X obj 113 111 noise~; #X floatatom 173 528 7 0 0 0 - - -; #X floatatom 17 129 5 0 0 0 - - -; #X text 170 583 IEM KUG; #X text 146 571 musil; #X text 182 571 @; #X text 190 571 iem.at; #X text 153 593 Graz \, Austria; #X floatatom 142 339 5 0 0 0 - - -; #X msg 353 134 size 256; #X msg 409 500 0 1 1 1; #X msg 405 348 0 1 10 1 20 1 30 1 40 1 50 1 60 1 70 1 80 1; #X obj 707 54 t b b; #X msg 767 117 set; #X msg 668 117 add2 \$1 \$2; #X obj 707 34 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 354 156 order 384; #X msg 405 369 matrix 9 2 0 1 10 1 20 1 30 1 40 1 50 1 60 1 70 1 80 1; #X text 17 14 sparse_FIR~; #X msg 409 560 0 0; #X msg 409 466 0 -0.1 1 -0.18 2 -0.1 3 0.15 4 0.4 5 0.7 6 0.4 7 0.15 8 -0.1 9 -0.18 10 -0.1; #X msg 510 142 0 0.04 1 0.04 2 0.04 3 0.04 4 0.04 5 0.04 6 0.04 7 0.04 8 0.04 9 0.04 10 0.04 11 0.04 12 0.04 13 0.04 14 0.04 15 0.04 16 0.04 17 0.04 18 0.04 19 0.04 20 0.04 21 0.04 22 0.04 23 0.04 24 0.04 25 0.04 26 0.04 27 0.04 28 0.04 29 0.04; #X obj 668 97 pack 0 0.04; #X obj 668 75 for++ 0 29; #X text 405 204 A list of alternating index- and value- doubles will change the coefficients of convolution. The number of pairs should be less than the order of FIR.; #X text 404 318 A matrix message will do the same.; #X obj 568 109 loadbang; #X text 134 14 convolve a signal with a coefficent list of non zero index/value pairs. All values between the determined values will be set to zero and won't be calculated (sparse).; #X text 405 250 Each pair or double begins with an index followed by its value.; #X obj 113 196 sparse_FIR~ 256; #X msg 286 113 size 16; #X obj 327 214 init 60; #X text 103 559 (c) Thomas Musil 2000 - 2011; #X msg 409 521 0 1 40 -1 80 1 120 -1 160 1 200 -1 240 1 280 -1 320 1 360 -1 400 1; #X msg 353 113 size 128; #X msg 287 157 size 64; #X msg 287 135 size 32; #X msg 221 155 size 8; #X msg 222 133 size 4; #X text 799 345 same as; #X text 800 368 same as; #X msg 35 252 size 0; #X msg 223 113 size 3; #X msg 163 158 size 2; #X msg 165 136 size 1; #X text 847 120 sparse list; #X text 719 447 sparse list; #X text 529 411 sparse matrix; #X text 29 235 ignored; #X msg 429 134 order 4; #X msg 428 156 order 8; #X msg 409 436 0 0.1 3 0.1 6 0.1 9 0.1 12 0.1; #X msg 408 585 0 0.3 1 0.3 2 0.3 3 0.3; #X msg 569 586 10 0.3 11 0.3 12 0.3 13 0.3; #X msg 755 585 size 4; #X msg 808 586 size 14; #X text 183 67 "size" or "order" followed by a number change the max. order of FIR filter (or size = order) and the memory-management.; #X text 404 283 All other values will reset to zero (not calculated). ; #X text 134 311 (FIR order or size=order); #X text 135 297 max. convolution-length; #X text 123 283 1.arg: ; #X text 853 301 matrix 9 2 \; 0 1 \; 10 1 \; 20 1 \; 30 1 \; 40 1 \; 50 1 \; 60 1 \; 70 1 \; 80 1; #X text 1068 321 matrix 2 9 \; 0 10 20 30 40 50 60 70 80 \; 1 1 1 1 1 1 1 1 1; #X msg 1073 368 matrix 2 9 0 1 10 1 20 1 30 1 40 1 50 1 60 1 70 1 80 1; #X text 1073 392 not same as; #X connect 2 0 0 0; #X connect 2 1 11 0; #X connect 3 0 2 0; #X connect 6 0 5 0; #X connect 6 0 5 1; #X connect 6 1 17 0; #X connect 6 2 7 0; #X connect 7 0 10 0; #X connect 7 1 4 0; #X connect 8 0 6 1; #X connect 9 0 38 0; #X connect 18 0 38 0; #X connect 19 0 38 0; #X connect 20 0 38 0; #X connect 21 0 32 0; #X connect 21 1 22 0; #X connect 22 0 30 0; #X connect 23 0 30 0; #X connect 24 0 21 0; #X connect 25 0 38 0; #X connect 26 0 38 0; #X connect 28 0 38 0; #X connect 29 0 38 0; #X connect 30 0 38 0; #X connect 31 0 23 0; #X connect 32 0 31 0; #X connect 35 0 30 0; #X connect 38 0 6 0; #X connect 39 0 38 0; #X connect 40 0 8 0; #X connect 42 0 38 0; #X connect 43 0 38 0; #X connect 44 0 38 0; #X connect 45 0 38 0; #X connect 46 0 38 0; #X connect 47 0 38 0; #X connect 50 0 38 0; #X connect 51 0 38 0; #X connect 52 0 38 0; #X connect 53 0 38 0; #X connect 58 0 38 0; #X connect 59 0 38 0; #X connect 60 0 38 0; #X connect 61 0 38 0; #X connect 62 0 38 0; #X connect 63 0 38 0; #X connect 64 0 38 0; iemlib-1.20.1/iemlib1/lp2.wav0000644002537200234200000000105410536414324016042 0ustar zmoelnigiemusersRIFF$WAVEfmt DXdata  +3/5Q[O/'d{?]@PUNH_BZt5A"b`gp FJ md^b&A2s[E^EOVN=Z@}f(0R^T7 15,  iemlib-1.20.1/iemlib1/v2db-help.pd0000644002537200234200000000074511055052215016736 0ustar zmoelnigiemusers#N canvas 158 78 283 224 10; #X floatatom 23 99 9 0 0 0 - - -; #X text 57 75 no arg; #X floatatom 23 52 9 0 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 115 168 IEM KUG; #X text 99 156 musil; #X text 129 156 @; #X text 135 156 iem.at; #X text 50 145 (c) Thomas Musil 2000 - 2005; #X text 98 178 Graz \, Austria; #X connect 2 0 7 0; #X connect 7 0 0 0; iemlib-1.20.1/iemlib1/sin_freq~-help.pd0000644002537200234200000000233511672410720020106 0ustar zmoelnigiemusers#N canvas 375 118 488 460 10; #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 224 100 Hz; #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 180 61 midi-pitch; #X obj 336 305 unsig~; #X text 149 400 IEM KUG; #X text 126 388 musil; #X text 163 388 @; #X text 172 388 iem.at; #X text 132 410 Graz \, Austria; #X obj 154 241 sin_freq~; #X obj 155 140 osc~ 440; #X text 406 326 Hz; #X text 84 377 (c) Thomas Musil 2000 - 2011; #X text 10 7 sin_freq~; #X text 105 8 calculate frequency of a; #X text 105 20 sine-wave \, in Hz (signal-out); #X floatatom 27 299 9 0 0 0 - - -; #X floatatom 336 327 9 0 0 0 - - -; #X obj 154 305 unsig~; #X text 224 326 Hz; #X floatatom 154 327 9 0 0 0 - - -; #X obj 154 283 lp1~ 100; #X obj 336 283 lp1_dp~ 10; #X obj 27 276 unsig~ 10; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 17 0; #X connect 7 0 5 0; #X connect 8 0 7 0; #X connect 10 0 24 0; #X connect 16 0 28 0; #X connect 16 0 29 0; #X connect 16 0 30 0; #X connect 17 0 16 0; #X connect 25 0 27 0; #X connect 28 0 25 0; #X connect 29 0 10 0; #X connect 30 0 23 0; iemlib-1.20.1/iemlib1/lp1_t~-help.pd0000644002537200234200000000665111560744065017334 0ustar zmoelnigiemusers#N canvas 152 22 565 686 10; #X text 109 239 ~signal_in~; #X text 38 33 dsp ON/OFF; #X floatatom 294 140 5 0 1005 0 - - -; #X text 144 282 ~signal_out~; #X floatatom 21 73 5 0 0 0 - - -; #X text 60 74 % cpu; #X floatatom 256 230 5 2 9999 0 - - -; #X text 298 229 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 292 265 2.arg: interpolation_time [ms]; #X text 337 139 ms; #X obj 152 255 lp1_t~ 0.5 200; #X text 259 215 interpolation_time [ms]; #X text 333 124 time_constant [ms]; #X text 292 254 1.arg: time_constant [ms]; #X obj 153 60 tgl 15 0 empty empty empty 0 -6 0 8 -262144 -1 -1 1 1 ; #X obj 74 197 t b; #X obj 152 153 sig~; #N canvas 0 22 450 300 (subpatch) 0; #X array scope 400 float 0; #X array tangens 400 float 0; #X coords 0 1 399 0 400 80 1; #X restore 39 399 graph; #X obj 74 306 tabwrite~ scope; #X msg 320 80 0.2; #X msg 351 80 0.5; #X msg 384 80 1.5; #X msg 270 553 \; scope xticks 0 22 2; #X obj 270 532 loadbang; #X text 79 481 1; #X text 123 481 2; #X text 168 481 3 ms; #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 text 106 545 IEM KUG; #X text 84 533 musil; #X text 120 533 @; #X text 128 533 iem.at; #X text 89 555 Graz \, Austria; #X floatatom 267 336 9 0 0 0 - - -; #X floatatom 367 358 9 0 0 0 - - -; #N canvas 687 134 447 418 tangens 0; #X obj 69 67 inlet; #X obj 69 88 del 20; #X obj 68 115 t b b b b; #X obj 209 136 tabread scope; #X obj 177 158 tabread scope; #X obj 176 180 -; #X obj 25 201 for++ 0 399; #X obj 27 258 * 0.01; #X obj 27 228 t f f; #X obj 26 343 tabwrite tangens; #X msg 178 136 1; #X msg 210 114 0; #X obj 28 284 + 0; #X obj 27 313 clip 0 1; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 6 0; #X connect 2 2 10 0; #X connect 2 3 11 0; #X connect 3 0 5 1; #X connect 3 0 12 1; #X connect 4 0 5 0; #X connect 5 0 7 1; #X connect 6 0 8 0; #X connect 7 0 12 0; #X connect 8 0 7 0; #X connect 8 1 9 1; #X connect 10 0 4 0; #X connect 11 0 3 0; #X connect 12 0 13 0; #X connect 13 0 9 0; #X restore 21 236 pd tangens; #X text 39 521 (c) Thomas Musil 2000 - 2010; #X msg 417 80 3; #X text 298 481 6 ms; #X msg 450 80 6; #X obj 346 334 > 0.64; #X obj 435 332 < 0.36; #X obj 347 357 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1; #X obj 435 356 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #N canvas 0 22 450 300 unsig~ 0; #X obj 265 56 inlet; #X obj 265 218 outlet; #X obj 266 170 timer; #X obj 266 84 t b b; #X obj 299 132 metro 20; #X obj 118 218 outlet; #X obj 118 56 inlet~; #X obj 119 172 snapshot~; #X connect 0 0 3 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 3 1 4 0; #X connect 4 0 2 1; #X connect 4 0 7 0; #X connect 6 0 7 0; #X connect 7 0 5 0; #X restore 337 297 pd unsig~ + clock; #X msg 194 177 set \$1; #X obj 193 155 == 0; #X obj 154 81 t b f f f; #X connect 2 0 12 1; #X connect 6 0 12 2; #X connect 8 0 4 0; #X connect 9 0 8 0; #X connect 12 0 20 0; #X connect 12 0 47 0; #X connect 16 0 50 0; #X connect 17 0 20 0; #X connect 17 0 38 0; #X connect 18 0 12 0; #X connect 21 0 2 0; #X connect 22 0 2 0; #X connect 23 0 2 0; #X connect 25 0 24 0; #X connect 40 0 2 0; #X connect 42 0 2 0; #X connect 43 0 45 0; #X connect 44 0 46 0; #X connect 47 0 36 0; #X connect 47 0 43 0; #X connect 47 0 44 0; #X connect 47 1 37 0; #X connect 48 0 12 0; #X connect 49 0 48 0; #X connect 50 0 17 0; #X connect 50 1 18 0; #X connect 50 2 49 0; #X connect 50 3 47 1; iemlib-1.20.1/iemlib1/para_bp2~-help.pd0000644002537200234200000000507711560744065020004 0ustar zmoelnigiemusers#N canvas 280 47 476 548 10; #X text 8 342 ~signal_in~; #X text 40 54 dsp ON/OFF; #X floatatom 86 329 9 0 22000 0 - - -; #X text 152 330 Hz; #X text 70 374 ~signal_out~; #X floatatom 297 369 7 0 0 0 - - -; #X text 348 370 dB; #X floatatom 146 164 9 0 22000 0 - - -; #X text 212 165 Hz; #X floatatom 58 125 3 15 133 0 - - -; #X floatatom 23 94 5 0 0 0 - - -; #X text 63 95 % cpu; #X floatatom 228 336 5 2 9999 0 - - -; #X text 269 337 ms; #X obj 23 74 dsp; #X floatatom 136 309 4 0.01 1000 0 - - -; #X text 121 308 Q; #X text 191 101 2.arg: Q [-]; #X text 191 91 1.arg: center_freq. [Hz]; #X obj 23 54 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 58 427 dac~; #X obj 58 402 gainvu~ 300; #X obj 313 237 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 375 271 vsl 15 128 0 127 0 0 empty empty empty 8 -8 0 10 -262144 -1 -1 6500 1; #X obj 58 144 testtone~ 200; #X obj 122 108 init 69; #X text 85 126 midi; #X text 191 121 4.arg: interpolation_time [ms]; #X text 191 111 3.arg: level [dB]; #X obj 58 360 para_bp2~ 440 2 -12 200; #X floatatom 195 317 6 -40 40 0 - - -; #X text 239 318 dB; #X floatatom 362 419 7 0 0 0 - - -; #X text 413 420 dB; #X text 147 12 parametric bandpass 2.order; #X obj 17 17 cnv 8 1 1 empty empty para_bp2~ 1 2 1 18 -262144 -1109 0; #X text 125 508 IEM KUG; #X text 101 496 musil; #X text 139 496 @; #X text 148 496 iem.at; #X text 108 518 Graz \, Austria; #X obj 238 221 vsl 15 81 -40 40 0 1 empty empty band-level -18 -8 0 8 -262144 -1 -1 2800 1; #X text 90 238 -440Hz; #X text 90 287 -27.5Hz; #X text 90 262 -110Hz; #X obj 73 185 vsl 15 109 27.5 14080 1 1 empty empty band-freq. -8 -8 0 8 -262144 -1 -1 4800 1; #X text 90 178 -14080Hz; #X text 90 227 -880Hz; #X text 90 203 -3520Hz; #X text 254 216 +40; #X text 256 255 0; #X text 254 295 -40; #X text 195 177 dB; #X text 90 250 -220Hz; #X obj 168 220 vsl 15 81 0.01 100 1 1 empty empty Quality -8 -8 0 8 -262144 -1 -1 4600 1; #X text 184 215 100; #X text 184 294 0.01; #X text 186 254 1; #X msg 172 446 set 0 0; #X text 145 426 set internal state; #X text 60 485 (c) Thomas Musil 2000 - 2011; #X obj 376 246 init 60; #X connect 2 0 29 1; #X connect 9 0 24 0; #X connect 12 0 29 4; #X connect 14 0 10 0; #X connect 15 0 29 2; #X connect 19 0 14 0; #X connect 21 0 20 0; #X connect 21 0 20 1; #X connect 21 1 32 0; #X connect 21 2 22 0; #X connect 22 1 5 0; #X connect 23 0 21 1; #X connect 24 0 29 0; #X connect 24 1 7 0; #X connect 25 0 9 0; #X connect 29 0 21 0; #X connect 30 0 29 3; #X connect 41 0 30 0; #X connect 45 0 2 0; #X connect 54 0 15 0; #X connect 58 0 29 0; #X connect 61 0 23 0; iemlib-1.20.1/iemlib1/gate-help.pd0000644002537200234200000000216011560743733017027 0ustar zmoelnigiemusers#N canvas 400 182 412 404 10; #X obj 9 34 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X msg 34 33 33; #X msg 51 55 -3.14; #X msg 74 97 11 22 33.33; #X msg 64 75 open xxx; #X msg 94 119 funny; #X text 7 8 gate; #X obj 95 206 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 9 257 print; #X text 112 256 the original object spigot; #X obj 55 249 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X text 118 266 (c) miller puckette; #X text 44 8 interrupt or continue a stream of messages; #X text 116 202 gate: ON / OFF; #X obj 9 226 gate 1; #X text 63 228 1.arg: control-state of gate [0/1] (opt.); #X text 154 317 IEM KUG; #X text 129 305 musil; #X text 168 305 @; #X text 178 305 iem.at; #X text 89 294 (c) Thomas Musil 2000 - 2005; #X text 137 327 Graz \, Austria; #X text 106 25 (now obsolete); #X msg 101 142 symbol abc; #X msg 109 168 list hhh fff 456 987; #X connect 0 0 14 0; #X connect 1 0 14 0; #X connect 2 0 14 0; #X connect 3 0 14 0; #X connect 4 0 14 0; #X connect 5 0 14 0; #X connect 7 0 14 1; #X connect 14 0 8 0; #X connect 14 0 10 0; #X connect 23 0 14 0; #X connect 24 0 14 0; iemlib-1.20.1/iemlib1/soundfile_info-help.pd0000644002537200234200000000264011120266104021075 0ustar zmoelnigiemusers#N canvas 153 56 730 458 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: header-size in bytes; #X text 91 194 1.item: samplerate in Hz; #X text 91 204 2.item: file-name; #X text 91 234 5.item: number of channels; #X text 7 2 soundfile_info; #X text 130 2 show the header-data of a wav-file; #X text 91 254 7.item: 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 304 (eg. big endian "aiff" is natural format on Macintosh-machines) ; #X text 91 214 3.item: sound-data-length in samples; #X text 91 244 6.item: sample-resolution in bytes; #X text 75 388 IEM KUG; #X text 55 376 musil; #X text 89 376 @; #X text 97 376 iem.at; #X text 58 398 Graz \, Austria; #X text 10 365 (c) Thomas Musil 2000 - 2008; #X text 90 325 8.item: format code (1 .. linear PCM); #X text 286 335 (3 .. IEEE-float); #X text 286 345 (6 .. 8 bit ALAW); #X text 286 355 (7 .. 8 bit MULAW); #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; iemlib-1.20.1/iem_mp3/0000755002537200234200000000000012243414233014631 5ustar zmoelnigiemusersiemlib-1.20.1/iem_mp3/src/0000755002537200234200000000000012243414233015420 5ustar zmoelnigiemusersiemlib-1.20.1/iem_mp3/src/makefile_d_fat0000644002537200234200000000145212205157153020262 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .d_fat PDSOURCE = "/Applications/Pd.app/Contents/Resources/src" IEMLIB_INCLUDE = ../../include PD_INCLUDES = -I. -I$(IEMLIB_INCLUDE) -I$(PDSOURCE) PD_DEFINES = -DPD CFLAGS =-O2 -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch -fPIC LFLAGS = -bundle -undefined suppress -flat_namespace ARCH_FLAGS=-arch i386 -arch ppc # the sources SRC = mp3play~.c \ iem_mp3.c TARGET = iem_mp3.d_fat OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm -f ../$(TARGET) rm -f *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(ARCH_FLAGS) $(LFLAGS) -o $(TARGET) *.o strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c $(CC) $(ARCH_FLAGS) $(PD_DEFINES) $(CFLAGS) $(PD_INCLUDES) -c -o $*.o $*.c iemlib-1.20.1/iem_mp3/src/iem_mp3.c0000644002537200234200000000143110536414324017120 0ustar zmoelnigiemusers/* 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 - 2006 */ #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 mp3play_tilde_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); mp3play_tilde_setup(); post("iem_mp3 (R-1.17) library loaded! (c) Thomas Musil 11.2006"); post(" musil%ciem.at iem KUG Graz Austria", '@'); } iemlib-1.20.1/iem_mp3/src/makefile0000644002537200234200000000012112165312653017120 0ustar zmoelnigiemusersTARGET = iem_mp3 SRC = mp3play~.c \ $(TARGET).c include ../../Make.include iemlib-1.20.1/iem_mp3/src/makefile_d_ppc0000644002537200234200000000130010714357627020275 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .d_ppc PD_INSTALL_PATH = "/Applications/Pd.app/Contents/Resources" INCLUDE = -I. -I$(PD_INSTALL_PATH)/src CFLAGS =-DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch LFLAGS = -bundle -undefined suppress -flat_namespace # the sources SRC = mp3play~.c \ iem_mp3.c TARGET = iem_mp3.d_ppc OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm ../$(TARGET) rm *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(LFLAGS) -o $(TARGET) *.o strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c touch $*.c $(CC) $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c iemlib-1.20.1/iem_mp3/src/mp3play~.c0000644002537200234200000031773511432720630017367 0ustar zmoelnigiemusers/* 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 - 2006 */ /* mp3play~.c - Mpeg Layer III Player for PD Version:0.1 05-18-2000 written by Thomas Musil (musil_at_iem.at), Norbert Math (math_at_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! */ #include "m_pd.h" #include "iemlib.h" #include #include #include #include #include #include #include #include #include #ifndef _WIN32 #include #include #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 _mp3play_tilde { 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_mp3play_tilde; 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 mp3play_tilde_tick(t_mp3play_tilde *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 *mp3play_tilde_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,err=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,&err); if(!err) 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 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 l1 = (*bdf++) >> 1; for(lwin=0;lwin<3;lwin++) { *mp++ = l1; *mp++ = i + lwin; *mp++ = lwin; *mp++ = cb; } i += 6*l1; } 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 l1 = (*bdf++) >> 1; for(lwin=0;lwin<3;lwin++) { *mp++ = l1; *mp++ = i + lwin; *mp++ = lwin; *mp++ = cb; } i += 6*l1; } 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 err=1; head = read_buf_byte(mp,&err); head <<= 8; head |= read_buf_byte(mp,&err); head <<= 8; head |= read_buf_byte(mp,&err); head <<= 8; head |= read_buf_byte(mp,&err); mp->header = head; return(err); } 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;grlsf) 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;ilsf); 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;imaxb;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;imaxb;i++) *in0++ = *in1++; } break; } } for(ch=0;ch= 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; chch[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; chch[ch].gr[0].scfsi = -1; si->ch[ch].gr[1].scfsi = getbits_fast(4); } for (gr=0; gr<2; gr++) { for (ch=0; chch[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;iscalefac_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 (; sbmaxb; 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 (; sbmaxb; 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(;sbsynth_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 *mp3play_tilde_new(void) { char *vec; t_mp3play_tilde *x = (t_mp3play_tilde *)pd_new(mp3play_tilde_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)mp3play_tilde_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 mp3play_tilde_cleanup(t_mp3play_tilde *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 mp3play_tilde_read_frame_length_first(t_mp3play_tilde *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; size_t len; *frsz = 0; if((x->file_size) >= 4) { len = fread(&chead, 1, sizeof(char), x->fh); head = (unsigned int)chead; len = fread(&chead, 1, sizeof(char), x->fh); head <<= 8; head |= (unsigned int)chead; len = fread(&chead, 1, sizeof(char), x->fh); head <<= 8; head |= (unsigned int)chead; len = 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 mp3play_tilde_read_frame_length_next(t_mp3play_tilde *x, int *frsz, int frame_counter) { int framesize, lsf, bitrate_index, sampling_frequency, *begframeseek=x->begframeseek; unsigned long head; unsigned char chead; size_t len; *frsz = 0; if(begframeseek[frame_counter] < ((x->file_size) - 4)) { len = fread(&chead, 1, sizeof(char), x->fh); head = (unsigned int)chead; len = fread(&chead, 1, sizeof(char), x->fh); head <<= 8; head |= (unsigned int)chead; len = fread(&chead, 1, sizeof(char), x->fh); head <<= 8; head |= (unsigned int)chead; len = 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 mp3play_tilde_calc_frames(t_mp3play_tilde *x) { int *begframeseek=x->begframeseek, i, maxframeseek, framesize, frame_counter; float length; fseek(x->fh,0,SEEK_SET); if(!mp3play_tilde_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(!mp3play_tilde_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 mp3play_tilde_do_open(t_mp3play_tilde *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]; size_t len; 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 = mp3play_tilde_calc_frames(x); if(mp3_encode_return == MP3_EX) { mp3play_tilde_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) { len = 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) { mp3play_tilde_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 *mp3play_tilde_perform(t_int *w) { t_mp3play_tilde *x = (t_mp3play_tilde *)(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; size_t len; if (!x->file_is_open) goto mp3play_tilde_labelzero; if (x->play_state != 1) goto mp3play_tilde_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) { mp3play_tilde_cleanup(x); goto mp3play_tilde_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 { mp3play_tilde_cleanup(x); goto mp3play_tilde_labelzero; } len = 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) { mp3play_tilde_cleanup(x); goto mp3play_tilde_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); mp3play_tilde_labelzero: while (n--) { *out1++ = 0; *out2++ = 0; } return (w+5); } static void mp3play_tilde_dsp(t_mp3play_tilde *x, t_signal **sp) { x->obj_sr = (int)(sp[0]->s_sr); x->obj_n = (int)(sp[0]->s_n); dsp_add(mp3play_tilde_perform, 4, x, sp[0]->s_vec, sp[1]->s_vec, sp[0]->s_n); } static void mp3play_tilde_stop(t_mp3play_tilde *x) { if(x->file_is_open) { x->file_block_num = 0; x->file_remain = 0; } } static void mp3play_tilde_start(t_mp3play_tilde *x) { if(x->file_is_open) { x->play_state = 1; } } static void mp3play_tilde_ft1(t_mp3play_tilde *x, t_floatarg offset) { if(offset < 0.0) offset = 0.0; x->offset_sec = (float)offset; } static void mp3play_tilde_pause(t_mp3play_tilde *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 mp3play_tilde_open(t_mp3play_tilde *x, t_symbol *s) { x->frame_counter = 0; mp3play_tilde_do_open(x, (char *)s->s_name, 1); } static void mp3play_tilde_open_again(t_mp3play_tilde *x) { x->frame_counter = 0; mp3play_tilde_do_open(x, x->filename, 0); } static void mp3play_tilde_open_at(t_mp3play_tilde *x, t_symbol *s) { x->frame_counter = 1; mp3play_tilde_do_open(x, (char *)s->s_name, 1); } static void mp3play_tilde_open_again_at(t_mp3play_tilde *x) { x->frame_counter = 1; mp3play_tilde_do_open(x, x->filename, 0); } static void mp3play_tilde_tick(t_mp3play_tilde *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 mp3play_tilde_free(t_mp3play_tilde *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 mp3play_tilde_setup(void) { mp3play_tilde_class = class_new(gensym("mp3play~"), (t_newmethod)mp3play_tilde_new, (t_method)mp3play_tilde_free, sizeof(t_mp3play_tilde), 0, 0); class_addmethod(mp3play_tilde_class, (t_method)mp3play_tilde_dsp, gensym("dsp"), 0); class_addmethod(mp3play_tilde_class, (t_method)mp3play_tilde_start, gensym("start"), 0); class_addmethod(mp3play_tilde_class, (t_method)mp3play_tilde_ft1, gensym("ft1"), A_FLOAT, 0); class_addmethod(mp3play_tilde_class, (t_method)mp3play_tilde_stop, gensym("stop"), 0); class_addmethod(mp3play_tilde_class, (t_method)mp3play_tilde_pause, gensym("pause"), 0); class_addmethod(mp3play_tilde_class, (t_method)mp3play_tilde_open_again_at, gensym("open_again_at"), 0); class_addmethod(mp3play_tilde_class, (t_method)mp3play_tilde_open, gensym("open"), A_DEFSYM, 0); class_addmethod(mp3play_tilde_class, (t_method)mp3play_tilde_open_again, gensym("open_again"), 0); class_addmethod(mp3play_tilde_class, (t_method)mp3play_tilde_open_at, gensym("open_at"), A_DEFSYM, 0); // class_sethelpsymbol(mp3play_tilde_class, gensym("iemhelp/help-mp3play~")); /*post("\nmp3play~ written by thomas musil & norbert math\nV 0.1 iem graz austria 05 2000\n");*/ } iemlib-1.20.1/iem_mp3/src/iem_mp3.dsw0000644002537200234200000000106511203416311017464 0ustar zmoelnigiemusersMicrosoft Developer Studio Workspace File, Format Version 6.00 # WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELSCHT WERDEN! ############################################################################### Project: "iem_mp3"=.\iem_mp3.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### iemlib-1.20.1/iem_mp3/src/makefile_win0000644002537200234200000000166711203416311020001 0ustar zmoelnigiemusersTARGET = iem_mp3 all: ..\$(TARGET).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 = mp3play~.c \ $(TARGET).c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\$(TARGET).dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \ /out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iem_mp3/src/makefile_darwin0000644002537200234200000000152010714357627020500 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .pd_darwin PD_INSTALL_PATH = "/Applications/Pd.app/Contents/Resources" INCLUDE = -I. -I$(PD_INSTALL_PATH)/src LIB = -ldl -lm -lpthread CFLAGS = -DPD -DUNIX -g -Wall -W -Werror -Wno-unused \ -Wno-parentheses -Wno-switch -O2 -fno-strict-aliasing \ $(INCLUDE) $(UCFLAGS) $(AFLAGS) \ MACOSXLINKFLAGS = -bundle -bundle_loader $(PD_INSTALL_PATH)/bin/pd SYSTEM = $(shell uname -m) # the sources SRC = mp3play~.c \ iem_mp3.c TARGET = iem_mp3.pd_darwin OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm ../$(TARGET) rm *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(MACOSXLINKFLAGS) -o $(TARGET) *.o $(LIB) strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c touch $*.c $(CC) $(CFLAGS) -DPD $(INCLUDE) -c -o $*.o $*.c iemlib-1.20.1/iem_mp3/src/iem_mp3.dsp0000644002537200234200000000474511203416311017465 0ustar zmoelnigiemusers# 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 gltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE !MESSAGE verwenden Sie den Befehl "Makefile exportieren" und fhren Sie den Befehl !MESSAGE !MESSAGE NMAKE /f "iem_mp3.mak". !MESSAGE !MESSAGE Sie knnen beim Ausfhren 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 Fr 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 iemlib-1.20.1/iem_mp3/test1.mp30000644002537200234200000017234510536414324016332 0ustar zmoelnigiemusersP =5Hf,k07Wp8ŀӗBɍs"qF_ܸiW/\dނM6r i)G&gqI$b㕡<;V\'\˧/M6͖%?Wu /xVya." mWw?3c@ndAiB!R IA[Gfh, `W7JxޒiJsRaXgE%2NFBCwC P!t};chl'V+\<K k\VR AO_g)m*NONAfՊq$~z|I.y6Rػ?K,##^P"ELp0q ',q&Њ@Ae)O$/˼"OC$?&Pѱ_JE7$gM:r>-5I܁Oa@I55,rBt`!4ިKM:GV3oR 5+[Gfh IB*:7eo!4\q*s{2̿BzyJ7=YOT520`)$Ŝ@h)F.ƣlv N!͓szAv*b2^ܦ<-s3>Ms=ӅX{őrp@4L#Zqȷ"Y_R yk]D`]+ %s_5Xf咽L?ɗ*Ft=T\mĆ|D3`!&(!j*Q`մ3 uXB#{iN~ۜ7" 27=^c2w2%KFUP5u#C'F9r1,Q M= uI;zS,);R )KVgg g(*)b#2/"e#/4#[j]'x85&=NKwWs 4c!tsp{<ݩYm?owf2c^ b/}jvO-7SfrK\Lr&& iK7h$nf5 v@ɩ3U͖lx0MC^&4:CtT< "R MA[Glie! e[t͓WɎMfQ7'!J#\,2rX8Lɡ3!ʑƽ:=D-埻PI;[|yTugS5#[䪚C/.{Հ.aBii:8Ppc>pJ):7ߒ1,m/H?d R X0cIf *M 5|c.%+=#X<9}Inw]Ȱ5 pYRXUZ뭶3$|δ_:G)Ӳer#Tٔ"Dîcȱ}B ,޶xQ9ntʕ bV愓'^? =>KTY{scng;{tQefRo>^I"R$ =Xgk u'+5npC>lFtb\nܿ<3U<8kPH)AiztMd<᳟J>u'b{~ܣߑhX8Ryga*v4sŴG Q LA M3x ;w[]ֹ Vm/OHrIR& 4?Xd] Ex P)GܛRW ٔpIMِI%-CVh0~fLIOoM7LSB"?QA&2O!B̚Ktno[j p V#5 <;=D.Cx[=/hGmBJ+^2﷫pet#ӟ/܏R, MVl<Éj0pyY0)7@MUt$kJka05.z09A9HGi߫~RѦ~&9Z|Yj B`T [VmK*w?OBӆ+Aenn*s˖^?/$NIcDַoH}h/ߦMnd5^Q?I 2Ҽ˽[PhR.  Zl0eWiɄ[$)}JMd5pawꖼC6GI *(x2` MZE&jajleWNT,NVl(C 0(KWc%. =XuY4 baԓ2Q1JB~ЧBZC,aP$hD%m>\KR5qLL$R[ y^K8hZ;nL! WI+.."YC.[ ,@Ĕa%Ch0>iZ4ooJY!p%pPH:Ӣq4DjP1A\n>R5$.eDm& Jbv'z4EP`:."!9X)K([@/&K!'R< yJ ЁYh>TZ!| tK ).{Mb4ja6&Y yڏE74i*6҄gheIC`I^CR&K&F|KJYUӟMȢF-|"u$ vfEc wEFcRnv4*+;9ZRG _H a%Aej͇0AIJvݖ. 0ŴL)m[hp vFHdx"2ݏ];{`NURjj?dmianםٚ+/d~B 0) ʃCځRz+aj{hTӜ4EH˸pW Ь|b=/ZCDmHig HRN kVgPe)j6cSAΞR7zjP&œa;p$u(˺Ί˒DҤ-'Eo%ar4$hATRStZ ߫ƁzR0[w D8au͘?+/{?꣟w7[̵5Ϸ3۶a\~{ RR {J 2j j r9.Nmb.Ŏ%CK%'J@큭/xۭ2aC: @g ajau(\> /}QSi]Iu`I1DD%CƜ@u%lKi#X1  r Tv:s3`!ַilhSEQRYyJ rX0p'i[3FaŦt9RVE\eکäiaԁ" +~EHv†"ljraGBtR5RJ8#"Ih L|pU5'XIn _d^j$/0E='z@H,@"] @Ϲ!XuI)=h-EQ7n7sFY` Re iRl=0i ɜ,RQ2iEtX5Jrcv=A. Μ4آfpE(z'>afT3J?N1†|DdOS+#f ͉J&B 1wH DJQ2֒Yc19.Ìb%JD:=T 0ITtI amhڵRiyL p.P>prF@a=@K  \PD0s5 E@#CKiȴ]PxPX`JgN&ߣkN'R̉ |kXgIRI"mڝ yf`i3_i>-B2РWeQRj7 IˉLs^T1w ;[^oDӰRS ЉWMqZmExbԐvթb7~$(N!JRXjkiR̎ kL %U jɂC4^ ]j5@ ذC` *Kp2rOB_@Ra#/6ʓ|[ÔV&(3C˧b:GfgNӭ࠸\ "VK5K4e=Xab ;J+(lDLY , LR̗aRDEjErB4 wci֑BE#F.U*ʭMUU`5,azE@!.퓾UJ|^38>kX0 ՉdDO x^Em5zJVZ4x(N޳J)7v"t˵5PW؜_?=9,{Lx'R̢ DkTl0fj"0;'?7vs8diop]EWI,N37.08Z+xhxbB@!q"~x K'R;cu'2zd̺؞HKӎ=ksWLv-빁(B@j(pcXYI s<VjoPiUR/{SΗh8ω3R̦ sRL<i\AsDF0G kD|Uz^`ᄪ .-Z3>!8qNփ=x[&uEhiQ , z MRbżULRR̪sN,0gpQYO$DiB?ISv -rk2r:"QWZrރ{?޻Mwޗuީ/9XOŖ$ ݻDbB0b@;-F~)X L&Y# k(J< -(D N #=R]cvK/JXX}o|SR̰0wN aŗ $ d0;H@(| lV\n_d[K]FV+!Y|8{JYPG%Gi}cix+8(bGȷ2ل'Dʂ5t3d[+:tC ?ߧP5SĘ5#,\7Ri"OwYS3MhR̹ i\ b +M!X0 +5f @2b5u[eyV~ɕiA6V@ߤ cB (8? ; SPKBƉblj%H aN!tsPH!?@^,rgZvt . ?Ff&7fe kaRF5W"^R̿ VL= c) ASۥ9_ 4 `b·Õ;s5zLZy-q&f-Ƽ֊ܘ2'$8^bR}nij)QJOmb imm$x:Q0x;gGceTY+UHIM[Oy8Iz'!+7"(ܪ{v4s= 3G{5R ^l0Q饧I/IKFل=ɋEmn8tۜ D\a`')B.%`5 |`)I Ol#KÒͭH;| |Ĕ_8g __6{?n Z֌E&@8 ,V]9cĺ4:\HaD5rfL+Nu3#{M[ԊO)l"])! ] ^%)nET2$6֟>WoGWhw{Fh[bmbf9؅_VyWj U^{l%RRLQ:R2sJ,C1A@2!R} 5o菱c ŮQڴ|i\C7|$FZ `,k iJT^Nnyre)AgG%;2@ӥdGDڦF2ȅ?dU\6 3?,IOz.V/OsQc}RN qX T QTnSܵXp8*NЈ~U'P &HUWΔKnuO{7Bxfmw%zصhz4T8p[.ޕlP)6UU J:zc.%- m#5~23>_%Kb~}o|2Bᨭ4ũ`R Vl0q k* <ܿ aA .%? s* vP;>f˔쬦2ԱY&P@wYWG&*"6 өs XYYo5p2G1'L'JȬ[+*[1œ6HfԆk;1^b8AR惌5r@bR>6"C9NOn@O4(e/vxYxf-fهUifZ $o WXos=Du5R DuZgo jI tեa @{ BhˍqOKQ Vlw&oe.J F?mbS'y%:VbX(rPGF*7Xa aK,$MUqR@V4Lf"(xs#Q1xe#fs"/+^LI] JyR $sVl4ڲg_Rwߕd~ܓZLv>~́q. e6[-R Ug^goS"8J)6gl'r0q8TqaكH ?{p;A&*quO. Е]F̽.EH62M.Q$gwV_[*'69\K '< S@hm!qhAwUS;|zjN|S/Cf R e]GvAR 4nb/n%WUT',ء{y4Zct-4&26XU\17(GZ#*4QUCP5fݏ*w~t+.\i"!RUAu ssTT7Fu0&V?&mHp$դ=2#%C4Y4R i_L,qPjZ&Hd/eRȣ>]'t:%Ze rqAWVמּX~,7 r$_ʆ>АWRR?f9xI=/9%a)G |J杮fdV68}S?$ŅJϐ+iTBeb08W O,`D*17VR ]\gp ?ڠRZ)t)Dh$fɃ*8|˿@깓?N,Q>,ϿJjZ.+2-tE-wgGX~/A=5Lv:·t"\Bh+IHYz" rH*2Γe@s >ǖ%F>Ρ|(HIibR @P k*MyjWx.o P͹RFMZU3;Fd1=_d#z#]>T5o"""`wwiOQ*D5wMU0a0C(`So YoXN1rtWujSLw> P_^&x)U>,+X3+R uP =0*Mq[wY難n)!PdQwrJ }ڽnKul{sZ EI쟿fBݣ?*TI PZMym ,}&nR _Vl0rc pH.u1BǒyÃp^zҒV֐^%;CzxE, ܜ5NZox_}42R#ʻDR?X%}-6g_> G*{A'=KUֺM %7j?D3) ց חT'0rgu6;yzlVߙRtN ) q b$0BPҰ=)'\ьSǧ  lXGĹ+٘u<~Œ/>T_-?mb.rqV,VH7Ӵ-dq&_X ^n~5R%+gEՖ#!M䛎!U5p)3_L骗 .lOR TR <,+MTg0<OZ5B8Gt]|6Mi%({vj}I&JY$ЌeBy< r XVz"vEa`4K5+Tp"e] /%}6~r ř\JOD$Hd4F15L8`ʹk$YG&dR T,R,k !\sWK]1xyM٨6j c#g.2H.sED}-{K4\J|\@-~ [c;l"S2:Ek+=U(]e\eoH #U0T'*ܗB4QB6Rţ aN-v%53#=R1CrPv5NA?R䃊R,$vAA%p(BYem:)Ɇp:i:mjB0qvDl h zMcf!K&`vm{7 OО&OHFk'ga 4ІiRaL'j HGm!fF9nz 貝i .(Zax&қKx.F#GvR惋XN vA( 9%/`PBkIHpQg>,7o! q/l kwPP:,2#?G潲?]܁]AOh/Reh!<huhjvdD3!rhA1CU.B`j 'YAE`ƴ2<7l w 7ؽRʐP vAiA!xlulXw @]t zFpln$Ngb26bZuhjfBKY{PE5>y?&#.mzՍr>#lfț]W7rB| (200%lds Z#C\tشSUt%M 36j RE3CR P ( Y5a!4̙$PorMޱo6\m-bGg^m'0)@7PyM$e9?s[8MXX;"! S=|_{aX0E5p'\kNZ+M}hj*IiFeM<'|nEk&qfz|R TLˁPUP@?w'\!(( e EiڇUaYFQ2AfwcDKFR-&eQFa2Ѯ۞DȆqnZ9(# l]|Wp\%Y^yբ3vVcnqڑ{L*.(dDR}tR僊TP qj͇qAsiW0cƼ'1owUJC8$ _!yX< a&dB<^Z0Rh rbCj*JZ|ҙͱc<US|BAR(Z uuKerWe…T *2xlxpM@ XOzLI-Vl/Ig#W)ERL Wj:P>R{~[ZNPQ 4 ( T76,T+d u`KMQLߟprx˜NʬmbcXv{#~.8%` @*Os!$62H;։cdQu0=RZEH?Ѫ/[T"tj3I REmRl= Njxb?Mu*x9CJV+5:!WK)t>S͔.Φx4#t;V*$@PI/:6-GuH&i^_\B>HM0By+1;-J`zo9WYijJR5R܃TR KKjVLL ,ѤI!mY$e}(,y2Y@hq˱>e† acdg"q*X.'v~TpQ'D쮳>瘟69HVŲ6a<,v{Z#[u..Vȣ=^qҐQ 9YzwfL t1dBJXyR ,Zgp^i8L\ӳBzdX I|#4SѷF .ZMncuN@h`pPdybY$]΅SZ;KЎDKAlj Re9?YK|? RFnaGLټBڊU5+$;.qFeR(dRR6Um %eu.a,KlI4t$&q{-SX[M=iR0n6vG!u&yBֿvƄ޶W2vy7NukR yP,=0NkLP)ۜc DZ{"L3!L B+ *v{^J8` $UO3G%QN"ߤMJ:^K RbBq2B#YewfC M)17pk-,St يUv1PsO&Jƴɶ]g R MZl r~ ,PyPdE'OlF""o Iu͑J*5zQy]4 [\Dȡ2F $(9QE?#x}rЁTQP  Q FgqE:$ӣ|إZ ܒ\@VCbwt>F l!rS#a@>9 ՠ2LC !Rn>?VGAb:K}DI}]4H˖ is)}qб\NF!tʵ/%ϿdG CN†Y'QrR A1Zl0PGjZ.LjCW5Nhwc޺b $P\@ MkQTQ:I&)mt1POXਉ烀/c{dUG=2TaE `@dS P&Lś?~4E34Z,Ojp; 8$ V"E n1ix:??b/nR ]%Vl$rBӊ3ZL=h,1'GEY0!,LY8?'?othB2<,d9$Ww0+&KrYyiO_Jtޅp,JN#71o/i(hwRTKṔ ?ɑ:.SǨԊ|Fcy(x4W@аtXR냍y1Vlr\ * ;1ًiF_%pE8 fPFE6;dҢ ı7i=*J6LnJCC0dͱ*ƌ-@RPM=sd;tq;4rL!"dT=JǕd]`5,ܽT^nbFa-|=+^KhUWb-|eu4&Z{  1:Tl5`uS"ka)LG \O :d&14di^d38@:W  e1ǃc8LH8RlL 2X*$xh?wCshx&#i50Y,lTlad(aPs Tk53[ =C߳OԾyohD7|bnـF#ȗ[U(Q0j\F@+&ZEbqu/oaӊ^Vsr<" y'Nn$ <ɴ>#KdR}NL/]*8:߮Po9ѿ5hzG;j[gʸ-ʔ#ݽ _=RZz=8y)7V˕+{a%" pj, Z4%" čq(L{َ3b2&f,bx8^"|bQ?q+oHEDH.,q@RuN-=]IRVvМ'Hb*PL CC:)E{nHs-:8+Wf`JW͹x.4V4lMl$zr^bAZ I@ ]sMC;OmrWN=CR2Tbʥ/;b)0ݨ#jR wL e+A(k *iev~N{C_ c?Etl!`<2FYJ)9U-Ga1'wZq4 iH~ߓF2 Ԥ![L+K"F E3Li4KEfxq{O|O/-;?ZS{3JD*-^:e>RgT-aQ\0>i!Z MKDq7f7R]H\_G},-iI[+j]E{-,4>>/pLdB%X@A=ogεeğ"pJﮨ\EoթTAUh,yfT NDptyO;>H^6zIRJ +?*XƄD9a_*gu#BDº1gɐ ptk>*1A@x*H FQ;f`R74М#3VEiy/ RnĤbI[/p yH1,`d*SLK# D9A9o){٬sHhY_L0&HbAȈ#c'ҕ1R#Tmnm5_Dt"%;MRR ;XlpQuShmb(B/4Mײ-m9P\P^~&^ F Upҩ1*Dꁓ{6bVbrƊzZI9̢3SjhF''_YP77EśF^^=')cJֵ'Ū:^s6rg>.gZNRsP-eA"*IY;o{R "o2Y2jO @Qf@e($CG˟Kl[Rm3/;mKN ->va,hYS?%$I~*"ւ2H" ŝ§""/;8$]K- c-UWT qsSubߤf e+/ 9zL_#֭Ҫ-9n޳ܱ 2lIRVJ3؊8oi+{$ﲧȡ*0*VITd|J;-۝qEXZ\R $P <+!Pw:s8:)(T= Q'^rƬh! ~0t\%h<iۇ]f<zQ&%%\ztJt!t-S Fb .J ),y|J 4ߜO7(k4Rݡ`,1$BgCp 姌R lyP iAU+ d\R:`)6^d֪̀q0%8Ijb8J9wIz#!ЦN}}e.Mqc&mvA6 `REysUʌG&Ttتy+\1l.}QgLx2t)iV#cYyxKTX-BR ЇP dY "vH.:ɯ(~S=XxJ"{|%d*eS1HV&cadǟcp_PhRuSi9!Xv Vp@`#BrA2Cb1OIP? 1۹+D%R DR-=M/rC8#>6W1cXq.-UH-cYf>jV^;/^KtHkRP| d :[ǎƵBgXǧ{*!-ْ RI4,(&i%Y?"ERKN"dA8G)`Yn/ꃼےek*Ǣ+I (` Rナ8R {}iV)@Ӌ)+$PDsR-=Q*VHiGyĻ:?z*+e(GP0iB`{$BcBE2 2n*%!$A"9mu`ұ7Jq^j XÜRVM$Q~i0mJV5[)H͋$Y34CDçEa4fqv_lI98z4!g2x],v-[V1^KXU?5>,5$0Zv!% g$dfo"9,i?` SOǏ |Pu q,ZZOXF0(a1ޱ$ꋔ1[v uWLCecÄ_Z%t0Hlu:) t$ It5O1f.R烌xwRMaY*A0*VZ?^ a> m}!%I xCFrʄ M@ +]b#D͜a!F]vj[FU徴4V ʐ!v,Y.juVqFaQ5'u8yɝ9;KAm0? 0D"*aj>R背RLcQ(_XGB Xz2K9Eۋm2+Y^(+s/ Ea۰yR烌lN aKj`)nC 6`KSzud{ pVj H~:-+-V x˿ 0MʦFoҹ)/71Q2^"hճo'^/cuBciR馡{:1ɷ^U5]4tXWp`WJG5jr2_6]uJQuf?d̋k!1*_I@t,ɥJ ۀ$kw3R5} #mH(you`o9>}+Iuvrl.84ŰR LiV-<Ѫ%M !ң7V,ZŽ۵'K1D0Dpv'[Vzh{"wecg\VBDZ]ccX=BiX{z;_ X$&вV*K@)!TѡՕ#e~X_Aw H#Rg d4`RCJ:Jk|nS[(:U32轍NؑP)[CJe <?" {2~V\J//3]7@1Q/=#Q6wjyB]M}K4m4汶 hRP-aL k qQmk* $) 1 (L\x=fib=.DAE\ŧN݌KV;cY^UVQQ|>Z{7]~ޗA2bD'}5ml DR\AA6։S GsG}ĴWŢd/rrS}EЗ9QFsR烌N N  {**)UďϔL2q÷5+3-ij`lq2pt¶Xғ㕮SQ1,!SJ$Ouk#@S4Ûה甎Mv"k^KrLvP dh W*ʠ+iEsFEh/ofWKVKMR`Tm$tjͦ?T+ar`42ym:A|^.FѲ2 V&À]7" $$NՄ Ib~ךG% Uٷ~ڿL-ڟQTe![',z@ډ Bz2Fνٴ9jh~;z!l22ZfR܃qZlҁL0t΍3 'T5-|9Q9Vf\%uBVR')jd+F,Ue 3vp0=U-M-ο< (DۤpH}Hg(SVfܪ{;fdoUݾ!ʏH#Fkv$ɬ!vw*R mKZlPtESWE3RX6`g0P#v,!D"b!rlď`r)^ow0Ql/AJXx`8t"8yN٫*a&"GY2Ebt)4(2#DćirxfJJ\?~>WY)]-<{i>,WGRR-KljABgAo.0XR`|LW1Z&p4+/.PT cjw^Ntİy0;SHYY*X15YB@~aP[O򯜵{'l4*%#!oqYg2\$t y=Q{`궯}H+nW>UWR yE\lVA^jA=V VQO @vCH@1C{T&Ba0hT?x)B?hOQ#ؾFgSU ^˵nY52 &SHrY83j!Uyns@HűtzF(të́fa)T뢫hjZ쩖ǫXgzޤR烌P hR kZl$\l x 1 i6̡1d Y&*eu8ЭˈfszFobQvR;8$Sz sk?9+ډ:҇aK-}*:[X*̿$p c<'=]1K'Cjf1H\(&F"R˓ãR +`l$M E bmWG 1rM! 1bQG",fM͉bGHiĽdV&a1ks 8xj/߯,"(QAr(e,luFPjEABi#̇,URLs1v#ˆj\kլx;CE_JR R =+L0) ;Z49*"2*"#(b|!Rdx*FHJq=.!IFHV/LU*i*j6 ef۽žU+]Ͻwy~ګMaȄ*uQ.cP]2'%B`@y1Z^iw-_?*V))jv)/(WR䃊sVM=+AiRn?(Y A\)jK Sx !t,ઘȗdiRXk0#3YF:ߩ9)jHlsuufz}VCH#Մm 9ݪܶ`H" ,+H=X3)ٍ˫j'sJ,E*O &0Ks Jfj]8CR䃋R-aAAH):?-"1*Ad x)$ AഁJ)$q6E>CL\Pؐ Kyͺҵi^'{8QrO\P1BI[U:IhiR*(a npDGK4OJ&хRawYO<{ס{9coy l{HjR`q^l=gA 5Ba4Ek<{ RD")sgJZE:lwؔcsBJkW-^L-mI>VyԶE/Lgy 8 Mwg &T>d|, Z *uPFf*Ũ은r1sZ)u- "Nі8sR @s\liż1(T›进_s~P!6!1cnb#u$8BIiKmxDJ RX29弹fjֲynKi]Tqp!Eר(A|e%dce1m)ҨfT(2aW12_ф拙YHKjevJ́ 􉽊R yTM=o+MN3?B" L+Jt!1+ aͬNw9.;b4;d7]ec ggK8d H¡:ݽG.Ҍ-+k 1; FNj˜MyoZ1qyT_RnYC꫌fZ7ly-)8JI;ΖR惌tN OA`ɖ%9f~^pSn,(- NJ'h+} "BP*™e6ҺEx{bA9YG@1MDB5"9rUu[U<0@1'8"&kQM38$5Ajs|a#P$/䙜^ Oa [ d(YX,lj]:bIH_)R惌}P-h9WM}*9-Bii %|?؛Qx:S16Gg{+TuKR U*e@}zjGx5˾ȲZ!+bȭJ64 2WhڌM.sO.u3t_znUU`OgWknF)1B6̓2YR Qg\l$oAXɗ؇{']M]Qr>ח6>ް]J@S$+mkTȸ9R=u|?/}IJfevʔ_ߵ~տ'|v׷:%6"34 ;2]R-ah @|^tj"&0G$Sj[56d"ۊBIv2yΥ*'!R}R }P-ad+%zklIYp %I%$3"Ti?ъ[N|+`*JN-D5`?zQ2K\Cuwo_SU=`9UÜzALyi! 00b5OU?Rx:azf[I(D:/[^( NAHHjAÀ'g';'w+YWL+Z//GԬR a`l0I;jŗX+3֎%s2 i,2#MA-h`ux, ǶXQJ4ys4\fL8E^ZeIV;>v )Ӆ^X#5jn&ä KEHsVXm{[ *j@x s/OZ/4ea_KH֓ΡRg\l0IDlg7%D#+KQPBu%3^p(aYtd1/W! >+Ujކ{=4{YRqCNaIZ /PEK86A&ӀK)'[ 7Jw S4#%N)[6%Rt%=^aR -c`l0KIt*=*JG;|5 X2:%N4#!B .e"⥑B,HCVlӻܛ "3|׾د"&b6d#J׍NƵP4!8/uR FEzV'-ٜ K¤x؊.P_yȠJR 9^l q W+ jdA#~!\L0owEJGo0L3hMɦpjuZPt"R 3mPt̟K I lڷ'sb4%5 ڬ(]I#J'7p7I3Qe$)wl.tz,);;z:n)C*̅L/ћ%ػ^`9&VR Eg\l$oA:jxiowhBSmM [IC/nj?ɕYo5Jɘiɳ] 3"]!r]r/>y=%}ؚ(`ѕ.eJd^՟Hc"JݖX,c8rtgKfWz2TZ76طiݑrR i\l0k@lI_wmp`[G{~q֦$@ !4RRlS~9Ie(AX sr4<8ld+BZ\N.CكзGN/ˮ8l|Sg7 I&9wAeR ̳bl0' pKlo 8,4D:eV5=u`{or;bt B$k7V7?]rNt*;{yפS;Yߧ F-QAcU⁋f-D+(RJQ|EgE$(NLPj9:3;rl Z[5]O8Y;?R tP kM ˿AX$x+wcj*bR915uYuGDNUPPfO;*[.cl臻_P[}(ǕnO;ڧ%\͡Y U_a3Bе(X{3uGY1f' hH0S16$B**ͬ졩:")f?ڍR yXL ͔!?+zΑ$AACAau2$4܈8+@X(܇H/K`~cFpnU&!72lsY? 0}Oko2†`( F .`(DR°u@P禝暐E(LhY[wkSsQGR h{X-aͤ!*~y_쟅Y<"_VN2:.ͥE 'R僊ؑT-#jE,@jdBT!Yʪc-RckSM&ko2ݻ;l3"~3b:"hjUӯlm 3zUVuC 04I@lb<@#,܊$BjhP?ѫ6, zOgltiR^B Ged!`Eapsw3PH< VAhWz5BfXq!xvyt X>޿DAG) oR tyV-A덦 joHY4x ,X}|>UMDgc)WRJ`!јTfSRtǡ vKSu"ȹ]w6ji(h"2zS,LjT hFcHL*0d=tDp "]GǶY7Pf좟m?R \m$pcMhXob  ;X iQ@pi[& 5 sd S(~E&Û(r3oSJ0W!;zŌ{{톷}ڊ 1XE 2'5?JpJ!po0^bgpUL]} :6}o'R R Aw }PHp@Q)?H% AAEG!||,2b+@O9]C)jX4aVFsURk/j?*rE0 F&夀-+k@?(R8ؿF6*nެU/w{?mwsY這yR胋R Otp}2+ xŷ*2X 7$UpYDArbm`'8jQ7Gw : z `5G&]*\R9}8i)¤bb!5m{J䠘)UY]S/m̈l}RT-OA|jA맠27r&Am4i&*VRʑ筈'FۄS^9]X?Vy:H/?N ;:~ߤ&9AgžYW6a28"re͡FXy!e>ȢdG#m~')Gt^ݿR a \m0*A諺3* }+ATAg% 3?ܖNҨIXH|ڞps?lFQwgjB=^*G':S>? a; xMMpZ)Ki@ljewVKͲf d"Ke9lm3r*}WS.5MR k^lZ BjE\Dlx"* qB+Y+B7Zèt(faq^WIIv,;ݺ&"`ή8hgJ>")!%aGL9+b*9/Xt90O/eIߛ#dvW{qBv TLNPd(RꃌYkZm$k!̉j(nY0g 1Oyt1w`m潁am^WV`ޑak̢=7;ren^sš"W(4$9b6n1 Tef>#тBjX NӠ d51Uϩ%QP)Iv;6vz-OrI<)T,""읨C|#xqqR [ZlOI{*A tIGա.IJ3X JU3n"Zhm9mgi-BHA>|c _8ʦO,w0NUoDžLLcꕹ 2E LuYBk;N+PԞ&dӶZ K!lR ZmVA)~R]D\%0PՀt o7V[ Z~Tz2))'c_f{U(c4ktOMU˲%]Ҫ]V]ZeڙGD..(@KV 1IsRqլPؐ o}С u:TKGװب AAĜZ$J1R R /͖ <Wb,:aG0oL%YH zǠ[]wZ.kU45Rˠ dw1SU;FU-,U6dvu%"컟*kS МBdChtTjQ:3{U\bQ;4cf8Rrύ65|A#,*tR }XM1.$ !YGH񩨸B#Ic5ND"6LDbM 0eh(8rܗ39ʼs( bc#'hIxzDQ] 8$\ǭT9 ?)tk a2˳Iip; ug31uSy5|h\ MP9ԶU'GA>IR k\l1 ++] !wܨP mF$`,L* 0I#(H گU'n8<6wY?97\n,rUon">[㖑R%mrE6TtPJ,nA}I}p@E'@Fs]._=ա8S~Jp~&9RナuXl}){1ˠdt:2毖ԄหvkWtk@xsc@) ~!G* ɀ|fꝿz[ǹi\wkށ3 %Mk)=b)ClK7Rw ݞ#$@U'+RGW\H4δ;WS& (ʙwi±h,0@&,1Kh[+̊U0@hfKeR &ƊJ7R wZlr?n1 *4<Y="06Ɇ7͐Kcj/>HI6Pg49WsCՏbQX62+,Yzja%1r1Xd P&[EWw ܧq47&pq,D30* b-R僋yTMAjxlap$\q)1xh1\B,쐑}۲-v Di.(׮<%:e~ΰdjwڍD(`.%%ez=29GND94p,ң@UHZD^(p^2^RO,g \OgZ(A"T!*¿RナxT-0qI JH1#i0 !.iDN#}@‡萠~!T/r8;R[Y"G7Tz}~2P4tBkøԺw*u<W!A>x~`*zۊSgt9Y( FdW iRdwt4dc"hRwP 'ŶЎշI>'Ĭ?&]Kج I8 6 Q&_K!Nn\ 5 buT3L#>7RMƍX_)qUUXăLJD @\T=<^YBq \īHA>&BƟs'^c)L]ClOL|FR*R @wT-ejͦ/3o^΅f@>LB(# @uw `"q,y 7E&Rz+7aݡ0-9c .:{չ x8͌A4U$P `"A8蘬i쩥8f&/V.;+ĸmak@iknD~ʖY}K]Uie2$4 #z"owgYdrjqY1HNWp"(nosiYaQ#cRRMM]A {$K,vF*-U2}oi~{USNR @uXm<{PaNWuX)/yӨ $"r.4=m5j[,1gnf[Jh=Bm鬍N@KD*ly3#OR R + !Kd HB@Ȃ 4 ;=ǁ9EQd-0P iUn>sdOT-Nt̬Q*4ikؖDPz!DӢvԜOUvA 74F!>O2(X~ۅoYzr:< ,*r?& -X^eVxR tT-A+M *G˾o0Z46afFǰ,k+IF/x~$# 'cl V<ҭ]o<̺ZnD0;i%ѡh|n5t|8  1Ma)ٳIT`E DѲ#cKQ0LzR* 1ݎDlP*/CQN=a|h]s1# R僊TgZmaM0KVU!0Yq750W#A2L-|/(N !65'+y0]s2k{3ޣViBY2q 3>VDDžd>͢sSa/2H\KmXs1 mynålc̨BYRqVL 0 2Шs+J-9J< ԒQ` b<(SGqN錒-F $_JUXU89>}BH-#I!_ݸ{^ց˅/P#=`=JW-M:7O~x^lϙ)TOLav;ù=2k,R tiZl'8V~鶿~r$)sc2 #!)&"r(SKVnj&#;"nXY|Q&7,Qb 59 .0 LsLCCl257Wjc\dN9i#p\Ly[$ʑT͊R䃊R-Q})E8V_MZ b49 ~cN(++$c,m26Fh뉬 3֘Υײw֛?trA8R oXfe UApWzf4 ȍ-ƽ, ..B lmZ'& Wec(.?ω 2#Is aS<&=B\$5sMW=uʹ=a_oay}3yf1s1hIMRvzBA*ݡNW](~# HR +\m,q ^ꅧ8!ՕZc@QM&*Zr6 aXh\*Ie9hCp{x)8}"i%H))N 2#"Dm:@gtU 2%FXf(5kL%fR "TϪHsDoSIY$_6 JB?RJ\ySn]bv c$v<()E!_<k>潘k[>Oy R q\d!AckM0P~41S  "2't8@"EHEkj"D'(BBY2hobnVEUl̛ 1̬De?[ -hռkڤ򶗰f,4)SpY[&>DGL:0.\HU/ʷ$ďܺh:"RU!eP /Zlmi0+ҥ@1HZK9wݵDU,Aŧm9" kvdZw2roL٬RqVEʜ HJ0Ɋ^$tYu? Ʊ *ó$17vXea)x2*fjҟOT;sxmRsBE|l@MRナ|R  *0{j'Gm[Ӫ˙#K$]aYM9[Ͳn6U'-U@J%2@emLΨKúBona'; 1Hiޯ{}_b1i7ڽ36RR-<2IUO -PoSaBI X =<gA=BkxUʁxd,m" v| F"5۵ Ŕ|Evw,!a jm딍#HjUL;ˋ=𾟄vN"gu[>ajKvWբJ4APR{R-uAzIX90TqN7Evݟ[t§V2ehz|&9r+fNˢR%e.[[?O=R@K((h'k@4i yXRdSHC2N{̭{t.OwpbÉOfFRrk)9R UZlOA[Ex?3kn[ps+:PǀZ2s Pbd}e[YϷT9ߗqMȅZgz掲n]9EVA3l*6&3 ?Ϧ( CM vMh5Tkv8&M3Bk$|߿u%}Uu^k R Zl`̈́AW]e罹Vf$H\Cq,hF%A9Y lBQnt,bW*)1hQ͸bs{ȇ}m.؂`# 4(s~I?"pUZyQ׋EF:h>#JiK2e጑7Ɇʚ1U`g8}R q^MbEȗ3*to5leZM(.G8pAu7`( H4ePJzˢept!Qzd;4ǝPĸ0Y?+q4ÆxCgXsJX]S"|xm1gZhY h^)]-ʹpiYuH4έ wgkbR惌`iXl)IOA<# Aa $mw /dWe ʽy0^l'&mS ן&6A*e/"͉[J@L4a]RFq@|I5:F$k'oYI2^CnސH4כ :xU R u'Zm0kQE0AskMl&A&(Qd,P8 9RdZzʜ4| J6:C,[k&m?wKŻ1[.jYF (ȝt#!=8<!>p(=v,:F>jލk^GwQ|_ b FM;+R ZlK]^MK136jۺے%s$BD CS W>ƣmoY;orUTFu$!ieD`q?mXȸϭkm¤8Nq'HfՕ Ί8t9uSI寶[N# F[Vh~*̓bNR(L <́Hɦ RR߯qr7bQHEqӲ1(vTXuqyu+%-WcGO7\|()m(dVQړ?WF>?%[CeƖ@ӱRff04p k Vw4 Zf8͹֌nS7%hm[P!5UTʼR 3Zm1 Wh $+R!ڬO9b85,2 .CU0-ob)BʟyUը?ئmX"T[ʎ߽۹R VlKLz,SZ ro L׫B2R|j27|ox.)R*tv4CS8jOwwA&WoW*ݚs<Ʌ#A|WBVrT^;±ݘh`F֌f5&Y>U?" }"7ȾR"V+&%R 5XlMIJj -i[H0c)Fm:AHV&ËmSQ㫮x{)H:̞ΡnjX/$M|k%o6~dJ@H`au26!.J>hi2{GLLS.kϡ?4Y!g%tͻny5#+e ;'0!. uOVIL?FN'nŒ@#ڳv)ԕ=E{/Do`6/X5S Ȇe"χI m)sn 2iR 9+VlmISEpW+;XΈ}u6AaHq8~L Pr CpCH]UNgE].Nop}0dWnIfD?;kXJ?G;4!0䑫gI S'D- p+ЀIJǛkpْ+Dh\\\+*G͠J“R GVm0kV*(d\X˘;=@OT !EJ ܽи(#P-JU- y-çYF9;,[Wշ׆&=pJަrJLClX%kâgb_g:RhHTQ~=OT».~-9쉅L}0R EXm0kY<7`f1ۣВC0uұG\0JX#(9 JkgoEJ/B4p@@gI2kG'._ a@\a$rj|LJv@d"BMݍ!@p- 3T?|k̮P4eȩw*="L6I/O])7~Z "iJ"n(&TTv}OyH3$GﳼC/Eor w AR yXlkB *0`Td 䛙?C (p}j͌hXa[ʈNW8R"Xx]љS*\r2n S #[JT?BT<B5Ҧ?!RFdURIJAfi ur6Zj V͈dWVJvfZ-+ywsfi`"1QQcR YVm0kKiŬ"49sȫ$:Elw0ճe/g7 {G&X4~,1i 'Wg06=DW2?fh&`EnH#d'!2\h-ԑ?aR 'Xm$kG*Dd+*i}vFS,2} [ctjl\rɦVm2g lfz8s.kM8\o-3ꪨv=FLm'2TBd'w@ϠR+}%qVQzgWdb-R}q<˿.Nb[ t-"Nkf ]XnjR 4uL- ͔q`2vØb[gdB3/V BGʴa]ܚ3#g}|nuhDAaqaa aJOiV5af>Sy!ZNZsvFü(R0drRPHI@4eQ +B?")036ܪMSkR qNMႁMPuCg_*In9f<2ǠGYC4 %@G[XbY=(!FYu; [-:ؾ{n6CsOqZepz.:.xS.^}OH{1Xh=UƐ+%ISRէ J0sdXٶi΁NɋΨ%IR Zl0fꍓ FAb oN!8~]JD V&Y,%GR>3Qć\99909Jt nOk$i^eu~Ҟٕ.u;EμS(l,GRXӖ5iKm`t7`d-%  4]Zذt-扫f(sܝޖR 7YGm Y +M ~~;G_^C0e[ׁDȀ"ȧff6I+r$JQO&H^"I]9klH[so=2}S3i# jرCڜ8jۼ45"4LPv:x6oUd ^}7fSs8E!D3R߁ HX0G h#M!~л_.K GRVwFT2v~!7ۻ4VxW7/.3?ϭI舅k%[X݈qHy-5hdP!C5kֿY5"43p:NV Z&Qr- }kg2W:R H{L-aA,*y7\JDuNvx|dDԸrvSIFW"ǟ_Agw9 ;nG|8_ v5WV;fdquᘲqPeMX[g׵S+T5"O̝b cCI4;DwRF?3VTTpXUh'.774,R8K5Uy"hk:HRmuWk1F>CgLy8|傱o:dFҧrf=F R HyP,=(*鄌-O=P!yb]V(eN"1)@a~*JH (dmdvYCN9ۦ۵JC+naj4[t)FG$ߤGfz9ńyoč&9nD_X_1,O\z< MJ!R JAj] y35.JzpuN^G1;oUMgQ'p:V$hI&e>/"<}bqݫmK],4pf*'.1;X6CiPm`uNdX+gXI"5qcMӱ"Sˑ@R wJ,=AꝄy1vb"n]cOR %]HCeLaULMyڃ!B> wɤzifNJ8t }~G~s^S;ysABZ i*׊1D֏% (R8*=ń̦sq}$I]DjH5XeS.I1R !#Xk,jy,ZʬrΒX nƆ|;ڥ3-Y!jeR3~r[X޸jSAU' 2h ao yV6 unzwP.Z KlֈL|Uj+WmZHX6ёZ"]ӄxnR E+Xgij x`݂ Xl܀h5y YݖP)y8fo6cLڄ !iH\C+5#gSETי^_C]Ջ$fTM(DU9'yMS5{NYC^~ GR[Ƶ>^Ox1 O Xt lt7W&x6ĐDm{~fRށ qN,1*ck(g ܇.ߚ0e:Q%= m1ߠv2#q',!xH8&3*Τ, ̸]<+^ ]Z;7|wSKO=_ ћvspBQvخGݺ 3(Xa)ee2M6R ]Gg!*M yԂ;;ڄwo"sq"Y BM"Ph~ۗ3'Dt q;wpB=B\vH|eEs2w.f覲JC]C$N:R L t*[3; ˷- EtUe[\=>R[a0c@Rz0\VCue~+~ܔ+:8)amJm?,9.K#cB,y %Sl v+~t;ٸiݤsl``̾_?r3F=]:LP EXl gɀ酌7sϣSg֐ R-V (M۱$y\Gb#ceI+اm"ONTЊ\.wQd^*/{qZoZ2@W>p 0rc .teN_M:Ƭz11FfpM0&>{`fZwRR ]gɎ$~W9/J`T(vLI!xZ]x˜2=/3 49{] >bTť"VL兑Jƫh%#ocV33$gR @iTl=' ꝇ gZ)q@Ա [YXsjXnau'6nK(\! _ks)8,($HդbRLjhZܻSe\ |k ,(gA W tp듲+ߞgS˼hM)yt͋dTR J 0vAvk(Y/H/}-6- (!+ep j"'P"d+H'&CAM#~ޙ)$wB]eu_CQ3Xu.1q:# NJ")T|ZVe٣^O.呗f,,-2J_.NR kVlFDn˛2e6H$5nR GVgɕ&!A{EpQI9`~ 9c;zN4jU~>ZmGbƍ]*^T=3+][蔝̄Ft,h,ƒ#dWpRzMiSn5KAzA*c: QeY0(p<{EE2g#wNJ??B2,R 3\gl\遇]zGza#tMSK7@@LtQ-өd7h)CC5C1^,09zJ~rb't⿼*mAPe |y)JB-Pb7]IV(1[#,a A LSԎ *oeH8ĤeT@8mT ؜`E 4L2;(ԐR aXmj&X6*qUB#sO/V0J&B)IfEv!\}e[t,ta\L'7N޵/gl4ȱRCiUQmBrU;&Qxv@NifjāݽW{w_x>'EBTefm#zz뺺;%E6*'{W~R N 0kiFw/cB$}`VgGHِ-U3g?hͪ*|#|vmK S6J(=tVdDIQpR8gTo-Zh{Y&ޖ00@L`2DVF#H74ebbhR}(fgǰRŘwJ Afi,o9(%~ө~2LnTƔ(۪X9k_1E7j;U=.7˒!?4I"czR恌3T0REiy/Ӹ fɺLa(wݷ/ ^ `tNF锭 )rVȺGE{ߙ#RjNCqеyJФA*j9kzL.ժ{Oz5E`g 2$ּ+`{[ٙ[ zD˖(!ER ]UL$r9v~KU6ݜQ/?y#ҹ#2E80>@T-*'D/=. jA1 AnSFH_!Ր\ȈSZ%ū22D oGJaxISY|Fc*n̒m8*)n0gR PLvA'*.)VG\'Fe! #L9(UGLn˥Ϝw`P\?mHQ+w> h"ǩӛE wkub6~t/eJ48"%5bV^2'z$U(Fu33p͜xiC"]5<3RСR 0yTL VC9ipçx[v:ch=h6P: (HVFJRqlTO^}[p-H'0Hy-@ j쨁P2"ZXH#_e`ŝ##\[y)O=\QclGT.#RQgX́`+쨐b Dػ ߭*̾Jg6կ+C(>Q 6V곚%j|',N,8-VԖDv$QA xVn_xɱEF^$F%kA1C=62$e29a1:шҪY#!M;»L.ױPظB[ڄW7*{PȎR 8X mI?KOv@9-]Wla-͈LSCbX_dǯ ҭd=-h1͏2o?,C?[i"t%v XjGRgD|Uyi0Ԣ` 4nt 3jT۞NyKE< 0Ј" 1`5,Թװ?̪dR E+Ngre"PIݪҀ I-@ocSbDY=onH \3l'IxP1b C$hlY_9-CUkn)ӮaÐ2ϊGC3w( c^ xo)dj x$_d=ԽR"yY0ỉ<Ͻ=vYyݼ%'Gɵ(eHBڝv[R yN,A%jQ(fsרRKNٖ.l5`GgaUO̪[?<17º\܈ȾVBaF,mk2ZU@$UPSn( Ae !2PRdkZ&=niZ+ۂU WT fER.*N:JKR;R kN,A)*݆?f0Nhb\t ;YH գeȑ‰fO49Yf؋ Q[@LpEcZ#")֛- 9har.̳*%]ȋ-4|ńx~1i4v#ql.dFmة}Ǔ8LN`9HQR yS_F4kI|&݄QĄ  )v2Y8ۦpv+|wdksq,IBQ0I_6ɶV&n3݌I&J+ۂ#G~eKRPmfݿ<3Qμߨt!P.-3bu>P(GWDHttZխy(R #[GlɎ*MzE7-q aF8I~mk-穞}ptȹ{!9@DȒvۇVGc3R2VsTsEsOQ뿗5- VI._`vrUj<ξMN}sPR-9DAđ&EWSȥ8G4 t/c BlfPiìy6 (53dR %C_Ggi,j-2ś2pYʴ2ۙ{RRbty͹ KM)p݊BH˔i+l!>9ɩez'CGE3"U&%n*I9KLV}Sk׃4D|V2WrND힆p]L3O-7Vp{m5>R hJ rjMQOU ,a6HjQ֍BM6L@Xg7 ZϽsOWVK/MSd\Mͮe cƐ4SmIuմj$R wRL@ni͖IwK]*yc^Y zLGUǟonmX=c\TsC(^| ZUefwZtV*Z`HYϊjg YY.ޅ@m! e=5$tqf~M]/??5ۆY3Ȼ:H#5;QB n,R Tl, rpTvDF%M#-\r>@{NW%))m&ܓ<%2˜~poL7;2T:F\ߝL3DlPy `f\&`;mP`I&/RTjo~>&Jz_trPyD]B,"e _[ItS ulVi_\ҠT]7ӾpP'{XLT͎ͣ);-VkZ~ kYǟj aR.SRQ]YGrɀ,jix/ eZ.߶p\vf&C>{,ZKDCx?OC nG ѯv2^ÎE{]4\2S=q "9Vė5wĘjC)Uzzar -['$vvAMa"TvVNCCk݊}=[kOWټzjn24esR ?!"2H5(RB)oHOV%G?l(2c1*e%?C'1wn&2K^@VgL޲ (֍;.U($ ؈ 0^Pd5R UVdɆ+`iV`:v%F§w@8kk#5#+njs!Tk|PM[JW`eۥ4[ID;H:ˢ!&Z8F"72tv:Q|Z^ͧSq HQ,H`sZ"ۏja[Ac7R A[L4ɚY{/R>T.ԯ<_f2;Ns֢[/<ꘑ_G2? C!EۙCyl3D}""N-|Nj^ },ˏ wy{ ?(W w5GpDS%"ɳ3)O EΏ:ds-R TgN,AMQFVo (3*`H' &0u> 4Tݠ8JV>)TAp_3/.c[r$̊fUDc[T'(}3,&%ee'H{{ pE/V]Zrc@]?/Ǖԟ3e,O!~pΜ#e+u7g?HdIjDA R wPL,|&*配%O8X'Q_cfUIa(_^9OpӿM YC7z uA 7Rť9&!i38/&p"nm=Z]JuGsT]%Rj]] Biuo[Les9,s\R 5UVl,gME]ۑ[=-P AЧ4rX1`9޿P 7г1 )޻ĵ;6޵\BFnEV$G|̩]e*B#RMk3$/?l')v詻.DÂHͻKӕ,/upQ@s=d޷T~guУ'÷s#5.Β_jklR CRp配`vNo G,/f]5!~sdb'(e @.f2T/+D, o$ޮGB+cuD"N1x[jZCѡUvjdkdzrj0E qhqRHeNLp ϗkF}Hv6?$DR [GIMXd ӓv#xT] c_U<<̈j&/yCls˹Z{}ba BKΑQ)bK٭\ŧN8P.Ke5ICbݻAL9{IGPE}.["@b@™\τՖB"*j#d]gސ)>Q_mR Vlmɑ%ꩄ9n&m(&g6/xezzҰ;~q$3 gMsN)`5,TPjH>j?J^Sitr vȋMHZwqu+or4u:EY,Laaw:oPGM2~95SLTZ+kRrP iVmA;A04`\O}iQA.tV;c͑QǬ6qsBW}) ~F(*ȑ[ǖpXUpkBWb4e*_ܙHjW[CLxԷ+[V-Gvr5RB &M4b>Hfܬ 2CV^tIR ?SL0mIC 酇lM4lrws8sQT:=9ʋ ovB Nl.uLra} $n´NvU2"Ǫ%@Wœd #Q=ǀi; : Jw 5b7s4s#By͡=㷟;1BB"9wdbȏ8n>`R LmN)A2"txHRK?R awqe P? Vw`Ms[9赑̍"=xt'qiIL|x H;D쁤Bm:I+ b܊UEp?QT Š>)(LUHѲX<*Hҹ/l$hFlfWUWM 2R iPlifRj5 ѩ5Xm530eT($)\& 120LAME3.88 (beta)UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUR瀌maUL i& 1UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUURe2o4UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUiemlib-1.20.1/iem_mp3/mp3play~-help.pd0000644002537200234200000001026311055052215017667 0ustar zmoelnigiemusers#N canvas 219 14 751 609 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 117 450 pd output; #X floatatom 155 427 0 0 0 0 - - -; #X msg 193 432 MUTE; #X text 228 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 1 1; #X obj 18 245 dsp; #X floatatom 18 303 5 0 0 0 - - -; #X text 65 303 %; #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 text 515 428 IEM KUG; #X text 499 416 musil; #X text 529 416 @; #X text 535 416 iem.at; #X text 450 405 (c) Thomas Musil 2000 - 2005; #X text 498 438 Graz \, Austria; #X connect 0 0 8 0; #X connect 0 1 8 1; #X connect 0 2 41 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 42 0; #X connect 41 0 24 0; #X connect 44 0 0 0; iemlib-1.20.1/lib/0000755002537200234200000000000012243414235014050 5ustar zmoelnigiemusersiemlib-1.20.1/lib/this_is_a_dummy_text.txt0000644002537200234200000000002410531053772021031 0ustar zmoelnigiemusersthis is a dummy textiemlib-1.20.1/iemabs/0000755002537200234200000000000012243414235014542 5ustar zmoelnigiemusersiemlib-1.20.1/iemabs/lp7_cheb~.pd0000644002537200234200000000221511055052215016744 0ustar zmoelnigiemusers#N canvas 350 22 429 309 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 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: cutoff_frequency [Hz]; #X text 86 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 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; iemlib-1.20.1/iemabs/toggle.pd0000644002537200234200000001653711055052215016360 0ustar zmoelnigiemusers#N canvas 201 120 399 366 10; #X obj 1 1 cnv 8 100 60 empty empty toggle=tgl 20 20 1 18 -262144 -1109 0; #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 2 13 -228992 -4033 -34 1 1; #X msg 42 79 1; #X msg 49 99 0; #X floatatom 26 249 4 0 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 703 534 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 0 - - -; #X floatatom 79 68 3 0 29 0 - - -; #X floatatom 112 84 3 0 29 0 - - -; #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 0 - - -; #X floatatom 100 223 3 0 37 0 - - -; #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 0 - - -; #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 0 - - -; #X floatatom 333 182 3 -10 10 0 - - -; #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 0 - - -; #X floatatom 347 301 3 150 200 0 - - -; #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 0 - - -; #X floatatom 356 423 3 -10 10 0 - - -; #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 0 - - -; #X floatatom 120 338 3 4 36 0 - - -; #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 0 - - -; #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 0 - - -; #X floatatom 370 77 3 0 255 0 - - -; #X floatatom 413 78 3 0 255 0 - - -; #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 222 276 tgl 15 0 bbb bbb empty 20 8 0 8 -262144 -1 -1 0 1; #X obj 127 255 x_all_guis aaa bbb ccc ddd eee fff ggg; #X text 70 317 IEM KUG; #X text 54 305 musil; #X text 84 305 @; #X text 90 305 iem.at; #X text 5 294 (c) Thomas Musil 2000 - 2005; #X text 53 327 Graz \, Austria; #X connect 3 0 5 0; #X connect 6 0 4 0; #X connect 6 0 22 0; #X connect 9 0 11 0; #X connect 10 0 11 0; #X connect 11 0 14 0; #X connect 11 0 19 0; #X connect 12 0 11 0; #X connect 13 0 11 0; #X connect 14 0 8 0; #X connect 15 0 11 0; #X connect 16 0 11 0; #X connect 17 0 11 0; #X connect 18 0 11 0; #X connect 20 0 11 0; #X connect 21 0 25 0; #X connect 23 0 11 0; #X connect 24 0 11 0; #X connect 25 0 5 0; iemlib-1.20.1/iemabs/hp6_butt~.pd0000644002537200234200000000176111055052215017021 0ustar zmoelnigiemusers#N canvas 350 22 408 304 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 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: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #X text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 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 2 0; iemlib-1.20.1/iemabs/vcf_rbp4~.pd0000644002537200234200000000162711055052215016774 0ustar zmoelnigiemusers#N canvas 216 218 445 485 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 113 77 center_frequency [Hz]; #X text 167 20 for frequency and Q; #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 text 166 415 IEM KUG; #X text 150 403 musil; #X text 180 403 @; #X text 186 403 iem.at; #X text 101 392 (c) Thomas Musil 2000 - 2005; #X text 149 425 Graz \, Austria; #X connect 0 0 12 0; #X connect 5 0 14 0; #X connect 6 0 15 0; #X connect 12 0 13 0; #X connect 13 0 1 0; #X connect 14 0 12 1; #X connect 14 0 13 1; #X connect 15 0 12 2; #X connect 15 0 13 2; iemlib-1.20.1/iemabs/lp6_butt~.pd0000644002537200234200000000176011055052215017024 0ustar zmoelnigiemusers#N canvas 350 22 408 304 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 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: cutoff_frequency [Hz]; #X text 77 200 2.arg: interpolation_time [ms] (opt.); #X text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 11 0; #X connect 1 0 11 1; #X connect 7 0 11 4; #X connect 10 0 12 0; #X connect 10 1 12 1; #X connect 10 4 12 4; #X connect 11 0 10 0; #X connect 11 1 10 1; #X connect 11 4 10 4; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/vcf_bp4~.pd0000644002537200234200000000161211055052215016604 0ustar zmoelnigiemusers#N canvas 230 138 457 497 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 12 8 vcf_bp4~; #X text 110 77 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 obj 148 130 *~ 0.6432; #X obj 63 162 iem_cot4~; #X text 166 435 IEM KUG; #X text 150 423 musil; #X text 180 423 @; #X text 186 423 iem.at; #X text 101 412 (c) Thomas Musil 2000 - 2005; #X text 149 445 Graz \, Austria; #X connect 0 0 10 0; #X connect 5 0 15 0; #X connect 6 0 14 0; #X connect 10 0 11 0; #X connect 11 0 1 0; #X connect 14 0 10 2; #X connect 14 0 11 2; #X connect 15 0 10 1; #X connect 15 0 11 1; iemlib-1.20.1/iemabs/hp4_crit~.pd0000644002537200234200000000157511055052215017005 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 55 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 92 67 cutoff_frequency [Hz]; #X text 189 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 155 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 0 13 4; #X connect 12 0 2 0; #X connect 13 0 12 0; #X connect 13 1 12 1; #X connect 13 4 12 4; iemlib-1.20.1/iemabs/lp5_butt~-help.pd0000644002537200234200000000333311055052215017747 0ustar zmoelnigiemusers#N canvas 280 180 397 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 164 3 15 133 0 - - -; #X obj 93 183 mtof; #X floatatom 93 202 9 0 22000 0 - - -; #X text 157 203 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 257 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 298 7 0 0 0 - - -; #X text 357 299 dB; #X text 157 246 <- double-click; #X obj 45 247 lp5_butt~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 5.order with butterworth characteristic; #X text 5 -5 lp5_butt~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/dbtofad.pd0000644002537200234200000000107411055052215016470 0ustar zmoelnigiemusers#N canvas 204 221 604 310 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 13 10 dbtofad; #X text 86 11 convert midi-db to fader-scale; #X text 176 235 IEM KUG; #X text 160 223 musil; #X text 190 223 @; #X text 196 223 iem.at; #X text 111 212 (c) Thomas Musil 2000 - 2005; #X text 159 245 Graz \, Austria; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 4 0; #X connect 4 0 1 0; iemlib-1.20.1/iemabs/subl~.pd0000644002537200234200000000170611055052215016232 0ustar zmoelnigiemusers#N canvas 323 149 410 327 10; #X obj 22 42 inlet~; #X obj 35 67 inlet; #X obj 22 238 outlet~; #X text 62 42 ~signal_in~; #X obj 90 112 inlet; #X text 125 113 interpolation_time [ms]; #X text 69 239 ~signal_out~; #X obj 35 194 line~; #X obj 41 143 loadbang; #X text 119 191 2.arg: interpolation_time [ms]; #X text 72 66 subtraction-coefficient or; #X text 72 78 subtraction-coefficient + interpol_time [ms]; #X text 119 180 1.arg: 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 text 166 285 IEM KUG; #X text 150 273 musil; #X text 180 273 @; #X text 186 273 iem.at; #X text 101 262 (c) Thomas Musil 2000 - 2005; #X text 149 295 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 15 0; #X connect 4 0 15 1; #X connect 7 0 13 1; #X connect 8 0 15 0; #X connect 13 0 2 0; #X connect 15 0 7 0; iemlib-1.20.1/iemabs/hp4_butt~.pd0000644002537200234200000000160411055052215017013 0ustar zmoelnigiemusers#N canvas 350 22 408 304 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 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: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #X text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 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 2 0; iemlib-1.20.1/iemabs/hp7_bess~.pd0000644002537200234200000000214111055052215016771 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 58 65 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 95 66 cutoff_frequency [Hz]; #X text 201 85 interpolation_time [ms]; #X text 33 187 ~filtered signal_out~; #X obj 167 85 inlet; #X text 99 205 1.arg: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 15 0; #X connect 1 0 15 1; #X connect 7 0 15 4; #X connect 12 0 2 0; #X connect 13 0 12 0; #X connect 13 1 12 1; #X connect 13 4 12 4; #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; iemlib-1.20.1/iemabs/gui-menu.pd0000644002537200234200000000121611055052215016611 0ustar zmoelnigiemusers#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; iemlib-1.20.1/iemabs/lp2_bess~-help.pd0000644002537200234200000000332611055052215017724 0ustar zmoelnigiemusers#N canvas 280 180 391 460 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 129 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp2_bess~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 9 -4 lp2_bess~; #X text 85 -4 lowpass 2.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_rbp8~-help.pd0000644002537200234200000000374111055052215017725 0ustar zmoelnigiemusers#N canvas 213 130 483 485 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 34 0 2 0; #X connect 35 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/lp2~-help.pd0000644002537200234200000000340411502263561016712 0ustar zmoelnigiemusers#N canvas 285 129 395 468 10; #X text 11 255 ~signal_in~; #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 54 325 7 0 0 0 - - -; #X text 105 326 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: Q [-]; #X text 88 364 3.arg: interpolation_time [ms]; #X obj 19 43 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 ; #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 8000 1; #X obj 54 133 testtone~ 200; #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: 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 14 17 cnv 8 1 1 empty empty lp2~ 1 2 1 18 -262144 -1109 0; #X text 83 6 lowpass 2.order; #X text 106 415 IEM KUG; #X text 83 403 musil; #X text 120 403 @; #X text 129 403 iem.at; #X text 89 425 Graz \, Austria; #X text 41 392 (c) Thomas Musil 2000 - 2010; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 28 1; #X connect 11 0 25 0; #X connect 14 0 28 3; #X connect 16 0 12 0; #X connect 17 0 28 2; #X connect 21 0 16 0; #X connect 22 1 30 0; #X connect 22 2 23 0; #X connect 23 1 7 0; #X connect 24 0 22 1; #X connect 25 0 28 0; #X connect 25 1 9 0; #X connect 26 0 11 0; #X connect 28 0 22 0; iemlib-1.20.1/iemabs/addl~-help.pd0000644002537200234200000000164211055052215017116 0ustar zmoelnigiemusers#N canvas 375 118 402 384 10; #X text 28 48 dsp ON/OFF; #X floatatom 85 141 9 0 22000 0 - - -; #X floatatom 11 88 5 0 0 0 - - -; #X text 46 87 % cpu; #X floatatom 125 167 5 2 9999 0 - - -; #X text 168 166 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 144 196 2.arg: interpolation_time [ms]; #X text 13 8 addl~; #X text 79 8 signal addition with line~; #X obj 46 213 unsig~; #X floatatom 46 236 9 0 22000 0 - - -; #X obj 31 139 sig~ 1; #X obj 46 190 addl~ 0.5 2000; #X text 144 184 1.arg: 2nd operand of addition; #X text 184 264 IEM KUG; #X text 168 252 musil; #X text 198 252 @; #X text 204 252 iem.at; #X text 119 241 (c) Thomas Musil 2000 - 2005; #X text 167 274 Graz \, Austria; #X connect 1 0 14 1; #X connect 4 0 14 2; #X connect 6 0 2 0; #X connect 7 0 6 0; #X connect 11 0 12 0; #X connect 13 0 14 0; #X connect 14 0 11 0; iemlib-1.20.1/iemabs/hp6_cheb~-help.pd0000644002537200234200000000340711055052215017671 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp6_cheb~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 142 17 and +1 dB passband-ripple; #X text 4 6 hp6_cheb~; #X text 81 5 highpass 6.order with chebyshev characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_lp8~.pd0000644002537200234200000000220311055052215016617 0ustar zmoelnigiemusers#N canvas 216 218 453 493 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 109 77 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 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 text 166 425 IEM KUG; #X text 150 413 musil; #X text 180 413 @; #X text 186 413 iem.at; #X text 101 402 (c) Thomas Musil 2000 - 2005; #X text 149 435 Graz \, Austria; #X connect 0 0 15 0; #X connect 5 0 16 0; #X connect 6 0 17 0; #X connect 9 0 10 0; #X connect 10 0 1 0; #X connect 12 0 9 0; #X connect 15 0 12 0; #X connect 16 0 9 1; #X connect 16 0 10 1; #X connect 16 0 12 1; #X connect 16 0 15 1; #X connect 17 0 18 0; #X connect 18 0 15 2; #X connect 18 0 12 2; #X connect 18 0 9 2; #X connect 18 0 10 2; iemlib-1.20.1/iemabs/vcf_lp4~-help.pd0000644002537200234200000000372411055052215017552 0ustar zmoelnigiemusers#N canvas 213 130 447 486 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 32 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 32 1; #X connect 29 0 32 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 32 0 19 0; #X connect 35 0 2 0; #X connect 36 0 15 0; iemlib-1.20.1/iemabs/lp1~.pd0000644002537200234200000000132611120267115015757 0ustar zmoelnigiemusers#N canvas 327 244 383 289 10; #X obj 22 42 inlet~; #X obj 52 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X text 89 64 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 interpolation_time [ms]; #X text 60 8 lowpass 1.order; #X text 32 153 ~filtered signal_out~; #X text 92 192 2.arg: interpolation_time [ms] (opt.); #X text 92 182 1.arg: cutoff_frequency [Hz]; #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 159 255 Graz \, Austria; #X text 111 222 (c) Thomas Musil 2000 - 2008; #X connect 0 0 6 0; #X connect 1 0 6 1; #X connect 6 0 2 0; #X connect 7 0 6 4; iemlib-1.20.1/iemabs/lp8_cheb~-help.pd0000644002537200234200000000340311055052215017673 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X obj 45 247 lp8_cheb~ 440 200; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 142 7 and +1 dB passband-ripple; #X text 81 -5 lowpass 8.order with chebyshev characteristic; #X text 5 -5 lp8_cheb~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 27 1; #X connect 11 0 22 0; #X connect 14 0 27 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 28 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 27 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 27 0 19 0; iemlib-1.20.1/iemabs/unsig~.pd0000644002537200234200000000140511502267061016412 0ustar zmoelnigiemusers#N canvas 320 149 275 323 10; #X obj 22 42 inlet~; #X text 62 42 ~signal_in~; #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 71 128 f \$1; #X text 116 275 IEM KUG; #X text 100 263 musil; #X text 130 263 @; #X text 136 263 iem.at; #X text 99 285 Graz \, Austria; #X obj 70 149 moses 0.01; #X obj 180 43 inlet; #X obj 180 64 t b f; #X text 51 252 (c) Thomas Musil 2000 - 2010; #X connect 0 0 6 0; #X connect 6 0 3 0; #X connect 7 0 6 0; #X connect 8 0 9 0; #X connect 9 0 7 0; #X connect 9 1 10 0; #X connect 10 0 16 0; #X connect 16 1 7 1; #X connect 17 0 18 0; #X connect 18 0 9 0; #X connect 18 1 10 1; iemlib-1.20.1/iemabs/lp2_bess~.pd0000644002537200234200000000142311055052215016772 0ustar zmoelnigiemusers#N canvas 350 22 418 314 10; #X obj 22 42 inlet~; #X obj 56 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 93 67 cutoff_frequency [Hz]; #X text 195 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 161 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 0 12 4; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/hp2_crit~-help.pd0000644002537200234200000000332311055052215017722 0ustar zmoelnigiemusers#N canvas 280 180 387 456 10; #X text 23 222 ~signal_in~; #X text 28 21 dsp ON/OFF; #X floatatom 114 148 3 15 133 0 - - -; #X obj 114 167 mtof; #X floatatom 114 186 9 0 22000 0 - - -; #X text 178 187 Hz; #X text 78 251 ~signal_out~; #X floatatom 221 252 7 0 0 0 - - -; #X text 272 253 dB; #X floatatom 139 120 9 0 22000 0 - - -; #X text 203 121 Hz; #X floatatom 66 81 3 15 133 0 - - -; #X floatatom 11 61 5 0 0 0 - - -; #X text 48 62 % cpu; #X floatatom 163 216 5 2 9999 0 - - -; #X text 204 217 ms; #X obj 11 41 dsp; #X obj 11 21 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 66 296 dac~; #X obj 66 271 gainvu~ 300; #X obj 277 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 341 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 66 100 testtone~ 200; #X obj 150 64 init 69; #X text 93 82 midi; #X text 80 320 1.arg: cutoff_freq. [Hz]; #X text 59 330 2.arg: interpolation_time [ms]; #X floatatom 307 288 7 0 0 0 - - -; #X text 358 289 dB; #X text 172 236 <- double-click; #X obj 66 237 hp2_crit~ 440 200; #X text 78 387 IEM KUG; #X text 62 375 musil; #X text 92 375 @; #X text 98 375 iem.at; #X text 13 364 (c) Thomas Musil 2000 - 2005; #X text 61 397 Graz \, Austria; #X text 9 -4 hp2_crit~; #X text 85 -4 highpass 2.order with critical damping; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_hp6~.pd0000644002537200234200000000177011055052215016621 0ustar zmoelnigiemusers#N canvas 216 218 457 497 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 110 78 cutoff_frequency [Hz]; #X text 168 19 for frequency and Q; #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 text 166 435 IEM KUG; #X text 150 423 musil; #X text 180 423 @; #X text 186 423 iem.at; #X text 101 412 (c) Thomas Musil 2000 - 2005; #X text 149 445 Graz \, Austria; #X connect 0 0 14 0; #X connect 5 0 16 0; #X connect 6 0 15 0; #X connect 10 0 11 0; #X connect 11 0 1 0; #X connect 14 0 10 0; #X connect 15 0 14 2; #X connect 15 0 10 2; #X connect 15 0 11 2; #X connect 16 0 10 1; #X connect 16 0 11 1; #X connect 16 0 14 1; iemlib-1.20.1/iemabs/rbpw2~-help.pd0000644002537200234200000000357111055052215017251 0ustar zmoelnigiemusers#N canvas 361 130 425 497 10; #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 361 1.arg: center_freq. [Hz]; #X text 26 381 3.arg: interpolation_time [ms]; #X text 26 371 2.arg: 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 7000 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 115 438 IEM KUG; #X text 99 426 musil; #X text 129 426 @; #X text 135 426 iem.at; #X text 50 415 (c) Thomas Musil 2000 - 2005; #X text 98 448 Graz \, Austria; #X connect 3 0 1 0; #X connect 4 0 3 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 31 1; #X connect 18 0 26 0; #X connect 19 0 31 3; #X connect 21 0 31 2; #X connect 23 0 22 0; #X connect 23 0 22 1; #X connect 23 1 29 0; #X connect 23 2 24 0; #X connect 24 1 14 0; #X connect 25 0 23 1; #X connect 26 0 31 0; #X connect 26 1 16 0; #X connect 27 0 18 0; #X connect 31 0 23 0; iemlib-1.20.1/iemabs/lp2_cheb~.pd0000644002537200234200000000150211055052215016735 0ustar zmoelnigiemusers#N canvas 350 22 429 309 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 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: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 11 0; #X connect 1 0 11 1; #X connect 7 0 11 4; #X connect 11 0 2 0; iemlib-1.20.1/iemabs/dsp~.pd0000644002537200234200000000361011055052215016047 0ustar zmoelnigiemusers#N canvas 238 72 384 498 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 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 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 text 176 455 IEM KUG; #X text 160 443 musil; #X text 190 443 @; #X text 196 443 iem.at; #X text 111 432 (c) Thomas Musil 2000 - 2005; #X text 159 465 Graz \, Austria; #X connect 0 0 2 0; #X connect 0 0 8 0; #X connect 3 0 22 0; #X connect 4 0 3 0; #X connect 4 1 3 1; #X connect 7 0 21 0; #X connect 8 0 21 0; #X connect 10 0 25 0; #X connect 10 1 11 0; #X connect 11 0 25 5; #X connect 11 0 25 4; #X connect 15 0 17 1; #X connect 15 0 12 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 37 0; #X connect 20 0 17 1; #X connect 21 0 4 0; #X connect 22 0 10 0; #X connect 22 0 18 0; #X connect 25 0 26 0; #X connect 26 0 28 0; #X connect 27 0 29 0; #X connect 28 0 27 0; #X connect 29 0 1 0; #X connect 30 0 31 0; #X connect 31 0 35 0; #X connect 35 0 33 0; #X connect 37 0 20 0; iemlib-1.20.1/iemabs/ap1c~.pd0000644002537200234200000000221611055052215016106 0ustar zmoelnigiemusers#N canvas 148 261 488 432 10; #X obj 22 42 inlet~; #X obj 52 65 inlet; #X obj 22 238 outlet~; #X text 62 42 ~signal_in~; #X obj 143 152 inlet; #X text 178 153 interpolation_time [ms]; #X text 28 209 ~filtered signal_out~; #X text 89 64 -90_degree_frequency [Hz]; #X text 124 235 1.arg: -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: interpolation_time [ms] (opt.); #X text 124 89 frequency-shift [-]; #X text 123 247 2.arg: frequency-shift [-]; #X obj 22 185 filter~ ap1c \$1 \$2 1 \$3; #X text 176 385 IEM KUG; #X text 160 373 musil; #X text 190 373 @; #X text 196 373 iem.at; #X text 111 362 (c) Thomas Musil 2000 - 2005; #X text 159 395 Graz \, Austria; #X connect 0 0 23 0; #X connect 1 0 14 0; #X connect 1 0 23 1; #X connect 4 0 17 0; #X connect 4 0 23 4; #X connect 11 0 23 2; #X connect 23 0 2 0; iemlib-1.20.1/iemabs/vcf_hp2~.pd0000644002537200234200000000131011055052215016603 0ustar zmoelnigiemusers#N canvas 216 218 417 403 10; #X obj 22 42 inlet~; #X obj 22 288 outlet~; #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 Q [-]; #X text 112 72 cutoff_frequency [Hz]; #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 text 166 345 IEM KUG; #X text 150 333 musil; #X text 180 333 @; #X text 186 333 iem.at; #X text 101 322 (c) Thomas Musil 2000 - 2005; #X text 149 355 Graz \, Austria; #X connect 0 0 11 0; #X connect 4 0 12 0; #X connect 5 0 11 2; #X connect 11 0 1 0; #X connect 12 0 11 1; iemlib-1.20.1/iemabs/hp5_crit~-help.pd0000644002537200234200000000331711055052215017730 0ustar zmoelnigiemusers#N canvas 280 180 383 452 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp5_crit~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 5 5 hp5_crit~; #X text 81 5 highpass 5.order with critical damping; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp1c_dp~.pd0000644002537200234200000000221011502274377016612 0ustar zmoelnigiemusers#N canvas 406 261 397 357 10; #X obj 22 42 inlet~; #X obj 55 66 inlet; #X obj 22 194 outlet~; #X text 62 42 ~signal_in~; #X text 92 67 cutoff_frequency [Hz]; #X text 189 134 interpolation_time [ms]; #X text 32 176 ~filtered signal_out~; #X obj 88 93 inlet; #X obj 155 134 inlet; #X text 124 93 frequency-shift [-]; #X text 81 8 lowpass 1.order for filter-cascades; #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: cutoff_frequency [Hz]; #X text 120 202 2.arg: frequency-shift [-]; #X text 120 212 3.arg: interpolation_time [ms] (opt.); #X text 176 315 IEM KUG; #X text 154 303 musil; #X text 190 303 @; #X text 198 303 iem.at; #X text 159 325 Graz \, Austria; #X text 12 9 lp1c_dp~; #X text 121 23 with double precision; #X obj 22 157 filter~ dlp1c \$1 \$2 1 \$3; #X text 111 292 (c) Thomas Musil 2000 - 2010; #X connect 0 0 29 0; #X connect 1 0 11 0; #X connect 1 0 29 1; #X connect 7 0 29 2; #X connect 8 0 14 0; #X connect 8 0 29 4; #X connect 29 0 2 0; iemlib-1.20.1/iemabs/lp8_crit~.pd0000644002537200234200000000214211055052215017004 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 33 187 ~filtered signal_out~; #X obj 167 86 inlet; #X text 99 205 1.arg: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 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 2 0; iemlib-1.20.1/iemabs/lp4_cheb~.pd0000644002537200234200000000167011055052215016745 0ustar zmoelnigiemusers#N canvas 350 22 425 305 10; #X obj 22 42 inlet~; #X obj 62 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 99 67 cutoff_frequency [Hz]; #X text 219 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #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: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #X text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 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 2 0; iemlib-1.20.1/iemabs/hp8_bess~-help.pd0000644002537200234200000000333111055052215017722 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 86 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp8_bess~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 5 5 hp8_bess~; #X text 81 5 highpass 8.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/7_guis-INTRO.pd0000644002537200234200000006063311055052215017161 0ustar zmoelnigiemusers#N canvas 153 19 568 572 10; #X obj -4 -4 cnv 15 600 700 empty empty gui-INTRO 237 20 2 14 -261819 -143491 0; #X text 101 4 bng; #X obj 456 313 vsl 15 128 0 127 0 0 empty empty default_15x128 8 -8 0 8 -262144 -1 -1 0 1; #X obj 354 42 tgl 100 1 empty empty 100_pix 8 -8 0 8 -250685 -24198 -42246 1 1; #X obj 57 251 hsl 128 15 0 127 0 0 empty empty default_128x15 8 -8 0 8 -262144 -1 -1 0 1; #X obj 78 226 hsl 20 8 0 19 0 0 empty empty min_20x8 8 -8 0 8 -262144 -1 -1 0 1; #X obj 478 326 vsl 8 20 0 19 0 0 empty empty min_8x20 8 -8 0 8 -262144 -1 -1 0 1; #X obj 458 48 tgl 8 0 empty empty min_8 8 -8 0 8 -262144 -1 -1 0 1 ; #X obj 458 71 tgl 15 0 empty empty default_15 8 -8 0 8 -262144 -1 -1 0 1; #X obj 459 109 tgl 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 vsl 30 250 0 249 0 1 empty empty 30x250 8 -8 0 8 -184301 -42886 -42246 21800 1; #X obj 7 271 hsl 251 30 0 250 0 1 empty empty 251x30 8 -8 0 8 -147456 -1109 -66577 12500 1; #X obj 40 343 vu 25 200 empty empty 8 -8 0 8 -1 -99865 1 0; #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 0; #X obj 186 375 vu 10 80 empty empty 8 -8 0 8 -66577 -1 1 0; #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 tgl 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 tgl 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 cnv 15 100 30 empty empty empty 20 12 2 20 -225271 -66577 0; #X obj 283 355 cnv 15 100 30 empty empty empty 20 12 2 20 -225280 -66577 0; #X obj 283 386 cnv 15 100 30 empty empty empty 20 12 2 20 -261681 -66577 0; #X obj 283 417 cnv 15 100 30 empty empty empty 20 12 2 20 -257472 -66577 0; #X obj 172 375 vu 10 80 empty empty 8 -8 0 8 -66577 -1 0 0; #X obj 310 203 hradio 15 1 1 8 empty empty default_8*15 8 -8 0 8 -262144 -1 -1 2; #X obj 254 223 hradio 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 tgl 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 hsl 22 12 0 127 0 0 empty nerv_hsl h-slider 8 -8 0 10 -71033 -66198 -128091 0 1; #X obj 448 140 tgl 11 1 empty nerv_tgl toggle 8 -8 0 10 -141355 -82199 -51488 0 1; #X obj 447 383 vsl 15 111 0 127 0 0 empty nerv_vsl v-slider 8 -8 0 10 -150187 -73940 -248863 0 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+007; #X obj 266 283 random 1.67772e+007; #X obj 299 315 random 1.67772e+007; #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+007; #X obj 258 213 random 1.67772e+007; #X obj 291 245 random 1.67772e+007; #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+007; #X obj 277 117 random 1.67772e+007; #X obj 310 149 random 1.67772e+007; #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+007; #X obj 271 118 random 1.67772e+007; #X obj 304 150 random 1.67772e+007; #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 0 - - -; #N canvas 226 38 811 519 properties 0; #X obj 2 1 cnv 8 870 590 empty empty about_gui_properties 290 20 2 18 -225280 -1109 0; #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 cnv 8 460 120 empty empty how_to_move_gui_objects 100 18 2 20 -225271 -42246 0; #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 cnv 8 560 160 empty empty the_dollar_thing 100 18 2 20 -261681 -123526 0; #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 cnv 15 100 30 empty empty empty 20 12 2 20 -228992 -66577 0; #N canvas 177 21 730 638 messages 0; #X obj 1 1 cnv 8 870 640 empty empty about_gui_messages 200 20 2 18 -228992 -355 0; #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+007 (-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 cnv 1 350 1 empty empty empty 20 12 2 20 -258699 -66577 0; #X obj 4 308 cnv 1 268 1 empty empty empty 20 12 2 20 -258699 -66577 0; #X obj 4 186 cnv 1 220 1 empty empty empty 20 12 2 20 -258699 -66577 0; #X obj 225 151 cnv 1 350 1 empty empty empty 20 12 2 20 -258699 -66577 0; #X obj 271 261 cnv 1 1 48 empty empty empty 20 12 2 20 -258699 -66577 0; #X obj 232 308 cnv 1 1 200 empty empty empty 20 12 2 20 -258699 -66577 0; #X obj 339 3 cnv 1 1 149 empty empty empty 20 12 2 20 -258699 -66577 0; #X obj 398 260 cnv 1 1 310 empty empty empty 20 12 2 20 -258699 -66577 0; #X obj 225 3 cnv 1 1 255 empty empty empty 20 12 2 20 -258699 -66577 0; #X floatatom 276 84 4 0 0 0 - - -; #X obj 239 43 tgl 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: a0; #X text 147 213 2.arg: a1; #X text 147 224 3.arg: b1; #X text 63 5 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 text 216 535 IEM KUG; #X text 200 523 musil; #X text 230 523 @; #X text 236 523 iem.at; #X text 151 512 (c) Thomas Musil 2000 - 2005; #X text 199 545 Graz \, Austria; #X connect 14 0 23 0; #X connect 18 0 15 0; #X connect 18 0 13 0; #X connect 18 1 31 0; #X connect 18 2 16 0; #X connect 19 0 18 0; #X connect 24 0 26 0; #X connect 51 0 52 0; #X connect 52 0 35 0; #X connect 52 1 50 0; iemlib-1.20.1/iemabs/vcf_rbp6~.pd0000644002537200234200000000177311055052215017000 0ustar zmoelnigiemusers#N canvas 300 199 449 489 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 113 78 center_frequency [Hz]; #X text 167 20 for frequency and Q; #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 text 166 415 IEM KUG; #X text 150 403 musil; #X text 180 403 @; #X text 186 403 iem.at; #X text 101 392 (c) Thomas Musil 2000 - 2005; #X text 149 425 Graz \, Austria; #X connect 0 0 14 0; #X connect 5 0 15 0; #X connect 6 0 16 0; #X connect 10 0 11 0; #X connect 11 0 1 0; #X connect 14 0 10 0; #X connect 15 0 10 1; #X connect 15 0 11 1; #X connect 15 0 14 1; #X connect 16 0 14 2; #X connect 16 0 10 2; #X connect 16 0 11 2; iemlib-1.20.1/iemabs/lp4_cheb~-help.pd0000644002537200234200000000340311055052215017667 0ustar zmoelnigiemusers#N canvas 280 180 381 450 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 76 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp4_cheb~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 142 7 and +1 dB passband-ripple; #X text 81 -5 lowpass 4.order with chebyshev characteristic; #X text 5 -5 lp4_cheb~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp2~.pd0000644002537200234200000000154711055052215015765 0ustar zmoelnigiemusers#N canvas 406 261 379 285 10; #X obj 22 42 inlet~; #X obj 53 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X text 90 64 cutoff_frequency [Hz]; #X obj 85 88 inlet; #X text 184 113 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 Q [-]; #X text 88 177 1.arg: cutoff_frequency [Hz]; #X text 88 186 2.arg: Q [-]; #X text 88 196 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 5 0 10 2; #X connect 10 0 2 0; #X connect 11 0 10 4; iemlib-1.20.1/iemabs/lp2_dp~.pd0000644002537200234200000000154411502274377016461 0ustar zmoelnigiemusers#N canvas 406 261 379 285 10; #X obj 22 42 inlet~; #X obj 53 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X text 90 64 cutoff_frequency [Hz]; #X obj 85 88 inlet; #X text 184 113 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 149 113 inlet; #X text 121 88 Q [-]; #X text 88 177 1.arg: cutoff_frequency [Hz]; #X text 88 186 2.arg: Q [-]; #X text 88 196 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 154 233 musil; #X text 190 233 @; #X text 198 233 iem.at; #X text 159 255 Graz \, Austria; #X obj 22 134 filter~ dlp2 \$1 \$2 1 \$3; #X text 12 8 lp2_dp~; #X text 80 9 lowpass 2.order with double precision; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X connect 0 0 18 0; #X connect 1 0 18 1; #X connect 5 0 18 2; #X connect 8 0 18 4; #X connect 18 0 2 0; iemlib-1.20.1/iemabs/lp2_crit~-help.pd0000644002537200234200000000332111055052215017724 0ustar zmoelnigiemusers#N canvas 280 180 391 460 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 129 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp2_crit~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 2.order with critical damping; #X text 5 -5 lp2_crit~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp10_butt~-help.pd0000644002537200234200000000314411120267115020023 0ustar zmoelnigiemusers#N canvas 1033 70 405 456 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 96 164 3 15 133 0 - - -; #X obj 96 183 mtof; #X floatatom 96 202 9 0 22000 0 - - -; #X text 160 203 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 -15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 148 227 5 2 9999 0 - - -; #X text 189 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 281 gainvu~ 300; #X obj 257 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 298 7 0 0 0 - - -; #X text 357 299 dB; #X text 157 246 <- double-click; #X obj 45 247 lp10_butt~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 10.order with butterworth characteristic; #X text 5 -5 lp10_butt~; #X text 41 372 (c) Thomas Musil 2000 - 2008; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 29 1; #X connect 11 0 21 0; #X connect 14 0 29 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 18 1 26 0; #X connect 18 2 19 0; #X connect 19 1 7 0; #X connect 20 0 18 1; #X connect 21 0 29 0; #X connect 21 1 9 0; #X connect 22 0 11 0; #X connect 29 0 18 0; iemlib-1.20.1/iemabs/rmstofad-help.pd0000644002537200234200000000137511055052215017636 0ustar zmoelnigiemusers#N canvas 157 156 336 301 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 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 text 215 248 IEM KUG; #X text 199 236 musil; #X text 229 236 @; #X text 235 236 iem.at; #X text 150 225 (c) Thomas Musil 2000 - 2005; #X text 198 258 Graz \, Austria; #X connect 0 0 10 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 10 0 5 0; iemlib-1.20.1/iemabs/int_fract~.pd0000644002537200234200000000216211055052215017233 0ustar zmoelnigiemusers#N canvas 323 149 553 331 10; #X obj 21 68 inlet~; #X obj 22 238 outlet~; #X text 61 68 ~signal_in~; #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 text 176 295 IEM KUG; #X text 160 283 musil; #X text 190 283 @; #X text 196 283 iem.at; #X text 111 272 (c) Thomas Musil 2000 - 2005; #X text 159 305 Graz \, Austria; #X connect 0 0 15 0; #X connect 0 0 16 0; #X connect 3 0 4 1; #X connect 3 0 5 1; #X connect 4 0 5 0; #X connect 5 0 1 0; #X connect 5 0 16 1; #X connect 6 0 3 0; #X connect 15 0 4 0; #X connect 16 0 12 0; iemlib-1.20.1/iemabs/ap2~-help.pd0000644002537200234200000000351211502263265016700 0ustar zmoelnigiemusers#N canvas 375 118 374 493 10; #X text 9 240 ~signal_in~; #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 20 341 7 0 0 0 - - -; #X text 76 341 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: Q [-]; #X text 57 382 3.arg: interpolation_time [ms]; #X obj 17 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 20 319 gainvu~ 300; #X obj 214 194 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 8000 1; #X obj 52 130 testtone~ 200; #X obj 120 93 init 69; #X text 79 112 midi; #X text 57 362 1.arg: -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 12 15 cnv 8 1 1 empty empty ap2~ 1 2 1 18 -262144 -1109 0; #X text 78 8 allpass 2.order; #X text 184 444 IEM KUG; #X text 163 432 musil; #X text 198 432 @; #X text 205 432 iem.at; #X text 167 454 Graz \, Austria; #X text 119 421 (c) Thomas Musil 2000 - 2010; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 29 1; #X connect 11 0 25 0; #X connect 14 0 29 3; #X connect 16 0 12 0; #X connect 17 0 29 2; #X connect 21 0 16 0; #X connect 22 1 33 0; #X connect 22 2 23 0; #X connect 23 1 7 0; #X connect 24 0 22 1; #X connect 25 0 29 0; #X connect 25 0 30 0; #X connect 25 1 9 0; #X connect 26 0 11 0; #X connect 29 0 30 1; #X connect 30 0 31 0; #X connect 31 0 22 0; iemlib-1.20.1/iemabs/lp5_crit~.pd0000644002537200234200000000175211055052215017007 0ustar zmoelnigiemusers#N canvas 350 22 418 314 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 31 167 ~filtered signal_out~; #X obj 167 86 inlet; #X text 81 189 1.arg: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/lp4_crit~-help.pd0000644002537200234200000000332111055052215017726 0ustar zmoelnigiemusers#N canvas 280 180 389 458 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 129 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp4_crit~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 4.order with critical damping; #X text 5 -5 lp4_crit~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/dsp-help.pd0000644002537200234200000000110311055052215016572 0ustar zmoelnigiemusers#N canvas 361 130 337 247 10; #X text 41 42 dsp ON/OFF; #X floatatom 24 121 5 0 0 0 - - -; #X obj 24 62 dsp; #X obj 24 42 tgl 15 1 empty dsp_tgl empty 8 -8 0 10 -262144 -1 -1 0 1; #X text 72 122 % mean-cpu-load; #X floatatom 40 96 5 0 0 0 - - -; #X text 86 96 % peak-cpu-load; #X text -4 7 dsp : control audio \, measure dsp-load; #X text 134 184 IEM KUG; #X text 118 172 musil; #X text 148 172 @; #X text 154 172 iem.at; #X text 69 161 (c) Thomas Musil 2000 - 2005; #X text 117 194 Graz \, Austria; #X connect 2 0 1 0; #X connect 2 1 5 0; #X connect 3 0 2 0; iemlib-1.20.1/iemabs/rbpq2~.pd0000644002537200234200000000160211055052215016306 0ustar zmoelnigiemusers#N canvas 313 255 417 285 10; #X obj 22 42 inlet~; #X obj 56 64 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 91 88 inlet; #X text 196 110 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 161 110 inlet; #X text 93 65 center_frequency [Hz]; #X text 127 88 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: center_frequency [Hz]; #X text 85 185 2.arg: Q [-]; #X text 85 194 3.arg: interpolation_time [ms] (opt.); #X text 166 245 IEM KUG; #X text 150 233 musil; #X text 180 233 @; #X text 186 233 iem.at; #X text 101 222 (c) Thomas Musil 2000 - 2005; #X text 149 255 Graz \, Austria; #X connect 0 0 11 0; #X connect 1 0 11 1; #X connect 4 0 11 2; #X connect 7 0 11 4; #X connect 11 0 2 0; iemlib-1.20.1/iemabs/hp8_cheb~.pd0000644002537200234200000000224111055052215016740 0ustar zmoelnigiemusers#N canvas 350 22 427 307 10; #X obj 22 42 inlet~; #X obj 62 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 99 67 cutoff_frequency [Hz]; #X text 219 86 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: cutoff_frequency [Hz]; #X text 86 215 2.arg: 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 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 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; iemlib-1.20.1/iemabs/lp6_bess~.pd0000644002537200234200000000176611055052215017010 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 31 164 ~filtered signal_out~; #X obj 167 86 inlet; #X text 81 189 1.arg: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/vcf_hp6~-help.pd0000644002537200234200000000372411055052215017550 0ustar zmoelnigiemusers#N canvas 213 130 451 493 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 33 0 2 0; #X connect 34 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/hp3_butt~-help.pd0000644002537200234200000000333111055052215017737 0ustar zmoelnigiemusers#N canvas 280 180 395 446 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 175 3 15 133 0 - - -; #X obj 93 194 mtof; #X floatatom 93 213 9 0 22000 0 - - -; #X text 157 214 Hz; #X text 57 271 ~signal_out~; #X floatatom 205 273 7 0 0 0 - - -; #X text 257 274 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 49 72 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 252 151 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 324 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 40 339 1.arg: cutoff_freq. [Hz]; #X text 40 349 2.arg: interpolation_time [ms]; #X floatatom 305 306 7 0 0 0 - - -; #X text 357 307 dB; #X obj 45 257 hp3_butt~ 440 200; #X text 152 256 <- double-click; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 5 5 hp3_butt~; #X text 81 5 highpass 3.order with butterworth characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 29 1; #X connect 11 0 22 0; #X connect 14 0 29 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 29 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 29 0 19 0; iemlib-1.20.1/iemabs/hp2_dp~-help.pd0000644002537200234200000000333611502274377017404 0ustar zmoelnigiemusers#N canvas 278 100 406 471 10; #X text 6 249 ~signal_in~; #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 49 320 7 0 0 0 - - -; #X text 100 321 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 172 244 5 2 9999 0 - - -; #X text 213 245 ms; #X obj 14 57 dsp; #X floatatom 137 226 4 0.01 1000 0 - - -; #X text 172 226 Q; #X text 14 358 2.arg: Q [-]; #X text 14 368 3.arg: 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 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 8000 1; #X obj 49 127 testtone~ 200; #X obj 113 93 init 69; #X text 76 109 midi; #X text 14 348 1.arg: cutoff_freq. [Hz]; #X floatatom 301 313 7 0 0 0 - - -; #X text 352 314 dB; #X obj 12 14 cnv 8 1 1 empty empty hp2_dp~ 1 2 1 18 -262144 -1109 0 ; #X text 78 417 IEM KUG; #X text 57 405 musil; #X text 92 405 @; #X text 100 405 iem.at; #X text 61 427 Graz \, Austria; #X text 13 394 (c) Thomas Musil 2000 - 2010; #X text 101 9 highpass 2.order with double precision; #X obj 49 264 hp2_dp~ 440 0.707 200; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 39 1; #X connect 11 0 25 0; #X connect 14 0 39 3; #X connect 16 0 12 0; #X connect 17 0 39 2; #X connect 21 0 16 0; #X connect 22 1 29 0; #X connect 22 2 23 0; #X connect 23 1 7 0; #X connect 24 0 22 1; #X connect 25 0 39 0; #X connect 25 1 9 0; #X connect 26 0 11 0; #X connect 39 0 22 0; iemlib-1.20.1/iemabs/ap2_dp~.pd0000644002537200234200000000157311502274377016450 0ustar zmoelnigiemusers#N canvas 269 270 379 285 10; #X obj 22 42 inlet~; #X obj 53 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 85 88 inlet; #X text 184 113 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 149 113 inlet; #X text 121 88 quality [-]; #X text 89 65 -180_degree_frequency [Hz]; #X text 82 174 1.arg: -180_degree_frequency [Hz]; #X text 82 183 2.arg: quality [-]; #X text 82 193 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 153 233 musil; #X text 190 233 @; #X text 199 233 iem.at; #X text 159 255 Graz \, Austria; #X text 73 10 allpass 2.order with double precision; #X text 12 9 ap2_dp~; #X obj 22 134 filter~ dap2 \$1 \$2 1 \$3; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X connect 0 0 20 0; #X connect 1 0 20 1; #X connect 4 0 20 2; #X connect 7 0 20 4; #X connect 20 0 2 0; iemlib-1.20.1/iemabs/lp7_bess~-help.pd0000644002537200234200000000332611055052215017731 0ustar zmoelnigiemusers#N canvas 280 180 387 456 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp7_bess~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 9 -4 lp7_bess~; #X text 85 -4 lowpass 7.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/bsw2~-help.pd0000644002537200234200000000336111502263561017074 0ustar zmoelnigiemusers#N canvas 361 130 381 493 10; #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 361 1.arg: center_freq. [Hz]; #X text 26 381 3.arg: interpolation_time [ms]; #X text 26 371 2.arg: 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 52 334 7 0 0 0 - - -; #X text 105 335 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 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 8000 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 15 cnv 8 1 1 empty empty bsw2~ 1 2 1 18 -262144 -1109 0; #X text 184 454 IEM KUG; #X text 163 442 musil; #X text 198 442 @; #X text 207 442 iem.at; #X text 167 464 Graz \, Austria; #X text 119 431 (c) Thomas Musil 2000 - 2010; #X connect 3 0 1 0; #X connect 4 0 3 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 31 1; #X connect 18 0 25 0; #X connect 19 0 31 3; #X connect 21 0 31 2; #X connect 22 1 28 0; #X connect 22 2 23 0; #X connect 23 1 14 0; #X connect 24 0 22 1; #X connect 25 0 31 0; #X connect 25 1 16 0; #X connect 26 0 18 0; #X connect 31 0 22 0; iemlib-1.20.1/iemabs/hp3_crit~-help.pd0000644002537200234200000000331711055052215017726 0ustar zmoelnigiemusers#N canvas 280 180 383 452 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 129 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp3_crit~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 5 5 hp3_crit~; #X text 81 5 highpass 3.order with critical damping; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/bsq2_dp~-help.pd0000644002537200234200000000340211502274377017554 0ustar zmoelnigiemusers#N canvas 375 118 381 493 10; #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: Q [-]; #X text 26 361 1.arg: center_freq. [Hz]; #X text 26 381 3.arg: 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 54 328 7 0 0 0 - - -; #X text 105 329 dB; #X floatatom 126 156 9 0 22000 0 - - -; #X text 190 157 Hz; #X floatatom 53 117 3 15 133 0 - - -; #X floatatom 168 253 5 2 9999 0 - - -; #X text 209 254 ms; #X floatatom 129 234 4 0.01 1000 0 - - -; #X text 162 234 Q; #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 8000 1; #X obj 53 136 testtone~ 200; #X obj 117 102 init 69; #X text 80 118 midi; #X floatatom 274 322 7 0 0 0 - - -; #X text 325 323 dB; #X text 116 10 bandstop 2.order with Q-inlet; #X obj 13 16 cnv 8 1 1 empty empty bsq2_dp~ 1 2 1 18 -262144 -1109 0; #X text 184 454 IEM KUG; #X text 160 442 musil; #X text 198 442 @; #X text 207 442 iem.at; #X text 167 464 Graz \, Austria; #X text 119 431 (c) Thomas Musil 2000 - 2010; #X text 136 24 with double precision; #X obj 53 273 bsq2_dp~ 440 1 200; #X connect 3 0 1 0; #X connect 4 0 3 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 40 1; #X connect 18 0 26 0; #X connect 19 0 40 3; #X connect 21 0 40 2; #X connect 23 1 29 0; #X connect 23 2 24 0; #X connect 24 1 14 0; #X connect 25 0 23 1; #X connect 26 0 40 0; #X connect 26 1 16 0; #X connect 27 0 18 0; #X connect 40 0 23 0; iemlib-1.20.1/iemabs/vcf_hp8~.pd0000644002537200234200000000221011055052215016611 0ustar zmoelnigiemusers#N canvas 216 218 453 493 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 110 77 cutoff_frequency [Hz]; #X text 168 19 for frequency and Q; #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 text 166 435 IEM KUG; #X text 150 423 musil; #X text 180 423 @; #X text 186 423 iem.at; #X text 101 412 (c) Thomas Musil 2000 - 2005; #X text 149 445 Graz \, Austria; #X connect 0 0 15 0; #X connect 5 0 16 0; #X connect 6 0 17 0; #X connect 10 0 11 0; #X connect 11 0 1 0; #X connect 12 0 10 0; #X connect 15 0 12 0; #X connect 16 0 10 1; #X connect 16 0 11 1; #X connect 16 0 12 1; #X connect 16 0 15 1; #X connect 17 0 18 0; #X connect 18 0 15 2; #X connect 18 0 12 2; #X connect 18 0 10 2; #X connect 18 0 11 2; iemlib-1.20.1/iemabs/fadtorms.pd0000644002537200234200000000115411055052215016703 0ustar zmoelnigiemusers#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 13 10 fadtorms; #X text 86 11 convert fader-scale to rms-value; #X text 176 255 IEM KUG; #X text 160 243 musil; #X text 190 243 @; #X text 196 243 iem.at; #X text 111 232 (c) Thomas Musil 2000 - 2005; #X text 159 265 Graz \, Austria; #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; iemlib-1.20.1/iemabs/hp6_bess~.pd0000644002537200234200000000176711055052215017005 0ustar zmoelnigiemusers#N canvas 350 22 410 306 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 31 164 ~filtered signal_out~; #X obj 167 86 inlet; #X text 81 189 1.arg: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/vcf_lp8~-help.pd0000644002537200234200000000372411055052215017556 0ustar zmoelnigiemusers#N canvas 213 130 449 488 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 33 0 2 0; #X connect 34 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/testtone~.pd0000644002537200234200000000155111055052215017130 0ustar zmoelnigiemusers#N canvas 153 297 251 356 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 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: interpol-; #X text 164 179 time in ms; #X obj 25 84 init 69; #X text 106 285 IEM KUG; #X text 90 273 musil; #X text 120 273 @; #X text 126 273 iem.at; #X text 41 262 (c) Thomas Musil 2000 - 2005; #X text 89 295 Graz \, Austria; #X connect 0 0 17 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 17 0 1 0; iemlib-1.20.1/iemabs/vcf_bp6~-help.pd0000644002537200234200000000372511055052215017543 0ustar zmoelnigiemusers#N canvas 213 130 483 485 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 34 0 2 0; #X connect 35 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/hp6_butt~-help.pd0000644002537200234200000000333611055052215017747 0ustar zmoelnigiemusers#N canvas 280 180 397 448 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 175 3 15 133 0 - - -; #X obj 93 194 mtof; #X floatatom 93 213 9 0 22000 0 - - -; #X text 157 214 Hz; #X text 57 271 ~signal_out~; #X floatatom 205 273 7 0 0 0 - - -; #X text 257 274 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 49 72 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 252 151 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 324 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 40 339 1.arg: cutoff_freq. [Hz]; #X text 40 349 2.arg: interpolation_time [ms]; #X floatatom 305 306 7 0 0 0 - - -; #X text 357 307 dB; #X text 152 256 <- double-click; #X obj 45 257 hp6_butt~ 440 200; #X text 5 5 hp6_butt~; #X text 81 5 highpass 6.order with butterworth characteristic; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp9_crit~-help.pd0000644002537200234200000000332111055052215017733 0ustar zmoelnigiemusers#N canvas 280 180 385 454 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 159 3 15 133 0 - - -; #X obj 93 178 mtof; #X floatatom 93 197 9 0 22000 0 - - -; #X text 157 198 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 159 248 <- double-click; #X obj 45 247 lp9_crit~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 9.order with critical damping; #X text 5 -5 lp9_crit~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vradio.pd0000644002537200234200000001615611055052215016360 0ustar zmoelnigiemusers#N canvas 544 154 349 487 10; #X obj 1 1 cnv 8 100 60 empty empty vradio 20 20 1 18 -262144 -1109 0; #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 floatatom 21 398 4 0 0 0 - - -; #X obj 21 420 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X msg 157 73 set \$1; #X floatatom 157 52 4 0 9 0 - - -; #X floatatom 44 54 4 0 9 0 - - -; #X msg 84 50 7 0 -5.44; #X msg 88 72 3 3 4.55; #X obj 62 388 print; #X floatatom 84 280 4 0 0 0 - - -; #X msg 84 254 \$1; #X msg 59 185 set \$1; #X floatatom 59 164 4 0 9 0 - - -; #X text 59 318 UP- \, DOWN- \, LEFT- or RIGHT-key; #X text 58 329 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 0 - - -; #X floatatom 93 198 3 -20 37 0 - - -; #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 0 - - -; #X text 297 187 size; #X obj 286 293 f; #X msg 264 272 bang; #X floatatom 302 271 3 -10 10 0 - - -; #X floatatom 337 293 3 -10 10 0 - - -; #X obj 286 316 pack 0 0; #X obj 300 412 f; #X msg 278 391 bang; #X floatatom 316 390 3 20 60 0 - - -; #X floatatom 351 412 3 100 200 0 - - -; #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 0 - - -; #X floatatom 113 313 3 4 36 0 - - -; #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 0 - - -; #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 0 - - -; #X floatatom 79 46 3 0 29 0 - - -; #X floatatom 112 62 3 0 29 0 - - -; #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 0 - - -; #X floatatom 370 55 3 0 255 0 - - -; #X floatatom 413 56 3 0 255 0 - - -; #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 145 289 updated for Pd version 0.34; #X text 144 11 gui-vertical dial:; #X text 133 437 IEM KUG; #X text 117 425 musil; #X text 147 425 @; #X text 153 425 iem.at; #X text 68 414 (c) Thomas Musil 2000 - 2005; #X text 116 447 Graz \, Austria; #X obj 21 106 vradio 25 1 0 10 foo11_snd foo11_rcv radio_0_9 32 12 0 10 -99865 -262144 -260818 0; #X obj 229 46 vradio 8 1 0 8 hhh hhh empty 0 -6 0 8 -262144 -1 -1 0 ; #X obj 241 46 vradio 8 1 0 8 hhh hhh empty 0 -6 0 8 -262144 -1 -1 0 ; #X obj 253 46 vradio 8 1 0 8 hhh hhh empty 0 -6 0 8 -262144 -1 -1 0 ; #X text 46 355 float out; #X connect 4 0 30 0; #X connect 6 0 3 0; #X connect 6 0 16 0; #X connect 7 0 8 0; #X connect 9 0 30 0; #X connect 10 0 9 0; #X connect 11 0 30 0; #X connect 12 0 30 0; #X connect 13 0 30 0; #X connect 16 0 15 0; #X connect 17 0 5 0; #X connect 18 0 17 0; #X connect 30 0 7 0; #X connect 30 0 14 0; iemlib-1.20.1/iemabs/lp8_bess~-help.pd0000644002537200234200000000332611055052215017732 0ustar zmoelnigiemusers#N canvas 280 180 385 454 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp8_bess~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 85 -4 lowpass 8.order with bessel characteristic; #X text 9 -4 lp8_bess~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp2_cheb~-help.pd0000644002537200234200000000340211055052215017660 0ustar zmoelnigiemusers#N canvas 280 180 387 456 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 129 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp2_cheb~ 440 200; #X text 78 407 IEM KUG; #X text 62 395 musil; #X text 92 395 @; #X text 98 395 iem.at; #X text 13 384 (c) Thomas Musil 2000 - 2005; #X text 61 417 Graz \, Austria; #X text 142 17 and +1 dB passband-ripple; #X text 5 5 hp2_cheb~; #X text 81 5 highpass 2.order with chebyshev characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_lp4~.pd0000644002537200234200000000161211055052215016616 0ustar zmoelnigiemusers#N canvas 216 218 447 487 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 110 77 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 obj 63 216 iem_cot4~; #X obj 130 132 iem_sqrt4~; #X text 166 415 IEM KUG; #X text 150 403 musil; #X text 180 403 @; #X text 186 403 iem.at; #X text 101 392 (c) Thomas Musil 2000 - 2005; #X text 149 425 Graz \, Austria; #X connect 0 0 10 0; #X connect 5 0 14 0; #X connect 6 0 15 0; #X connect 10 0 11 0; #X connect 11 0 1 0; #X connect 14 0 10 1; #X connect 14 0 11 1; #X connect 15 0 10 2; #X connect 15 0 11 2; iemlib-1.20.1/iemabs/lp2_crit~.pd0000644002537200234200000000141711055052215017002 0ustar zmoelnigiemusers#N canvas 321 86 420 316 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 167 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 0 10 4; #X connect 10 0 2 0; iemlib-1.20.1/iemabs/lp1_dp~-help.pd0000644002537200234200000000314611502274377017406 0ustar zmoelnigiemusers#N canvas 257 125 385 468 10; #X text 13 245 ~signal_in~; #X text 38 33 dsp ON/OFF; #X floatatom 103 164 3 15 133 0 - - -; #X obj 103 183 mtof; #X floatatom 103 202 9 0 22000 0 - - -; #X text 167 203 Hz; #X text 68 274 ~signal_out~; #X floatatom 56 317 7 0 0 0 - - -; #X text 107 318 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 149 235 5 2 9999 0 - - -; #X text 190 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 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 8000 1; #X obj 56 123 testtone~ 200; #X obj 120 89 init 69; #X text 83 105 midi; #X text 21 344 1.arg: cutoff_freq. [Hz]; #X text 21 354 2.arg: interpolation_time [ms]; #X floatatom 266 309 7 0 0 0 - - -; #X text 317 310 dB; #X obj 14 15 cnv 8 1 1 empty empty lp1_dp~ 1 2 1 18 -262144 -1109 0 ; #X text 106 415 IEM KUG; #X text 84 403 musil; #X text 120 403 @; #X text 128 403 iem.at; #X text 89 425 Graz \, Austria; #X text 102 8 lowpass 1.order with double precision; #X text 41 391 (c) Thomas Musil 2000 - 2010; #X obj 56 260 lp1_dp~ 440 200; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 36 1; #X connect 11 0 21 0; #X connect 14 0 36 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 18 1 26 0; #X connect 18 2 19 0; #X connect 19 1 7 0; #X connect 20 0 18 1; #X connect 21 0 36 0; #X connect 21 1 9 0; #X connect 22 0 11 0; #X connect 36 0 18 0; iemlib-1.20.1/iemabs/lp5_crit~-help.pd0000644002537200234200000000332111055052215017727 0ustar zmoelnigiemusers#N canvas 280 180 389 458 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp5_crit~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 5.order with critical damping; #X text 5 -5 lp5_crit~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp9_butt~.pd0000644002537200234200000000227511055052215017025 0ustar zmoelnigiemusers#N canvas 350 22 416 312 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 185 86 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 149 86 inlet; #X text 95 226 1.arg: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 16 0; #X connect 1 0 16 1; #X connect 7 0 16 4; #X connect 10 0 2 0; #X connect 13 0 10 0; #X connect 13 1 10 1; #X connect 13 4 10 4; #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; iemlib-1.20.1/iemabs/lp3_crit~.pd0000644002537200234200000000157111055052215017004 0ustar zmoelnigiemusers#N canvas 350 22 416 312 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 167 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/lp6_crit~.pd0000644002537200234200000000176111055052215017010 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 31 164 ~filtered signal_out~; #X obj 167 86 inlet; #X text 81 189 1.arg: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 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 2 0; iemlib-1.20.1/iemabs/hdial.pd0000644002537200234200000002043511055052215016150 0ustar zmoelnigiemusers#N canvas 162 67 349 487 10; #X obj 1 1 cnv 8 100 60 empty empty hdial=hdl 20 20 1 18 -262144 -1109 0; #X text 109 136 click properties to; #X text 102 147 modify geometry \, colors \, etc.; #X obj 59 273 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X obj 21 60 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X obj 58 225 s foo11_rcv; #X obj 59 251 r foo11_snd; #X obj 21 124 hdl 25 1 1 10 foo11_snd foo11_rcv radio_0_9 132 -12 192 10 -99865 -262144 -260818 0; #X msg 21 382 \$1; #X floatatom 21 404 4 0 0 0 - - -; #X obj 21 426 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X obj 103 395 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1; #X obj 103 374 route 0 1 2 3 4 5 6 7 8 9; #X msg 157 79 set \$1; #X floatatom 157 58 4 0 9 0 - - -; #X floatatom 44 60 4 0 9 0 - - -; #X msg 84 56 7 0 -5.44; #X msg 88 78 3 3 4.55; #X obj 120 395 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 137 395 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 154 395 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 171 395 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 188 395 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 205 395 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 222 395 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 239 395 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 256 395 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 58 378 print; #X floatatom 83 299 4 0 0 0 - - -; #X msg 83 273 \$1; #X msg 58 204 set \$1; #X floatatom 58 183 4 0 9 0 - - -; #X text 60 340 UP- \, DOWN- \, LEFT- or RIGHT-key; #X text 59 351 for moving selected gui-objects; #N canvas 222 207 703 534 edit 0; #X obj 42 198 f; #X msg 20 177 bang; #X floatatom 58 176 3 63 156 0 - - -; #X floatatom 93 198 3 -20 37 0 - - -; #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 0 - - -; #X text 297 187 size; #X obj 286 293 f; #X msg 264 272 bang; #X floatatom 302 271 3 -10 10 0 - - -; #X floatatom 337 293 3 -10 10 0 - - -; #X obj 286 316 pack 0 0; #X obj 300 412 f; #X msg 278 391 bang; #X floatatom 316 390 3 20 60 0 - - -; #X floatatom 351 412 3 100 200 0 - - -; #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 0 - - -; #X floatatom 113 313 3 4 36 0 - - -; #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 0 - - -; #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 0 - - -; #X floatatom 79 46 3 0 29 0 - - -; #X floatatom 112 62 3 0 29 0 - - -; #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 0 - - -; #X floatatom 370 55 3 0 255 0 - - -; #X floatatom 413 56 3 0 255 0 - - -; #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 226 pd edit; #X text 88 312 updated for Pd version 0.34; #X obj 231 72 hdl 8 1 0 8 hhh hhh empty 20 8 192 8 -262144 -1 -1 6 ; #X text 144 11 gui-horizontal dial:; #X obj 231 52 hdl 8 1 0 8 hhh hhh empty 20 8 192 8 -262144 -1 -1 6 ; #X obj 231 62 hdl 8 1 0 8 hhh hhh empty 20 8 192 8 -262144 -1 -1 6 ; #X text 133 443 IEM KUG; #X text 117 431 musil; #X text 147 431 @; #X text 153 431 iem.at; #X text 68 420 (c) Thomas Musil 2000 - 2005; #X text 116 453 Graz \, Austria; #X text 40 167 list out with index + state; #X obj 11 22 cnv 8 1 1 empty empty radiobutton=rdb 10 20 1 18 -262144 -1109 0; #X connect 4 0 7 0; #X connect 6 0 3 0; #X connect 6 0 29 0; #X connect 7 0 8 0; #X connect 7 0 12 0; #X connect 7 0 27 0; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 12 0 11 0; #X connect 12 1 18 0; #X connect 12 2 19 0; #X connect 12 3 20 0; #X connect 12 4 21 0; #X connect 12 5 22 0; #X connect 12 6 23 0; #X connect 12 7 24 0; #X connect 12 8 25 0; #X connect 12 9 26 0; #X connect 13 0 7 0; #X connect 14 0 13 0; #X connect 15 0 7 0; #X connect 16 0 7 0; #X connect 17 0 7 0; #X connect 29 0 28 0; #X connect 30 0 5 0; #X connect 31 0 30 0; iemlib-1.20.1/iemabs/hp2~-help.pd0000644002537200234200000000330011502263265016702 0ustar zmoelnigiemusers#N canvas 278 100 406 471 10; #X text 6 249 ~signal_in~; #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 49 320 7 0 0 0 - - -; #X text 100 321 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: Q [-]; #X text 14 368 3.arg: 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 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 8000 1; #X obj 49 127 testtone~ 200; #X obj 113 93 init 69; #X text 76 109 midi; #X text 14 348 1.arg: 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 12 14 cnv 8 1 1 empty empty hp2~ 1 2 1 18 -262144 -1109 0; #X text 83 6 highpass 2.order; #X text 78 417 IEM KUG; #X text 57 405 musil; #X text 92 405 @; #X text 100 405 iem.at; #X text 61 427 Graz \, Austria; #X text 13 394 (c) Thomas Musil 2000 - 2010; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 29 1; #X connect 11 0 25 0; #X connect 14 0 29 3; #X connect 16 0 12 0; #X connect 17 0 29 2; #X connect 21 0 16 0; #X connect 22 1 30 0; #X connect 22 2 23 0; #X connect 23 1 7 0; #X connect 24 0 22 1; #X connect 25 0 29 0; #X connect 25 1 9 0; #X connect 26 0 11 0; #X connect 29 0 22 0; iemlib-1.20.1/iemabs/vu.pd0000644002537200234200000001502311055052215015516 0ustar zmoelnigiemusers#N canvas 167 190 438 422 10; #X obj 1 1 cnv 8 100 60 empty empty vu 20 20 1 18 -262144 -1109 0; #X floatatom 177 129 7 -110 20 0 - - -; #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 0 10 -1 -16410 1 0; #X floatatom 11 332 6 0 0 0 - - -; #X floatatom 22 310 6 0 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 of rms \, peak; #X obj 177 231 s foo7_rcv; #X obj 177 211 pack 0 0; #X floatatom 195 150 7 -110 20 0 - - -; #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 0 - - -; #X floatatom 22 149 7 -110 20 0 - - -; #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 0 - - -; #X floatatom 88 222 3 0 37 0 - - -; #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 0 - - -; #X floatatom 343 313 3 -10 10 0 - - -; #X obj 292 336 pack 0 0; #X obj 304 435 f; #X msg 282 414 bang; #X floatatom 320 413 3 20 140 0 - - -; #X floatatom 355 435 3 150 200 0 - - -; #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 0 - - -; #X floatatom 108 337 3 8 36 0 - - -; #X obj 57 360 pack 0 0; #X text 101 315 font; #X text 137 337 height; #X floatatom 471 106 1 0 1 0 - - -; #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 0 - - -; #X floatatom 330 193 3 110 200 0 - - -; #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 0 - - -; #X floatatom 103 47 3 0 29 0 - - -; #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 0 - - -; #X floatatom 375 55 3 0 255 0 - - -; #X floatatom 418 56 3 0 255 0 - - -; #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 text 73 387 IEM KUG; #X text 57 375 musil; #X text 87 375 @; #X text 93 375 iem.at; #X text 8 364 (c) Thomas Musil 2000 - 2005; #X text 56 397 Graz \, Austria; #X connect 1 0 19 0; #X connect 5 0 29 0; #X connect 6 0 7 0; #X connect 6 1 8 0; #X connect 19 0 18 0; #X connect 20 0 21 0; #X connect 21 0 19 0; #X connect 21 1 19 1; #X connect 26 0 6 0; #X connect 27 0 6 1; #X connect 29 0 6 0; #X connect 29 0 32 0; iemlib-1.20.1/iemabs/pink~.pd0000644002537200234200000000121111055052215016215 0ustar zmoelnigiemusers#N canvas 142 265 410 241 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 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 text 166 195 IEM KUG; #X text 150 183 musil; #X text 180 183 @; #X text 186 183 iem.at; #X text 101 172 (c) Thomas Musil 2000 - 2005; #X text 149 205 Graz \, Austria; #X connect 2 0 7 0; #X connect 5 0 6 0; #X connect 6 0 1 0; #X connect 7 0 5 0; iemlib-1.20.1/iemabs/lp4_bess~-help.pd0000644002537200234200000000332611055052215017726 0ustar zmoelnigiemusers#N canvas 280 180 389 458 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 129 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp4_bess~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 85 -4 lowpass 4.order with bessel characteristic; #X text 9 -4 lp4_bess~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/bsw2~.pd0000644002537200234200000000162011055052215016135 0ustar zmoelnigiemusers#N canvas 299 265 393 285 10; #X obj 22 42 inlet~; #X obj 55 65 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 191 113 interpolation_time [ms]; #X text 28 157 ~filtered signal_out~; #X obj 155 113 inlet; #X text 91 64 center_frequency [Hz]; #X text 64 9 bandstop 2.order with bandwidth-inlet; #X text 123 89 bandwidth [Hz]; #X text 11 9 bsw2~; #X obj 22 136 filter~ bsw2 \$1 \$2 1 \$3; #X text 97 178 1.arg: center_frequency [Hz]; #X text 97 188 2.arg: bandwidth [Hz]; #X text 97 198 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 4 0 12 2; #X connect 7 0 12 4; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/hp5_crit~.pd0000644002537200234200000000175311055052215017004 0ustar zmoelnigiemusers#N canvas 350 22 416 312 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 31 167 ~filtered signal_out~; #X obj 167 86 inlet; #X text 81 189 1.arg: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 0 13 4; #X connect 12 0 2 0; #X connect 13 0 14 0; #X connect 13 1 14 1; #X connect 13 4 14 4; #X connect 14 0 12 0; #X connect 14 1 12 1; #X connect 14 4 12 4; iemlib-1.20.1/iemabs/hp7_cheb~-help.pd0000644002537200234200000000340711055052215017672 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 86 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp7_cheb~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 142 17 and +1 dB passband-ripple; #X text 5 5 hp7_cheb~; #X text 81 5 highpass 7.order with chebyshev characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp10_crit~-help.pd0000644002537200234200000000332711055052215020005 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 96 169 3 15 133 0 - - -; #X obj 96 188 mtof; #X floatatom 96 207 9 0 22000 0 - - -; #X text 160 208 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 148 237 5 2 9999 0 - - -; #X text 189 238 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 159 258 <- double-click; #X obj 45 257 hp10_crit~ 440 200; #X text 136 395 IEM KUG; #X text 120 383 musil; #X text 150 383 @; #X text 156 383 iem.at; #X text 71 372 (c) Thomas Musil 2000 - 2005; #X text 119 405 Graz \, Austria; #X text 5 5 hp10_crit~; #X text 81 5 highpass 10.order with critical damping; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_hp2~-help.pd0000644002537200234200000000372511055052215017545 0ustar zmoelnigiemusers#N canvas 213 130 466 508 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 36 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 36 1; #X connect 29 0 36 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 33 0 2 0; #X connect 34 0 15 0; #X connect 36 0 19 0; iemlib-1.20.1/iemabs/hp9_cheb~-help.pd0000644002537200234200000000340711055052215017674 0ustar zmoelnigiemusers#N canvas 280 180 377 446 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 169 3 15 133 0 - - -; #X obj 93 188 mtof; #X floatatom 93 207 9 0 22000 0 - - -; #X text 157 208 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 237 5 2 9999 0 - - -; #X text 183 238 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 159 258 <- double-click; #X obj 45 257 hp9_cheb~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 142 17 and +1 dB passband-ripple; #X text 5 5 hp9_cheb~; #X text 81 5 highpass 9.order with chebyshev characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp2_cheb~.pd0000644002537200234200000000150311055052215016732 0ustar zmoelnigiemusers#N canvas 350 22 427 307 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 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: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 0 13 4; #X connect 13 0 2 0; iemlib-1.20.1/iemabs/lp3_cheb~.pd0000644002537200234200000000165411055052215016746 0ustar zmoelnigiemusers#N canvas 350 22 429 309 10; #X obj 22 42 inlet~; #X obj 57 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 94 67 cutoff_frequency [Hz]; #X text 200 86 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: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp2c_dp~.pd0000644002537200234200000000233211502274377016614 0ustar zmoelnigiemusers#N canvas 406 261 412 351 10; #X obj 22 42 inlet~; #X obj 56 63 inlet; #X obj 22 193 outlet~; #X text 62 42 ~signal_in~; #X text 93 64 cutoff_frequency [Hz]; #X obj 91 87 inlet; #X text 195 136 interpolation_time [ms]; #X text 32 176 ~filtered signal_out~; #X obj 126 111 inlet; #X obj 161 136 inlet; #X text 127 87 damping [-]; #X text 162 111 frequency-shift [-]; #X text 79 8 highpass 2.order for filter-cascades; #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: cutoff_frequency [Hz]; #X text 128 199 2.arg: damping [-]; #X text 128 208 3.arg: frequency-shift [-]; #X text 128 218 4.arg: interpolation_time [ms] (opt.); #X text 176 315 IEM KUG; #X text 154 303 musil; #X text 190 303 @; #X text 198 303 iem.at; #X text 159 325 Graz \, Austria; #X text 12 8 hp2c_dp~; #X text 122 23 with double precision; #X obj 22 157 filter~ dhp2c \$1 \$2 \$3 \$4; #X text 111 292 (c) Thomas Musil 2000 - 2010; #X connect 0 0 30 0; #X connect 1 0 13 0; #X connect 1 0 30 1; #X connect 5 0 30 2; #X connect 8 0 30 3; #X connect 9 0 16 0; #X connect 9 0 30 4; #X connect 30 0 2 0; iemlib-1.20.1/iemabs/lp8_cheb~.pd0000644002537200234200000000224011055052215016743 0ustar zmoelnigiemusers#N canvas 350 22 425 305 10; #X obj 22 42 inlet~; #X obj 62 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 99 67 cutoff_frequency [Hz]; #X text 219 86 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 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: cutoff_frequency [Hz]; #X text 86 215 2.arg: interpolation_time [ms] (opt.); #X text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 11 0; #X connect 1 0 11 1; #X connect 7 0 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; iemlib-1.20.1/iemabs/dsp.pd0000644002537200234200000000360711055052215015657 0ustar zmoelnigiemusers#N canvas 238 72 384 498 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 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 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 text 176 455 IEM KUG; #X text 160 443 musil; #X text 190 443 @; #X text 196 443 iem.at; #X text 111 432 (c) Thomas Musil 2000 - 2005; #X text 159 465 Graz \, Austria; #X connect 0 0 2 0; #X connect 0 0 9 0; #X connect 3 0 23 0; #X connect 4 0 3 0; #X connect 4 1 3 1; #X connect 8 0 22 0; #X connect 9 0 22 0; #X connect 11 0 26 0; #X connect 11 1 12 0; #X connect 12 0 26 5; #X connect 12 0 26 4; #X connect 16 0 18 1; #X connect 16 0 13 0; #X connect 17 0 20 0; #X connect 18 0 17 1; #X connect 19 0 17 0; #X connect 19 1 18 0; #X connect 19 2 16 1; #X connect 20 0 16 0; #X connect 20 0 37 0; #X connect 21 0 18 1; #X connect 22 0 4 0; #X connect 23 0 11 0; #X connect 23 0 19 0; #X connect 26 0 27 0; #X connect 27 0 29 0; #X connect 28 0 30 0; #X connect 29 0 28 0; #X connect 30 0 1 0; #X connect 31 0 32 0; #X connect 32 0 36 0; #X connect 36 0 34 0; #X connect 37 0 21 0; iemlib-1.20.1/iemabs/lp3_crit~-help.pd0000644002537200234200000000332111055052215017725 0ustar zmoelnigiemusers#N canvas 280 180 389 458 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 129 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp3_crit~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 5 -5 lp3_crit~; #X text 81 -5 lowpass 3.order with critical damping; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp7_cheb~-help.pd0000644002537200234200000000340311055052215017672 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp7_cheb~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 142 7 and +1 dB passband-ripple; #X text 81 -5 lowpass 7.order with chebyshev characteristic; #X text 5 -5 lp7_cheb~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_rbp4~-help.pd0000644002537200234200000000374111055052215017721 0ustar zmoelnigiemusers#N canvas 213 130 481 483 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 34 0 2 0; #X connect 35 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/lp3_cheb~-help.pd0000644002537200234200000000340311055052215017666 0ustar zmoelnigiemusers#N canvas 280 180 383 452 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 76 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp3_cheb~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 142 7 and +1 dB passband-ripple; #X text 81 -5 lowpass 3.order with chebyshev characteristic; #X text 5 -5 lp3_cheb~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp5_cheb~-help.pd0000644002537200234200000000340211055052215017663 0ustar zmoelnigiemusers#N canvas 280 180 381 450 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp5_cheb~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 142 17 and +1 dB passband-ripple; #X text 4 6 hp5_cheb~; #X text 81 5 highpass 5.order with chebyshev characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp8_crit~-help.pd0000644002537200234200000000332111055052215017732 0ustar zmoelnigiemusers#N canvas 280 180 385 454 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp8_crit~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 8.order with critical damping; #X text 5 -5 lp8_crit~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp6_crit~-help.pd0000644002537200234200000000332111055052215017730 0ustar zmoelnigiemusers#N canvas 280 180 387 456 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp6_crit~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 6.order with critical damping; #X text 5 -5 lp6_crit~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_bp8~-help.pd0000644002537200234200000000372511055052215017545 0ustar zmoelnigiemusers#N canvas 213 130 481 483 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 34 0 2 0; #X connect 35 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/gui-menue.pd0000644002537200234200000000136711055052215016765 0ustar zmoelnigiemusers#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; iemlib-1.20.1/iemabs/vcf_hp4~.pd0000644002537200234200000000161311055052215016613 0ustar zmoelnigiemusers#N canvas 216 218 449 489 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 110 78 cutoff_frequency [Hz]; #X text 168 19 for frequency and Q; #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 text 166 425 IEM KUG; #X text 150 413 musil; #X text 180 413 @; #X text 186 413 iem.at; #X text 101 402 (c) Thomas Musil 2000 - 2005; #X text 149 435 Graz \, Austria; #X connect 0 0 12 0; #X connect 5 0 14 0; #X connect 6 0 15 0; #X connect 12 0 13 0; #X connect 13 0 1 0; #X connect 14 0 12 1; #X connect 14 0 13 1; #X connect 15 0 12 2; #X connect 15 0 13 2; iemlib-1.20.1/iemabs/hp8_crit~-help.pd0000644002537200234200000000332411055052215017731 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 86 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp8_crit~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 5 5 hp8_crit~; #X text 81 5 highpass 8.order with critical damping; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/1p1z.pd0000644002537200234200000000314511055052215015661 0ustar zmoelnigiemusers#N canvas 228 263 515 334 10; #X text 176 295 IEM KUG; #X obj 22 221 +; #X text 8 6 1p1z; #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: a0; #X text 147 213 2.arg: a1; #X text 147 224 3.arg: b1; #X text 63 5 control-IIR-filter 1.order; #X text 160 283 musil; #X text 190 283 @; #X text 196 283 iem.at; #X text 111 272 (c) Thomas Musil 2000 - 2005; #X text 159 305 Graz \, Austria; #X connect 1 0 5 0; #X connect 1 0 26 1; #X connect 3 0 13 0; #X connect 4 0 27 0; #X connect 10 0 12 0; #X connect 12 0 21 1; #X connect 13 0 20 1; #X connect 14 0 16 0; #X connect 16 0 22 1; #X connect 17 0 24 0; #X connect 19 0 1 1; #X connect 20 0 1 0; #X connect 21 0 19 0; #X connect 22 0 19 1; #X connect 24 0 13 0; #X connect 24 1 12 0; #X connect 24 2 16 0; #X connect 25 0 21 0; #X connect 26 0 22 0; #X connect 27 0 20 0; #X connect 27 0 25 1; #X connect 27 1 25 0; #X connect 27 2 26 0; #X connect 28 0 25 1; #X connect 29 0 26 1; iemlib-1.20.1/iemabs/mull~-help.pd0000644002537200234200000000164711055052215017170 0ustar zmoelnigiemusers#N canvas 375 118 376 460 10; #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: interpolation_time [ms]; #X obj 46 271 unsig~; #X floatatom 46 294 9 0 22000 0 - - -; #X obj 46 141 sig~ 1; #X text 13 8 mull~; #X text 79 8 signal multiplication with line~; #X text 15 352 1.arg: 2nd operand of multiplication; #X obj 46 248 mull~ 0.5 2000; #X text 115 418 IEM KUG; #X text 99 406 musil; #X text 129 406 @; #X text 135 406 iem.at; #X text 50 395 (c) Thomas Musil 2000 - 2005; #X text 98 428 Graz \, Austria; #X connect 1 0 15 1; #X connect 4 0 15 2; #X connect 6 0 2 0; #X connect 7 0 6 0; #X connect 9 0 10 0; #X connect 11 0 15 0; #X connect 15 0 9 0; iemlib-1.20.1/iemabs/hp7_butt~.pd0000644002537200234200000000212611055052215017016 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 interpolation_time [ms]; #X text 33 187 ~filtered signal_out~; #X obj 149 86 inlet; #X text 99 205 1.arg: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 0 13 4; #X connect 10 0 2 0; #X connect 11 0 10 0; #X connect 11 1 10 1; #X connect 11 4 10 4; #X connect 12 0 11 0; #X connect 12 1 11 1; #X connect 12 4 11 4; #X connect 13 0 12 0; #X connect 13 1 12 1; #X connect 13 4 12 4; iemlib-1.20.1/iemabs/bpw2_dp~.pd0000644002537200234200000000163611502274377016640 0ustar zmoelnigiemusers#N canvas 314 262 446 285 10; #X obj 22 42 inlet~; #X obj 55 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 190 112 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 155 112 inlet; #X text 92 64 center_frequency [Hz]; #X text 81 9 bandpass 2.order with bandwidth-inlet; #X text 124 90 bandwidth [Hz]; #X text 97 174 1.arg: center_frequency [Hz]; #X text 97 183 2.arg: bandwidth [Hz]; #X text 97 192 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 154 233 musil; #X text 190 233 @; #X text 198 233 iem.at; #X text 159 255 Graz \, Austria; #X text 12 9 bpw2_dp~; #X text 126 22 with double precision; #X obj 22 133 filter~ dbpw2 \$1 \$2 1 \$3; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X connect 0 0 21 0; #X connect 1 0 21 1; #X connect 4 0 21 2; #X connect 7 0 21 4; #X connect 21 0 2 0; iemlib-1.20.1/iemabs/mull~.pd0000644002537200234200000000172111055052215016233 0ustar zmoelnigiemusers#N canvas 320 149 410 327 10; #X obj 22 42 inlet~; #X obj 35 67 inlet; #X obj 22 238 outlet~; #X text 62 42 ~signal_in~; #X obj 90 112 inlet; #X text 69 239 ~signal_out~; #X obj 22 215 *~; #X obj 35 194 line~; #X obj 41 146 loadbang; #X text 72 66 multiplication-coefficient or; #X text 72 78 multiplication-coefficient + interpol_time [ms] ; #X text 119 180 1.arg: multiplication-coefficient; #X text 49 9 signal-multiplication with line~ interpolation; #X text 125 113 interpolation_time [ms]; #X text 119 191 2.arg: interpolation_time [ms]; #X obj 35 175 pack \$1 \$2; #X text 11 9 mull~; #X text 176 285 IEM KUG; #X text 160 273 musil; #X text 190 273 @; #X text 196 273 iem.at; #X text 111 262 (c) Thomas Musil 2000 - 2005; #X text 159 295 Graz \, Austria; #X connect 0 0 6 0; #X connect 1 0 15 0; #X connect 4 0 15 1; #X connect 6 0 2 0; #X connect 7 0 6 1; #X connect 8 0 15 0; #X connect 15 0 7 0; iemlib-1.20.1/iemabs/lp6_butt~-help.pd0000644002537200234200000000333311055052215017750 0ustar zmoelnigiemusers#N canvas 280 180 397 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 164 3 15 133 0 - - -; #X obj 93 183 mtof; #X floatatom 93 202 9 0 22000 0 - - -; #X text 157 203 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 257 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 298 7 0 0 0 - - -; #X text 357 299 dB; #X text 157 246 <- double-click; #X obj 45 247 lp6_butt~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 6.order with butterworth characteristic; #X text 5 -5 lp6_butt~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp7_cheb~.pd0000644002537200234200000000221611055052215016741 0ustar zmoelnigiemusers#N canvas 350 22 427 307 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 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: cutoff_frequency [Hz]; #X text 86 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 16 0; #X connect 1 0 16 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp4_bess~-help.pd0000644002537200234200000000332411055052215017720 0ustar zmoelnigiemusers#N canvas 280 180 383 452 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 129 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp4_bess~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 6 4 hp4_bess~; #X text 82 4 highpass 4.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp8_bess~.pd0000644002537200234200000000215011055052215016772 0ustar zmoelnigiemusers#N canvas 350 22 410 306 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 33 187 ~filtered signal_out~; #X obj 167 86 inlet; #X text 99 205 1.arg: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 15 0; #X connect 1 0 15 1; #X connect 7 0 15 4; #X connect 12 0 2 0; #X connect 13 0 12 0; #X connect 13 1 12 1; #X connect 13 4 12 4; #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; iemlib-1.20.1/iemabs/hp7_bess~-help.pd0000644002537200234200000000333111055052215017721 0ustar zmoelnigiemusers#N canvas 280 180 381 450 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 86 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp7_bess~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 5 5 hp7_bess~; #X text 81 5 highpass 7.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp2_crit~.pd0000644002537200234200000000142011055052215016770 0ustar zmoelnigiemusers#N canvas 350 22 418 314 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 167 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 0 10 4; #X connect 10 0 2 0; iemlib-1.20.1/iemabs/popup.pd0000644002537200234200000000143411055052215016230 0ustar zmoelnigiemusers#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; iemlib-1.20.1/iemabs/lp10_bess~-help.pd0000644002537200234200000000333111055052215017777 0ustar zmoelnigiemusers#N canvas 280 180 385 454 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 96 159 3 15 133 0 - - -; #X obj 96 178 mtof; #X floatatom 96 197 9 0 22000 0 - - -; #X text 160 198 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 148 227 5 2 9999 0 - - -; #X text 189 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 159 248 <- double-click; #X obj 45 247 lp10_bess~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 85 -4 lowpass 10.order with bessel characteristic; #X text 9 -4 lp10_bess~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/default.pd0000644002537200234200000000122011055052215016502 0ustar zmoelnigiemusers#N canvas 409 285 356 289 10; #X obj 17 142 f \$1; #X obj 17 50 inlet; #X obj 17 183 outlet; #X text 6 4 default; #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 text 66 5 if (inlet == 0); #X text 80 19 then: output = 1.argument; #X text 63 32 else: output = inlet; #X text 176 235 IEM KUG; #X text 160 223 musil; #X text 190 223 @; #X text 196 223 iem.at; #X text 111 212 (c) Thomas Musil 2000 - 2005; #X text 159 245 Graz \, Austria; #X connect 0 0 2 0; #X connect 1 0 6 0; #X connect 4 0 0 0; #X connect 4 1 7 0; #X connect 5 0 4 0; #X connect 6 0 5 0; #X connect 6 1 7 1; #X connect 7 0 2 0; iemlib-1.20.1/iemabs/lp5_bess~.pd0000644002537200234200000000175711055052215017007 0ustar zmoelnigiemusers#N canvas 350 22 416 312 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 31 164 ~filtered signal_out~; #X obj 167 86 inlet; #X text 81 189 1.arg: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp6_cheb~.pd0000644002537200234200000000205511055052215016741 0ustar zmoelnigiemusers#N canvas 350 22 425 305 10; #X obj 22 42 inlet~; #X obj 62 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 99 67 cutoff_frequency [Hz]; #X text 219 86 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: cutoff_frequency [Hz]; #X text 79 205 2.arg: 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 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 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; iemlib-1.20.1/iemabs/lp3_butt~-help.pd0000644002537200234200000000333311055052215017745 0ustar zmoelnigiemusers#N canvas 280 180 397 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 164 3 15 133 0 - - -; #X obj 93 183 mtof; #X floatatom 93 202 9 0 22000 0 - - -; #X text 157 203 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 257 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 298 7 0 0 0 - - -; #X text 357 299 dB; #X text 157 246 <- double-click; #X obj 45 247 lp3_butt~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 3.order with butterworth characteristic; #X text 5 -5 lp3_butt~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp3_cheb~-help.pd0000644002537200234200000000340211055052215017661 0ustar zmoelnigiemusers#N canvas 280 180 381 450 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 129 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp3_cheb~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 142 17 and +1 dB passband-ripple; #X text 5 5 hp3_cheb~; #X text 81 5 highpass 3.order with chebyshev characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/divl~-help.pd0000644002537200234200000000164011055052215017146 0ustar zmoelnigiemusers#N canvas 375 118 391 361 10; #X text 28 48 dsp ON/OFF; #X floatatom 76 143 9 0 22000 0 - - -; #X floatatom 11 88 5 0 0 0 - - -; #X text 46 87 % cpu; #X floatatom 116 169 5 2 9999 0 - - -; #X text 159 168 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 140 198 2.arg: interpolation_time [ms]; #X obj 37 215 unsig~; #X floatatom 37 238 9 0 22000 0 - - -; #X obj 23 140 sig~ 1; #X text 79 8 signal division with line~; #X text 140 186 1.arg: 2nd operand of division; #X obj 37 192 divl~ 0.5 2000; #X text 13 8 divl~; #X text 175 268 IEM KUG; #X text 159 256 musil; #X text 189 256 @; #X text 195 256 iem.at; #X text 110 245 (c) Thomas Musil 2000 - 2005; #X text 158 278 Graz \, Austria; #X connect 1 0 14 1; #X connect 4 0 14 2; #X connect 6 0 2 0; #X connect 7 0 6 0; #X connect 9 0 10 0; #X connect 11 0 14 0; #X connect 14 0 9 0; iemlib-1.20.1/iemabs/lp2_dp~-help.pd0000644002537200234200000000334111502274377017404 0ustar zmoelnigiemusers#N canvas 285 129 395 468 10; #X text 11 255 ~signal_in~; #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 54 325 7 0 0 0 - - -; #X text 105 326 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 175 250 5 2 9999 0 - - -; #X text 216 251 ms; #X obj 19 63 dsp; #X floatatom 132 232 4 0.01 1000 0 - - -; #X text 167 232 Q; #X text 88 354 2.arg: Q [-]; #X text 88 364 3.arg: 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 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 8000 1; #X obj 54 133 testtone~ 200; #X obj 118 99 init 69; #X text 81 115 midi; #X text 88 344 1.arg: cutoff_freq. [Hz]; #X floatatom 278 319 7 0 0 0 - - -; #X text 329 320 dB; #X obj 14 17 cnv 8 1 1 empty empty lp2_dp~ 1 2 1 18 -262144 -1109 0 ; #X text 106 415 IEM KUG; #X text 83 403 musil; #X text 120 403 @; #X text 129 403 iem.at; #X text 89 425 Graz \, Austria; #X text 41 392 (c) Thomas Musil 2000 - 2010; #X text 102 10 lowpass 2.order with double precision; #X obj 54 270 lp2_dp~ 440 0.707 200; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 39 1; #X connect 11 0 25 0; #X connect 14 0 39 3; #X connect 16 0 12 0; #X connect 17 0 39 2; #X connect 21 0 16 0; #X connect 22 1 29 0; #X connect 22 2 23 0; #X connect 23 1 7 0; #X connect 24 0 22 1; #X connect 25 0 39 0; #X connect 25 1 9 0; #X connect 26 0 11 0; #X connect 39 0 22 0; iemlib-1.20.1/iemabs/hp1_dp~.pd0000644002537200234200000000136511502274377016455 0ustar zmoelnigiemusers#N canvas 274 213 379 285 10; #X obj 22 42 inlet~; #X obj 52 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X text 89 64 cutoff_frequency [Hz]; #X obj 143 85 inlet; #X text 181 84 interpolation_time [ms]; #X text 28 157 ~filtered signal_out~; #X text 92 192 2.arg: interpolation_time [ms] (opt.); #X text 92 182 1.arg: cutoff_frequency [Hz]; #X text 176 245 IEM KUG; #X text 154 233 musil; #X text 190 233 @; #X text 198 233 iem.at; #X text 159 255 Graz \, Austria; #X text 12 8 hp1_dp~; #X text 75 7 highpass 1.order with double precision; #X obj 22 123 filter~ dhp1 \$1 1 0 \$2; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X connect 0 0 17 0; #X connect 1 0 17 1; #X connect 5 0 17 4; #X connect 17 0 2 0; iemlib-1.20.1/iemabs/lp9_cheb~.pd0000644002537200234200000000237711055052215016757 0ustar zmoelnigiemusers#N canvas 350 22 431 311 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 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: cutoff_frequency [Hz]; #X text 97 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 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; iemlib-1.20.1/iemabs/lp10_crit~-help.pd0000644002537200234200000000332411055052215020006 0ustar zmoelnigiemusers#N canvas 280 180 385 454 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 96 159 3 15 133 0 - - -; #X obj 96 178 mtof; #X floatatom 96 197 9 0 22000 0 - - -; #X text 160 198 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 148 227 5 2 9999 0 - - -; #X text 189 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 159 248 <- double-click; #X obj 45 247 lp10_crit~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 10.order with critical damping; #X text 5 -5 lp10_crit~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp1~-help.pd0000644002537200234200000000310511502263561016707 0ustar zmoelnigiemusers#N canvas 730 124 385 468 10; #X text 13 245 ~signal_in~; #X text 38 33 dsp ON/OFF; #X floatatom 94 162 3 15 133 0 - - -; #X obj 94 181 mtof; #X floatatom 94 200 9 0 22000 0 - - -; #X text 159 200 Hz; #X text 68 274 ~signal_out~; #X floatatom 57 316 7 0 0 0 - - -; #X text 108 317 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 134 235 5 2 9999 0 - - -; #X text 175 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 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 8000 1; #X obj 56 123 testtone~ 200; #X obj 120 89 init 69; #X text 83 105 midi; #X text 21 344 1.arg: cutoff_freq. [Hz]; #X text 21 355 2.arg: 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 14 cnv 8 1 1 empty empty lp1~ 1 2 1 18 -262144 -1109 0; #X text 83 8 lowpass 1.order; #X text 106 415 IEM KUG; #X text 84 403 musil; #X text 120 403 @; #X text 129 403 iem.at; #X text 89 425 Graz \, Austria; #X text 41 392 (c) Thomas Musil 2000 - 2010; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 26 1; #X connect 11 0 21 0; #X connect 14 0 26 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 18 1 27 0; #X connect 18 2 19 0; #X connect 19 1 7 0; #X connect 20 0 18 1; #X connect 21 0 26 0; #X connect 21 1 9 0; #X connect 22 0 11 0; #X connect 26 0 18 0; iemlib-1.20.1/iemabs/ap1_dp~.pd0000644002537200234200000000137711502274377016451 0ustar zmoelnigiemusers#N canvas 256 230 453 306 10; #X obj 22 42 inlet~; #X obj 52 65 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 143 100 inlet; #X text 178 101 interpolation_time [ms]; #X text 28 157 ~filtered signal_out~; #X text 89 64 -90_degree_frequency [Hz]; #X text 84 182 1.arg: -90_degree_frequency [Hz]; #X text 84 193 2.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 154 233 musil; #X text 190 233 @; #X text 199 233 iem.at; #X text 159 255 Graz \, Austria; #X obj 22 133 filter~ dap1 \$1 1 0 \$2; #X text 11 9 ap1_dp~; #X text 83 10 allpass 1.order with double precision; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X connect 0 0 15 0; #X connect 1 0 15 1; #X connect 4 0 15 4; #X connect 15 0 2 0; iemlib-1.20.1/iemabs/lp4_bess~.pd0000644002537200234200000000160411055052215016775 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 56 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 93 67 cutoff_frequency [Hz]; #X text 195 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 161 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp6_crit~.pd0000644002537200234200000000176211055052215017005 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 31 164 ~filtered signal_out~; #X obj 167 86 inlet; #X text 81 189 1.arg: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/bpq2_dp~.pd0000644002537200234200000000160511502274377016626 0ustar zmoelnigiemusers#N canvas 319 273 395 281 10; #X obj 22 42 inlet~; #X obj 55 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 190 112 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 155 112 inlet; #X text 92 64 center_frequency [Hz]; #X text 124 89 Q [-]; #X text 89 10 bandpass 2.order with Q-inlet; #X text 85 176 1.arg: center_frequency [Hz]; #X text 85 185 2.arg: Q [-]; #X text 85 194 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 154 233 musil; #X text 190 233 @; #X text 199 233 iem.at; #X text 159 255 Graz \, Austria; #X text 12 9 bpq2_dp~; #X text 116 25 with double precision; #X obj 22 135 filter~ dbpq2 \$1 \$2 1 \$3; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X connect 0 0 21 0; #X connect 1 0 21 1; #X connect 4 0 21 2; #X connect 7 0 21 4; #X connect 21 0 2 0; iemlib-1.20.1/iemabs/ap2c~.pd0000644002537200234200000000237111055052215016111 0ustar zmoelnigiemusers#N canvas 117 241 454 411 10; #X obj 22 42 inlet~; #X obj 53 63 inlet; #X obj 22 233 outlet~; #X text 62 42 ~signal_in~; #X obj 85 88 inlet; #X text 194 155 interpolation_time [ms]; #X text 32 200 ~filtered signal_out~; #X obj 159 155 inlet; #X text 89 65 -180_degree_frequency [Hz]; #X text 12 9 ap2c~; #X text 60 8 comment; #X text 58 9 allpass 2.order for filter-cascades; #X text 137 235 2.arg: damping [-]; #X text 137 244 3.arg: frequency-shift [-]; #X text 137 254 4.arg: 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 damping [-]; #X text 137 226 1.arg: -180_degree_frequency [Hz]; #X obj 126 111 inlet; #X text 162 111 frequency-shift [-]; #X obj 22 181 filter~ ap2c \$1 \$2 \$3 \$4; #X text 176 365 IEM KUG; #X text 160 353 musil; #X text 190 353 @; #X text 196 353 iem.at; #X text 111 342 (c) Thomas Musil 2000 - 2005; #X text 159 375 Graz \, Austria; #X connect 0 0 25 0; #X connect 1 0 15 0; #X connect 1 0 25 1; #X connect 4 0 25 2; #X connect 7 0 18 0; #X connect 7 0 25 4; #X connect 23 0 25 3; #X connect 25 0 2 0; iemlib-1.20.1/iemabs/hp10_butt~-help.pd0000644002537200234200000000334111055052215020016 0ustar zmoelnigiemusers#N canvas 280 180 395 446 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 96 174 3 15 133 0 - - -; #X obj 96 193 mtof; #X floatatom 96 212 9 0 22000 0 - - -; #X text 160 213 Hz; #X text 57 271 ~signal_out~; #X floatatom 205 273 7 0 0 0 - - -; #X text 257 274 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 49 72 % cpu; #X floatatom 148 237 5 2 9999 0 - - -; #X text 189 238 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 257 151 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 40 339 1.arg: cutoff_freq. [Hz]; #X text 40 349 2.arg: interpolation_time [ms]; #X floatatom 305 308 7 0 0 0 - - -; #X text 357 309 dB; #X text 157 256 <- double-click; #X obj 45 257 hp10_butt~ 440 200; #X text 136 395 IEM KUG; #X text 120 383 musil; #X text 150 383 @; #X text 156 383 iem.at; #X text 71 372 (c) Thomas Musil 2000 - 2005; #X text 119 405 Graz \, Austria; #X text 5 5 hp10_butt~; #X text 81 5 highpass 10.order with butterworth characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp10_cheb~.pd0000644002537200234200000000242311055052215017017 0ustar zmoelnigiemusers#N canvas 350 22 427 307 10; #X obj 22 42 inlet~; #X obj 62 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 99 67 cutoff_frequency [Hz]; #X text 219 86 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: cutoff_frequency [Hz]; #X text 97 236 2.arg: interpolation_time [ms] (opt.); #X text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 11 0; #X connect 1 0 11 1; #X connect 7 0 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 15 0; #X connect 14 1 15 1; #X connect 14 4 15 4; #X connect 15 0 2 0; iemlib-1.20.1/iemabs/hp5_cheb~.pd0000644002537200234200000000203511055052215016736 0ustar zmoelnigiemusers#N canvas 350 22 425 305 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 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: cutoff_frequency [Hz]; #X text 79 205 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 15 0; #X connect 1 0 15 1; #X connect 7 0 15 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; iemlib-1.20.1/iemabs/hp2_butt~.pd0000644002537200234200000000142611055052215017013 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 52 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 89 67 cutoff_frequency [Hz]; #X text 177 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 143 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 0 12 4; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/lp7_butt~.pd0000644002537200234200000000212511055052215017021 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 interpolation_time [ms]; #X text 33 187 ~filtered signal_out~; #X obj 149 86 inlet; #X text 99 205 1.arg: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/bsw2_dp~.pd0000644002537200234200000000163611502274377016643 0ustar zmoelnigiemusers#N canvas 299 265 393 285 10; #X obj 22 42 inlet~; #X obj 55 65 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 191 113 interpolation_time [ms]; #X text 28 157 ~filtered signal_out~; #X obj 155 113 inlet; #X text 91 64 center_frequency [Hz]; #X text 84 9 bandstop 2.order with bandwidth-inlet; #X text 123 89 bandwidth [Hz]; #X text 97 178 1.arg: center_frequency [Hz]; #X text 97 188 2.arg: bandwidth [Hz]; #X text 97 198 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 153 233 musil; #X text 190 233 @; #X text 198 233 iem.at; #X text 159 255 Graz \, Austria; #X text 11 9 bsw2_dp~; #X text 130 24 with double precision; #X obj 22 136 filter~ dbsw2 \$1 \$2 1 \$3; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X connect 0 0 21 0; #X connect 1 0 21 1; #X connect 4 0 21 2; #X connect 7 0 21 4; #X connect 21 0 2 0; iemlib-1.20.1/iemabs/hp4_crit~-help.pd0000644002537200234200000000331711055052215017727 0ustar zmoelnigiemusers#N canvas 280 180 383 452 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 129 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp4_crit~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 6 4 hp4_crit~; #X text 82 4 highpass 4.order with critical damping; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp5_cheb~.pd0000644002537200234200000000203411055052215016741 0ustar zmoelnigiemusers#N canvas 350 22 427 307 10; #X obj 22 43 inlet~; #X obj 58 67 inlet; #X obj 22 231 outlet~; #X text 62 43 ~signal_in~; #X text 95 68 cutoff_frequency [Hz]; #X text 201 87 interpolation_time [ms]; #X text 31 173 ~filtered signal_out~; #X obj 167 87 inlet; #X text 142 18 and +1 dB passband-ripple; #X text 79 196 1.arg: cutoff_frequency [Hz]; #X text 79 206 2.arg: interpolation_time [ms] (opt.); #X text 4 7 lp5_cheb~; #X text 81 6 lowpass 5.order with chebyshev characteristic; #X obj 22 108 lp2c~ \$1 0.1872 1.0814 \$2; #X obj 22 128 lp2c~ \$1 1.128 2.4896 \$2; #X obj 22 149 lp1c~ \$1 3.5711 \$2; #X text 166 256 IEM KUG; #X text 150 244 musil; #X text 180 244 @; #X text 186 244 iem.at; #X text 101 233 (c) Thomas Musil 2000 - 2005; #X text 149 266 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 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; iemlib-1.20.1/iemabs/lp10_butt_d~.pd0000644002537200234200000000225711120267115017404 0ustar zmoelnigiemusers#N canvas 350 22 416 312 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 149 86 inlet; #X text 5 5 lp10_butt~; #X text 81 5 lowpass 10.order with butterworth characteristic; #X text 86 226 1.arg: cutoff_frequency [Hz]; #X text 86 236 2.arg: interpolation_time [ms] (opt.); #X text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X obj 22 107 lp2c_d~ \$1 0.312869 1 \$2; #X obj 22 127 lp2c_d~ \$1 0.907981 1 \$2; #X obj 22 146 lp2c_d~ \$1 1.41421 1 \$2; #X obj 22 167 lp2c_d~ \$1 1.78201 1 \$2; #X obj 22 187 lp2c_d~ \$1 1.97538 1 \$2; #X connect 0 0 18 0; #X connect 1 0 18 1; #X connect 7 0 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 21 0; #X connect 20 1 21 1; #X connect 20 4 21 4; #X connect 21 0 22 0; #X connect 21 1 22 1; #X connect 21 4 22 4; #X connect 22 0 2 0; iemlib-1.20.1/iemabs/unsig~-help.pd0000644002537200234200000000170411502267061017342 0ustar zmoelnigiemusers#N canvas 487 158 394 308 10; #X floatatom 22 215 9 0 0 0 - - -; #X text 28 155 ~signal_in~; #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 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 125 178 1.arg: metro-time in ms; #X text 78 5 counterpart to sig~; #X text 195 268 IEM KUG; #X text 173 256 musil; #X text 209 256 @; #X text 218 256 iem.at; #X text 178 278 Graz \, Austria; #X floatatom 183 134 5 0 0 0 - - -; #X msg 184 112 1000; #X text 229 132 ms; #X text 177 191 (default 300 ms); #X text 130 245 (c) Thomas Musil 2000 - 2010; #X connect 3 0 4 0; #X connect 6 0 0 0; #X connect 7 0 6 0; #X connect 7 0 12 0; #X connect 8 0 3 0; #X connect 12 0 11 0; #X connect 20 0 12 1; #X connect 21 0 20 0; iemlib-1.20.1/iemabs/bsq2_dp~.pd0000644002537200234200000000160711502274377016633 0ustar zmoelnigiemusers#N canvas 299 265 393 285 10; #X obj 22 42 inlet~; #X obj 55 65 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 191 113 interpolation_time [ms]; #X text 28 157 ~filtered signal_out~; #X obj 155 113 inlet; #X text 91 64 center_frequency [Hz]; #X text 123 89 Q [-]; #X text 94 8 bandstop 2.order with Q-inlet; #X text 102 176 1.arg: center_frequency [Hz]; #X text 102 185 2.arg: Q [-]; #X text 102 194 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 154 233 musil; #X text 190 233 @; #X text 198 233 iem.at; #X text 159 255 Graz \, Austria; #X text 11 9 bsq2_dp~; #X text 119 21 with double precision; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X obj 22 136 filter~ dbsq2 \$1 \$2 1 \$3; #X connect 0 0 22 0; #X connect 1 0 22 1; #X connect 4 0 22 2; #X connect 7 0 22 4; #X connect 22 0 2 0; iemlib-1.20.1/iemabs/bs2~.pd0000644002537200234200000000160511055052215015751 0ustar zmoelnigiemusers#N canvas 299 265 427 285 10; #X obj 22 42 inlet~; #X obj 55 65 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 191 113 interpolation_time [ms]; #X text 28 157 ~filtered signal_out~; #X obj 155 113 inlet; #X text 91 64 center_frequency [Hz]; #X text 123 89 Q [-]; #X obj 22 136 filter~ bsq2 \$1 \$2 1 \$3; #X text 102 176 1.arg: center_frequency [Hz]; #X text 102 185 2.arg: Q [-]; #X text 102 194 3.arg: interpolation_time [ms] (opt.); #X text 11 9 bs2~; #X text 66 10 bandstop 2.order with Q-inlet (like bs2~); #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 4 0 10 2; #X connect 7 0 10 4; #X connect 10 0 2 0; iemlib-1.20.1/iemabs/hp5_bess~.pd0000644002537200234200000000176011055052215016775 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 31 164 ~filtered signal_out~; #X obj 167 86 inlet; #X text 81 189 1.arg: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 0 13 4; #X connect 12 0 2 0; #X connect 13 0 14 0; #X connect 13 1 14 1; #X connect 13 4 14 4; #X connect 14 0 12 0; #X connect 14 1 12 1; #X connect 14 4 12 4; iemlib-1.20.1/iemabs/hp7_crit~-help.pd0000644002537200234200000000332411055052215017730 0ustar zmoelnigiemusers#N canvas 279 185 381 450 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 86 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp7_crit~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 5 5 hp7_crit~; #X text 81 5 highpass 7.order with critical damping; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_bp8~.pd0000644002537200234200000000212011055052215016603 0ustar zmoelnigiemusers#N canvas 505 181 453 493 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 108 77 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 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 text 166 435 IEM KUG; #X text 150 423 musil; #X text 180 423 @; #X text 186 423 iem.at; #X text 101 412 (c) Thomas Musil 2000 - 2005; #X text 149 445 Graz \, Austria; #X connect 0 0 15 0; #X connect 5 0 16 0; #X connect 6 0 17 0; #X connect 9 0 10 0; #X connect 10 0 1 0; #X connect 12 0 9 0; #X connect 15 0 12 0; #X connect 16 0 9 1; #X connect 16 0 10 1; #X connect 16 0 12 1; #X connect 16 0 15 1; #X connect 17 0 15 2; #X connect 17 0 12 2; #X connect 17 0 9 2; #X connect 17 0 10 2; iemlib-1.20.1/iemabs/lp9_butt~-help.pd0000644002537200234200000000333311055052215017753 0ustar zmoelnigiemusers#N canvas 280 180 397 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 164 3 15 133 0 - - -; #X obj 93 183 mtof; #X floatatom 93 202 9 0 22000 0 - - -; #X text 157 203 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 257 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 298 7 0 0 0 - - -; #X text 357 299 dB; #X text 157 246 <- double-click; #X obj 45 247 lp9_butt~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -4 lowpass 9.order with butterworth characteristic; #X text 5 -5 lp9_butt~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp4_butt~.pd0000644002537200234200000000160311055052215017016 0ustar zmoelnigiemusers#N canvas 350 22 408 304 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 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: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #X text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 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 2 0; iemlib-1.20.1/iemabs/lp10_butt~.pd0000644002537200234200000000230111055052215017067 0ustar zmoelnigiemusers#N canvas 350 22 408 304 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 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: cutoff_frequency [Hz]; #X text 86 236 2.arg: interpolation_time [ms] (opt.); #X text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 8 0; #X connect 1 0 8 1; #X connect 7 0 8 4; #X connect 8 0 9 0; #X connect 8 1 9 1; #X connect 8 4 9 4; #X connect 9 0 10 0; #X connect 9 1 10 1; #X connect 9 4 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 2 0; iemlib-1.20.1/iemabs/hp4_cheb~-help.pd0000644002537200234200000000340211055052215017662 0ustar zmoelnigiemusers#N canvas 280 180 381 450 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 129 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp4_cheb~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 142 17 and +1 dB passband-ripple; #X text 5 5 hp4_cheb~; #X text 81 5 highpass 4.order with chebyshev characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_hp8~-help.pd0000644002537200234200000000372411055052215017552 0ustar zmoelnigiemusers#N canvas 213 130 451 493 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 33 0 2 0; #X connect 34 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/hp10_cheb~.pd0000644002537200234200000000242411055052215017014 0ustar zmoelnigiemusers#N canvas 350 22 427 307 10; #X obj 22 42 inlet~; #X obj 62 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 99 67 cutoff_frequency [Hz]; #X text 219 86 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: cutoff_frequency [Hz]; #X text 97 236 2.arg: 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 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 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; iemlib-1.20.1/iemabs/my_numbox.pd0000644002537200234200000002055511055052215017107 0ustar zmoelnigiemusers#N canvas 100 190 476 417 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 0 - - -; #X msg 47 84 set \$1; #X floatatom 38 41 7 0 0 0 - - -; #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 4 12 100 300 0 1 foo12_snd foo12_rcv lin. 46 7 0 10 -261689 -90133 -44926 160 256; #X floatatom 47 62 7 0 0 0 - - -; #X floatatom 116 150 9 0 0 0 - - -; #X obj 110 308 r goo13_snd; #X obj 145 248 s goo13_rcv; #X floatatom 105 40 7 0 0 0 - - -; #X floatatom 145 206 7 0 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 4 16 55 3520 1 0 goo13_snd goo13_rcv Hz 68 9 0 17 -225280 -1109 -260818 55 256; #X obj 37 308 ftom; #X floatatom 37 330 9 0 0 0 - - -; #X floatatom 64 287 9 0 0 0 - - -; #X floatatom 110 329 9 0 0 0 - - -; #X text 175 176 click properties to; #X floatatom 37 203 8 0 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 0 - - -; #X floatatom 83 220 3 0 37 0 - - -; #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 0 - - -; #X floatatom 330 246 3 -10 10 0 - - -; #X obj 279 269 pack 0 0; #X obj 292 358 f; #X msg 270 337 bang; #X floatatom 308 336 3 20 60 0 - - -; #X floatatom 343 358 3 150 200 0 - - -; #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 0 - - -; #X floatatom 103 335 3 4 36 0 - - -; #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 0 - - -; #X floatatom 537 291 6 440 3520 0 - - -; #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 0 - - -; #X floatatom 326 133 3 8 50 0 - - -; #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 0 - - -; #X floatatom 79 42 3 0 29 0 - - -; #X floatatom 112 58 3 0 29 0 - - -; #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 0 - - -; #X floatatom 362 52 3 0 255 0 - - -; #X floatatom 405 53 3 0 255 0 - - -; #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 245 216 nbx 3 12 -1e+037 1e+037 0 0 iii iii empty 20 8 0 10 -262144 -1 -1 8 256; #X text 237 11 gui-number-box:; #X obj 245 231 nbx 3 12 -1e+037 1e+037 0 0 iii iii empty 20 8 0 10 -262144 -1 -1 8 256; #X obj 245 246 nbx 3 12 -1e+037 1e+037 0 0 iii iii empty 20 8 0 10 -262144 -1 -1 8 256; #X text 70 377 IEM KUG; #X text 54 365 musil; #X text 84 365 @; #X text 90 365 iem.at; #X text 5 354 (c) Thomas Musil 2000 - 2005; #X text 53 387 Graz \, Austria; #X obj 184 45 x_all_guis aaa bbb ccc ddd eee fff ggg hhh; #X obj 208 71 nbx 3 12 -1e+037 1e+037 0 0 hhh hhh empty 20 8 0 10 -262144 -1 -1 8 256; #X connect 1 0 4 0; #X connect 2 0 6 0; #X connect 3 0 6 0; #X connect 5 0 6 0; #X connect 6 0 1 0; #X connect 6 0 14 0; #X connect 7 0 2 0; #X connect 9 0 19 0; #X connect 11 0 27 0; #X connect 12 0 28 0; #X connect 14 0 13 0; #X connect 15 0 18 0; #X connect 15 0 16 0; #X connect 16 0 17 0; #X connect 21 0 22 0; #X connect 22 0 15 0; #X connect 26 0 8 0; #X connect 27 0 25 0; #X connect 28 0 10 0; iemlib-1.20.1/iemabs/hradio.pd0000644002537200234200000001617011055052215016336 0ustar zmoelnigiemusers#N canvas 162 67 349 487 10; #X obj 1 1 cnv 8 100 60 empty empty hradio 20 20 1 18 -262144 -1109 0; #X text 172 142 click properties to; #X text 160 153 modify geometry \, colors \, etc.; #X obj 60 264 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 216 s foo11_rcv; #X obj 60 242 r foo11_snd; #X floatatom 21 398 4 0 0 0 - - -; #X obj 21 420 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X msg 157 73 set \$1; #X floatatom 157 52 4 0 9 0 - - -; #X floatatom 44 54 4 0 9 0 - - -; #X msg 84 50 7 0 -5.44; #X msg 88 72 3 3 4.55; #X obj 58 392 print; #X floatatom 84 290 4 0 0 0 - - -; #X msg 84 264 \$1; #X msg 59 195 set \$1; #X floatatom 59 174 4 0 9 0 - - -; #X text 60 334 UP- \, DOWN- \, LEFT- or RIGHT-key; #X text 59 345 for moving selected gui-objects; #N canvas 222 207 703 534 edit 0; #X obj 42 198 f; #X msg 20 177 bang; #X floatatom 58 176 3 63 156 0 - - -; #X floatatom 93 198 3 -20 37 0 - - -; #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 0 - - -; #X text 297 187 size; #X obj 286 293 f; #X msg 264 272 bang; #X floatatom 302 271 3 -10 10 0 - - -; #X floatatom 337 293 3 -10 10 0 - - -; #X obj 286 316 pack 0 0; #X obj 300 412 f; #X msg 278 391 bang; #X floatatom 316 390 3 20 60 0 - - -; #X floatatom 351 412 3 100 200 0 - - -; #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 0 - - -; #X floatatom 113 313 3 4 36 0 - - -; #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 0 - - -; #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 0 - - -; #X floatatom 79 46 3 0 29 0 - - -; #X floatatom 112 62 3 0 29 0 - - -; #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 0 - - -; #X floatatom 370 55 3 0 255 0 - - -; #X floatatom 413 56 3 0 255 0 - - -; #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 230 pd edit; #X text 88 316 updated for Pd version 0.34; #X text 133 437 IEM KUG; #X text 117 425 musil; #X text 147 425 @; #X text 153 425 iem.at; #X text 68 414 (c) Thomas Musil 2000 - 2005; #X text 116 447 Graz \, Austria; #X obj 21 118 hradio 25 1 0 10 foo11_snd foo11_rcv radio_0_9 132 -12 0 10 -99865 -262144 -260818 9; #X text 144 11 gui-horizontal radiobutton:; #X text 29 142 float out; #X obj 231 46 hradio 8 1 0 8 hhh hhh empty 0 -6 0 8 -262144 -1 -1 0 ; #X obj 231 56 hradio 8 1 0 8 hhh hhh empty 0 -6 0 8 -262144 -1 -1 0 ; #X obj 231 66 hradio 8 1 0 8 hhh hhh empty 0 -6 0 8 -262144 -1 -1 0 ; #X connect 4 0 29 0; #X connect 6 0 3 0; #X connect 6 0 16 0; #X connect 7 0 8 0; #X connect 9 0 29 0; #X connect 10 0 9 0; #X connect 11 0 29 0; #X connect 12 0 29 0; #X connect 13 0 29 0; #X connect 16 0 15 0; #X connect 17 0 5 0; #X connect 18 0 17 0; #X connect 29 0 7 0; #X connect 29 0 14 0; iemlib-1.20.1/iemabs/once-help.pd0000644002537200234200000000173011055052215016736 0ustar zmoelnigiemusers#N canvas 231 172 401 466 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 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 text 115 408 IEM KUG; #X text 99 396 musil; #X text 129 396 @; #X text 135 396 iem.at; #X text 50 385 (c) Thomas Musil 2000 - 2005; #X text 98 418 Graz \, Austria; #X text 122 372 @; #X text 128 372 iem.at; #X text 50 372 (c) zmoelnig; #X connect 1 0 9 0; #X connect 2 0 9 1; #X connect 3 0 9 0; #X connect 4 0 9 0; #X connect 5 0 9 0; #X connect 6 0 9 0; #X connect 7 0 9 0; #X connect 8 0 9 0; #X connect 9 0 0 0; iemlib-1.20.1/iemabs/hp2_bess~-help.pd0000644002537200234200000000333011055052215017713 0ustar zmoelnigiemusers#N canvas 280 180 387 456 10; #X text 23 222 ~signal_in~; #X text 28 21 dsp ON/OFF; #X floatatom 114 148 3 15 133 0 - - -; #X obj 114 167 mtof; #X floatatom 114 186 9 0 22000 0 - - -; #X text 178 187 Hz; #X text 78 251 ~signal_out~; #X floatatom 221 252 7 0 0 0 - - -; #X text 272 253 dB; #X floatatom 139 120 9 0 22000 0 - - -; #X text 203 121 Hz; #X floatatom 66 81 3 15 133 0 - - -; #X floatatom 11 61 5 0 0 0 - - -; #X text 48 62 % cpu; #X floatatom 163 216 5 2 9999 0 - - -; #X text 204 217 ms; #X obj 11 41 dsp; #X obj 11 21 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 66 296 dac~; #X obj 66 271 gainvu~ 300; #X obj 277 130 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 341 140 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 66 100 testtone~ 200; #X obj 150 64 init 69; #X text 93 82 midi; #X text 80 320 1.arg: cutoff_freq. [Hz]; #X text 59 330 2.arg: interpolation_time [ms]; #X floatatom 307 288 7 0 0 0 - - -; #X text 358 289 dB; #X text 172 236 <- double-click; #X obj 66 237 hp2_bess~ 440 200; #X text 78 387 IEM KUG; #X text 62 375 musil; #X text 92 375 @; #X text 98 375 iem.at; #X text 13 364 (c) Thomas Musil 2000 - 2005; #X text 61 397 Graz \, Austria; #X text 9 -4 hp2_bess~; #X text 85 -4 highpass 2.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp1~.pd0000644002537200234200000000136011055052215015751 0ustar zmoelnigiemusers#N canvas 274 213 379 285 10; #X obj 22 42 inlet~; #X obj 52 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X text 89 64 cutoff_frequency [Hz]; #X obj 143 85 inlet; #X text 181 84 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 92 192 2.arg: interpolation_time [ms] (opt.); #X text 92 182 1.arg: cutoff_frequency [Hz]; #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 8 0; #X connect 1 0 8 1; #X connect 5 0 8 4; #X connect 8 0 2 0; iemlib-1.20.1/iemabs/lp2c_dp~.pd0000644002537200234200000000233311502274377016621 0ustar zmoelnigiemusers#N canvas 400 218 417 389 10; #X obj 22 42 inlet~; #X obj 56 63 inlet; #X obj 22 194 outlet~; #X text 62 42 ~signal_in~; #X text 93 64 cutoff_frequency [Hz]; #X obj 91 87 inlet; #X text 195 136 interpolation_time [ms]; #X text 32 176 ~filtered signal_out~; #X obj 126 111 inlet; #X text 77 8 lowpass 2.order for filter-cascades; #X obj 161 136 inlet; #X text 127 87 damping [-]; #X text 162 111 frequency-shift [-]; #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: cutoff_frequency [Hz]; #X text 128 199 2.arg: damping [-]; #X text 128 208 3.arg: frequency-shift [-]; #X text 128 218 4.arg: interpolation_time [ms] (opt.); #X text 176 325 IEM KUG; #X text 154 313 musil; #X text 190 313 @; #X text 198 313 iem.at; #X text 159 335 Graz \, Austria; #X obj 22 157 filter~ dlp2c \$1 \$2 \$3 \$4; #X text 12 8 lp2c_dp~; #X text 129 23 with double precision; #X text 111 302 (c) Thomas Musil 2000 - 2010; #X connect 0 0 28 0; #X connect 1 0 13 0; #X connect 1 0 28 1; #X connect 5 0 28 2; #X connect 8 0 28 3; #X connect 10 0 16 0; #X connect 10 0 28 4; #X connect 28 0 2 0; iemlib-1.20.1/iemabs/fadtorms-help.pd0000644002537200234200000000115411055052215017631 0ustar zmoelnigiemusers#N canvas 157 156 393 282 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 7 8 fadtorms; #X text 80 9 convert fader-scale to rms-value; #X text 244 194 IEM KUG; #X text 228 182 musil; #X text 258 182 @; #X text 264 182 iem.at; #X text 179 171 (c) Thomas Musil 2000 - 2005; #X text 227 204 Graz \, Austria; #X connect 0 0 3 0; #X connect 2 0 4 0; #X connect 3 0 1 1; #X connect 4 0 0 0; iemlib-1.20.1/iemabs/hp8_butt~-help.pd0000644002537200234200000000333611055052215017751 0ustar zmoelnigiemusers#N canvas 280 183 397 448 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 175 3 15 133 0 - - -; #X obj 93 194 mtof; #X floatatom 93 213 9 0 22000 0 - - -; #X text 157 214 Hz; #X text 57 271 ~signal_out~; #X floatatom 205 273 7 0 0 0 - - -; #X text 257 274 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 49 72 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 252 151 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 324 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 40 339 1.arg: cutoff_freq. [Hz]; #X text 40 349 2.arg: interpolation_time [ms]; #X floatatom 305 306 7 0 0 0 - - -; #X text 357 307 dB; #X text 152 256 <- double-click; #X obj 45 257 hp8_butt~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 5 5 hp8_butt~; #X text 81 5 highpass 8.order with butterworth characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/rbpw2~.pd0000644002537200234200000000163311055052215016320 0ustar zmoelnigiemusers#N canvas 313 255 417 285 10; #X obj 22 42 inlet~; #X obj 56 64 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 91 88 inlet; #X text 196 110 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 161 110 inlet; #X text 93 65 center_frequency [Hz]; #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 bandwith [Hz]; #X text 97 174 1.arg: center_frequency [Hz]; #X text 97 183 2.arg: bandwidth [Hz]; #X text 97 192 3.arg: interpolation_time [ms] (opt.); #X text 166 245 IEM KUG; #X text 150 233 musil; #X text 180 233 @; #X text 186 233 iem.at; #X text 101 222 (c) Thomas Musil 2000 - 2005; #X text 149 255 Graz \, Austria; #X connect 0 0 11 0; #X connect 1 0 11 1; #X connect 4 0 11 2; #X connect 7 0 11 4; #X connect 11 0 2 0; iemlib-1.20.1/iemabs/divl~.pd0000644002537200234200000000167211055052215016225 0ustar zmoelnigiemusers#N canvas 324 150 410 327 10; #X obj 22 42 inlet~; #X obj 35 67 inlet; #X obj 22 238 outlet~; #X text 62 42 ~signal_in~; #X obj 90 112 inlet; #X text 125 113 interpolation_time [ms]; #X text 69 239 ~signal_out~; #X obj 35 194 line~; #X obj 41 135 loadbang; #X text 119 191 2.arg: interpolation_time [ms]; #X text 72 66 division-coefficient or; #X text 72 78 division-coefficient + interpol_time [ms]; #X text 119 180 1.arg: 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 text 176 285 IEM KUG; #X text 160 273 musil; #X text 190 273 @; #X text 196 273 iem.at; #X text 111 262 (c) Thomas Musil 2000 - 2005; #X text 159 295 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 15 0; #X connect 4 0 15 1; #X connect 7 0 13 1; #X connect 8 0 15 0; #X connect 13 0 2 0; #X connect 15 0 7 0; iemlib-1.20.1/iemabs/lp3_butt~.pd0000644002537200234200000000156411055052215017023 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 43 65 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 80 66 cutoff_frequency [Hz]; #X text 141 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 107 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp10_bess~-help.pd0000644002537200234200000000333411055052215017776 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 96 169 3 15 133 0 - - -; #X obj 96 188 mtof; #X floatatom 96 207 9 0 22000 0 - - -; #X text 160 208 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 148 237 5 2 9999 0 - - -; #X text 189 238 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 159 258 <- double-click; #X obj 45 257 hp10_bess~ 440 200; #X text 136 395 IEM KUG; #X text 120 383 musil; #X text 150 383 @; #X text 156 383 iem.at; #X text 71 372 (c) Thomas Musil 2000 - 2005; #X text 119 405 Graz \, Austria; #X text 5 5 hp10_bess~; #X text 81 5 highpass 10.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/gainvu~.pd0000644002537200234200000000177611055052215016565 0ustar zmoelnigiemusers#N canvas 157 220 303 364 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 48 186 1.arg: 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 text 136 325 IEM KUG; #X text 120 313 musil; #X text 150 313 @; #X text 156 313 iem.at; #X text 71 302 (c) Thomas Musil 2000 - 2005; #X text 119 335 Graz \, Austria; #X connect 0 0 10 0; #X connect 0 0 20 0; #X connect 1 0 4 1; #X connect 3 0 4 0; #X connect 4 0 8 0; #X connect 4 0 16 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 16 0 5 0; #X connect 20 0 19 0; iemlib-1.20.1/iemabs/bs2_dp~.pd0000644002537200234200000000160711502274377016452 0ustar zmoelnigiemusers#N canvas 299 265 427 285 10; #X obj 22 42 inlet~; #X obj 55 65 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 191 113 interpolation_time [ms]; #X text 28 157 ~filtered signal_out~; #X obj 155 113 inlet; #X text 91 64 center_frequency [Hz]; #X text 123 89 Q [-]; #X text 102 176 1.arg: center_frequency [Hz]; #X text 102 185 2.arg: Q [-]; #X text 102 194 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 154 233 musil; #X text 190 233 @; #X text 198 233 iem.at; #X text 159 255 Graz \, Austria; #X text 11 9 bs2_dp~; #X text 136 24 with double precision; #X text 92 10 bandstop 2.order with Q-inlet; #X obj 22 136 filter~ dbsq2 \$1 \$2 1 \$3; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X connect 0 0 21 0; #X connect 1 0 21 1; #X connect 4 0 21 2; #X connect 7 0 21 4; #X connect 21 0 2 0; iemlib-1.20.1/iemabs/xx_xx.wav0000644002537200234200000000013210536420427016436 0ustar zmoelnigiemusers0.800011 0.800011 -0.571436 -0.571436 0.31429 0.31429 0.31429 -0.657152 0.671438 0.671438 iemlib-1.20.1/iemabs/output~.pd0000644002537200234200000000114611055052215016623 0ustar zmoelnigiemusers#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; iemlib-1.20.1/iemabs/bp2~.pd0000644002537200234200000000160311055052215015744 0ustar zmoelnigiemusers#N canvas 319 273 399 285 10; #X obj 22 42 inlet~; #X obj 55 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 190 112 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 155 112 inlet; #X text 92 64 center_frequency [Hz]; #X text 124 89 Q [-]; #X obj 22 134 filter~ bpq2 \$1 \$2 1 \$3; #X text 85 176 1.arg: center_frequency [Hz]; #X text 85 185 2.arg: Q [-]; #X text 85 194 3.arg: interpolation_time [ms] (opt.); #X text 12 9 bp2~; #X text 56 10 bandpass 2.order with Q-inlet (like bpq2~); #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 4 0 10 2; #X connect 7 0 10 4; #X connect 10 0 2 0; iemlib-1.20.1/iemabs/lp9_bess~-help.pd0000644002537200234200000000332611055052215017733 0ustar zmoelnigiemusers#N canvas 280 180 385 454 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 159 3 15 133 0 - - -; #X obj 93 178 mtof; #X floatatom 93 197 9 0 22000 0 - - -; #X text 157 198 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 159 248 <- double-click; #X obj 45 247 lp9_bess~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 85 -4 lowpass 9.order with bessel characteristic; #X text 9 -4 lp9_bess~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp10_butt~.pd0000644002537200234200000000231611055052215017071 0ustar zmoelnigiemusers#N canvas 350 22 408 304 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 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: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #X text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp4_butt~-help.pd0000644002537200234200000000333111055052215017740 0ustar zmoelnigiemusers#N canvas 280 180 399 450 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 175 3 15 133 0 - - -; #X obj 93 194 mtof; #X floatatom 93 213 9 0 22000 0 - - -; #X text 157 214 Hz; #X text 57 271 ~signal_out~; #X floatatom 205 273 7 0 0 0 - - -; #X text 257 274 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 49 72 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 252 151 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 324 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 108 84 init 69; #X text 72 102 midi; #X text 40 339 1.arg: cutoff_freq. [Hz]; #X text 40 349 2.arg: interpolation_time [ms]; #X floatatom 305 306 7 0 0 0 - - -; #X text 357 307 dB; #X text 152 256 <- double-click; #X obj 45 257 hp4_butt~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 5 5 hp4_butt~; #X text 81 5 highpass 4.order with butterworth characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/once.pd0000644002537200234200000000223211055052215016006 0ustar zmoelnigiemusers#N canvas 234 143 390 422 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 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 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 text 96 375 IEM KUG; #X text 80 363 musil; #X text 110 363 @; #X text 116 363 iem.at; #X text 31 352 (c) Thomas Musil 2000 - 2005; #X text 79 385 Graz \, Austria; #X text 102 336 @; #X text 108 336 iem.at; #X text 30 336 (c) zmoelnig; #X connect 0 0 4 0; #X connect 1 0 15 0; #X connect 2 0 0 0; #X connect 2 1 3 0; #X connect 3 0 0 1; #X connect 3 0 17 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 15 0 16 0; #X connect 15 1 2 0; #X connect 16 0 17 0; #X connect 16 1 3 0; #X connect 17 0 18 0; #X connect 18 0 6 0; #X connect 18 1 5 0; iemlib-1.20.1/iemabs/hp5_butt~-help.pd0000644002537200234200000000333111055052215017741 0ustar zmoelnigiemusers#N canvas 280 180 399 450 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 165 3 15 133 0 - - -; #X obj 93 184 mtof; #X floatatom 93 203 9 0 22000 0 - - -; #X text 157 204 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 252 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 324 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 296 7 0 0 0 - - -; #X text 357 297 dB; #X text 152 246 <- double-click; #X obj 45 247 hp5_butt~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 5 -5 hp5_butt~; #X text 81 -5 highpass 5.order with butterworth characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp9_bess~.pd0000644002537200234200000000231711055052215017004 0ustar zmoelnigiemusers#N canvas 350 22 420 316 10; #X obj 22 42 inlet~; #X obj 58 65 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 66 cutoff_frequency [Hz]; #X text 203 86 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 167 86 inlet; #X text 95 226 1.arg: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 285 IEM KUG; #X text 160 273 musil; #X text 190 273 @; #X text 196 273 iem.at; #X text 111 262 (c) Thomas Musil 2000 - 2005; #X text 159 295 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/split3-help.pd0000644002537200234200000000215411055052215017231 0ustar zmoelnigiemusers#N canvas 290 163 431 327 10; #X floatatom 19 243 9 0 0 0 - - -; #X floatatom 19 76 9 0 0 0 - - -; #X text 15 11 split3; #X floatatom 64 99 9 0 0 0 - - -; #X floatatom 110 123 9 0 0 0 - - -; #X floatatom 64 218 9 0 0 0 - - -; #X floatatom 110 192 9 0 0 0 - - -; #X text 81 75 input; #X text 127 99 low-limit; #X text 83 244 output within; #X text 128 219 output less than low-limit; #X text 175 193 output greater than high-limit; #X text 175 123 high-limit; #X text 129 147 1.arg: low-limit; #X text 129 159 2.arg: high-limit; #X obj 19 152 split3 -7.5 13.5; #X text 77 11 part a -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 text 115 288 IEM KUG; #X text 99 276 musil; #X text 129 276 @; #X text 135 276 iem.at; #X text 50 265 (c) Thomas Musil 2000 - 2005; #X text 98 298 Graz \, Austria; #X connect 1 0 15 0; #X connect 3 0 15 1; #X connect 4 0 15 2; #X connect 15 0 0 0; #X connect 15 1 5 0; #X connect 15 2 6 0; iemlib-1.20.1/iemabs/hp1c~.pd0000644002537200234200000000220511055052215016113 0ustar zmoelnigiemusers#N canvas 325 243 417 352 10; #X obj 22 42 inlet~; #X obj 55 66 inlet; #X obj 22 196 outlet~; #X text 62 42 ~signal_in~; #X text 92 67 cutoff_frequency [Hz]; #X text 189 134 interpolation_time [ms]; #X text 32 176 ~filtered signal_out~; #X obj 88 93 inlet; #X obj 155 134 inlet; #X text 124 93 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: cutoff_frequency [Hz]; #X text 120 202 2.arg: frequency-shift [-]; #X text 120 212 3.arg: interpolation_time [ms] (opt.); #X text 176 315 IEM KUG; #X text 160 303 musil; #X text 190 303 @; #X text 196 303 iem.at; #X text 111 292 (c) Thomas Musil 2000 - 2005; #X text 159 325 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 1 0 13 0; #X connect 7 0 12 2; #X connect 8 0 12 4; #X connect 8 0 16 0; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/hp9_cheb~.pd0000644002537200234200000000240011055052215016736 0ustar zmoelnigiemusers#N canvas 350 22 427 307 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 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: cutoff_frequency [Hz]; #X text 97 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 17 0; #X connect 1 0 17 1; #X connect 7 0 17 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; #X connect 17 0 16 0; #X connect 17 1 16 1; #X connect 17 4 16 4; iemlib-1.20.1/iemabs/ap2~.pd0000644002537200234200000000157411055052215015752 0ustar zmoelnigiemusers#N canvas 269 270 379 285 10; #X obj 22 42 inlet~; #X obj 53 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 85 88 inlet; #X text 184 113 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 149 113 inlet; #X text 121 88 quality [-]; #X text 12 9 ap2~; #X text 60 8 allpass 2.order; #X text 89 65 -180_degree_frequency [Hz]; #X obj 22 134 filter~ ap2 \$1 \$2 1 \$3; #X text 82 174 1.arg: -180_degree_frequency [Hz]; #X text 82 183 2.arg: quality [-]; #X text 82 193 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 4 0 12 2; #X connect 7 0 12 4; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/lp6_cheb~-help.pd0000644002537200234200000000340311055052215017671 0ustar zmoelnigiemusers#N canvas 280 180 381 450 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp6_cheb~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 142 7 and +1 dB passband-ripple; #X text 81 -5 lowpass 6.order with chebyshev characteristic; #X text 5 -5 lp6_cheb~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_rbp8~.pd0000644002537200234200000000214311055052215016772 0ustar zmoelnigiemusers#N canvas 216 218 455 495 10; #X obj 20 48 inlet~; #X obj 21 357 outlet~; #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 Q [-]; #X text 112 79 center_frequency [Hz]; #X text 167 20 for frequency and Q; #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 text 166 415 IEM KUG; #X text 150 403 musil; #X text 180 403 @; #X text 186 403 iem.at; #X text 101 392 (c) Thomas Musil 2000 - 2005; #X text 149 425 Graz \, Austria; #X connect 0 0 13 0; #X connect 5 0 17 0; #X connect 6 0 16 0; #X connect 10 0 11 0; #X connect 11 0 1 0; #X connect 12 0 10 0; #X connect 13 0 12 0; #X connect 16 0 13 2; #X connect 16 0 12 2; #X connect 16 0 10 2; #X connect 16 0 11 2; #X connect 17 0 10 1; #X connect 17 0 11 1; #X connect 17 0 12 1; #X connect 17 0 13 1; iemlib-1.20.1/iemabs/vcf_hp4~-help.pd0000644002537200234200000000372411055052215017546 0ustar zmoelnigiemusers#N canvas 213 130 449 491 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 36 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 36 1; #X connect 29 0 36 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 33 0 2 0; #X connect 34 0 15 0; #X connect 36 0 19 0; iemlib-1.20.1/iemabs/maverage~-help.pd0000644002537200234200000000275411055052215020006 0ustar zmoelnigiemusers#N canvas 97 84 730 428 10; #X floatatom 23 284 9 0 0 0 - - -; #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 0 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 [ms] \; 2.arg: average-time [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 average-time [ms] (1.45 .. 1000 ms) ; #X text 175 378 IEM KUG; #X text 159 366 musil; #X text 189 366 @; #X text 195 366 iem.at; #X text 110 355 (c) Thomas Musil 2000 - 2005; #X text 158 388 Graz \, Austria; #X connect 2 0 3 0; #X connect 5 0 0 0; #X connect 6 0 2 0; #X connect 7 0 18 0; #X connect 8 0 5 0; #X connect 8 0 19 0; #X connect 10 0 9 0; #X connect 17 0 8 0; #X connect 18 0 8 1; #X connect 19 0 10 0; #X connect 20 0 19 1; iemlib-1.20.1/iemabs/bpq2~-help.pd0000644002537200234200000000332211502263561017060 0ustar zmoelnigiemusers#N canvas 375 118 381 493 10; #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 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 51 338 7 0 0 0 - - -; #X text 102 339 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: Q [-]; #X text 26 361 1.arg: center_freq. [Hz]; #X text 26 381 3.arg: interpolation_time [ms]; #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 8000 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 10 bandpass 2.order with Q-inlet; #X obj 10 17 cnv 8 1 1 empty empty bpq2~ 1 2 1 18 -262144 -1109 0; #X text 184 453 IEM KUG; #X text 164 441 musil; #X text 198 441 @; #X text 206 441 iem.at; #X text 167 463 Graz \, Austria; #X text 119 430 (c) Thomas Musil 2000 - 2010; #X connect 3 0 1 0; #X connect 4 0 3 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 8 0 18 1; #X connect 15 0 27 0; #X connect 16 0 18 3; #X connect 18 0 24 0; #X connect 19 0 18 2; #X connect 24 1 30 0; #X connect 24 2 25 0; #X connect 25 1 11 0; #X connect 26 0 24 1; #X connect 27 0 18 0; #X connect 27 1 13 0; #X connect 28 0 15 0; iemlib-1.20.1/iemabs/hp3_bess~.pd0000644002537200234200000000157611055052215017000 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 167 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 0 13 4; #X connect 12 0 2 0; #X connect 13 0 12 0; #X connect 13 1 12 1; #X connect 13 4 12 4; iemlib-1.20.1/iemabs/hp8_cheb~-help.pd0000644002537200234200000000340711055052215017673 0ustar zmoelnigiemusers#N canvas 280 180 377 446 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 86 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp8_cheb~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 142 17 and +1 dB passband-ripple; #X text 5 5 hp8_cheb~; #X text 81 5 highpass 8.order with chebyshev characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/round~.pd0000644002537200234200000000124711055052215016414 0ustar zmoelnigiemusers#N canvas 323 149 393 329 10; #X obj 22 42 inlet~; #X obj 22 238 outlet~; #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 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 text 166 285 IEM KUG; #X text 150 273 musil; #X text 180 273 @; #X text 186 273 iem.at; #X text 101 262 (c) Thomas Musil 2000 - 2005; #X text 149 295 Graz \, Austria; #X connect 0 0 7 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 9 0 6 0; iemlib-1.20.1/iemabs/hp9_bess~.pd0000644002537200234200000000232011055052215016772 0ustar zmoelnigiemusers#N canvas 350 22 418 314 10; #X obj 22 42 inlet~; #X obj 58 65 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 66 cutoff_frequency [Hz]; #X text 203 86 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 167 86 inlet; #X text 95 226 1.arg: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 16 0; #X connect 1 0 16 1; #X connect 7 0 16 4; #X connect 12 0 2 0; #X connect 13 0 12 0; #X connect 13 1 12 1; #X connect 13 4 12 4; #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; iemlib-1.20.1/iemabs/hp5_bess~-help.pd0000644002537200234200000000332411055052215017721 0ustar zmoelnigiemusers#N canvas 280 180 383 452 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp5_bess~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 5 5 hp5_bess~; #X text 81 5 highpass 5.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp1_dp~-help.pd0000644002537200234200000000314111502274377017375 0ustar zmoelnigiemusers#N canvas 245 78 377 495 10; #X text 7 256 ~signal_in~; #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 51 327 7 0 0 0 - - -; #X text 102 328 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 137 246 5 2 9999 0 - - -; #X text 178 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 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 8000 1; #X obj 50 134 testtone~ 200; #X obj 114 100 init 69; #X text 77 116 midi; #X text 14 355 1.arg: cutoff_freq. [Hz]; #X text 14 365 2.arg: interpolation_time [ms]; #X floatatom 280 320 7 0 0 0 - - -; #X text 331 321 dB; #X obj 13 15 cnv 8 1 1 empty empty hp1_dp~ 1 2 1 18 -262144 -1109 0 ; #X text 78 427 IEM KUG; #X text 56 415 musil; #X text 92 415 @; #X text 101 415 iem.at; #X text 61 437 Graz \, Austria; #X text 13 404 (c) Thomas Musil 2000 - 2010; #X text 102 8 highpass 1.order with double precision; #X obj 50 271 hp1_dp~ 440 200; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 36 1; #X connect 11 0 21 0; #X connect 14 0 36 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 18 1 26 0; #X connect 18 2 19 0; #X connect 19 1 7 0; #X connect 20 0 18 1; #X connect 21 0 36 0; #X connect 21 1 9 0; #X connect 22 0 11 0; #X connect 36 0 18 0; iemlib-1.20.1/iemabs/hp10_bess~.pd0000644002537200234200000000233211055052215017045 0ustar zmoelnigiemusers#N canvas 350 22 410 306 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 85 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 167 85 inlet; #X text 95 226 1.arg: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 16 0; #X connect 1 0 16 1; #X connect 7 0 16 4; #X connect 12 0 2 0; #X connect 13 0 12 0; #X connect 13 1 12 1; #X connect 13 4 12 4; #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; iemlib-1.20.1/iemabs/hp9_crit~-help.pd0000644002537200234200000000332411055052215017732 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 169 3 15 133 0 - - -; #X obj 93 188 mtof; #X floatatom 93 207 9 0 22000 0 - - -; #X text 157 208 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 237 5 2 9999 0 - - -; #X text 183 238 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 159 258 <- double-click; #X obj 45 257 hp9_crit~ 440 200; #X text 136 395 IEM KUG; #X text 120 383 musil; #X text 150 383 @; #X text 156 383 iem.at; #X text 71 372 (c) Thomas Musil 2000 - 2005; #X text 119 405 Graz \, Austria; #X text 5 5 hp9_crit~; #X text 81 5 highpass 9.order with critical damping; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp4_crit~.pd0000644002537200234200000000157411055052215017010 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 55 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 92 67 cutoff_frequency [Hz]; #X text 189 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 155 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/subl~-help.pd0000644002537200234200000000164111055052215017156 0ustar zmoelnigiemusers#N canvas 375 118 378 462 10; #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: interpolation_time [ms]; #X obj 46 271 unsig~; #X floatatom 46 294 9 0 22000 0 - - -; #X obj 46 141 sig~ 1; #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: 2nd operand of subtraction; #X text 115 418 IEM KUG; #X text 99 406 musil; #X text 129 406 @; #X text 135 406 iem.at; #X text 50 395 (c) Thomas Musil 2000 - 2005; #X text 98 428 Graz \, Austria; #X connect 1 0 14 1; #X connect 4 0 14 2; #X connect 6 0 2 0; #X connect 7 0 6 0; #X connect 9 0 10 0; #X connect 11 0 14 0; #X connect 14 0 9 0; iemlib-1.20.1/iemabs/bng.pd0000644002537200234200000001573411055052215015643 0ustar zmoelnigiemusers#N canvas 158 62 453 365 10; #X obj 1 1 cnv 8 100 60 empty empty bng 20 20 1 18 -262144 -1109 0 ; #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 0 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 0 - - -; #X floatatom 90 197 3 0 37 0 - - -; #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 0 - - -; #X text 286 143 size; #X obj 279 236 f; #X msg 257 215 bang; #X floatatom 295 214 3 -10 10 0 - - -; #X floatatom 330 236 3 -10 10 0 - - -; #X obj 279 259 pack 0 0; #X obj 304 348 f; #X msg 282 327 bang; #X floatatom 320 326 3 20 90 0 - - -; #X floatatom 355 348 3 150 200 0 - - -; #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 0 - - -; #X floatatom 110 312 3 4 36 0 - - -; #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 0 - - -; #X floatatom 544 261 5 100 3000 0 - - -; #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 0 - - -; #X floatatom 79 56 3 0 29 0 - - -; #X floatatom 112 72 3 0 29 0 - - -; #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 0 - - -; #X floatatom 370 65 3 0 255 0 - - -; #X floatatom 413 66 3 0 255 0 - - -; #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 obj 248 31 bng 15 250 50 0 aaa aaa empty 20 8 0 8 -262144 -1 -1 ; #X obj 178 11 x_all_guis aaa bbb ccc ddd eee fff ggg; #X text 203 307 IEM KUG; #X text 187 295 musil; #X text 217 295 @; #X text 223 295 iem.at; #X text 138 284 (c) Thomas Musil 2000 - 2005; #X text 186 317 Graz \, Austria; #X connect 4 0 3 0; #X connect 6 0 7 0; #X connect 7 0 5 0; #X connect 7 0 4 0; #X connect 8 0 7 0; #X connect 9 0 7 0; #X connect 10 0 7 0; #X connect 11 0 7 0; #X connect 12 0 7 0; #X connect 15 0 17 0; #X connect 16 0 14 0; #X connect 18 0 7 0; iemlib-1.20.1/iemabs/lp8_bess~.pd0000644002537200234200000000214711055052215017004 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 33 187 ~filtered signal_out~; #X obj 167 86 inlet; #X text 99 205 1.arg: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp6_crit~-help.pd0000644002537200234200000000332411055052215017727 0ustar zmoelnigiemusers#N canvas 280 180 381 450 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp6_crit~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 5 5 hp6_crit~; #X text 81 5 highpass 6.order with critical damping; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp1c~.pd0000644002537200234200000000220411055052215016116 0ustar zmoelnigiemusers#N canvas 406 261 397 357 10; #X obj 22 42 inlet~; #X obj 55 66 inlet; #X obj 22 194 outlet~; #X text 62 42 ~signal_in~; #X text 92 67 cutoff_frequency [Hz]; #X text 189 134 interpolation_time [ms]; #X text 32 176 ~filtered signal_out~; #X obj 88 93 inlet; #X obj 155 134 inlet; #X text 124 93 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: cutoff_frequency [Hz]; #X text 120 202 2.arg: frequency-shift [-]; #X text 120 212 3.arg: interpolation_time [ms] (opt.); #X text 176 315 IEM KUG; #X text 160 303 musil; #X text 190 303 @; #X text 196 303 iem.at; #X text 111 292 (c) Thomas Musil 2000 - 2005; #X text 159 325 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 1 0 13 0; #X connect 7 0 12 2; #X connect 8 0 12 4; #X connect 8 0 16 0; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/lp7_crit~-help.pd0000644002537200234200000000332111055052215017731 0ustar zmoelnigiemusers#N canvas 280 180 387 456 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp7_crit~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 7.order with critical damping; #X text 5 -5 lp7_crit~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/vcf_lp6~-help.pd0000644002537200234200000000372411055052215017554 0ustar zmoelnigiemusers#N canvas 213 130 449 488 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 33 0 2 0; #X connect 34 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/vcf_lp6~.pd0000644002537200234200000000176311055052215016627 0ustar zmoelnigiemusers#N canvas 216 218 451 491 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 110 77 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 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 text 166 425 IEM KUG; #X text 150 413 musil; #X text 180 413 @; #X text 186 413 iem.at; #X text 101 402 (c) Thomas Musil 2000 - 2005; #X text 149 435 Graz \, Austria; #X connect 0 0 14 0; #X connect 5 0 15 0; #X connect 6 0 16 0; #X connect 9 0 10 0; #X connect 10 0 1 0; #X connect 14 0 9 0; #X connect 15 0 9 1; #X connect 15 0 10 1; #X connect 15 0 14 1; #X connect 16 0 14 2; #X connect 16 0 9 2; #X connect 16 0 10 2; iemlib-1.20.1/iemabs/init_popup.pd0000644002537200234200000000175711055052215017263 0ustar zmoelnigiemusers#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: item-file-name; #X text 329 236 2.arg: 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; iemlib-1.20.1/iemabs/lp2_butt~-help.pd0000644002537200234200000000333311055052215017744 0ustar zmoelnigiemusers#N canvas 280 180 397 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 164 3 15 133 0 - - -; #X obj 93 183 mtof; #X floatatom 93 202 9 0 22000 0 - - -; #X text 157 203 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 257 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 298 7 0 0 0 - - -; #X text 357 299 dB; #X text 157 246 <- double-click; #X obj 45 247 lp2_butt~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 5 -5 lp2_butt~; #X text 81 -5 lowpass 2.order with butterworth characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp2c~.pd0000644002537200234200000000233011055052215016113 0ustar zmoelnigiemusers#N canvas 406 261 412 351 10; #X obj 22 42 inlet~; #X obj 56 63 inlet; #X obj 22 193 outlet~; #X text 62 42 ~signal_in~; #X text 93 64 cutoff_frequency [Hz]; #X obj 91 87 inlet; #X text 195 136 interpolation_time [ms]; #X text 32 176 ~filtered signal_out~; #X obj 126 111 inlet; #X obj 161 136 inlet; #X text 127 87 damping [-]; #X text 162 111 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: cutoff_frequency [Hz]; #X text 128 199 2.arg: damping [-]; #X text 128 208 3.arg: frequency-shift [-]; #X text 128 218 4.arg: interpolation_time [ms] (opt.); #X text 176 315 IEM KUG; #X text 160 303 musil; #X text 190 303 @; #X text 196 303 iem.at; #X text 111 292 (c) Thomas Musil 2000 - 2005; #X text 159 325 Graz \, Austria; #X connect 0 0 14 0; #X connect 1 0 14 1; #X connect 1 0 15 0; #X connect 5 0 14 2; #X connect 8 0 14 3; #X connect 9 0 14 4; #X connect 9 0 18 0; #X connect 14 0 2 0; iemlib-1.20.1/iemabs/pink~-help.pd0000644002537200234200000000173311055052215017154 0ustar zmoelnigiemusers#N canvas 257 125 349 343 10; #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 0 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 7400 1; #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 text 115 288 IEM KUG; #X text 99 276 musil; #X text 129 276 @; #X text 135 276 iem.at; #X text 50 265 (c) Thomas Musil 2000 - 2005; #X text 98 298 Graz \, Austria; #X connect 5 0 3 0; #X connect 6 0 5 0; #X connect 8 0 7 0; #X connect 8 0 7 1; #X connect 8 1 11 0; #X connect 8 2 9 0; #X connect 9 1 1 0; #X connect 10 0 8 1; #X connect 14 0 8 0; iemlib-1.20.1/iemabs/hp2_butt~-help.pd0000644002537200234200000000333111055052215017736 0ustar zmoelnigiemusers#N canvas 280 180 401 452 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 175 3 15 133 0 - - -; #X obj 93 194 mtof; #X floatatom 93 213 9 0 22000 0 - - -; #X text 157 214 Hz; #X text 57 271 ~signal_out~; #X floatatom 205 273 7 0 0 0 - - -; #X text 257 274 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 49 72 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 252 151 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 324 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 108 84 init 69; #X text 72 102 midi; #X text 40 339 1.arg: cutoff_freq. [Hz]; #X text 40 349 2.arg: interpolation_time [ms]; #X floatatom 305 306 7 0 0 0 - - -; #X text 357 307 dB; #X text 152 256 <- double-click; #X obj 45 257 hp2_butt~ 440 200; #X text 5 5 hp2_butt~; #X text 81 5 highpass 2.order with butterworth characteristic; #X text 78 407 IEM KUG; #X text 62 395 musil; #X text 92 395 @; #X text 98 395 iem.at; #X text 13 384 (c) Thomas Musil 2000 - 2005; #X text 61 417 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp2_cheb~-help.pd0000644002537200234200000000340311055052215017665 0ustar zmoelnigiemusers#N canvas 280 180 385 454 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp2_cheb~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 142 7 and +1 dB passband-ripple; #X text 5 -5 lp2_cheb~; #X text 81 -5 lowpass 2.order with chebyshev characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp8_butt~.pd0000644002537200234200000000213511055052215017023 0ustar zmoelnigiemusers#N canvas 350 22 408 304 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 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: cutoff_frequency [Hz]; #X text 89 212 2.arg: interpolation_time [ms] (opt.); #X text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 0 13 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 2 0; #X connect 13 0 10 0; #X connect 13 1 10 1; #X connect 13 4 10 4; iemlib-1.20.1/iemabs/rmstofad.pd0000644002537200234200000000115511055052215016704 0ustar zmoelnigiemusers#N canvas 334 153 604 310 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 13 10 rmstofad; #X text 86 11 convert rms-value to fader-scale; #X text 276 245 IEM KUG; #X text 260 233 musil; #X text 290 233 @; #X text 296 233 iem.at; #X text 211 222 (c) Thomas Musil 2000 - 2005; #X text 259 255 Graz \, Austria; #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; iemlib-1.20.1/iemabs/vcf_bp6~.pd0000644002537200234200000000175111055052215016612 0ustar zmoelnigiemusers#N canvas 216 218 451 491 10; #X obj 20 48 inlet~; #X obj 20 358 outlet~; #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 Q [-]; #X text 109 76 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 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 text 166 435 IEM KUG; #X text 150 423 musil; #X text 180 423 @; #X text 186 423 iem.at; #X text 101 412 (c) Thomas Musil 2000 - 2005; #X text 149 445 Graz \, Austria; #X connect 0 0 14 0; #X connect 5 0 16 0; #X connect 6 0 15 0; #X connect 9 0 10 0; #X connect 10 0 1 0; #X connect 14 0 9 0; #X connect 15 0 14 2; #X connect 15 0 9 2; #X connect 15 0 10 2; #X connect 16 0 14 1; #X connect 16 0 9 1; #X connect 16 0 10 1; iemlib-1.20.1/iemabs/lp10_bess~.pd0000644002537200234200000000233111055052215017050 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 85 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 167 85 inlet; #X text 95 226 1.arg: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/ap1_dp~-help.pd0000644002537200234200000000336111502274377017372 0ustar zmoelnigiemusers#N canvas 375 118 410 467 10; #X text 3 233 ~signal_in~; #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 45 332 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 128 227 5 2 9999 0 - - -; #X text 171 226 ms; #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 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 8000 1; #X obj 46 141 testtone~ 200; #X obj 115 101 init 69; #X text 73 120 midi; #X text 15 362 2.arg: interpolation_time [ms]; #X text 15 352 1.arg: -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 13 19 cnv 8 1 1 empty empty ap1_dp~ 1 2 1 18 -262144 -1109 0 ; #X text 184 414 IEM KUG; #X text 162 402 musil; #X text 198 402 @; #X text 206 402 iem.at; #X text 167 424 Graz \, Austria; #X text 119 391 (c) Thomas Musil 2000 - 2010; #X text 120 13 allpass 1.order with double precision; #X obj 46 248 ap1_dp~ 440 200; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 39 1; #X connect 11 0 21 0; #X connect 14 0 39 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 18 1 29 0; #X connect 18 2 19 0; #X connect 19 1 7 0; #X connect 20 0 18 1; #X connect 21 0 26 0; #X connect 21 0 39 0; #X connect 21 1 9 0; #X connect 22 0 11 0; #X connect 26 0 27 0; #X connect 27 0 18 0; #X connect 39 0 26 1; iemlib-1.20.1/iemabs/lp1_dp~.pd0000644002537200234200000000136511502274377016461 0ustar zmoelnigiemusers#N canvas 327 244 391 297 10; #X obj 22 42 inlet~; #X obj 52 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X text 89 64 cutoff_frequency [Hz]; #X obj 143 85 inlet; #X text 181 84 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X text 92 192 2.arg: interpolation_time [ms] (opt.); #X text 92 182 1.arg: cutoff_frequency [Hz]; #X text 176 245 IEM KUG; #X text 154 233 musil; #X text 190 233 @; #X text 198 233 iem.at; #X text 159 255 Graz \, Austria; #X obj 22 123 filter~ dlp1 \$1 1 0 \$2; #X text 76 8 lowpass 1.order with double precission; #X text 12 7 lp1_dp~; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X connect 0 0 15 0; #X connect 1 0 15 1; #X connect 5 0 15 4; #X connect 15 0 2 0; iemlib-1.20.1/iemabs/fadtodb.pd0000644002537200234200000000107311055052215016467 0ustar zmoelnigiemusers#N canvas 487 77 458 308 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 14 10 fadtodb; #X text 87 11 convert fader-scale to midi-db; #X text 176 255 IEM KUG; #X text 160 243 musil; #X text 190 243 @; #X text 196 243 iem.at; #X text 111 232 (c) Thomas Musil 2000 - 2005; #X text 159 265 Graz \, Austria; #X connect 0 0 2 0; #X connect 1 0 2 0; #X connect 2 0 4 0; #X connect 3 0 1 0; iemlib-1.20.1/iemabs/hp3_butt~.pd0000644002537200234200000000156511055052215017020 0ustar zmoelnigiemusers#N canvas 350 22 410 306 10; #X obj 22 42 inlet~; #X obj 43 65 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 80 66 cutoff_frequency [Hz]; #X text 141 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 107 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/bpw2_dp~-help.pd0000644002537200234200000000343111502274377017561 0ustar zmoelnigiemusers#N canvas 375 118 381 493 10; #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 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 51 337 7 0 0 0 - - -; #X text 102 338 dB; #X floatatom 124 163 9 0 22000 0 - - -; #X text 188 164 Hz; #X floatatom 51 124 3 15 133 0 - - -; #X floatatom 172 260 5 2 9999 0 - - -; #X text 213 261 ms; #X floatatom 121 241 4 0.01 1000 0 - - -; #X text 26 361 1.arg: center_freq. [Hz]; #X text 26 381 3.arg: interpolation_time [ms]; #X obj 51 314 gainvu~ 300; #X obj 249 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 8000 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 118 6 bandpass 2.order with bandwidth-inlet; #X text 154 241 bandwidth Hz; #X text 26 371 2.arg: bandwidth [Hz]; #X obj 10 17 cnv 8 1 1 empty empty bpw2_dp~ 1 2 1 18 -262144 -1109 0; #X text 184 454 IEM KUG; #X text 163 442 musil; #X text 198 442 @; #X text 206 442 iem.at; #X text 167 464 Graz \, Austria; #X text 119 431 (c) Thomas Musil 2000 - 2010; #X text 138 22 with double precision; #X obj 51 280 bpw2_dp~ 440 44 200; #X connect 3 0 1 0; #X connect 4 0 3 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 8 0 40 1; #X connect 15 0 24 0; #X connect 16 0 40 3; #X connect 18 0 40 2; #X connect 21 1 27 0; #X connect 21 2 22 0; #X connect 22 1 11 0; #X connect 23 0 21 1; #X connect 24 0 40 0; #X connect 24 1 13 0; #X connect 25 0 15 0; #X connect 40 0 21 0; iemlib-1.20.1/iemabs/default-help.pd0000644002537200234200000000077311055052215017444 0ustar zmoelnigiemusers#N canvas 361 130 339 249 10; #X obj 25 87 default 50; #X obj 25 38 loadbang; #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 text 184 184 IEM KUG; #X text 168 172 musil; #X text 198 172 @; #X text 204 172 iem.at; #X text 119 161 (c) Thomas Musil 2000 - 2005; #X text 167 194 Graz \, Austria; #X connect 0 0 3 0; #X connect 0 0 4 0; #X connect 1 0 2 0; #X connect 2 0 0 0; iemlib-1.20.1/iemabs/bsq2~.pd0000644002537200234200000000157211055052215016135 0ustar zmoelnigiemusers#N canvas 299 265 393 285 10; #X obj 22 42 inlet~; #X obj 55 65 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 191 113 interpolation_time [ms]; #X text 28 157 ~filtered signal_out~; #X obj 155 113 inlet; #X text 91 64 center_frequency [Hz]; #X text 123 89 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: center_frequency [Hz]; #X text 102 185 2.arg: Q [-]; #X text 102 194 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 4 0 12 2; #X connect 7 0 12 4; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/vcf_rbp2~.pd0000644002537200234200000000137411055052215016771 0ustar zmoelnigiemusers#N canvas 216 218 417 403 10; #X obj 22 42 inlet~; #X obj 22 288 outlet~; #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 Q [-]; #X text 130 20 for frequency and Q; #X text 113 70 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 text 166 355 IEM KUG; #X text 150 343 musil; #X text 180 343 @; #X text 186 343 iem.at; #X text 101 332 (c) Thomas Musil 2000 - 2005; #X text 149 365 Graz \, Austria; #X connect 0 0 12 0; #X connect 5 0 13 0; #X connect 6 0 12 2; #X connect 12 0 1 0; #X connect 13 0 12 1; iemlib-1.20.1/iemabs/radiobutton.pd0000644002537200234200000001751311055052215017424 0ustar zmoelnigiemusers#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; iemlib-1.20.1/iemabs/merge_any-help.pd0000644002537200234200000000444511055052215017766 0ustar zmoelnigiemusers#N canvas 231 172 773 463 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 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 text 115 418 IEM KUG; #X text 99 406 musil; #X text 129 406 @; #X text 135 406 iem.at; #X text 50 395 (c) Thomas Musil 2000 - 2005; #X text 98 428 Graz \, Austria; #X connect 1 0 31 0; #X connect 2 0 31 1; #X connect 3 0 31 0; #X connect 4 0 31 0; #X connect 5 0 31 1; #X connect 6 0 31 1; #X connect 7 0 31 0; #X connect 8 0 31 1; #X connect 9 0 31 0; #X connect 10 0 31 1; #X connect 11 0 31 0; #X connect 12 0 31 1; #X connect 13 0 31 0; #X connect 14 0 31 1; #X connect 15 0 31 1; #X connect 16 0 31 0; #X connect 17 0 31 0; #X connect 18 0 31 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 29 0 31 0; #X connect 30 0 31 1; #X connect 31 0 0 0; #X connect 31 0 19 0; iemlib-1.20.1/iemabs/rbpq2~-help.pd0000644002537200234200000000353211055052215017240 0ustar zmoelnigiemusers#N canvas 375 118 383 495 10; #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: Q [-]; #X text 26 361 1.arg: center_freq. [Hz]; #X text 26 381 3.arg: 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 7000 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 115 438 IEM KUG; #X text 99 426 musil; #X text 129 426 @; #X text 135 426 iem.at; #X text 50 415 (c) Thomas Musil 2000 - 2005; #X text 98 448 Graz \, Austria; #X connect 3 0 1 0; #X connect 4 0 3 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 30 1; #X connect 18 0 27 0; #X connect 19 0 30 3; #X connect 21 0 30 2; #X connect 24 0 23 0; #X connect 24 0 23 1; #X connect 24 1 31 0; #X connect 24 2 25 0; #X connect 25 1 14 0; #X connect 26 0 24 1; #X connect 27 0 30 0; #X connect 27 1 16 0; #X connect 28 0 18 0; #X connect 30 0 24 0; iemlib-1.20.1/iemabs/vdial.pd0000644002537200234200000001764611055052215016200 0ustar zmoelnigiemusers#N canvas 544 154 341 479 10; #X obj 1 1 cnv 8 100 60 empty empty vdial=vdl 20 20 1 18 -262144 -1109 0; #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 392 \$1; #X floatatom 21 414 4 0 0 0 - - -; #X obj 21 436 bng 15 250 50 0 empty empty empty 8 -8 0 10 -262144 -1 -1; #X obj 103 405 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1; #X obj 103 384 route 0 1 2 3 4 5 6 7 8 9; #X msg 157 73 set \$1; #X floatatom 157 52 4 0 9 0 - - -; #X floatatom 44 54 4 0 9 0 - - -; #X msg 84 50 7 0 -5.44; #X msg 88 72 3 3 4.55; #X obj 120 405 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 137 405 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 154 405 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 171 405 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 188 405 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 205 405 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 222 405 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 239 405 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 256 405 tgl 12 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1; #X obj 58 388 print; #X floatatom 84 280 4 0 0 0 - - -; #X msg 84 254 \$1; #X msg 59 185 set \$1; #X floatatom 59 164 4 0 9 0 - - -; #X text 52 301 UP- \, DOWN- \, LEFT- or RIGHT-key; #X text 51 312 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 0 - - -; #X floatatom 93 198 3 -20 37 0 - - -; #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 0 - - -; #X text 297 187 size; #X obj 286 293 f; #X msg 264 272 bang; #X floatatom 302 271 3 -10 10 0 - - -; #X floatatom 337 293 3 -10 10 0 - - -; #X obj 286 316 pack 0 0; #X obj 300 412 f; #X msg 278 391 bang; #X floatatom 316 390 3 20 60 0 - - -; #X floatatom 351 412 3 100 200 0 - - -; #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 0 - - -; #X floatatom 113 313 3 4 36 0 - - -; #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 0 - - -; #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 0 - - -; #X floatatom 79 46 3 0 29 0 - - -; #X floatatom 112 62 3 0 29 0 - - -; #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 0 - - -; #X floatatom 370 55 3 0 255 0 - - -; #X floatatom 413 56 3 0 255 0 - - -; #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 150 264 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 144 11 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 text 133 443 IEM KUG; #X text 117 431 musil; #X text 147 431 @; #X text 153 431 iem.at; #X text 68 420 (c) Thomas Musil 2000 - 2005; #X text 116 453 Graz \, Austria; #X text 53 352 list out with index + state; #X connect 4 0 7 0; #X connect 6 0 3 0; #X connect 6 0 29 0; #X connect 7 0 8 0; #X connect 7 0 12 0; #X connect 7 0 27 0; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 12 0 11 0; #X connect 12 1 18 0; #X connect 12 2 19 0; #X connect 12 3 20 0; #X connect 12 4 21 0; #X connect 12 5 22 0; #X connect 12 6 23 0; #X connect 12 7 24 0; #X connect 12 8 25 0; #X connect 12 9 26 0; #X connect 13 0 7 0; #X connect 14 0 13 0; #X connect 15 0 7 0; #X connect 16 0 7 0; #X connect 17 0 7 0; #X connect 29 0 28 0; #X connect 30 0 5 0; #X connect 31 0 30 0; iemlib-1.20.1/iemabs/lp10_crit~.pd0000644002537200234200000000232511055052215017060 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 85 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 167 85 inlet; #X text 95 226 1.arg: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp4_cheb~.pd0000644002537200234200000000167111055052215016742 0ustar zmoelnigiemusers#N canvas 350 22 427 307 10; #X obj 22 42 inlet~; #X obj 62 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 99 67 cutoff_frequency [Hz]; #X text 219 86 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: cutoff_frequency [Hz]; #X text 79 190 2.arg: 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 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 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; iemlib-1.20.1/iemabs/all_guis-INTRO.txt0000644002537200234200000001445010536420427020002 0ustar zmoelnigiemusersHOW 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. iemlib-1.20.1/iemabs/hp5_butt~.pd0000644002537200234200000000175111055052215017017 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 interpolation_time [ms]; #X text 31 164 ~filtered signal_out~; #X obj 149 86 inlet; #X text 81 189 1.arg: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 14 0; #X connect 1 0 14 1; #X connect 7 0 14 4; #X connect 10 0 2 0; #X connect 13 0 10 0; #X connect 13 1 10 1; #X connect 13 4 10 4; #X connect 14 0 13 0; #X connect 14 1 13 1; #X connect 14 4 13 4; iemlib-1.20.1/iemabs/hp2_dp~.pd0000644002537200234200000000154511502274377016456 0ustar zmoelnigiemusers#N canvas 435 244 379 285 10; #X obj 22 42 inlet~; #X obj 53 65 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X text 89 64 cutoff_frequency [Hz]; #X obj 85 89 inlet; #X text 184 113 interpolation_time [ms]; #X text 28 157 ~filtered signal_out~; #X obj 149 112 inlet; #X text 120 89 Q [-]; #X text 88 177 1.arg: cutoff_frequency [Hz]; #X text 88 186 2.arg: Q [-]; #X text 88 196 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 154 233 musil; #X text 190 233 @; #X text 198 233 iem.at; #X text 159 255 Graz \, Austria; #X text 11 9 hp2_dp~; #X text 79 9 highpass 2.order with double precision; #X obj 22 136 filter~ dhp2 \$1 \$2 1 \$3; #X text 113 223 (c) Thomas Musil 2000 - 2010; #X connect 0 0 20 0; #X connect 1 0 20 1; #X connect 5 0 20 2; #X connect 8 0 20 4; #X connect 20 0 2 0; iemlib-1.20.1/iemabs/my_canvas.pd0000644002537200234200000001530611055052215017050 0ustar zmoelnigiemusers#N canvas 478 61 463 289 10; #X obj 1 1 cnv 15 300 60 foo10_snd foo10_rcv my_canvas=cnv 50 20 0 17 -225280 -11904 0; #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 0 - - -; #X floatatom 90 226 3 0 37 0 - - -; #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 0 - - -; #X floatatom 348 281 3 -10 10 0 - - -; #X obj 297 304 pack 0 0; #X obj 309 396 f; #X msg 287 375 bang; #X floatatom 325 374 3 20 60 0 - - -; #X floatatom 360 396 3 150 200 0 - - -; #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 0 - - -; #X floatatom 110 341 3 4 36 0 - - -; #X obj 59 364 pack 0 0; #X text 103 319 font; #X text 139 341 height; #X floatatom 275 183 3 2 20 0 - - -; #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 0 - - -; #X floatatom 556 234 4 50 500 0 - - -; #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 0 - - -; #X floatatom 575 452 4 0 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 0 - - -; #X floatatom 103 47 3 0 29 0 - - -; #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 0 - - -; #X floatatom 375 55 3 0 255 0 - - -; #X floatatom 418 56 3 0 255 0 - - -; #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 0 - - -; #X floatatom 147 193 4 0 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 0 - - -; #X floatatom 225 194 4 0 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 399 399 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 26 26 cnv 25 25 25 from_K1 to_K K1 1 13 2 14 -261681 -123526 0; #X obj 338 340 cnv 25 25 25 from_K2 to_K K2 1 13 2 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 text 68 249 IEM KUG; #X text 52 237 musil; #X text 82 237 @; #X text 88 237 iem.at; #X text 3 226 (c) Thomas Musil 2000 - 2005; #X text 51 259 Graz \, Austria; #X obj 187 236 x_all_guis aaa bbb ccc ddd eee fff ggg; #X connect 6 0 14 0; #X connect 7 0 6 0; #X connect 8 0 16 0; #X connect 13 0 17 0; #X connect 16 0 2 0; #X connect 16 1 3 0; #X connect 17 0 9 0; #X connect 17 1 10 0; #X connect 24 0 25 0; iemlib-1.20.1/iemabs/0.INTRO.txt0000644002537200234200000001706010536420427016343 0ustar zmoelnigiemuserscontents of iemlib Release 1.16 from May 2005 ============================ 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 output 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 parentdollarzero output parent $0-unique symbol (abbr. parent$0 ) ------------------------- 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 iemlib-1.20.1/iemabs/lp9_cheb~-help.pd0000644002537200234200000000340311055052215017674 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 159 3 15 133 0 - - -; #X obj 93 178 mtof; #X floatatom 93 197 9 0 22000 0 - - -; #X text 157 198 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 159 248 <- double-click; #X obj 45 247 lp9_cheb~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 142 7 and +1 dB passband-ripple; #X text 81 -5 lowpass 9.order with chebyshev characteristic; #X text 5 -5 lp9_cheb~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/ap1~-help.pd0000644002537200234200000000332311502263561016676 0ustar zmoelnigiemusers#N canvas 375 118 376 460 10; #X text 3 233 ~signal_in~; #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 45 332 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 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 8000 1; #X obj 46 141 testtone~ 200; #X obj 115 101 init 69; #X text 73 120 midi; #X text 15 362 2.arg: interpolation_time [ms]; #X obj 46 248 ap1~ 440 200; #X text 15 352 1.arg: -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 13 19 cnv 8 1 1 empty empty ap1~ 1 2 1 18 -262144 -1109 0; #X text 80 13 allpass 1.order; #X text 184 414 IEM KUG; #X text 162 402 musil; #X text 198 402 @; #X text 206 402 iem.at; #X text 167 424 Graz \, Austria; #X text 119 391 (c) Thomas Musil 2000 - 2010; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 25 1; #X connect 11 0 21 0; #X connect 14 0 25 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 18 1 30 0; #X connect 18 2 19 0; #X connect 19 1 7 0; #X connect 20 0 18 1; #X connect 21 0 25 0; #X connect 21 0 27 0; #X connect 21 1 9 0; #X connect 22 0 11 0; #X connect 25 0 27 1; #X connect 27 0 28 0; #X connect 28 0 18 0; iemlib-1.20.1/iemabs/lp9_butt~.pd0000644002537200234200000000227411055052215017030 0ustar zmoelnigiemusers#N canvas 350 22 418 314 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 185 86 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 149 86 inlet; #X text 95 226 1.arg: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 285 IEM KUG; #X text 160 273 musil; #X text 190 273 @; #X text 196 273 iem.at; #X text 111 262 (c) Thomas Musil 2000 - 2005; #X text 159 295 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp1~-help.pd0000644002537200234200000000310311502263561016701 0ustar zmoelnigiemusers#N canvas 245 78 377 495 10; #X text 7 256 ~signal_in~; #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 51 327 7 0 0 0 - - -; #X text 102 328 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 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 8000 1; #X obj 50 134 testtone~ 200; #X obj 114 100 init 69; #X text 77 116 midi; #X text 14 355 1.arg: cutoff_freq. [Hz]; #X obj 50 271 hp1~ 440 200; #X text 14 365 2.arg: interpolation_time [ms]; #X floatatom 280 320 7 0 0 0 - - -; #X text 331 321 dB; #X obj 13 15 cnv 8 1 1 empty empty hp1~ 1 2 1 18 -262144 -1109 0; #X text 83 6 highpass 1.order; #X text 78 427 IEM KUG; #X text 56 415 musil; #X text 92 415 @; #X text 101 415 iem.at; #X text 61 437 Graz \, Austria; #X text 13 404 (c) Thomas Musil 2000 - 2010; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 25 1; #X connect 11 0 21 0; #X connect 14 0 25 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 18 1 27 0; #X connect 18 2 19 0; #X connect 19 1 7 0; #X connect 20 0 18 1; #X connect 21 0 25 0; #X connect 21 1 9 0; #X connect 22 0 11 0; #X connect 25 0 18 0; iemlib-1.20.1/iemabs/dbtofad-help.pd0000644002537200234200000000114411055052215017414 0ustar zmoelnigiemusers#N canvas 6 6 355 334 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 0 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 184 258 IEM KUG; #X text 168 246 musil; #X text 198 246 @; #X text 204 246 iem.at; #X text 119 235 (c) Thomas Musil 2000 - 2005; #X text 167 268 Graz \, Austria; #X connect 0 0 3 0; #X connect 0 0 5 0; #X connect 3 0 1 1; #X connect 5 0 2 0; iemlib-1.20.1/iemabs/lp8_butt~-help.pd0000644002537200234200000000333311055052215017752 0ustar zmoelnigiemusers#N canvas 280 180 397 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 164 3 15 133 0 - - -; #X obj 93 183 mtof; #X floatatom 93 202 9 0 22000 0 - - -; #X text 157 203 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 257 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 298 7 0 0 0 - - -; #X text 357 299 dB; #X text 157 246 <- double-click; #X obj 45 247 lp8_butt~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 8.order with butterworth characteristic; #X text 5 -5 lp8_butt~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp3_cheb~.pd0000644002537200234200000000165511055052215016743 0ustar zmoelnigiemusers#N canvas 350 22 427 307 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 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: cutoff_frequency [Hz]; #X text 79 190 2.arg: 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 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 14 0; #X connect 1 0 14 1; #X connect 7 0 14 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; iemlib-1.20.1/iemabs/hp8_crit~.pd0000644002537200234200000000214311055052215017001 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 33 187 ~filtered signal_out~; #X obj 167 86 inlet; #X text 99 205 1.arg: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/lp2c~.pd0000644002537200234200000000233111055052215016120 0ustar zmoelnigiemusers#N canvas 400 218 409 381 10; #X obj 22 42 inlet~; #X obj 56 63 inlet; #X obj 22 194 outlet~; #X text 62 42 ~signal_in~; #X text 93 64 cutoff_frequency [Hz]; #X obj 91 87 inlet; #X text 195 136 interpolation_time [ms]; #X text 32 176 ~filtered signal_out~; #X obj 126 111 inlet; #X text 12 8 lp2c~; #X text 60 8 lowpass 2.order for filter-cascades; #X obj 161 136 inlet; #X text 127 87 damping [-]; #X text 162 111 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: cutoff_frequency [Hz]; #X text 128 199 2.arg: damping [-]; #X text 128 208 3.arg: frequency-shift [-]; #X text 128 218 4.arg: interpolation_time [ms] (opt.); #X text 176 325 IEM KUG; #X text 160 313 musil; #X text 190 313 @; #X text 196 313 iem.at; #X text 111 302 (c) Thomas Musil 2000 - 2005; #X text 159 335 Graz \, Austria; #X connect 0 0 14 0; #X connect 1 0 14 1; #X connect 1 0 15 0; #X connect 5 0 14 2; #X connect 8 0 14 3; #X connect 11 0 14 4; #X connect 11 0 18 0; #X connect 14 0 2 0; iemlib-1.20.1/iemabs/vcf_lp2~-help.pd0000644002537200234200000000372411055052215017550 0ustar zmoelnigiemusers#N canvas 213 130 458 500 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 31 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 32 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 28 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 19 0; #X connect 29 0 28 1; #X connect 30 0 28 2; #X connect 31 0 29 0; #X connect 32 0 30 0; #X connect 35 0 2 0; #X connect 36 0 15 0; iemlib-1.20.1/iemabs/lp3_bess~.pd0000644002537200234200000000157511055052215017003 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 167 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/lp3_bess~-help.pd0000644002537200234200000000332611055052215017725 0ustar zmoelnigiemusers#N canvas 280 180 389 458 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 129 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp3_bess~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 85 -4 lowpass 3.order with bessel characteristic; #X text 9 -4 lp3_bess~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/addl~.pd0000644002537200234200000000167211055052215016173 0ustar zmoelnigiemusers#N canvas 323 149 391 327 10; #X obj 22 42 inlet~; #X obj 35 67 inlet; #X obj 22 238 outlet~; #X text 62 42 ~signal_in~; #X obj 90 112 inlet; #X text 125 113 interpolation_time [ms]; #X text 69 239 ~signal_out~; #X obj 35 194 line~; #X obj 41 140 loadbang; #X text 119 191 2.arg: interpolation_time [ms]; #X text 72 66 addition-coefficient or; #X text 119 180 1.arg: addition-coefficient; #X obj 22 215 +~; #X text 49 9 signal-addition with line~ interpolation; #X text 72 78 addition-coefficient + interpol_time [ms]; #X obj 35 175 pack \$1 \$2; #X text 11 9 addl~; #X text 176 295 IEM KUG; #X text 160 283 musil; #X text 190 283 @; #X text 196 283 iem.at; #X text 111 272 (c) Thomas Musil 2000 - 2005; #X text 159 305 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 15 0; #X connect 4 0 15 1; #X connect 7 0 12 1; #X connect 8 0 15 0; #X connect 12 0 2 0; #X connect 15 0 7 0; iemlib-1.20.1/iemabs/lp10_cheb~-help.pd0000644002537200234200000000340611055052215017747 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 96 159 3 15 133 0 - - -; #X obj 96 178 mtof; #X floatatom 96 197 9 0 22000 0 - - -; #X text 160 198 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 148 227 5 2 9999 0 - - -; #X text 189 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 159 248 <- double-click; #X obj 45 247 lp10_cheb~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 142 7 and +1 dB passband-ripple; #X text 81 -5 lowpass 10.order with chebyshev characteristic; #X text 5 -5 lp10_cheb~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp2_butt~.pd0000644002537200234200000000142511055052215017016 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 52 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 89 67 cutoff_frequency [Hz]; #X text 177 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 143 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 0 12 4; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/vcf_bp2~-help.pd0000644002537200234200000000372511055052215017537 0ustar zmoelnigiemusers#N canvas 213 130 477 479 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 34 0 2 0; #X connect 35 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/hslider.pd0000644002537200234200000002020611055052215016515 0ustar zmoelnigiemusers#N canvas 239 208 398 421 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 0 - - -; #X msg 47 84 set \$1; #X floatatom 38 41 7 0 0 0 - - -; #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 0 10 -225280 -1109 -1 2000 1; #X text 174 11 gui-horicontal-slider:; #X floatatom 47 62 7 0 0 0 - - -; #X floatatom 116 150 9 0 0 0 - - -; #X obj 110 308 r goo2_snd; #X obj 145 248 s goo2_rcv; #X floatatom 105 40 7 0 0 0 - - -; #X floatatom 145 206 7 0 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 0 10 -42246 -260818 -90133 4800 1; #X obj 37 308 ftom; #X floatatom 37 330 9 0 0 0 - - -; #X floatatom 64 287 9 0 0 0 - - -; #X floatatom 110 329 9 0 0 0 - - -; #X text 175 176 click properties to; #X floatatom 37 203 8 0 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 0 - - -; #X floatatom 83 220 3 0 37 0 - - -; #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 0 - - -; #X floatatom 330 246 3 -10 10 0 - - -; #X obj 279 269 pack 0 0; #X obj 292 358 f; #X msg 270 337 bang; #X floatatom 308 336 3 20 60 0 - - -; #X floatatom 343 358 3 150 200 0 - - -; #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 0 - - -; #X floatatom 103 335 3 4 36 0 - - -; #X obj 52 358 pack 0 0; #X text 96 313 font; #X text 132 335 height; #X floatatom 476 188 1 0 1 0 - - -; #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 0 - - -; #X floatatom 537 291 6 440 3520 0 - - -; #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 0 - - -; #X floatatom 326 133 3 8 50 0 - - -; #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 0 - - -; #X floatatom 79 42 3 0 29 0 - - -; #X floatatom 112 58 3 0 29 0 - - -; #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 0 - - -; #X floatatom 362 52 3 0 255 0 - - -; #X floatatom 405 53 3 0 255 0 - - -; #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 obj 221 61 hsl 128 15 0 127 0 0 ddd ddd empty 20 8 0 8 -262144 -1 -1 0 1; #X obj 167 34 x_all_guis aaa bbb ccc ddd eee fff ggg; #X text 86 380 IEM KUG; #X text 70 368 musil; #X text 100 368 @; #X text 106 368 iem.at; #X text 21 357 (c) Thomas Musil 2000 - 2005; #X text 69 390 Graz \, Austria; #X connect 1 0 4 0; #X connect 2 0 6 0; #X connect 3 0 6 0; #X connect 5 0 6 0; #X connect 6 0 1 0; #X connect 6 0 15 0; #X connect 8 0 2 0; #X connect 10 0 20 0; #X connect 12 0 28 0; #X connect 13 0 29 0; #X connect 15 0 14 0; #X connect 16 0 19 0; #X connect 16 0 17 0; #X connect 17 0 18 0; #X connect 22 0 23 0; #X connect 23 0 16 0; #X connect 27 0 9 0; #X connect 28 0 26 0; #X connect 29 0 11 0; iemlib-1.20.1/iemabs/ap1~.pd0000644002537200234200000000137111055052215015744 0ustar zmoelnigiemusers#N canvas 256 230 379 285 10; #X obj 22 42 inlet~; #X obj 52 65 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 143 100 inlet; #X text 178 101 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 -90_degree_frequency [Hz]; #X text 11 9 ap1~; #X text 84 182 1.arg: -90_degree_frequency [Hz]; #X text 84 193 2.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 8 0; #X connect 1 0 8 1; #X connect 4 0 8 4; #X connect 8 0 2 0; iemlib-1.20.1/iemabs/hp3_crit~.pd0000644002537200234200000000157211055052215017001 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 167 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 0 13 4; #X connect 12 0 2 0; #X connect 13 0 12 0; #X connect 13 1 12 1; #X connect 13 4 12 4; iemlib-1.20.1/iemabs/vcf_bp4~-help.pd0000644002537200234200000000372511055052215017541 0ustar zmoelnigiemusers#N canvas 213 130 479 481 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 31 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 32 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 30 1; #X connect 29 0 30 2; #X connect 30 0 19 0; #X connect 31 0 28 0; #X connect 32 0 29 0; #X connect 36 0 2 0; #X connect 37 0 15 0; iemlib-1.20.1/iemabs/vcf_bp2~.pd0000644002537200234200000000136011055052215016602 0ustar zmoelnigiemusers#N canvas 216 218 419 405 10; #X obj 22 42 inlet~; #X obj 22 288 outlet~; #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 Q [-]; #X text 130 20 for frequency and Q; #X text 113 70 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 text 166 355 IEM KUG; #X text 150 343 musil; #X text 180 343 @; #X text 186 343 iem.at; #X text 101 332 (c) Thomas Musil 2000 - 2005; #X text 149 365 Graz \, Austria; #X connect 0 0 13 0; #X connect 5 0 10 0; #X connect 6 0 13 2; #X connect 10 0 13 1; #X connect 13 0 1 0; iemlib-1.20.1/iemabs/vcf_rbp2~-help.pd0000644002537200234200000000374111055052215017717 0ustar zmoelnigiemusers#N canvas 213 130 477 479 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 34 0 2 0; #X connect 35 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/int_fract~-help.pd0000644002537200234200000000176711055052215020173 0ustar zmoelnigiemusers#N canvas 375 118 412 336 10; #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 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 text 106 305 IEM KUG; #X text 90 293 musil; #X text 120 293 @; #X text 126 293 iem.at; #X text 41 282 (c) Thomas Musil 2000 - 2005; #X text 89 315 Graz \, Austria; #X connect 2 0 8 0; #X connect 5 0 3 0; #X connect 6 0 5 0; #X connect 8 0 11 0; #X connect 9 0 1 0; #X connect 11 0 9 0; #X connect 11 1 13 0; #X connect 13 0 12 0; iemlib-1.20.1/iemabs/hp9_butt~-help.pd0000644002537200234200000000333611055052215017752 0ustar zmoelnigiemusers#N canvas 280 180 395 446 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 174 3 15 133 0 - - -; #X obj 93 193 mtof; #X floatatom 93 212 9 0 22000 0 - - -; #X text 157 213 Hz; #X text 57 271 ~signal_out~; #X floatatom 205 273 7 0 0 0 - - -; #X text 257 274 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 49 72 % cpu; #X floatatom 142 237 5 2 9999 0 - - -; #X text 183 238 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 257 151 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 40 339 1.arg: cutoff_freq. [Hz]; #X text 40 349 2.arg: interpolation_time [ms]; #X floatatom 305 308 7 0 0 0 - - -; #X text 357 309 dB; #X text 157 256 <- double-click; #X obj 45 257 hp9_butt~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 5 5 hp9_butt~; #X text 81 5 highpass 9.order with butterworth characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp10_crit~.pd0000644002537200234200000000232611055052215017055 0ustar zmoelnigiemusers#N canvas 350 22 412 308 10; #X obj 22 42 inlet~; #X obj 58 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 67 cutoff_frequency [Hz]; #X text 201 85 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 167 85 inlet; #X text 95 226 1.arg: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/bsq2~-help.pd0000644002537200234200000000332411502263561017065 0ustar zmoelnigiemusers#N canvas 375 118 381 493 10; #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: Q [-]; #X text 26 361 1.arg: center_freq. [Hz]; #X text 26 381 3.arg: 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 54 328 7 0 0 0 - - -; #X text 105 329 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 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 8000 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 16 cnv 8 1 1 empty empty bsq2~ 1 2 1 18 -262144 -1109 0; #X text 184 454 IEM KUG; #X text 160 442 musil; #X text 198 442 @; #X text 207 442 iem.at; #X text 167 464 Graz \, Austria; #X text 119 431 (c) Thomas Musil 2000 - 2010; #X connect 3 0 1 0; #X connect 4 0 3 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 29 1; #X connect 18 0 26 0; #X connect 19 0 29 3; #X connect 21 0 29 2; #X connect 23 1 30 0; #X connect 23 2 24 0; #X connect 24 1 14 0; #X connect 25 0 23 1; #X connect 26 0 29 0; #X connect 26 1 16 0; #X connect 27 0 18 0; #X connect 29 0 23 0; iemlib-1.20.1/iemabs/fadtodb-help.pd0000644002537200234200000000114411055052215017414 0ustar zmoelnigiemusers#N canvas 157 156 353 332 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 10 3 fadtodb; #X text 83 4 convert fader-scale to midi-db; #X text 224 194 IEM KUG; #X text 208 182 musil; #X text 238 182 @; #X text 244 182 iem.at; #X text 159 171 (c) Thomas Musil 2000 - 2005; #X text 207 204 Graz \, Austria; #X connect 0 0 3 0; #X connect 2 0 4 0; #X connect 3 0 1 1; #X connect 4 0 0 0; iemlib-1.20.1/iemabs/lp6_bess~-help.pd0000644002537200234200000000332611055052215017730 0ustar zmoelnigiemusers#N canvas 280 180 387 456 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp6_bess~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 85 -4 lowpass 6.order with bessel characteristic; #X text 9 -4 lp6_bess~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp10_butt_d~-help.pd0000644002537200234200000000315011120267115020323 0ustar zmoelnigiemusers#N canvas 608 71 405 456 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 112 164 3 15 133 0 - - -; #X obj 112 183 mtof; #X floatatom 112 202 9 0 22000 0 - - -; #X text 176 203 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 -15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 179 227 5 2 9999 0 - - -; #X text 220 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 281 gainvu~ 300; #X obj 257 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 298 7 0 0 0 - - -; #X text 357 299 dB; #X text 157 246 <- double-click; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 10.order with butterworth characteristic; #X text 5 -5 lp10_butt~; #X text 41 372 (c) Thomas Musil 2000 - 2008; #X obj 45 247 lp10_butt_d~ 440 200; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 37 1; #X connect 11 0 21 0; #X connect 14 0 37 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 18 1 26 0; #X connect 18 2 19 0; #X connect 19 1 7 0; #X connect 20 0 18 1; #X connect 21 0 37 0; #X connect 21 1 9 0; #X connect 22 0 11 0; #X connect 37 0 18 0; iemlib-1.20.1/iemabs/bpq2_dp~-help.pd0000644002537200234200000000337611502274377017563 0ustar zmoelnigiemusers#N canvas 375 118 454 507 10; #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 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 51 338 7 0 0 0 - - -; #X text 102 339 dB; #X floatatom 124 163 9 0 22000 0 - - -; #X text 188 164 Hz; #X floatatom 51 124 3 15 133 0 - - -; #X floatatom 171 260 5 2 9999 0 - - -; #X text 212 261 ms; #X floatatom 128 240 4 0.01 1000 0 - - -; #X text 161 240 Q; #X text 26 371 2.arg: Q [-]; #X text 26 361 1.arg: center_freq. [Hz]; #X text 26 381 3.arg: interpolation_time [ms]; #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 8000 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 117 10 bandpass 2.order with Q-inlet; #X obj 10 17 cnv 8 1 1 empty empty bpq2_dp~ 1 2 1 18 -262144 -1109 0; #X text 184 453 IEM KUG; #X text 164 441 musil; #X text 198 441 @; #X text 206 441 iem.at; #X text 167 463 Graz \, Austria; #X text 119 430 (c) Thomas Musil 2000 - 2010; #X text 136 24 with double precision; #X obj 51 280 bpq2_dp~ 440 10 200; #X connect 3 0 1 0; #X connect 4 0 3 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 8 0 40 1; #X connect 15 0 26 0; #X connect 16 0 40 3; #X connect 18 0 40 2; #X connect 23 1 29 0; #X connect 23 2 24 0; #X connect 24 1 11 0; #X connect 25 0 23 1; #X connect 26 0 40 0; #X connect 26 1 13 0; #X connect 27 0 15 0; #X connect 40 0 23 0; iemlib-1.20.1/iemabs/hp2_bess~.pd0000644002537200234200000000142411055052215016767 0ustar zmoelnigiemusers#N canvas 350 22 416 312 10; #X obj 22 42 inlet~; #X obj 56 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 93 67 cutoff_frequency [Hz]; #X text 195 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 161 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 0 12 4; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/all_guis-INTRO.pd0000644002537200234200000000171211055052215017554 0ustar zmoelnigiemusers#N canvas 254 125 463 361 10; #X obj 10 6 cnv 15 400 300 empty empty Gui_Group 20 12 2 14 -216636 -42246 0; #X obj 38 76 bng 25 250 50 0 bang bang bang 0 -6 0 8 -225271 -42246 -1; #X obj 86 72 tgl 35 0 toggle toggle toggle 0 -6 0 8 -225280 -1109 -1 0 1; #X obj 142 78 nbx 5 14 0.01 10 1 1 numbox numbox numbox 0 -6 0 10 -228992 -355 -1 0.588209 256; #X obj 286 40 vsl 15 128 0 127 0 0 vslider vslider vslider 0 -8 0 8 -195568 -33289 -1 0 1; #X obj 26 195 hsl 128 15 0 127 0 0 hslider hslider hslider -2 -6 0 8 -261689 -143491 -1 0 1; #X obj 227 39 vradio 15 1 0 8 vdial vdial vdial 0 -6 0 8 -261681 -90881 -1 0; #X obj 26 150 hradio 15 1 0 8 hdial hdial hdial 0 -6 0 8 -262131 -123526 -1 0; #X obj 352 46 vu 15 120 vu vu -1 -8 0 8 -66577 -1 1 0; #X msg 340 263 \; vu -15 -3; #X text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; iemlib-1.20.1/iemabs/bsw2_dp~-help.pd0000644002537200234200000000343611502274377017571 0ustar zmoelnigiemusers#N canvas 361 130 381 493 10; #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 361 1.arg: center_freq. [Hz]; #X text 26 381 3.arg: interpolation_time [ms]; #X text 26 371 2.arg: 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 52 334 7 0 0 0 - - -; #X text 105 335 dB; #X floatatom 124 162 9 0 22000 0 - - -; #X text 188 163 Hz; #X floatatom 51 123 3 15 133 0 - - -; #X floatatom 168 257 5 2 9999 0 - - -; #X text 209 257 ms; #X floatatom 115 239 4 0.01 1000 0 - - -; #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 8000 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 text 109 9 bandstop 2.order with bandwidth-inlet; #X obj 12 15 cnv 8 1 1 empty empty bsw2_dp~ 1 2 1 18 -262144 -1109 0; #X text 184 454 IEM KUG; #X text 163 442 musil; #X text 198 442 @; #X text 207 442 iem.at; #X text 167 464 Graz \, Austria; #X text 119 431 (c) Thomas Musil 2000 - 2010; #X text 136 24 with double precision; #X obj 51 279 bsw2_dp~ 440 220 200; #X connect 3 0 1 0; #X connect 4 0 3 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 40 1; #X connect 18 0 25 0; #X connect 19 0 40 3; #X connect 21 0 40 2; #X connect 22 1 28 0; #X connect 22 2 23 0; #X connect 23 1 14 0; #X connect 24 0 22 1; #X connect 25 0 40 0; #X connect 25 1 16 0; #X connect 26 0 18 0; #X connect 40 0 22 0; iemlib-1.20.1/iemabs/lp4_butt~-help.pd0000644002537200234200000000333311055052215017746 0ustar zmoelnigiemusers#N canvas 280 180 397 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 164 3 15 133 0 - - -; #X obj 93 183 mtof; #X floatatom 93 202 9 0 22000 0 - - -; #X text 157 203 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 257 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 298 7 0 0 0 - - -; #X text 357 299 dB; #X text 157 246 <- double-click; #X obj 45 247 lp4_butt~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 4.order with butterworth characteristic; #X text 5 -5 lp4_butt~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp5_butt~.pd0000644002537200234200000000175011055052215017022 0ustar zmoelnigiemusers#N canvas 350 22 414 310 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 interpolation_time [ms]; #X text 31 164 ~filtered signal_out~; #X obj 149 86 inlet; #X text 81 189 1.arg: cutoff_frequency [Hz]; #X text 81 199 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/split3.pd0000644002537200234200000000207511055052215016305 0ustar zmoelnigiemusers#N canvas 363 140 460 337 10; #X obj 25 60 inlet; #X obj 26 231 outlet; #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 output within; #X text 117 213 output less than low-limit; #X text 155 189 output greater than high-limit; #X text 61 58 input; #X text 106 78 low-limit; #X text 148 101 high-limit; #X text 160 134 1.arg: low-limit; #X text 160 146 2.arg: high-limit; #X text 80 5 part a -message into 3 ways:; #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 text 166 285 IEM KUG; #X text 150 273 musil; #X text 180 273 @; #X text 186 273 iem.at; #X text 101 262 (c) Thomas Musil 2000 - 2005; #X text 149 295 Graz \, Austria; #X connect 0 0 7 0; #X connect 2 0 7 1; #X connect 4 0 8 1; #X connect 7 0 5 0; #X connect 7 1 8 0; #X connect 8 0 1 0; #X connect 8 1 6 0; iemlib-1.20.1/iemabs/bpw2~.pd0000644002537200234200000000162111055052215016133 0ustar zmoelnigiemusers#N canvas 315 262 395 281 10; #X obj 22 42 inlet~; #X obj 55 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 190 112 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 155 112 inlet; #X text 92 64 center_frequency [Hz]; #X text 12 9 bpw2~; #X text 56 10 bandpass 2.order with bandwidth-inlet; #X text 124 90 bandwidth [Hz]; #X obj 22 134 filter~ bpw2 \$1 \$2 1 \$3; #X text 97 174 1.arg: center_frequency [Hz]; #X text 97 183 2.arg: bandwidth [Hz]; #X text 97 192 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 4 0 12 2; #X connect 7 0 12 4; #X connect 12 0 2 0; iemlib-1.20.1/iemabs/x_all_guis.pd0000644002537200234200000000145711055052215017220 0ustar zmoelnigiemusers#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; iemlib-1.20.1/iemabs/dsp~-help.pd0000644002537200234200000000110511055052215016772 0ustar zmoelnigiemusers#N canvas 361 130 337 247 10; #X text 43 40 dsp ON/OFF; #X floatatom 24 121 5 0 0 0 - - -; #X obj 24 42 tgl 15 1 empty dsp_tgl empty 8 -8 0 10 -262144 -1 -1 0 1; #X text 72 122 % mean-cpu-load; #X floatatom 47 91 5 0 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 text 134 184 IEM KUG; #X text 118 172 musil; #X text 148 172 @; #X text 154 172 iem.at; #X text 69 161 (c) Thomas Musil 2000 - 2005; #X text 117 194 Graz \, Austria; #X connect 2 0 7 0; #X connect 7 0 1 0; #X connect 7 1 4 0; iemlib-1.20.1/iemabs/hp8_butt~.pd0000644002537200234200000000213611055052215017020 0ustar zmoelnigiemusers#N canvas 350 22 408 304 10; #X obj 22 42 inlet~; #X obj 53 66 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 90 67 cutoff_frequency [Hz]; #X text 183 86 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: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #X text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 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 2 0; iemlib-1.20.1/iemabs/lp5_cheb~-help.pd0000644002537200234200000000340311055052215017670 0ustar zmoelnigiemusers#N canvas 280 180 381 450 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp5_cheb~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 142 7 and +1 dB passband-ripple; #X text 81 -5 lowpass 5.order with chebyshev characteristic; #X text 5 -5 lp5_cheb~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/ap2_dp~-help.pd0000644002537200234200000000354711502274377017401 0ustar zmoelnigiemusers#N canvas 375 118 402 502 10; #X text 9 240 ~signal_in~; #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 20 341 7 0 0 0 - - -; #X text 76 341 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: Q [-]; #X text 57 382 3.arg: interpolation_time [ms]; #X obj 17 40 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 ; #X obj 20 319 gainvu~ 300; #X obj 214 194 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 8000 1; #X obj 52 130 testtone~ 200; #X obj 120 93 init 69; #X text 79 112 midi; #X text 57 362 1.arg: -180_degree_freq. [Hz]; #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 12 15 cnv 8 1 1 empty empty ap2_dp~ 1 2 1 18 -262144 -1109 0 ; #X text 184 444 IEM KUG; #X text 163 432 musil; #X text 198 432 @; #X text 205 432 iem.at; #X text 167 454 Graz \, Austria; #X text 119 421 (c) Thomas Musil 2000 - 2010; #X text 98 8 allpass 2.order with double precision; #X obj 52 255 ap2_dp~ 440 2 200; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 42 1; #X connect 11 0 25 0; #X connect 14 0 42 3; #X connect 16 0 12 0; #X connect 17 0 42 2; #X connect 21 0 16 0; #X connect 22 1 32 0; #X connect 22 2 23 0; #X connect 23 1 7 0; #X connect 24 0 22 1; #X connect 25 0 29 0; #X connect 25 0 42 0; #X connect 25 1 9 0; #X connect 26 0 11 0; #X connect 29 0 30 0; #X connect 30 0 22 0; #X connect 42 0 29 1; iemlib-1.20.1/iemabs/lp7_bess~.pd0000644002537200234200000000214011055052215016774 0ustar zmoelnigiemusers#N canvas 350 22 416 312 10; #X obj 22 42 inlet~; #X obj 58 63 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 95 64 cutoff_frequency [Hz]; #X text 201 83 interpolation_time [ms]; #X text 33 187 ~filtered signal_out~; #X obj 167 83 inlet; #X text 99 205 1.arg: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/vcf_rbp6~-help.pd0000644002537200234200000000374111055052215017723 0ustar zmoelnigiemusers#N canvas 213 130 483 485 10; #X text 16 291 ~signal_in~; #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 7000 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 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 text 195 428 IEM KUG; #X text 179 416 musil; #X text 209 416 @; #X text 215 416 iem.at; #X text 130 405 (c) Thomas Musil 2000 - 2005; #X text 178 438 Graz \, Austria; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 0; #X connect 11 0 22 0; #X connect 14 0 12 0; #X connect 15 0 31 0; #X connect 17 0 14 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 25 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 37 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 28 0 37 1; #X connect 29 0 37 2; #X connect 30 0 28 0; #X connect 31 0 29 0; #X connect 34 0 2 0; #X connect 35 0 15 0; #X connect 37 0 19 0; iemlib-1.20.1/iemabs/bp2_dp~.pd0000644002537200234200000000162311502274377016445 0ustar zmoelnigiemusers#N canvas 319 273 417 319 10; #X obj 22 42 inlet~; #X obj 55 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 190 112 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 155 112 inlet; #X text 92 64 center_frequency [Hz]; #X text 124 89 Q [-]; #X text 85 176 1.arg: center_frequency [Hz]; #X text 85 185 2.arg: Q [-]; #X text 85 194 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 154 233 musil; #X text 190 233 @; #X text 199 233 iem.at; #X text 159 255 Graz \, Austria; #X obj 22 134 filter~ dbpq2 \$1 \$2 1 \$3; #X text 111 222 (c) Thomas Musil 2000 - 2010; #X text 12 9 bp2_dp~; #X text 99 24 with double precision; #X text 70 10 bandpass 2.order with Q-inlet (like bpq2_dp~); #X connect 0 0 18 0; #X connect 1 0 18 1; #X connect 4 0 18 2; #X connect 7 0 18 4; #X connect 18 0 2 0; iemlib-1.20.1/iemabs/lp6_cheb~.pd0000644002537200234200000000205411055052215016744 0ustar zmoelnigiemusers#N canvas 350 22 425 305 10; #X obj 22 42 inlet~; #X obj 62 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 99 67 cutoff_frequency [Hz]; #X text 219 86 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 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: cutoff_frequency [Hz]; #X text 79 205 2.arg: interpolation_time [ms] (opt.); #X text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 11 0; #X connect 1 0 11 1; #X connect 7 0 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 2 0; iemlib-1.20.1/iemabs/hp7_crit~.pd0000644002537200234200000000213411055052215017000 0ustar zmoelnigiemusers#N canvas 350 22 416 312 10; #X obj 22 42 inlet~; #X obj 58 65 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 95 66 cutoff_frequency [Hz]; #X text 201 85 interpolation_time [ms]; #X text 33 187 ~filtered signal_out~; #X obj 167 85 inlet; #X text 99 205 1.arg: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 0 13 4; #X connect 12 0 2 0; #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 12 0; #X connect 15 1 12 1; #X connect 15 4 12 4; iemlib-1.20.1/iemabs/maverage~.pd0000644002537200234200000000205111055052215017046 0ustar zmoelnigiemusers#N canvas 167 77 544 344 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 [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 [ms] \; 2.arg: average-time [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 obj 30 165 mov_avrg_kern~ \$2; #X text 10 10 maverage~; #X text 186 295 IEM KUG; #X text 170 283 musil; #X text 200 283 @; #X text 206 283 iem.at; #X text 121 272 (c) Thomas Musil 2000 - 2005; #X text 169 305 Graz \, Austria; #X connect 1 0 7 0; #X connect 1 0 14 0; #X connect 4 0 10 0; #X connect 8 0 14 1; #X connect 10 0 8 0; #X connect 10 1 14 2; #X connect 14 0 2 0; iemlib-1.20.1/iemabs/vslider.pd0000644002537200234200000002032511055052215016535 0ustar zmoelnigiemusers#N canvas 143 181 471 420 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 0 - - -; #X msg 47 84 set \$1; #X floatatom 38 43 7 0 0 0 - - -; #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 0 - - -; #X floatatom 116 324 9 0 0 0 - - -; #X floatatom 106 42 7 0 0 0 - - -; #X floatatom 147 113 7 0 0 0 - - -; #X obj 75 249 ftom; #X floatatom 75 271 9 0 0 0 - - -; #X floatatom 111 244 9 0 0 0 - - -; #X floatatom 185 266 9 0 0 0 - - -; #X text 181 151 click properties to; #X floatatom 75 112 9 0 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 0 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 0 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 0 - - -; #X floatatom 88 233 3 -20 37 0 - - -; #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 0 - - -; #X floatatom 338 271 3 -10 10 0 - - -; #X obj 287 294 pack 0 0; #X obj 299 381 f; #X msg 277 360 bang; #X floatatom 315 359 3 20 90 0 - - -; #X floatatom 350 381 3 150 200 0 - - -; #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 0 - - -; #X floatatom 108 348 3 4 36 0 - - -; #X obj 57 371 pack 0 0; #X text 101 326 font; #X text 137 348 height; #X floatatom 476 188 1 0 1 0 - - -; #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 0 - - -; #X floatatom 537 291 6 440 3520 0 - - -; #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 0 - - -; #X floatatom 337 160 3 15 73 0 - - -; #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 0 - - -; #X floatatom 79 58 3 0 29 0 - - -; #X floatatom 112 74 3 0 29 0 - - -; #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 0 - - -; #X floatatom 370 67 3 0 255 0 - - -; #X floatatom 413 68 3 0 255 0 - - -; #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 0 8 -262144 -1 -1 0 1; #X text 73 387 IEM KUG; #X text 57 375 musil; #X text 87 375 @; #X text 93 375 iem.at; #X text 8 364 (c) Thomas Musil 2000 - 2005; #X text 56 397 Graz \, Austria; #X connect 1 0 4 0; #X connect 2 0 18 0; #X connect 3 0 18 0; #X connect 5 0 18 0; #X connect 6 0 2 0; #X connect 8 0 28 0; #X connect 9 0 21 0; #X connect 10 0 11 0; #X connect 15 0 16 0; #X connect 16 0 19 0; #X connect 18 0 1 0; #X connect 18 0 36 0; #X connect 19 0 12 0; #X connect 19 0 10 0; #X connect 20 0 13 0; #X connect 27 0 7 0; #X connect 28 0 26 0; #X connect 36 0 35 0; iemlib-1.20.1/iemabs/hp1c_dp~.pd0000644002537200234200000000221111502274377016607 0ustar zmoelnigiemusers#N canvas 325 243 417 352 10; #X obj 22 42 inlet~; #X obj 55 66 inlet; #X obj 22 196 outlet~; #X text 62 42 ~signal_in~; #X text 92 67 cutoff_frequency [Hz]; #X text 189 134 interpolation_time [ms]; #X text 32 176 ~filtered signal_out~; #X obj 88 93 inlet; #X obj 155 134 inlet; #X text 124 93 frequency-shift [-]; #X text 87 9 highpass 1.order for filter-cascades; #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: cutoff_frequency [Hz]; #X text 120 202 2.arg: frequency-shift [-]; #X text 120 212 3.arg: interpolation_time [ms] (opt.); #X text 176 315 IEM KUG; #X text 154 303 musil; #X text 190 303 @; #X text 198 303 iem.at; #X text 159 325 Graz \, Austria; #X text 12 8 hp1c_dp~; #X text 135 24 with double precision; #X obj 22 157 filter~ dhp1c \$1 \$2 1 \$3; #X text 111 292 (c) Thomas Musil 2000 - 2010; #X connect 0 0 29 0; #X connect 1 0 11 0; #X connect 1 0 29 1; #X connect 7 0 29 2; #X connect 8 0 14 0; #X connect 8 0 29 4; #X connect 29 0 2 0; iemlib-1.20.1/iemabs/bpw2~-help.pd0000644002537200234200000000335511502263561017074 0ustar zmoelnigiemusers#N canvas 375 118 381 493 10; #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 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 51 337 7 0 0 0 - - -; #X text 102 338 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: center_freq. [Hz]; #X text 26 381 3.arg: interpolation_time [ms]; #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 8000 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: bandwidth [Hz]; #X obj 51 280 bpw2~ 440 44 200; #X obj 10 17 cnv 8 1 1 empty empty bpw2~ 1 2 1 18 -262144 -1109 0; #X text 184 454 IEM KUG; #X text 163 442 musil; #X text 198 442 @; #X text 206 442 iem.at; #X text 167 464 Graz \, Austria; #X text 119 431 (c) Thomas Musil 2000 - 2010; #X connect 3 0 1 0; #X connect 4 0 3 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 8 0 32 1; #X connect 15 0 24 0; #X connect 16 0 32 3; #X connect 18 0 32 2; #X connect 21 1 27 0; #X connect 21 2 22 0; #X connect 22 1 11 0; #X connect 23 0 21 1; #X connect 24 0 32 0; #X connect 24 1 13 0; #X connect 25 0 15 0; #X connect 32 0 21 0; iemlib-1.20.1/iemabs/vcf_lp2~.pd0000644002537200234200000000135611055052215016621 0ustar zmoelnigiemusers#N canvas 216 218 415 401 10; #X obj 22 42 inlet~; #X obj 22 288 outlet~; #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 Q [-]; #X text 110 71 cutoff_frequency [Hz]; #X obj 22 237 vcf_filter~ lp2; #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 text 166 355 IEM KUG; #X text 150 343 musil; #X text 180 343 @; #X text 186 343 iem.at; #X text 101 332 (c) Thomas Musil 2000 - 2005; #X text 149 365 Graz \, Austria; #X connect 0 0 10 0; #X connect 6 0 13 0; #X connect 7 0 10 2; #X connect 10 0 1 0; #X connect 13 0 10 1; iemlib-1.20.1/iemabs/lp7_crit~.pd0000644002537200234200000000213311055052215017003 0ustar zmoelnigiemusers#N canvas 350 22 418 314 10; #X obj 22 42 inlet~; #X obj 58 65 inlet; #X obj 22 209 outlet~; #X text 62 42 ~signal_in~; #X text 95 66 cutoff_frequency [Hz]; #X text 201 85 interpolation_time [ms]; #X text 33 187 ~filtered signal_out~; #X obj 167 85 inlet; #X text 99 205 1.arg: cutoff_frequency [Hz]; #X text 99 215 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp9_bess~-help.pd0000644002537200234200000000333111055052215017723 0ustar zmoelnigiemusers#N canvas 280 180 379 448 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 169 3 15 133 0 - - -; #X obj 93 188 mtof; #X floatatom 93 207 9 0 22000 0 - - -; #X text 157 208 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 237 5 2 9999 0 - - -; #X text 183 238 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 159 258 <- double-click; #X obj 45 257 hp9_bess~ 440 200; #X text 136 395 IEM KUG; #X text 120 383 musil; #X text 150 383 @; #X text 156 383 iem.at; #X text 71 372 (c) Thomas Musil 2000 - 2005; #X text 119 405 Graz \, Austria; #X text 5 5 hp9_bess~; #X text 81 5 highpass 9.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/bpq2~.pd0000644002537200234200000000156711055052215016136 0ustar zmoelnigiemusers#N canvas 319 273 395 281 10; #X obj 22 42 inlet~; #X obj 55 63 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X obj 88 89 inlet; #X text 190 112 interpolation_time [ms]; #X text 32 153 ~filtered signal_out~; #X obj 155 112 inlet; #X text 92 64 center_frequency [Hz]; #X text 124 89 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: center_frequency [Hz]; #X text 85 185 2.arg: Q [-]; #X text 85 194 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 4 0 10 2; #X connect 7 0 10 4; #X connect 10 0 2 0; iemlib-1.20.1/iemabs/hp3_bess~-help.pd0000644002537200234200000000332411055052215017717 0ustar zmoelnigiemusers#N canvas 280 180 383 452 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 129 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp3_bess~ 440 200; #X text 78 397 IEM KUG; #X text 62 385 musil; #X text 92 385 @; #X text 98 385 iem.at; #X text 13 374 (c) Thomas Musil 2000 - 2005; #X text 61 407 Graz \, Austria; #X text 5 5 hp3_bess~; #X text 81 5 highpass 3.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp5_bess~-help.pd0000644002537200234200000000332611055052215017727 0ustar zmoelnigiemusers#N canvas 280 180 389 458 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 158 3 15 133 0 - - -; #X obj 93 177 mtof; #X floatatom 93 196 9 0 22000 0 - - -; #X text 157 197 Hz; #X text 57 261 ~signal_out~; #X floatatom 200 262 7 0 0 0 - - -; #X text 251 263 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 50 61 % cpu; #X floatatom 142 226 5 2 9999 0 - - -; #X text 183 227 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 256 140 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 59 330 1.arg: cutoff_freq. [Hz]; #X text 59 340 2.arg: interpolation_time [ms]; #X floatatom 286 298 7 0 0 0 - - -; #X text 337 299 dB; #X text 151 246 <- double-click; #X obj 45 247 lp5_bess~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 85 -4 lowpass 5.order with bessel characteristic; #X text 9 -4 lp5_bess~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp9_crit~.pd0000644002537200234200000000231411055052215017006 0ustar zmoelnigiemusers#N canvas 350 22 422 318 10; #X obj 22 42 inlet~; #X obj 58 65 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 66 cutoff_frequency [Hz]; #X text 203 86 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 167 86 inlet; #X text 95 226 1.arg: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 285 IEM KUG; #X text 160 273 musil; #X text 190 273 @; #X text 196 273 iem.at; #X text 111 262 (c) Thomas Musil 2000 - 2005; #X text 159 295 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp6_bess~-help.pd0000644002537200234200000000333111055052215017720 0ustar zmoelnigiemusers#N canvas 280 180 381 450 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 168 3 15 133 0 - - -; #X obj 93 187 mtof; #X floatatom 93 206 9 0 22000 0 - - -; #X text 157 207 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 151 256 <- double-click; #X obj 45 257 hp6_bess~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 5 5 hp6_bess~; #X text 81 5 highpass 6.order with bessel characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/round~-help.pd0000644002537200234200000000140311055052215017334 0ustar zmoelnigiemusers#N canvas 375 118 326 338 10; #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 76 16 a signal-integer-number; #X text 73 5 signal-float-rounding to; #X text 115 278 IEM KUG; #X text 99 266 musil; #X text 129 266 @; #X text 135 266 iem.at; #X text 50 255 (c) Thomas Musil 2000 - 2005; #X text 98 288 Graz \, Austria; #X connect 2 0 8 0; #X connect 5 0 3 0; #X connect 6 0 5 0; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 10 0 1 0; iemlib-1.20.1/iemabs/hp4_bess~.pd0000644002537200234200000000160511055052215016772 0ustar zmoelnigiemusers#N canvas 350 22 410 306 10; #X obj 22 42 inlet~; #X obj 56 66 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 93 67 cutoff_frequency [Hz]; #X text 195 86 interpolation_time [ms]; #X text 30 148 ~filtered signal_out~; #X obj 161 86 inlet; #X text 79 180 1.arg: cutoff_frequency [Hz]; #X text 79 190 2.arg: interpolation_time [ms] (opt.); #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 text 176 265 IEM KUG; #X text 160 253 musil; #X text 190 253 @; #X text 196 253 iem.at; #X text 111 242 (c) Thomas Musil 2000 - 2005; #X text 159 275 Graz \, Austria; #X connect 0 0 12 0; #X connect 1 0 12 1; #X connect 7 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; iemlib-1.20.1/iemabs/hp7_butt~-help.pd0000644002537200234200000000333611055052215017750 0ustar zmoelnigiemusers#N canvas 280 180 399 450 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 93 175 3 15 133 0 - - -; #X obj 93 194 mtof; #X floatatom 93 213 9 0 22000 0 - - -; #X text 157 214 Hz; #X text 57 271 ~signal_out~; #X floatatom 205 273 7 0 0 0 - - -; #X text 257 274 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 49 72 % cpu; #X floatatom 142 236 5 2 9999 0 - - -; #X text 183 237 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 252 151 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 324 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 40 339 1.arg: cutoff_freq. [Hz]; #X text 40 349 2.arg: interpolation_time [ms]; #X floatatom 305 306 7 0 0 0 - - -; #X text 357 307 dB; #X text 152 256 <- double-click; #X obj 45 257 hp7_butt~ 440 200; #X text 126 395 IEM KUG; #X text 110 383 musil; #X text 140 383 @; #X text 146 383 iem.at; #X text 61 372 (c) Thomas Musil 2000 - 2005; #X text 109 405 Graz \, Austria; #X text 5 5 hp7_butt~; #X text 81 5 highpass 7.order with butterworth characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/lp7_butt~-help.pd0000644002537200234200000000333311055052215017751 0ustar zmoelnigiemusers#N canvas 280 180 397 448 10; #X text 2 232 ~signal_in~; #X text 27 20 dsp ON/OFF; #X floatatom 93 164 3 15 133 0 - - -; #X obj 93 183 mtof; #X floatatom 93 202 9 0 22000 0 - - -; #X text 157 203 Hz; #X text 57 261 ~signal_out~; #X floatatom 205 263 7 0 0 0 - - -; #X text 257 264 dB; #X floatatom 118 130 9 0 22000 0 - - -; #X text 182 131 Hz; #X floatatom 45 91 3 15 133 0 - - -; #X floatatom 10 60 5 0 0 0 - - -; #X text 49 62 % cpu; #X floatatom 142 227 5 2 9999 0 - - -; #X text 183 228 ms; #X obj 10 40 dsp; #X obj 10 20 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 306 dac~; #X obj 45 281 gainvu~ 300; #X obj 257 141 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 329 150 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 110 testtone~ 200; #X obj 109 74 init 69; #X text 72 92 midi; #X text 40 329 1.arg: cutoff_freq. [Hz]; #X text 40 339 2.arg: interpolation_time [ms]; #X floatatom 305 298 7 0 0 0 - - -; #X text 357 299 dB; #X text 157 246 <- double-click; #X obj 45 247 lp7_butt~ 440 200; #X text 106 395 IEM KUG; #X text 90 383 musil; #X text 120 383 @; #X text 126 383 iem.at; #X text 41 372 (c) Thomas Musil 2000 - 2005; #X text 89 405 Graz \, Austria; #X text 81 -5 lowpass 7.order with butterworth characteristic; #X text 5 -5 lp7_butt~; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp10_cheb~-help.pd0000644002537200234200000000341211055052215017740 0ustar zmoelnigiemusers#N canvas 280 180 377 446 10; #X text 2 242 ~signal_in~; #X text 27 30 dsp ON/OFF; #X floatatom 96 169 3 15 133 0 - - -; #X obj 96 188 mtof; #X floatatom 96 207 9 0 22000 0 - - -; #X text 160 208 Hz; #X text 57 271 ~signal_out~; #X floatatom 200 272 7 0 0 0 - - -; #X text 251 273 dB; #X floatatom 118 140 9 0 22000 0 - - -; #X text 182 141 Hz; #X floatatom 45 101 3 15 133 0 - - -; #X floatatom 10 70 5 0 0 0 - - -; #X text 50 71 % cpu; #X floatatom 148 237 5 2 9999 0 - - -; #X text 189 238 ms; #X obj 10 50 dsp; #X obj 10 30 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 0 1 ; #X obj 45 316 dac~; #X obj 45 291 gainvu~ 300; #X obj 256 150 vu 15 120 empty empty 8 -8 0 10 -66577 -1 1 0; #X obj 320 160 vsl 15 128 0 127 0 1 empty empty empty 8 -8 0 10 -262144 -1 -1 8000 1; #X obj 45 120 testtone~ 200; #X obj 109 84 init 69; #X text 72 102 midi; #X text 59 340 1.arg: cutoff_freq. [Hz]; #X text 59 350 2.arg: interpolation_time [ms]; #X floatatom 286 308 7 0 0 0 - - -; #X text 337 309 dB; #X text 159 258 <- double-click; #X obj 45 257 hp10_cheb~ 440 200; #X text 136 395 IEM KUG; #X text 120 383 musil; #X text 150 383 @; #X text 156 383 iem.at; #X text 71 372 (c) Thomas Musil 2000 - 2005; #X text 119 405 Graz \, Austria; #X text 142 17 and +1 dB passband-ripple; #X text 5 5 hp10_cheb~; #X text 81 5 highpass 10.order with chebyshev characteristic; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 30 1; #X connect 11 0 22 0; #X connect 14 0 30 2; #X connect 16 0 12 0; #X connect 17 0 16 0; #X connect 19 0 18 0; #X connect 19 0 18 1; #X connect 19 1 27 0; #X connect 19 2 20 0; #X connect 20 1 7 0; #X connect 21 0 19 1; #X connect 22 0 30 0; #X connect 22 1 9 0; #X connect 23 0 11 0; #X connect 30 0 19 0; iemlib-1.20.1/iemabs/hp2~.pd0000644002537200234200000000155111055052215015754 0ustar zmoelnigiemusers#N canvas 435 244 379 285 10; #X obj 22 42 inlet~; #X obj 53 65 inlet; #X obj 22 186 outlet~; #X text 62 42 ~signal_in~; #X text 89 64 cutoff_frequency [Hz]; #X obj 85 89 inlet; #X text 184 113 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 Q [-]; #X text 88 177 1.arg: cutoff_frequency [Hz]; #X text 88 186 2.arg: Q [-]; #X text 88 196 3.arg: interpolation_time [ms] (opt.); #X text 176 245 IEM KUG; #X text 160 233 musil; #X text 190 233 @; #X text 196 233 iem.at; #X text 111 222 (c) Thomas Musil 2000 - 2005; #X text 159 255 Graz \, Austria; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 5 0 10 2; #X connect 10 0 2 0; #X connect 11 0 10 4; iemlib-1.20.1/iemabs/hp9_crit~.pd0000644002537200234200000000231511055052215017003 0ustar zmoelnigiemusers#N canvas 350 22 420 316 10; #X obj 22 42 inlet~; #X obj 58 65 inlet; #X obj 22 230 outlet~; #X text 62 42 ~signal_in~; #X text 95 66 cutoff_frequency [Hz]; #X text 203 86 interpolation_time [ms]; #X text 33 208 ~filtered signal_out~; #X obj 167 86 inlet; #X text 95 226 1.arg: cutoff_frequency [Hz]; #X text 95 236 2.arg: interpolation_time [ms] (opt.); #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 text 176 275 IEM KUG; #X text 160 263 musil; #X text 190 263 @; #X text 196 263 iem.at; #X text 111 252 (c) Thomas Musil 2000 - 2005; #X text 159 285 Graz \, Austria; #X connect 0 0 13 0; #X connect 1 0 13 1; #X connect 7 0 13 4; #X connect 12 0 2 0; #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 12 0; #X connect 16 1 12 1; #X connect 16 4 12 4; iemlib-1.20.1/include/0000755002537200234200000000000012243414231014721 5ustar zmoelnigiemusersiemlib-1.20.1/include/iemlib.h0000644002537200234200000000762412165267654016366 0ustar zmoelnigiemusers/* For information on usage and redistribution, and for a DISCLAIMER OF ALL * WARRANTIES, see the file, "LICENSE.txt," in this distribution. iemlib written by Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2012 */ #ifndef __IEMLIB_H__ #define __IEMLIB_H__ #define IS_A_NULL(atom,index) ((atom+index)->a_type == A_NULL) #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) #define SETNULL(atom) ((atom)->a_type = A_NULL) /* now miller's code starts : for 4 point interpolation for lookup tables for denormal floats */ #ifdef MSW int sys_noloadbang; //t_symbol *iemgui_key_sym=0; #include #else extern int sys_noloadbang; //extern t_symbol *iemgui_key_sym; #include #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 */ #endif /* IRIX */ #ifdef MSW /* little-endian; most significant byte is at highest address */ #define HIOFFSET 1 #define LOWOFFSET 0 #define int32 long #endif /* MSW */ #if defined(__FreeBSD__) || defined(__APPLE__) || defined(__FreeBSD_kernel__) #include #endif #if defined(__linux__) || defined(__CYGWIN__) || defined(__GNU__) || defined(ANDROID) #include #endif #if defined(__unix__) || defined(__APPLE__) #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 #define int32 int32_t #endif /* __unix__ or __APPLE__*/ union tabfudge_d { double tf_d; int32 tf_i[2]; }; union tabfudge_f { float tf_f; long tf_l; }; #if defined __i386__ || defined __x86_64__ #define IEM_DENORMAL(f) ((((*(unsigned int*)&(f))&0x60000000)==0) || \ (((*(unsigned int*)&(f))&0x60000000)==0x60000000)) /* more stringent test: anything not between 1e-19 and 1e19 in absolute val */ #else #define IEM_DENORMAL(f) 0 #endif /* on 64bit systems we cannot use garray_getfloatarray... */ #if ((defined PD_MAJOR_VERSION && defined PD_MINOR_VERSION) && (PD_MAJOR_VERSION > 0 || PD_MINOR_VERSION > 40)) # define iemarray_t t_word # define iemarray_getarray garray_getfloatwords # define iemarray_getfloat(pointer, index) (pointer[index].w_float) # define iemarray_setfloat(pointer, index, fvalue) (pointer[index].w_float = fvalue) #else # define iemarray_t t_float # define iemarray_getarray garray_getfloatarray # define iemarray_getfloat(pointer, index) (pointer[index]) # define iemarray_setfloat(pointer, index, fvalue) (pointer[index] = fvalue) #endif #endif iemlib-1.20.1/iem_t3_lib/0000755002537200234200000000000012243414235015310 5ustar zmoelnigiemusersiemlib-1.20.1/iem_t3_lib/src/0000755002537200234200000000000012243414235016077 5ustar zmoelnigiemusersiemlib-1.20.1/iem_t3_lib/src/t3_line~.c0000644002537200234200000001557411156255327020021 0ustar zmoelnigiemusers/* 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 Gerhard Eckel, Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* -------------------------- t3_line~ ------------------------------ */ static t_class *t3_line_tilde_class; typedef struct _t3_line_tilde { t_object x_obj; t_clock *x_clock; t_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_t3_line_tilde; static void t3_line_tilde_nontransient(t_float *vec, t_t3_line_tilde *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++ = (t_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++ = (t_float)cur_val; } x->x_cur_val = x->x_dst_val; } else { for(i=0; ix_cur_val = cur_val = x->x_dst_val; for(i=cur_samps; ix_cur_samps = 0; } } else { while(n--) *vec++ = (t_float)cur_val; } } static t_int *t3_line_tilde_perform(t_int *w) { t_float *out = (t_float *)(w[1]); t_t3_line_tilde *x = (t_t3_line_tilde *)(w[2]); int n = (int)(w[3]); if(x->x_transient) { t_float *trans = x->x_beg; while(n--) *out++ = *trans++; x->x_transient = 0; } else t3_line_tilde_nontransient(out, x, n); return(w+4); } static void t3_line_tilde_tick(t_t3_line_tilde *x) { t_float *trans = x->x_beg; int n = x->x_n, t3_bang_samps, cur_samps, i; double inc, cur_val; if(!x->x_transient) t3_line_tilde_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; ix_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; ix_cur_val += (double)diff * inc; x->x_cur_samps -= diff; } else if(cur_samps == diff) { for(i=t3_bang_samps; ix_cur_val = x->x_dst_val; x->x_cur_samps = 0; } else { end = t3_bang_samps + cur_samps; for(i=t3_bang_samps; ix_cur_val = x->x_dst_val; x->x_cur_samps = 0; for(i=end; ix_transient = 1; } static void t3_line_tilde_list(t_t3_line_tilde *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 dtime; x->x_inlet_val = (double)atom_getfloatarg(1, ac, av); t3_bang_samps = (int)((t_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)) { dtime = (double)atom_getfloatarg(2, ac, av); if(dtime < 0.0) dtime = 0.0; x->x_inlet_time = dtime; } if(ticks < 1) t3_line_tilde_tick(x); else clock_delay(x->x_clock, (double)ticks * x->x_ticks2ms); } } static void t3_line_tilde_ft1(t_t3_line_tilde *x, t_float ftime) { if(ftime < 0.0) ftime = 0.0; x->x_inlet_time = (double)ftime; } static void t3_line_tilde_stop(t_t3_line_tilde *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 t3_line_tilde_dsp(t_t3_line_tilde *x, t_signal **sp) { int i; t_float val, *trans; if(sp[0]->s_n > x->x_n) { freebytes(x->x_beg, x->x_n*sizeof(t_float)); x->x_n = (int)sp[0]->s_n; x->x_beg = (t_float *)getbytes(x->x_n*sizeof(t_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(t3_line_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); } static void t3_line_tilde_free(t_t3_line_tilde *x) { if(x->x_beg) freebytes(x->x_beg, x->x_n*sizeof(t_float)); clock_free(x->x_clock); } static void *t3_line_tilde_new(t_floatarg init_val) { t_t3_line_tilde *x = (t_t3_line_tilde *)pd_new(t3_line_tilde_class); int i; x->x_n = (int)sys_getblksize(); x->x_beg = (t_float *)getbytes(x->x_n*sizeof(t_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)t3_line_tilde_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 t3_line_tilde_setup(void) { t3_line_tilde_class = class_new(gensym("t3_line~"), (t_newmethod)t3_line_tilde_new, (t_method)t3_line_tilde_free, sizeof(t_t3_line_tilde), 0, A_DEFFLOAT, 0); class_addmethod(t3_line_tilde_class, (t_method)t3_line_tilde_dsp, gensym("dsp"), 0); class_addmethod(t3_line_tilde_class, (t_method)t3_line_tilde_stop, gensym("stop"), 0); class_addmethod(t3_line_tilde_class, (t_method)t3_line_tilde_ft1, gensym("ft1"), A_FLOAT, 0); class_addlist(t3_line_tilde_class, (t_method)t3_line_tilde_list); // class_sethelpsymbol(t3_line_tilde_class, gensym("iemhelp/help-t3_line~")); } iemlib-1.20.1/iem_t3_lib/src/iem_t3_lib.c0000644002537200234200000000210210536414324020246 0ustar zmoelnigiemusers/* 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 Gerhard Eckel, Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 */ #include "m_pd.h" #include "iemlib.h" 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 t3_bpe_setup(void); void t3_delay_setup(void); void t3_line_tilde_setup(void); void t3_metro_setup(void); void t3_sig_tilde_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); t3_bpe_setup(); t3_delay_setup(); t3_line_tilde_setup(); t3_metro_setup(); t3_sig_tilde_setup(); t3_timer_setup(); post("iem_t3_lib (R-1.17) library loaded! (c) Gerhard Eckel, Thomas Musil 11.2006"); post(" musil%ciem.at iem KUG Graz Austria", '@'); } iemlib-1.20.1/iem_t3_lib/src/makefile_d_fat0000644002537200234200000000156312205157153020742 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .d_fat PDSOURCE = "/Applications/Pd.app/Contents/Resources/src" IEMLIB_INCLUDE = ../../include PD_INCLUDES = -I. -I$(IEMLIB_INCLUDE) -I$(PDSOURCE) PD_DEFINES = -DPD CFLAGS =-O2 -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch -fPIC LFLAGS = -bundle -undefined suppress -flat_namespace ARCH_FLAGS=-arch i386 -arch ppc # the sources SRC = t3_bpe.c \ t3_delay.c \ t3_line~.c \ t3_metro.c \ t3_sig~.c \ t3_timer.c \ iem_t3_lib.c TARGET = iem_t3_lib.d_fat OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm -f ../$(TARGET) rm -f *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(ARCH_FLAGS) $(LFLAGS) -o $(TARGET) *.o strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c $(CC) $(ARCH_FLAGS) $(PD_DEFINES) $(CFLAGS) $(PD_INCLUDES) -c -o $*.o $*.c iemlib-1.20.1/iem_t3_lib/src/makefile0000644002537200234200000000022612205157250017576 0ustar zmoelnigiemusersTARGET = iem_t3_lib SRC = t3_bpe.c \ t3_delay.c \ t3_line~.c \ t3_metro.c \ t3_sig~.c \ t3_timer.c \ $(TARGET).c include ../../Make.include iemlib-1.20.1/iem_t3_lib/src/makefile_d_ppc0000644002537200234200000000141110714357627020755 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .d_ppc PD_INSTALL_PATH = "/Applications/Pd.app/Contents/Resources" INCLUDE = -I. -I$(PD_INSTALL_PATH)/src CFLAGS =-DPD -O2 -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch LFLAGS = -bundle -undefined suppress -flat_namespace # the sources SRC = t3_bpe.c \ t3_delay.c \ t3_line~.c \ t3_metro.c \ t3_sig~.c \ t3_timer.c \ iem_t3_lib.c TARGET = iem_t3_lib.d_ppc OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm ../$(TARGET) rm *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(LFLAGS) -o $(TARGET) *.o strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c touch $*.c $(CC) $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c iemlib-1.20.1/iem_t3_lib/src/iem_t3_lib.dsp0000644002537200234200000000503011203416362020611 0ustar zmoelnigiemusers# 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 gltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE !MESSAGE verwenden Sie den Befehl "Makefile exportieren" und fhren Sie den Befehl !MESSAGE !MESSAGE NMAKE /f "iem_t3_lib.mak". !MESSAGE !MESSAGE Sie knnen beim Ausfhren 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 Fr 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 iemlib-1.20.1/iem_t3_lib/src/t3_bpe.c0000644002537200234200000000650211156255327017431 0ustar zmoelnigiemusers/* 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 Gerhard Eckel, Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 */ #include "m_pd.h" #include "iemlib.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; t_float val; double dticks, dtime; 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++); dtime = (double)atom_getfloat(vec); outlet_float(x->x_out_time, dtime); 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 = (dtime + 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; ix_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")); } iemlib-1.20.1/iem_t3_lib/src/t3_delay.c0000644002537200234200000000460710536414324017760 0ustar zmoelnigiemusers/* 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 Gerhard Eckel, Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 */ #include "m_pd.h" #include "iemlib.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")); } iemlib-1.20.1/iem_t3_lib/src/t3_timer.c0000644002537200234200000000256210536414324020000 0ustar zmoelnigiemusers/* 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 Gerhard Eckel, Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 */ #include "m_pd.h" #include "iemlib.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_floatarg 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_floatarg 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.0f); 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")); } iemlib-1.20.1/iem_t3_lib/src/makefile_win0000644002537200234200000000200211203416362020444 0ustar zmoelnigiemusersTARGET = iem_t3_lib all: ..\$(TARGET).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 = t3_bpe.c \ t3_delay.c \ t3_line~.c \ t3_metro.c \ t3_sig~.c \ t3_timer.c \ $(TARGET).c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\$(TARGET).dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \ /out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iem_t3_lib/src/iem_t3_lib.dsw0000644002537200234200000000107311203416362020623 0ustar zmoelnigiemusersMicrosoft Developer Studio Workspace File, Format Version 6.00 # WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELSCHT WERDEN! ############################################################################### Project: "iem_t3_lib"=.\iem_t3_lib.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### iemlib-1.20.1/iem_t3_lib/src/t3_metro.c0000644002537200234200000000605210536414324020004 0ustar zmoelnigiemusers/* 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 Gerhard Eckel, Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 */ #include "m_pd.h" #include "iemlib.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")); } iemlib-1.20.1/iem_t3_lib/src/makefile_darwin0000644002537200234200000000163110714357627021160 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .pd_darwin PD_INSTALL_PATH = "/Applications/Pd.app/Contents/Resources" INCLUDE = -I. -I$(PD_INSTALL_PATH)/src LIB = -ldl -lm -lpthread CFLAGS = -DPD -DUNIX -g -Wall -W -Werror -Wno-unused \ -Wno-parentheses -Wno-switch -O2 -fno-strict-aliasing \ $(INCLUDE) $(UCFLAGS) $(AFLAGS) \ MACOSXLINKFLAGS = -bundle -bundle_loader $(PD_INSTALL_PATH)/bin/pd SYSTEM = $(shell uname -m) # the sources SRC = t3_bpe.c \ t3_delay.c \ t3_line~.c \ t3_metro.c \ t3_sig~.c \ t3_timer.c \ iem_t3_lib.c TARGET = iem_t3_lib.pd_darwin OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm ../$(TARGET) rm *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(MACOSXLINKFLAGS) -o $(TARGET) *.o $(LIB) strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c touch $*.c $(CC) $(CFLAGS) -DPD $(INCLUDE) -c -o $*.o $*.c iemlib-1.20.1/iem_t3_lib/src/t3_sig~.c0000644002537200234200000001120410536414324017631 0ustar zmoelnigiemusers/* 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 Gerhard Eckel, Thomas Musil, Copyright (c) IEM KUG Graz Austria 2000 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* -------------------------- t3_sig_tilde~ ------------------------------ */ static t_class *t3_sig_tilde_class; typedef struct _t3_sig_tilde { t_object x_obj; t_clock *x_clock; t_float x_old_val; t_float x_new_val; t_float *x_beg; int x_n; int x_t3_bang_samps; int x_transient; t_float x_ms2samps; t_float x_ticks2ms; } t_t3_sig_tilde; static void t3_sig_tilde_tick(t_t3_sig_tilde *x) { t_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; ix_transient = 1; } val = x->x_old_val = x->x_new_val; for(i=t3_bang_samps; ix_clock); x->x_new_val = x->x_old_val; } static void t3_sig_tilde_list(t_t3_sig_tilde *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)((t_float)atom_getfloatarg(0, ac, av)*x->x_ms2samps); x->x_new_val = (t_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) t3_sig_tilde_tick(x); else clock_delay(x->x_clock, (double)ticks * (double)x->x_ticks2ms); } } static t_int *t3_sig_tilde_perform(t_int *w) { t_float *out = (t_float *)(w[1]); t_t3_sig_tilde *x = (t_t3_sig_tilde *)(w[2]); int n = (int)(w[3]); if(x->x_transient) { t_float *trans = x->x_beg; while(n--) *out++ = *trans++; x->x_transient = 0; } else { t_float val = x->x_new_val; while(n--) *out++ = val; } return (w+4); } static t_int *t3_sig_tilde_perf8(t_int *w) { t_float *out = (t_float *)(w[1]); t_t3_sig_tilde *x = (t_t3_sig_tilde *)(w[2]); int n = (int)(w[3]), i; if(x->x_transient) { t_float *trans = x->x_beg; for(i=0; ix_transient = 0; } else { t_float val = x->x_new_val; for(i=0; is_n > x->x_n) { freebytes(x->x_beg, x->x_n*sizeof(t_float)); x->x_n = sp[0]->s_n; x->x_beg = (t_float *)getbytes(x->x_n*sizeof(t_float)); } else x->x_n = sp[0]->s_n; x->x_ms2samps = 0.001*(t_float)sp[0]->s_sr; x->x_ticks2ms = (t_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(t3_sig_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); else dsp_add(t3_sig_tilde_perf8, 3, sp[0]->s_vec, x, sp[0]->s_n); } static void t3_sig_tilde_free(t_t3_sig_tilde *x) { if(x->x_beg) freebytes(x->x_beg, x->x_n*sizeof(t_float)); clock_free(x->x_clock); } static void *t3_sig_tilde_new(t_floatarg init_val) { t_t3_sig_tilde *x = (t_t3_sig_tilde *)pd_new(t3_sig_tilde_class); x->x_new_val = x->x_old_val = init_val; x->x_n = (int)sys_getblksize(); x->x_beg = (t_float *)getbytes(x->x_n*sizeof(t_float)); x->x_t3_bang_samps = x->x_transient = 0; x->x_ms2samps = 0.001 * (t_float)sys_getsr(); x->x_ticks2ms = (t_float)x->x_n / x->x_ms2samps; x->x_clock = clock_new(x, (t_method)t3_sig_tilde_tick); outlet_new(&x->x_obj, &s_signal); return (x); } void t3_sig_tilde_setup(void) { t3_sig_tilde_class = class_new(gensym("t3_sig~"), (t_newmethod)t3_sig_tilde_new, (t_method)t3_sig_tilde_free, sizeof(t_t3_sig_tilde), 0, A_DEFFLOAT, 0); class_addmethod(t3_sig_tilde_class, (t_method)t3_sig_tilde_dsp, gensym("dsp"), 0); class_addmethod(t3_sig_tilde_class, (t_method)t3_sig_tilde_stop, gensym("stop"), 0); class_addlist(t3_sig_tilde_class, (t_method)t3_sig_tilde_list); // class_sethelpsymbol(t3_sig_tilde_class, gensym("iemhelp/help-t3_sig~")); } iemlib-1.20.1/iem_t3_lib/t3_delay-help.pd0000644002537200234200000000426511055052215020272 0ustar zmoelnigiemusers#N canvas 100 58 496 565 10; #N canvas 0 0 450 300 graph1 0; #X array array99 259 float 0; #X coords 0 0 258 1 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 0 empty empty empty 20 8 0 10 -262144 -1 -1 0 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 172 240 pre_delay; #X text 238 350 duration; #X text 365 418 IEM KUG; #X text 349 406 musil; #X text 379 406 @; #X text 385 406 iem.at; #X text 300 395 (c) Thomas Musil 2000 - 2005; #X text 348 428 Graz \, Austria; #X text 300 383 (c) Gerhard Eckel; #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; iemlib-1.20.1/iem_t3_lib/t3_sig~-help.pd0000644002537200234200000000357411055052215020156 0ustar zmoelnigiemusers#N canvas 174 106 507 414 10; #X floatatom 62 268 8 0 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 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 0 - - -; #X floatatom 10 109 5 0 0 0 - - -; #X obj 10 42 tgl 15 0 empty empty empty 20 8 0 10 -262144 -1 -1 0 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 -262144 -1 -1; #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 315 328 IEM KUG; #X text 299 316 musil; #X text 329 316 @; #X text 335 316 iem.at; #X text 250 305 (c) Thomas Musil 2000 - 2005; #X text 298 338 Graz \, Austria; #X text 250 293 (c) Gerhard Eckel; #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; iemlib-1.20.1/iem_t3_lib/t3_bpe-help.pd0000644002537200234200000000557011055052215017742 0ustar zmoelnigiemusers#N canvas 100 17 532 586 10; #N canvas 0 0 450 300 graph1 0; #X array array99 259 float 0; #X coords 0 0 258 1 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 0 empty empty empty 20 8 0 10 -262144 -1 -1 0 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 363 184 Samples; #X floatatom 156 387 8 0 0 0 - - -; #X text 213 388 t3_bang if finished; #X text 405 528 IEM KUG; #X text 389 516 musil; #X text 419 516 @; #X text 425 516 iem.at; #X text 340 505 (c) Thomas Musil 2000 - 2005; #X text 388 538 Graz \, Austria; #X text 340 493 (c) Gerhard Eckel; #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 49 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; iemlib-1.20.1/iem_t3_lib/t3_line~-help.pd0000644002537200234200000000523111055052215020313 0ustar zmoelnigiemusers#N canvas 124 45 505 584 10; #N canvas 0 0 450 300 graph1 0; #X array array99 259 float 0; #X coords 0 0 258 1 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 0 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 375 478 IEM KUG; #X text 359 466 musil; #X text 389 466 @; #X text 395 466 iem.at; #X text 310 455 (c) Thomas Musil 2000 - 2005; #X text 358 488 Graz \, Austria; #X text 310 443 (c) Gerhard Eckel; #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; iemlib-1.20.1/iem_t3_lib/t3_timer-help.pd0000644002537200234200000000140411055052215020304 0ustar zmoelnigiemusers#N canvas 231 195 316 292 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 -262144 -1 -1; #X obj 22 145 t3_timer; #X floatatom 22 170 6 0 0 0 - - -; #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 0 - - -; #X text 203 93 ms; #X text 72 170 ms; #X text 84 5 time-tagged trigger timer; #X text 125 248 IEM KUG; #X text 109 236 musil; #X text 139 236 @; #X text 145 236 iem.at; #X text 60 225 (c) Thomas Musil 2000 - 2005; #X text 108 258 Graz \, Austria; #X text 60 213 (c) Gerhard Eckel; #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 8 0 0 1; iemlib-1.20.1/iem_t3_lib/t3_metro-help.pd0000644002537200234200000000535011055052215020316 0ustar zmoelnigiemusers#N canvas 228 46 467 574 10; #N canvas 0 0 450 300 graph1 0; #X array array99 259 float 0; #X coords 0 0 258 1 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 0 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 355 438 IEM KUG; #X text 339 426 musil; #X text 369 426 @; #X text 375 426 iem.at; #X text 290 415 (c) Thomas Musil 2000 - 2005; #X text 338 448 Graz \, Austria; #X text 290 403 (c) Gerhard Eckel; #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; iemlib-1.20.1/INSTALL_win.txt0000644002537200234200000000707110536420427016036 0ustar zmoelnigiemusersInstallation-guide for iemlib under windows (win_xp, win2k, win_me, win_nt or win98) iemlib_R1.17 is written by Thomas Musil from IEM Graz Austria and it is compatible to miller puckette's pd-0.38-3 to pd-0.39-2. see also LICENCE.txt, GnuLGPL.txt and README.txt. 1.) download and copy iemlib_R1.17_win.zip into your pd-installation-directory ( e.g.C:\Programs\pd\iemlib_R1.17_win.zip ) 2.) unzip iemlib_R1.17_win.zip winzip create a directory C:\Programs\pd\iemlib_R1.17\ 3.) install external library folders copy from C:\Programs\pd\iemlib_R1.17\iemlib1 to C:\Programs\pd\extra copy from C:\Programs\pd\iemlib_R1.17\iemlib2 to C:\Programs\pd\extra copy from C:\Programs\pd\iemlib_R1.17\iem_mp3 to C:\Programs\pd\extra copy from C:\Programs\pd\iemlib_R1.17\iem_t3_lib to C:\Programs\pd\extra 4.) install pd abstraction folder copy from C:\Programs\pd\iemlib_R1.17\iemabs to C:\Programs\pd\extra 5.) add to your pd_start.bat the following configuration-options: -path C:\Programs\pd\extra\iemabs -lib iemlib1;iemlib2;iem_mp3;iem_t3_lib or create a textfile pd_start.bat with this content: @echo off set PD_INSTALL=C:\Programme\pd\bin set PD_AUDIO=-r 44100 -audiobuf 160 set PD_MIDI=-nomidi set PD_PATH=-path C:/Programme/pd/extra/iemabs set PD_LIB=-lib iemlib1;iemlib2;iem_mp3;iem_t3_lib @echo starting pd ... %PD_INSTALL%\pd %PD_AUDIO% %PD_MIDI% %PD_PATH% %PD_LIB% How to compile iemlib under windows after installing iemlib and if You are owner of a VCC++ compiler: 4.a) edit makefile_win of iemlib1 change to directory C:\Programs\pd\iemlib_R1.17\iemlib1\src and edit following lines of makefile_win and save ( VIS_CPP_PATH = "" and PD_INST_PATH = "" ) 4.b) compile iemlib1 doubleclick iemlib1.dsw, VCC++ will start, Menue: build/configuration = Release, Menue: build/build all , ( after this command, iemlib1.dll will be created in C:\Programs\pd\iemlib_R1.17\iemlib1 ). 5.a) edit makefile_win of iemlib2 change to directory C:\Programs\pd\iemlib_R1.17\iemlib2\src and edit following lines of makefile_win and save ( VIS_CPP_PATH = "" and PD_INST_PATH = "" ) 5.b) compile iemlib2 doubleclick iemlib2.dsw, VCC++ will start, Menue: build/configuration = Release, Menue: build/build all , ( after this command, iemlib2.dll will be created in C:\Programs\pd\iemlib_R1.17\iemlib2 ). 6.a) edit makefile_win of iem_mp3 change to directory C:\Programs\pd\iemlib_R1.17\iem_mp3\src and edit following lines of makefile_win and save ( VIS_CPP_PATH = "" and PD_INST_PATH = "" ) 6.b) compile iem_mp3 doubleclick iem_mp3.dsw, VCC++ will start, Menue: build/configuration = Release, Menue: build/build all , ( after this command, iem_mp3.dll will be created in C:\Programs\pd\iemlib_R1.17\iem_mp3 ). 7.a) edit makefile_win of iem_t3_lib change to directory C:\Programs\pd\iemlib_R1.17\iem_t3_lib\src and edit following lines of makefile_win and save ( VIS_CPP_PATH = "" and PD_INST_PATH = "" ) 7.b) compile iem_t3_lib doubleclick iem_t3_lib.dsw, VCC++ will start, Menue: build/configuration = Release, Menue: build/build all , ( after this command, iem_t3_lib.dll will be created in C:\Programs\pd\iemlib_R1.17\iem_t3_lib ). 8.) install dynamic libraries copy from C:\Programs\pd\iemlib_R1.17\iemlib1\iemlib1.dll to C:\Programs\pd\extra\iemlib1\iemlib1.dll copy from C:\Programs\pd\iemlib_R1.17\iemlib2\iemlib2.dll to C:\Programs\pd\extra\iemlib2\iemlib2.dll copy from C:\Programs\pd\iemlib_R1.17\iem_mp3\iem_mp3.dll to C:\Programs\pd\extra\iem_mp3\iem_mp3.dll copy from C:\Programs\pd\iemlib_R1.17\iem_t3_lib\iem_t3_lib.dll to C:\Programs\pd\extra\iem_t3_lib\iem_t3_lib.dll iemlib-1.20.1/pd-0.39-2_start.bat0000644002537200234200000000052310536420427016343 0ustar zmoelnigiemusers@echo off set PD_PATCH=%1 set PD_INSTALL=C:\Programme\pd-0.39-2\bin set PD_AUDIO=-r 44100 -audiobuf 80 -channels 2 set PD_MIDI=-nomidi set PD_OPTIONS=-font 10 set PD_PATH=-path iemabs set PD_LIB=-lib iemlib1;iemlib2;iem_mp3;iem_t3_lib @echo starting pd ... %PD_INSTALL%\pd %PD_AUDIO% %PD_MIDI% %PD_OPTIONS% %PD_PATH% %PD_LIB% %PD_PATCH% iemlib-1.20.1/examples/0000755002537200234200000000000012243414235015120 5ustar zmoelnigiemusersiemlib-1.20.1/examples/1_simple_parameter_management.pd0000644002537200234200000001711311055052215023411 0ustar zmoelnigiemusers#N canvas 29 11 873 568 10; #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 0 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 2.00288 256; #X obj 10 98 nbx 4 12 -1e+037 1e+037 0 0 empty empty mean 0 -7 0 10 -195568 -1 -1 0.42 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 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 text 96 95 IEM KUG; #X text 80 83 musil; #X text 110 83 @; #X text 116 83 iem.at; #X text 31 72 (c) Thomas Musil 2000 - 2005; #X text 79 105 Graz \, Austria; #X connect 0 0 19 0; #X connect 0 1 18 0; #X connect 6 0 1 0; #X connect 6 0 1 1; #X connect 6 0 12 0; #X connect 8 0 6 0; #X connect 12 0 24 0; #X connect 17 0 0 0; #X connect 20 0 6 4; #X connect 20 0 5 0; #X connect 21 0 4 0; #X connect 21 0 6 3; #X connect 22 0 3 0; #X connect 22 0 6 2; #X connect 23 0 2 0; #X connect 23 0 6 1; #X connect 25 0 9 2; #X connect 26 0 9 1; #X connect 27 0 9 0; iemlib-1.20.1/examples/2_GUI_DSP_parameter_management.pd0000644002537200234200000003206411055052215023255 0ustar zmoelnigiemusers#N canvas 21 46 966 576 10; #X obj 792 427 dsp; #X obj 279 489 dac~; #X floatatom 306 421 5 0 0 0 - - -; #X floatatom 398 418 5 0 0 0 - - -; #X floatatom 494 439 5 0 0 0 - - -; #X symbolatom 490 511 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 456 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 5581 1; #X obj 70 159 nbx 4 12 -1e+037 1e+037 0 0 empty empty dB 48 7 0 10 -225280 -1 -1 -8.095 256; #X obj 196 23 vsl 15 128 9 136 0 0 midi_freq_dsp midi_freq_gui freq 0 -8 0 8 -250685 -1 -1 8600 1; #X obj 197 160 nbx 5 12 -1e+037 1e+037 0 0 empty empty Hz 58 7 0 10 -257472 -1 -1 1975.53 256; #X obj 293 160 nbx 4 12 -1e+037 1e+037 0 0 empty empty empty 48 7 0 10 -262131 -1 -1 6.01904 256; #X obj 293 24 vsl 15 128 0.1 10 1 0 empty empty Q 0 -8 0 8 -260818 -1 -1 11300 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 2; #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 2; #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 4.00576 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.08 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 293 31 pd GUI; #X obj 268 425 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 483 pd parameter_memory_management; #X text 11 349 ****************** DSP ***********************; #X text 11 307 ****************** GUI ***********************; #X obj 15 444 r recall_dsp; #X obj 102 443 r store_dsp; #X obj 190 442 r save_dsp; #X obj 805 448 s perf_peak_dsp; #X obj 792 468 s perf_mean_dsp; #X obj 792 406 r audio_dsp; #X obj 334 483 prvu~; #X obj 334 505 s out_level_dsp; #X text 294 307 ****************** GUI ***********************; #X text 578 307 ****************** GUI ***********************; #X text 293 349 ****************** DSP ***********************; #X text 577 349 ****************** DSP ***********************; #X msg 38 215 disconnect; #N canvas 0 0 540 320 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 362 188 pp set; #X msg 287 158 clear; #X obj 362 122 pp list; #X obj 362 155 mergefilename _; #X text 92 17 simulated netsend; #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 266 pd netsend; #N canvas 0 0 614 377 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 236 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 628 252 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 628 230 pd netreceive 3001; #X floatatom 54 290 5 0 0 0 - - -; #N canvas 0 0 474 324 netreceive 0; #X obj 96 253 outlet; #X obj 96 197 r my_dsp_workstation_3000; #X text 108 169 simulated netreceive; #X connect 1 0 0 0; #X restore 14 378 pd netreceive 3000; #N canvas 0 0 853 534 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 400 pd from_gui_to_dsp; #X msg 577 440 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 478 pd netsend; #X floatatom 646 502 5 0 0 0 - - -; #X msg 595 419 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 441 pd from_dsp_to_gui; #X obj 577 377 r connect_back_dsp; #X obj 577 398 sel 0 1; #X obj 306 378 r gain_dsp_in; #X obj 398 376 r freq_dsp_in; #X obj 494 398 r Q_dsp_in; #X obj 490 467 r mode_dsp_in; #X obj 490 487 r mode_dsp_out; #X obj 494 418 r Q_dsp_out; #X obj 398 396 r freq_dsp_out; #X obj 306 399 r gain_dsp_out; #X text 69 35 IEM KUG; #X text 53 23 musil; #X text 83 23 @; #X text 89 23 iem.at; #X text 4 12 (c) Thomas Musil 2000 - 2005; #X text 52 45 Graz \, Austria; #X obj 20 179 cnv 12 70 12 empty empty empty 20 12 0 14 -44926 -66577 0; #X obj 189 157 cnv 12 100 12 empty empty empty 20 12 0 14 -260818 -66577 0; #X obj 219 63 cnv 12 70 12 empty empty empty 20 12 0 14 -24198 -66577 0; #X text 21 176 1.) connect; #X text 190 154 2.) connect back; #X text 222 60 3.) DSP on; #X obj 21 195 cnv 15 189 15 empty empty empty 20 12 0 14 -44926 -66577 0; #X msg 20 194 connect my_dsp_workstation 3000; #X obj 686 15 cnv 12 110 12 empty empty empty 20 12 0 14 -249797 -66577 0; #X text 687 12 4.) recall preset; #X connect 0 0 16 0; #X connect 0 1 15 0; #X connect 6 0 1 0; #X connect 6 0 1 1; #X connect 6 0 18 0; #X connect 8 0 6 0; #X connect 12 0 9 0; #X connect 13 0 9 1; #X connect 14 0 9 2; #X connect 17 0 0 0; #X connect 18 0 19 0; #X connect 24 0 25 0; #X connect 25 0 29 0; #X connect 26 0 25 0; #X connect 28 0 27 0; #X connect 30 0 31 0; #X connect 32 0 33 0; #X connect 33 0 34 0; #X connect 35 0 33 0; #X connect 36 0 33 0; #X connect 37 0 38 0; #X connect 38 0 32 0; #X connect 38 1 35 0; #X connect 39 0 2 0; #X connect 39 0 6 1; #X connect 40 0 3 0; #X connect 40 0 6 2; #X connect 41 0 4 0; #X connect 41 0 6 3; #X connect 42 0 5 0; #X connect 42 0 6 4; #X connect 43 0 6 4; #X connect 43 0 5 0; #X connect 44 0 4 0; #X connect 44 0 6 3; #X connect 45 0 3 0; #X connect 45 0 6 2; #X connect 46 0 2 0; #X connect 46 0 6 1; #X connect 60 0 25 0; iemlib-1.20.1/examples/test_pbank.txt0000644002537200234200000000037710247647657020044 0ustar zmoelnigiemusers-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 iemlib-1.20.1/README_win.txt0000644002537200234200000002564710536420427015676 0ustar zmoelnigiemusersInstallation-guide for iemlib under windows (win_xp, win2k, win_me, win_nt or win98) iemlib_R1.17 is written by Thomas Musil from IEM Graz Austria and it is compatible to miller puckette's pd-0.38-3 to pd-0.39-2. see also LICENCE.txt, GnuLGPL.txt and README.txt. 1.) download and copy iemlib_R1.17_win.zip into your pd-installation-directory ( e.g.C:\Programs\pd\iemlib_R1.17_win.zip ) 2.) unzip iemlib_R1.17_win.zip winzip create a directory C:\Programs\pd\iemlib_R1.17\ 3.) install external library folders copy from C:\Programs\pd\iemlib_R1.17\iemlib1 to C:\Programs\pd\extra copy from C:\Programs\pd\iemlib_R1.17\iemlib2 to C:\Programs\pd\extra copy from C:\Programs\pd\iemlib_R1.17\iem_mp3 to C:\Programs\pd\extra copy from C:\Programs\pd\iemlib_R1.17\iem_t3_lib to C:\Programs\pd\extra 4.) install pd abstraction folder copy from C:\Programs\pd\iemlib_R1.17\iemabs to C:\Programs\pd\extra 5.) add to your pd_start.bat the following configuration-options: -path C:\Programs\pd\extra\iemabs -lib iemlib1;iemlib2;iem_mp3;iem_t3_lib or create a textfile pd_start.bat with this content: @echo off set PD_INSTALL=C:\Programme\pd\bin set PD_AUDIO=-r 44100 -audiobuf 160 set PD_MIDI=-nomidi set PD_PATH=-path C:/Programme/pd/extra/iemabs set PD_LIB=-lib iemlib1;iemlib2;iem_mp3;iem_t3_lib @echo starting pd ... %PD_INSTALL%\pd %PD_AUDIO% %PD_MIDI% %PD_PATH% %PD_LIB% How to compile iemlib under windows after installing iemlib and if You are owner of a VCC++ compiler: 4.a) edit makefile_win of iemlib1 change to directory C:\Programs\pd\iemlib_R1.17\iemlib1\src and edit following lines of makefile_win and save ( VIS_CPP_PATH = "" and PD_INST_PATH = "" ) 4.b) compile iemlib1 doubleclick iemlib1.dsw, VCC++ will start, Menue: build/configuration = Release, Menue: build/build all , ( after this command, iemlib1.dll will be created in C:\Programs\pd\iemlib_R1.17\iemlib1 ). 5.a) edit makefile_win of iemlib2 change to directory C:\Programs\pd\iemlib_R1.17\iemlib2\src and edit following lines of makefile_win and save ( VIS_CPP_PATH = "" and PD_INST_PATH = "" ) 5.b) compile iemlib2 doubleclick iemlib2.dsw, VCC++ will start, Menue: build/configuration = Release, Menue: build/build all , ( after this command, iemlib2.dll will be created in C:\Programs\pd\iemlib_R1.17\iemlib2 ). 6.a) edit makefile_win of iem_mp3 change to directory C:\Programs\pd\iemlib_R1.17\iem_mp3\src and edit following lines of makefile_win and save ( VIS_CPP_PATH = "" and PD_INST_PATH = "" ) 6.b) compile iem_mp3 doubleclick iem_mp3.dsw, VCC++ will start, Menue: build/configuration = Release, Menue: build/build all , ( after this command, iem_mp3.dll will be created in C:\Programs\pd\iemlib_R1.17\iem_mp3 ). 7.a) edit makefile_win of iem_t3_lib change to directory C:\Programs\pd\iemlib_R1.17\iem_t3_lib\src and edit following lines of makefile_win and save ( VIS_CPP_PATH = "" and PD_INST_PATH = "" ) 7.b) compile iem_t3_lib doubleclick iem_t3_lib.dsw, VCC++ will start, Menue: build/configuration = Release, Menue: build/build all , ( after this command, iem_t3_lib.dll will be created in C:\Programs\pd\iemlib_R1.17\iem_t3_lib ). 8.) install dynamic libraries copy from C:\Programs\pd\iemlib_R1.17\iemlib1\iemlib1.dll to C:\Programs\pd\extra\iemlib1\iemlib1.dll copy from C:\Programs\pd\iemlib_R1.17\iemlib2\iemlib2.dll to C:\Programs\pd\extra\iemlib2\iemlib2.dll copy from C:\Programs\pd\iemlib_R1.17\iem_mp3\iem_mp3.dll to C:\Programs\pd\extra\iem_mp3\iem_mp3.dll copy from C:\Programs\pd\iemlib_R1.17\iem_t3_lib\iem_t3_lib.dll to C:\Programs\pd\extra\iem_t3_lib\iem_t3_lib.dll content of iemlib Release 1.17 from November 2006 ============================ 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 parentdollarzero receive parent unique number ------------------------- 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_netsendiemlib-1.20.1/start_pd-0.39-20000755002537200234200000000021510536421062015573 0ustar zmoelnigiemusers#!/bin/sh /usr/local/bin/pd -r 44100 -channels 2 -audiobuf 400 -audiodev 1 -nomidi \ -path iemabs \ -lib iemlib1:iemlib2:iem_mp3:iem_t3_lib iemlib-1.20.1/Makefile0000644002537200234200000000174412243414147014752 0ustar zmoelnigiemusers# ############################################### # LATER think about automatic adding of libraries IEMLIBS = iemlib1 iemlib2 iem_t3_lib iem_mp3 # this is where we install to PREFIX =/usr/local/lib/pd # this is where we install to (in detail) INSTALL_BIN=$(PREFIX)/extra INSTALL_DOC=$(PREFIX)/extra/iemhelp # LATER think about separating iemabs and iemhelp # ############################################### .PHONY: iemlibs $(IEMLIBS) iemlibs: $(IEMLIBS) $(IEMLIBS): $(MAKE) -C $@/src install: install-bin install-doc install-abs install-bin: -install -d $(DESTDIR)$(INSTALL_BIN) -install -m 644 lib/*.* $(DESTDIR)$(INSTALL_BIN) install-doc: -install -d $(DESTDIR)$(INSTALL_DOC) -for d in $(IEMLIBS); do \ for e in pd wav; do \ install -m644 $$d/*.$$e $(DESTDIR)$(INSTALL_DOC); \ done; \ done install-abs: -install -d $(DESTDIR)$(INSTALL_BIN) -install -m 644 iemabs/*.pd $(DESTDIR)$(INSTALL_BIN) clean: for d in $(IEMLIBS); do \ $(MAKE) -C $$d/src clean; \ done iemlib-1.20.1/CHANGES.txt0000644002537200234200000000645410536420427015127 0ustar zmoelnigiemusers************************************************************ iemlib Release 1.17: ____________________________________________________________ restructure the library folders no iemhelp helpfiles only as *-help.pd abstraction help files in iemabs external helpfiles only in the folder of external library name src folder also in this folder (4 times for iemlib1, iemlib2, iem_mp3 and iem_t3_lib) removed the line in source code: class_sethelpsymbol(......class, gensym("iemhelp/help-.......")); ************************************************************ iemlib Release 1.16: ____________________________________________________________ improvements: the linux-compile-bugs are fixed. (any, iem_anything, iem_append, merge_any, pp, iem_prepend, prepend, iem_send, iem_s, receive2list, iem_receive, iem_r are abstractions using kernel-externals. You cannot open these abstractions now.)...obsolete any, iem_anything, iem_append, merge_any, pp, iem_prepend, prepend, iem_send, iem_s, receive2list,iem_receive, iem_r are again externals and have proxy inlets. changed dynamical memory allocation to constantly (MAXPDSTRING) of mergefilename, splitfilename, stripfilename. iem_pbank_csv understand ',' and '.' as decimal point. makefile linux needs -fno-strict-aliasing option. changed all help-*.pd to *-help.pd. ************************************************************ 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 iemlib-1.20.1/Make.include0000644002537200234200000000235212165303331015523 0ustar zmoelnigiemuserscurrent: all PD_DEFINES = -DPD -DUNIX ################################# # path to private Pd-headers PDSOURCE ?= /usr/local/src/pd/src # path to iemlib.h IEMLIB_INCLUDE = ../../include #define to true if private Pd-header g_canvas.h is in out search-path PD_DEFINES += -DHAVE_G_CANVAS_H ################################# .SUFFIXES: .pd_linux EXT = pd_linux STRIP = strip PD_LDFLAGS = --export-dynamic -shared $(LD_FLAGS) PD_LIB = -lm -lc $(LIB) #select either the DBG and OPT compiler flags below: DBG_CFLAGS=-W -Wno-parentheses -Wno-switch -Wno-unused CFLAGS=-O6 -funroll-loops -fomit-frame-pointer -fno-strict-aliasing PD_CFLAGS = $(PD_DEFINES) -fPIC -fno-stack-protector $(DBG_CFLAGS) $(CFLAGS) PD_INCLUDES = -I. -I$(IEMLIB_INCLUDE) -I$(PDSOURCE) -I../../../../pd/src # the sources #SRC = $(sort $(filter %.c, $(wildcard *.c))) OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: -rm -f ../../lib/$(TARGET).$(EXT) $(TARGET).$(EXT) -rm -f *.o all: $(OBJ) @echo :: $(OBJ) $(LD) $(PD_LDFLAGS) -o $(TARGET).$(EXT) *.o $(PD_LIB) $(STRIP) --strip-unneeded $(TARGET).$(EXT) -cp $(TARGET).$(EXT) ../../lib/ $(OBJ) : %.o : %.c touch $*.c $(CC) $(PD_CFLAGS) $(PD_INCLUDES) -c -o $*.o $*.c iemlib-1.20.1/iemlib2/0000755002537200234200000000000012243414232014622 5ustar zmoelnigiemusersiemlib-1.20.1/iemlib2/iem_pbank.pbank0000644002537200234200000000044111502270341017561 0ustar zmoelnigiemusers0.1 0.2 0.3 0.4 0.5 0.6 abc 1.1 1.2 1.3 1.4 1.5 1.6 def 2.1 2.2 2.3 2.4 2.5 2.6 ghi 3.1 3.2 3.3 3.4 3.5 3.6 jkl 4.1 4.2 4.3 4.4 4.5 4.6 mno 5.1 5.2 5.3 5.4 5.5 5.6 pqr 6.1 6.2 6.3 6.4 6.5 6.6 stu 7.1 7.2 7.3 7.4 7.5 7.6 vwx 8.1 8.2 8.3 8.4 8.5 8.6 y_z 9.1 9.2 9.3 9.4 9.5 9.6 +-+ iemlib-1.20.1/iemlib2/iem_blocksize~-help.pd0000644002537200234200000000221311055052215021107 0ustar zmoelnigiemusers#N canvas 184 90 493 300 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 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 text 136 245 IEM KUG; #X text 120 233 musil; #X text 150 233 @; #X text 156 233 iem.at; #X text 71 222 (c) Thomas Musil 2000 - 2005; #X text 119 255 Graz \, Austria; #X connect 0 0 1 0; #X connect 2 0 0 0; #X connect 3 0 7 0; #X connect 3 0 12 0; #X connect 4 0 5 0; #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 12 0 4 0; iemlib-1.20.1/iemlib2/init-help.pd0000644002537200234200000000243311055052215017041 0ustar zmoelnigiemusers#N canvas 156 133 534 353 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 18 17 init : initialize anything by loadbang; #X text 106 305 IEM KUG; #X text 90 293 musil; #X text 120 293 @; #X text 126 293 iem.at; #X text 41 282 (c) Thomas Musil 2000 - 2005; #X text 89 315 Graz \, Austria; #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; iemlib-1.20.1/iemlib2/stripfilename-help.pd0000644002537200234200000000137211055052215020741 0ustar zmoelnigiemusers#N canvas 183 294 494 268 10; #X obj 87 75 symbol; #X msg 87 43 abcdefghijk; #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: 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 text 115 218 IEM KUG; #X text 99 206 musil; #X text 129 206 @; #X text 135 206 iem.at; #X text 50 195 (c) Thomas Musil 2000 - 2005; #X text 98 228 Graz \, Austria; #X connect 0 0 5 0; #X connect 1 0 0 0; #X connect 2 0 5 0; #X connect 5 0 7 0; #X connect 6 0 5 0; #X connect 12 0 5 0; iemlib-1.20.1/iemlib2/toggle_mess-help.pd0000644002537200234200000000403111055052215020402 0ustar zmoelnigiemusers#N canvas 339 48 610 576 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 this; #X msg 40 197 this; #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 8 7 toggle_mess :; #X text 259 253 n arguments: or ; #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 text 305 508 IEM KUG; #X text 289 496 musil; #X text 319 496 @; #X text 325 496 iem.at; #X text 240 485 (c) Thomas Musil 2000 - 2005; #X text 288 518 Graz \, Austria; #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 34 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 35 0; #X connect 10 0 11 0; #X connect 12 0 3 0; #X connect 13 0 32 0; #X connect 14 0 29 0; #X connect 28 0 29 0; #X connect 29 0 4 0; #X connect 29 1 4 0; #X connect 30 0 35 0; #X connect 30 1 35 0; #X connect 31 0 30 0; #X connect 32 0 3 0; #X connect 32 1 3 0; #X connect 34 0 4 0; #X connect 35 0 9 0; #X connect 35 1 1 0; #X connect 35 1 7 0; #X connect 35 2 16 0; iemlib-1.20.1/iemlib2/exp_inc-help.pd0000644002537200234200000000474411055052215017532 0ustar zmoelnigiemusers#N canvas 117 75 610 474 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: initial-val; #X text 194 171 2.arg: relative increment [%]; #X text 194 182 3.arg: absolute increment; #X text 196 194 4.arg: min-val; #X text 196 205 5.arg: max-val; #X text 454 414 IEM KUG; #X text 438 402 musil; #X text 468 402 @; #X text 474 402 iem.at; #X text 389 391 (c) Thomas Musil 2000 - 2005; #X text 437 424 Graz \, Austria; #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; iemlib-1.20.1/iemlib2/prepend_ascii-help.pd0000644002537200234200000000257611055052215020713 0ustar zmoelnigiemusers#N canvas 244 76 687 466 10; #X msg 94 245 jkl 555 uuu; #X msg 208 243 abc ghj 78; #X msg 433 242 zyx 3.17; #X text 118 104 1.arg: 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 text 115 408 IEM KUG; #X text 99 396 musil; #X text 129 396 @; #X text 135 396 iem.at; #X text 50 385 (c) Thomas Musil 2000 - 2005; #X text 98 418 Graz \, Austria; #X connect 0 0 7 0; #X connect 1 0 8 0; #X connect 2 0 12 0; #X connect 7 0 13 0; #X connect 8 0 14 0; #X connect 9 0 7 0; #X connect 10 0 7 0; #X connect 11 0 7 0; #X connect 12 0 15 0; iemlib-1.20.1/iemlib2/unsymbol-help.pd0000644002537200234200000000112611055052215017744 0ustar zmoelnigiemusers#N canvas 402 159 306 245 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 105 188 IEM KUG; #X text 89 176 musil; #X text 119 176 @; #X text 125 176 iem.at; #X text 40 165 (c) Thomas Musil 2000 - 2005; #X text 88 198 Graz \, Austria; #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; iemlib-1.20.1/iemlib2/iem_samplerate~-help.pd0000644002537200234200000000220611055052215021261 0ustar zmoelnigiemusers#N canvas 184 90 493 300 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 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 text 136 245 IEM KUG; #X text 120 233 musil; #X text 150 233 @; #X text 156 233 iem.at; #X text 71 222 (c) Thomas Musil 2000 - 2005; #X text 119 255 Graz \, Austria; #X connect 0 0 1 0; #X connect 2 0 0 0; #X connect 3 0 5 0; #X connect 4 0 3 0; #X connect 4 0 9 0; #X connect 5 0 7 0; #X connect 9 0 10 0; #X connect 10 0 12 0; iemlib-1.20.1/iemlib2/prepend-help.pd0000644002537200234200000000420311055052215017530 0ustar zmoelnigiemusers#N canvas 231 172 617 507 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 175 319 head of output-message; #X text 180 308 initials-arguments:; #X text 5 281 tail of output-message; #X text 183 287 head of output-message; #X text 181 277 <- cold inlet; #X obj 117 300 pp set; #X text 115 448 IEM KUG; #X text 99 436 musil; #X text 129 436 @; #X text 135 436 iem.at; #X text 50 425 (c) Thomas Musil 2000 - 2005; #X text 98 458 Graz \, Austria; #X text 151 8 merge the head-message in front of the tail-message; #X text 42 273 hot inlet ->; #X text 13 7 prepend; #X connect 1 0 32 0; #X connect 2 0 32 1; #X connect 3 0 32 0; #X connect 4 0 32 0; #X connect 5 0 32 1; #X connect 6 0 32 1; #X connect 7 0 32 0; #X connect 8 0 32 1; #X connect 9 0 32 0; #X connect 10 0 32 1; #X connect 11 0 32 0; #X connect 12 0 32 1; #X connect 13 0 32 0; #X connect 14 0 32 1; #X connect 15 0 32 1; #X connect 16 0 32 0; #X connect 17 0 32 0; #X connect 18 0 32 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 0 0; #X connect 32 0 19 0; iemlib-1.20.1/iemlib2/aspeedlim-help.pd0000644002537200234200000000305711560752450020055 0ustar zmoelnigiemusers#N canvas 465 200 609 471 10; #X msg 169 294 1000; #X msg 207 273 200; #X floatatom 116 149 4 0 0 0 - - -; #X obj 178 384 timer; #X msg 210 294 20; #X text 197 317 1.arg: lock-time in ms; #X obj 77 375 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 348 392 IEM KUG; #X text 325 380 musil; #X text 362 380 @; #X text 370 380 iem.at; #X text 331 402 Graz \, Austria; #X text 6 6 aspeedlim : speedlimit for anything-message; #X obj 104 318 aspeedlim 20; #X msg 116 169 do_this 11 22 33 \$1 abc xyz; #X obj 77 355 t b; #X msg 138 200 a b c d e f g h i j k l m n o p; #X obj 24 33 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 63 79 symbol jfk; #X obj 105 408 print out; #X obj 178 408 print time; #X obj 178 359 t b b; #X msg 41 54 3.14159; #X floatatom 93 103 4 0 0 0 - - -; #X msg 93 123 \$1 91 92 93 94 95; #X msg 291 291 stop; #X msg 165 274 4000; #X text 340 275 !! note: incompatible to speedlim; #X text 341 292 stop message in the second inlet; #X text 283 369 (c) Thomas Musil 2000 - 2011; #X msg 157 245 list xyz abc \$1 987; #X floatatom 158 227 5 0 0 0 - - -; #X connect 0 0 13 1; #X connect 1 0 13 1; #X connect 2 0 14 0; #X connect 3 0 20 0; #X connect 4 0 13 1; #X connect 13 0 15 0; #X connect 13 0 19 0; #X connect 13 0 21 0; #X connect 14 0 13 0; #X connect 15 0 6 0; #X connect 16 0 13 0; #X connect 17 0 13 0; #X connect 18 0 13 0; #X connect 21 0 3 0; #X connect 21 1 3 1; #X connect 22 0 13 0; #X connect 23 0 24 0; #X connect 24 0 13 0; #X connect 25 0 13 1; #X connect 26 0 13 1; #X connect 30 0 13 0; #X connect 31 0 30 0; iemlib-1.20.1/iemlib2/src/0000755002537200234200000000000012243414232015411 5ustar zmoelnigiemusersiemlib-1.20.1/iemlib2/src/iem_anything.c0000644002537200234200000000756110536414324020246 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------------- iem_anything ---------------------------------- */ /* -- storage object for any message (bang, float, symbol, list, selector-list) -- */ /* ---------- with a hot and a cold inlet (like object float or symbol) ---------- */ /* ----------- initial arguments are equal to a message of cold inlet ------------ */ struct _iem_anything_proxy; static t_class *iem_anything_class; static t_class *iem_anything_proxy_class; typedef struct _iem_anything { t_object x_obj; struct _iem_anything_proxy *x_proxy_inlet; int x_size; int x_ac; t_atom *x_at; t_symbol *x_selector_sym; } t_iem_anything; typedef struct _iem_anything_proxy { t_object p_obj; t_iem_anything *p_owner; } t_iem_anything_proxy; static void iem_anything_atcopy(t_atom *src, t_atom *dst, int n) { while(n--) *dst++ = *src++; } static void iem_anything_anything(t_iem_anything *x, t_symbol *s, int ac, t_atom *av) { if(ac > x->x_size) { x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (10 + ac)*sizeof(t_atom)); x->x_size = 10 + ac; } x->x_ac = ac; x->x_selector_sym = s; iem_anything_atcopy(av, x->x_at, ac); outlet_anything(x->x_obj.ob_outlet, s, ac, av); } static void iem_anything_bang(t_iem_anything *x) { if((x->x_selector_sym == &s_bang) && !x->x_ac) { outlet_bang(x->x_obj.ob_outlet); } else { outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac, x->x_at); } } /* begin of proxy methods (anything inlets) */ static void iem_anything_proxy_anything(t_iem_anything_proxy *p, t_symbol *s, int ac, t_atom *av) { t_iem_anything *x = p->p_owner; if(ac > x->x_size) { x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (10 + ac)*sizeof(t_atom)); x->x_size = 10 + ac; } x->x_ac = ac; x->x_selector_sym = s; iem_anything_atcopy(av, x->x_at, ac); } /* end of proxy methods (anything inlets) */ static void iem_anything_free(t_iem_anything *x) { if(x->x_at) freebytes(x->x_at, x->x_size * sizeof(t_atom)); if(x->x_proxy_inlet) pd_free((t_pd *)x->x_proxy_inlet); } static void *iem_anything_new(t_symbol *s, int ac, t_atom *av) { t_iem_anything *x = (t_iem_anything *)pd_new(iem_anything_class); t_iem_anything_proxy *p = (t_iem_anything_proxy *)pd_new(iem_anything_proxy_class); x->x_proxy_inlet = p; p->p_owner = x; x->x_size = 10 + ac; x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom)); x->x_ac = ac; if(!ac) { x->x_selector_sym = &s_bang; } else if(IS_A_SYMBOL(av, 0)) { x->x_selector_sym = atom_getsymbol(av); x->x_ac--; iem_anything_proxy_anything(p, x->x_selector_sym, x->x_ac, av+1); } else { x->x_selector_sym = &s_list; iem_anything_proxy_anything(p, x->x_selector_sym, x->x_ac, av); } inlet_new((t_object *)x, (t_pd *)p, 0, 0); outlet_new(&x->x_obj, &s_list); return (x); } void iem_anything_setup(void) { iem_anything_class = class_new(gensym("iem_anything"), (t_newmethod)iem_anything_new, (t_method)iem_anything_free, sizeof(t_iem_anything), 0, A_GIMME, 0); class_addcreator((t_newmethod)iem_anything_new, gensym("any"), A_GIMME, 0); class_addanything(iem_anything_class, iem_anything_anything); class_addbang(iem_anything_class, iem_anything_bang); // class_sethelpsymbol(iem_anything_class, gensym("iemhelp/help-iem_anything")); iem_anything_proxy_class = class_new(gensym("_iem_anything_proxy"), 0, 0, sizeof(t_iem_anything_proxy), CLASS_PD | CLASS_NOINLET, 0); class_addanything(iem_anything_proxy_class, iem_anything_proxy_anything); } iemlib-1.20.1/iemlib2/src/round_zero.c0000644002537200234200000000300210536414324017743 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------ round_zero ---------------------------- */ /* ------ small float numbers of an anything message within ------- */ /* ---- plus minus initial argument will be truncated to 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= -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")); } iemlib-1.20.1/iemlib2/src/iemlib2.c0000644002537200234200000000555512022145000017077 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" 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 aspeedlim_setup(void); void bpe_setup(void); void dollarg_setup(void); void exp_inc_setup(void); void fade_tilde_setup(void); void float24_setup(void); void iem_alisttosym_setup(void); void iem_anything_setup(void); void iem_append_setup(void); void iem_blocksize_tilde_setup(void); void iem_i_route_setup(void); void iem_pbank_csv_setup(void); void iem_prepend_setup(void); void iem_receive_setup(void); void iem_route_setup(void); void iem_samplerate_tilde_setup(void); void iem_sel_any_setup(void); void iem_send_setup(void); void iem_symtoalist_setup(void); void init_setup(void); void LFO_noise_tilde_setup(void); void list2send_setup(void); void m2f_tilde_setup(void); void mergefilename_setup(void); void modulo_counter_setup(void); //void para_bank_csv_setup(void); void parentdollarzero_setup(void); void post_netreceive_setup(void); void pre_inlet_setup(void); void prepend_ascii_setup(void); void protect_against_open_setup(void); void receive2list_setup(void); void round_zero_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(); aspeedlim_setup(); bpe_setup(); dollarg_setup(); exp_inc_setup(); fade_tilde_setup(); float24_setup(); iem_alisttosym_setup(); iem_anything_setup(); iem_append_setup(); iem_blocksize_tilde_setup(); iem_i_route_setup(); iem_pbank_csv_setup(); iem_prepend_setup(); iem_receive_setup(); iem_route_setup(); iem_samplerate_tilde_setup(); iem_sel_any_setup(); iem_send_setup(); iem_symtoalist_setup(); init_setup(); LFO_noise_tilde_setup(); list2send_setup(); m2f_tilde_setup(); mergefilename_setup(); modulo_counter_setup(); // para_bank_csv_setup(); parentdollarzero_setup(); post_netreceive_setup(); pre_inlet_setup(); prepend_ascii_setup(); protect_against_open_setup(); receive2list_setup(); round_zero_setup(); speedlim_setup(); splitfilename_setup(); stripfilename_setup(); toggle_mess_setup(); transf_fader_setup(); unsymbol_setup(); wrap_setup(); post("iemlib2 (R-1.18) library loaded! (c) Thomas Musil 02.2012"); post(" musil%ciem.at iem KUG Graz Austria", '@'); } iemlib-1.20.1/iemlib2/src/aspeedlim.c0000644002537200234200000000737211120267606017535 0ustar zmoelnigiemusers/* 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 - 2008 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------ aspeedlim --------------------------- */ /* -- reduces the flow of anything-messages to one message per -- */ /* -------------------- time interval in ms --------------------- */ struct _aspeedlim_proxy; static t_class *aspeedlim_class; static t_class *aspeedlim_proxy_class; typedef struct _aspeedlim { t_object x_obj; struct _aspeedlim_proxy *x_proxy_inlet; t_clock *x_clock; float x_delay; int x_output_is_locked; int x_there_was_n_event; int x_size; int x_ac; t_atom *x_at; t_symbol *x_selector_sym; } t_aspeedlim; typedef struct _aspeedlim_proxy { t_object p_obj; t_aspeedlim *p_owner; } t_aspeedlim_proxy; static void aspeedlim_atcopy(t_atom *src, t_atom *dst, int n) { while(n--) *dst++ = *src++; } static void aspeedlim_proxy_stop(t_aspeedlim_proxy *p) { t_aspeedlim *x = p->p_owner; x->x_output_is_locked = 0; x->x_there_was_n_event = 0; clock_unset(x->x_clock); } static void aspeedlim_proxy_delay(t_aspeedlim_proxy *p, t_floatarg delay) { t_aspeedlim *x = p->p_owner; if(delay < 0.0) delay = 0.0; x->x_delay = delay; } static void aspeedlim_tick(t_aspeedlim *x) { if(x->x_there_was_n_event) { x->x_output_is_locked = 1; x->x_there_was_n_event = 0; outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac, x->x_at); clock_delay(x->x_clock, x->x_delay); } else { x->x_output_is_locked = 0; x->x_there_was_n_event = 0; } } static void aspeedlim_anything(t_aspeedlim *x, t_symbol *s, int ac, t_atom *av) { if(ac > x->x_size) { x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (10 + ac)*sizeof(t_atom)); x->x_size = 10 + ac; } x->x_ac = ac; x->x_selector_sym = s; aspeedlim_atcopy(av, x->x_at, ac); if(!x->x_output_is_locked) { x->x_output_is_locked = 1; x->x_there_was_n_event = 0; outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac, x->x_at); clock_delay(x->x_clock, x->x_delay); } else x->x_there_was_n_event = 1; } static void aspeedlim_free(t_aspeedlim *x) { clock_free(x->x_clock); if(x->x_at) freebytes(x->x_at, x->x_size * sizeof(t_atom)); if(x->x_proxy_inlet) pd_free((t_pd *)x->x_proxy_inlet); } static void *aspeedlim_new(t_floatarg delay) { t_aspeedlim *x = (t_aspeedlim *)pd_new(aspeedlim_class); t_aspeedlim_proxy *p = (t_aspeedlim_proxy *)pd_new(aspeedlim_proxy_class); x->x_proxy_inlet = p; p->p_owner = x; x->x_size = 10; x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom)); x->x_ac = 0; x->x_selector_sym = &s_bang; if(delay < 0.0) delay = 0.0; x->x_delay = delay; x->x_output_is_locked = 0; x->x_there_was_n_event = 0; x->x_clock = clock_new(x, (t_method)aspeedlim_tick); inlet_new((t_object *)x, (t_pd *)p, 0, 0); outlet_new(&x->x_obj, &s_list); return (x); } void aspeedlim_setup(void) { aspeedlim_class = class_new(gensym("aspeedlim"), (t_newmethod)aspeedlim_new, (t_method)aspeedlim_free, sizeof(t_aspeedlim), 0, A_DEFFLOAT, 0); class_addanything(aspeedlim_class, aspeedlim_anything); aspeedlim_proxy_class = class_new(gensym("_aspeedlim_proxy"), 0, 0, sizeof(t_aspeedlim_proxy), CLASS_PD | CLASS_NOINLET, 0); class_addmethod(aspeedlim_proxy_class, (t_method)aspeedlim_proxy_stop, gensym("stop"), 0); class_addfloat(aspeedlim_proxy_class, (t_method)aspeedlim_proxy_delay); } iemlib-1.20.1/iemlib2/src/makefile_d_fat0000644002537200234200000000271612205157153020260 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .d_fat PDSOURCE = "/Applications/Pd.app/Contents/Resources/src" IEMLIB_INCLUDE = ../../include PD_INCLUDES = -I. -I$(IEMLIB_INCLUDE) -I$(PDSOURCE) PD_DEFINES = -DPD PD_DEFINES += -DHAVE_G_CANVAS_H CFLAGS =-O2 -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch -fPIC LFLAGS = -bundle -undefined suppress -flat_namespace ARCH_FLAGS=-arch i386 -arch ppc # the sources SRC = add2_comma.c \ aspeedlim.c \ bpe.c \ dollarg.c \ exp_inc.c \ fade~.c \ float24.c \ iem_alisttosym.c \ iem_anything.c \ iem_append.c \ iem_blocksize~.c \ iem_i_route.c \ iem_pbank_csv.c \ iem_prepend.c \ iem_receive.c \ iem_route.c \ iem_samplerate~.c \ iem_sel_any.c \ iem_send.c \ iem_symtoalist.c \ init.c \ LFO_noise~.c \ list2send.c \ m2f~.c \ mergefilename.c \ modulo_counter.c \ parentdollarzero.c \ post_netreceive.c \ pre_inlet.c \ prepend_ascii.c \ protect_against_open.c \ receive2list.c \ round_zero.c \ speedlim.c \ splitfilename.c \ stripfilename.c \ toggle_mess.c \ transf_fader.c \ unsymbol.c \ wrap.c \ iemlib2.c TARGET = iemlib2.d_fat OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm -f ../$(TARGET) rm -f *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(ARCH_FLAGS) $(LFLAGS) -o $(TARGET) *.o strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c $(CC) $(ARCH_FLAGS) $(PD_DEFINES) $(CFLAGS) $(PD_INCLUDES) -c -o $*.o $*.c iemlib-1.20.1/iemlib2/src/parentdollarzero.c0000644002537200234200000000350611524544675021170 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #ifdef HAVE_G_CANVAS_H # include "g_canvas.h" #endif #include "iemlib.h" /* -------------- parentdollarzero --------------- */ /* -- receives the $0 value of the parent canvas --*/ static t_class *parentdollarzero_class; typedef struct _parentdollarzero { t_object x_obj; t_symbol *s_parent_unique; unsigned int x_is_there_a_parent; } t_parentdollarzero; static void parentdollarzero_bang(t_parentdollarzero *x) { if(x->x_is_there_a_parent) outlet_symbol(x->x_obj.ob_outlet, x->s_parent_unique); } static void *parentdollarzero_new(void) { t_parentdollarzero *x = (t_parentdollarzero *)pd_new(parentdollarzero_class); #ifdef HAVE_G_CANVAS_H t_glist *glist = (t_glist *)canvas_getcurrent(); t_canvas *this_canvas = glist_getcanvas(glist); x->x_is_there_a_parent = (unsigned int)(0!=this_canvas->gl_owner); if(x->x_is_there_a_parent) x->s_parent_unique = canvas_realizedollar((t_canvas *)this_canvas->gl_owner, gensym("$0")); else #else x->x_is_there_a_parent=0; error("[parentdollarzero]: compiled without g_canvas.h - cannot work properly!"); #endif x->s_parent_unique = gensym(""); outlet_new(&x->x_obj, &s_symbol); return (x); } void parentdollarzero_setup(void) { parentdollarzero_class = class_new(gensym("parentdollarzero"), (t_newmethod)parentdollarzero_new, 0, sizeof(t_parentdollarzero), 0, 0); class_addcreator((t_newmethod)parentdollarzero_new, gensym("parent$0"), 0); class_addbang(parentdollarzero_class, (t_method)parentdollarzero_bang); // class_sethelpsymbol(parentdollarzero_class, gensym("iemhelp/help-parentdollarzero")); } iemlib-1.20.1/iemlib2/src/unsymbol.c0000644002537200234200000000206510536414324017435 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ----------- unsymbol ------------------------- */ /* -- converts a symbol to an anything message -- */ 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")); } iemlib-1.20.1/iemlib2/src/pre_inlet.c0000644002537200234200000000550510536414324017550 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------ pre_inlet ---------------------------- */ /* --------- any incoming message produce additionally a --------- */ /* ----- special anything message at output, followed by the ----- */ /* --- original message. this pre message contains a selector ---- */ /* ---- symbol made of one character of the m-th entry of the ---- */ /* --- ASCII-table, followed by one float atom list entry with --- */ /* ---- with value n. "m" and "n" are the 2 initial arguments ---- */ 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_floatarg 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")); } iemlib-1.20.1/iemlib2/src/modulo_counter.c0000644002537200234200000000420510536414324020621 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ---------------- modulo-counter. ----------------- */ /* -------- counter increments if input a bang ------ */ /* -------- output is a modulo function. ------------ */ 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_floatarg 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_floatarg 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")); } iemlib-1.20.1/iemlib2/src/LFO_noise~.c0000644002537200234200000000633410536414324017603 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* -------------------- LFO_noise~ --------------------- */ /* ---- outputs a 2 point interpolated white noise ----- */ /* -- with lower cutoff frequency than 0.5 samplerate -- */ static t_class *LFO_noise_tilde_class; typedef struct _LFO_noise_tilde { t_object x_obj; double x_range; double x_rcp_range; unsigned int x_state; t_float x_fact; t_float x_incr; t_float x_y1; t_float x_y2; t_float x_phase; } t_LFO_noise_tilde; static int LFO_noise_tilde_makeseed(void) { static unsigned int LFO_noise_tilde_nextseed = 1489853723; LFO_noise_tilde_nextseed = LFO_noise_tilde_nextseed * 435898247 + 938284287; return(LFO_noise_tilde_nextseed & 0x7fffffff); } static float LFO_noise_tilde_new_rand(t_LFO_noise_tilde *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 *LFO_noise_tilde_new(t_float freq) { t_LFO_noise_tilde *x = (t_LFO_noise_tilde *)pd_new(LFO_noise_tilde_class); x->x_range = 65535.0; x->x_rcp_range = (double)x->x_range * (1.0/4294967296.0); x->x_state = LFO_noise_tilde_makeseed(); x->x_fact = 2.0f / 44100.0f; x->x_incr = freq * x->x_fact; if(x->x_incr < 0.0f) x->x_incr = 0.0f; else if(x->x_incr > 0.1f) x->x_incr = 0.1f; x->x_y1 = LFO_noise_tilde_new_rand(x); x->x_y2 = LFO_noise_tilde_new_rand(x); x->x_phase = 0.0f; outlet_new(&x->x_obj, gensym("signal")); return (x); } static t_int *LFO_noise_tilde_perform(t_int *w) { t_float *out = (t_float *)(w[1]); t_LFO_noise_tilde *x = (t_LFO_noise_tilde *)(w[2]); int n = (int)(w[3]); t_float phase = x->x_phase; t_float x_y1 = x->x_y1; t_float x_y2 = x->x_y2; t_float incr = x->x_incr; while(n--) { if(phase > 1.0f) { x_y1 = x_y2; x_y2 = LFO_noise_tilde_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 LFO_noise_tilde_float(t_LFO_noise_tilde *x, t_floatarg freq) { x->x_incr = freq * x->x_fact; if(x->x_incr < 0.0f) x->x_incr = 0.0f; else if(x->x_incr > 0.1f) x->x_incr = 0.1f; } static void LFO_noise_tilde_dsp(t_LFO_noise_tilde *x, t_signal **sp) { x->x_fact = 2.0f / sp[0]->s_sr; dsp_add(LFO_noise_tilde_perform, 3, sp[0]->s_vec, x, sp[0]->s_n); } void LFO_noise_tilde_setup(void) { LFO_noise_tilde_class = class_new(gensym("LFO_noise~"), (t_newmethod)LFO_noise_tilde_new, 0, sizeof(t_LFO_noise_tilde), 0, A_DEFFLOAT, 0); class_addmethod(LFO_noise_tilde_class, (t_method)LFO_noise_tilde_dsp, gensym("dsp"), 0); class_addfloat(LFO_noise_tilde_class, (t_method)LFO_noise_tilde_float); // class_sethelpsymbol(LFO_noise_tilde_class, gensym("iemhelp/help-LFO_noise~")); } iemlib-1.20.1/iemlib2/src/wrap.c0000644002537200234200000000262610536414324016541 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include #include #include /* ------------------------ wrap ----------------- */ /* -- leave the fractal part of a float message -- */ typedef struct _wrap { t_object x_obj; t_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_floatarg f) { int i=(int)f; if(f > 0.0) x->x_f = f - (t_float)i; else x->x_f = f - (t_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")); } iemlib-1.20.1/iemlib2/src/float24.c0000644002537200234200000000401410536414324017034 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include #include #include #include /* -------------------------- float24 ----------------------- */ /* ----------- float-object with 24 bit accuracy ------------ */ /* -- concaternate a list of float-arguments to one string -- */ /* ----------- and convert it to a float-number ------------- */ typedef struct _float24 { t_object x_obj; t_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; ix_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")); } iemlib-1.20.1/iemlib2/src/stripfilename.c0000644002537200234200000000431110536414324020423 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* -------------------------- stripfilename ----------------------- */ /* -- strips the first n or last n characters, depending on sign -- */ /* ------- of the initial argument (set message argument) --------- */ static t_class *stripfilename_class; typedef struct _stripfilename { t_object x_obj; int x_nr_char; char x_mem[MAXPDSTRING]; } t_stripfilename; static void stripfilename_symbol(t_stripfilename *x, t_symbol *s) { if(x->x_nr_char < 0)/* cuts the string from the back */ { int len = strlen(s->s_name); int i=len + x->x_nr_char; if(len > (MAXPDSTRING - 2)) strncpy(x->x_mem, s->s_name, MAXPDSTRING - 2 - len); else strcpy(x->x_mem, s->s_name); if(i < 0) i = 0; x->x_mem[i] = 0; outlet_symbol(x->x_obj.ob_outlet, gensym(x->x_mem)); } else if(x->x_nr_char > 0)/* starts the string at this new offset */ { int len = strlen(s->s_name); int i=x->x_nr_char; if(len > (MAXPDSTRING - 2)) strncpy(x->x_mem, s->s_name, MAXPDSTRING - 2 - len); else strcpy(x->x_mem, s->s_name); if(i > len) i = len; outlet_symbol(x->x_obj.ob_outlet, gensym(x->x_mem+i)); } 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")); } iemlib-1.20.1/iemlib2/src/makefile0000644002537200234200000000132712165303714017121 0ustar zmoelnigiemusersTARGET = iemlib2 SRC = add2_comma.c \ aspeedlim.c \ bpe.c \ dollarg.c \ exp_inc.c \ fade~.c \ float24.c \ iem_alisttosym.c \ iem_anything.c \ iem_append.c \ iem_blocksize~.c \ iem_i_route.c \ iem_pbank_csv.c \ iem_prepend.c \ iem_receive.c \ iem_route.c \ iem_samplerate~.c \ iem_sel_any.c \ iem_send.c \ iem_symtoalist.c \ init.c \ LFO_noise~.c \ list2send.c \ m2f~.c \ mergefilename.c \ modulo_counter.c \ parentdollarzero.c \ post_netreceive.c \ pre_inlet.c \ prepend_ascii.c \ protect_against_open.c \ receive2list.c \ round_zero.c \ speedlim.c \ splitfilename.c \ stripfilename.c \ toggle_mess.c \ transf_fader.c \ unsymbol.c \ wrap.c \ $(TARGET).c include ../../Make.include iemlib-1.20.1/iemlib2/src/iem_prepend.c0000644002537200234200000001553410536414324020061 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ----------------------- iem_prepend --------------------------- */ /* -- concatenates message from cold (right) inlet with message -- */ /* ------- from hot (left) inlet and outputs it; initial ------- */ /* --- arguments (prependix) are eqal to message of cold inlet --- */ struct _iem_prepend_proxy; static t_class *iem_prepend_class; static t_class *iem_prepend_proxy_class; typedef struct _iem_prepend { t_object x_obj; struct _iem_prepend_proxy *x_proxy_inlet; int x_size; int x_ac; t_atom *x_at; t_symbol *x_selector_sym; } t_iem_prepend; typedef struct _iem_prepend_proxy { t_object p_obj; t_iem_prepend *p_owner; } t_iem_prepend_proxy; static void iem_prepend_atcopy(t_atom *src, t_atom *dst, int n) { while(n--) *dst++ = *src++; } static void iem_prepend_bang(t_iem_prepend *x) { outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac, x->x_at); } static void iem_prepend_float(t_iem_prepend *x, t_floatarg f) { if(x->x_selector_sym == &s_bang) 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_selector_sym, x->x_ac+1, x->x_at); } } static void iem_prepend_symbol(t_iem_prepend *x, t_symbol *s) { if(x->x_selector_sym == &s_bang) 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_selector_sym, x->x_ac+1, x->x_at); } } static void iem_prepend_pointer(t_iem_prepend *x, t_gpointer *gp) { if(x->x_selector_sym == &s_bang) 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_selector_sym, x->x_ac+1, x->x_at); } } static void iem_prepend_list(t_iem_prepend *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+11)*sizeof(t_atom)); x->x_size = ac + x->x_ac + 11; } if(x->x_selector_sym == &s_bang) outlet_anything(x->x_obj.ob_outlet, &s_list, ac, av); else { iem_prepend_atcopy(av, x->x_at + x->x_ac, ac); outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+ac, x->x_at); } } static void iem_prepend_anything(t_iem_prepend *x, t_symbol *s, int ac, t_atom *av) { if((ac+x->x_ac+2) >= x->x_size) { x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (ac+x->x_ac+12)*sizeof(t_atom)); x->x_size = ac + x->x_ac + 12; } if(x->x_selector_sym == &s_bang) outlet_anything(x->x_obj.ob_outlet, s, ac, av); else { SETSYMBOL(x->x_at + x->x_ac, s); iem_prepend_atcopy(av, x->x_at+x->x_ac+1, ac); outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym, x->x_ac+ac+1, x->x_at); } } /* begin of proxy methods (anything inlets) */ static void iem_prepend_proxy_bang(t_iem_prepend_proxy *p) { t_iem_prepend *x = p->p_owner; x->x_ac = 0; x->x_selector_sym = &s_bang; } static void iem_prepend_proxy_float(t_iem_prepend_proxy *p, t_floatarg f) { t_iem_prepend *x = p->p_owner; x->x_ac = 1; SETFLOAT(x->x_at, f); x->x_selector_sym = &s_list; } static void iem_prepend_proxy_symbol(t_iem_prepend_proxy *p, t_symbol *s) { t_iem_prepend *x = p->p_owner; x->x_ac = 1; SETSYMBOL(x->x_at, s); x->x_selector_sym = &s_list; } static void iem_prepend_proxy_pointer(t_iem_prepend_proxy *p, t_gpointer *gp) { t_iem_prepend *x = p->p_owner; x->x_ac = 1; SETPOINTER(x->x_at, gp); x->x_selector_sym = &s_list; } static void iem_prepend_proxy_list(t_iem_prepend_proxy *p, t_symbol *s, int ac, t_atom *av) { t_iem_prepend *x = p->p_owner; if((2*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_selector_sym = &s_list; iem_prepend_atcopy(av, x->x_at, ac); } static void iem_prepend_proxy_anything(t_iem_prepend_proxy *p, t_symbol *s, int ac, t_atom *av) { t_iem_prepend *x = p->p_owner; if((2*ac+11) > x->x_size) { x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (2*ac+11)*sizeof(t_atom)); x->x_size = 2*ac + 11; } x->x_ac = ac; x->x_selector_sym = s; iem_prepend_atcopy(av, x->x_at, ac); } /* end of proxy methods (anything inlets) */ static void iem_prepend_free(t_iem_prepend *x) { if(x->x_at) freebytes(x->x_at, x->x_size * sizeof(t_atom)); if(x->x_proxy_inlet) pd_free((t_pd *)x->x_proxy_inlet); } static void *iem_prepend_new(t_symbol *s, int ac, t_atom *av) { t_iem_prepend *x = (t_iem_prepend *)pd_new(iem_prepend_class); t_iem_prepend_proxy *p = (t_iem_prepend_proxy *)pd_new(iem_prepend_proxy_class); x->x_proxy_inlet = p; p->p_owner = x; x->x_size = 30; if(ac > 10) x->x_size = 2*ac + 10; x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom)); if(!ac) { x->x_ac = 0; x->x_selector_sym = &s_bang; } else { if(IS_A_FLOAT(av, 0)) { iem_prepend_proxy_list(p, &s_list, ac, av); } else if(IS_A_SYMBOL(av, 0)) { iem_prepend_proxy_anything(p, atom_getsymbol(av), ac-1, av+1); } } inlet_new((t_object *)x, (t_pd *)p, 0, 0); outlet_new(&x->x_obj, &s_list); return (x); } void iem_prepend_setup(void) { iem_prepend_class = class_new(gensym("iem_prepend"), (t_newmethod)iem_prepend_new, (t_method)iem_prepend_free, sizeof(t_iem_prepend), 0, A_GIMME, 0); class_addcreator((t_newmethod)iem_prepend_new, gensym("pp"), A_GIMME, 0); class_addcreator((t_newmethod)iem_prepend_new, gensym("prepend"), A_GIMME, 0); class_addbang(iem_prepend_class, (t_method)iem_prepend_bang); class_addpointer(iem_prepend_class, iem_prepend_pointer); class_addfloat(iem_prepend_class, (t_method)iem_prepend_float); class_addsymbol(iem_prepend_class, iem_prepend_symbol); class_addlist(iem_prepend_class, iem_prepend_list); class_addanything(iem_prepend_class, iem_prepend_anything); // class_sethelpsymbol(iem_prepend_class, gensym("iemhelp/help-iem_prepend")); iem_prepend_proxy_class = class_new(gensym("_iem_prepend_proxy"), 0, 0, sizeof(t_iem_prepend_proxy), CLASS_PD | CLASS_NOINLET, 0); class_addbang(iem_prepend_proxy_class, (t_method)iem_prepend_proxy_bang); class_addpointer(iem_prepend_proxy_class, iem_prepend_proxy_pointer); class_addfloat(iem_prepend_proxy_class, (t_method)iem_prepend_proxy_float); class_addsymbol(iem_prepend_proxy_class, iem_prepend_proxy_symbol); class_addlist(iem_prepend_proxy_class, iem_prepend_proxy_list); class_addanything(iem_prepend_proxy_class, iem_prepend_proxy_anything); } iemlib-1.20.1/iemlib2/src/makefile_d_ppc0000644002537200234200000000247311524473676020306 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .d_ppc PD_INSTALL_PATH = "/Applications/Pd.app/Contents/Resources" INCLUDE = -I. -I$(PD_INSTALL_PATH)/src CFLAGS =-DPD -DHAVE_G_CANVAS_H -O2 -Wall -W -Wshadow -Wstrict-prototypes \ -Wno-unused -Wno-parentheses -Wno-switch LFLAGS = -bundle -undefined suppress -flat_namespace # the sources SRC = add2_comma.c \ aspeedlim.c \ bpe.c \ dollarg.c \ exp_inc.c \ fade~.c \ float24.c \ iem_alisttosym.c \ iem_anything.c \ iem_append.c \ iem_blocksize~.c \ iem_i_route.c \ iem_pbank_csv.c \ iem_prepend.c \ iem_receive.c \ iem_route.c \ iem_samplerate~.c \ iem_sel_any.c \ iem_send.c \ iem_symtoalist.c \ init.c \ LFO_noise~.c \ list2send.c \ m2f~.c \ mergefilename.c \ modulo_counter.c \ parentdollarzero.c \ post_netreceive.c \ pre_inlet.c \ prepend_ascii.c \ protect_against_open.c \ receive2list.c \ round_zero.c \ speedlim.c \ splitfilename.c \ stripfilename.c \ toggle_mess.c \ transf_fader.c \ unsymbol.c \ wrap.c \ iemlib2.c TARGET = iemlib2.d_ppc OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm ../$(TARGET) rm *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(LFLAGS) -o $(TARGET) *.o strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c touch $*.c $(CC) $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c iemlib-1.20.1/iemlib2/src/protect_against_open.c0000644002537200234200000000701011524545342021772 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include #ifdef HAVE_G_CANVAS_H # include "g_canvas.h" #else /* no g_canvas.h: declare functions and structs ourselves */ EXTERN t_canvas *glist_getcanvas(t_glist *x); EXTERN t_symbol *canvas_realizedollar(t_canvas *x, t_symbol *s); struct _widgetbehavior { t_method w_getrectfn; t_method w_displacefn; t_method w_selectfn; t_method w_activatefn; t_method w_deletefn; t_method w_visfn; t_method w_clickfn; #if defined(PD_MAJOR_VERSION) && (PD_MINOR_VERSION >= 37) #else t_method w_savefn; t_method w_propertiesfn; #endif }; #endif #ifdef _MSC_VER #include #else #include #endif /* ---------------------- protect_against_open ----------------------- */ /* -- if you putting this object into a subpatch or an abstraction, -- */ /* ------------ you cannot open again this subpatch ------------------ */ static t_widgetbehavior protect_against_open_widgetbehavior; static t_class *protect_against_open_class; typedef struct _protect_against_open { t_object x_obj; t_symbol *x_sym; t_pd *x_owner; void *x_clock; } t_protect_against_open; /* ------------------------ cnv widgetbehaviour----------------------------- */ static void protect_against_open_tick(t_protect_against_open *x) { t_symbol *sym = gensym("vis"); t_atom at[1]; SETFLOAT(at, 0.0); typedmess(x->x_sym->s_thing, sym, 1, at); clock_unset(x->x_clock); } static void protect_against_open_vis(t_gobj *z, t_glist *glist, int vis) { t_protect_against_open *x = (t_protect_against_open *)z; if(vis) clock_delay(x->x_clock, 5); } static void *protect_against_open_new(t_symbol *s, int ac, t_atom *av) { t_protect_against_open *x = (t_protect_against_open *)pd_new(protect_against_open_class); t_glist *glist = (t_glist *)canvas_getcurrent(); t_canvas *this_canvas = glist_getcanvas(glist); t_symbol *s_unique; char str[100]; x->x_owner = (t_pd *)glist; s_unique = canvas_realizedollar(glist_getcanvas(glist), gensym("$0")); strcpy(str, s_unique->s_name); strcat(str, "-quabla"); x->x_sym = gensym(str); if(*x->x_sym->s_name) pd_bind(x->x_owner, x->x_sym); x->x_clock = clock_new(x, (t_method)protect_against_open_tick); return(x); } static void protect_against_open_ff(t_protect_against_open *x) { if(*x->x_sym->s_name) pd_unbind(x->x_owner, x->x_sym); clock_free(x->x_clock); } void protect_against_open_setup(void) { protect_against_open_class = class_new(gensym("protect_against_open"), (t_newmethod)protect_against_open_new, (t_method)protect_against_open_ff, sizeof(t_protect_against_open), 0, A_GIMME, 0); protect_against_open_widgetbehavior.w_getrectfn = NULL; protect_against_open_widgetbehavior.w_displacefn = NULL; protect_against_open_widgetbehavior.w_selectfn = NULL; protect_against_open_widgetbehavior.w_activatefn = NULL; protect_against_open_widgetbehavior.w_deletefn = NULL; protect_against_open_widgetbehavior.w_visfn = protect_against_open_vis; protect_against_open_widgetbehavior.w_clickfn = NULL; #if defined(PD_MAJOR_VERSION) && (PD_MINOR_VERSION >= 37) #else protect_against_open_widgetbehavior.w_propertiesfn = NULL; protect_against_open_widgetbehavior.w_savefn = NULL; #endif class_setwidget(protect_against_open_class, &protect_against_open_widgetbehavior); } iemlib-1.20.1/iemlib2/src/transf_fader.c0000644002537200234200000000671710536414324020233 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------ transf_fader ----------------------- */ /* -- this loopkup tabel objekt makes a 2-point interpolation -- */ /* --------- between the pairs of determinating points --------- */ typedef struct _transf_fader { t_object x_obj; int x_size; int x_message; t_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; t_float val_delta; t_float delta; t_float val_prev=0.0f; t_float val=0.0f; t_float *vec=x->x_array; t_float fad_in, fad_out; for(j=0; j 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 -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 / (t_float)i_delta; for(k=i_prev+1; kx_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) { t_float fad_out; t_float *vec=x->x_array; t_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 - (t_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(t_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 = (t_float *)getbytes(x->x_size * sizeof(t_float)); n = x->x_size; for(i=0; ix_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")); } iemlib-1.20.1/iemlib2/src/splitfilename.c0000644002537200234200000000737610536414324020433 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* ----------------------- splitfilename -------------------------- */ /* -- splits a symbol into 2 parts (path + file) at the position -- */ /* -- of the first separator-character beginnig from the right ---- */ /* ---------- eliminating the separator-character ----------------- */ static t_class *splitfilename_class; typedef struct _splitfilename { t_object x_obj; char x_sep[2]; char x_mem[MAXPDSTRING]; t_outlet *x_outpath; t_outlet *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)) { char *name=av->a_w.w_symbol->s_name; if(strlen(name) == 1) x->x_sep[0] = name[0]; else if(!strcmp(name, "backslash")) x->x_sep[0] = '\\'; else if(!strcmp(name, "slash")) x->x_sep[0] = '/'; else if(!strcmp(name, "blank")) x->x_sep[0] = ' '; else if(!strcmp(name, "space")) x->x_sep[0] = ' '; else if(!strcmp(name, "dollar")) x->x_sep[0] = '$'; else if(!strcmp(name, "comma")) x->x_sep[0] = ','; else if(!strcmp(name, "semi")) x->x_sep[0] = ';'; else if(!strcmp(name, "leftbrace")) x->x_sep[0] = '{'; else if(!strcmp(name, "rightbrace")) x->x_sep[0] = '}'; else x->x_sep[0] = '/'; } else if(IS_A_FLOAT(av, 0)) { t_int i=atom_getintarg(0, ac, av); x->x_sep[0] = (char)i + '0';/* you can set any separator-char by setting a number between -32 ... 223 */ } } else x->x_sep[0] = 0; } static void splitfilename_symbol(t_splitfilename *x, t_symbol *s) { t_int length = strlen(s->s_name); if(length) { if(x->x_sep[0]) { char *sep_ptr=x->x_mem; if(length > (MAXPDSTRING - 2)) strncpy(x->x_mem, s->s_name, MAXPDSTRING - 2 - length); else strcpy(x->x_mem, s->s_name); sep_ptr = strrchr(x->x_mem, x->x_sep[0]);/* points to the leftest separator-char-index of string */ if((!sep_ptr) || ((sep_ptr - x->x_mem) < 0) || ((sep_ptr - x->x_mem) >= length)) { /* JMZ: 20050701 : removed typecast (char*) to (int); this is not portable */ outlet_symbol(x->x_outfile, &s_); outlet_symbol(x->x_outpath, gensym(x->x_mem)); } else { *sep_ptr = 0; sep_ptr++; outlet_symbol(x->x_outfile, gensym(sep_ptr)); outlet_symbol(x->x_outpath, gensym(x->x_mem)); } } 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 = (t_outlet *)outlet_new(&x->x_obj, &s_symbol); x->x_outfile = (t_outlet *)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")); } iemlib-1.20.1/iemlib2/src/init.c0000644002537200234200000001112210536414324016522 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------ init ---------------------------- */ /* -------- a combination of loadbang and any --------------- */ 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_floatarg 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; ix_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")); } iemlib-1.20.1/iemlib2/src/makefile_vc9proj0000644002537200234200000000312411602667471020602 0ustar zmoelnigiemusersTARGET = iemlib2 all: ..\$(TARGET).dll VIS_CPP_PATH = "C:\Program Files\Microsoft Visual Studio 9.0\VC" VIS_SDK_PATH = "C:\Program Files\Microsoft SDKs\Windows\v6.0A" PD_INST_PATH = "C:\Program Files\pd-0.43.0" 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 /DHAVE_G_CANVAS_H /Ox -D_CRT_SECURE_NO_WARNINGS PD_WIN_L_FLAGS = /nologo PD_WIN_LIB = /NODEFAULTLIB:libcmt /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel32 \ $(VIS_CPP_PATH)\lib\libcmt.lib \ $(VIS_CPP_PATH)\lib\oldnames.lib \ $(VIS_SDK_PATH)\lib\kernel32.lib \ $(PD_INST_PATH)\bin\pd.lib SRC = add2_comma.c \ aspeedlim.c \ bpe.c \ dollarg.c \ exp_inc.c \ fade~.c \ float24.c \ iem_alisttosym.c \ iem_anything.c \ iem_append.c \ iem_blocksize~.c \ iem_i_route.c \ iem_pbank_csv.c \ iem_prepend.c \ iem_receive.c \ iem_route.c \ iem_samplerate~.c \ iem_sel_any.c \ iem_send.c \ iem_symtoalist.c \ init.c \ LFO_noise~.c \ list2send.c \ m2f~.c \ mergefilename.c \ modulo_counter.c \ parentdollarzero.c \ post_netreceive.c \ pre_inlet.c \ prepend_ascii.c \ protect_against_open.c \ receive2list.c \ round_zero.c \ speedlim.c \ splitfilename.c \ stripfilename.c \ toggle_mess.c \ transf_fader.c \ unsymbol.c \ wrap.c \ $(TARGET).c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\$(TARGET).dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \ /out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iemlib2/src/iem_send.c0000644002537200234200000001017710536414324017353 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include #include #include /* -------------------- iem_send ------------------------------ */ /* ------- like millers s, but with setable send label -------- */ struct _iem_send_proxy; static t_class *iem_send_class; static t_class *iem_send_proxy_class; typedef struct _iem_send { t_object x_obj; struct _iem_send_proxy *x_proxy_inlet; t_symbol *x_send_label_sym; } t_iem_send; typedef struct _iem_send_proxy { t_object p_obj; t_iem_send *p_owner; } t_iem_send_proxy; static void iem_send_bang(t_iem_send *x) { if(x->x_send_label_sym) if(x->x_send_label_sym->s_thing) pd_bang(x->x_send_label_sym->s_thing); } static void iem_send_float(t_iem_send *x, t_floatarg f) { if(x->x_send_label_sym) if(x->x_send_label_sym->s_thing) pd_float(x->x_send_label_sym->s_thing, f); } static void iem_send_symbol(t_iem_send *x, t_symbol *s) { if(x->x_send_label_sym) if(x->x_send_label_sym->s_thing) pd_symbol(x->x_send_label_sym->s_thing, s); } static void iem_send_pointer(t_iem_send *x, t_gpointer *gp) { if(x->x_send_label_sym) if(x->x_send_label_sym->s_thing) pd_pointer(x->x_send_label_sym->s_thing, gp); } static void iem_send_list(t_iem_send *x, t_symbol *s, int argc, t_atom *argv) { if(x->x_send_label_sym) if(x->x_send_label_sym->s_thing) pd_list(x->x_send_label_sym->s_thing, s, argc, argv); } static void iem_send_anything(t_iem_send *x, t_symbol *s, int argc, t_atom *argv) { if(x->x_send_label_sym) if(x->x_send_label_sym->s_thing) typedmess(x->x_send_label_sym->s_thing, s, argc, argv); } /* begin of proxy methods (anything inlets) */ static void iem_send_proxy_clear(t_iem_send_proxy *p, t_symbol *s, int ac, t_atom *av) { t_iem_send *x = p->p_owner; x->x_send_label_sym = 0; } static void iem_send_proxy_set(t_iem_send_proxy *p, t_symbol *s, int ac, t_atom *av) { t_iem_send *x = p->p_owner; if(ac > 0) { if(IS_A_SYMBOL(av,0)) x->x_send_label_sym = atom_getsymbol(av); else if(IS_A_FLOAT(av,0)) { char str[32]; sprintf(str, "%g", atom_getfloat(av)); x->x_send_label_sym = gensym(str); } } } /* end of proxy methods (anything inlets) */ static void iem_send_free(t_iem_send *x) { if(x->x_proxy_inlet) pd_free((t_pd *)x->x_proxy_inlet); } static void *iem_send_new(t_symbol *s, int ac, t_atom *av) { t_iem_send *x = (t_iem_send *)pd_new(iem_send_class); t_iem_send_proxy *p = (t_iem_send_proxy *)pd_new(iem_send_proxy_class); x->x_proxy_inlet = p; p->p_owner = x; if(ac > 0) { if(IS_A_SYMBOL(av,0)) { x->x_send_label_sym = atom_getsymbol(av); } else if(IS_A_FLOAT(av,0)) { char str[32]; sprintf(str, "%g", atom_getfloat(av)); x->x_send_label_sym = gensym(str); } else x->x_send_label_sym = 0; } else x->x_send_label_sym = 0; inlet_new((t_object *)x, (t_pd *)p, 0, 0); return (x); } void iem_send_setup(void) { iem_send_class = class_new(gensym("iem_send"), (t_newmethod)iem_send_new, (t_method)iem_send_free, sizeof(t_iem_send), 0, A_GIMME, 0); class_addcreator((t_newmethod)iem_send_new, gensym("iem_s"), A_GIMME, 0); class_addbang(iem_send_class, iem_send_bang); class_addfloat(iem_send_class, iem_send_float); class_addsymbol(iem_send_class, iem_send_symbol); class_addpointer(iem_send_class, iem_send_pointer); class_addlist(iem_send_class, iem_send_list); class_addanything(iem_send_class, iem_send_anything); // class_sethelpsymbol(iem_send_class, gensym("iemhelp/help-iem_send")); iem_send_proxy_class = class_new(gensym("_iem_send_proxy"), 0, 0, sizeof(t_iem_send_proxy), CLASS_PD | CLASS_NOINLET, 0); class_addmethod(iem_send_proxy_class, (t_method)iem_send_proxy_clear, gensym("clear"), A_GIMME, 0); class_addmethod(iem_send_proxy_class, (t_method)iem_send_proxy_set, gensym("set"), A_GIMME, 0); } iemlib-1.20.1/iemlib2/src/iem_pbank_csv.c0000644002537200234200000006614611310215647020375 0ustar zmoelnigiemusers/* 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 - 2009 */ #include "m_pd.h" #include "iemlib.h" #include #include #include #include /* ---------------------------- iem_pbank_csv ------------------------------- */ /* -- is a list storage and management object, can store an array of lists -- */ /* ------------------------------- as an csv file --------------------------- */ /* read and write method needs 2 symbols, 1. symbol is a filename, 2. symbol is a 2 character descriptor 1.char: 'b'...for blank 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: 's'...for semicolon,return as END_OF_LINE (";\n") 2.char: 't'...for tabulator,return as END_OF_LINE (" \n") 2.char: 'r'...for return-only as END_OF_LINE ("\n") change: recall + offset + number */ #define IEMLIB2_DEBUG 0 #define IEM_PBANK_ITEM_SEPARATOR 0 #define IEM_PBANK_END_OF_LINE 1 #define IEM_PBANK_FORMAT_SIZE 2 #define IEM_PBANK_UNIFIED_RET 0x01 #define IEM_PBANK_UNIFIED_SEP 0x02 #define IEM_PBANK_UNIFIED_EOL 0x03 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[8], 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, eol_offset; FILE *fh; t_atom *ap=x->x_atbegmem; char formattext[100]; strcpy(mode, "br"); // default: blank-separator, return-eol, return depends on operating system sep = ' '; sprintf(eol, ";\n"); eol_offset = 1; if(filename->s_name[0] == '/')// linux, OSX { 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] == '/'))// windows, backslash becomes slash in pd { 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) >= IEM_PBANK_FORMAT_SIZE) { for(p=0; ps_name[p] >= 'A')&&(format->s_name[p] <= 'Z')) format->s_name[p] += 'a' - 'A'; } if((format->s_name[IEM_PBANK_ITEM_SEPARATOR] == 'b') ||(format->s_name[IEM_PBANK_ITEM_SEPARATOR] == 's') ||(format->s_name[IEM_PBANK_ITEM_SEPARATOR] == 't')) mode[IEM_PBANK_ITEM_SEPARATOR] = format->s_name[IEM_PBANK_ITEM_SEPARATOR]; if((format->s_name[IEM_PBANK_END_OF_LINE] == 'b') ||(format->s_name[IEM_PBANK_END_OF_LINE] == 's') ||(format->s_name[IEM_PBANK_END_OF_LINE] == 't') ||(format->s_name[IEM_PBANK_END_OF_LINE] == 'r')) mode[IEM_PBANK_END_OF_LINE] = format->s_name[IEM_PBANK_END_OF_LINE]; } else post("iem_pbank_csv_write: use default format %s !!\n", mode); if(mode[IEM_PBANK_ITEM_SEPARATOR] == 'b') { sep = ' '; strcpy(formattext, "item-separator = BLANK; "); } else if(mode[IEM_PBANK_ITEM_SEPARATOR] == 's') { sep = ';'; strcpy(formattext, "item-separator = SEMICOLON; "); } else if(mode[IEM_PBANK_ITEM_SEPARATOR] == 't') { sep = 0x09; strcpy(formattext, "item-separator = TABULATOR; "); } eol_offset = 0; if(mode[IEM_PBANK_END_OF_LINE] == 'b') { eol[0] = ' '; strcat(formattext, "end_of_line_terminator = BLANK-RETURN."); } else if(mode[IEM_PBANK_END_OF_LINE] == 's') { eol[0] = ';'; strcat(formattext, "end_of_line_terminator = SEMICOLON-RETURN."); } else if(mode[IEM_PBANK_END_OF_LINE] == 't') { eol[0] = 0x09; strcat(formattext, "end_of_line_terminator = TABULATOR-RETURN."); } else if(mode[IEM_PBANK_END_OF_LINE] == 'r') { eol_offset = 1; strcat(formattext, "end_of_line_terminator = RETURN."); } ap = x->x_atbegmem; for(l=0; la_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+eol_offset); else if(IS_A_SYMBOL(ap, 0)) fprintf(fh, "%s%s", ap->a_w.w_symbol->s_name, eol+eol_offset); 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); } } static 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; t_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 void iem_pbank_csv_debug(char *buf, int n) { while(n >= 16) { post("%x %x %x %x | %x %x %x %x | %x %x %x %x | %x %x %x %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13], buf[14], buf[15]); n -= 16; buf += 16; } switch(n) { case 15: post("%x %x %x %x | %x %x %x %x | %x %x %x %x | %x %x %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13], buf[14]); break; case 14: post("%x %x %x %x | %x %x %x %x | %x %x %x %x | %x %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13]); break; case 13: post("%x %x %x %x | %x %x %x %x | %x %x %x %x | %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12]); break; case 12: post("%x %x %x %x | %x %x %x %x | %x %x %x %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11]); break; case 11: post("%x %x %x %x | %x %x %x %x | %x %x %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10]); break; case 10: post("%x %x %x %x | %x %x %x %x | %x %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9]); break; case 9: post("%x %x %x %x | %x %x %x %x | %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8]); break; case 8: post("%x %x %x %x | %x %x %x %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7]); break; case 7: post("%x %x %x %x | %x %x %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6]); break; case 6: post("%x %x %x %x | %x %x", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5]); break; case 5: post("%x %x %x %x | %x", buf[0], buf[1], buf[2], buf[3], buf[4]); break; case 4: post("%x %x %x %x", buf[0], buf[1], buf[2], buf[3]); break; case 3: post("%x %x %x", buf[0], buf[1], buf[2]); break; case 2: post("%x %x", buf[0], buf[1]); break; case 1: post("%x", buf[0]); break; } } static void iem_pbank_csv_read(t_iem_pbank_csv *x, t_symbol *filename, t_symbol *format) { char completefilename[400], eol, 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, eol_length; FILE *fh; t_atom *ap, *hap, *at; char formattext[100], str_format[8]; strcpy(mode, "br"); // blank-separator, return-eol sep = ' '; // default SEP = space eol = ';'; // default any char eol_length = 1; // default: EOL = return only 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) >= IEM_PBANK_FORMAT_SIZE) { strncpy(str_format, format->s_name, IEM_PBANK_FORMAT_SIZE); str_format[IEM_PBANK_FORMAT_SIZE] = 0; for(p=0; p= 'A')&&(str_format[p] <= 'Z')) str_format[p] += 'a' - 'A'; } if((str_format[IEM_PBANK_ITEM_SEPARATOR] == 'b') ||(str_format[IEM_PBANK_ITEM_SEPARATOR] == 's') ||(str_format[IEM_PBANK_ITEM_SEPARATOR] == 't')) mode[IEM_PBANK_ITEM_SEPARATOR] = str_format[IEM_PBANK_ITEM_SEPARATOR]; if((str_format[IEM_PBANK_END_OF_LINE] == 'b') ||(str_format[IEM_PBANK_END_OF_LINE] == 's') ||(str_format[IEM_PBANK_END_OF_LINE] == 't') ||(str_format[IEM_PBANK_END_OF_LINE] == 'r')) mode[IEM_PBANK_END_OF_LINE] = str_format[IEM_PBANK_END_OF_LINE]; } else post("iem_pbank_csv_read: use default format %s !!\n", mode); if(mode[IEM_PBANK_ITEM_SEPARATOR] == 'b') { sep = ' '; strcpy(formattext, "item-separator = BLANK; "); } else if(mode[IEM_PBANK_ITEM_SEPARATOR] == 's') { sep = ';'; strcpy(formattext, "item-separator = SEMICOLON; "); } else if(mode[IEM_PBANK_ITEM_SEPARATOR] == 't') { sep = 0x09; strcpy(formattext, "item-separator = TABULATOR; "); } eol_length = 2; // if EOL are 2 char if(mode[IEM_PBANK_END_OF_LINE] == 'b') { eol = ' '; strcat(formattext, "end_of_line_terminator = BLANK-RETURN."); } else if(mode[IEM_PBANK_END_OF_LINE] == 's') { eol = ';'; strcat(formattext, "end_of_line_terminator = SEMICOLON-RETURN."); } else if(mode[IEM_PBANK_END_OF_LINE] == 't') { eol = 0x09; strcat(formattext, "end_of_line_terminator = TABULATOR-RETURN."); } else if(mode[IEM_PBANK_END_OF_LINE] == 'r') { eol_length = 1; // if EOL is only 1 char = return oly strcat(formattext, "end_of_line_terminator = RETURN."); } fseek(fh, 0, SEEK_END); txalloc = ftell(fh); fseek(fh,0,SEEK_SET); txbuf1 = (char *)getbytes((2 * txalloc + 256) * sizeof(char)); txbuf2 = (char *)getbytes((2 * txalloc + 256) * sizeof(char)); if(fread(txbuf1, sizeof(char), txalloc, fh) < sizeof(char)*txalloc) post("pbank.csv:435: warning read error (not specified)"); fclose(fh); // 1.) allow only readable ASCII (0x09, 0x0a, 0x0d, 0x20...0x7e = // = TAB, LF, CR, ' ' ... '~' = // = Tabulator, LineFeed, CarridgeReturn, Space ... Tilde), else drop txvec_src = txbuf1; txvec_dst = txbuf2; txlen = txalloc; p = 0; for(l=0; l= ' ') && (*txvec_src <= '~')) || (*txvec_src == 0x09) || (*txvec_src == 0x0a) || (*txvec_src == 0x0d)) { *txvec_dst++ = *txvec_src++; // copy the same char p++; } else txvec_src++;// drop anything else } txlen = p; // dst is 2 // 2.) unify windows return txvec_src = txbuf2; txvec_dst = txbuf1; p = 0; txlen--; // because we seek 2 char for(l=0; lx_atbegmem; for(l=0; lx_atbegmem; ap = hap; nrp++; i = 0; /* atom-counter */ j = 0; for(l=0; la_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(; px_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, (t_float)beg); atout++; for(i=0; ix_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; ix_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= 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; ix_atbegbuf[para_index] = av[i]; para_index++; } } } } } static void iem_pbank_csv_ft1(t_iem_pbank_csv *x, t_floatarg 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; lx_atbegbuf; for(p=0; px_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")); } iemlib-1.20.1/iemlib2/src/iem_symtoalist.c0000644002537200234200000000347411120274166020632 0ustar zmoelnigiemusers/* 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 - 2008 */ #include "m_pd.h" #include "iemlib.h" #include #include #include /* ------------------------ iem_symtoalist --------------------- */ /* --------- converts a symbol to a ASCII list of floats ------- */ static t_class *iem_symtoalist_class; typedef struct _iem_symtoalist { t_object x_obj; char x_string[MAXPDSTRING]; t_atom x_av[MAXPDSTRING]; } t_iem_symtoalist; static void iem_symtoalist_symbol(t_iem_symtoalist *x, t_symbol *s) { char *string=s->s_name; unsigned char uc; t_int i, n=strlen(string); for(i=0; ix_av+i, (t_float)uc); } outlet_list(x->x_obj.ob_outlet, &s_list, n, x->x_av); } static void iem_symtoalist_float(t_iem_symtoalist *x, t_floatarg f) { char string[40]; unsigned char uc; t_int i, n; sprintf(string, "%g", f); n=strlen(string); for(i=0; ix_av+i, (t_float)uc); } outlet_list(x->x_obj.ob_outlet, &s_list, n, x->x_av); } static void iem_symtoalist_free(t_iem_symtoalist *x) { } static void *iem_symtoalist_new(void) { t_iem_symtoalist *x = (t_iem_symtoalist *)pd_new(iem_symtoalist_class); x->x_string[0] = 0; SETFLOAT(x->x_av, 0.0); outlet_new(&x->x_obj, &s_list); return (x); } void iem_symtoalist_setup(void) { iem_symtoalist_class = class_new(gensym("iem_symtoalist"), (t_newmethod)iem_symtoalist_new, 0, sizeof(t_iem_symtoalist), 0, 0); class_addsymbol(iem_symtoalist_class, iem_symtoalist_symbol); class_addfloat(iem_symtoalist_class, iem_symtoalist_float); } iemlib-1.20.1/iemlib2/src/iem_route.c0000644002537200234200000001163510536414324017560 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* -------------------------- iem_route ------------------------------ */ /* -------- like millers route, but can output bangs ----------------- */ 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) { t_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")); } iemlib-1.20.1/iemlib2/src/exp_inc.c0000644002537200234200000000776510536414324017226 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------ exp_inc ---------------------------- */ /* ------- exponetial/linear-incremental-bang-counter ---------- */ static t_class *exp_inc_class; typedef struct _exp_inc { t_object x_obj; t_float x_initialval; t_float x_currentval; t_float x_mulfactor; t_float x_addincrement; t_float x_min; t_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 = (t_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*(t_float)f; } static void exp_inc_ft2(t_exp_inc *x, t_floatarg f) { x->x_addincrement = (t_float)f; } static void exp_inc_ft3(t_exp_inc *x, t_floatarg f) { x->x_min = (t_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 = (t_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")); } iemlib-1.20.1/iemlib2/src/iem_append.c0000644002537200234200000002313410536414324017666 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ----------------------- iem_append -------------------------- */ /* -- concatenates message from hot (left) inlet with message -- */ /* ------ from cold (right) inlet and outputs it; initial ----- */ /* -- arguments (appendix) are eqal to message of cold inlet --- */ struct _iem_append_proxy; static t_class *iem_append_class; static t_class *iem_append_proxy_class; typedef struct _iem_append { t_object x_obj; struct _iem_append_proxy *x_proxy_inlet; int x_size12; int x_size2; int x_ac1; int x_ac2; t_atom *x_at12; t_atom *x_at2; t_symbol *x_selector_sym1; t_symbol *x_selector_sym2; t_atomtype x_type1; t_atomtype x_type2; } t_iem_append; typedef struct _iem_append_proxy { t_object p_obj; t_iem_append *p_owner; } t_iem_append_proxy; static void iem_append_atcopy(t_atom *src, t_atom *dst, int n) { while(n--) *dst++ = *src++; } static void iem_append_merge(t_iem_append *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_selector_sym2); iem_append_atcopy(x->x_at2, x->x_at12 + x->x_ac1 + off, x->x_ac2); } static void iem_append_out(t_iem_append *x) { int off=0; if(x->x_type1 == A_GIMME) { if(x->x_type2 == A_COMMA) off = 1; else off = 0; iem_append_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_merge(x, off); outlet_anything(x->x_obj.ob_outlet, x->x_selector_sym1, x->x_ac1+x->x_ac2+off, x->x_at12); } else if(x->x_type1 == A_NULL)/*depends on 2.part*/ { iem_append_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_selector_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_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_bang(t_iem_append *x) { x->x_ac1 = 0; x->x_type1 = A_NULL; iem_append_out(x); } static void iem_append_float(t_iem_append *x, t_float f) { x->x_ac1 = 1; x->x_type1 = A_FLOAT; SETFLOAT(x->x_at12, f); iem_append_out(x); } static void iem_append_symbol(t_iem_append *x, t_symbol *s) { x->x_ac1 = 1; x->x_type1 = A_SYMBOL; SETSYMBOL(x->x_at12, s); iem_append_out(x); } static void iem_append_pointer(t_iem_append *x, t_gpointer *gp) { x->x_ac1 = 1; x->x_type1 = A_POINTER; SETPOINTER(x->x_at12, gp); iem_append_out(x); } static void iem_append_list(t_iem_append *x, t_symbol *s, int ac, t_atom *av) { if((x->x_size2+ac+1) > x->x_size12) { x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), (x->x_size2+ac+11)*sizeof(t_atom)); x->x_size12 = x->x_size2+ac+11; } x->x_ac1 = ac; x->x_type1 = A_GIMME; iem_append_atcopy(av, x->x_at12, ac); x->x_selector_sym1 = &s_list; iem_append_out(x); } static void iem_append_anything(t_iem_append *x, t_symbol *s, int ac, t_atom *av) { if((x->x_size2+ac+2) > x->x_size12) { x->x_at12 = (t_atom *)resizebytes(x->x_at12, x->x_size12*sizeof(t_atom), (x->x_size2+ac+12)*sizeof(t_atom)); x->x_size12 = x->x_size2+ac+12; } x->x_ac1 = ac; x->x_type1 = A_COMMA; iem_append_atcopy(av, x->x_at12, ac); x->x_selector_sym1 = s; iem_append_out(x); } /* begin of proxy methods (anything inlets) */ static void iem_append_proxy_bang(t_iem_append_proxy *p) { t_iem_append *x = p->p_owner; x->x_ac2 = 0; x->x_type2 = A_NULL; x->x_selector_sym2 = &s_list; } static void iem_append_proxy_float(t_iem_append_proxy *p, t_float f) { t_iem_append *x = p->p_owner; x->x_ac2 = 1; x->x_type2 = A_FLOAT; SETFLOAT(x->x_at2, f); x->x_selector_sym2 = &s_list; } static void iem_append_proxy_symbol(t_iem_append_proxy *p, t_symbol *s) { t_iem_append *x = p->p_owner; x->x_ac2 = 1; x->x_type2 = A_SYMBOL; SETSYMBOL(x->x_at2, s); x->x_selector_sym2 = &s_list; } static void iem_append_proxy_pointer(t_iem_append_proxy *p, t_gpointer *gp) { t_iem_append *x = p->p_owner; x->x_ac2 = 1; x->x_type2 = A_POINTER; SETPOINTER(x->x_at2, gp); x->x_selector_sym2 = &s_list; } static void iem_append_proxy_list(t_iem_append_proxy *p, t_symbol *s, int ac, t_atom *av) { t_iem_append *x = p->p_owner; if(ac > x->x_size2) { x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), (ac+10)*sizeof(t_atom)); x->x_size2 = (ac+10); } x->x_ac2 = ac; x->x_type2 = A_GIMME; x->x_selector_sym2 = &s_list; iem_append_atcopy(av, x->x_at2, ac); } static void iem_append_proxy_anything(t_iem_append_proxy *p, t_symbol *s, int ac, t_atom *av) { t_iem_append *x = p->p_owner; if((ac+1) > x->x_size2) { x->x_at2 = (t_atom *)resizebytes(x->x_at2, x->x_size2*sizeof(t_atom), (ac+11)*sizeof(t_atom)); x->x_size2 = ac+11; } x->x_ac2 = ac; x->x_type2 = A_COMMA; x->x_selector_sym2 = s; iem_append_atcopy(av, x->x_at2, ac); } /* end of proxy methods (anything inlets) */ static void iem_append_free(t_iem_append *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)); if(x->x_proxy_inlet) pd_free((t_pd *)x->x_proxy_inlet); } static void *iem_append_new(t_symbol *s, int ac, t_atom *av) { t_iem_append *x = (t_iem_append *)pd_new(iem_append_class); t_iem_append_proxy *p = (t_iem_append_proxy *)pd_new(iem_append_proxy_class); x->x_proxy_inlet = p; p->p_owner = x; x->x_type1 = A_NULL; x->x_selector_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; if(ac <= 0) { x->x_type2 = A_NULL; x->x_ac2 = 0; x->x_selector_sym2 = &s_list; } else { if(IS_A_FLOAT(av, 0)) { if(ac == 1) iem_append_proxy_float(p, atom_getfloat(av)); else iem_append_proxy_list(p, &s_list, ac, av); } else if(IS_A_SYMBOL(av, 0)) { t_symbol *xsym=atom_getsymbol(av); if(xsym == &s_symbol) { if(ac > 1) iem_append_proxy_symbol(p, atom_getsymbol(av+1)); else iem_append_proxy_symbol(p, gensym("")); } else if(xsym == &s_float) { if(ac > 1) { if(IS_A_FLOAT(av, 1)) iem_append_proxy_float(p, atom_getfloat(av+1)); else iem_append_proxy_float(p, 0.0f); } else iem_append_proxy_float(p, 0.0f); } else if(xsym == &s_list) { iem_append_proxy_list(p, &s_list, ac-1, av+1); } else { iem_append_proxy_anything(p, xsym, ac-1, av+1); } } } inlet_new((t_object *)x, (t_pd *)p, 0, 0); outlet_new(&x->x_obj, &s_list); return (x); } void iem_append_setup(void) { iem_append_class = class_new(gensym("iem_append"), (t_newmethod)iem_append_new, (t_method)iem_append_free, sizeof(t_iem_append), 0, A_GIMME, 0); class_addcreator((t_newmethod)iem_append_new, gensym("merge_any"), A_GIMME, 0); class_addbang(iem_append_class, (t_method)iem_append_bang); class_addpointer(iem_append_class, iem_append_pointer); class_addfloat(iem_append_class, (t_method)iem_append_float); class_addsymbol(iem_append_class, iem_append_symbol); class_addlist(iem_append_class, iem_append_list); class_addanything(iem_append_class, iem_append_anything); // class_sethelpsymbol(iem_append_class, gensym("iemhelp/help-iem_append")); iem_append_proxy_class = class_new(gensym("_iem_append_proxy"), 0, 0, sizeof(t_iem_append_proxy), CLASS_PD | CLASS_NOINLET, 0); class_addbang(iem_append_proxy_class, (t_method)iem_append_proxy_bang); class_addpointer(iem_append_proxy_class, iem_append_proxy_pointer); class_addfloat(iem_append_proxy_class, (t_method)iem_append_proxy_float); class_addsymbol(iem_append_proxy_class, iem_append_proxy_symbol); class_addlist(iem_append_proxy_class, iem_append_proxy_list); class_addanything(iem_append_proxy_class, iem_append_proxy_anything); } iemlib-1.20.1/iemlib2/src/VC6/0000755002537200234200000000000012243414232016007 5ustar zmoelnigiemusersiemlib-1.20.1/iemlib2/src/VC6/iem_atan2.dsp0000644002537200234200000000500711605331024020356 0ustar zmoelnigiemusers# Microsoft Developer Studio Project File - Name="iem_atan2" - Package Owner=<4> # Microsoft Developer Studio Generated Build File, Format Version 6.00 # ** NICHT BEARBEITEN ** # TARGTYPE "Win32 (x86) External Target" 0x0106 CFG=iem_atan2 - Win32 Debug !MESSAGE Dies ist kein gltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE !MESSAGE verwenden Sie den Befehl "Makefile exportieren" und fhren Sie den Befehl !MESSAGE !MESSAGE NMAKE /f "iem_atan2.mak". !MESSAGE !MESSAGE Sie knnen beim Ausfhren von NMAKE eine Konfiguration angeben !MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: !MESSAGE !MESSAGE NMAKE /f "iem_atan2.mak" CFG="iem_atan2 - Win32 Debug" !MESSAGE !MESSAGE Fr die Konfiguration stehen zur Auswahl: !MESSAGE !MESSAGE "iem_atan2 - Win32 Release" (basierend auf "Win32 (x86) External Target") !MESSAGE "iem_atan2 - Win32 Debug" (basierend auf "Win32 (x86) External Target") !MESSAGE # Begin Project # PROP AllowPerConfigDependencies 0 # PROP Scc_ProjName "" # PROP Scc_LocalPath "" !IF "$(CFG)" == "iem_atan2 - 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_atan2.exe" # PROP Bsc_Name "iem_atan2.bsc" # PROP Target_Dir "" !ELSEIF "$(CFG)" == "iem_atan2 - 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_atan2.exe" # PROP Bsc_Name "iem_atan2.bsc" # PROP Target_Dir "" !ENDIF # Begin Target # Name "iem_atan2 - Win32 Release" # Name "iem_atan2 - Win32 Debug" !IF "$(CFG)" == "iem_atan2 - Win32 Release" !ELSEIF "$(CFG)" == "iem_atan2 - Win32 Debug" !ENDIF # Begin Source File SOURCE=.\makefile_win # End Source File # End Target # End Project iemlib-1.20.1/iemlib2/src/VC6/iem_atan2.dsw0000644002537200234200000000107111605331024020362 0ustar zmoelnigiemusersMicrosoft Developer Studio Workspace File, Format Version 6.00 # WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELSCHT WERDEN! ############################################################################### Project: "iem_atan2"=.\iem_atan2.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### iemlib-1.20.1/iemlib2/src/VC6/makefile_win0000644002537200234200000000164211605331024020365 0ustar zmoelnigiemusers all: ..\iem_atan2.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 = iem_atan2.c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\iem_atan2.dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:iem_atan2_setup \ /out:..\iem_atan2.dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iemlib2/src/iem_i_route.c0000644002537200234200000000601110536414324020060 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* -------------------------- iem_i_route ------------------------------ */ /* ---- routes a list beginning with a float to an outlet, which is ---- */ /* -- defined by the 3 initial arguments first index, 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; ix_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")); } iemlib-1.20.1/iemlib2/src/dollarg.c0000644002537200234200000000546111524474025017216 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #ifdef HAVE_G_CANVAS_H # include "g_canvas.h" #else EXTERN t_canvas *glist_getcanvas(t_glist *x); #endif #include "iemlib.h" /* ------------------------- dollarg ---------------------------- */ /* --- dollar-arguments, output the initial-arguments and the --- */ /* ------- number of them of the parent abstraction-patch ------- */ 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")); } iemlib-1.20.1/iemlib2/src/fade~.c0000644002537200234200000001303410707665521016667 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* ------------------------- fade~ ----------------------------- */ /* --- signal lookup tabel object with input range of 0 to 1 --- */ /* ---- converts a linear signal ramp to the half of a : ------ */ /* -- sine-wave, hanning-wave, squareroot-wave or mixes of it -- */ t_float *iem_fade_tilde_table_lin=(t_float *)0L; t_float *iem_fade_tilde_table_linsqrt=(t_float *)0L; t_float *iem_fade_tilde_table_sqrt=(t_float *)0L; t_float *iem_fade_tilde_table_sin=(t_float *)0L; t_float *iem_fade_tilde_table_sinhann=(t_float *)0L; t_float *iem_fade_tilde_table_hann=(t_float *)0L; static t_class *fade_tilde_class; typedef struct _fade_tilde { t_object x_obj; t_float *x_table; t_float x_f; } t_fade_tilde; static void fade_tilde_set(t_fade_tilde *x, t_symbol *s) { if(s == gensym("_lin")) x->x_table = iem_fade_tilde_table_lin; else if(s == gensym("_linsqrt")) x->x_table = iem_fade_tilde_table_linsqrt; else if(s == gensym("_sqrt")) x->x_table = iem_fade_tilde_table_sqrt; else if(s == gensym("_sin")) x->x_table = iem_fade_tilde_table_sin; else if(s == gensym("_sinhann")) x->x_table = iem_fade_tilde_table_sinhann; else if(s == gensym("_hann")) x->x_table = iem_fade_tilde_table_hann; } static void *fade_tilde_new(t_symbol *s) { t_fade_tilde *x = (t_fade_tilde *)pd_new(fade_tilde_class); outlet_new(&x->x_obj, gensym("signal")); x->x_f = 0; x->x_table = iem_fade_tilde_table_lin; fade_tilde_set(x, s); return (x); } static t_int *fade_tilde_perform(t_int *w) { t_float *in = (t_float *)(w[1]); t_float *out = (t_float *)(w[2]); t_fade_tilde *x = (t_fade_tilde *)(w[3]); int n = (int)(w[4]); t_float *tab = x->x_table, *addr, f1, f2, frac; double dphase; int normhipart; union tabfudge_d 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++ * (t_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++ * (t_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++ * (t_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 fade_tilde_dsp(t_fade_tilde *x, t_signal **sp) { dsp_add(fade_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); } static void fade_tilde_maketable(void) { int i; t_float *fp, phase, fff,phsinc = 0.5*3.141592653 / ((t_float)COSTABSIZE*0.99999); union tabfudge_d tf; if(!iem_fade_tilde_table_sin) { iem_fade_tilde_table_sin = (t_float *)getbytes(sizeof(t_float) * (COSTABSIZE+1)); for(i=COSTABSIZE+1, fp=iem_fade_tilde_table_sin, phase=0; i--; fp++, phase+=phsinc) *fp = sin(phase); } if(!iem_fade_tilde_table_sinhann) { iem_fade_tilde_table_sinhann = (t_float *)getbytes(sizeof(t_float) * (COSTABSIZE+1)); for(i=COSTABSIZE+1, fp=iem_fade_tilde_table_sinhann, phase=0; i--; fp++, phase+=phsinc) { fff = sin(phase); *fp = fff*sqrt(fff); } } if(!iem_fade_tilde_table_hann) { iem_fade_tilde_table_hann = (t_float *)getbytes(sizeof(t_float) * (COSTABSIZE+1)); for(i=COSTABSIZE+1, fp=iem_fade_tilde_table_hann, phase=0; i--; fp++, phase+=phsinc) { fff = sin(phase); *fp = fff*fff; } } phsinc = 1.0 / ((t_float)COSTABSIZE*0.99999); if(!iem_fade_tilde_table_lin) { iem_fade_tilde_table_lin = (t_float *)getbytes(sizeof(t_float) * (COSTABSIZE+1)); for(i=COSTABSIZE+1, fp=iem_fade_tilde_table_lin, phase=0; i--; fp++, phase+=phsinc) *fp = phase; } if(!iem_fade_tilde_table_linsqrt) { iem_fade_tilde_table_linsqrt = (t_float *)getbytes(sizeof(t_float) * (COSTABSIZE+1)); for(i=COSTABSIZE+1, fp=iem_fade_tilde_table_linsqrt, phase=0; i--; fp++, phase+=phsinc) *fp = pow(phase, 0.75); } if(!iem_fade_tilde_table_sqrt) { iem_fade_tilde_table_sqrt = (t_float *)getbytes(sizeof(t_float) * (COSTABSIZE+1)); for(i=COSTABSIZE+1, fp=iem_fade_tilde_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 fade_tilde_setup(void) { fade_tilde_class = class_new(gensym("fade~"), (t_newmethod)fade_tilde_new, 0, sizeof(t_fade_tilde), 0, A_DEFSYM, 0); CLASS_MAINSIGNALIN(fade_tilde_class, t_fade_tilde, x_f); class_addmethod(fade_tilde_class, (t_method)fade_tilde_dsp, gensym("dsp"), 0); class_addmethod(fade_tilde_class, (t_method)fade_tilde_set, gensym("set"), A_DEFSYM, 0); // class_sethelpsymbol(fade_tilde_class, gensym("iemhelp/help-fade~")); fade_tilde_maketable(); } iemlib-1.20.1/iemlib2/src/iem_sel_any.c0000644002537200234200000000662011153504647020056 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include #include #include #include /* ------------------------ iem_sel_any ---------------------------- */ /* -- stores an array of symbols, random access by index ----------- */ 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_floatarg 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_set_item_name(t_iem_sel_any *x, t_symbol *s, int ac, t_atom *av) { if((ac >= 2) && (IS_A_FLOAT(av, 1))) { int i = (int)atom_getintarg(1, ac, av); if((i >= 0) && (i < x->x_max_ac)) { if(IS_A_SYMBOL(av, 0)) x->x_any[i] = atom_getsymbolarg(0, ac, av); else if(IS_A_FLOAT(av, 0)) { char str[100]; sprintf(str, "%g", atom_getfloatarg(0, 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_floatarg ffmax) { 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(ffmax <= 0.0) ffmax = 10.0; x->x_max_ac = (int)ffmax; 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; ix_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_set_item_name, gensym("set_item_name"), 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")); } iemlib-1.20.1/iemlib2/src/add2_comma.c0000644002537200234200000000606610536414324017560 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* --------------------------------- add2_comma ----------------------------------- */ /* -- a special add2-message for messageboxes, which append a comma to a message -- */ 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_floatarg 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")); } iemlib-1.20.1/iemlib2/src/toggle_mess.c0000644002537200234200000000626510536414324020103 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------ toggle_mess ---------------------------- */ /* -- inital arguments building a set of messages, any incomming --- */ /* -- increments the internal counter and outputs the n-th initial --*/ /* -- message. -- */ 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, (t_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_floatarg 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; ix_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")); } iemlib-1.20.1/iemlib2/src/iemlib2.dsp0000644002537200234200000000474511203416540017455 0ustar zmoelnigiemusers# 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 gltiges Makefile. Zum Erstellen dieses Projekts mit NMAKE !MESSAGE verwenden Sie den Befehl "Makefile exportieren" und fhren Sie den Befehl !MESSAGE !MESSAGE NMAKE /f "iemlib2.mak". !MESSAGE !MESSAGE Sie knnen beim Ausfhren 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 Fr 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 iemlib-1.20.1/iemlib2/src/iem_alisttosym.c0000644002537200234200000000305611120270161020615 0ustar zmoelnigiemusers/* 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 - 2008 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------ iem_alisttosym ---------------------------- */ /* ---------- converts a ASCII list of floats to a symbol ------------- */ static t_class *iem_alisttosym_class; typedef struct _iem_alisttosym { t_object x_obj; char x_string[MAXPDSTRING]; } t_iem_alisttosym; static void iem_alisttosym_list(t_iem_alisttosym *x, t_symbol *s, int ac, t_atom *av) { t_int i=0, j=0, k=0; unsigned char uc=0; if(ac > 0) { for(i=0, j=0; i= 0) && (k <= 255)) { uc = (unsigned char)k; x->x_string[j++] = (char)uc; } } if(j >= (MAXPDSTRING - 2)) break; } } x->x_string[j] = 0; outlet_symbol(x->x_obj.ob_outlet, gensym(x->x_string)); } static void iem_alisttosym_free(t_iem_alisttosym *x) { } static void *iem_alisttosym_new(void) { t_iem_alisttosym *x = (t_iem_alisttosym *)pd_new(iem_alisttosym_class); x->x_string[0] = 0; outlet_new(&x->x_obj, &s_symbol); return (x); } void iem_alisttosym_setup(void) { iem_alisttosym_class = class_new(gensym("iem_alisttosym"), (t_newmethod)iem_alisttosym_new, 0, sizeof(t_iem_alisttosym), 0, 0); class_addlist(iem_alisttosym_class, iem_alisttosym_list); } iemlib-1.20.1/iemlib2/src/m2f~.c0000644002537200234200000000613310707665521016456 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include /* ----------- m2f~ ----------- */ /* --------- obsolete --------- */ #define M2FTILDETABSIZE 2048 t_float *iem_m2f_tilde_table=(t_float *)0L; static t_class *m2f_tilde_class; typedef struct _m2f { t_object x_obj; t_float x_msi; } t_m2f_tilde; static void *m2f_tilde_new(void) { t_m2f_tilde *x = (t_m2f_tilde *)pd_new(m2f_tilde_class); outlet_new(&x->x_obj, gensym("signal")); x->x_msi = 0; return (x); } static t_int *m2f_tilde_perform(t_int *w) { t_float *in = (t_float *)(w[1]); t_float *out = (t_float *)(w[2]); t_m2f_tilde *x = (t_m2f_tilde *)(w[3]); int n = (int)(w[4]); t_float *tab = iem_m2f_tilde_table, *addr, f1, f2, frac, iinn; double dphase; int normhipart; union tabfudge_d 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] & (M2FTILDETABSIZE-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] & (M2FTILDETABSIZE-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] & (M2FTILDETABSIZE-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 m2f_tilde_dsp(t_m2f_tilde *x, t_signal **sp) { dsp_add(m2f_tilde_perform, 4, sp[0]->s_vec, sp[1]->s_vec, x, sp[0]->s_n); } static void m2f_tilde_maketable(void) { union tabfudge_d tf; if(!iem_m2f_tilde_table) { int i; t_float *fp, midi, refexp=440.0*exp(-5.75*log(2.0)); iem_m2f_tilde_table = (t_float *)getbytes(sizeof(t_float) * (M2FTILDETABSIZE+1)); for(i=0, fp=iem_m2f_tilde_table, midi=-67.0; i<=M2FTILDETABSIZE; 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 m2f_tilde_setup(void) { m2f_tilde_class = class_new(gensym("m2f~"), (t_newmethod)m2f_tilde_new, 0, sizeof(t_m2f_tilde), 0, 0); CLASS_MAINSIGNALIN(m2f_tilde_class, t_m2f_tilde, x_msi); class_addmethod(m2f_tilde_class, (t_method)m2f_tilde_dsp, gensym("dsp"), 0); m2f_tilde_maketable(); // class_sethelpsymbol(m2f_tilde_class, gensym("iemhelp/help-m2f~")); } iemlib-1.20.1/iemlib2/src/post_netreceive.c0000644002537200234200000001565710536414324020776 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.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; ix_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; ix_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; ix_snd_able[i]) { x->x_snd_able[i] = 0; } } } static void post_netreceive_fetch_all_parameters(t_post_netreceive *x, t_floatarg 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_floatarg fmin, t_floatarg 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; ix_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")); } iemlib-1.20.1/iemlib2/src/iemlib2.dsw0000644002537200234200000000106511203416540017454 0ustar zmoelnigiemusersMicrosoft Developer Studio Workspace File, Format Version 6.00 # WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELSCHT WERDEN! ############################################################################### Project: "iemlib2"=.\iemlib2.dsp - Package Owner=<4> Package=<5> {{{ }}} Package=<4> {{{ }}} ############################################################################### Global: Package=<5> {{{ }}} Package=<3> {{{ }}} ############################################################################### iemlib-1.20.1/iemlib2/src/receive2list.c0000644002537200234200000001424410536414324020167 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include #include #include /* -------------------------- receive2list ------------------------------ */ /* -- converts received message to a list with a prepended float index -- */ struct _receive2list_proxy; static t_class *receive2list_class; static t_class *receive2list_proxy_class; typedef struct _receive2list { t_object x_obj; int x_max; struct _receive2list_proxy **x_proxy_receiver; int x_size; t_atom *x_at; } t_receive2list; typedef struct _receive2list_proxy { t_object p_obj; t_receive2list *p_owner; t_symbol *p_receive_label_sym; int p_index; } t_receive2list_proxy; static void receive2list_atcopy(t_atom *src, t_atom *dst, int n) { while(n--) *dst++ = *src++; } static void receive2list_clear(t_receive2list *x, t_symbol *s, int ac, t_atom *av) { t_receive2list_proxy *p; int i, max=x->x_max; for(i=0; ix_proxy_receiver[i]; if(p->p_receive_label_sym) pd_unbind(&p->p_obj.ob_pd, p->p_receive_label_sym); p->p_receive_label_sym = 0; } } static void receive2list_add(t_receive2list *x, t_symbol *s, int ac, t_atom *av) { t_receive2list_proxy *p; int i; if((ac > 1)&&(IS_A_FLOAT(av,0))) { i = atom_getint(av); if((i >= 0)&&(i < x->x_max)) { p = x->x_proxy_receiver[i]; if(IS_A_SYMBOL(av,1)) { if(p->p_receive_label_sym) pd_unbind(&p->p_obj.ob_pd, p->p_receive_label_sym); p->p_receive_label_sym = atom_getsymbol(av+1); pd_bind(&p->p_obj.ob_pd, p->p_receive_label_sym); } else if(IS_A_FLOAT(av,1)) { char str[32]; if(p->p_receive_label_sym) pd_unbind(&p->p_obj.ob_pd, p->p_receive_label_sym); sprintf(str, "%g", atom_getfloat(av+1)); p->p_receive_label_sym = gensym(str); pd_bind(&p->p_obj.ob_pd, p->p_receive_label_sym); } } } } /* begin of proxy methods (anything inlets) */ static void receive2list_proxy_bang(t_receive2list_proxy *p) { t_receive2list *x = p->p_owner; SETFLOAT(x->x_at, p->p_index); outlet_list(x->x_obj.ob_outlet, &s_list, 1, x->x_at); } static void receive2list_proxy_float(t_receive2list_proxy *p, t_floatarg f) { t_receive2list *x = p->p_owner; SETFLOAT(x->x_at, p->p_index); SETFLOAT(x->x_at+1, f); outlet_list(x->x_obj.ob_outlet, &s_list, 2, x->x_at); } static void receive2list_proxy_symbol(t_receive2list_proxy *p, t_symbol *s) { t_receive2list *x = p->p_owner; SETFLOAT(x->x_at, p->p_index); SETSYMBOL(x->x_at+1, s); outlet_list(x->x_obj.ob_outlet, &s_list, 2, x->x_at); } static void receive2list_proxy_pointer(t_receive2list_proxy *p, t_gpointer *gp) { t_receive2list *x = p->p_owner; SETFLOAT(x->x_at, p->p_index); SETPOINTER(x->x_at+1, gp); outlet_list(x->x_obj.ob_outlet, &s_list, 2, x->x_at); } static void receive2list_proxy_list(t_receive2list_proxy *p, t_symbol *s, int argc, t_atom *argv) { t_receive2list *x = p->p_owner; if((argc+1) >= x->x_size) { x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (argc+11)*sizeof(t_atom)); x->x_size = argc + 11; } SETFLOAT(x->x_at, p->p_index); receive2list_atcopy(argv, x->x_at+1, argc); outlet_list(x->x_obj.ob_outlet, &s_list, argc+1, x->x_at); } static void receive2list_proxy_anything(t_receive2list_proxy *p, t_symbol *s, int argc, t_atom *argv) { t_receive2list *x = p->p_owner; if((argc+2) >= x->x_size) { x->x_at = (t_atom *)resizebytes(x->x_at, x->x_size*sizeof(t_atom), (argc+12)*sizeof(t_atom)); x->x_size = argc + 12; } SETFLOAT(x->x_at, p->p_index); SETSYMBOL(x->x_at+1, s); receive2list_atcopy(argv, x->x_at+2, argc); outlet_list(x->x_obj.ob_outlet, &s_list, argc+2, x->x_at); } /* end of proxy methods (anything inlets) */ static void receive2list_free(t_receive2list *x) { t_receive2list_proxy *p; int i, max = x->x_max; for(i=0; ix_proxy_receiver[i]; if(p->p_receive_label_sym) pd_unbind(&p->p_obj.ob_pd, p->p_receive_label_sym); if(x->x_proxy_receiver[i]) pd_free((t_pd *)x->x_proxy_receiver[i]); } if(x->x_proxy_receiver) freebytes(x->x_proxy_receiver, x->x_max * sizeof(t_receive2list_proxy *)); if(x->x_at) freebytes(x->x_at, x->x_size * sizeof(t_atom)); } static void *receive2list_new(t_floatarg fmax) { t_receive2list *x = (t_receive2list *)pd_new(receive2list_class); t_receive2list_proxy *p; int i, max = (int)fmax; if(max <= 0) max = 80; x->x_max = max; x->x_proxy_receiver = (t_receive2list_proxy **)getbytes(x->x_max * sizeof(t_receive2list_proxy *)); x->x_size = 12; x->x_at = (t_atom *)getbytes(x->x_size * sizeof(t_atom)); for(i=0; ix_proxy_receiver[i] = (t_receive2list_proxy *)pd_new(receive2list_proxy_class); p = x->x_proxy_receiver[i]; p->p_owner = x; p->p_receive_label_sym = 0; p->p_index = i; } outlet_new(&x->x_obj, &s_list); return (x); } void receive2list_setup(void) { receive2list_class = class_new(gensym("receive2list"), (t_newmethod)receive2list_new, (t_method)receive2list_free, sizeof(t_receive2list), 0, A_DEFFLOAT, 0); class_addmethod(receive2list_class, (t_method)receive2list_clear, gensym("clear"), A_GIMME, 0); class_addmethod(receive2list_class, (t_method)receive2list_add, gensym("add"), A_GIMME, 0); // class_sethelpsymbol(receive2list_class, gensym("iemhelp/help-receive2list")); receive2list_proxy_class = class_new(gensym("_receive2list_proxy"), 0, 0, sizeof(t_receive2list_proxy), CLASS_PD | CLASS_NOINLET, 0); class_addbang(receive2list_proxy_class, receive2list_proxy_bang); class_addfloat(receive2list_proxy_class, receive2list_proxy_float); class_addsymbol(receive2list_proxy_class, receive2list_proxy_symbol); class_addpointer(receive2list_proxy_class, receive2list_proxy_pointer); class_addlist(receive2list_proxy_class, receive2list_proxy_list); class_addanything(receive2list_proxy_class, receive2list_proxy_anything); } iemlib-1.20.1/iemlib2/src/list2send.c0000644002537200234200000001437310536414324017501 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include #include #include /* ------------------------- list2send ----------------------------- */ /* -- via an array of send labels, an incomming list with leading -- */ /* -- float index will be sent to a receive object with the label -- */ /* ------------ name of the index-th entry of the array ------------ */ 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 > 1) && (IS_A_FLOAT(av, 0))) { 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; ix_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_floatarg 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; ix_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")); } iemlib-1.20.1/iemlib2/src/VC9/0000755002537200234200000000000012243414232016012 5ustar zmoelnigiemusersiemlib-1.20.1/iemlib2/src/VC9/iem_atan2.sln0000644002537200234200000000156311605377125020406 0ustar zmoelnigiemusers Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iem_atan2", "iem_atan2.vcproj", "{6A44952F-0D55-44EE-9032-928368583BEC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {6A44952F-0D55-44EE-9032-928368583BEC}.Debug|Win32.ActiveCfg = Debug|Win32 {6A44952F-0D55-44EE-9032-928368583BEC}.Debug|Win32.Build.0 = Debug|Win32 {6A44952F-0D55-44EE-9032-928368583BEC}.Release|Win32.ActiveCfg = Release|Win32 {6A44952F-0D55-44EE-9032-928368583BEC}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal iemlib-1.20.1/iemlib2/src/VC9/makefile_vc9proj0000644002537200234200000000163311605377125021203 0ustar zmoelnigiemusersTARGET = iem_atan2 all: ..\$(TARGET).dll VIS_CPP_PATH = "C:\Program Files\Microsoft Visual Studio 9.0\VC" VIS_SDK_PATH = "C:\Program Files\Microsoft SDKs\Windows\v6.0A" PD_INST_PATH = "C:\Program Files\pd-0.43.0" 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 /DHAVE_G_CANVAS_H /Ox -D_CRT_SECURE_NO_WARNINGS PD_WIN_L_FLAGS = /nologo PD_WIN_LIB = /NODEFAULTLIB:libcmt /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel32 \ $(VIS_CPP_PATH)\lib\libcmt.lib \ $(VIS_CPP_PATH)\lib\oldnames.lib \ $(VIS_SDK_PATH)\lib\kernel32.lib \ $(PD_INST_PATH)\bin\pd.lib SRC = $(TARGET).c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\$(TARGET).dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \ /out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iemlib2/src/VC9/iem_atan2.vcproj0000644002537200234200000000357511605377125021122 0ustar zmoelnigiemusers iemlib-1.20.1/iemlib2/src/makefile_win0000644002537200234200000000316311524473676020013 0ustar zmoelnigiemusersTARGET = iemlib2 all: ..\$(TARGET).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 /DHAVE_G_CANVAS_H /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 \ aspeedlim.c \ bpe.c \ dollarg.c \ exp_inc.c \ fade~.c \ float24.c \ iem_alisttosym.c \ iem_anything.c \ iem_append.c \ iem_blocksize~.c \ iem_i_route.c \ iem_pbank_csv.c \ iem_prepend.c \ iem_receive.c \ iem_route.c \ iem_samplerate~.c \ iem_sel_any.c \ iem_send.c \ iem_symtoalist.c \ init.c \ LFO_noise~.c \ list2send.c \ m2f~.c \ mergefilename.c \ modulo_counter.c \ parentdollarzero.c \ post_netreceive.c \ pre_inlet.c \ prepend_ascii.c \ protect_against_open.c \ receive2list.c \ round_zero.c \ speedlim.c \ splitfilename.c \ stripfilename.c \ toggle_mess.c \ transf_fader.c \ unsymbol.c \ wrap.c \ $(TARGET).c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\$(TARGET).dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \ /out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iemlib2/src/iem_blocksize~.c0000644002537200234200000000316310536414324020602 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ------------------- iem_blocksize~ -------------------- */ /* -- outputs the current signal-blocksize of a window --- */ static t_class *iem_blocksize_tilde_class; typedef struct _iem_blocksize_tilde { t_object x_obj; t_float x_blocksize; t_clock *x_clock; t_float x_f; } t_iem_blocksize_tilde; static void iem_blocksize_tilde_out(t_iem_blocksize_tilde *x) { outlet_float(x->x_obj.ob_outlet, x->x_blocksize); } static void iem_blocksize_tilde_free(t_iem_blocksize_tilde *x) { clock_free(x->x_clock); } static void *iem_blocksize_tilde_new(t_symbol *s) { t_iem_blocksize_tilde *x = (t_iem_blocksize_tilde *)pd_new(iem_blocksize_tilde_class); x->x_clock = clock_new(x, (t_method)iem_blocksize_tilde_out); outlet_new(&x->x_obj, &s_float); x->x_blocksize = 64.0f; x->x_f = 0.0f; return (x); } static void iem_blocksize_tilde_dsp(t_iem_blocksize_tilde *x, t_signal **sp) { x->x_blocksize = (t_float)(sp[0]->s_n); clock_delay(x->x_clock, 0.0f); } void iem_blocksize_tilde_setup(void) { iem_blocksize_tilde_class = class_new(gensym("iem_blocksize~"), (t_newmethod)iem_blocksize_tilde_new, (t_method)iem_blocksize_tilde_free, sizeof(t_iem_blocksize_tilde), 0, 0); CLASS_MAINSIGNALIN(iem_blocksize_tilde_class, t_iem_blocksize_tilde, x_f); class_addmethod(iem_blocksize_tilde_class, (t_method)iem_blocksize_tilde_dsp, gensym("dsp"), 0); } iemlib-1.20.1/iemlib2/src/prepend_ascii.c0000644002537200234200000000726210536414324020376 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* ------------------------- prepend_ascii ---------------------------- */ /* -- this object prepends to any incoming message a selector symbol -- */ /* --- containing the n-th character of the ASCII-table. "n" is the --- */ /* ----------------- first initial argument (integer) ----------------- */ 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_floatarg 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; ix_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")); } iemlib-1.20.1/iemlib2/src/mergefilename.c0000644002537200234200000001323210536414324020363 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include #include /* -------------------------- mergefilename ------------------------------ */ /* ------------ concatenates a list of symbols to one symbol ------------- */ /* ----- between the linked symbols, there is a variable character ------- */ static t_class *mergefilename_class; typedef struct _mergefilename { t_object x_obj; char x_sep[2]; char x_mem[MAXPDSTRING]; } 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)) { char *name=av->a_w.w_symbol->s_name; if(strlen(name) == 1) x->x_sep[0] = name[0]; else if(!strcmp(name, "backslash")) x->x_sep[0] = '\\'; else if(!strcmp(name, "slash")) x->x_sep[0] = '/'; else if(!strcmp(name, "blank")) x->x_sep[0] = ' '; else if(!strcmp(name, "space")) x->x_sep[0] = ' '; else if(!strcmp(name, "dollar")) x->x_sep[0] = '$'; else if(!strcmp(name, "comma")) x->x_sep[0] = ','; else if(!strcmp(name, "semi")) x->x_sep[0] = ';'; else if(!strcmp(name, "leftbrace")) x->x_sep[0] = '{'; else if(!strcmp(name, "rightbrace")) x->x_sep[0] = '}'; else x->x_sep[0] = 0; } else if(IS_A_FLOAT(av, 0)) { t_int i=atom_getintarg(0, ac, av); x->x_sep[0] = (char)i + '0'; } } else x->x_sep[0] = 0; } static void mergefilename_float(t_mergefilename *x, t_floatarg f) { char flt_buf[30]; flt_buf[0] = 0; sprintf(flt_buf, "%g", f); outlet_symbol(x->x_obj.ob_outlet, gensym(flt_buf)); } 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 flt_buf[30]; t_int i, length, accu_size=0; x->x_mem[0] = 0; if(ac > 0) { for(i=0; i 0) { strcat(x->x_mem, x->x_sep); } if(IS_A_SYMBOL(av, 0)) { length = strlen(av->a_w.w_symbol->s_name); if((accu_size + length) > (MAXPDSTRING - 2)) { strncat(x->x_mem, av->a_w.w_symbol->s_name, MAXPDSTRING - 2 - accu_size); accu_size = MAXPDSTRING - 2; i = ac + 1; } else { strcat(x->x_mem, av->a_w.w_symbol->s_name); accu_size += length; } } else if(IS_A_FLOAT(av, 0)) { sprintf(flt_buf, "%g", av->a_w.w_float); length = strlen(flt_buf); if((accu_size + length) > (MAXPDSTRING - 2)) { strncat(x->x_mem, flt_buf, MAXPDSTRING - 2 - accu_size); accu_size = MAXPDSTRING - 2; i = ac + 1; } else { strcat(x->x_mem, flt_buf); accu_size += length; } } av++; } } outlet_symbol(x->x_obj.ob_outlet, gensym(x->x_mem)); } static void mergefilename_anything(t_mergefilename *x, t_symbol *s, int ac, t_atom *av) { char flt_buf[30]; t_int i, length, accu_size=0; x->x_mem[0] = 0; length = strlen(s->s_name); if(length > (MAXPDSTRING - 2)) { strncat(x->x_mem, s->s_name, MAXPDSTRING - 2); accu_size = MAXPDSTRING - 2; i = ac + 1; } else { strcat(x->x_mem, s->s_name); accu_size = length; } if(ac > 0) { for(i=0; ix_mem, x->x_sep); if(IS_A_SYMBOL(av, 0)) { length = strlen(av->a_w.w_symbol->s_name); if((accu_size + length) > (MAXPDSTRING - 2)) { strncat(x->x_mem, av->a_w.w_symbol->s_name, MAXPDSTRING - 2 - accu_size); accu_size = MAXPDSTRING - 2; i = ac + 1; } else { strcat(x->x_mem, av->a_w.w_symbol->s_name); accu_size += length; } } else if(IS_A_FLOAT(av, 0)) { sprintf(flt_buf, "%g", av->a_w.w_float); length = strlen(flt_buf); if((accu_size + length) > (MAXPDSTRING - 2)) { strncat(x->x_mem, flt_buf, MAXPDSTRING - 2 - accu_size); accu_size = MAXPDSTRING - 2; i = ac + 1; } else { strcat(x->x_mem, flt_buf); accu_size += length; } } av++; } } outlet_symbol(x->x_obj.ob_outlet, gensym(x->x_mem)); } static void mergefilename_free(t_mergefilename *x) { } 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); x->x_mem[0] = 0; 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")); } iemlib-1.20.1/iemlib2/src/VC7/0000755002537200234200000000000012243414232016010 5ustar zmoelnigiemusersiemlib-1.20.1/iemlib2/src/VC7/makefile_vc7proj0000644002537200234200000000163311605331417021171 0ustar zmoelnigiemusersTARGET = iem_atan2 all: ..\$(TARGET).dll VIS_CPP_PATH = "C:\Programme\Microsoft Visual Studio .NET 2003\Vc7" VIS_SDK_PATH = "C:\Programme\Microsoft Visual Studio .NET 2003\Vc7\PlatformSDK" PD_INST_PATH = "C:\Programme\pd-0.42-5" 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 -D_CRT_SECURE_NO_WARNINGS PD_WIN_L_FLAGS = /nologo PD_WIN_LIB = /NODEFAULTLIB:libcmt /NODEFAULTLIB:oldnames /NODEFAULTLIB:kernel32 \ $(VIS_CPP_PATH)\lib\libcmt.lib \ $(VIS_CPP_PATH)\lib\oldnames.lib \ $(VIS_SDK_PATH)\lib\kernel32.lib \ $(PD_INST_PATH)\bin\pd.lib SRC = $(TARGET).c OBJ = $(SRC:.c=.obj) .c.obj: cl $(PD_WIN_C_FLAGS) $(PD_WIN_INCLUDE_PATH) /c $*.c ..\$(TARGET).dll: $(OBJ) link $(PD_WIN_L_FLAGS) /dll /export:$(TARGET)_setup \ /out:..\$(TARGET).dll $(OBJ) $(PD_WIN_LIB) clean: del *.obj iemlib-1.20.1/iemlib2/src/VC7/iem_atan2.vcproj0000644002537200234200000000243111605331417021100 0ustar zmoelnigiemusers iemlib-1.20.1/iemlib2/src/bpe.c0000644002537200234200000000536211153504647016342 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* --------------------------- bpe -------------------------------- */ /* -- break-point-envelope, convert a list of value-time-doubles -- */ /* ------- into a time-scheduled stream of value-time-pairs ------- */ 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; t_float val, ftime; 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++); ftime = atom_getfloat(vec); outlet_float(x->x_out_time, ftime); outlet_float(x->x_out_val, val); x->x_curindex += 2; clock_delay(x->x_clock, ftime); } } static void bpe_bang(t_bpe *x) { t_atom *vec = x->x_beg; t_float val, ftime; if(x->x_curnum) { x->x_curindex = 2; val = atom_getfloat(vec++); ftime = atom_getfloat(vec); outlet_float(x->x_out_time, ftime); outlet_float(x->x_out_val, val); clock_delay(x->x_clock, ftime); } } 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; ix_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")); } iemlib-1.20.1/iemlib2/src/makefile_darwin0000644002537200234200000000270011524473676020476 0ustar zmoelnigiemuserscurrent: all .SUFFIXES: .pd_darwin PD_INSTALL_PATH = "/Applications/Pd.app/Contents/Resources" INCLUDE = -I. -I$(PD_INSTALL_PATH)/src LIB = -ldl -lm -lpthread CFLAGS = -DPD -DUNIX -DHAVE_G_CANVAS_H -g -Wall -W -Werror -Wno-unused \ -Wno-parentheses -Wno-switch -O2 -fno-strict-aliasing \ $(INCLUDE) $(UCFLAGS) $(AFLAGS) \ MACOSXLINKFLAGS = -bundle -bundle_loader $(PD_INSTALL_PATH)/bin/pd SYSTEM = $(shell uname -m) # the sources SRC = add2_comma.c \ aspeedlim.c \ bpe.c \ dollarg.c \ exp_inc.c \ fade~.c \ float24.c \ iem_alisttosym.c \ iem_anything.c \ iem_append.c \ iem_blocksize~.c \ iem_i_route.c \ iem_pbank_csv.c \ iem_prepend.c \ iem_receive.c \ iem_route.c \ iem_samplerate~.c \ iem_sel_any.c \ iem_send.c \ iem_symtoalist.c \ init.c \ LFO_noise~.c \ list2send.c \ m2f~.c \ mergefilename.c \ modulo_counter.c \ parentdollarzero.c \ post_netreceive.c \ pre_inlet.c \ prepend_ascii.c \ protect_against_open.c \ receive2list.c \ round_zero.c \ speedlim.c \ splitfilename.c \ stripfilename.c \ toggle_mess.c \ transf_fader.c \ unsymbol.c \ wrap.c \ iemlib2.c TARGET = iemlib2.pd_darwin OBJ = $(SRC:.c=.o) # # ------------------ targets ------------------------------------ # clean: rm ../$(TARGET) rm *.o all: $(OBJ) @echo :: $(OBJ) $(CC) $(MACOSXLINKFLAGS) -o $(TARGET) *.o $(LIB) strip -S -x $(TARGET) mv $(TARGET) .. $(OBJ) : %.o : %.c touch $*.c $(CC) $(CFLAGS) $(INCLUDE) -c -o $*.o $*.c iemlib-1.20.1/iemlib2/src/speedlim.c0000644002537200234200000000474411120267606017374 0ustar zmoelnigiemusers/* 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 - 2008 */ #include "m_pd.h" #include "iemlib.h" /* ----------------------- speedlim -------------------------- */ /* -- reduces the flow of float-messages to one message per -- */ /* ----------------- initial argument time in ms ------------- */ 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; t_float x_curval; } 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_floatarg 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_floatarg 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_floatarg 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")); } iemlib-1.20.1/iemlib2/src/iemlib2.vcproj0000644002537200234200000000356511602667471020207 0ustar zmoelnigiemusers iemlib-1.20.1/iemlib2/src/iem_receive.c0000644002537200234200000001156110536414324020042 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" #include #include #include /* ------------------------ iem_receive ---------------------------- */ /* -------- like millers r, but with setable receive label --------- */ struct _iem_receive_proxy; static t_class *iem_receive_class; static t_class *iem_receive_proxy_class; typedef struct _iem_receive { t_object x_obj; struct _iem_receive_proxy *x_proxy_receiver; t_symbol *x_receive_label_sym; } t_iem_receive; typedef struct _iem_receive_proxy { t_object p_obj; t_iem_receive *p_owner; } t_iem_receive_proxy; static void iem_receive_clear(t_iem_receive *x, t_symbol *s, int ac, t_atom *av) { t_iem_receive_proxy *p=x->x_proxy_receiver; if(x->x_receive_label_sym) pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym); x->x_receive_label_sym = 0; } static void iem_receive_set(t_iem_receive *x, t_symbol *s, int ac, t_atom *av) { t_iem_receive_proxy *p=x->x_proxy_receiver; if(ac > 0) { if(IS_A_SYMBOL(av,0)) { if(x->x_receive_label_sym) pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym); x->x_receive_label_sym = atom_getsymbol(av); pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym); } else if(IS_A_FLOAT(av,0)) { char str[32]; if(x->x_receive_label_sym) pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym); sprintf(str, "%g", atom_getfloat(av)); x->x_receive_label_sym = gensym(str); pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym); } } } /* begin of proxy methods (anything inlets) */ static void iem_receive_proxy_bang(t_iem_receive_proxy *p) { t_iem_receive *x = p->p_owner; outlet_bang(x->x_obj.ob_outlet); } static void iem_receive_proxy_float(t_iem_receive_proxy *p, t_floatarg f) { t_iem_receive *x = p->p_owner; outlet_float(x->x_obj.ob_outlet, f); } static void iem_receive_proxy_symbol(t_iem_receive_proxy *p, t_symbol *s) { t_iem_receive *x = p->p_owner; outlet_symbol(x->x_obj.ob_outlet, s); } static void iem_receive_proxy_pointer(t_iem_receive_proxy *p, t_gpointer *gp) { t_iem_receive *x = p->p_owner; outlet_pointer(x->x_obj.ob_outlet, gp); } static void iem_receive_proxy_list(t_iem_receive_proxy *p, t_symbol *s, int argc, t_atom *argv) { t_iem_receive *x = p->p_owner; outlet_list(x->x_obj.ob_outlet, &s_list, argc, argv); } static void iem_receive_proxy_anything(t_iem_receive_proxy *p, t_symbol *s, int argc, t_atom *argv) { t_iem_receive *x = p->p_owner; outlet_anything(x->x_obj.ob_outlet, s, argc, argv); } /* end of proxy methods (anything inlets) */ static void iem_receive_free(t_iem_receive *x) { t_iem_receive_proxy *p=x->x_proxy_receiver; if(x->x_receive_label_sym) pd_unbind(&p->p_obj.ob_pd, x->x_receive_label_sym); if(x->x_proxy_receiver) pd_free((t_pd *)x->x_proxy_receiver); } static void *iem_receive_new(t_symbol *s, int ac, t_atom *av) { t_iem_receive *x = (t_iem_receive *)pd_new(iem_receive_class); t_iem_receive_proxy *p = (t_iem_receive_proxy *)pd_new(iem_receive_proxy_class); x->x_proxy_receiver = p; p->p_owner = x; if(ac > 0) { if(IS_A_SYMBOL(av,0)) { x->x_receive_label_sym = atom_getsymbol(av); pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym); } else if(IS_A_FLOAT(av,0)) { char str[100]; sprintf(str, "%g", atom_getfloat(av)); x->x_receive_label_sym = gensym(str); pd_bind(&p->p_obj.ob_pd, x->x_receive_label_sym); } else x->x_receive_label_sym = 0; } else x->x_receive_label_sym = 0; outlet_new(&x->x_obj, &s_list); return (x); } void iem_receive_setup(void) { iem_receive_class = class_new(gensym("iem_receive"), (t_newmethod)iem_receive_new, (t_method)iem_receive_free, sizeof(t_iem_receive), 0, A_GIMME, 0); class_addcreator((t_newmethod)iem_receive_new, gensym("iem_r"), A_GIMME, 0); class_addmethod(iem_receive_class, (t_method)iem_receive_clear, gensym("clear"), A_GIMME, 0); class_addmethod(iem_receive_class, (t_method)iem_receive_set, gensym("set"), A_GIMME, 0); // class_sethelpsymbol(iem_receive_class, gensym("iemhelp/help-iem_receive")); iem_receive_proxy_class = class_new(gensym("_iem_receive_proxy"), 0, 0, sizeof(t_iem_receive_proxy), CLASS_PD | CLASS_NOINLET, 0); class_addbang(iem_receive_proxy_class, iem_receive_proxy_bang); class_addfloat(iem_receive_proxy_class, iem_receive_proxy_float); class_addsymbol(iem_receive_proxy_class, iem_receive_proxy_symbol); class_addpointer(iem_receive_proxy_class, iem_receive_proxy_pointer); class_addlist(iem_receive_proxy_class, iem_receive_proxy_list); class_addanything(iem_receive_proxy_class, iem_receive_proxy_anything); } iemlib-1.20.1/iemlib2/src/iemlib2.sln0000644002537200234200000000155711602667471017477 0ustar zmoelnigiemusers Microsoft Visual Studio Solution File, Format Version 10.00 # Visual Studio 2008 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iemlib2", "iemlib2.vcproj", "{6A44952F-0D55-44EE-9032-928368583BEC}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Win32 = Debug|Win32 Release|Win32 = Release|Win32 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {6A44952F-0D55-44EE-9032-928368583BEC}.Debug|Win32.ActiveCfg = Debug|Win32 {6A44952F-0D55-44EE-9032-928368583BEC}.Debug|Win32.Build.0 = Debug|Win32 {6A44952F-0D55-44EE-9032-928368583BEC}.Release|Win32.ActiveCfg = Release|Win32 {6A44952F-0D55-44EE-9032-928368583BEC}.Release|Win32.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection EndGlobal iemlib-1.20.1/iemlib2/src/iem_samplerate~.c0000644002537200234200000000320710536414324020751 0ustar zmoelnigiemusers/* 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 - 2006 */ #include "m_pd.h" #include "iemlib.h" /* --------------- iem_samplerate~ ----------------- */ /* -- outputs the current samplerate of a window --- */ static t_class *iem_samplerate_tilde_class; typedef struct _iem_samplerate_tilde { t_object x_obj; t_float x_samplerate; t_clock *x_clock; t_float x_f; } t_iem_samplerate_tilde; static void iem_samplerate_tilde_out(t_iem_samplerate_tilde *x) { outlet_float(x->x_obj.ob_outlet, x->x_samplerate); } static void iem_samplerate_tilde_free(t_iem_samplerate_tilde *x) { clock_free(x->x_clock); } static void *iem_samplerate_tilde_new(t_symbol *s) { t_iem_samplerate_tilde *x = (t_iem_samplerate_tilde *)pd_new(iem_samplerate_tilde_class); x->x_clock = clock_new(x, (t_method)iem_samplerate_tilde_out); outlet_new(&x->x_obj, &s_float); x->x_samplerate = 44100.0f; x->x_f = 0.0f; return (x); } static void iem_samplerate_tilde_dsp(t_iem_samplerate_tilde *x, t_signal **sp) { x->x_samplerate = (t_float)(sp[0]->s_sr); clock_delay(x->x_clock, 0.0f); } void iem_samplerate_tilde_setup(void) { iem_samplerate_tilde_class = class_new(gensym("iem_samplerate~"), (t_newmethod)iem_samplerate_tilde_new, (t_method)iem_samplerate_tilde_free, sizeof(t_iem_samplerate_tilde), 0, 0); CLASS_MAINSIGNALIN(iem_samplerate_tilde_class, t_iem_samplerate_tilde, x_f); class_addmethod(iem_samplerate_tilde_class, (t_method)iem_samplerate_tilde_dsp, gensym("dsp"), 0); } iemlib-1.20.1/iemlib2/splitfilename-help.pd0000644002537200234200000000464311055052215020737 0ustar zmoelnigiemusers#N canvas 235 44 685 574 10; #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: 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 text 115 458 IEM KUG; #X text 99 446 musil; #X text 129 446 @; #X text 135 446 iem.at; #X text 50 435 (c) Thomas Musil 2000 - 2005; #X text 98 468 Graz \, Austria; #X floatatom 273 196 5 0 255 0 - - -; #N canvas 191 208 354 235 ASCII_separator 0; #X obj 138 55 inlet; #X obj 138 143 outlet; #X obj 138 76 clip 0 255; #X obj 138 98 - 32; #X msg 138 121 separator \$1; #X obj 37 121 makefilename %c; #X obj 37 143 outlet; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 2 0 5 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X connect 5 0 6 0; #X restore 273 216 pd ASCII_separator; #X symbolatom 273 240 0 0 0 0 - - -; #X connect 3 0 9 0; #X connect 4 0 9 0; #X connect 5 0 9 0; #X connect 6 0 26 0; #X connect 8 0 9 0; #X connect 9 0 26 0; #X connect 9 0 27 0; #X connect 10 0 9 0; #X connect 11 0 9 0; #X connect 12 0 9 0; #X connect 14 0 9 0; #X connect 15 0 26 0; #X connect 17 0 9 0; #X connect 18 0 9 0; #X connect 19 0 25 0; #X connect 20 0 25 0; #X connect 21 0 25 0; #X connect 22 0 25 0; #X connect 23 0 25 0; #X connect 24 0 25 0; #X connect 25 0 9 0; #X connect 26 0 7 0; #X connect 26 0 27 0; #X connect 27 0 1 0; #X connect 27 1 2 0; #X connect 34 0 35 0; #X connect 35 0 36 0; #X connect 35 1 9 0; iemlib-1.20.1/iemlib2/transf_fader-help.pd0000644002537200234200000000210511055052215020530 0ustar zmoelnigiemusers#N canvas 69 66 633 395 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 0 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 175 328 IEM KUG; #X text 159 316 musil; #X text 189 316 @; #X text 195 316 iem.at; #X text 110 305 (c) Thomas Musil 2000 - 2005; #X text 158 338 Graz \, Austria; #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; iemlib-1.20.1/iemlib2/pre_inlet-help.pd0000644002537200234200000000247011055052215020060 0ustar zmoelnigiemusers#N canvas 231 172 610 466 10; #X msg 79 243 jkl 555 uuu; #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 104 48 you can use it for externals with more than one message-inlets ; #X text 117 182 2.arg: 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: 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 text 115 408 IEM KUG; #X text 99 396 musil; #X text 129 396 @; #X text 135 396 iem.at; #X text 50 385 (c) Thomas Musil 2000 - 2005; #X text 98 418 Graz \, Austria; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 4 0 5 0; #X connect 6 0 9 0; #X connect 7 0 4 0; #X connect 8 0 6 0; #X connect 15 0 16 0; #X connect 16 0 17 0; iemlib-1.20.1/iemlib2/wrap-help.pd0000644002537200234200000000101711055052215017044 0ustar zmoelnigiemusers#N canvas 69 66 338 328 10; #X floatatom 40 70 9 0 0 0 - - -; #X floatatom 40 156 9 0 0 0 - - -; #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 text 195 268 IEM KUG; #X text 179 256 musil; #X text 209 256 @; #X text 215 256 iem.at; #X text 130 245 (c) Thomas Musil 2000 - 2005; #X text 178 278 Graz \, Austria; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 3 0 6 0; #X connect 6 0 1 0; iemlib-1.20.1/iemlib2/iem_route-help.pd0000644002537200234200000000233211055052215020064 0ustar zmoelnigiemusers#N canvas 318 30 519 372 10; #X obj 22 99 route red black; #X msg 22 65 red; #X msg 57 65 black; #X msg 22 125 3; #X msg 72 125 4; #X floatatom 22 159 4 0 0 0 - - -; #X obj 153 101 route red black; #X msg 153 67 red; #X msg 188 67 black; #X floatatom 153 161 4 0 0 0 - - -; #X obj 153 130 f 3; #X obj 203 129 f 4; #X text 26 197 OK; #X text 152 196 failed !; #X msg 295 67 red; #X msg 330 67 black; #X floatatom 295 161 4 0 0 0 - - -; #X obj 295 130 f 3; #X obj 359 128 f 4; #X obj 295 101 iem_route red black; #X text 294 195 that's the difference; #X text 18 6 iem_route quite similar to route \, except....; #X text 132 261 IEM KUG; #X text 116 249 musil; #X text 146 249 @; #X text 152 249 iem.at; #X text 67 238 (c) Thomas Musil 2000 - 2005; #X text 115 271 Graz \, Austria; #X text 71 25 obsolete since pd 0.38; #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; iemlib-1.20.1/iemlib2/post_netreceive-help.pd0000644002537200234200000000700411055052215021273 0ustar zmoelnigiemusers#N canvas 153 56 750 556 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 0 28 -225280 -1109 -260818 0 256; #X obj 135 457 nbx 5 28 -1e+037 1e+037 0 0 bbbb bbbb bbbb -88 13 0 28 -225280 -1109 -260818 0 256; #X obj 135 492 nbx 5 28 -1e+037 1e+037 0 0 ccccc ccccc ccccc -110 13 0 28 -225280 -1109 -260818 0 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 0 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 text 546 491 IEM KUG; #X text 530 479 musil; #X text 560 479 @; #X text 566 479 iem.at; #X text 481 468 (c) Thomas Musil 2000 - 2005; #X text 529 501 Graz \, Austria; #X text 145 5 obsolete \, replaced by list2receive; #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; iemlib-1.20.1/iemlib2/$n-help.pd0000644002537200234200000000517111055052215016401 0ustar zmoelnigiemusers#N canvas 20 0 962 405 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 11 6 dollarg; #X text 93 7 receives the parent initial arguments \, 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 (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 text 384 254 IEM KUG; #X text 368 242 musil; #X text 398 242 @; #X text 404 242 iem.at; #X text 367 264 Graz \, Austria; #X text 319 231 (c) Thomas Musil 2000 - 2006; #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 19 0; #X connect 7 0 8 0; #X connect 11 0 6 0; #X connect 11 0 20 0; #X connect 11 1 2 0; #X connect 20 0 19 0; #X connect 20 1 5 0; #X connect 20 2 4 0; #X connect 21 0 0 0; #X connect 22 0 0 0; #X connect 23 0 0 0; #X connect 24 0 0 0; #X connect 30 0 0 0; #X connect 31 0 0 0; iemlib-1.20.1/iemlib2/pp-help.pd0000644002537200234200000000421411055052215016514 0ustar zmoelnigiemusers#N canvas 231 172 617 507 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 175 319 head of output-message; #X text 180 308 initials-arguments:; #X text 5 281 tail of output-message; #X text 183 287 head of output-message; #X text 181 277 <- cold inlet; #X obj 117 300 pp set; #X text 115 448 IEM KUG; #X text 99 436 musil; #X text 129 436 @; #X text 135 436 iem.at; #X text 50 425 (c) Thomas Musil 2000 - 2005; #X text 98 458 Graz \, Austria; #X text 151 8 merge the head-message in front of the tail-message; #X text 13 7 pp = iem_prepend; #X text 42 273 hot inlet ->; #X connect 1 0 32 0; #X connect 2 0 32 1; #X connect 3 0 32 0; #X connect 4 0 32 0; #X connect 5 0 32 1; #X connect 6 0 32 1; #X connect 7 0 32 0; #X connect 8 0 32 1; #X connect 9 0 32 0; #X connect 10 0 32 1; #X connect 11 0 32 0; #X connect 12 0 32 1; #X connect 13 0 32 0; #X connect 14 0 32 1; #X connect 15 0 32 1; #X connect 16 0 32 0; #X connect 17 0 32 0; #X connect 18 0 32 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 0 0; #X connect 32 0 19 0; iemlib-1.20.1/iemlib2/iem_alisttosym-help.pd0000644002537200234200000000077711120270161021144 0ustar zmoelnigiemusers#N canvas 50 29 529 402 10; #X obj 46 128 iem_alisttosym; #X symbolatom 46 151 0 0 0 0 - - -; #X msg 47 86 97 98 99 100; #X text 27 16 iem_alisttosym; #X text 152 15 covert a list of ASCII floats to a symbol; #X text 93 233 IEM KUG; #X text 72 221 musil; #X text 107 221 @; #X text 115 221 iem.at; #X text 76 243 Graz \, Austria; #X text 28 210 (c) Thomas Musil 2000 - 2008; #X msg 164 88 65 66 67 68; #X msg 271 88 49 50 51 52; #X connect 0 0 1 0; #X connect 2 0 0 0; #X connect 11 0 0 0; #X connect 12 0 0 0; iemlib-1.20.1/iemlib2/iem_anything-help.pd0000644002537200234200000000732611055052215020557 0ustar zmoelnigiemusers#N canvas 194 199 779 617 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 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 -messages); #X text 131 9 is a latch for anything; #X obj 229 376 del 4999; #X text 298 19 (or like symbol for -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 text 184 524 IEM KUG; #X text 168 512 musil; #X text 198 512 @; #X text 204 512 iem.at; #X text 119 501 (c) Thomas Musil 2000 - 2005; #X text 167 534 Graz \, Austria; #X connect 0 0 63 0; #X connect 1 0 64 0; #X connect 3 0 65 0; #X connect 4 0 67 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 66 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 55 0; #X connect 34 0 32 0; #X connect 35 0 31 1; #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 0; #X connect 49 0 31 1; #X connect 50 0 31 1; #X connect 51 0 33 0; #X connect 51 0 32 1; #X connect 51 0 52 0; #X connect 52 0 29 0; #X connect 55 0 29 0; #X connect 63 0 2 0; #X connect 64 0 2 0; #X connect 65 0 2 0; #X connect 66 0 2 0; #X connect 67 0 5 0; #X connect 67 0 6 0; iemlib-1.20.1/iemlib2/dollarg-help.pd0000644002537200234200000000517111055052215017524 0ustar zmoelnigiemusers#N canvas 20 0 962 405 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 11 6 dollarg; #X text 93 7 receives the parent initial arguments \, 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 (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 text 384 254 IEM KUG; #X text 368 242 musil; #X text 398 242 @; #X text 404 242 iem.at; #X text 367 264 Graz \, Austria; #X text 319 231 (c) Thomas Musil 2000 - 2006; #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 19 0; #X connect 7 0 8 0; #X connect 11 0 6 0; #X connect 11 0 20 0; #X connect 11 1 2 0; #X connect 20 0 19 0; #X connect 20 1 5 0; #X connect 20 2 4 0; #X connect 21 0 0 0; #X connect 22 0 0 0; #X connect 23 0 0 0; #X connect 24 0 0 0; #X connect 30 0 0 0; #X connect 31 0 0 0; iemlib-1.20.1/iemlib2/list2send-help.pd0000644002537200234200000000606011055052215020005 0ustar zmoelnigiemusers#N canvas 163 45 800 564 10; #X msg 393 139 0 aaa \, 1 bbb \, 2 ccc \, 3 ddd \, 4 eee; #X text 480 117 init; #X obj 393 118 loadbang; #X msg 444 165 clear; #X text 279 59 the corresponding prepend-floats and receive-symbols ; #X text 279 46 with a prepended float.; #X text 10 13 list2send; #X obj 393 160 pp add; #X obj 68 351 r aaa; #X floatatom 68 374 5 0 0 0 - - -; #X obj 103 351 r bbb; #X floatatom 208 374 5 0 0 0 - - -; #X obj 208 351 r ccc; #X obj 267 350 r ddd; #X floatatom 267 375 8 0 0 0 - - -; #X obj 351 351 r eee; #X symbolatom 351 374 10 0 0 0 - - -; #X obj 68 395 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 208 396 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 267 397 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 351 397 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 obj 64 195 pp 1; #X floatatom 178 127 5 0 0 0 - - -; #X obj 178 145 pp 2; #X floatatom 221 127 8 0 0 0 - - -; #X obj 221 146 pp 3; #X symbolatom 279 128 10 0 0 0 - - -; #X obj 279 148 pp 4; #X floatatom 181 220 5 0 0 0 - - -; #X msg 335 255 set_all 1.1 2.2 3.3 4.4444 abcdefg; #X msg 344 275 all 0.1 0.2 0.3 0.45678 zyxwvu; #X msg 370 315 from 3 0.9876 lmnop; #X msg 358 295 set_from 3 2.2222 zzzzzz; #X text 131 14 convert some kind of lists to a sended message; #X text 439 218 1.arg: max. number of sended parameters; #X text 280 73 have to be inputed via an add message.; #X obj 359 217 list2send 10; #X floatatom 103 404 5 0 0 0 - - -; #X floatatom 64 125 5 0 0 0 - - -; #X floatatom 136 404 5 0 0 0 - - -; #X obj 64 175 pack 0 0 0; #X floatatom 99 125 5 0 0 0 - - -; #X floatatom 134 125 5 0 0 0 - - -; #X obj 99 144 t b f; #X obj 134 147 t b f; #X obj 103 373 unpack 0 0 0; #X floatatom 170 404 5 0 0 0 - - -; #X msg 279 98 symbol zyx; #X obj 181 238 pp set 2; #X msg 535 116 0 xaaa \, 1 xbbb \, 2 xccc \, 3 xddd \, 4 xeee; #X text 106 455 IEM KUG; #X text 90 443 musil; #X text 120 443 @; #X text 126 443 iem.at; #X text 41 432 (c) Thomas Musil 2000 - 2005; #X text 89 465 Graz \, Austria; #X connect 0 0 7 0; #X connect 2 0 0 0; #X connect 3 0 38 0; #X connect 7 0 38 0; #X connect 8 0 9 0; #X connect 9 0 17 0; #X connect 10 0 47 0; #X connect 11 0 18 0; #X connect 12 0 11 0; #X connect 13 0 14 0; #X connect 14 0 19 0; #X connect 15 0 16 0; #X connect 16 0 20 0; #X connect 21 0 38 0; #X connect 22 0 21 0; #X connect 23 0 38 0; #X connect 24 0 25 0; #X connect 25 0 38 0; #X connect 26 0 27 0; #X connect 27 0 38 0; #X connect 28 0 29 0; #X connect 29 0 38 0; #X connect 30 0 50 0; #X connect 31 0 38 0; #X connect 32 0 38 0; #X connect 33 0 38 0; #X connect 34 0 38 0; #X connect 40 0 42 0; #X connect 42 0 23 0; #X connect 43 0 45 0; #X connect 44 0 46 0; #X connect 45 0 42 0; #X connect 45 1 42 1; #X connect 46 0 42 0; #X connect 46 1 42 2; #X connect 47 0 39 0; #X connect 47 1 41 0; #X connect 47 2 48 0; #X connect 49 0 28 0; #X connect 50 0 38 0; #X connect 51 0 7 0; iemlib-1.20.1/iemlib2/bpe-help.pd0000644002537200234200000000276411055052215016653 0ustar zmoelnigiemusers#N canvas 112 77 530 449 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 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 text 184 414 IEM KUG; #X text 168 402 musil; #X text 198 402 @; #X text 204 402 iem.at; #X text 119 391 (c) Thomas Musil 2000 - 2005; #X text 167 424 Graz \, Austria; #X connect 1 0 12 0; #X connect 1 0 17 0; #X connect 2 0 17 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 17 0 20 0; #X connect 17 1 20 1; #X connect 17 2 0 0; #X connect 19 0 17 0; #X connect 20 0 10 0; iemlib-1.20.1/iemlib2/iiroute-help.pd0000644002537200234200000001002111055052215017546 0ustar zmoelnigiemusers#N canvas 167 225 753 369 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: first route-item; #X text 53 52 2.arg: last route-item; #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: offset \, adding to first and last; #X obj 562 62 - 5; #X text 106 305 IEM KUG; #X text 90 293 musil; #X text 120 293 @; #X text 126 293 iem.at; #X text 41 282 (c) Thomas Musil 2000 - 2005; #X text 89 315 Graz \, Austria; #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 56 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 56 0 25 2; iemlib-1.20.1/iemlib2/iem_symtoalist-help.pd0000644002537200234200000000102711120270161021131 0ustar zmoelnigiemusers#N canvas 396 66 533 406 10; #X text 93 233 IEM KUG; #X text 72 221 musil; #X text 107 221 @; #X text 115 221 iem.at; #X text 76 243 Graz \, Austria; #X text 28 210 (c) Thomas Musil 2000 - 2008; #X text 27 16 iem_symtoalist; #X obj 46 128 iem_symtoalist; #X msg 47 86 symbol abcd; #X msg 164 88 symbol ABCD; #X text 152 15 covert a symbol to a list of ASCII floats; #X obj 47 152 print; #X msg 271 88 1234; #X msg 324 87 9.876e-08; #X connect 7 0 11 0; #X connect 8 0 7 0; #X connect 9 0 7 0; #X connect 12 0 7 0; #X connect 13 0 7 0; iemlib-1.20.1/iemlib2/parent$0-help.pd0000644002537200234200000000157611055052215017522 0ustar zmoelnigiemusers#N canvas 88 175 632 308 10; #X obj 35 111 test-parentdollarzero; #X obj 299 107 f \$0; #X obj 299 88 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 299 129 5 0 0 0 - - -; #X symbolatom 35 132 10 0 0 0 - - -; #X obj 35 91 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 460 113 parent$0; #X text 436 96 use this in an abstraction; #X text 55 94 open this abstraction; #X text 15 10 parentdollarzero; #X text 156 12 receives the parent \$0 symbol; #X text 14 28 (abbr. parent$0); #X text 23 148 output: of unique number; #X text 241 148 output: of unique number; #X text 115 228 IEM KUG; #X text 99 216 musil; #X text 129 216 @; #X text 135 216 iem.at; #X text 98 238 Graz \, Austria; #X text 50 205 (c) Thomas Musil 2000 - 2006; #X connect 0 0 4 0; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 5 0 0 0; iemlib-1.20.1/iemlib2/iem_send-help.pd0000644002537200234200000000364211055052215017664 0ustar zmoelnigiemusers#N canvas 115 112 614 418 10; #X floatatom 44 249 5 0 0 0 - - -; #X msg 137 109 set ccc; #X msg 364 106 set ddd; #X msg 110 84 set aaa; #X msg 342 80 set bbb; #X msg 199 115 clear; #X msg 429 111 clear; #X floatatom 58 274 5 0 0 0 - - -; #X obj 30 277 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 43 146 iem_send aaa; #X obj 293 146 iem_s bbb; #X obj 44 223 r aaa; #X obj 168 223 r bbb; #X obj 322 226 r ccc; #X obj 458 226 r ddd; #X floatatom 168 248 5 0 0 0 - - -; #X floatatom 182 273 5 0 0 0 - - -; #X obj 154 276 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 322 250 5 0 0 0 - - -; #X floatatom 336 275 5 0 0 0 - - -; #X obj 308 278 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 458 251 5 0 0 0 - - -; #X floatatom 472 276 5 0 0 0 - - -; #X obj 444 279 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 358 146 1.arg: or send-label; #X floatatom 15 78 5 0 0 0 - - -; #X text 12 14 iem_send; #X text 107 14 send-object with changeable send-label; #X floatatom 49 79 5 0 0 0 - - -; #X msg 49 100 set \$1; #X floatatom 262 82 5 0 0 0 - - -; #X floatatom 296 83 5 0 0 0 - - -; #X msg 296 104 set \$1; #X text 137 337 IEM KUG; #X text 121 325 musil; #X text 151 325 @; #X text 157 325 iem.at; #X text 72 314 (c) Thomas Musil 2000 - 2005; #X text 120 347 Graz \, Austria; #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; iemlib-1.20.1/iemlib2/speedlim-help.pd0000644002537200234200000000164311560744165017717 0ustar zmoelnigiemusers#N canvas 465 200 404 317 10; #X msg 173 43 1000; #X msg 176 65 200; #X floatatom 66 71 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 169 116 1.arg: lock-time in ms; #X obj 46 171 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 235 248 IEM KUG; #X text 212 236 musil; #X text 249 236 @; #X text 258 236 iem.at; #X text 218 258 Graz \, Austria; #X msg 116 70 stop; #X text 170 224 (c) Thomas Musil 2000 - 2011; #X msg 229 86 5000; #X connect 0 0 9 1; #X connect 1 0 9 1; #X connect 2 0 9 0; #X connect 3 0 12 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; #X connect 18 0 9 0; #X connect 20 0 9 1; iemlib-1.20.1/iemlib2/receive2list-help.pd0000644002537200234200000000666611055052215020512 0ustar zmoelnigiemusers#N canvas 107 27 840 566 10; #X floatatom 340 478 5 0 0 0 - - -; #X floatatom 356 439 5 0 0 0 - - -; #X floatatom 372 367 5 0 0 0 - - -; #X floatatom 388 330 5 0 0 0 - - -; #X text 427 93 init; #X floatatom 14 151 5 0 0 0 - - -; #X obj 14 171 s aaa; #X floatatom 53 99 5 0 0 0 - - -; #X floatatom 163 151 5 0 0 0 - - -; #X floatatom 202 130 5 0 0 0 - - -; #X obj 53 171 s bbb; #X obj 163 171 s ccc; #X obj 202 172 s ddd; #X obj 244 172 s eee; #X msg 244 79 symbol abc; #X msg 250 101 symbol xyz; #X obj 340 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 obj 202 150 pp set; #X obj 340 497 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 372 384 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 388 348 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 402 143 clear; #X floatatom 413 348 5 0 0 0 - - -; #X floatatom 364 499 5 0 0 0 - - -; #X floatatom 389 439 5 0 0 0 - - -; #X floatatom 393 385 5 0 0 0 - - -; #X msg 611 119 300 xxx; #X obj 340 136 pp add; #X symbolatom 404 285 10 0 0 0 - - -; #X symbolatom 425 310 10 0 0 0 - - -; #X obj 404 310 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 453 261 symbol; #X symbolatom 264 151 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 261 125 set fgh; #X obj 420 216 print out5; #X obj 32 401 s fff; #X symbolatom 44 329 10 0 0 0 - - -; #X msg 340 115 0 aaa \, 1 bbb \, 2 ccc \, 3 ddd \, 4 eee; #X obj 340 188 route 0 1 2 3 4 5; #X obj 404 240 route set; #X obj 404 261 pp set; #X text 438 164 1.arg: max. number of receiveable parameters ; #X obj 53 149 pack 0 0 0; #X floatatom 88 99 5 0 0 0 - - -; #X floatatom 123 99 5 0 0 0 - - -; #X obj 88 118 t b f; #X obj 123 121 t b f; #X obj 356 408 unpack 0 0 0; #X floatatom 423 439 5 0 0 0 - - -; #X obj 340 164 receive2list 10; #X text 122 52 have to be inputed via an add message.; #X msg 531 41 0 xaaa \, 1 xbbb \, 2 xccc \, 3 xddd \, 4 xeee; #X text 115 488 IEM KUG; #X text 99 476 musil; #X text 129 476 @; #X text 135 476 iem.at; #X text 50 465 (c) Thomas Musil 2000 - 2005; #X text 98 498 Graz \, Austria; #X connect 0 0 22 0; #X connect 0 0 27 0; #X connect 2 0 23 0; #X connect 2 0 29 0; #X connect 3 0 24 0; #X connect 3 0 26 0; #X connect 5 0 6 0; #X connect 7 0 49 0; #X connect 8 0 11 0; #X connect 9 0 21 0; #X connect 14 0 13 0; #X connect 15 0 13 0; #X connect 16 0 44 0; #X connect 21 0 12 0; #X connect 25 0 56 0; #X connect 30 0 31 0; #X connect 31 0 56 0; #X connect 32 0 33 0; #X connect 32 0 34 0; #X connect 35 0 32 0; #X connect 36 0 13 0; #X connect 37 0 42 0; #X connect 38 0 42 0; #X connect 39 0 42 0; #X connect 40 0 13 0; #X connect 43 0 42 0; #X connect 44 0 31 0; #X connect 45 0 0 0; #X connect 45 1 54 0; #X connect 45 2 2 0; #X connect 45 3 3 0; #X connect 45 4 46 0; #X connect 45 5 41 0; #X connect 46 0 47 0; #X connect 46 1 35 0; #X connect 47 0 32 0; #X connect 49 0 10 0; #X connect 50 0 52 0; #X connect 51 0 53 0; #X connect 52 0 49 0; #X connect 52 1 49 1; #X connect 53 0 49 0; #X connect 53 1 49 2; #X connect 54 0 1 0; #X connect 54 1 28 0; #X connect 54 2 55 0; #X connect 56 0 45 0; #X connect 58 0 31 0; iemlib-1.20.1/iemlib2/iem_pbank_csv-help.pd0000644002537200234200000001250111310215647020677 0ustar zmoelnigiemusers#N canvas 308 80 1095 637 10; #X obj 184 46 pp 0; #X floatatom 184 23 5 0 0 0 - - -; #X floatatom 224 31 5 0 0 0 - - -; #X floatatom 264 43 5 0 0 0 - - -; #X floatatom 303 52 5 0 0 0 - - -; #X floatatom 343 61 5 0 0 0 - - -; #X obj 224 54 pp 1; #X obj 264 66 pp 2; #X obj 303 75 pp 3; #X obj 343 84 pp 4; #X text 25 482 2.arg: nr. of lines = parameter-sets; #X text 330 26 input: of para-index; #X text 371 38 + 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 line number for recall and store; #X msg 346 222 recall; #X msg 323 247 store; #X text 696 220 the 2nd symbol of read- or write-message; #X text 696 251 1st char is the kind of separator:; #X text 712 262 b .. blank or space; #X text 711 272 s .. semicolon; #X text 711 282 t .. tabulator; #X text 429 339 0 <= n < number of lines; #X text 251 119 prepend column-number of parameter; #X text 691 309 2nd char is the kind of end_of_line:; #X text 706 320 b .. blank or space + return; #X text 705 350 r .. return only; #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 383 71 5 0 0 0 - - -; #X obj 383 94 pp 5; #X symbolatom 423 78 10 0 0 0 - - -; #X obj 423 102 pp 6; #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 518 505 5 0 0 0 - - -; #X obj 518 482 r bbb; #X floatatom 557 505 5 0 0 0 - - -; #X obj 557 482 r ccc; #X symbolatom 713 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 518 527 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 557 527 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 713 528 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 713 482 r ggg; #X floatatom 596 505 5 0 0 0 - - -; #X floatatom 635 505 5 0 0 0 - - -; #X floatatom 674 505 5 0 0 0 - - -; #X obj 596 526 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 635 527 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 674 527 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 596 482 r ddd; #X obj 635 482 r eee; #X obj 674 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 387 50 stored in input-buffer; #X text 25 472 1.arg: nr. of parameters; #X text 18 168 list of all parameters of a line; #X text 41 179 stored in input-buffer; #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 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 text 136 525 IEM KUG; #X text 115 513 musil; #X text 150 513 @; #X text 157 513 iem.at; #X text 119 535 Graz \, Austria; #X obj 493 138 loadbang; #X text 705 330 s .. semicolon + return; #X text 705 340 t .. tabulator + return; #X text 699 231 should have 2 characters:; #X text 71 502 (c) Thomas Musil 2000 - 2009; #X obj 148 106 t b f; #X text 100 86 recall; #X floatatom 147 87 5 0 9 0 - - -; #X msg 493 159 read iem_pbank.pbank br; #X msg 593 137 read \$1 br; #X msg 682 137 write \$1 br; #X text 676 167 br .. blank as separator \, return as end of line; #N canvas 0 22 450 300 CHANGE 0; #X text 35 25 there are 2 small changes:; #X text 35 47 comma ' \, ' is no more allowed to separate items; #X text 35 57 comma-return is no more allowed to represent EndOfLine ; #X text 34 87 every comma ' \, ' will be replaced by period '.' because sometimes it happens \, that MS Excel stores files with a comma as the decimal separator.; #X restore 680 23 pd CHANGE; #X connect 0 0 64 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 64 0; #X connect 7 0 64 0; #X connect 8 0 64 0; #X connect 9 0 64 0; #X connect 13 0 95 0; #X connect 14 0 13 0; #X connect 15 0 16 0; #X connect 16 0 96 0; #X connect 18 0 64 1; #X connect 20 0 64 0; #X connect 21 0 64 0; #X connect 34 0 64 0; #X connect 35 0 64 0; #X connect 36 0 37 0; #X connect 37 0 64 0; #X connect 38 0 39 0; #X connect 39 0 64 0; #X connect 40 0 42 0; #X connect 41 0 65 0; #X connect 42 0 41 0; #X connect 43 0 44 0; #X connect 44 0 50 0; #X connect 45 0 51 0; #X connect 46 0 45 0; #X connect 47 0 52 0; #X connect 48 0 47 0; #X connect 49 0 53 0; #X connect 54 0 49 0; #X connect 55 0 58 0; #X connect 56 0 59 0; #X connect 57 0 60 0; #X connect 61 0 55 0; #X connect 62 0 56 0; #X connect 63 0 57 0; #X connect 64 0 17 0; #X connect 64 1 76 0; #X connect 64 1 80 0; #X connect 66 0 34 0; #X connect 67 0 34 0; #X connect 68 0 34 0; #X connect 76 0 65 0; #X connect 77 0 64 0; #X connect 79 0 64 0; #X connect 86 0 94 0; #X connect 91 0 20 0; #X connect 91 1 18 0; #X connect 93 0 91 0; #X connect 94 0 64 0; #X connect 95 0 64 0; #X connect 96 0 64 0; iemlib-1.20.1/iemlib2/modulo_counter-help.pd0000644002537200234200000000142011055052215021127 0ustar zmoelnigiemusers#N canvas 167 267 525 297 10; #X msg 27 97 bang; #X floatatom 75 164 5 0 0 0 - - -; #X floatatom 75 72 5 1 100 0 - - -; #X floatatom 203 76 5 0 99 0 - - -; #X obj 75 135 modulo_counter 10 5; #X text 261 195 (optional) default 0; #X text 161 182 2.arg: initial-value (0 .. max - 1); #X text 161 168 1.arg: maximum; #X text 36 54 maximum; #X text 202 56 initial-value (0 .. max - 1); #X text 115 238 IEM KUG; #X text 99 226 musil; #X text 129 226 @; #X text 135 226 iem.at; #X text 50 215 (c) Thomas Musil 2000 - 2005; #X text 98 248 Graz \, Austria; #X text 13 12 modulo_counter; #X text 137 11 increments counter-number from 0 to max-1 by a bang ; #X connect 0 0 4 0; #X connect 2 0 4 0; #X connect 3 0 4 1; #X connect 4 0 1 0; iemlib-1.20.1/iemlib2/iem_prepend-help.pd0000644002537200234200000000420711055052215020366 0ustar zmoelnigiemusers#N canvas 231 172 617 507 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 175 319 head of output-message; #X text 180 308 initials-arguments:; #X text 5 281 tail of output-message; #X text 183 287 head of output-message; #X text 181 277 <- cold inlet; #X obj 117 300 pp set; #X text 115 448 IEM KUG; #X text 99 436 musil; #X text 129 436 @; #X text 135 436 iem.at; #X text 50 425 (c) Thomas Musil 2000 - 2005; #X text 98 458 Graz \, Austria; #X text 151 8 merge the head-message in front of the tail-message; #X text 42 273 hot inlet ->; #X text 13 7 iem_prepend; #X connect 1 0 32 0; #X connect 2 0 32 1; #X connect 3 0 32 0; #X connect 4 0 32 0; #X connect 5 0 32 1; #X connect 6 0 32 1; #X connect 7 0 32 0; #X connect 8 0 32 1; #X connect 9 0 32 0; #X connect 10 0 32 1; #X connect 11 0 32 0; #X connect 12 0 32 1; #X connect 13 0 32 0; #X connect 14 0 32 1; #X connect 15 0 32 1; #X connect 16 0 32 0; #X connect 17 0 32 0; #X connect 18 0 32 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 0 0; #X connect 32 0 19 0; iemlib-1.20.1/iemlib2/m2f~-help.pd0000644002537200234200000000153211055052215016757 0ustar zmoelnigiemusers#N canvas 0 0 442 356 10; #X floatatom 125 148 0 0 0 0 - - -; #X floatatom 125 59 0 0 0 0 - - -; #X obj 125 82 sig~; #X obj 12 76 dsp; #X floatatom 12 123 5 0 0 0 - - -; #X obj 12 50 tgl 15 0 empty empty empty 8 -8 0 10 -262144 -1 -1 1 1 ; #X text 106 249 IEM KUG; #X text 90 237 musil; #X text 120 237 @; #X text 126 237 iem.at; #X text 89 259 Graz \, Austria; #X floatatom 25 103 5 0 0 0 - - -; #X obj 125 125 unsig~; #X obj 303 102 mtof~; #X text 271 102 like; #X text 41 226 (c) Thomas Musil 2000 - 2006; #X obj 125 103 m2f~; #X text 114 4 convert MIDI pitch to frequency (in signal); #X text 17 8 m2f~; #X text 154 58 MIDI pitch; #X text 187 148 Hz; #X text 218 20 (obsolete); #X connect 1 0 2 0; #X connect 2 0 16 0; #X connect 3 0 4 0; #X connect 3 1 11 0; #X connect 5 0 3 0; #X connect 12 0 0 0; #X connect 16 0 12 0; iemlib-1.20.1/iemlib2/fade~-help.pd0000644002537200234200000000266111055052215017176 0ustar zmoelnigiemusers#N canvas 184 90 594 538 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 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 text 354 264 IEM KUG; #X text 338 252 musil; #X text 368 252 @; #X text 374 252 iem.at; #X text 289 241 (c) Thomas Musil 2000 - 2005; #X text 337 274 Graz \, Austria; #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 20 0; iemlib-1.20.1/iemlib2/ii-help.pd0000644002537200234200000000243311055052215016477 0ustar zmoelnigiemusers#N canvas 156 133 536 355 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 18 17 init : initialize anything by loadbang; #X text 106 305 IEM KUG; #X text 90 293 musil; #X text 120 293 @; #X text 126 293 iem.at; #X text 41 282 (c) Thomas Musil 2000 - 2005; #X text 89 315 Graz \, Austria; #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; iemlib-1.20.1/iemlib2/pre_netsend-help.pd0000644002537200234200000000317111055052215020404 0ustar zmoelnigiemusers#N canvas 59 233 595 316 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 0 28 -225280 -1109 -260818 0 256; #X obj 125 113 nbx 5 28 -1e+037 1e+037 0 0 bbbb bbbb bbbb -88 13 0 28 -225280 -1109 -260818 0 256; #X obj 125 148 nbx 5 28 -1e+037 1e+037 0 0 ccccc ccccc ccccc -110 13 0 28 -225280 -1109 -260818 0 256; #X text 305 35 set_item_name: receive-symbol + para-index; #X text 115 278 IEM KUG; #X text 99 266 musil; #X text 129 266 @; #X text 135 266 iem.at; #X text 50 255 (c) Thomas Musil 2000 - 2005; #X text 98 288 Graz \, Austria; #X text 447 1 obsolete \, replaced by; #X text 474 13 receive2list; #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; iemlib-1.20.1/iemlib2/test_dollarg.pd0000644002537200234200000000316111055052215017632 0ustar zmoelnigiemusers#N canvas 75 94 762 547 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 11 6 dollarg; #X text 93 7 receives the parent initial arguments \, 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 text 106 485 IEM KUG; #X text 90 473 musil; #X text 120 473 @; #X text 126 473 iem.at; #X text 89 495 Graz \, Austria; #X text 41 462 (c) Thomas Musil 2000 - 2006; #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; iemlib-1.20.1/iemlib2/iem_r-help.pd0000644002537200234200000000244611055052215017175 0ustar zmoelnigiemusers#N canvas 115 112 577 404 10; #X obj 64 200 iem_receive aaa; #X obj 224 200 iem_r bbb; #X floatatom 64 232 5 0 0 0 - - -; #X floatatom 224 232 5 0 0 0 - - -; #X msg 68 56 \; aaa 33 \; bbb 44; #X obj 110 228 print a; #X obj 273 227 print b; #X msg 64 168 set ccc; #X msg 224 169 set ddd; #X msg 403 57 \; ccc 55 \; ddd 66; #X msg 37 143 set aaa; #X msg 202 143 set bbb; #X msg 126 174 clear; #X msg 289 174 clear; #X text 13 8 iem_receive; #X text 108 8 receive-object with changeable receive-label; #X text 289 200 1.arg: or receive-label; #X floatatom 84 253 5 0 0 0 - - -; #X obj 56 256 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 238 257 5 0 0 0 - - -; #X obj 210 260 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 157 56 \; aaa set 11 \; bbb set 22; #X text 138 331 IEM KUG; #X text 122 319 musil; #X text 152 319 @; #X text 158 319 iem.at; #X text 73 308 (c) Thomas Musil 2000 - 2005; #X text 121 341 Graz \, Austria; #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; iemlib-1.20.1/iemlib2/round_zero-help.pd0000644002537200234200000000110511055052215020257 0ustar zmoelnigiemusers#N canvas 158 131 558 330 10; #X obj 55 160 round_zero 1e-006; #X msg 55 78 -1e-007; #X text 10 8 round_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 122 9 round very small numbers between plus and minus first argument to zero; #X text 115 268 IEM KUG; #X text 99 256 musil; #X text 129 256 @; #X text 135 256 iem.at; #X text 50 245 (c) Thomas Musil 2000 - 2005; #X text 98 278 Graz \, Austria; #X connect 0 0 3 0; #X connect 1 0 0 0; #X connect 4 0 0 0; #X connect 5 0 0 0; #X connect 6 0 0 0; iemlib-1.20.1/iemlib2/iem_sel_any-help.pd0000644002537200234200000000316711055052215020367 0ustar zmoelnigiemusers#N canvas 480 230 733 409 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 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 162 7 control a message-box with multiple content; #X text 378 267 1.arg: max. number of messages; #X msg 396 206 clear; #X text 401 223 message : clears content; #X text 171 171 message-index; #X text 511 141 adds a new entry into object; #X obj 277 268 iem_sel_any 10; #X text 462 126 message + index + entry; #X text 147 295 message + 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 aa; #X text 136 345 IEM KUG; #X text 120 333 musil; #X text 150 333 @; #X text 156 333 iem.at; #X text 71 322 (c) Thomas Musil 2000 - 2005; #X text 119 355 Graz \, Austria; #X connect 1 0 2 0; #X connect 2 0 23 0; #X connect 3 0 16 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 8 0 23 0; #X connect 9 0 23 0; #X connect 10 0 23 0; #X connect 11 0 23 0; #X connect 15 0 23 0; #X connect 16 0 15 0; #X connect 19 0 23 0; #X connect 23 0 28 0; #X connect 23 1 0 0; #X connect 28 0 4 0; iemlib-1.20.1/iemlib2/iem_i_route-help.pd0000644002537200234200000001001611055052215020372 0ustar zmoelnigiemusers#N canvas 167 225 753 369 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: first route-item; #X text 53 52 2.arg: last route-item; #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: offset \, adding to first and last; #X obj 562 62 - 5; #X text 76 305 IEM KUG; #X text 60 293 musil; #X text 90 293 @; #X text 96 293 iem.at; #X text 11 282 (c) Thomas Musil 2000 - 2005; #X text 59 315 Graz \, Austria; #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 56 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 56 0 25 2; iemlib-1.20.1/iemlib2/any-help.pd0000644002537200234200000000732111055052215016666 0ustar zmoelnigiemusers#N canvas 194 199 779 617 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 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 -messages); #X text 131 9 is a latch for anything; #X obj 229 376 del 4999; #X text 298 19 (or like symbol for -messages); #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 text 184 524 IEM KUG; #X text 168 512 musil; #X text 198 512 @; #X text 204 512 iem.at; #X text 119 501 (c) Thomas Musil 2000 - 2005; #X text 167 534 Graz \, Austria; #X text 23 11 iem_any; #X connect 0 0 62 0; #X connect 1 0 63 0; #X connect 3 0 64 0; #X connect 4 0 66 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 65 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 55 0; #X connect 34 0 32 0; #X connect 35 0 31 1; #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 0; #X connect 49 0 31 1; #X connect 50 0 31 1; #X connect 51 0 33 0; #X connect 51 0 32 1; #X connect 51 0 52 0; #X connect 52 0 29 0; #X connect 55 0 29 0; #X connect 62 0 2 0; #X connect 63 0 2 0; #X connect 64 0 2 0; #X connect 65 0 2 0; #X connect 66 0 5 0; #X connect 66 0 6 0; iemlib-1.20.1/iemlib2/float24-help.pd0000644002537200234200000000447511055052215017361 0ustar zmoelnigiemusers#N canvas 53 141 918 394 10; #X obj 91 95 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #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 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 text 398 227 IEM KUG; #X text 382 215 musil; #X text 412 215 @; #X text 418 215 iem.at; #X text 333 204 (c) Thomas Musil 2000 - 2005; #X text 381 237 Graz \, Austria; #X connect 0 0 3 0; #X connect 3 0 5 0; #X connect 4 0 2 0; #X connect 5 0 6 0; #X connect 5 1 4 1; #X connect 6 0 4 0; #X connect 7 0 10 0; #X connect 8 0 7 0; #X connect 9 0 2 0; #X connect 10 0 11 0; #X connect 10 1 9 1; #X connect 11 0 9 0; #X connect 17 0 19 0; #X connect 19 0 18 0; #X connect 20 0 24 0; #X connect 22 0 25 0; #X connect 24 0 21 0; #X connect 25 0 26 0; #X connect 26 0 23 0; #X connect 27 0 30 0; #X connect 29 0 28 0; #X connect 30 0 29 0; #X connect 31 0 34 0; #X connect 33 0 32 0; #X connect 34 0 33 0; iemlib-1.20.1/iemlib2/add2_comma-help.pd0000644002537200234200000000267111055052215020070 0ustar zmoelnigiemusers#N canvas 115 227 780 417 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 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 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 text 263 267 IEM KUG; #X text 247 255 musil; #X text 277 255 @; #X text 283 255 iem.at; #X text 198 244 (c) Thomas Musil 2000 - 2005; #X text 246 277 Graz \, Austria; #X connect 0 0 25 0; #X connect 1 0 25 0; #X connect 2 0 25 0; #X connect 3 0 25 0; #X connect 4 0 25 0; #X connect 5 0 25 0; #X connect 6 0 25 0; #X connect 7 0 14 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 24 0; #X connect 15 0 14 0; #X connect 16 0 25 0; #X connect 17 0 23 0; #X connect 18 0 23 0; #X connect 19 0 23 0; #X connect 20 0 17 0; #X connect 25 0 23 0; iemlib-1.20.1/iemlib2/parentdollarzero-help.pd0000644002537200234200000000157611055052215021474 0ustar zmoelnigiemusers#N canvas 88 175 632 308 10; #X obj 35 111 test-parentdollarzero; #X obj 299 107 f \$0; #X obj 299 88 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 299 129 5 0 0 0 - - -; #X symbolatom 35 132 10 0 0 0 - - -; #X obj 35 91 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 460 113 parent$0; #X text 436 96 use this in an abstraction; #X text 55 94 open this abstraction; #X text 15 10 parentdollarzero; #X text 156 12 receives the parent \$0 symbol; #X text 14 28 (abbr. parent$0); #X text 23 148 output: of unique number; #X text 241 148 output: of unique number; #X text 115 228 IEM KUG; #X text 99 216 musil; #X text 129 216 @; #X text 135 216 iem.at; #X text 98 238 Graz \, Austria; #X text 50 205 (c) Thomas Musil 2000 - 2006; #X connect 0 0 4 0; #X connect 1 0 3 0; #X connect 2 0 1 0; #X connect 5 0 0 0; iemlib-1.20.1/iemlib2/iem_receive-help.pd0000644002537200234200000000244611055052215020356 0ustar zmoelnigiemusers#N canvas 115 112 577 404 10; #X obj 64 200 iem_receive aaa; #X obj 224 200 iem_r bbb; #X floatatom 64 232 5 0 0 0 - - -; #X floatatom 224 232 5 0 0 0 - - -; #X msg 68 56 \; aaa 33 \; bbb 44; #X obj 110 228 print a; #X obj 273 227 print b; #X msg 64 168 set ccc; #X msg 224 169 set ddd; #X msg 403 57 \; ccc 55 \; ddd 66; #X msg 37 143 set aaa; #X msg 202 143 set bbb; #X msg 126 174 clear; #X msg 289 174 clear; #X text 13 8 iem_receive; #X text 108 8 receive-object with changeable receive-label; #X text 289 200 1.arg: or receive-label; #X floatatom 84 253 5 0 0 0 - - -; #X obj 56 256 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 238 257 5 0 0 0 - - -; #X obj 210 260 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X msg 157 56 \; aaa set 11 \; bbb set 22; #X text 138 331 IEM KUG; #X text 122 319 musil; #X text 152 319 @; #X text 158 319 iem.at; #X text 73 308 (c) Thomas Musil 2000 - 2005; #X text 121 341 Graz \, Austria; #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; iemlib-1.20.1/iemlib2/iem_append-help.pd0000644002537200234200000000422211055052215020175 0ustar zmoelnigiemusers#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 218 302 initials-arguments:; #X text 109 7 merge the head-message in front of the tail-message; #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 text 136 445 IEM KUG; #X text 120 433 musil; #X text 150 433 @; #X text 156 433 iem.at; #X text 71 422 (c) Thomas Musil 2000 - 2005; #X text 119 455 Graz \, Austria; #X connect 1 0 35 0; #X connect 2 0 35 1; #X connect 3 0 35 0; #X connect 4 0 35 0; #X connect 5 0 35 1; #X connect 6 0 35 1; #X connect 7 0 35 0; #X connect 8 0 35 1; #X connect 9 0 35 0; #X connect 10 0 35 1; #X connect 11 0 35 0; #X connect 12 0 35 1; #X connect 13 0 35 0; #X connect 14 0 35 1; #X connect 15 0 35 1; #X connect 16 0 35 0; #X connect 17 0 35 0; #X connect 18 0 35 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 35 0 0 0; #X connect 35 0 19 0; iemlib-1.20.1/iemlib2/mergefilename-help.pd0000644002537200234200000000264511055052215020703 0ustar zmoelnigiemusers#N canvas 82 111 634 456 10; #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: 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 text 115 398 IEM KUG; #X text 99 386 musil; #X text 129 386 @; #X text 135 386 iem.at; #X text 50 375 (c) Thomas Musil 2000 - 2005; #X text 98 408 Graz \, Austria; #X connect 0 0 7 0; #X connect 1 0 7 0; #X connect 2 0 7 0; #X connect 3 0 5 0; #X connect 4 0 3 0; #X connect 6 0 7 0; #X connect 7 0 3 0; #X connect 8 0 7 0; #X connect 9 0 7 0; #X connect 10 0 7 0; #X connect 12 0 7 0; #X connect 13 0 7 0; #X connect 14 0 3 0; #X connect 15 0 7 0; #X connect 17 0 3 0; #X connect 18 0 3 0; iemlib-1.20.1/iemlib2/test-parentdollarzero.pd0000644002537200234200000000063011055052215021511 0ustar zmoelnigiemusers#N canvas 0 0 474 324 10; #X obj 64 64 inlet; #X obj 64 115 outlet; #X text 110 65 input: ; #X text 121 107 output: of parent unique number; #X text 106 195 IEM KUG; #X text 90 183 musil; #X text 120 183 @; #X text 126 183 iem.at; #X text 89 205 Graz \, Austria; #X obj 64 89 parentdollarzero; #X text 41 172 (c) Thomas Musil 2000 - 2006; #X connect 0 0 9 0; #X connect 9 0 1 0; iemlib-1.20.1/iemlib2/LFO_noise~-help.pd0000644002537200234200000000215111055052215020106 0ustar zmoelnigiemusers#N canvas 299 177 455 328 10; #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 0 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 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 text 106 285 IEM KUG; #X text 90 273 musil; #X text 120 273 @; #X text 126 273 iem.at; #X text 41 262 (c) Thomas Musil 2000 - 2005; #X text 89 295 Graz \, Austria; #X connect 5 0 3 0; #X connect 6 0 5 0; #X connect 8 0 7 0; #X connect 8 0 7 1; #X connect 8 1 11 0; #X connect 8 2 9 0; #X connect 9 1 1 0; #X connect 10 0 8 1; #X connect 13 0 8 0; #X connect 15 0 13 0; iemlib-1.20.1/iemlib2/iem_s-help.pd0000644002537200234200000000364211055052215017175 0ustar zmoelnigiemusers#N canvas 115 112 614 418 10; #X floatatom 44 249 5 0 0 0 - - -; #X msg 137 109 set ccc; #X msg 364 106 set ddd; #X msg 110 84 set aaa; #X msg 342 80 set bbb; #X msg 199 115 clear; #X msg 429 111 clear; #X floatatom 58 274 5 0 0 0 - - -; #X obj 30 277 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X obj 43 146 iem_send aaa; #X obj 293 146 iem_s bbb; #X obj 44 223 r aaa; #X obj 168 223 r bbb; #X obj 322 226 r ccc; #X obj 458 226 r ddd; #X floatatom 168 248 5 0 0 0 - - -; #X floatatom 182 273 5 0 0 0 - - -; #X obj 154 276 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 322 250 5 0 0 0 - - -; #X floatatom 336 275 5 0 0 0 - - -; #X obj 308 278 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 458 251 5 0 0 0 - - -; #X floatatom 472 276 5 0 0 0 - - -; #X obj 444 279 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X text 358 146 1.arg: or send-label; #X floatatom 15 78 5 0 0 0 - - -; #X text 12 14 iem_send; #X text 107 14 send-object with changeable send-label; #X floatatom 49 79 5 0 0 0 - - -; #X msg 49 100 set \$1; #X floatatom 262 82 5 0 0 0 - - -; #X floatatom 296 83 5 0 0 0 - - -; #X msg 296 104 set \$1; #X text 137 337 IEM KUG; #X text 121 325 musil; #X text 151 325 @; #X text 157 325 iem.at; #X text 72 314 (c) Thomas Musil 2000 - 2005; #X text 120 347 Graz \, Austria; #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; iemlib-1.20.1/Dokumentation_German.pdf0000644002537200234200000053175010223305343020115 0ustar zmoelnigiemusers%PDF-1.2 %쏢 6 0 obj <> stream xYr5}[`m;$`Hbo EűI8TC4ȸ$h\F}RW038QDkd Gƃ =\^g [a+gl gdb?\.dIM.AG0`>4KBJ@Nf4x+i b3kE\ևEEwp}s YaAP {@BxjzJ}G .涥4U< Lt/؝vӒaOS0{A#eIv^7O$Y|TL0:iwIDJi nNj +GZJ_b&ju%_b&c|0ԇ = />fn*_+tl`l;mDVtߐ翬o`<kv@ۖ?[xVCendstream endobj 7 0 obj 1544 endobj 21 0 obj <> stream xZKo6Эe$+M-ڸ{*rױ4l6u{(O!^#Ap<ʫ,wCVTf׋E:[_/~IV̬2[ogٓvu~T]kwƪii0Ӎ/ٺqa܇װv* s54ҿq'e͖Vc ץ֕MTuʳqƥ*5:emϣw_|D%NFU^.Ex|# 'Aǐ>ߩ*'r3"g~fZ7b`̽=pZ~|.f@8x<~,*:fIQ%'ڋAPlI{t}Fy9b%wD8o_:s XXͪŴ|4&1d49ȁ.?FF?7Oϋjh kz44. W9\AR' `&HPje`:rqآM㽘٦'+7J:!EϰӢ.dO(`$JZ@BEcI/,Y9;ȍ+xS> $rɻ21YqzM85d bC; }Ѷ+#u1zĚB|cڿl7X@Et d *9>4+;gI\,GQi_'N CjF4#f1> stream x]r6+k2SU*N4jt;NӸI;_o誋)A Jw2!^s( ?N/&'YGߧb1cA`q>a2S( ;[7ăɔ,̓`0-UYx@_dj! rƗ%IF~"0+<,<fBOYVgX*Pc0sHC؅o♭5,%/r6Lrȳ(*E)I W6[jn9$YfԲI٦(/کąruKKi'r,3m.eQ֗[?SՅP\D0%%C6 uT$i,HPS^9sE|"Guocy0)Cyj,vY &ޢk@i`idyb ꟃCU軔KaR (ԃ(wrW"|"oZA %2] pU T{d*7 {N¨J45w^IR=TQ_KuTNϹx?7H5X=_iG͢x4#,KC1Rę)q 7%tT؅EKcXVji/WL(36sZ}_}Usɚ2Ȭ4W2sQG? umfܸ6@ D$,pw_1V/ Sd3ѷ_i5uKuZKaG *lj]Q6 F2BM&2Gl467[\9XGm4$iTʔ^5lM(A '.}sx!q:.۰_TB6rw6w9A]s^kRv7W LrzjV;UVjp"Ž0>ƍ"@œqnBZL\Hmt~{,/{v?Ź  Bsw6w?э[ts @AcՏt٢?1xfmt!oWHOmu8]!Yȹi  s Dc;vr/V_lj<}"g$Jצǯo3+THTwޛ;A6.67i=+zegٮO; .BF+\WCn6.|ݰb5gd CqCuDsEs[6P&TY TJ{>3r<}[tm,lrKZZZox¡-?&l׹"/mTŅ]x$rݶ$'d0ѼPF>9g# &@` h[R!P_˦+6a+ʵW^+_Z'PK޹NF R2cJ{Om1KP~fr|#+\jho]Ȗz$=nƅRx~{GBo{D otUz 94mVS ?UЫZ> stream x]r6WTE0:eJ\I)YW)|9d8~8 9._Dh4F ?_ Ri+r$`M-/||Q^Vd"WOZ^D"* ^/8AXg%EWx?{%E\ WDqCqOI3i( R@ĥ_8E— ҩ|),(B(O 3xZt " ZeGKx5h^- ɼ "iY^&bqi9 5C0NDr^Sn?HJyUFQ19 fW FfWs9{r`I,E{"ur[}ڳDbN"VvV`RۏƧ=ly ȓwS$C %*q!Ю[]oYG[=(E[X8UcC]1]s$ =us$5Ijvǔ*~b`mv]f5In?s6nrea)~+M".F-٤@m+VO}>PNVQX*:oKubU6;[ph)wCQ:I-ǔ4rKj1-wN_ 05:-j I2A`j1-0p6}+)d"B~AھhSمd^lGP #X +m` X%.CIwfGsYd`7鼻I>`rQ&>` QÀmSw3&>U`rQsf0n8}vٱٹ؅Mͷgjv $N;s_}xcms?򏎶Z?[$M=oPeDk|`cZ*U7{49_€A71cwvMdS0CI0_Jmv!&0Wv4Pϫ ؏#dؚ>ta<4>Hx0ц+##9a}9qȷnq_VnWoe7WcN{JBKqcd=(yǠ{gh*酱ZW6]NjB z w|cw+d%EQiFF(wdc6폎`pXhR$醐ɍͦ/n@Lfwf Jih梈ߛ)V@,ڴY.h2`A6ʾĬt\&eπ&lVjV*f| }9e@Ӫʓb[c}dǸs͎iL9Ĵ9)dgjwoCxM04ƥ'Aܹ劙;DEM:˨TbXnruз0^XO7jSBk+fmT&EZ_%ޑ*Za:up4ov] HUB^n|6n2`ܻ"ZV1 RG;"ԶV}x1N``ko'1D$ 埭[,~@X]o47\@s+;glF5ɘ?ZzNjBT3endstream endobj 30 0 obj 2131 endobj 33 0 obj <> stream x]͒ܶS(ÿ+Uٲ(ckqRJ+vK)e~]9I(پFOW*N.,:XݺwUgMŧW6t'iKU\U-9<󢣣NMG?m˷_AuW|}ӆ.T/i\ |tˆu3`z犥{G_| =Qe8| X]=o*I2J$[o,UT"zdQ "tVBF9- ;xje<$IӉbtQϋotW%d'0Ir~ :C> wjp3",}WW?f@))\'d IE|gOe=`ܷP(yײX,GlUtl;M?ڬ(]ǥQg'"wr@is Ik[ |ȽӺuwJB#X 1 $ݣ bw\-?KFDy.-oՕ!lQK".2? #-{_v=yiE}7ВHO ءx+iX~!*@8p5wrɳ(K*= 4i T! i .Zk"j*b%`]4ˆ[$Ȃ @"XM9D^~-K}a *ړjI9 :=%w\igLwb>" %Xٱbdc\7U^ $:D?'%䃤EN(\ѥ*Xf-_ "WHL/Ŷ8ޟ׌?ж=7en#.HEߩ~+ʅI qJ_љAY ̺߼߰A&Z!"9.nSnIh=*"1m:[L d:-`^7>&xf.eX /~z[ 8ʤ̬e=Z+j09Fע{1WwYy0,J^};aNV= 19#J*ͪ92l "@/t P h 搨=»%7'J}3t@++D@GH1>u͖_oyfܲH><ͧ}~7ՙ ቫB[?p{5 edY/}Q9-0cp](^JbE+7c\u΍s&Y;P(5k|Y/VMlGFlΡhySr|Cg K}Sqxt&9W 14S=^th)V`ZZ7u9+MƤ\1IMI8cr)aL s]aD1܄tH1)L"&5ь8 N9.˗; G/{{kJ\3nI֮ŷCcAbxGbc.օЍK݆dMa"nؠCkspu(?IY} p#n7ݑC Z +}K全f !At 6B #@ec%ٝ&cd95hlF(sv|9Y`튋n@,3Mv]wԢοEfXe̵Bqr)|\H3w8"~<Zs"8/EflSʍ 'C.;M39D28j++"{HJWnAaDωX 4\*~FW{]ڽ6 @"KXitu_jvendstream endobj 34 0 obj 3030 endobj 39 0 obj <> stream x]rܸS!o%RwkUڪWd[NT9r!ADwm.! 6FseReIO3b,iUWI>=}9s<ɛO'wLҬЋdh?u|^ZzY2E{K~h"[ J2̒4F ~zԶO/ K} ?|=1 qQU{xS5+N-$Mji>[ZU*ӛ'@-H(LdSO݇犥<-C8$Y‒n 9.0&k;!6 S&"C&C8s5[. :L"Ld/P֜LNd4|h[qH|@BvBى31ߥr> #mNOAy8:Q,B"m._@,i$FO8Êh#Nt$<6| &|{/4&+86(F7#4&𬊢}28]QwL04eڬhZÐ/H*?$w$Fb$Fb$vEp38m$YqVR~ 3/r`gP;4p.Q$9[ڀ.y(pV6iT[`ɡ,qwԒn&zS"}AnX%1Ǭ]8/FעM¸W n|I\]\o!Azف6} h `~b)Ma|[QLs77a|;?͓+>ӵ`LldSb~Q_mFaeJtaKЀ+UEXӲ0 {H- {pyGxG#1' o[qDu?o}Īn5uL-(?L?(:HʼzI.㐆;Fb$1p 'Nips>)`U (i _k_:C 8SbW%8+awtR-P[/ZQ2*K15-EV҆CH=mflͫlKZ쇖divؑ^ 8N PjNQR3vؚyZ3#'-GV] }))%_*p5r…=1=S&W$8xB$Ązˍ?qb8;l+L#v[ 6OGy^(rB; {_Gƫ9T7'xHJYP=Zu/Q^(HHġ\d*YqA|LHð$h!J?q{0Jm⃹2q|7  7B7ٷ߀U4xZR<WE[|ʹ^<0FFxxǗ)Xs q9PFEͣ_KgDQAe F#"8ʢUAۘxqyyC͕&jmkƉ6I;؊ԟ`ĺ">chh$  nЬyOV߽av iaRJn(kQa)ۆuGF%@Bctv&}E̦,9ɁW'5=P{_gZGɴZ > stream x\Mݶ޿Sp91$G.9qS)H3噑3"ȩ1A$# =)UIh?ydcs~vmivU3UfӋGemw:k6/ӫ݃~+>}{ȴ\i~j?~vf:lb?5ߚfԾp88dmyG}+f_+u׵O׀7 iWyU{w=,M/iYϵvJmJU=ڦgm6Exds]dM'tȶF U^&:+Q]UnVZ'xكvKwcUc;Hjvc J5ٳ3bdKio(Ib?E?Y/#N,w|'htoFzkhQ-8jw#AK~oGf!<׮%3B؏ů]A<AJ Ok%5G$x% "Gp+Tom+38BY0=% Dq8JůNƥRFJltM,~$t.>x;}@Ўv'z. zzl`]-3I){;* %'߁d(.E8sU-nˑh:~rg95FW|y5aĕn&~0}5X%}9@dk8Q$nN@nG ._@yv_) :4ـy].gd1y 8v7|q$;X`/Kid5kjp ڰTr=DG?cPL^{ {Ő#0 2_9F $-z#~ sH9v@ 'O끃/i,}n MV*kѢh厈ν’ػpojd%sN/73= C&ň XM$ _@PP)GLX<`KCƇQkr YNHƄ3\ Ƣ(@Ȥj.b3 ^sdh%!C[PȠi3>kFpI4\ |<92zoʺ8*hY-DžIsDI-Q3ё洇SJP uQ(UוG_ FTc`ƀ橤KťIF&t(v:m`'Q5М'!I]K:[I:)?HI7.dsjѡL[\^"܀$`>(K\PT+1ձP-mUR%;潬b)Ւx\YHGxɽ$Lnm\_63 <9l:8jbB2Ax2ժ3xp5karP],@yKK6L=4bߛ*pι2xLf| pbKKrL"\tRkL3ϡ㢃Ö[6 Eܲ=qJa+WB.,7D#w13v hbU)wD|$ŋOmS[+bdt isj@RT'kō4'AF +ANi~s7vRI۪KimQzJ1]GnHq>~jIIbws3ſ$Dg+|dQgϷ%#Hcnb͘*ʯw,4LԲ֦a4`_&l47_`E զˬM1@>1Jߗ}W%7asD%#U!*GuxF0pU3ɔӁkm5Sԅ{|ԓ:8+cY_UGl4s$S%5_)tqI -c; bіrɯWԊ5AME!#N,2ӂ i3R{<|U/O^nMZ]խه+n }c_"WZDJqEy-\jt 0۬s?S6nca qMGEl1VXihL7msD~@[_\읺3Lo;.ʣ_+WL:WQ&0b 8'im 0 O97J5MxDZU1-A&KZˁj( hufPJ룩EUiA,@ݧ'󝨏G޳A/Qs~%B9|ً+zwsMHۃo'|N$5VoRA6X̴54ʽַmLڟC\n81K7Dp'KY~X}݀q ʽu|M#2_HMo$P=?N!6~!l7TG<ų!a-pDQ $BlXkcR.L?.մb -]`X`Y;F\?ѝ2xCw> stream x]Kﯘ[dCDc[ @ծ$[Q"ſ'=UE̮VHr$zWݿ'/^$eTeII1(TqԤls_eQM||rt^.$ڟw:qݾۛF>t"_v*JIF ɋv`Y qq i?ό 0F#:P:m(︔퇭RX-Nm$*w_.2'a]}WULؐu.З$۞B*]K1R.]i$=6i9kĀA^-DTiћ.VG&xFóc~pёlv!e0+'sk oX&|NjE~@fD!ΥTL/[ ֛8Q4% Wp0 PAzkxN3HJ&paQcKI=71YZi <|R :161A63xnHꖰi;:ͥ[>(@BU8^_윟hnq R刺fx?CCBc%=O\b(Shk7K > ry[NBF~Lth oTH h$W'ds+\):/(.p[`KAG. uu!8wvn)/K0|C"nX_|s˔8Ʊh0!T?B0кt;/4bќ6d^K`[\,`lr" .d?`6qnI׿O+\u/VN2iɐ4Uو(>$|/ R87 E5L_GT{ l; }հ6WNCLlJJNJ;s'd\iIi%k|V 51Չ[gRթS,hZUtPUcVLbq}n|l cwt:pf(Ol˪t/y$g0S=dTlC4~ 0J>U#(88XD4N t6*Rƙ =6UT{jgr}VKvCۺ% :R$1["#8 n-~Fc1ƫ@J2@-]&iUV3 /UVCfM2Zb5B B ]1JOHNbu9rHR8xFkZhAUZ`ΦgN)+1oFCȡR؋]QUDaXu1jMǭiXBAB$a}xSyuwg}U]W C 7"n zqי& ΞQ0ګ$$žj! hx%ؽԡ0>Cj\UwjQ_QNŲN,mVJ [0axr֍+G^W-d*zTz#]z7@b'Un=du)C^= yQOi.%;,-F2&sGf{p$d6JqK|2g5,IVvj>3Y$MPgO  Sedb5^;J0;f=d)"Yc~al/s^*2/,Ѫ o %?"K4 5s^U94KFR`tBՊ_uBK` E>5yE'VBT$.3fRUs̲k(X߬Dְ!d$tFp@NzLJV vHh$ l}(Yzo\p2/WW^k]- {Az +IץlB^eAEf??/0|ёųX^}} aCӴ88~н4+Я{ Wʻ"iݸ<cMqǾy!oI gL~G}c>1fEX2*rT|RAHYގ0' -|WaSS5Cf^zdL~gR= <BѳQ;3'iIvdILIuW*"3oj(R3zg 8Ҵ$|LT5(8VQ+o񞑔#qzVz%+·oNW il[g/-)h]);;ӶR^r!!u~3r+U ! 9gųɽ u=ep/϶% BYIN $d r^ )nMvXp"M~qA&0 ӡKGv$91X+'派gAUU0\ǝi`ˢi@xk+yvi~1-K)KR=+ d?N?c?/tyu'ޓ]yT:F)8+,Zn4V)}U>9F{O7n| e^KDT#Uh2Lt228WGunwendstream endobj 50 0 obj 3273 endobj 55 0 obj <> stream x\ɒ4ݿ2 vPE(Ƅ.ذ@!@@,VY`Y-kЯڶts^YuV?g.n?0zr|t@[YSfh <<\z肋V09åkr\-vyǙӂ0|&UQaLޯoqSPušBw}x_O-Ǽ>_^レ|L?uAF8+a&DBHd7:w j2+;i͚Btw_N*hY*'PVF5Iz(U,{M%5FxA5)*-uX f+`XCmx98S3}28g.\?cQPYpcW&p ֬{;# !ب6E[ϔk',z[^(іȕQpWl< .Ǘov+ц. 9xk⵱+ .P?+KYR%*BdתO?nZ㲛!!=UۭGbUvрm }!] *C:&[ *N2|)*'hu̥, EhЇ`D  )p9Gz1!'W°e-YYGN/5p폊̒:wdL8'}e#'#֚ͥ!p\0#B@ur9=%K w:Ǹ@&seew0Wtf+6q|+; )F "gć38x3pְ89/%p#bZLN " yEZKB'Y0}|ס\w:F?ˏ5'$tX<6zK+>#-EK ]((eT^#׋ Uq'1,7vu` Y]os28x*6] 뎓HߤQRߝzW\E vLz/J(Z3X05iOs2'&l]5'M| ݐQ֍M򾖳)4+dޯ3^6}FȉlO˩oٵ90H{Ԣ}~|T*@FF5AvVكCUBOߧ{P=s q-gK;8=yWƶ k̩`tn=}޲YQ^e<-mJM-X|c_D#, ]Ć@:Js# $N2)pf@c.C`ê_$`hdT.u-ˉgˆ8އdEc-kdrC y$'hDU9Gos-:|lL20?q{gi (g4d]_o`wP,!Us.L s.XC g,7s[!};gc ES< jiH ^m=\Z0<0Ǎ]i~+~FFmPޗaM%ͤ̔6-j]2 :"m7ČsVK?@A ػTlY{[4x2ƕibz\ {C>/E*p-f#Ac2nMEprv4b^SS3!i1#YiчuV5Tёs099='!s*3xz @BL. EdJyr;),iol{ѡGhIHB lMJDr*Zivs3n{.;>qrDja^FE9W٢ťLpa]&X6Tg@.^ TSmYRcxƋ<ɻfzvz GjЃB5e]YB| !9|\`Snj"G*{(òlthXIklΣw8 Jς76~MdFŰj7?g"ݚdosgW$GOV՝6]N)H7bF-޵7>ߐgj?dj,E7t>endstream endobj 56 0 obj 2804 endobj 59 0 obj <> stream x\I6ShgHJ @8LN2,<v&A|\%11)-'; FIUUEkV67llT\1T75.+x n蘬l.|ݍd>pŴbjb=}qeۯ\2m>OͿMeu39ߺ3 8sޟ;:G>mnXÎzw-^Pz߃ńefw`о> =^9Р~yU\rYkt WU=9. 4-umL(,Qad07zr8$sE@!>m I?*>HᏗlPzd,1:a# ~`$J'l]1̅n%j^WÞ7S爝-RVf= nrd%6yPm;#I*5_\8:G{(ZrGWDTI|\~{2Wjv*kh5\uN;:-^[Us c !e ENLOh9t'S%a''{o8W+"Az X]n~ܴ݌\jVtk\ 35D4}dqs-@RD8Yy=`bHDy`DlRF!C&9`:FIE.Y:; i,xt('$*%YD{q:܋`\qtė#BLl ֽTDUWn/I?؍$-q[>0%mUoREGq-kp[C[l J̆hKSCn[~!G9I!\Gvv~5lhG'{ 5kLcHqso SZS(G`um;S6I`, kV=vjh<`/EGP#g pۏ#j0)6aȑ=ODbk_Oc|h bA#>2ZlEczY"'c4 ̝~!x; fY`t0jOa65*_Xιg9k}JQW]qqw}_.ILxb՚R#weUUt Kd>Ց5|2Y_"3 m0)`VEt+8S?,65Zlˋp2Awϭ6̊biOby{2[q3XZ޶Uvf37/ V nf-pBX'f-KAhڡ/B)<H~=kĎH:;iv~sv`ga$*H)srqe>4?AFE <.rOUWf(Ew- =z$$ ޿rhy^yG- ?swI^皑4,Jޝx-<6l3氃/m2!9tJdTt@;Y*>~?q۴Ҝy_|&ȓK̽zDVvXP^GhI6>=(dpN&f^cxHU ]EvsH,Y\Aΰm"$ϼ܏A R=FyQu'|;{iJخ]V ѣ&}<pS(1UO3%=exZWUIXOӋܘh?xy˴/^Ad7tȓy텫d aSѫ$->\Ëui)qPc ǃO1j;0"p65rՄUVJnjTwV"eEܘ#$bEuFԡ!dt/ɯrƏڮS"zQO07LeZz=> stream x\n7}?_1/UA13TThQi%R BBSU*_#C33_r/8ooʌ?OVGI"T͟?9nlg"cmXU(x*ED}r BY]ے0޵풔e׾8F/M;mNrt 4o~_mE9z [z{ ch?!^+3ߋ^]zsI =ڏDU)Yvvcʘ`֠Q"Uͫ<]펴 ᔶFТKR,pN7(XUEXQcNzIiyi^^1q+WjbV^ȊZQlfTFDȷtR #JHa0L??m$ X:Rⱱm}{+Y׎`s,A#lQ^hʱkDQ)b6g 02 g8}3, 52[sQFnt 3}e` ih7 }FkK<~<a&Emƺi'_>ޥB%(f~wȼ PDe?l p$j!e;`.^#*Qp!Q| ؙe,G\-06OEOK@؞Cb٪i`ϣ³$?1 EO~2q-ޏHSľj}~HL߁L6^h;:423Keզ0r(XB? 41 7ZTc2H/m>P0Jcȼbq=5 )J$ޏ>ZG7nÙt2m9Q #TKWGpV°(O,J(f,f뜈"۴R@+҇6Hf&6 'L'(VUT 90s=rSTMW֢08p)| `41Q(q*cJ]WK6Mƣzh @H'wK+L;y6n SybIrs2%,<|N\xƏ1ȍSX)IAEo;,Rwlt;m\S*#H(3Y mJA$$)Faf jHÌrDT vk2=n5^$R$NՅflV W1JJA#)r4jQ=s4'I80=i}32zG!C0D'q`t"2G8llj U0'p&9h5J Kw;MhE}N75!eBRRfq­AVlUKXu4%h庁edsGKݾv_s(ESG1[U͸)άOvͅ9sSBiSE"o_s!R,t5<"TY.!6>Ơ,2uE0B#=CvXG`S鑜b;n_F=et1\|CQ.48-H%N4D/>I4NϛcI[xq:I~?w*EOh3p ȏtYW{f %\,Mm͘tulL_:u.8j(E9GjXGɪ8|=g1.mZ[7.ò?,n\y,)ɫ2k(z]c [nZS's^pm^'uGrѐYOUh %٥ .Eyp@E/zNɼ|Bf󱤼f鷎k; jhc Ac#e Cdճ|i'j̏}T7e#V]UQdĺ#Sӏƺh~4H9Qƺ6( R|t5g8']GGvv/l0u -'X+>|ws@])>cn9:/up2zsu{@&:1Z˕`N}H=[A_F,!zނk-jtӲ)X n=.ӲSSXS\_䧾/pï1{Sendstream endobj 64 0 obj 2412 endobj 67 0 obj <> stream x]Fޟ e;M6?Kll Wx 3dE#Q7wI7_3/3Yd?'vowoQUUՇ??y=~(Dtcdrl'^ILN֧i>yuoWcO}IflJ-B}Lblr8пT]߮SINOZ{ oia xߪ53{0Jg~4!orswT*Ղ)r7[6ȦA6ZcR*e + 3J0BKJL0~,c^|54W]}0?٤3rKnޢvs.yqu{61Et=я+L['6YW{KbNǢ(8(CBM9^w?3z`2tRf@ЯC@ѩ+|ÎqʹˠEL[*:{hPA`+Z[%)#mUˈ>Pz}L&EK,9'AɌǴߤ\ :L;y۶.Dc덛&Jý*!hSd)=FB:xi^,JEcZPD(v-P ImueuYuaŅK\C\ QȢ~mP2uTs̨Q}80< ~p-!<'sȲd"$2GΞˑ$6nI~F/^q00-_ȅ9"?W+2M IQtf:Tp`j:Xl쯦L}|lX}Q}?sFe֣|h3/tT4.q&fZmp(`9=_8e;Q s Q-DfW$w"0c"-82ud[2<*xt vƲcD;.*2>(vmyic"2N}#5jxa}=T_bmft f;;R_XԪ3^p{Bu_"4yIJtt)O 0N_S&8  eK axc/f-yJČΉh(7.` KR:pw?eJ,Oe&V'["e|Yh|{hG`ZPiR'q-pm8Cp8+ո4KRO\wqEV/ Hcʍaj8Ա:N9|" w.dAI1IPMOBsyo!wÌmq7,2*A`B 5`X3^"p!է7cLk}CҥE۷/a8q?ַ+Q{(3nJQpU5)JŌIV4*'HQ5q>OYM,%J'5}ʼ$sufφY ]4@]` .Rdd@K;g{73bEJX YOHƼ}$>o(&[g$ is{l G&4fb*p7t}eq Cq*G)+p[!l9Q YF=K-B^\O41a"6% LN`Jx1td$;珞Hs&~ݝ]HAPoYhoU* ~ 0 >v97 CN&u dhKStԣ b2 o=<~F7e/J~YR;Z?KiS%u~@tۂ^t2R 6ӯ}o~uLn<JΓHt$~=L| WA#D5\%Ow*x!5M^wy=J֭;;M4״Cish|aﺗ  @sVaa}Pxo ߥ垳g#YW$.5uEL[Q0[AwI`Ŷ}\ƙqq,著 rٱ8>hn Ohot0Dn -|!o7LdFiniKAΐqJ29BW N~÷rfUgfu0~iBʙ͡_/ jPީeފ!x+>_=aِhmn”Y?e͖cm,aK~}ۜ<@^  RL÷ǟ--]ڤ`*mןhE1NwBu"LoI =mP<'Zendstream endobj 68 0 obj 3168 endobj 71 0 obj <> stream x\[4~?"Eε\$*E\ +zBK 3xo8Nrv Q>{lOfewOwOQeYV߷&Nvo|)T"1299݉F&US*9yk'w*Uɝݕ]BOuNo8Z_v2MoE}_tftJ%\*57 wu;OsǀwWK2`|hnyJ }A5MD5^?InBNJ*k*:ҦŵLݝFjC"Y)A'eLkCu)heȕNZP^@$ք[D$Ѷ4@hw;ިQmǹ~'+o-dM%MkQ׋.Vc^U&$h%(̪>ViMIm=ӞkmAs\׺% J#cHd0O7}ޣg8Nl}"^*MkLY /h9n :Y.[252iV?QQoд}Zg=QB +5?EE߄ѫ^_FX6=sX!Cw=M-:=³p{(bi?~k.T'tc M(-?6fn uS֛nA1Ka`!,iR'+ KfZ4Ve,3~@?e$EYvgyҼ&(kU*_)BL$%<.Q7YC ?g @3i5&o^so"`)RZRUif{!]"0eP,}+! GcdLN-2[r %hC>ts." BjX͐@"8 \gٟZҁ!~i\j?>#c;g5"C+n^Q#NW~~73djG2~GX(}2!;7:<ݯBH'_hB{:Bi#&>>\$3;aV7'=.N} p2` D?\tRKhҺN;k1kϵY>dd[|(!P1jY[Ih8ܲ(0ܹ'(DM9EB&0o ^W{=do GI\;I?y __%-#u8Mk2, .5.>-1qȤ4D>>SMwm⇙}ΝHfk3eg+j܁7cs^2f)7hCX`5t`b6RB$'b#Ө⡐*11W#I@86O\"]3J]k+Xpvj FٹZ/$љ!p-k?믥UZIQKwn*]-.Ɛk]zn2W!)@m,Rqt˳[ ~^s1"Cْ@`!Loyxoڔ6dM׊xf*űbTB # 7eB߈?<DCDpuLZi%sLkWc(+qūu@a:`]t`\\TUޅIї7g\' w~0*uwSKF"@tV6SY7a_"7]"9En9UtFaARB{>7&'Zd\ i<^S [?q!M.O{m{xw_Nd36)o#ΤyOޏ7䊫<7VeVuUĤ32>v_4 5S ֽȇ%ݛHeEvnUSzS%0*EĽ|3+26{$h~|`qsĄtہÔ&KS-uۡ*ip4uPkExpx6``}c7~uvcY7+R.) :ه*B9yȟB)JYs)\t?7> =_mA_nY׮Ay*VMU K֪몬9r*)6uעqwg-ŅXe&ua}bqP*0J9CUThZy^_o6- U[gO|p' [L-wנ x^yVe^k?.* p㸅Y8"*"K+>_g/\~mbϠ0?t뇫HǁꫦOd_eY{@gV"),=JX >#ɣW+%fC$Tb5iVІ/+W`*S;sEm9bj,uLꦸS% ΰ{],LlުMj|  dVcaI5V81\#qb#XDZNbeRE#9y VVq$_m%8&7bڒOJWL}Z5 |=c&lګ`  , e4qpC\YTvf@$ SrY+άTx3) ρϾR-%/VwrJl:1f5krendstream endobj 72 0 obj 2853 endobj 75 0 obj <> stream x\IܶQ^".ʲؖ%)Ge$KȮr*u97䤃&9m5A6< K*gI^UUջ?KnmucTrpw:KMڧ=Tۉ.6nvon&5o[jh'bh?ͷYYѷ_t8n׿ĶTs]|w|0wv|/3(:?;*UÌ_0|+< ij ʯVh/7y^IsBSWIiaW6#wg e*5.JeNZEV7kNeeagGʸs$ێL00]%"~60 ӎM|kCHpE`_8ګ fkwJk7dYD@l¤p)^H8q~3J\Y_gDG@ WF\DAf`2C;\Z;3`ԅ TUz4-wW|7Rv,oRI>Gcɴ(^]8Ic[Z`G{?r B/i 3̅ gݤӳg1B4oZ;:ϓ@Ӝ:5UR;mގnȫ% G4/|ZHIgm_vp<vRCh{7:"?ty<7O/',t! !2/ c8M*].*BЁLk@bcVIow[LsV| ˜1aZ=}µ%E;"l|rȾ?1Õiإ}89'"Xr#<0y`x%|EȃyFک 댵']q;1ĈN īaKԣC%xp-iopg A#xmCJ2m6!. oOLֹ (sª'SD29q*Ą:S*owZeej*oYžk-ϝlsSYń7)?#$3Y1(|ud'$PQ䔪8j"xw1S5ږ+1э"%2؉noTu9osxzCYb!*;d TK/ԖXţ(+k~J i7M"ٌoo N.M"ƕǯX b/-X.~x$@tQ]'pG}f'O*Ho(48+/z3-9&cD_=b_[uGY1rٱ3> 4rp([nv E5e|'9-=sp7ul1jg6Db]2_r,e7wrJ--wFb)Q衩$CF;b2, : &|^zZ ?XE?1iA1Ԣ1qqYU"9]iu BL04(2sC{ d.%9 DȆQ#7榒{RRus#$x?̹ڸ /@;cj#ƨx]Iyɿ!<ަEobzKY.LFmUOݳ޵t»&mn^i圦ZU>f]1Ep{'eLR D8{[1[xzlvU> stream x\˒4߯ǒU£`ؤd2! <P3X @ֱR[DsVjȋ:+?;6O7O3Vu]7?y];\1<;9߰Wydzkr<\Ƀȅ"|rt]jy;^v% 1\GƑhUm)n<Oy!eYi˚o-e6,:%b$ 8-5Kq^κт߽X B4 v7^T!'C@Gl:v9izg.v#Vsc+'c)茝-bC,^ˏwTS3 ?Rbs_a'[*ZthzJ p.wU[dpa@ƍ[skXx. kK/&+?&ʾr#mLBLƱ_&cS#/!CH\aqt6pFJ5} Ah4Jcql7}gHe6S |E`k\q:K ,^EO2`(tnzZR.n: g l[AH:Dl&ޅ5bpq)$aswNgԎe*mTׄ\ruB Ԣ8sz6@p{H c>| ;,w9;r^G ;~`:5,KF"1|*|?z.vN90<5B~l8-s7JQ+npEY[$EG=<02}:wt{)BH-j9pu.Y '!{Mބ[EkKy\nUؗ'0>b}vW=#[V^Ezu"QwQgYhއc<n2;#h\&{7kA mZĜɳ\b(Ԑ,Y @pWÙ }ud u*6&2b3\`i:I}gcv?&lxou|f{N5,Ė)Ϲ 5e 6T# qJ|LN uGb|O8GSƏXy8S56{+SFȓaYfc#Cq0^< U^qg ZmqY2Wy~GB YN>tEꗡlFݠ2Z?I6{z)aJJ߹q UĶ alyApۨjQpK)r._\{zw}i/N}o6R `;&]EkB\%cH.K߷H.CuTOw%bPsH=>[lj~BJC,q5vR+BR۫Kj/txb/^jKd/kȇ /`y6^Rg^R['6T, /Aob7{>endstream endobj 80 0 obj 2619 endobj 83 0 obj <> stream x]ˎ6߯*") 0yNycݶI|]>cYyQ/%z\d::"ڢR?_^^-۶OWŧg0Q/.wlzUB׷ϞD)Tg[_r[2>]us/9ByY\|MYs jW7?WeYr:}9ԞoQ*eM|z=ݞ_ mu3|zxʏDKgAh1Ȃ &Ahd[u,am2R *P7%I &)m!pV~`Xυ hHf׍uT6G ҮWȾsiQ"QҌ|hѩ;5n,eWij*exМ=8F|uRcaT#6+F/F0h4G@ˊH`je&ef^!x$T>3 qW0y<ʈLBG¨; HБ0GM0h5 o ^wDYWDCw;ֲ\Esʝjg+Xx5|ˀ-6z1Cfmzua˰kω=N/ciS?/ƑtƤk aZ#u;EAFz-Q{,bn /o<ȇ~8+&`ɰ!:RbbCaiCXeCL{O\EH%V0^׾0ur ] K({ةq"Eƺ&6&=»C+RWvwxg@ Gʑj| ?ZAMN ,|0i.=-Q%|qyo^K1wЅThb⸓*4.dlq'U|Iے{c6T, wY&>$cX1 *@x0]##ovMDizҩGqgXd[`-*6z3W:=WXP4hF` -o[ 9pbE+qcҥ:N8&h>)tCH㱯]6[~Ӧٱ,1kN:f} ]SFt}MpLiǍ)+U^5eW00vDc1ő(/ɛ ?]Ȅ5ZC,iV);+]5IxչX=Z@16‡%Aց+&l‚LX4FʄhHxTÚl%يMN4cyG ;) 08ovաA.׶ cMVo*aM)~-Ϫx:7T/c>c =k~<~ I *;u JSkTP2CZU652 b !t~>8De f0'烤f~ ]炫(Gn~f.gW=Wy<\Kn:>3c<ΰ%Y!$%ys3 ozU,,M7~&j1||kOOt[QǑQnOŖd9B˻ B8 #hտ{I1FOdLT=*pII9SxLa48G8#CG|\p3*W4:)h.*xsv# )C+b@]f./|= K.7Vd/ar"t藴9rhR@A!i `Y1n"B, m 4׍bwpc)` rMpm攘E;f+c6ܺF6<\? ڈ D3bќ qdbʘR2q?tӼ̞HA ]X&9HIv+DR)uɤo"400/G䒒+D4uB2D ^vnx {OC~N5NhFN3飔hkQ3%kFeA \ظ7s)esգRHS-o<=z1Gi?o4D gzKk4 Ш$҄Dep|{ q)iR)Mrfļ5\m* ۑU>uJ.u Srin<%:>%~ɥfyZ/Pendstream endobj 84 0 obj 2935 endobj 87 0 obj <> stream x\ێ7}@iv_!IPHe"ev6K"%_#ߐ'bӾ mMR*Wȋ:+?Ǔy]'bv}x81*kY5dz+w.D.ٕۊs{'Ey]xo絡3E4A߾'+ʋ`8~O6gx Gzƌs*KnߙZn'?6^`Y܌0C ʇ\Ev_ьɘ`FE5y'y]eЛ@[Y-En]%W.Mr*R[1*↯'yBY=;QF[>K&~C[ՙ#AnhXK0i}}Tɥxy-ӌȺ jԜRAr7L'Y_%r_4D^@[ {Uւ_"N2_zU|S^K~qSρҵsá9kk'bAk4kE|t+mdHނ`<_-(4-y@-pj-3hV@ 06O$r;뼈uAwfNFZ^︰0΄jx4GD3.*k"6ayIt 9练;|poC79[slwke?2,Zt>aMY1其 5#$3%j _,wWJA7@2{%ƤX[&r얬tU2)˴" d8Q4].G!rQ|Lqb2 ɰu2Y%Ln9\Cs2&z[x5V T27mFēKG-<٤DDll,ϼN(AuAz.Uw|gMʴ-ZT a7+rD]h-WV= uĔVg1XV+oqɇNuoj-\,Ġccm׏02r>EMު^6S_0=Gzt _B<ڶh`LH%+u1G`k 7Yp}4r 9-e>wK*};MĚ:Ӌ B@^N;ݎ,:x ^3[=tZ-l6\~hI0{ h=WmC9˜i;4t˜PLFYrd4@Kz)뢤-;3MJҳ8ӳd-]SAt@"ƥ:=j1UsW5EW-id'g'Hwe( 5{7uEI _ 3if\R)ưog3ʇу~14r?lt z"-6`!:VXt f~tuDb?Zf9%nEf05]u Ѷ$VOX$3Z#cqӔ4>9XUxC@EC @bQscQ!` {.Xƌ- je5Būeqh+8ySTW9 ȼ=IPXSK$'$t^Z/qbD59C^kmܙfi:s[Xws#t:/MN^̪w(wg-r(c2˦d'Y ebL5|' D%V=' 2}{t K' > /v ' &zO@i׶!>~GѕC DY/_| B]~|A+m oh.徫Kvendstream endobj 88 0 obj 2352 endobj 91 0 obj <> stream x]˲ܶWp)'HTű츜*Wג,J]37dE!9lNG!FAhUe3ݫݫBe۶۟ U,..wbUe{]]<ݩR/n3r*Δo;”eY˩Tk:o?0e]JZ](]}8՟2(?6庬9^<ӱN3h`ݖr `P?^SswQ|6퓝.FUWhm׏wZP)eUJ0Jlˎ E}Az*HZ JfQ:)Mo2~ w fQ'Zx8.| i+-d+4ͳRd ٹѝ@qc 1 ? f c,K:F,p8il51+ks" #]s<\p?^/aA)C?ft1ekXZVCjmWc^` aX~=v{d#r:soVs%j<>sSKY3S{ek^I\RWZ`,ɟ"`/X># +!G ׵~p;C@^ .+/~qY-̜ws,ϻU^liپp]V#:NNjߧiN]DE^YB1TƞbpRo i\^q|䯥A7We淉lɚ #:`E)+kȘ΢4>}}Hx,q]OvU6-/WIC.]+aF9\$^C[Y=I1^q!ckjMmY?*^D?։êHӁ3͐QZbN$;)ss/$BF&f!=Hewn͸3Qhgw0 U<,嬳ip }y y [,L -|`9.>x=ׂwp/9%:y:X0/B^I-xYq.bB:}]ܜtF󛥒7ڥ?G0Mihйr%&rnX>z+lܤOA;㎦} =eˏHQ3s7B0^q4)A,C_P 1D.!?r]7KйJ D]i]6}#Rx/d`g{}wV贌_C{mao]u B,r)KzS|:odt#\6kp^&J)eb )p P_ M]XȰpzA1.:GwKzSfo&q!m2k9*SYzĄMv9 SoD(s ǜgBp2,]X@YN~!ˋHT$6#tDlcy~-l2N,2Xc̽>P 02pZv'ccx,v늚$w9:18 Ic4 \9"wt3(",QZ4n0Ej7[=GŴμZX 'oyBoOtZJ߾1q &ZWTZӣ;mka/@, ş~+]8$\ct1s )\;AzZXA?ތIrvjhdI\+ l~?G8c ]izd;"Y; cӤ:7W^9 Zlv%?D=T69J cy{K<ebLCa3fn>5e%Y5eWԃ=SC&L}!#]h!BtoT'̫TXZ(NN( 0 TIҗ@8;t$(>VsЄص2b$iey'I)lJaʎ!;z>KaxIٔ&A!.׶ ߸ϱ6%m1qf3*+Ƅkև ׄ ?}\ =l&ANLɆ)MBo )Pj%iI!JU65%⓲M/ōʖj8OeeTЕbm͖%YYrr2,a2+)i62cҭ΍%6ڼgˌ%Y1b OЖKrcƒ~$` -3deɄ%n$o"M:̺ KkEhL(W[:ea5[?y.-E4FDŽI yH+إܴ'EE#oG?ϔ̾ ۾}ְ'F7cR4R˟bI.) 2.sn2ҳl*ĢfJ{#cy=1ۄb!I)OI,JH^ͬz99vg#^'inLOD:6d2AoQ#MNDe}`&ozCOu, Xf9D!ϻ]:͝_N{O(^(7іȄ> stream x\˒6WxJ K-T*$1KR 3C`^PE*|F|CV,"tۦ b3jKWҹOIryF+RUd},|p1,;8YQ+9iX&Axvp:w'\>8Zm5}{յ3f'mN5Km7uj ѻP~ c.H[SXt=jfS_o(މxCAvK (L ȍ؃`-k/Rr!ܤ*4:A l]uB0@HjRv: 8TjF]csJV{jڂEV9>S톰KBj&2zfyl*KO6m\pk:>Qdy.JN:[\O:|iɡcB/{PPa_ >:%<3û:k%4]FBDŽ)I=nd* 9 T2D:XG(ټx0&mwv> i!%X}Y-cڗ%ɥג5'tNK"fIC[t0-I7K2#%Ò4{$sB-%)$Sbd(ZP%7vIY q8if}/98rǒAS#F>VV,D|.H  zGr(:֜HȮu7lE{8ՙ%\fs߽6.FeYX50ۇ{Bv`dsf 1lG]"iaۄWͺ?.C4ܴC0mM հFwa !x*-6‡uj|72śZt1=b[aA3=1H>R[u'r">dd|UQ?<&8U갳gEA0J\k!4$tٯbzRI-9=@#[3F{DDţ~o;ŲNwO)z=۝ﳜP77<@L/) (VцM*Q؁=vt#NiSH1e`WcޞScÀj}eaZlJRl:HMܜŦ> stream x]Iݶ_FuEyh"@9bn/2,*^! ?^Is8ȋ*+ǯoo3QUUէܿ>*72;{v[Y]UvpW}sP2=9̴\ȡ[nڿyeۙi\iy;?ju.ׅs}Ci\S]F)[gPW=~pFxT ag/Bu&PEg4uU4YUY\@, z+U޸$HɬvҶ8W:J uٚ uG~UY=XX=}wЖrx*d%1<5YtŃ 屮ìK!Mb ]ʺm^5$ãʼn.WMFl6q4RyL7Fke+EL8/܇߹ͿbFNK~xf};=>3צR|2= KGSПr4LrC=%rzN D!aϨhobr{,lXG bj!Ë( ejYjy/\v垊E:W۹\e>&Ή-[UʹbeiҜ]6'h.V08lboZ6ÄEڋ}ܬx=*m,ǸmxM Q~f(sclZߺ 4 o"Nr=&F&dԲó*̪ڍ)RfNRƸVu". q7ni=Q/4p0 *1|8Cw>FhЇRfѰ7ϒ=}'Tr]wB,u d<³&NMƿ.x㎳$Qu}щ3.9F K.4㰨  AI;.O 6I&8<R)il/|?n#e\FxbRJ+8"0|^:ҌaN&Q!8P$ QpL壄D=ȜhEtҰ&E}$I< Ef }}U"q| erѬFya q!*ID$o=/;qyg^I΀chnevPKy.j)p=jҰv;]`J0to/Ģ<@\ӊJJ'zõA6/.*9z#3a^z3GbZMt6ZTA" dMZ zXT4@E"YO3=2N}w$) yNnS__)ñ1b{[%I)R-Qנ\!LK|J8`ԨB1ݡ;0(]46>;CA;enգ%`,6j%_}"Myѵn"dn 'Q 1~7hiDc &8 /ҝϼE6ajrL1<ې ,%EKp :rnEѡp?<)Ґ<>;ـi#ݲo/%1`O}hL[u+󲔪|TצRg:w!tUN%^h9,̩%KNىnT`Y QlW`QܓGՈFOi=u`MˡӾHTq` ;i9Ϟ:h;|^w !iГ\>Ki&[nmi-!FMg=*zw7QRSoR&FMnu^m{-3,be9,r.eneR4^,7IՆru['&ZG[=qJ5\M/(/+QNB8u,cSz\t=9WB D/9.^+>UXs;~kcrW c{r>_~9'Xᚮ ˺@ߒzs<[,d͋ %ka9ݖߜ -Hm.//o غ(Ob;hI&ƫ [K%ApY}%ќE@kOI7YDDɻ B ҄$~ZNt&y^޿\r 'ln8--(ןqi^?nP|oܚP% e?WB6=͖L%oo]J>booٳ\W_$Ҵ Ew 9l씝cetFl9;曉LJ&."\4{u(5.pC\z䞫/シvxC"s ҹ[zf5hD3Č= ߜ]1v=XM3ӫ] 咖3Vl|ሖ>$l}j Lh]>ō`>D%SkΣ,XxRs+BlatvWyː?[1W] |?ey-lvFJb0X:s* d(>~&3De%Ϭ/ud}$PSCU;ES_0s~'rPE/.Bl Fo A-+x=s)sQɻgx"+F p!=.`O| 3zm<_(erhas#[׀l-9Px4Hރ6ypӞ̺!_ӡU ]A(^po,"_68jH4B RrEGM-$-:-USNuN! lί 41SWQfl-1>GǛ 'Iu:r_1Uendstream endobj 100 0 obj 3055 endobj 103 0 obj <> stream x\KsFBFT P#lc6C 4 c5i^]CxV3ݢȋ*+̿ᏽUyUU{89<9XLy3ը\d;NjoY\;͸Ǐ̸qy533y!鏻aX~1 gj0xѫy4cK陏?t7prHjv75C3^|klV8~4mOŒK٣v|'{FW2&(4UUԙ{\$Z$e茲@K&,1fJ{`qk8mJ- lSM0eATQb{ӏ<n̹onzDnp_/ΩCHO%J'^my ql23Y8luJlZ1F>t o5Um ," Bhw=KP9z~_Q`l0j7DKY\ْ:xɎ=C$ ir>G4 joRjXwC ۣTs5\˷g54c>DO͐=;1H+4M0d@$A;m] etdhG&eS4b+EI'@E VN.Jg̉ׯ~K!,l ~-MC0k|qл:=s ]? ~흕=p}sdI' ,PAYc \)sM;ˑ]Sc fȄr.mwu!UY\Yy8̪Qի%:T!׀*ĩk^\WQvR _] J/SY#f;xW%pp%4U |HR e9ԩ,o:Ԡ%kޓV#7teSg}OT-1fκK;u~\h i2v0'RGg)ii`=uMnt7.tSmu78IEx/(Y/PEjbB>Hxiy)>U[f6M^KQJ&p9y1g?iDS}?;1KbԅJ#}xFt!>/=![EI6^L9KfV L7o,^c5O|י-:ص]RD{IwVu?-MA4ʤfOB}G5c5~kIO~[ Br:-z'.AD#͞K"`o~wazh1dՅiчӱuw:Vm~: qޒYM|zv#꥿mfIU` :NM -5 ,a MeMRV]*w,I*.=cMi:aFC!fe$?Zog'GQқ"7OouDcɩv{w0 ~_J?T ߐ[ Y9EC:&#ׄ0`_fhsN:#~UuʉߴvN^}PۀK΄ϗingg{[{=&]3 6b?2\WBھ,~@O @#خY_jLGtWX. Hms+VV"Z?Yendstream endobj 104 0 obj 2518 endobj 107 0 obj <> stream x]ێ}[d8CKˆ & .+Kޕ,[ A?1ᇰ/l˾TTuuSE.6?m~DuD"{tkQf#{eMk5bN^nʼ4<,I^Ӡ; i Ό㑽'\RC!xBfzea@hE_X\ ,6m0腹,Kȟ4@>%&2H5} :4|b3h`57ƪڹXO#-cD?)en]cSW, Q>"(#p82a[Uf[P,6hhFe[\jȫvV$ܬYPس˹nMH46Whѷb,TNp I\W>v|r D'@^Ś "WR: &c2+bC.: Nl88sy=Ds>o{68B)oqoʦz] VC`!CH?ѣX>{r Qи n C#I|q?5T-}Z\A5Xgs]1yd Ffi(dsoǘ_$8xVHE,Mkr OacEqA{!:3UTy1$v+dcJL' ͊UVi#gBHrf.\°TPVՍ,!WMYUhSŋFkEdeZœW.!)dKSGXHU Ģ9ϫS1!HxI}oǨU̹{eU7)#o*d:ϽN>`V:;]6ϯy2uєr ּ`֘s{mÛ i=ҬE.1 {6AiybjZ~U!=^hǫ9x%0;9|/@`w -%R+?($kEѸ l+Lf-dd1ޅ;w6 ^VVQ B!S lj$4ea##x\OF02gf)׳n֍,D:O(*o3UԦ4 KeJDδrQWҷ̫wF oSj-tj}JvWnS>E ]Kx~>ʤ JN{JE1iVD{o[#(cρ啚M3)%T6s0|ٵ ߏzB3f9}\./zF<0$qN'p돈ݙ̡`;hR""#/]yH&?כ g#L7=e#P:Pw jT:dz˅M mkեSorT"oeUHm7ۯ)VJj^TmlsM!%w[MFDuR[640cTD뗗0t~$ֵͫVB:p~y/~6s_P&v%$뷖=SNHFy7Ꭻ=5^B_}3# 5s;`8rL?[p8hp/e*1_}0&E_Pu3|bԢb3cE Z.{ G;oCsmR0/3x5uRí 1Y<emȏ5u[R FfA1/%Mi|Q`.]=2?"ͫǫ~vEL̯-|aZj_`bxendstream endobj 108 0 obj 2750 endobj 111 0 obj <> stream x\ێ}Gɴ+@+m 0HZ,+ɲ$6A~/@^~Hs9:⥧wwv=ЋKXuBvydgrL4y4O^f6~!LcdvvC-r%Vy]n=MzͽB?vw# 7+Ӿ_t΋jlpgC,n !rEK20gfCwev} }㷰+_@oSvrr;4y ;-Ѓ?s/d1˗vVTٵYy/z٬L,zh\6ٛgHv(tU(NU6yGYT?nXjJUT(mSiiB_V)y?Ӣ?!~eV*:MY0Ugめa1҈J# {xmo Ofg~iO yU-6D 1i:\+iDSx &/`X?e Ag¸*3xgl[Q|^0~4!YqfV')+n=Ln)wQ6nnUٳYlrC򝻿a) ?Im 7Qf%D+,^}A'Ӡ?bFا9Iۢu7^9GDOtx`Qk^4h9c[եz&% AH=9.JꝗJ{qO$B򻡭bal/x7LCe\8>ُsR7T.9rc$0ߵ}h{q:Br^ n9JhXQb8^ Ɔk7BK wm)c9FNx o%hC[ d͒p?('H9i"ܚu;rj &!ŧ^  P&II[Ȇ63* Ҋvj3q)x';#hKބO%0"躲v~ΒU%k>+RSr?k (jĄŕ`Tkr.Nl6M` \81,1LdC+*YI!7VV" <6!(Z5e('rx+ug{2nyl#@˟~0YAbIVL(9̅ !,53hi8zk!siΈ~pQ grze.8䬚d-ctnEi5r|]=Dz;̻g5a{u2/+hC &a3 ]=% sk'2=` <`|>"S'WK{m1!~w. 2i iFk1;95p@q/IDM PijRNPjb&KAQ(9`[cs $ZwYǞBwkw,d4zP7ZQ8?`KqN]èS=T]l9 c}y0+(l[g֬ID Q,7h0O*n˺xn QÓ!'^= c6aY$_6QSDE=[>[.&dI}gc}ldٛJ?"+tsNPL.8u')Ő/DfJ$Hr> stream x\Ɏ7ݿ%(yEٮ&Q BV"EHU e!+)U)O!XnO;^WyQgt|<#u^uOeCQ,;xt˙\ ٮsBws-TۙlӼ~||/U^},P+unrj'ž?K˼TFow }3 ,/8ӧ0o }M={s=;zp##\n!;„hxv!gqتUFXѪ@S6b ? U,P@ֈ]2uz|_aDX=e(Gagm6H=dY7o g[3B*T?RC&DT&bDnXՒ%(S5!R3̛W>S3{BƌՇZRVs OY.ydt$6)YoI(-3W* kNw.? %ٍKؿ]-o݈Ql-oY-o_p?? >u|ǬYt;"_;"=(֋_ z{n )\Ӡ56#^Ө*A5&j Jr&VaxXJ<9NnUH8?[(iܴvbɨ|;$=ZTV,vH6MGbQ!'j>֊0oY\4HӮ JMd\m\  s|/@WwЩw 5(晞ho2R bC4h{^3f߁֣nAbޘd~¥&rå7;w yx4VDk9(f懹hY ], =k}ͼҽSVR?Čt8I->|^OzZWVS==RxBgP$$ L1;kcɵ'բH ;Xp]LM1>~U]֚>"Vo0t{\> stream x\K4_eL;-T*Tә/Ebo`:N/>vron;jnw^L$gsxzz0 !͟%֫Y0'ӳ*KTMluGUjեj,Rj\uݎos\M?f1O 3>j԰Lp]=4U4~N0 +j| =Q"-L'jSyd݁?y߉_sbg7@O;?,͊-kD!<ᣖi*`r;|+Fy]X'<]1VVH+h?i; 'BJ_؃SyVb7LU"gSYֈ3F# 2Wf8# 'h 24@>JC vAq|Pwe<'p1B8H< ~n>n,p 8FEǘqUog6+y0K~LWi)/K m%c(@q`q&w* olj%a*97 fP8aA&p>fSKu1b'ɨ3*ʅP^Y4[xWLYL|A&P1"b@Pphʒo0ٹ*JU+Mn]<%{cKD:^QB0vZS0tVƍ!֮V(ty/;fT7dV#eQFCvT$B\ Q" 0PI9D̛["x)̕4)yF q*R(b~av,vdCш`m5xVY}.m>\Y#D ,wӊ5) ryAI@%#O|Xg,[*L,2be^ĕN7u$UP KOL8w|̛Ts][%F-ՠJfJH"T<"N CB!DmoTK!dmjͪMy^ g*kuȋ:-raAUͫPTLk+{-B?QE,= V}4)Y[ V&]mt:/1ekT]J􂢦O9S{(KLc}lSEb@C:^kF!-*;\T}j鰋Rvݔa]˗v!x{z;r`KvE-4 V8l,{pڝV gR8 gFѸ=pQh'<6vjYeloft.S{Q7M@,wv5IoúBƔuU\_%ӺdsL &߼k$ss91Ǔ{=wA:9m{a^ZK+Cie:ؼi\WK]QrQn~]t8[ߵOfTw]KunKu黎R.}ʴ!ZcrotDے2ۖ=-YoWkd_qSwnj:l樔~ۅAD3w٤9B025b<,кFϫrV>5' V?־?GX[p$'xGa pg 襝Y΃#> stream x\K4_qTHEe$$Ħo:Ђ@KX Nn/>}LQuSO~VesY!tn7ri;.,NUUˢ۲.N}xU]ɃյfK!'fݕ]7?;օYRMGqY6e?wͺ-]HY6 ,Z?*մ~jxEn gy$y?>8VbdqGPB }9HD}>)>J-jVW]і..%UTSʪVe*uY ɸ܅o XVn5wc?Xn>KCxx B& W~1.<LonS۹{HӋ܇Ȥ`cJg幩x0QzH tgS.@g<8A9x.&  3={s Wd9I1CI!|e#U=Qt ױU 4lj8HhPתKkY lb,mƤ A"* cܾ>رt"/#7fC9B\ 稼x\a6PrHD?*Cj Q{fkNp} YV-+JᕧRȸ-,"ۼYygnivG ]y@XymK^빞 #b&fz#m?[J!ӱN"2<}0%!rXuPa&9ٚ~8ǩoៜ}K -BɈ|R)$! rogr$m5 d-MV촾༷5 I.^06yKQIcf8 \-M_"tף3,/s<_FQKbV8f] $|l`'kdzcS[I}+,LMM$ rM03h(&6؉9k/]4ά(AEIO>dB;ָ?slqAf-_͍F_dn9ܨRWs*PsEU;%CkY3:R";2[YW3 K+ՙ٬f6_PX%*$&ji-DO%+J C).+, + *8b.nXs`G}=LLhO".s5ʂuh XNRf3::w2f6e2K}yuYt\.h~5 \}`ːʫAorGlvkL9&κa`$u(ˎ5"1gUcOQfP_.8 v4s wU'ܫl,;H#9MIeY^~ ݓn:{G4$ɟ*B̛ly޼nR*sA̛G|{<جYx'=s˞!go'De?RLnb?Ȕ[WW e0t r7ywٺM#H'g/ZUtX ~O{VPhj/b͡X OaA{i&whLb:E'7Yjc=;&f:>V]rLy q&cfۓ菼S5?n*w"|CٌǺ6#Z|ctzQ;0%Cs#O^%s21zs6Do0!#taĮ>6,FWendstream endobj 124 0 obj 2808 endobj 127 0 obj <> stream x\[o~?<:ifIM $mVH-ǎ%ǑSEKЧ<\.wߒC9i.^D6̬ʢlq<|nV4E4'O6j+=yvԶ-^n۾-ݷNnT'[wL)۟vWt+m[ӖEڏc'Ӭ/a9_?2tXzdUQs^E.t={S;~@8^uǔ(`dq9rOx:R&+yƉ36Cƻw?]łSN;)  ,*}sEs0YRKB 5Ak:Q`B)kʣڧ9E0^_sB_G>z8|=N-qȩ=e Agkԙ|h Ϫe`!ރ'K峠"ڟG$pvX{-[_selGʃʽwY iXuauix.t c]6Ei\5 @ҥrg\.Fm:@h5jʃ-Ѩᚨۢ#j+1!YGgw*xIyǒRFI9vC!@Ah[<'Isw r¨oBuהxF=GedO|ў\JK;ssclZMثPժ+wV3d45@& zrl~8oso2̞1}:#-$0'V?/!3*-m]G< 1dž&G ,ĦΠDK :TnB?8}Rغendstream endobj 128 0 obj 2626 endobj 131 0 obj <> stream x]I_rnw%c8  Ebm-qr!Ud7c]ZX\&iOG/v_ޫ2)˲?zwmgW;5Wi}TI?{{gvYu]eXsW4}WInWccW,4o;lP0ؕDjS)?L+I5M3| 寀WP~1 YA4|8i`fϑ{ ՑPn y0 km ;B ǁ-^*#0V*T:Uirrwi$<"/Dˤ0k@(mvY%mW&B[ )(KJcZ ,ּ=ƾ5_5SaieAوrݲWYuS#%Ӣ J꠲ۃNAQʑ|͑oڏ’ʒb,+%al1Pʯ-oC8H0L3~=7Qpf[}ݞR,DS߁~hVdͽ΍m)9VDԏc>7Ag*5e#o!zJGX q' ƴX s[!8@ ǵMM<37|!A> ʒVbf$иaL~ ys@8g8ua<뺜1^bDǣ{&XD2'UyuoUcnd?j'k!5- H=ר|2:f|(P>֨%&]~I4lUzr /ԋ./.]t5 0Zbs>&y;1Y]M7>Yι]wC teiCD泋feI Mi|9ѭT뎠L =+h)-O$"R*)Xt\GvN#):A_@!ehu5'PЦaO[d#7z,"HS(nړ4yy񑾐G;G[lzښ׀f^1p:_wq {Qn\̪8v)@뛈/.d2&;dJC^dJf{yJ289,Z Υi衣 @RȗAsE ޾\8Ȕ( yM?Z1q8Y&+^K=_Lp|Q %$MB Ѿ UOt+dplP|QTͷxo =5$,Vfc&Նd/\dpA8po>c/,A~ j@v'np\N[h+">pSy <7:uG\O(q-}"*O::kYw4 cyܙ%bX^|[oA=e}?uǧ 0S & EeBVce5[HS;pc2"GN4ǔ HǤʋ2٤s\4D 2!9]^G^(2IuSJv03VMBp2rYXB6r@okv,"VKQ vhHw/U`B&⍕pOo|ݛ# %$Lh@EQ:Ÿfcr$M;8&`v1[3_hqkB0>@1bSDN,4/8f1Eys`+y <_YsԙbQB'cAFVsەy80ۘ` G6op#Z]=/0eNtd_*q,yy-(wO382!'_Ӱ~~,B'^cfvq ЉE+*/.Gy_sjȷb "6:hV^Z`9\uw$բ?PRz=/i!-o6 %}\#c}q$3$G˓GxĴڃl69J)xbr?Fwfۦ\'G)NuxVϘ'hŷhB4pRkM0&H`h5*|R;{ccve%Q$&tyh s7kdJ@z(ᅋv/Ɵ5bsM/' VoPpj{gUnY}S4F$ouP>lI0"f5n[y:bd67}+x"p'DzobD 8m{ X4Y#sgi(u/|MX x,IbH3!|/&Nq{g{)ZA:g|c()Kk/)Q'$y{2 Qk`MC 0ﺪJp #!sDM}%(4Hn44~*q_}07y\[I1kI M^5:]:*Ν] G_W-WLïd^WUyU?jZ׬'skendstream endobj 132 0 obj 3082 endobj 135 0 obj <> stream x\Ms6WL+ L6vn{%|N83z(@"DR@`vxT q|6{7{ !#c2錴kUulvW33=}-NA2v|n.iȧ]NOe^NmLOUNjmk7vϴs>z ]>TY >4sX߷C>hQl?oڨwcȏ`#U_Rw<&Ds{I.B^ u,UxmG*_)0 S(dVZ7]>&& OeN˩ȥ&;قִ.Y«JO+zdG͏f9 BqZ3b)k`rށ,s-k6r|b/neMۡ){[E!M)(#RвMFlr[D,+5ZVq]Z51R_E"H_@D?c]Pf:j]G ̒/)Y2,fWܠWV%KRw)CgKLRFUj1c跐:}[_:bܨwƊk;捰WJoB3‚9~Nf'Masbh4T=@N{a$3NZ \ *qqT%7șR?8OԎCTLehGn0ڬ[f^خ[.ݚ$XwKà|nGUN2">\2q&4${[[(n_/w3zzɹ~nCL\[1o#- dSc<: f?s_<Y5^0, 4&.wXn כ(YhpְNpA;~h7p-7xk4 8բ@uxoscPu~%`Wm'-әj}gbmL\ysǾB5^Fo"jţ*@׾_4'&SԮT_na3ݣhendstream endobj 136 0 obj 2076 endobj 139 0 obj <> stream x\I41)hGF*5IKfe Hrgp@-{<rZ),88[[+,)xx5;^P?P4PF;[<}zK6;\@VG}CuJ͔ڭVZXkǛݟB0Ǭ*\ <5!<3My Rtm;*LRY2h% KFJU@cX#[hJwÈl/;벴.%Qp&_&G(1YȱHu$RPZ5#1M mVe0sO`g[9IwĠOdj 1E|dQaĽm+|HE8Em7UqEWO\I~Cv0 K9wqGv6J^gJV1m9v PA'78<dN>1n ?m<sDg[Uʞ$Qy;mD2Ick䏍#$!a3OF`l1܏D%ڴXÕr*jZǂ3* `U)1nOqp5$- Ƹ:Aוf!E`FFLUڂ!Q]ʌDČNLNDČ]s6#Q-G43\D M"Q]]n|6M )希BBh}BjFz+<: >eIP!euEken^jFTElJKΘj3t\#]I7J$z=r|90Σg쮢fRS15j&lw j&4fܞ`Q5Q5qt̪ NabRgPv (ct9rgWƴ&pz.lrΤ ~&`J\;vYqFR0 'SpL Z"DO${Z JQ(}?> stream x\KцӲDx፱@Njbx}z8O%Q"*R-MH$XU,ͪ$3<}6ɫǏr=[IJNurvg/w:f'qj݌i9ο?<81cvl|je-,1_?3:Us;~=WS3.Bm;Ư+_ [0,psXnx#)ø=}sX~tðMii(N~e\Ez|١q [̌YZlĕR_.Z1>]s^&0U5U|}K2UJ7UwGYu0T,t RHE9{Žw)g3I*=Pׯej=:te8^MB7d(}Q>"sݟ9(CfE<2'BD̻eS ;ȫUn"%/ȓ7 ZFtq,VʴI\Ec]*,?$1M v4we`+aA7q1hshe6GC63Uin#Qz.WW_?羈ߵ.//p ,0욘9U KhJtFAYpiJ]BC{FVٳosKa|jq֭ptG9׍'Bc׹"<16qn5MMU4լm¬s8498nR\PK3R`3c]7[w4Rf-;T5aЖ*zټ5?9}TJ,ƴi-Tri cN,|(K3>y)=)]b8L~8ju,ۜ6$¹8"tsB<\ԞԄuě"&N.ܾijZt-$. kXaIaTd3ً w¬cX14Ev0H haqLvj;+ʏHy98ySL|,Z kM-V扛L\|HA?I&t<*hbv#2'pk&=; j|&w5H$.FQ®E-aGe#} +`BUN3Xݤ}5&Ib^j9k09,FL~[> 1̜^ĭrVs+-껡v&};>/i QDŽTe n؊1ĝWr.ZKv1rP 9*ק!CS}h^Snټټw1/Fl1|9.S#6,s]!S1fM*u׆~Zun?2(dF!?!ijAޯiMir-˥ !6@8]Ypd돋:'pXdYuƕ=}Z)R.fhdduc~g>Yic1};j]L- v1Cleb ,C V(a'`+E`.< .d U=٪ciMa)\')ߑ;A^7?pزE6o2dǴ8gZhk`;rF1p/ßB=Nqv%PQ-"@dVMmk5Y\jim$j (,S:sQ(F}-VNÍXma뤳%#udF-Z~m%΢> Zq;E<&> ,cwW % 2<9 k/ W@Cq޵M82R81ՕhUA%r֊ ė!Q!R׈'D2ק}O+M1=`q;M^"rrV|pazQ.2>Ʉ497PyL\091y"Ug.pML _Y<ζJzt5Y 8n3LL[-\ ?~yūZIrendstream endobj 144 0 obj 3012 endobj 147 0 obj <> stream x\ˎ6ޟۉ@U tnpZUw}^n ]s2hO"տ?O662*jIv`s.hCYYeUSl.ܼxpᄫ7 oԸ&uݏos|j\ L)Q?SÒE?~ 뷻55ӧ˳a[ƏԸ oSrg@)O-+-[8X}ӑE7na{8;\v"7 /"wKI} dwM?PZVҦ*YEm"{hs (JÈNLZ`4jM)OΛ%)K)捄J@ןnBؒpR * dJ[Xvpc|"HCXf/O2)d$\hEi)ZBRvSd[% $ W 4\vE$^/#.)e 5tWN,H5(Ƨ]j i;^eXY*F@P^=dyq[0u;e$|VMZVv0YLRuڸaRør>oa>r^-W̳4XM1]nt#T*a9v#,/ep!d(^*Ћ"Kݯ{ehiHrR_)Kzy&[wʠMY4$ /QIX8"x$${yq-5M+Oc wy8J5mEUJ>N<58GdH>]L<} c2'32ΨlUHeT &?RjΞri픑Z3}?0QwyDTk <)'kbV\k/?kg/fdS;/q-av摳4 uL))m*'ESg^DQUuW8+DMUB}Yp2Jl<5견\.HkhmN(r %VCq/o톺a{MIQAr.XGMsƚ;ldeFoHHϟtcgȷΙ.tD\lZd"Ua5ctE_hh˸kOwlkۨZƆ.N;x4VjZ1e{_ vx4LŜ劄)DFbD،c< !p-UNQv*hb<܈7N[.q|bYYSi>꫁MG0yQ(E9DO6{sk{jia{./o&b6$^_.'A^gbq˚b|89kڻxUVWPs,cbLxÁǮrٚo=G E ko|RxcxE4ut]ghopU 6xI09w6V9[H1eb=jkz\mC .K/F}Hc;6sln^Ulߠ$Yyњi,جE>\[Y֠E{TP1}*BK | g+$?\tuZ@W(?.U: i5 kV0J=f91V|p"Ѽ~~AtJ oOac*ܠ0܏F?]S&'xn< (lK`4"R:,'﮻0:A¦KmLk> stream x]I7_ѷ״"AH$,).a0df?E%?Cڽ_l~3Cn\$N(Q<9ZYXgY?r[xDĪwxwbͬ(OGy";Z]+ 5bwj\Eюs|V<ƑXvv~;iv|im5cOgwn_ -pԬ/Ռn}#$Fn\%?ϯ3%j1~A=+^qG~俳=DŊ4`"D&ϒ"c[<]i̓Q́,63kn>РUi(ZJwpF&1ԡ 0ٹV8l6 Ukna&!ޯ]̌~aO3}'b>"&IA/]k5xF `60 L/' !c GZf*1c !NUxTZq󱁱2€GxZ(wkkdi4,$Pd44?S6f:lthuGC)39,7VJex’'iFI3?B*1l~6Cn]wqÓ!r?Bk%y? sҀT~vD>3!\O70dypDfcI $; sNf ւjCAL54Hc$R[*Ś~ UF\ՀE\qD-jd qv{I>㔾]`Νc,SJf2әnMC>3Vixɾ7h68DB Zu+3fѝ[F rEaM<#@8 ׻(:?z"qaUms3ԦR˥ ,LE3: KbY ڳ6T uieTdV4YXra}T+n5E _?`ڐqǩ}ZLmRj%ƒ B#b"JzsR9G暅p %qt([Ԡ8R '7|HgZ4 2.+T P +y^W5֜шG2NeZE% o<2Q c[!T -ݾXeq! l 9g/H2'ON`{UbV/ϧ5 *ڄAmP"aDB]xBZaʜkեAuNh=2< XD&ؤNH76F'_DR1bU5[xT=/A/ҿl̇$@x4^1!VP88#|Ҭ>(++}c @ /F @W2 {N\XH, ,jwb촀a3;sf-ڵL; Tv!s.YV],N]Vsꭷ~ޒd(^:xB; #Z|2xӍ Q^qrD_M՛]:SZYdc=bcgf t6}o=soh8w% 0y>IE6XgcA_gC&)l^N+,/wTX|7'V?r0oBF֙OJs J{;AHM i5֕ 5?v BНbu瀺s#uj,Uxv{3k'9k"h'F,"ԴTq FNwߧ/&,)-G*DAxC[((%Sqc,&dSYQ3=tFI)J* vF8(@^FsɹJ3ߩh VG&A]2Zc"q3L7m2YA5smW\ˮ@|qV=F[݃ƞ"6qP]}vye-/5%{_޴(4i/o`$ Ζvh"U4I@5}mߛ1"̓[! *+vJV+YM+,տkZHi ^V+M+jɏkeoFOa$7_mFw蓆?endstream endobj 152 0 obj 2752 endobj 155 0 obj <> stream x\ˎ޶O]ÈNRF\ 'dc{|عI A^/@6},*JD~:<ퟩRԹ5H$59|BEQ?r-|vONلPt2]d5u1>r*S yUD2MꍜRi rDJE ]K;"}דԃ٬߿Ӏ!:,z0`tϻ uP$%[7XxOl9Y{dGzyV7@diQ&&ڭsvw 5^_[*6?xsVc%0-ؿs'qBDV 0D{vFKNN:˭oz+Hț.(ބ"0:td2t3 ps+j;YfDeF!7gm$ͣ>ʔiU(SJT]DoKaFP]2ACǝ1u|kRf+]c|z*}D2-TV5T !tFMrP[ֶJU?P(*4Bz38 hE•9*9Ň"7`{:Fzeg`;ҮUW+P]֢4]mqF5A ^@UIO .Uj@F&wЭngA;;]m\*; Y!}mF( `Y]{aE/ۡ,ǂ:T l1*^aLGAWʚTWO`ģ¹Tӿ ,+bc2< |hQZ0U9@:Zdn' [ND>fmqXR@QiN0Yʇ= L-ArpE w *T9e*e,uXۜkzED=5lHر[J>kq̯[:ce4"9"IJ{Z/efE֚qE<ӅZ9{AJr tUHU7ou7 rpn^׫nU7oh.ա}fxB8YW W0(Źk Dx=K2"Y}+bob%/woQ8#09nLꇇ7˳P(<5Vn+ML>{ieQHNVUNooezAN?կ~Oa2W@p㾧0`DגAm|YD&h(Ӟl2lvG(MxaG8)-&&Ki#uR˶/s>Gm!6GRnnV+AzdGmUbYك4b ɲ#hk`EؐfQy C?'f{d@ٗXʙބɬXڍgA J#m{I_ V ' ('>s[g{l0o{ބN 'U^.L 7*mc=:OC'/mria|MT(>z<֌ņmE11qL!&!y)YLb)^h,MNv u+}vp_*gw*vKҖCy7 d}~L$ ڬ,?.e>?=f #ig#t ұSzg0T;P;UqljD\* OcjT9B(J\\2$Y뉦u*lpmi$maF9l3yuzzN^&jd!fѳ?"tv, 5W$m'.CO pY=Dq3':#_fߴq|v½;IV/]endstream endobj 156 0 obj 2598 endobj 159 0 obj <> stream x\I5_7&i۽!R$8EB̒m&;7K~hnvoI2[,:{>{UUU/~r}4?zˌ7sD<ΙYk&޷W$f Ӯ];VL}q̴+l5ߙfkpv|iʴk&Z_˴ VZw?Io!rUdmxB?ρ`َGpb0#=G I#YQ;^ q;Pcq 0uB~I p'1~v3:˼UV3C[8'F10;Uus|$__$#8gH\ɎdA\+D69:< ýIv CuxJ+>gU@WAQv'Jgub&fs wRs,'I3DE;!e0| n!N*OշOfz]6m^ 'vqfA{\܌?G_E-eջꌛjڂBULW Mq[wL(SA+ O:IexO1CӘ>2nH?Ei& V{ow'w@In,GS O|sD#㣛]nV%-y?1k((4Hn.M83&F/A۹md 4!s;Ѹ'2B;^nDt=t5~V8oK4707OnjkzY7[CG`OGH*1:._Sy؝ۋ!;%="5uqoܭi7Ϲo9zh2$xv"r~/& >Sr:Zhi ͠xݦjO3*+0o }7uHT.cD"q^WsR1F9YfZEm #[t< Λ^ߊH? IE)*g};ŕx+2IZ =xk µÇ؅3ח;r91x"URMNK 4Z(a=hzsxM[.:0\֦S<_;`yTVȜq/^yvO.;N[O)ͧtWU}9~a{]TM/"ˢJ'P%O{&Ĭ=Kw' 󛩖Ϭ"1p!놼\&oc6 '=}Kp^bͱ4=*b/]@lmRUTf'17 >z/#cA:Lx!*$7)Ze:;Q >NJ VC:l1hcor4:iN (`"Pʒs߷^~@蟄k۩4 '<(ݹ|$LEIcxMdo3[rS*윕"6ա N*e/I-XT_ ^U3I_ 7M듖۳#~Tendstream endobj 160 0 obj 2218 endobj 163 0 obj <> stream x\Kݶ_E+ @ѸytEq\N]A^l3(tugĘxt"/꬐/vXu ??x9cxvhT)gM";}uӧ; 9]ٮs}n۟sG=u;mh?6*/ʱ_^Snrnv:geK]׍?]ITNsK5rW랣=dEL9/MV |^DPaMC-8N1Yti6|^%󝢩n anu܊_tM{4{>=+3nZ&$as~s j5ܜT+Ua1a6W]eWLvW('C\vĎ%\7QwÆ;gG0b|a/"lE?kPm 2P_Ӡ{7h(gciC'w.B^ʈGVuFTV!PZ7=I^ ]kdpD:@@&i9.3LtJ}^GZ==x'o(K'GFJ6G!c&-Fğ>hTʹ>`EyC A72`಩ 2'GeRo&p 96חM7dH8D 1c N)x[:^' HP #U2=5)r!$5-txT3Ӌ?sA*˓ԖˀSÜOCv8fBE1j>-Lqm=8djGr݇Lq~tW!`&-" BYAk;-3SLol>S!A؞Gog0ķɉmRgýb*YSݞ~jW.I 3ȷ >r*oȚD-e4ڻL0Txy꠮D:{a  ݈n]ˇw`Wʪ~@hp920=n!GErcg={`;˃ڤ17K4'b׬}%Խw޺hCbN/Iu9ՉT)D 2T?@UT7- _{~ r[i H8ml4; !2#=|=Y6` yxo孁!&wې٪xCػ~<ؐkQ7- 88kUxbf1$;\ ؾ̟Hze a51ckPeF 'BU H?C-r2Il$πX(qf,-ƭh3FnrXT66VoB{NЮȸ̲m3uʹː/kKu[lR]|d|,o /,p6:oa{|/S;5Wm5A,:OaH3菌A%PSg(! &$ZVI%k)S1JmgǀEYjf,כ6,'t2ڶ>s?[`m^lcTj!;:BM@M1HB=ο̼ھ O<#ʜ ȃ,][rX#D, ){ h=hÝW@+;9ٖW@Y[EK]6C1+kY%( t޿-݆ZG0D$ Ÿ"B΃n8rM*Vo-]) /JAW wktl/ٸwކ9cQ%#q~v2Ŵ %bHL\"#kX6%",Yf|/ ,yWZ`G`W؊pR{Kj `@fZܹ"l X[_ž,;;͢ҍUbx[.k tlZ0~ppBͷ)ᱻ1^SȈEEsЂ|71_ yŵ 52A;$|X?%~^s!aq,=]'^00b.yDP#&,ac|\GRSٺ':~5f@/ڨ FV" z]drk!#u5;jFwo`_%%ifL5)*gKUuS _[.+D-Th <`Oa 6,ŠpM s/4kė*=]s$.QIkꢓrb1j}bWS購ioks9Ɨ_Qcendstream endobj 164 0 obj 2826 endobj 167 0 obj <> stream x\Iݶϯ-r%"v*UqYIı<|4-Fd蟑Gn$2U ( 7wWen??{}x}PJ _eMw2k&WzՕʕ#ݮs!uvl?~_OLe^N?ݬ`:jZ#nri~.D˚|9,L?@2/?_tܻn:?.Nƿi <O@8MD7g eu'6<G٧=˽QQ5PB=7ufMaw__F򰇁*E1#[)jϔcC Z iW;WݖSii@P&ThBڢl H)ygvYv٩`3kVlpwB`Kd;l`E %-+{8ombN]#vo8jG -jou~CBzTJwֈ+3W<o,F|Kbu(sp<#o"?}%#ʈ]Yl,f sLm6}^x6)[n`V?CZ}ȫh b.CJbejeWӲ'e-rI2NabjϚ,EF4fyt ΎZXGǞP" ,-^~5c|-)X eƪߐكeCC!Oyl@Fmʦ8Cc۹Α">gd'P:s*N`iaŘkbLc-:xL !xQ>ߐne4އD1ψ+bq2YP 1hPVRW0iͰlLk8E8[1;]Muy)?E$3W"w!F&ڜV*rFWq>w̫)s+ޟ)#g ~P˼f6]LΈ2?2q1)]C{!ȘmVeGC6QHc4=TYa@1!܋?I2"8H8 ;YF7=Ya9n.R:YwQΓ鬩mQ 8G&/lVf/`  K|O5k!C^"EU=eW[!V{zS;yk:-&xPy_$kM6l [n&.9@)>BDOR׻qSVdGG_,Ti2Pz W?n](vZC, *Z oDSˠB+e IMBNKOL#i?;yrJЮ^lIpWaxɓž?46NA^I~evҖE!MD DPRIXTJq~d%OTTJv%KtVI'krQr6J+MD $YE@@2cӞ^.k` |9)) / sphY.z.*YСHFaB %鳤l >]Wt"]oyӈ{=2227r7X+/a {,?L V'=XQ>): HCR'KC,.$7YOmϷQ/b*k{-u]ܿ"fjb[v!ީzI.xqB2EYjT,m`s$JQO ЬΝUpFECɒh-S#\-PO蕁֘$~At%C x PM9LMq>k`'J9'?#Fbnza+eQ&,,eXmqъ,4so 7EDNDfB8](Փ #jm!l,a~ !ES`!Cŕh 2 ׄ )a|XEv | aCC?o.u02 (fE!HT ǯw!$)&1l s[̮Yy'k O[Q^/qXb{Ky,ۚ+t iܛ@dh/9o hQt.y/*H-HNOYHJys6T1HMi"B݆^qW=@p9cDsޒc_{B$e:Jt8 (G.5h)d6tO TSEuu.^K!N ^Ԅ+@Ix;Zj,ɞ[>eakNoУʋ㽧p! ұ@)i!|WJ鏥T{M(ql/%U/Ġ SQ0[CxQ{--$9JYQ(e1>ev=n7PZyi1b,6ˊ;h`u|Ю}Qtd."18Ċ>} <#Dp?R(wh-y?$7P_%Ftdo1u^R76m *njӫ_[=endstream endobj 168 0 obj 2951 endobj 171 0 obj <> stream x]nSwuj=AqnEo"RlR*mo>CrogJV€!j!9334IC?<sׇJ??sxrvuc$z4i͡n$?9y{gO$8yoWIfv4~q{eۇm¶/cY&i18пطY$w &[hvvo/Xп丄tmszXOcGGx h"qtnڶ_}9@ <=;|W*Yv,_Wis~m˓3LLGx8#J/6je]Ҋ]iG^ЋUk| ~CW9mHgCGT.Cvh=4$g@j-mBu]$%e",Ux9Y% fn9 qQbR:r*- >viܯS rB oxl'ÄS i,MfSS2NMDB3߀v8]-$nF$C8QxN1E/};)lFUQUI ytD!nZ3yho)Zߟr*p2[ qH pga4C)0YIXۀo3JIy|,3 /"Mt8m#2;/ϟ.|€[Q[ЋQE;~\aE$TZ"7f 8 y\nY Ə._X1xJ2Q/{G/T @#pED9[#@X]zor*3 Ʊ(G(TcPc/syiJ9_m+ {nup@ ƃ[yR4w%ZIG!hE) 4Xl l8Ums^o!! pC/쉆 •F(-:>H]"WC(v(ع#TX #qi ;=[1|9Z%m8k9im(.W6b;o˰9+O<$\;U )ga 6_fDyV}H/4He, e,盪R]![,p>)ԆUĠ*S߮A$ ؕsRɲvs6KHjj|)u[Eʊ:upM}1Rlպxjd?;46C_sVPq< tQARO gq(=㐓 \jOәAaڢYeך:iCYICײnpKI1Pa_bv0t~ήybM{#Z: zsa\= NMQ@U bu%rc`"iӨjcQޑL]@ӳ(iL|w-dbQ$ӔbT\9xÝ=4 ӺAU6u{T&ͪҤe#K&;ˋ.L?'{=!ӓSXwP:!^A9dw%cOGdQɖ%e9q \Xq ;e/䔬,ް`E>=<+7~ OiITunD k[;GBmBpPRL0^%AuFq̞N2c#'쳟•剱=P[إ30+d7-$/M_N':0&g_8^}SSGn HmeE?2{&jia}"=Z=o~N8^d&?z3;\do!k[%;)+v + <#dw_/E5sN gMW ˫Y7*Ww*ʬN5m$_^Qy=o9.J6_'ԯ=Dř6 3GD͡f@rf KLv gς݆cTWުJ b(^Ȇ m1w2ZB1G!>,.ь1[ۄdGJ\K ˅xm?$^LQcGoY!^|aYs@v\[7pCo_rے-PT rzCRKE" pfIirqGL|HAQևQOlTi:!A02OA( N} @݃?#Y#R$~$_p}%HRa/70 c ੒RZg +rGz]MࡈwExɋԤ."}]<"ū(8_;VkU.SG~!W׫fç"_泭#a#Mپÿ'sj91m1TDNV7nO,u)-kޔ }ľDh|B}cCXp)d؝K"՛*Tkq>'󈵠hbb {j{'?rЈCY>;/#endstream endobj 172 0 obj 3444 endobj 175 0 obj <> stream x[Ɏ5S1HSkND J29dd2ě"q18`Wۮ V../U揣W:{Z"*$^SҶTvք*kW49ke "a=s<,m7.{ +*f"y>PS"/\o"guG dD6d칡#ƿEBl9NK\{k$k+ ({`#~PQeCjKerQ#A΂\oBYLͽvF9tpt5d$I윂dboIvCkŤ)D3,lQ#\RSpD@Ah[G$ўE<!>,F`t#FgЎ`L}mmcJrE$ffVDP?H͜:S0vZs ;H `FAZ񬥬jƋΗ[˗6gLφ)u5"3\nsCB\y˕RmF'1'k&8WJ(6E,ۛ`;&[2*4Qۋ^ BAbYF  F-zVz鸍X;,ΏI2Vޅ@ǐE.&C_w-T58 !ކ i89π1h Pз"f\*?~hA+فP 3 r/N y:4W[G*_c.9M$\<93yZ%e4߆Q\;A MǀIa$Q_aH 8($&#TAѲ}MB_?s0k=?zdAiI8?n[nXܢzd-J a)Dx]jޗL}uSg A_X:n[+4(D9YkRm*p&_ Mj8?7x(KmTkt' 9iOǓ C"wj @ٶȄ7eR!~*؁3n]rk ey!:ӏƕبp& {[O0 +[mx=?fU仙pokm6$mmW=ly L($H݈/"lЁ?`Te*uшN{R9kS+W~i{->xlͯf%$JɉALނ`&$H՟Ln@9܆5\cht fh{Ӷ f`6FHRkT~ jYcr߅d;Zw؍.fb.fbֶ-n\f"F-]&? ?<U=@nq q#?:7Cendstream endobj 176 0 obj 1725 endobj 179 0 obj <> stream x\ݎ4PIxX1 $VlJ+$4=30ts2\3'qrf4.?.BegxrL\)?ѿ9Tb#ȵevrsΞmʼ4={h*rlմۼmЏmg-ʶ/oYE5`:}m״\EYNߦ]'bX >\_smltOJpnVKgåֺȥ9p 'zetFD)ʢG6krʮn.ģU'?E1 R^FEZ;KR兴꬜LRPhD;`f& ~E>ɞ -;tC_:±EkleieCWf^##G;v]t3:%7@/iWD:"1Y`j &+G8DȨ=0 Xq%S}M8y ddcƢp~ߏ*AGe1غ(h6l˦7 Uaq4Su@kTǣ\l>?`D؋q$3!7!7spqSla|"&d|@$e8λY.}&}%=NmU&> ;8'# GK$n7wLcg+y&}z}D:c`fN>n7X<u:k4]4= t OQ x4AcR &dDLXIf~ @u}IJlr|3X|>vd+Vo])عD'LY2 IptNq&ޏX>n|~Ϙ`h71 Ŗ@$mNe55{rρHNXA A9[fT׉bVsqtDnr0NGP&zj.ѰIc4u$/@$E)f@iN6Á"88LQ.,*L¦T# ֿNDǘe1)Rd^0ge…?c^Ázp[4|,!nV2vgnt'3\ L|W>TXoz3Ȓv/ov^Q WUDR{㩭PU'ȓTHvXeU/0[g7k%d+%qK9=|ތ/r?ǯNuNrI;/Ku+e{jY&Q!i+Odm%B^VaI%o (3r]I '[xi)ʞ},!^saRfݶ*~- QۖEY)̒vYv)L9(zl2mc9\8t-f}='MtZBis>ȊP5hpן %N/+޼1 w"Nc|cE"+)7ExmϢ7N;&*߽ fXb~aKcQ"ʣޱ*M*01-1[\K)0(M[_cbu5>ESESd怽zV)Sqe,TIw<-fU2]aQwXR'A< 6K`tkNRp-#/hIH}-3H)9P^F} 5ŜlOQ2e~C9Еdgw Mgd{gDs.׷GhMc>}LkN ޜszkU { &Q_عs;{!*λ1D,JD1رMx]0&p@qzw{ƴyR_jџ>][+EJ6w'Wr [I g,@DjAK_1$ㅄvckti}2CFU/?n{rD+B|H#z`ňdB$1&ߛ~E5Ť}_f> stream x]ێ޶ߧM=5Aڴ -(wډma23EQ"?q8uS$s!9[E볯ϾD7Mӎ?z=:?{cQfb#3"em^fg2/~^BtD1n N݉ת//h8Ƕά^ άqc gz(F8" sh.Ոf*2S7!؝e/!E8 'Hb:]s5 ,dT.*‹P; `̫.;"oǟ?x u3.E15<ӓ] MgR TB5W@W4=eq`]x8GqԞ_Rel`D QA;lR-tKO\tnge5E#{p4B|Bm|onj)Us ^w 5RVO|jQy72$6)ڼnBBRraMJ`fa,֡St(EɨpCuPAueu)ʎJ=2)H+G—ꨘ!m]ùcC(2 Iɻ2AD{ⵈGx6KuF08;ѯj'ibA.i=5Os,zYyǹw˫LNj7ͫRQ-դcc0f=jXTSb3;?_zBt^ɶ?-H݂g~)/rKVPj-gitfusVs+f~s EȖ;G?J}' r9Dh{"v/:/uB/o8͘O ToI'>!}V`!݈Kԁwy<(wco}Z>J˪GP~>] 3D 6ޒZQԙTetw/'pP/-ܫ:d̪Ta۝ HuXs!UP<< @)2 Ns"9#nP=yЖcpCŧ ӋxFu e1z%eHr(;rhLJ*x TQm7*r@;M9*f> stream x]Y~?(9싉"DH,!E͵ ƆU\ Pakb75Ӗio*I͙kUT΢wOi= e``lͻ./e ȸt׋ky0r1K0ҷ~*R֏0i^&5zlXWl !@·JL `r0OW}vX"Q3ړ T?QgC2# f]SBlFu,*X>v;\*vG d<*b,2Y7mݧTKôɢ"F61?kM3~W5(Y|?UMOjz>.=ં`co\]N]B J4p=9˰e,.*!>c 3 QwlGQ굞ASPI(^eGnl\ޝX&I.I$>;I㢍p˪֋2YeBB+鵶MrDKa%a. 4m#Tu7➍0tm57EY9?N(oxG\u 6g<15O̔QѕXl0#K n$e^0A){rxWe -e gfU'ڕ$(%օхܚ@!R8ݔ hpQ-p5M7ڵזLd. zkbjuXlپ ,PKUȯ7ģPZPD߫*7/eT 9vEf& ׾9)ingĆc} (cR6՗$I T8q;B@![*VHItDG2q5JNd^{L2uy_f{nmT=gFG'0KЛehcR8|G߄y?* ѲtIY΢I`Xk,>5>lY_p3|~!2b-kGNh.J@`܊0^j$vSgcZ17ai5+;0$sx PHe`ё dV (k S9]}窖 ˍk]ܐ$aG33߼?tDiFAk0I5[7UF-Y:5Utd꺄15odpoĥ3N,a0JE,-J|PttNCDDzZjqո7ɵo{R\5fK{y0/0Cp-E=Ήq{k=v pMV+M)HOSf>8}֕ /ρI%iB*@." *n}CAz #Ҫх^f.0bK_ rR*]&>oPHW[lm٧ڲaٹ2WiW nu@mht힎mRS^{v/=~%Szd駆pzI` 8(V#CC6L ##:&d'5mn(jTDhMK~n.3{Gm UaC5^ek/ ZVhmrU|w_Kd ?F Vi1L^v;OeoXKYŲq}9t=jMƼ%7˦gB?~\_@t*4u$<۲UR)i=I { v KV/Yʫ5r{ N[a _rPDBjkyyL K2,aWPŸ;{#6A4T(2?jT,XcT;ʀ(|9/G@=9/*tJ(UbA*X(JM|:[}֕&SZ'%ugcvNendstream endobj 188 0 obj 3321 endobj 191 0 obj <> stream x\ˎ5WԎDЕ*P63Ld@3, m򵯫{&n]y("]a'g8 zV狸y*(AQa.7\X$a"7^=^ܸ#yvaY{0o7y7Xi7>ooaFi;p{7r\B}¢#v[*iXu/n'|ͿlKjj$Mu{'&Vw:a'@EÀ$u_OaYaV/-D>\ p̀;A/8+8ָ"ʠ%mypdq)fƥ4*,TIqD;(ԁB'Ք[Id*)OF'%ҝ*vf+Cuv#\O;{X{j#^#Y0524ni m坆 jB^[yo Y#_'EIÞlI:ֱ1([8 ѷ][ZE>Z5$TuTv1*KH.h~gt~tL)S}tT)ǩk*\G|P)jt.;q86BҺVl'~c6 !:;{؅rLa>&mpk_頻߾DQe9**h+ñ@g,LB12qxƻp(7LV$8PHa/k<,ARDV蓉PWXPc" òVF* L&ll$[w:GG|:;> 6eAdҧ)ljP#8a4~HumcrԍD^uuL I f1!%k1"YQn0;ш,8V, 1RQv[]AxSށ3qqrZϚ~Vfq0Mm<}\=;9k=wrX8GmCSRŭZ3E+K%lWd42kFm'$~R{iWa-iFeS$~VW q=V:hnPTYmpsgu*eeQKVЌﷁɨ(bّ2;.(ō yq(XlLQ4ԞD"ܹ±{j >zh+3](C\ƑLq"l.ޅ4{-j@ArƮ]Y(E^ʇ"jΪ,2\w^WW6)V +XAu@յr%XNքrUsvl$J7A5Dت>rb6ãi۠'R&DN(J"2HuYJI4T/IM{*ѮMxlh: M6$F02 Kޕ= Q=>Fa@^^!D [5rн8vnlpQF׽jYAqg`k]S*'x O BQC#cmCstc1y'1uCE/"Su)7o)Gcbm)J:&TlxɯP]<Lqt^!37aOZӸmw!F38(6zj#FF&aFiqT@> _8d.fk7C׀z'O8TK70I<`,+lhn=t>1ol;\]VaQU3BKq2Jpg=1&>lf|HPJN+  鋙]6hc1,H2%xQg Ѕ{-*d?{$&%t6N_0۟gq0jVV¥dRe,geAU&:B\9eew޲ ]5}Cz62sa4OԍQO-ZO0}+o$Y0r0j1~ߎ0̓&/9"U%,S)gM)wmhQߝ%-oN9!:`cEBc1f2u\_e|oew>5<~cT4vw.y_+szbܺZ6endstream endobj 192 0 obj 2460 endobj 195 0 obj <> stream x]Kϯ gb#%0Ķ!0`lyc6O}oɇ3׬*ݣ# fW_4Im<|fUIUUe6QۋM6޵ӤUۺ|{q;7y_<{ط$SS/}Ifj noJ ݾ2I?/:QmԚO}HZ};x6^}y۶O#ue?R6{=9& k.@%Ps3 jj%nQ?]~ - ϦHʂ ;vdu7Cɟĥ:A%M4zHbY_mYiqu6:iom<1(E4!eTaU%IʊS1=mqkRu oOhGt6Iyj6RaZ݀CYDޣn$v„h|7?ݳnPAmQQvۂ klR :{2DȾE6;Dfzh&U[K%LjKk$G/?hXM9 &$J;zb? +Vߒ0N|% _cȿE_]Qf Tg)to_B!ex}.Cord?[և2l9 õ0] A(n V5HnmY"q~k<qO7keB%OڱzIq\AYRB3=A%TAH{Q' kr |$wL’BEF]3:,C}a?xB(usN^q(x-cB6\Dv%AOE3iӓقNAeQQ%Ɔ.g=KQ/hh438,ͽ(EYk$yn+8ơz(X)r l)+;^; Y?4A}3̚f =b뀳$)(c|/*5_z͢l<јA)} 8d\Q1iS78Ne@Bf}:[o ښ&wuV4#vըAHW"a-MRK(3O/}?BNK:%L~I6iNwI'SlalK/Cg < 2?;tѱ&f;:l|VEǘSؚu+Lſ2#m4pUjf4FuWd9@feA2F< nz'T`<7 JNJbMךeזYA ZYO s ӎ(?jMЄb{N,%`TRy1 iu`U2}6{.Ӻi '2LrJ$U/@-l= qf/BkQ3dO5g;W,YhF囏SoLY{|v[f1|#S#"NQ R>h†![_cJlɈ"86eѻ!wm==:`F.2'3W6I[1sS៭&h.0{̑ϚLYeG aحpejHB{dC%SA)Xf(*D@[P1 ;$bzo;٦'}+Ys@t[(c}ehs&=lʪ~,Em1*k #&Eq`#@d-a6fY" 37h ,1hpコc}.)Lǒ-du8 F{B"|w^c-.%Qȉ0Gs\:v*>3t ;w:B1qz _z c?T׹‰Ns_lC-t'mwHT9pQ[mg3}=|/[@h=0޺O:EWOGlے}VR\o"3BTt(~~6 y>Ca{QӗcCQbv2ONAKŚC\)D*pbfN'IS9e8ޓ`흕2r$0 )Jy4}gYz[7YډSks UzTW^2dó_53 |ƀ bш0uRԜ GBfOruYezCd Y#DkFʦ[I7\a.ʰF֊ zwhK>.( ,Ϣr@Dœn]EZl."1;gܴ7Ƿ8ΣdW!h  1&}cɷ(i. L8qG`t=\@Yr+=="fXlΎ8w7aUPNj3RvD +~g8)#$8 ;|.d}2lO|j-AJ:`Q)D 5𱛣q^.6ZxW)\I)}r~/3;#"RԂpUwCIBŖHnѧSY(!uJ)s^kw[YKYnd$PAwn$їHJKEbuY[Cβ屺O̲kuemq}i,\OmMϖxMotP"-]f\AMCiCPӤ``6tŀy!&43yY$ ll?> stream x]KܶϯS$JUTQR8-o|%eǏʿo)>kH[KnthqǸcGy?z{|xuxI"IqzqH["*q,"ǫ{u #t|ޣGhmeTmx}l"JuE~̢8mw#~c."a^Q}ӴӨ_Ks\_ɪ?S?)r'ijܑ8czšk v *%Ao6 ڨ8.> q|;號ee)A0v`n%eէ45!T#Cxfǵ $YqLd"Z<.EЖ^AIHı2)JE& "I?ȳh0m(zZҺy5YBHFj$Lo>7D/V+t:O]|[A T*j\O"Nc5SR"j]AI6$j!1 LLu0G8,wm), %2M'5 jYfZ;U7( +ѯ.; xRtdC9ri% k5r~;X*5 FP{P*ωL['ni}scaœXxŭZ-bx\)XvcK$ɢj<~o jgSl Q"2ʚ+Kk \AQ+FוIoX7dDWQz m|tG|Y9v<)Oսwm9'`uwďo02FoXT =c vfhgҴ46338! %>rLBj 7Hշد_$NgrIF^t\``͌'c1.fjXhwrQ{A>A4Hy^6?sh‚6'0`lXL(D8&YdX>W^]wAᆚ)NBD_N>Jw >T 7V&fhBУiQ6d BT`xyld@iSRX=gBMLfcq ˢmft ޹ƎOgwma_iN t+XNg } :so%OI07EX[+HMIxBb&8d_2]FޱsG F)!J UWHӹyAǬcITn5}InPgS1;ሌE~  *ҐPN Bٔ j)O;fT-x2KpRB] rXηF:;?22uNNlXk0$КYtWC ieNޑ'Y|,3D;! ׏[ǖ6n| t ||Tdwă*d=c{[Ż 9e떄P/:j'F鉷CHG;NdQs5I3QIr!E;=+ze4,IKKW)L6uYʝTB)G=*[Xc4M_"`x{8 ^)O()ݼu_`HfW>3IZ$d,o0u4䊃EEoRɽڎ)W%yCtwlpFigxHnFj2;ٙ$CKj|Ez=fwvdb(wV{Ĩ-vIqecwa`w.62Ʒ3j+c|. :L6Y7MM ፋԾ"pJ="*e3xqyP~/^B誑ʸ|Uy|> 8n<?>q\MEL|'ȞuFO=ɗeif_ڨK`ӰY6ю(\h/ k}:uԦ6YuC# iKzk4ōK ^Q 'D?O)Rw{Mx#R&jwUR Ojt5-B g {>"L6%'s?l)RINd5>}8| |(|f,VQU<ż -:]@2H'$톮p-:gߡaa⧳|hǪ5֤I֤>Q!Q,;EY3.LQ`ފ5$uXWY,KAufnrOj}Ts1uH3wќ9I5hUEHFG75'!xK>z'05/LqC,&(&+W`#Gf☖6PQ KRV3¹N~$c@L5+#YdYv3*['uajQ|Ə)SjX/T|}_K&R37N-~άO+N-Y%I/{I677tyLJcNendstream endobj 200 0 obj 2938 endobj 203 0 obj <> stream x\[ܶ~_G([H։h"@ƉMOy('Ԍvf_on6ܦplL 1RT{:hĐHar]J7:eQ/=3{xzj>F.')'q#>Dk9V}XK7sN}R)mU_+VC;!V)3Lp{aFE-HVkeAbgLZZe&embp'OZ=&q Z, 8`Y[7mԍsI/)l"Ҁ9IGXM~l•d|P8\K"Bgf,!ŊU:ya]'鰮`m='!'#?rwPPYf?1_ro㯝M#/!ġ& l7 FL0Hcʊ}!uZuNHhL q[p6qpE_qϣ£ziPo(Haz#ĝFGu#H_#$ɎXChpw,H5#͑ƨO< m8l mƸ/l6$b.eWQf'JZ>iB,vB&5?Paqxn}`jWtHL ܩN2ip [{.+V)'IwnǦa"ۦ!R6#h3FD Jb4Q#!=]mͧ@}1{Ogk6/x=%#X`piEg<Dpp-EY6HM( M5GcIJupq*٢q{&;lu\/'lM;'aWF~-MpyaׁφJxw Y|Ǒ86d]UQ 3/ns_h;Q`:B$wLkuH 2:qc|W4'BITIb-"{Gr7%(e.yïؚ "QV'kWY6:kvަҳvqnYei6ɓanBwl,k?gy,N˴ȸ-bnF A5p8v5qj18NN΀Ò`zHQq)w/zҕ|{=EnrA}e \@.;?tJ~jyF Y/,ꚘͪKaiV#Vrxfi|sYec+]Up߰d:Fj80|Q#v gBS1&l6$.YKbvX3jKs %d&+ WL|tM!;s9m 7~ŅM_CB'K.nL['O}7yH7J&,0(_F|CXkҠ+z㪱S#eK;͠|uڈ6#[ot@/8DaPZkˢ'_N03 \9|u!;[L"plR$Ē\kEGbW8q#8Z\?{!݊.nR~M"cF|Jzh#M(li I##$[wNЇ{ȭﰳy*mQ6)s[fUb'n#U;ncmqvxtxڱevLx1D&L: ;ab:|fYdٷZ[x.ޏ|+endstream endobj 204 0 obj 2872 endobj 207 0 obj <> stream x]Iϯh H${UĈ _ɒdK8Fi_|!^Hvϼg91 ,^bq\E/2Uu]7?ѿ߻޾82YYSΚMvqu&7í;v\JOvqzgvr_N+;.h_ۿcMtu^5M|1lC@y9Fxu+|FM.}w~=^>|:ǔqGu3q\kDs}ȣU)LhSm:{phtŕUbQ!hU.PV4 l-]Sn},Mx,x{ykÉ;;JMqsgEa?ZUw(bMЗ XpW(ՋQzcP-|֪%hm; b,"b\0U^ ?9"Qy)w9 qܱ'ŏ>5R̋0z(~ x_%z_0ܡ/!H D,[aєx&oH0(uZ/EtX򓩞%1#O2!zdKݛ{4;ѫXGUw ߋ;ӳXٝ f#P?  yѡmH{m^⠘ }| v@(PЂ&A@?~,ۂ0,bX5˖=/޿ |xߏ0PZ$Ruydzl;T%D6 gcٴxO52j_@wH X\e+Fv Q1MAP'#)q$729oXB[D @0)ࣖ$LK/1<"< 5;S>'-K- W1Ytbkס"U໓ʬ J9N c1~l&ӓ"8"_Ws0LC;Y4.^I_K{x&!nh1zWܐM8 b2oՅa)O;ԒCBMdr,F`dς#gJ8>kfKx&cU 5;!}ڑɕtjHv+xA6x&[97WΠ]OC A"1B~]&.v{)9w]V+op'ԍgYd9]nL Jԛm63dAӦJ!Y]Sb)A'~ L22tAurIcyG#1cTD63n Y|cr]p]6Ob~0!l//O_"le{^$l ~?HX 5=-":V+}wT@6ŝ7L7'&Žʈ -wY^Y{K&7_z+1`}&F'UG^(^ϛ,yS WTmYT$}&&E'jSUw9v${MVV^JG1HpUX# :J5vj:Sm*fmtGe"GMIe~ko~b~Tx %KnϤӰH^fAbEs3F98$C͜+*n$h:όrI.zpc?x'耿gUoGABjSA4 c*=w L}ނEx`9V 7u?VH89φQy#S$)%d3u4P l$ѫ:aK$fXaLqhҞ$:zث>QX3j%N7>@D>7;w3_FhLcO~Ԍg6t0߀̯ב'aOս"0;ԟ&>ttx%,GO*2&B uS/ 2n]ufx/6EcdӋć˯`f%uMPHS'磣e[2![R,KL 4qKȎQ¹rb=`]s8TRh hYI+D;foTʿw<az]›"M%$$8Ņ]FÓć(a6r_ܐ`#ϯ{(숃H>ƲS 0)_X#,a]s. N}&* & &*H tmC&7"+O/kJ?ܿ'.9&_DD;tDg_30| 2#|&ׂ'v̀R }ۏҏۜ']1N@^=g?߈xO{20(qH7HC~MR'!k71tɞO f^PRM{'0~^ Pc 5~._CbӋ]H( Mo{YỹSs baSt~"0Tm0~_!n?endstream endobj 208 0 obj 2946 endobj 211 0 obj <> stream x]K {Z$X 8q,Òve=v˲ʟ K~CN>{E~]U,Ɔ.ͪ"I%?\|}uqYOD./>J(m1Eϊ$nLT5UE7w>zEg˧wv2N0C7rG8ßa'0~ ?qq{zjL\&^+n y^Y3?xx }>7z/aང>v(JO3Y/`s4M$)`A`(0HI/O[yޒ4KѪLꨊ;ŵRˋ$Is=M;L0i>!k00¶ô)ڝg͖:Mh=kA]omTك\y3H[{[8Pg{.s 7@L*fN%)$i5r$E++ȩ]LW{RئzN~=Gp8fq1w(-f}@"(Wʻ41k!_ٰJ~Mm ҼӀ__^+2oG=Ί9AP[+߀;lU0ҢS3'Jj60XNCϜ @yҞ7ΧM"w8I[3iǃ0A8FlDg+d/IƤ]މRXgNgWNXQ?3KgyȽo%־dkdO'#oֻM6 *Çgw`jbLDhNg4VRV~~ 8GHuf>]EFȒNnWy\D$r y3Pu"x[}5C&im.REtH3&*e*\wEwb!"K(G煻+/#:.gYg,"j;ǚ.^.VBQ5ɤ EA*`m"gKhGy4e\;ŲCRwF=GAMk7AYKCkBi$-k<7)#4ɭKX0xUD26N{8uP,gg1ͿUEF<`b'}Wpe޹7"l^ )QbxNiu*h-Obx<v&*}6k/$B 0|eIYz}Hec adb㬆[]$}l[fh"08iދ38[lmzFG pV%c5}2ハ?7 lSRra𯻿[Kvݼ *A&}/*|_1.U1WH2> ,BUk"xou@FQsLAp%x_:*zv!,ãEJV }v)`̇Ͽ?]3zkz7]7n$(h?ó5`b22lkcYz [h˄vy%<QYEk 1e,ѵw<&#ѹk}Uaep6t6DdFV4RB Os92Д{)4&Ќ}[iwJFdTQ6U0% - vi>1sEN!q՚@N- )婖'9Wa Wd5AZTزJb)6ͰӲS;۠U5fdNGjT|/Ǽu{]d x PF|{Ɋ`Bk(jYM_ Җ2fg@=2m6qeURB\b 2u^7qֽw5FT1!e+\"H܂.>V9 j eN|su* Ie2 G-N լ+x򏀃^YLdlF]vzP*ՁRN_r$HTǭ 9В"/+e#Z,P+k1id;vDCA&⢾-039?z_(@X *!f,F=LM8k{ES1jJ?Tx^֏lǷlBwH>XR0kwd5*}# .S;pbWЪC(CZMdpUH5fl8< /6^t\ωW؉'E{B( ɻx| ?^:<y7+4f-6?BP-qgbw1U_ hu6pI|R&j.(D8{?ceQ}Gۊpg7]T ۝Tޔ;jo qݤby6/O/*A> stream x\Ɏ6Wh'iZ"%Jr1xf 6fxgC4GXO,Rw=Is$k㫅d"Ij ypzzdZhO&׎VWd*ɚodrtʺ2Lʺ*9:]]ѳ>zt݌d?ь+QUO;zb?z/z7~w|Ϻ+{~UE4x o:=x;u(0HjGfZJJaxGEXqy!dvkԂAfyӺh$W.9mHmmؒ_ts6DH;Ev{(Av BtoB]mFR$+,IV͒d-SQLdE+ Ѽv9TH]?F]`2L_ӼɬE981P:K/~.+SHZsH^&~YbL1зb~~0:jGڟ]b"f$ܳh2l7AkǠEPtZy@AK8cJ>s)h5e~wGxЕYyL1 Sd'.NszGOtu몃\8qwP  97 =hX%xx.e$b C!2P$L\4@9^U SkS^cHz6Yg0#BJ2ҭ+$Mݬ - R 0Q |ܔX32#+)e18;$L>od St]Ɇ<:%ҘzOL>K]gSuB Et- 9s7K;j.9˓Զdppdż/7P N7Ney@I+O *?ף$̾?=8;>lnlnz41^X~\,;7^B'ZM,1@#+d蝄3AGoZʹ!6ĆTl~Q)!Lr*.eTBϕHm@iqN>0ڷ IlD7ѩYut{6 áj$#ְJB3SU;SUnq46>Ҵr?N O-R戈i}4~F+LTfM>S5?Tɤ,2FE] 9(ޒѫ ]l)>, ;WA?y4T7b\;Om$N' >NYXbp6WtniSܵҕL?IqQ;Ӭh#D@oUf42 'j[FU Э~Ϲ3mnrngXnJ b?:Ţ_4ջxa_!'AޤSn8T F<+E˳^WVLm&8r@g 9t&y3C?]7Q='b9{5uq?.v_<4'' Ba{\+`h(Qiv~Kxpq/[hP,nƋE[se]xSkt0,8T̘g։*$çbIŅRs#F!I\jXZ*&@[:u<]x0yIAH!Ƶ&r `[:K~bPEJ;Xc9% $3*'XqͻGQB>4)Ρn;kA/kr4 Ytcpjɺ)/,oYxEݢblwϊ=r+ocM=.8=k'@[x'tpgIN*򒈷?3ͯOV*gWЙus*P~$[Bڂ= XIGz`(ڲvkSjV 2\aKHu{&b?Rcxѻ}~ܝӱݘaB"Ŷ27,»D.ŗsI幹}w^uQW<[w}冫dv_xkxڋxcFVc!^H,z|?W8endstream endobj 216 0 obj 2448 endobj 219 0 obj <> stream x\ˮ5OѻI47moiI8b1Bqr0  }-̌Orݫ\jLy]M'W{gno0+k\ˬMͭn=ۨ\g[w͸΅06oq!| iix?7*/q| pa~5m7Ӆy5qƗ#3.r_ 8c| [{ UkQU2XavaZ7@J|H {tiGɄd6kr[]?:'yfYP4TWt;f?x9 њye8+8ތzMHP- =+LW Vv 1¾G@Pj `g%;.s)S { ]1>O^(?OaL"JE]Ҋ* mP.Y"HNFm!dwLg(a\XqYՒ$1b"4pIk@[Ƿ:@r* aAk(~V ^Z[]' NIDDbFH`NK3Hc7`MhbKì 38˲ a{קsY2,[uq 8³\WA;~_k&EGl͓kʦxu<~r1^/S. ! ?R9?@6ytf+W5># H3ږ9q@9z=}ނ?IE2ӺZV Iv#貙Ң(4s6vaxv`ǚNcgGX_й^k)'%3rs̊w[+?Hʇ݂]1ʹ8g ,>ymbEFۢO{=՚VE:ma^ʤDD>VNCM8ECys$՗,tBWBz8@wW"U՛<:=k%Vh*crgՊ=!/V`-4V"&N9s1/³,#!s8zo'0G&Iԅ` qCŜ@Komb k<Η@j" 9F1Ŭ&SPr\Tq,[o1θΨ{iwA NLPzIh~AN*zq<^07V;jgA`?@L=»bUN# 6[(CN<_TemG=„!Yk`?0]Q\=3m|؛Zp>_0*^ܩ%&mb\ iO|&w KEBumzS&g C[^H P(!oE3mcJgIM7^ ҳTmCڠJY'b7%OȞs(S:[ʠQ>< JߔmJ/*o*WwSt9zyش`Zmp&3Om$]:훍 f-z^妘7|Pj5sURu o)Z"6#LT`rM"L?2q"8XƛٿV+<ؗmN~tq o@ Y1HF7Eߺ{m!BTsB,J*ŕ <'Y+5k|+SyfJFP)۸„; _.W ɧA?}s#/_5ݕ+CRR u`7Fr]J x~<R avdK*cC=)swGfl{bءKϱje4G`v]E. @LX$%CwQ07̴Hs"r{T{e`lBW<wK\ݹP&asٮ v+e̮-;:oj%žG<_u2r\m"Pt2@CD=I̻e}W$Ƈ3];)Qُ, {Qw.BHTpܓZ dy:2R9,󆋈5o^<ӳ;ON*.B>\rgzwaјk#~^xid;I 95t}ppu;%>N?_b:ŮZFNZi/>AbC@70H|k[+Qxsm:XۇzuGoq󨊊[6 閆,B]KRܫ 6D %anۇ1 1D=-Ykpj2XJct"GMFD$%d\S7-Yfɉdw`.2K3pq@^ Ja|*\|7T޸2ԋD@QOWl*=6;V5^Zc/| gܽ޺,}endstream endobj 220 0 obj 2752 endobj 223 0 obj <> stream x\K5ϯc"NVP$f7$BǑ)ikWٞlDKmvUy4LypiS"ɍյ;"ODF&G+1J,meRu'G+_=z\>:Y]TTq7iӌ/;1|8Qcz|:հLb?p0u*Bʴ~GL[j煈`-Q2I( iXN[%|o1hnjs!m,5hu1=Gk]yZ4ZfiPv',J#ۀ 6k#NAA X>$CCɺvۭ,:aFu5Bvh DKB$ahjHkS}s!Y[`k*<cVwcP LZNpn-vo7 ZGG1zBK[%-64"(WL:YZvrlc]O032>,<陬̃gC/NHƺo[22FTfewZaCBeBl ú#'J4L'^Z =Θ~ #v͜-"ǎ]^c%w;-DB&_od˒KHG@uH ":JHp%r뼩{=S&imQJP<%e9 b6c5*Hd駣#{:$RriPg5l&37j92Ot}걤J.3:jXIe>Ԗw"Bv H1FB("MK}Y4vf8͏l q~h?\+睞?T"mk=bWϳqendstream endobj 224 0 obj 2748 endobj 227 0 obj <> stream x]ɎSQFdrı @ţkqlG6\y/ff~ aφi{]J:-&z??x9 Xq@З];O}9Wa= '}3bx_|zMM8j "j͇𵏟nF`80(Tϓ[y޲eZʬNL~yvhtˋTg`su!h{+ݰ(mvFi餴c^Gk0k Ms0a8m+mtrI+[iy7Ҟ($[&Wբ} 4c`3% Q]DC0ov>Mz"u&#O42Txp,8i˰P8;Xeuhn&hneBTc^\WM5ۢ]_H1[Ir;SvڤeBodȠD7is${DQ΂nKLIgR]cZg#_K2w2פk!1|)lZN iFvẊ"8 ^ "OM9,=ڗC[sɨ_tGIU *QѶiE~i;P}0[޺VR 3ʼnŲ[xȚ;\ߚ>O0ô/Js(9zQNwz}Z#i0!ijݶyN3I݃g-Cg9/x za@H13iG Pp_69G@ɟ5,Qo5IܝayGNKe 3Ys(<5gQ'`'ml2p, "6Wʴ`ץ/dEܯz+@ 's -5cM %/OphOucĠk;*S z=l?t1!Hq`m8}sP̗P%oqNyc+Z}&u5F:@:h[`'Cp|,0Q6,\ĀCw1y"7C ODOISh6mU-A_"1χRd1)BF>h#}7{zۦ\7rAI? `Z^8]#QJL|%("wߎ#+3'D!*"qljWkb>hCݶ .<>|yc0:4ݹ4̡w`S[t D0GxͅȄߗ S꾪SFbf|銿fdf Ğ*ܵ 0زǸu[CX\!FV̈{:^$ŭrx]qs8dwXX8'r]hJ ,>ku@!p!8했L>zg.1r{ݩbHTfM64ʐbBdəp Rvoa{5`G9pvZ\|;ۣ#?p%v;EaWŔWtALZoF 哪Rj̺J2),UVAXDln?{:kpE/^˔,k~s\6懮UtkmhdжZ|A=^!UՆt{s.a8c.ɀ + .'оA rgqW3gvrS6qn;;bU;;\m%x;^-]ō&CJ1n&%-kFb̽EDgn(F6i+?g δ]??Cc(qghm=CunI!o *C"D\ =eTϹ*-/5QhÊGT) y1QPm@榊 }!A_ǵ{ b /А y4^flcusm+:/RUnPZ wtotq~[4+uh%Z} {}s%%KFr$XgUZxmU "m"A|tvI> stream x]O1V$RN`dcx7egɇhiXU02lq)Ϊ"4I]sWW_2)˲|w꧟evcU6UiҘ]T]?{Olb_kIfv:C7c{׵M퇇]H~ ? qv=3&)Fx?W0| 7{п{2 3SX5sokc-؜8j Qoށ>p4M( 308(.>}ElfӖG2wUV^>z(tˋĤ sM8D0Y~!Шh@AmҖ\H EdyAmȤ'*('y "> Y`fl#$?o?I5jLxg_ }al[h?s72WkMbt \h e,D#|G6p"W[qW->AҎ9S߃6:37YR}hwG!Jo}C.Qj/7=hf\{ bYdl T?a7}ݵ]ezG3U`}9{@is^ܛ:MVӎ kt)Fg~I\o a8Ld2\wUN5{6;”UM`wuC@qp}!tw }D 6E90pN%hDWKd0*D ů-O䨙`M$QLB lFt8wّ}7o)*Dau‘H9|H 9DWDٞ`M(z28(+`31ĕѭ o!㷷2 123c!x,̥ /bޤ&͊69 akvz嚗D [ˬ5=῏fA8 }:@U٤`3Wd=0| 8bB0fPpL  ĕH!wք3C<;7.Kڴc]2nGEygyQ!*67@ƌ( ˜VgT%'{FvEfz EIbQE){1Fº33R\Cd???fQgІƙTggwidN酈r/"LLin~, e/Dd!E%'? ދmeZbk:эZtV:B;9[5}r_vxHc{>ȉ/iPts:^WkIYi{kCt徱BM 3! N.r$eG%?Cܓ_vX_$udmXH[D@E`@V1 -fThi;c_J.wyl vE_6)Ũw#^v V  DG 3)oa<-8gIB[YO"6 *WH0ԻQEM͹S+k %$2a<Fsn^4 2!>mE:fwX*`1:P|QB_QWrvAТd\=;k, *i3NS=sOͬIM3b[\v^Oy\%IXA_jmeLQ[ b+boz%S !~zŁ ܟչ3y;>٬ExejKK FںЋ*5#G:~TH-1E_-ew2:\Q98'\%K7\~T]!#4=/hpEb?8Ws(OnLnݤt)̥@X~ [}oe~5}gKۉVX+^+fKUŬeMo5TR}Hp6W.xB[\ȡ]pc-^:m2BJ}cᕏ S`5]Ug[e^7^a]<0`47 6/p9eqVӯ[[N= QUA.$[%劲c75i{Go]1S6/fu%C9`&1Pdg!W}b,º}V"|q Qt F3~\jFCN8VBi(լ`Wν)MG .ƫ7 QhYģsI#t΍c "H{O?1<}b:gy~7ec501]@V˔ݔXG߂vQ@ [oԊ7 ş(j1Ĩj g/~;ƫ |(٦8XyKVyk ƻ<P.vje:t[ ֠AEY5Ɩ?^B (UuLPR QwXF+-k{坠^<n)^/{ѐ+t;?N5gk`8<U^6&ا8YE ?9AȨ wo6zWW䦄endstream endobj 232 0 obj 3425 endobj 235 0 obj <> stream xXKo6WVC[Ӧ4-dKPfoS_' Pr)j9ߊz .PCoFjX]i~4qYs#Iîkug;&Yu݃od<Ul<ú3vv$Pp~XT hO@ id COݕLF_mp@P8rLZ,'. 4N$TmgWb^X^&LbЁċ础c493Zc VgBZx¿./Kj`%Y> /Contents 6 0 R >> endobj 20 0 obj <> /Contents 21 0 R >> endobj 24 0 obj <> /Contents 25 0 R >> endobj 28 0 obj <> /Contents 29 0 R >> endobj 32 0 obj <> /Contents 33 0 R >> endobj 38 0 obj <> /Contents 39 0 R >> endobj 42 0 obj <> /Contents 43 0 R >> endobj 48 0 obj <> /Contents 49 0 R >> endobj 54 0 obj <> /Contents 55 0 R >> endobj 58 0 obj <> /Contents 59 0 R >> endobj 62 0 obj <> /Contents 63 0 R >> endobj 66 0 obj <> /Contents 67 0 R >> endobj 70 0 obj <> /Contents 71 0 R >> endobj 74 0 obj <> /Contents 75 0 R >> endobj 78 0 obj <> /Contents 79 0 R >> endobj 82 0 obj <> /Contents 83 0 R >> endobj 86 0 obj <> /Contents 87 0 R >> endobj 90 0 obj <> /Contents 91 0 R >> endobj 94 0 obj <> /Contents 95 0 R >> endobj 98 0 obj <> /Contents 99 0 R >> endobj 102 0 obj <> /Contents 103 0 R >> endobj 106 0 obj <> /Contents 107 0 R >> endobj 110 0 obj <> /Contents 111 0 R >> endobj 114 0 obj <> /Contents 115 0 R >> endobj 118 0 obj <> /Contents 119 0 R >> endobj 122 0 obj <> /Contents 123 0 R >> endobj 126 0 obj <> /Contents 127 0 R >> endobj 130 0 obj <> /Contents 131 0 R >> endobj 134 0 obj <> /Contents 135 0 R >> endobj 138 0 obj <> /Contents 139 0 R >> endobj 142 0 obj <> /Contents 143 0 R >> endobj 146 0 obj <> /Contents 147 0 R >> endobj 150 0 obj <> /Contents 151 0 R >> endobj 154 0 obj <> /Contents 155 0 R >> endobj 158 0 obj <> /Contents 159 0 R >> endobj 162 0 obj <> /Contents 163 0 R >> endobj 166 0 obj <> /Contents 167 0 R >> endobj 170 0 obj <> /Contents 171 0 R >> endobj 174 0 obj <> /Contents 175 0 R >> endobj 178 0 obj <> /Contents 179 0 R >> endobj 182 0 obj <> /Contents 183 0 R >> endobj 186 0 obj <> /Contents 187 0 R >> endobj 190 0 obj <> /Contents 191 0 R >> endobj 194 0 obj <> /Contents 195 0 R >> endobj 198 0 obj <> /Contents 199 0 R >> endobj 202 0 obj <> /Contents 203 0 R >> endobj 206 0 obj <> /Contents 207 0 R >> endobj 210 0 obj <> /Contents 211 0 R >> endobj 214 0 obj <> /Contents 215 0 R >> endobj 218 0 obj <> /Contents 219 0 R >> endobj 222 0 obj <> /Contents 223 0 R >> endobj 226 0 obj <> /Contents 227 0 R >> endobj 230 0 obj <> /Contents 231 0 R >> endobj 234 0 obj <> /Contents 235 0 R >> endobj 3 0 obj << /Type /Pages /Kids [ 5 0 R 20 0 R 24 0 R 28 0 R 32 0 R 38 0 R 42 0 R 48 0 R 54 0 R 58 0 R 62 0 R 66 0 R 70 0 R 74 0 R 78 0 R 82 0 R 86 0 R 90 0 R 94 0 R 98 0 R 102 0 R 106 0 R 110 0 R 114 0 R 118 0 R 122 0 R 126 0 R 130 0 R 134 0 R 138 0 R 142 0 R 146 0 R 150 0 R 154 0 R 158 0 R 162 0 R 166 0 R 170 0 R 174 0 R 178 0 R 182 0 R 186 0 R 190 0 R 194 0 R 198 0 R 202 0 R 206 0 R 210 0 R 214 0 R 218 0 R 222 0 R 226 0 R 230 0 R 234 0 R ] /Count 54 >> endobj 1 0 obj <> endobj 4 0 obj <> endobj 14 0 obj <>stream AdobedC    $.' ",#(7),01444'9=82<.342  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz?((((((((((((((((((+?&k?'k:77F?sxtno΍ѹ:77F?sxtno΍ѹ:77F?sxtno΍҆lO_]EQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQX2/Y9_.EQEQEQEQEQE(((((((((((((((((((Oȗל h(((((QWהQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEV'K_˴QEQEQEQEQEQE(+((((((((((((((((((+_%?/k((((((uQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE/A5QEQEQEQEQEQJ:((((((((((((((((((zyv((((((E}yEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEbxDgM|EQEQEQEQEQER((((((((((((((((((:kaZ.NԜty26ZwqwJʦ8ddc1g麞4qA*KʡH# ְ4.ݾ^>i {:"\LR²8 T}Ma|LlmR A ޼qs ]P'x WIN09;o²<==2K;*@$w- aVĻA=cEپ 13__|U ĺқ)N]%]OޥWmo<9#Ik\i%]"1xW>yiSvٻ~Fݽs+o5hl.~W-ּ5Ew䘴Lq;GN:_&56/*K׎kC}>oqf{A4}9,+eVV$˹$IsK/_m[ʩRHVuQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE/A5WkvZ46wƗ,H 20q[<]LM|)N+̨1^[\$ub70۴F2 Ƹ_`@0Ƿ z+"ɕnA,es8iB>oqb˵wvą? ߈-緑ZNX=}z{;=%".%+ƙ;I4yS =s^omM7rѨ0SeW5UvNX{u_--g tL2$ ^3J:((((((((((((((((((zyv+wO}M~Gmo(q[_;4yb <ArlƎ5Zn뛣% $ 3"ZrgĤZM<2;${MjkwlSƻ FZocP7dkm#]^\\&wls귖Q6rA5O&hA(>WXhzͬ^mSr3ƼgVӥuk<  M2mc]S nW#޽s]Υ:ߚbG$8"h1]k#bz/<`溏z%Ǝo=q`F{וR((((((((((((((((((E,Ig,{lj6Islc9O 0ngVh+y?.:nlQXxCmnwpۻb*o%S96 㸫QEV|kvOa,p@1e$rҴ(C[-H-q\sh((+|by) gJ}VzVmP l3Ӿkf(+ĚwMHvۍlEc]_Bq[mlQEUy- #YXQ!$ޟ<$fFE,zEƿ-d.`(Lh\VоӭlIJ'8Vk_%?/k>5wiyOdm+ D4k'~jᶞԾ2Դ >_XaX:[GZBmq AujYdz=ͮᮩga:D(\@sһ?f*$SXUN=qiio}0cs|n#ՎAGEI3p2sWC{i6^MwBH5Nf 3Ӟ%0Ȭʂ3Wp[ZF컖@n>]W X<)s )b' {s^3J:+x ]Rq%≰8qT8-759D&E;4r$nb}}+[Z?!$nwvv =xKM\x9fvkn#,rOow n Q+b)y /]šM"lo}r<[W?[GG؆/hzWF|yhE\'eHh*v`qZKj"_ &!«g?/ gڴ_\^ԯ!tnTNJ|z|w2)#Cn'MMG_Є/Xl?^=j-/]^ ^"~Žg6P 8שNys +{ F0v g8'M(N}Rݥ&G亟JϿ5ڮ3PLehCp8Qǩ>WVԋ± jA%j.M[[^ڬZUfVI%vSSU{P_gAܘO¥wx>AAv1Pˀxx^5SKuH As^X'YJB6UC$mr ǥsZ$zq⸵O6[i-c :WRx_x.<Wֵ w_&ٿ}wLOSk:ퟍ|;([[?A-r99{i#y`rT6QҫYԭ5=Hn}FWW0XPfg5m/H%?&X,^^yvQվ y kgprrGAjt:喓ȟmPhGccĬ"4FPv>qX2/Y9_.OI$EeIUV 4H#br;;&Ǧx0j0=(`zQE!BCZ{-v?#'|q'C[Udv[ED C¬ )3n+z~}N蔳M.BnL ⦴#?RM*eʫ+%=qjȀQc\B4[)\.qmӒh~|= QU Wr:"> endobj 18 0 obj <> endobj 19 0 obj <> endobj 23 0 obj <> endobj 27 0 obj <> endobj 31 0 obj <> endobj 37 0 obj <> endobj 41 0 obj <> endobj 47 0 obj <> endobj 53 0 obj <> endobj 57 0 obj <> endobj 61 0 obj <> endobj 65 0 obj <> endobj 69 0 obj <> endobj 73 0 obj <> endobj 77 0 obj <> endobj 81 0 obj <> endobj 85 0 obj <> endobj 89 0 obj <> endobj 93 0 obj <> endobj 97 0 obj <> endobj 101 0 obj <> endobj 105 0 obj <> endobj 109 0 obj <> endobj 113 0 obj <> endobj 117 0 obj <> endobj 121 0 obj <> endobj 125 0 obj <> endobj 129 0 obj <> endobj 133 0 obj <> endobj 137 0 obj <> endobj 141 0 obj <> endobj 145 0 obj <> endobj 149 0 obj <> endobj 153 0 obj <> endobj 157 0 obj <> endobj 161 0 obj <> endobj 165 0 obj <> endobj 169 0 obj <> endobj 173 0 obj <> endobj 177 0 obj <> endobj 181 0 obj <> endobj 185 0 obj <> endobj 189 0 obj <> endobj 193 0 obj <> endobj 197 0 obj <> endobj 201 0 obj <> endobj 205 0 obj <> endobj 209 0 obj <> endobj 213 0 obj <> endobj 217 0 obj <> endobj 221 0 obj <> endobj 225 0 obj <> endobj 229 0 obj <> endobj 233 0 obj <> endobj 237 0 obj <> endobj 35 0 obj <> endobj 36 0 obj <> endobj 238 0 obj <> endobj 8 0 obj <> endobj 9 0 obj <> endobj 239 0 obj <> endobj 45 0 obj <> endobj 46 0 obj <> endobj 15 0 obj <> endobj 10 0 obj <> endobj 16 0 obj <> endobj 240 0 obj <> endobj 11 0 obj <> endobj 241 0 obj <> endobj 51 0 obj <> endobj 52 0 obj <> endobj 12 0 obj <> endobj 13 0 obj <> endobj 242 0 obj <> endobj 2 0 obj <>endobj xref 0 243 0000000000 65535 f 0000157844 00000 n 0000171999 00000 n 0000157379 00000 n 0000157892 00000 n 0000149460 00000 n 0000000015 00000 n 0000001629 00000 n 0000170643 00000 n 0000170707 00000 n 0000171096 00000 n 0000171359 00000 n 0000171651 00000 n 0000171713 00000 n 0000157947 00000 n 0000171035 00000 n 0000171156 00000 n 0000167293 00000 n 0000167323 00000 n 0000167355 00000 n 0000149644 00000 n 0000001649 00000 n 0000003192 00000 n 0000167418 00000 n 0000149788 00000 n 0000003213 00000 n 0000005122 00000 n 0000167470 00000 n 0000149932 00000 n 0000005143 00000 n 0000007346 00000 n 0000167533 00000 n 0000150076 00000 n 0000007367 00000 n 0000010469 00000 n 0000170426 00000 n 0000170489 00000 n 0000167576 00000 n 0000150220 00000 n 0000010490 00000 n 0000013915 00000 n 0000167639 00000 n 0000150364 00000 n 0000013936 00000 n 0000016923 00000 n 0000170878 00000 n 0000170950 00000 n 0000167702 00000 n 0000150508 00000 n 0000016944 00000 n 0000020289 00000 n 0000171524 00000 n 0000171581 00000 n 0000167765 00000 n 0000150652 00000 n 0000020310 00000 n 0000023186 00000 n 0000167830 00000 n 0000150796 00000 n 0000023207 00000 n 0000025825 00000 n 0000167895 00000 n 0000150940 00000 n 0000025846 00000 n 0000028330 00000 n 0000167960 00000 n 0000151084 00000 n 0000028351 00000 n 0000031591 00000 n 0000168014 00000 n 0000151228 00000 n 0000031612 00000 n 0000034537 00000 n 0000168068 00000 n 0000151372 00000 n 0000034558 00000 n 0000037446 00000 n 0000168122 00000 n 0000151516 00000 n 0000037467 00000 n 0000040158 00000 n 0000168176 00000 n 0000151660 00000 n 0000040179 00000 n 0000043186 00000 n 0000168230 00000 n 0000151804 00000 n 0000043207 00000 n 0000045631 00000 n 0000168284 00000 n 0000151948 00000 n 0000045652 00000 n 0000048822 00000 n 0000168338 00000 n 0000152092 00000 n 0000048843 00000 n 0000051249 00000 n 0000168392 00000 n 0000152236 00000 n 0000051270 00000 n 0000054398 00000 n 0000168446 00000 n 0000152381 00000 n 0000054420 00000 n 0000057012 00000 n 0000168501 00000 n 0000152528 00000 n 0000057034 00000 n 0000059858 00000 n 0000168556 00000 n 0000152675 00000 n 0000059880 00000 n 0000062738 00000 n 0000168611 00000 n 0000152822 00000 n 0000062760 00000 n 0000065403 00000 n 0000168666 00000 n 0000152969 00000 n 0000065425 00000 n 0000068028 00000 n 0000168721 00000 n 0000153116 00000 n 0000068050 00000 n 0000070932 00000 n 0000168776 00000 n 0000153263 00000 n 0000070954 00000 n 0000073654 00000 n 0000168831 00000 n 0000153410 00000 n 0000073676 00000 n 0000076832 00000 n 0000168886 00000 n 0000153557 00000 n 0000076854 00000 n 0000079004 00000 n 0000168941 00000 n 0000153704 00000 n 0000079026 00000 n 0000080885 00000 n 0000168996 00000 n 0000153851 00000 n 0000080907 00000 n 0000083993 00000 n 0000169051 00000 n 0000153998 00000 n 0000084015 00000 n 0000086375 00000 n 0000169106 00000 n 0000154145 00000 n 0000086397 00000 n 0000089223 00000 n 0000169161 00000 n 0000154292 00000 n 0000089245 00000 n 0000091917 00000 n 0000169216 00000 n 0000154439 00000 n 0000091939 00000 n 0000094231 00000 n 0000169271 00000 n 0000154586 00000 n 0000094253 00000 n 0000097153 00000 n 0000169326 00000 n 0000154733 00000 n 0000097175 00000 n 0000100200 00000 n 0000169381 00000 n 0000154880 00000 n 0000100222 00000 n 0000103740 00000 n 0000169436 00000 n 0000155027 00000 n 0000103762 00000 n 0000105561 00000 n 0000169491 00000 n 0000155174 00000 n 0000105583 00000 n 0000108356 00000 n 0000169546 00000 n 0000155321 00000 n 0000108378 00000 n 0000111562 00000 n 0000169612 00000 n 0000155468 00000 n 0000111584 00000 n 0000114979 00000 n 0000169678 00000 n 0000155615 00000 n 0000115001 00000 n 0000117535 00000 n 0000169733 00000 n 0000155762 00000 n 0000117557 00000 n 0000120932 00000 n 0000169788 00000 n 0000155909 00000 n 0000120954 00000 n 0000123966 00000 n 0000169843 00000 n 0000156056 00000 n 0000123988 00000 n 0000126934 00000 n 0000169898 00000 n 0000156203 00000 n 0000126956 00000 n 0000129976 00000 n 0000169953 00000 n 0000156350 00000 n 0000129998 00000 n 0000133225 00000 n 0000170008 00000 n 0000156497 00000 n 0000133247 00000 n 0000135769 00000 n 0000170074 00000 n 0000156644 00000 n 0000135791 00000 n 0000138617 00000 n 0000170129 00000 n 0000156791 00000 n 0000138639 00000 n 0000141461 00000 n 0000170184 00000 n 0000156938 00000 n 0000141483 00000 n 0000144611 00000 n 0000170239 00000 n 0000157085 00000 n 0000144633 00000 n 0000148132 00000 n 0000170305 00000 n 0000157232 00000 n 0000148154 00000 n 0000149438 00000 n 0000170371 00000 n 0000170582 00000 n 0000170800 00000 n 0000171247 00000 n 0000171449 00000 n 0000171805 00000 n trailer << /Size 243 /Root 1 0 R /Info 2 0 R >> startxref 172186 %%EOF iemlib-1.20.1/alias/0000755002537200234200000000000012243414233014371 5ustar zmoelnigiemusersiemlib-1.20.1/alias/iem_s.pd0000644002537200234200000000026310577214035016021 0ustar zmoelnigiemusers#N canvas 182 530 318 148 10; #X text 12 16 iem_s: alias for iem_send; #X obj 97 95 iem_send \$1; #X obj 97 69 inlet; #X obj 169 69 inlet; #X connect 2 0 1 0; #X connect 3 0 1 1; iemlib-1.20.1/alias/iem_atan2.pd0000644002537200234200000000037110577327047016574 0ustar zmoelnigiemusers#N canvas 466 588 364 164 10; #X text 9 13 iem_atan2: alias for the iem_atan2 external; #X obj 96 103 expr atan2($f1 \, $f2); #X obj 96 80 inlet; #X obj 202 80 inlet; #X obj 96 126 outlet; #X connect 1 0 4 0; #X connect 2 0 1 0; #X connect 3 0 1 1; iemlib-1.20.1/alias/tm.c0000644002537200234200000000012312062715054015155 0ustar zmoelnigiemusers#include "../iemlib2/src/toggle_mess.c" void tm_setup() { toggle_mess_setup(); } iemlib-1.20.1/alias/README0000644002537200234200000000017210577214035015257 0ustar zmoelnigiemusers G.Holzmann: I made this alias directory for Pd-extended, so that the aliases for the single file externals will work ! iemlib-1.20.1/alias/ii.c0000644002537200234200000000010512062715054015136 0ustar zmoelnigiemusers#include "../iemlib2/src/init.c" void ii_setup() { init_setup(); } iemlib-1.20.1/alias/pp.c0000644002537200234200000000012310577214035015156 0ustar zmoelnigiemusers#include "../iemlib2/src/iem_prepend.c" void pp_setup() { iem_prepend_setup(); } iemlib-1.20.1/alias/for++.pd0000644002537200234200000000117610577214035015645 0ustar zmoelnigiemusers#N canvas 0 0 450 300 10; #X obj 105 90 inlet; #X text 18 21 for++: alias for for_pp (because of problems with the hexloader); #X obj 153 90 inlet; #X obj 197 90 inlet; #X obj 160 186 for_pp; #X obj 149 246 outlet; #X obj 197 246 outlet; #X obj 256 108 f \$1; #X obj 290 108 f \$2; #X obj 304 70 loadbang; #X obj 290 130 sel 0; #X obj 331 130 sel 0; #X obj 331 108 f \$3; #X connect 0 0 4 0; #X connect 2 0 4 1; #X connect 3 0 4 2; #X connect 4 0 5 0; #X connect 4 1 6 0; #X connect 7 0 4 0; #X connect 8 0 10 0; #X connect 9 0 7 0; #X connect 9 0 8 0; #X connect 9 0 12 0; #X connect 10 1 4 1; #X connect 11 1 4 2; #X connect 12 0 11 0; iemlib-1.20.1/alias/for_pp.c0000644002537200234200000000011310577214035016023 0ustar zmoelnigiemusers#include "../iemlib1/src/for++.c" void for_pp_setup() { forpp_setup(); } iemlib-1.20.1/alias/any.c0000644002537200234200000000012610577214035015331 0ustar zmoelnigiemusers#include "../iemlib2/src/iem_anything.c" void any_setup() { iem_anything_setup(); } iemlib-1.20.1/alias/unsym.c0000644002537200234200000000012012062715054015705 0ustar zmoelnigiemusers#include "../iemlib2/src/unsymbol.c" void unsym_setup() { unsymbol_setup(); } iemlib-1.20.1/alias/iem_r.pd0000644002537200234200000000027510577214035016023 0ustar zmoelnigiemusers#N canvas 182 530 318 148 10; #X obj 107 59 inlet; #X text 12 16 iem_r: alias for iem_receive; #X obj 107 85 iem_receive \$1; #X obj 107 111 outlet; #X connect 0 0 2 0; #X connect 2 0 3 0; iemlib-1.20.1/README_lin.txt0000644002537200234200000002322710536420427015653 0ustar zmoelnigiemusersInstallation-guide for iemlib under linux iemlib_R1.17 is written by Thomas Musil from IEM Graz Austria and it is compatible to miller puckette's pd-0.38-3 to pd-0.39-2. see also LICENCE.txt, GnuLGPL.txt and README.txt. 1.) open a unix-shell, login as superuser, download and copy iemlib_R1.17_lin.tgz into your source-directory (e.g. /usr/local/src/iemlib_R1.17_lin.tgz) 2.) untar and unzip iemlib_R1.17_lin.tgz "shell"> tar xzvf iemlib_R1.17_lin.tgz (and a directory iemlib_R1.17 will be created) 3.) install external library folders "shell"> cp -R /usr/local/src/iemlib_R1.17/iemlib1 /usr/local/lib/pd/extra/ "shell"> cp -R /usr/local/src/iemlib_R1.17/iemlib2 /usr/local/lib/pd/extra/ "shell"> cp -R /usr/local/src/iemlib_R1.17/iem_mp3 /usr/local/lib/pd/extra/ "shell"> cp -R /usr/local/src/iemlib_R1.17/iem_t3_lib /usr/local/lib/pd/extra/ ( help files and sources are included ) 4.) install pd abstractions folder "shell"> cp -R /usr/local/src/iemlib_R1.17/iemabs /usr/local/lib/pd/extra/ ( help files are included ) 5.) add to your pd_start_script, or into your pd-resource-file ~/.pdrc, the following configuration-options: -path /usr/local/lib/pd/extra/iemabs -lib iemlib1:iemlib2:iem_mp3:iem_t3_lib or create an executable textfile script start_pd with this content: #!/bin/sh /usr/local/bin/pd -r 44100 -channels 2 -audiobuf 160 -audiodev 1 -nomidi \ -path /usr/local/lib/pd/extra/iemabs \ -lib iemlib1:iemlib2:iem_mp3:iem_t3_lib How to compile iemlib under linux after installing iemlib: 6a.) edit Makefile change to directory /usr/local/src/iemlib_R1.17 and edit the following line of Makefile and save ( PREFIX =/usr/local/lib/pd INSTALL_BIN=$(PREFIX)/extra ) 6b.) edit Make.include edit the following line of Make.include and save ( PDSOURCE = /usr/local/src/pd-0.39-2/src ) 7.) compile iemlib1, iemlib2, iem_mp3, iem_t3_lib change to directory /usr/local/src/iemlib_R1.17 "shell"> make ( iemlib1.pd_linux will be created in /usr/local/src/iemlib_R1.17/iemlib1/ iemlib2.pd_linux will be created in /usr/local/src/iemlib_R1.17/iemlib2/ iem_mp3.pd_linux will be created in /usr/local/src/iemlib_R1.17/iem_mp3/ iem_t3_lib.pd_linux will be created in /usr/local/src/iemlib_R1.17/iem_t3_lib/ ). 8.) copy external-libraries via install "shell"> make install content of iemlib Release 1.17 from November 2006 ============================ 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 parentdollarzero receive parent unique number ------------------------- 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 iemlib-1.20.1/LICENCE.txt0000644002537200234200000000237110536420427015113 0ustar zmoelnigiemusersIemlib contains 5 directories, 4 external libraries with help files and 1 abstraction folder with help files: iemlib1, iemlib2, iem_t3_lib, iem_mp3 and iemabs. This library extends the performance of miller puckette's pure data (pd). Copyright (C) 2000-2006 Thomas MUSIL [musil_at_iem.at] IEM - Institute of Electronic Music and Acoustics, Graz Inffeldgasse 10/3, 8010 Graz, Austria http://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 ( 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 Graz, 22 November 2006 Thomas Musil iemlib-1.20.1/INSTALL_lin.txt0000644002537200234200000000444410536420427016024 0ustar zmoelnigiemusersInstallation-guide for iemlib under linux iemlib_R1.17 is written by Thomas Musil from IEM Graz Austria and it is compatible to miller puckette's pd-0.38-3 to pd-0.39-2. see also LICENCE.txt, GnuLGPL.txt and README.txt. 1.) open a unix-shell, login as superuser, download and copy iemlib_R1.17_lin.tgz into your source-directory (e.g. /usr/local/src/iemlib_R1.17_lin.tgz) 2.) untar and unzip iemlib_R1.17_lin.tgz "shell"> tar xzvf iemlib_R1.17_lin.tgz (and a directory iemlib_R1.17 will be created) 3.) install external library folders "shell"> cp -R /usr/local/src/iemlib_R1.17/iemlib1 /usr/local/lib/pd/extra/ "shell"> cp -R /usr/local/src/iemlib_R1.17/iemlib2 /usr/local/lib/pd/extra/ "shell"> cp -R /usr/local/src/iemlib_R1.17/iem_mp3 /usr/local/lib/pd/extra/ "shell"> cp -R /usr/local/src/iemlib_R1.17/iem_t3_lib /usr/local/lib/pd/extra/ ( help files and sources are included ) 4.) install pd abstractions folder "shell"> cp -R /usr/local/src/iemlib_R1.17/iemabs /usr/local/lib/pd/extra/ ( help files are included ) 5.) add to your pd_start_script, or into your pd-resource-file ~/.pdrc, the following configuration-options: -path /usr/local/lib/pd/extra/iemabs -lib iemlib1:iemlib2:iem_mp3:iem_t3_lib or create an executable textfile script start_pd with this content: #!/bin/sh /usr/local/bin/pd -r 44100 -channels 2 -audiobuf 160 -audiodev 1 -nomidi \ -path /usr/local/lib/pd/extra/iemabs \ -lib iemlib1:iemlib2:iem_mp3:iem_t3_lib How to compile iemlib under linux after installing iemlib: 6a.) edit Makefile change to directory /usr/local/src/iemlib_R1.17 and edit the following line of Makefile and save ( PREFIX =/usr/local/lib/pd INSTALL_BIN=$(PREFIX)/extra ) 6b.) edit Make.include edit the following line of Make.include and save ( PDSOURCE = /usr/local/src/pd-0.39-2/src ) 7.) compile iemlib1, iemlib2, iem_mp3, iem_t3_lib change to directory /usr/local/src/iemlib_R1.17 "shell"> make ( iemlib1.pd_linux will be created in /usr/local/src/iemlib_R1.17/iemlib1/ iemlib2.pd_linux will be created in /usr/local/src/iemlib_R1.17/iemlib2/ iem_mp3.pd_linux will be created in /usr/local/src/iemlib_R1.17/iem_mp3/ iem_t3_lib.pd_linux will be created in /usr/local/src/iemlib_R1.17/iem_t3_lib/ ). 8.) copy external-libraries via install "shell"> make install iemlib-1.20.1/Dokumentation_German.doc0000644002537200234200000126300012253610457020112 0ustar zmoelnigiemusersࡱ> M abjbj==ίWW\Xl$2TJht4::: ۾ JJJJJJJ$L 5NP:J-":J::_gJ8::JJ ?4I : [;zDC^@I}J0JCNXN@I IEM Report 12/03: IEMLIB fr PD Funktionsbeschreibung der Pd-Objekte von iemlib1, iemlib2 und iemabs (Zusatz-Bibliotheken fr die Echtzeit-Multimedia-Plattform Pd) Release 1.15 Verfasser: Thomas Musil Version 1.0, Stand 15.09.2003 Zusammenfassung Die iemlib, bestehend aus 4 Pd-External-Bibliotheken und einem Sammelordner fr Pd-Subpatches, umfasst ca. 180 Objekte. Diese erweitern die Anwendbarkeit von Pd, einer graphischen Echtzeit-Multimedia-Programmiersprache, entwickelt von Miller Puckette. Hauptmerkmale der iemlib sind digitale Filter (FIR, IIR 1. bis 10. Ordnung), Parameter-Management und Parameter-Speicherung von Pd-Messages. Abstract Iemlib contains 4 pd-external-libraries and one directory for pd-subpatches, or appr. 180 objects. It expands the usability of Pd, a realtime multimedia graphical programing language, developed by Miller Puckette. The main issues of iemlib are digital filters (FIR, IIR 1. to 10. order) and parameter management of Pd messages. INHALTSVERZEICHNIS TOC \o \h \z \t "berschrift 6;6;berschrift 7;7;berschrift 8;8;berschrift 9;9"   HYPERLINK \l "_Toc63175150" 1 Einleitung  PAGEREF _Toc63175150 \h 1  HYPERLINK \l "_Toc63175151" 2 Begriffsdefinitionen  PAGEREF _Toc63175151 \h 2  HYPERLINK \l "_Toc63175152" 3 Signalverarbeitende Objekte  PAGEREF _Toc63175152 \h 2  HYPERLINK \l "_Toc63175153" 3.1 Filterobjekte  PAGEREF _Toc63175153 \h 2  HYPERLINK \l "_Toc63175154" FIR~ : Filter mit endlicher Impuls Antwort  PAGEREF _Toc63175154 \h 2  HYPERLINK \l "_Toc63175155" maverage~ : gleitendes Mittelwert-Filter  PAGEREF _Toc63175155 \h 3  HYPERLINK \l "_Toc63175156" ap1~ : Allpass 1.Ordnung  PAGEREF _Toc63175156 \h 4  HYPERLINK \l "_Toc63175157" hp1~ : Hochpass 1.Ordnung  PAGEREF _Toc63175157 \h 4  HYPERLINK \l "_Toc63175158" lp1~ : Tiefpass 1.Ordnung  PAGEREF _Toc63175158 \h 4  HYPERLINK \l "_Toc63175159" lp1_t~ : Tiefpass 1.Ordnung mit Zeitkonstanten-Eingang  PAGEREF _Toc63175159 \h 5  HYPERLINK \l "_Toc63175160" ap2~ : Allpass 2.Ordnung  PAGEREF _Toc63175160 \h 5  HYPERLINK \l "_Toc63175161" hp2~ : Hochpass 2.Ordnung  PAGEREF _Toc63175161 \h 5  HYPERLINK \l "_Toc63175162" lp2~ : Tiefpass 2.Ordnung  PAGEREF _Toc63175162 \h 5  HYPERLINK \l "_Toc63175163" bpq2~ : Bandpass 2.Ordnung mit Gte-Eingang  PAGEREF _Toc63175163 \h 5  HYPERLINK \l "_Toc63175164" bpw2~ : Bandpass 2.Ordnung mit Bandbreite-Eingang  PAGEREF _Toc63175164 \h 5  HYPERLINK \l "_Toc63175165" bsq2~ : Bandsperre 2.Ordnung (notch) mit Gte-Eingang  PAGEREF _Toc63175165 \h 5  HYPERLINK \l "_Toc63175166" bsw2~ : Bandsperre 2.Ordnung (notch) mit Bandbreite-Eingang  PAGEREF _Toc63175166 \h 5  HYPERLINK \l "_Toc63175167" rbpq2~ : Resonanz-Bandpass 2.Ordnung mit Gte-Eingang  PAGEREF _Toc63175167 \h 5  HYPERLINK \l "_Toc63175168" rbpw2~ : Resonanz-Bandpass 2.Ordnung mit Bandbreite-Eingang  PAGEREF _Toc63175168 \h 5  HYPERLINK \l "_Toc63175169" hml_shelf~ : Hhen-Mitten-Bsse Klangregler  PAGEREF _Toc63175169 \h 7  HYPERLINK \l "_Toc63175170" para_bp2~ : parametrischer Bandpass 2. Ordnung  PAGEREF _Toc63175170 \h 7  HYPERLINK \l "_Toc63175171" hp2_butt~ , hp3_butt~ , hp4_butt~ , hp5_butt~ ;  PAGEREF _Toc63175171 \h 8  HYPERLINK \l "_Toc63175172" hp6_butt~ , hp7_butt~ , hp8_butt~ , hp9_butt~ ;  PAGEREF _Toc63175172 \h 8  HYPERLINK \l "_Toc63175173" hp10_butt~ : Hochpass 2. bis 10.Ordnung mit Butterworth-Kennlinie  PAGEREF _Toc63175173 \h 8  HYPERLINK \l "_Toc63175174" hp2_cheb~ , hp3_cheb~ , hp4_cheb~ , hp5_cheb~ ;  PAGEREF _Toc63175174 \h 9  HYPERLINK \l "_Toc63175175" hp6_cheb~ , hp7_cheb~ , hp8_cheb~ , hp9_cheb~ ;  PAGEREF _Toc63175175 \h 9  HYPERLINK \l "_Toc63175176" hp10_cheb~ : Hochpass 2. bis 10.Ordnung mit Tschebyscheff-Kennlinie  PAGEREF _Toc63175176 \h 9  HYPERLINK \l "_Toc63175177" hp2_bess~ , hp3_bess~ , hp4_bess~ , hp5_bess~ ;  PAGEREF _Toc63175177 \h 10  HYPERLINK \l "_Toc63175178" hp6_bess~ , hp7_bess~ , hp8_bess~ , hp9_bess~ ;  PAGEREF _Toc63175178 \h 10  HYPERLINK \l "_Toc63175179" hp10_bess~ : Hochpass 2. bis 10.Ordnung mit Bessel-Kennlinie  PAGEREF _Toc63175179 \h 10  HYPERLINK \l "_Toc63175180" hp2_crit~ , hp3_crit~ , hp4_crit~ , hp5_crit~ ;  PAGEREF _Toc63175180 \h 10  HYPERLINK \l "_Toc63175181" hp6_crit~ , hp7_crit~ , hp8_crit~ , hp9_crit~ ;  PAGEREF _Toc63175181 \h 10  HYPERLINK \l "_Toc63175182" hp10_crit~ : Hochpass 2. bis 10.Ordnung mit kritischer Dmpfung  PAGEREF _Toc63175182 \h 10  HYPERLINK \l "_Toc63175183" lp2_butt~ , lp3_butt~ , lp4_butt~ , lp5_butt~ ;  PAGEREF _Toc63175183 \h 11  HYPERLINK \l "_Toc63175184" lp6_butt~ , lp7_butt~ , lp8_butt~ , lp9_butt~ ;  PAGEREF _Toc63175184 \h 11  HYPERLINK \l "_Toc63175185" lp10_butt~ : Tiefpass 2. bis 10.Ordnung mit Butterworth-Kennlinie  PAGEREF _Toc63175185 \h 11  HYPERLINK \l "_Toc63175186" lp2_cheb~ , lp3_cheb~ , lp4_cheb~ , lp5_cheb~ ;  PAGEREF _Toc63175186 \h 12  HYPERLINK \l "_Toc63175187" lp6_cheb~ , lp7_cheb~ , lp8_cheb~ , lp9_cheb~ ;  PAGEREF _Toc63175187 \h 12  HYPERLINK \l "_Toc63175188" lp10_cheb~ : Tiefpass 2. bis 10.Ordnung mit Tschebyscheff-Kennlinie  PAGEREF _Toc63175188 \h 12  HYPERLINK \l "_Toc63175189" lp2_bess~ , lp3_bess~ , lp4_bess~ , lp5_bess~ ;  PAGEREF _Toc63175189 \h 12  HYPERLINK \l "_Toc63175190" lp6_bess~ , lp7_bess~ , lp8_bess~ , lp9_bess~ ;  PAGEREF _Toc63175190 \h 12  HYPERLINK \l "_Toc63175191" lp10_bess~ : Tiefpass 2. bis 10.Ordnung mit Bessel-Kennlinie  PAGEREF _Toc63175191 \h 12  HYPERLINK \l "_Toc63175192" lp2_crit~ , lp3_crit~ , lp4_crit~ , lp5_crit~ ;  PAGEREF _Toc63175192 \h 13  HYPERLINK \l "_Toc63175193" lp6_crit~ , lp7_crit~ , lp8_crit~ , lp9_crit~ ;  PAGEREF _Toc63175193 \h 13  HYPERLINK \l "_Toc63175194" lp10_crit~ : Tiefpass 2. bis 10.Ordnung mit kritischer Dmpfung  PAGEREF _Toc63175194 \h 13  HYPERLINK \l "_Toc63175195" vcf_hp2~ , vcf_hp4~ , vcf_hp6~ ;  PAGEREF _Toc63175195 \h 14  HYPERLINK \l "_Toc63175196" vcf_hp8~ : Hochpass 2. bis 8. Ordnung mit Frequenz- und Q-Signaleingngen  PAGEREF _Toc63175196 \h 14  HYPERLINK \l "_Toc63175197" vcf_lp2~ , vcf_lp4~ , vcf_lp6~ ;  PAGEREF _Toc63175197 \h 14  HYPERLINK \l "_Toc63175198" vcf_lp8~ : Tiefpass 2. bis 8.Ordnung mit Frequenz- und Q-Signaleingngen  PAGEREF _Toc63175198 \h 14  HYPERLINK \l "_Toc63175199" vcf_bp2~ , vcf_bp4~ , vcf_bp6~ ;  PAGEREF _Toc63175199 \h 14  HYPERLINK \l "_Toc63175200" vcf_bp8~ : Bandpass 2. bis 8.Ordnung mit Frequenz- und Q-Signaleingngen  PAGEREF _Toc63175200 \h 14  HYPERLINK \l "_Toc63175201" vcf_rbp2~ , vcf_rbp4~ , vcf_rbp6~ , vcf_rbp8~ :  PAGEREF _Toc63175201 \h 14  HYPERLINK \l "_Toc63175202" Resonanz-Bandpass 2. bis 8.Ordnung mit Frequenz- und Q-Signaleingngen  PAGEREF _Toc63175202 \h 14  HYPERLINK \l "_Toc63175203" 3.2 Arithmetische Objekte  PAGEREF _Toc63175203 \h 15  HYPERLINK \l "_Toc63175204" addl~ : Signal-Addition mit line~  PAGEREF _Toc63175204 \h 15  HYPERLINK \l "_Toc63175205" divl~ : Signal-Divison mit line~  PAGEREF _Toc63175205 \h 15  HYPERLINK \l "_Toc63175206" mull~ : Signal-Multiplikation mit line~  PAGEREF _Toc63175206 \h 15  HYPERLINK \l "_Toc63175207" subl~ : Signal-Subtraktion mit line~  PAGEREF _Toc63175207 \h 15  HYPERLINK \l "_Toc63175208" 3.3 signal-to-float Objekte  PAGEREF _Toc63175208 \h 16  HYPERLINK \l "_Toc63175209" prvu~ : Spitzenwert und Effektivwert VU-Meter Interface  PAGEREF _Toc63175209 \h 16  HYPERLINK \l "_Toc63175210" pvu~ : Spitzenwert VU-Meter Interface  PAGEREF _Toc63175210 \h 17  HYPERLINK \l "_Toc63175211" rvu~ : Effektivwert VU-Meter Interface  PAGEREF _Toc63175211 \h 17  HYPERLINK \l "_Toc63175212" unsig~ : Signal zu -Message Konverter  PAGEREF _Toc63175212 \h 18  HYPERLINK \l "_Toc63175213" 3.4 Allgemeine Objekte  PAGEREF _Toc63175213 \h 18  HYPERLINK \l "_Toc63175214" fade~ : Formgeber fr Signal Ein-/Aus-Blendungskurven (bentigt line~)  PAGEREF _Toc63175214 \h 18  HYPERLINK \l "_Toc63175215" iem_blocksize~ : liefert die Signal-Block-Lnge eines Fensters in Samples  PAGEREF _Toc63175215 \h 19  HYPERLINK \l "_Toc63175216" iem_samplerate~ : liefert die Samplerate eines Fensters in Hz  PAGEREF _Toc63175216 \h 19  HYPERLINK \l "_Toc63175217" LFO_noise~ : bandbegrenztes weisses Rauschen mit Grenzfrequenz  PAGEREF _Toc63175217 \h 19  HYPERLINK \l "_Toc63175218" peakenv~ : Spitzenwert-Hllkurven-Folger  PAGEREF _Toc63175218 \h 20  HYPERLINK \l "_Toc63175219" pink~ : rosa Rausch-Generator  PAGEREF _Toc63175219 \h 20  HYPERLINK \l "_Toc63175220" sin_phase~ : berechnet die Phasendifferenz zweier Sinus-Signale in Samples  PAGEREF _Toc63175220 \h 21  HYPERLINK \l "_Toc63175221" 4 Message-verarbeitende Objekte  PAGEREF _Toc63175221 \h 21  HYPERLINK \l "_Toc63175222" 4.1 Gleitkomma-basierende Objekte (float)  PAGEREF _Toc63175222 \h 21  HYPERLINK \l "_Toc63175223" 1p1z : IIR-Filter 1.Ordnung fr einen Parameter-Wert  PAGEREF _Toc63175223 \h 21  HYPERLINK \l "_Toc63175224" bpe : zeitliche Ablauf-Steuereinheit fr einen Parameter  PAGEREF _Toc63175224 \h 22  HYPERLINK \l "_Toc63175225" db2v : dB zu Effektivwert Konverter  PAGEREF _Toc63175225 \h 23  HYPERLINK \l "_Toc63175226" v2db : Effektivwert zu dB Konverter  PAGEREF _Toc63175226 \h 23  HYPERLINK \l "_Toc63175227" dbtofad : MIDI-dB zu Fader-Verlauf Konverter  PAGEREF _Toc63175227 \h 23  HYPERLINK \l "_Toc63175228" fadtodb : Fader-Verlauf zu MIDI-dB Konverter  PAGEREF _Toc63175228 \h 24  HYPERLINK \l "_Toc63175229" fadtorms : Fader-Verlauf zu Effektivwert Konverter  PAGEREF _Toc63175229 \h 24  HYPERLINK \l "_Toc63175230" rmstofad : Effektivwert zu Fader-Verlauf Konverter  PAGEREF _Toc63175230 \h 24  HYPERLINK \l "_Toc63175231" round_zero : rundet Zahlen im Bereich um null auf null  PAGEREF _Toc63175231 \h 25  HYPERLINK \l "_Toc63175232" speedlim : reduziert die Daten-Durchlaufrate von -Messages  PAGEREF _Toc63175232 \h 25  HYPERLINK \l "_Toc63175233" split3 : teilt eine {float}-Message einem von 3 Wertebereichen zu  PAGEREF _Toc63175233 \h 25  HYPERLINK \l "_Toc63175234" split : teilt eine {float}-Message einem von 2 Wertebereichen zu (wie moses)  PAGEREF _Toc63175234 \h 26  HYPERLINK \l "_Toc63175235" 4.2 symbol-basierende Objekte  PAGEREF _Toc63175235 \h 26  HYPERLINK \l "_Toc63175236" mergefilename : fgt Liste zu einer Symbol-Buchstabenkette zusammen  PAGEREF _Toc63175236 \h 26  HYPERLINK \l "_Toc63175237" splitfilename : trennt ein Symbol in 2 Teile auf  PAGEREF _Toc63175237 \h 27  HYPERLINK \l "_Toc63175238" stripfilename : entfernt Buchstaben aus einer Buchstabenkette  PAGEREF _Toc63175238 \h 27  HYPERLINK \l "_Toc63175239" unsymbol : wandelt eine - in eine -Message um  PAGEREF _Toc63175239 \h 28  HYPERLINK \l "_Toc63175240" 4.3 anything-basierende Objekte  PAGEREF _Toc63175240 \h 28  HYPERLINK \l "_Toc63175241" any : universeller Speicher fr jegliche Einzel-Message (wie f oder symbol)  PAGEREF _Toc63175241 \h 28  HYPERLINK \l "_Toc63175242" iem_append : fgt Message einen Nachspann hinzu (ehemals merge_any)  PAGEREF _Toc63175242 \h 29  HYPERLINK \l "_Toc63175243" iem_prepend : fgt Message einen Vorspann hinzu (Abbk. pp , prepend)  PAGEREF _Toc63175243 \h 30  HYPERLINK \l "_Toc63175244" 4.4 Initialisierungsobjekte  PAGEREF _Toc63175244 \h 30  HYPERLINK \l "_Toc63175245" dollarg : gibt bergabeargumente des Eltern-Klasse-Objekts aus (Abbk. $n)  PAGEREF _Toc63175245 \h 30  HYPERLINK \l "_Toc63175246" dsp : schaltet Audio-Engine ein und berechnet die Auslastung (aka dsp~)  PAGEREF _Toc63175246 \h 31  HYPERLINK \l "_Toc63175247" float24 : speichert eine -Zahl 24 Bit genau  PAGEREF _Toc63175247 \h 32  HYPERLINK \l "_Toc63175248" init : gibt Initial-Message aus (Abbk. ii)  PAGEREF _Toc63175248 \h 32  HYPERLINK \l "_Toc63175249" once : lsst eine Message nur erstmalig passieren  PAGEREF _Toc63175249 \h 33  HYPERLINK \l "_Toc63175250" 4.5 Zhlerobjekte  PAGEREF _Toc63175250 \h 34  HYPERLINK \l "_Toc63175251" exp_inc : exponentieller / inkrementeller Zhler (ausgelst durch {bang})  PAGEREF _Toc63175251 \h 34  HYPERLINK \l "_Toc63175252" for++ : inkrementeller Zhler (gesteuert durch internes Metronom)  PAGEREF _Toc63175252 \h 34  HYPERLINK \l "_Toc63175253" modulo_counter : Zirkulr-Zhler (ausgelst durch {bang})  PAGEREF _Toc63175253 \h 35  HYPERLINK \l "_Toc63175254" 4.6 Objekte fr Parameter-Management  PAGEREF _Toc63175254 \h 36  HYPERLINK \l "_Toc63175255" iem_pbank_csv : verwaltet Parameter-Banken im CSV-Format (wie textfile)  PAGEREF _Toc63175255 \h 36  HYPERLINK \l "_Toc63175256" list2send : wandelt {list}-Messages in send-Messages um  PAGEREF _Toc63175256 \h 38  HYPERLINK \l "_Toc63175257" receive2list : empfngt receive-Messages und gibt sie als Listen aus  PAGEREF _Toc63175257 \h 39  HYPERLINK \l "_Toc63175258" 4.7 Allgemeine Objekte  PAGEREF _Toc63175258 \h 40  HYPERLINK \l "_Toc63175259" add2_comma : erzeugt Beistrich getrennte Messages in einer Messagebox  PAGEREF _Toc63175259 \h 40  HYPERLINK \l "_Toc63175260" f2note : Frequenz zu Midi+Cents+Note Konverter  PAGEREF _Toc63175260 \h 41  HYPERLINK \l "_Toc63175261" gate : steuerbares Message-Gatter (wie spigot)  PAGEREF _Toc63175261 \h 41  HYPERLINK \l "_Toc63175262" iem_i_route : Variation von route-Objekt (Abbk. iiroute)  PAGEREF _Toc63175262 \h 42  HYPERLINK \l "_Toc63175263" iem_route : verzweigt Listen in Abhngigkeit ihres ersten Eintrags  PAGEREF _Toc63175263 \h 43  HYPERLINK \l "_Toc63175264" iem_receive : Receive-Objekt mit Eingang fr Namen (Abbk. iem_r)  PAGEREF _Toc63175264 \h 44  HYPERLINK \l "_Toc63175265" iem_sel_any : ermglicht Messagebox mit Mehrfach-Inhalt  PAGEREF _Toc63175265 \h 44  HYPERLINK \l "_Toc63175266" iem_send : Send-Objekt mit extra Eingang fr Namen (Abbk. iem_s)  PAGEREF _Toc63175266 \h 45  HYPERLINK \l "_Toc63175267" pre_inlet : schickt eine Identifikations-Message jeder Message voraus  PAGEREF _Toc63175267 \h 46  HYPERLINK \l "_Toc63175268" soundfile_info : liefert Header-Information einer wav-Datei  PAGEREF _Toc63175268 \h 46  HYPERLINK \l "_Toc63175269" toggle_mess : ermglicht Messagebox mit Mehrfach-Inhalt (Abbk. tm)  PAGEREF _Toc63175269 \h 47  HYPERLINK \l "_Toc63175270" 5 Literaturverzeichnis  PAGEREF _Toc63175270 \h 48  IEMLIB fr PD Funktionsbeschreibung der Pd-Objekte von iemlib1, iemlib2 und iemabs Release 1.15 Einleitung Die iemlib versteht sich einerseits als Ergnzung zu den internen Pd-Objekten (Internals) von Miller Puckette  REF _Ref62479923 \n \h [1], andererseits als Ansammlung von Objekten, die fr diverse Projekte speziell programmiert wurden, und doch allgemeinen Verwendungscharakter aufweisen. Die iemlib setzt sich zusammen aus 4 dynamisch linkbaren Bibliotheken (iemlib1 , iemlib2, iem_t3_lib , iem_mp3) mit der Endung *.dll fr Windows, *.pd_linux fr Linux und *.pd_darwin fr Macintosh. Jede Bibliothek wiederum besteht aus mehreren, in C programmierten Objekten (Externals). Weiters gibt es einen Ordner iemabs mit Pd-Makro-Objekten (Abstractions), die aus einem Verbund diverser Externals und Internals zusammen gebaut wurden. Dabei bilden iemlib1, iemlib2 und iemabs eine untrennbare Einheit; whrend iem_t3_lib und iem_mp3 Spezial-Bibliotheken darstellen. Schlielich gibt es noch iemhelp , einen Ordner mit einer Sammlung von Help-Patches fr alle Externals und Abstraktionen von iemlib. Die aktuelle Version von iemlib kann man kostenlos beziehen unter  HYPERLINK "http://pd.iem.at/iemlib" http://pd.iem.at/iemlib  HYPERLINK "http://iem.at/~musil/iemlib/" http://iem.at/~musil/iemlib/. IEM 2003, Thomas MUSIL [musil@iem.at]. Gebrauch und Weiterverwertung unterliegt den Bedingungen der GNU Lesser General Public License GnuLGPL (siehe http://www.gnu.org/copyleft/lesser.html). Begriffsdefinitionen Grund-Elemente (Eintrge) einer PD-Message knnen sein: 32-Bit-Gleitkommazahl bzw. 24-Bit Ganzzahl; zusammengesetzte Struktur, bestehend aus einem null-terminierten 8-Bit-Buchstabenfeld, und einem Zeiger-Eintrag (welcher zB. auf einen reservierten Speicherbereich verweist). Eine PD-Message besteht aus einem Selektor-Symbol {xxx} und einem anschlieenden Feld von - oder -Eintrgen. In Pd gibt es folgende bekannte Message-Typen: {bang} inhaltsloses Ereignis (das Feld enthlt keine Eintrge); {float} das Feld entlt nur einen -Eintrag (wird im allgemeinen ohne dem Selektor {float} dargestellt); {symbol} das Feld entlt nur einen -Eintrag; {list} das Feld enthlt eine Reihe von - und/oder -Eintrgen; (Listen, die mit einem -Eintrag beginnen, werden im allgemeinen ohne dem Selektor {list} dargestellt). Zustzlich gibt es noch spezielle, vom Programmierer definierte Messages, zB: {open} Dateiname; {clear} ohne Inhalt; {set} Parameter 1 + Parameter 2. Diese werden im allgemeinen {anything}-Messages genannt. Hier kommt es zu einer gewissen Unschrfe in der Bezeichnung, da man auch anything fr jegliche Message verwenden kann (also auch fr die bekannten Grundtypen). Signalverarbeitende Objekte Filterobjekte FIR~ : Filter mit endlicher Impuls Antwort Funktionsweise: FIR~ faltet die eingehende Sample-Sequenz mit den aus einem graphischen Array stammenden Koeffizienten. Wird das Array oder die Ordnung verndert, tritt eine Unstetigkeit im Ausgangssignal auf. Falls die Filter-Ordnung grer als die Array-Lnge ist, wird nicht gefaltet (Null-Signal am Ausgang). bergabe-Parameter: 1.Argument: Array-Name; 2.Argument: Filter-Ordnung (<= Array-Lnge). Eingnge und Ausgnge: 1.Eingang: {signal} : Filter-Eingang; oder: {set} + Array-Name + Filter-Ordnung; 1. Ausgang: {signal} : gefalteter Filter-Ausgang. maverage~ : gleitendes Mittelwert-Filter Funktionsweise: Das Moving-Average-Filter wurde realisiert mit einem IIR-Filter und einem Delay; es faltet die eingehende Samplesequenz mit einem Rechteckfenster der Breite N und der Hhe 1/N. ndert sich die Fensterbreite, wird das Ausgangssignal Breitendauer lang unterdrckt. bergabe-Parameter: 1.Argument: maximale Fenster-Breite in ms; 2.Argument: aktuelle Fenster-Breite (<= Maximale Fenster-Breite) (>= 1.45 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} aktuelle Fenster-Breite in ms. 1.Ausgang: {signal} arithmetisch gemittelter Filter-Ausgang. Fr die folgenden Filter gilt: Die Berechnung der Koeffizienten wurde aus dem Analog-Bereich mittels Bilinear-Transformation in den z-Bereich bewerkstelligt. Legende: f ... Frequenzvariable in Hz f0 ... Grenz- , oder Resonanz- , oder 90-Grad, oder 180-Grad-Frequenz in Hz P = jf / f0 ... komplexe normierte Frequenzvariable SR ... Samplerate in Hz z ... freiwhlbare Variable im z-Bereich L = cot(p *f0/SR) bw ... Bandbreite eines Filters in Hz BW = bw / f0 ... normierte Bandbreite eines Filters Q = f0 / bw ... Gte eines Filters Bilinear-Transformation: P = L*(1 z-1)/(1 + z-1)  REF _Ref62547790 \n \h [2] Die bertragungs-Funktion H(z-1) wird auf eine rekursive Differenzengleichung der Form: wn0 = in[i] + b1*wn1 + b2*wn2 out[i] = a0*wn0 + a1*wn1 + a2*wn2 wn2 = wn1 wn1 = wn0 gebracht. ap1~ : Allpass 1.Ordnung hp1~ : Hochpass 1.Ordnung lp1~ : Tiefpass 1.Ordnung Funktionsweise: Die Filter haben folgende bertragungsfunktionen: Allpass ap1~ H(P) = (1 - P) / (1 + P); Hochpass hp1~ H(P) = P / (1 + P); Tiefpass lp1~ H(P) = 1 / (1 + P). Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Zustzlich wird bei jeder Neuberechnung der Koeffizienten die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Grenz- (-3 dB) bzw. -90 Grad Frequenz in Hz; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Grenz- (-3 dB) bzw. -90 Grad Frequenz in Hz; 3.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. lp1_t~ : Tiefpass 1.Ordnung mit Zeitkonstanten-Eingang Funktionsweise: Wie lp1~ , nur statt Frequenz-Eingang ein Zeitkonstanten-Eingang (in welcher Zeit der Ausgang 63 % des Eingang-Sprungs erreicht). Bei nderung der Zeitkonstanten wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Zeitkonstante auf die neue Zeitkonstante logarithmisch interpoliert. Zustzlich wird bei jeder Neuberechnung der Koeffizienten die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Zeitkonstante in ms; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Zeitkonstante in ms; 3.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. ap2~ : Allpass 2.Ordnung hp2~ : Hochpass 2.Ordnung lp2~ : Tiefpass 2.Ordnung bpq2~ : Bandpass 2.Ordnung mit Gte-Eingang bpw2~ : Bandpass 2.Ordnung mit Bandbreite-Eingang bsq2~ : Bandsperre 2.Ordnung (notch) mit Gte-Eingang bsw2~ : Bandsperre 2.Ordnung (notch) mit Bandbreite-Eingang rbpq2~ : Resonanz-Bandpass 2.Ordnung mit Gte-Eingang rbpw2~ : Resonanz-Bandpass 2.Ordnung mit Bandbreite-Eingang Funktionsweise: Die Filter haben folgende bertragungsfunktionen: Allpass ap2~ H(P) = (1 P/Q + P2) / (1 + P/Q + P2); Hochpass hp2~ H(P) = P2 / (1 + P/Q + P2); Tiefpass lp2~ H(P) = 1 / (1 + P/Q + P2); Bandpass mit Gte bpq2~ H(P) = (P/Q) / (1 + P/Q + P2); Bandpass mit Bandbreite bpw2~ H(P) = (P*BW) / (1 + P*BW + P2); Bandsperre mit Gte bsq2~ H(P) = (1 + P2) / (1 + P/Q + P2); Bandsperre mit Bandbreite bsw2~ H(P) = (1 + P2) / (1 + P*BW + P2); Resonanz-Bandpass mit Gte bpq2~ H(P) = P / (1 + P/Q + P2); Resonanz-Bandpass mit Bandbreite bpw2~ H(P) = P / (1 + P*BW + P2). Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Gleiches gilt fr den Parameter Gte bzw. Bandbreite. Fr hp2~ und lp2~ gilt: Gte-Werte kleiner 0.5 ergeben eine nichtschwingende Sprungantwort, Gte von 0.707 ergibt eine Butterworth-Charakteristik im Betrags-Frequenzgang, Gte-Werte grer 0.707 ergeben eine Resonanz-berhhung im Betrags-Frequenzgang. Die Allpass-Bandbreite definiert sich als Frequenz-Bereich zwischen einer Ausgangs-Phasen-Verschiebung von -90 bis -270 Grad. Die beiden Bandpsse bpq2~ und bpw2~ besitzen bei ihrer Resonanz-Frequenz eine Verstrkung von 1, die Resonanz-Bandpsse rbpq2~ und rbpw2~ besitzen bei ihrer Resonanz-Frequenz eine Verstrkung von Q. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Grenz- (-3 dB), Resonaz- bzw. -180 Grad Frequenz in Hz; 2.Argument: Gte (ohne Einheit) bzw. Bandbreite in Hz; 3.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Grenz- (-3 dB), Resonaz- bzw. -180 Grad Frequenz in Hz; 3.Eingang: {float} Gte (ohne Einheit) bzw. Bandbreite in Hz. 4.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. hml_shelf~ : Hhen-Mitten-Bsse Klangregler Funktionsweise: Bei nderungen der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Gleiches gilt fr den Parameter Gain, wobei hier zuerst die dB-Werte linear interpoliert werden und dann erst die Effektiv-Wert-Konvertierung statt findet. Weiters gilt: bergangs-Frequenz Mitten zu Hhen muss grer sein als bergangs-Frequenz Bsse zu Mitten. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Gain im Bassbereich in dB; 2.Argument: bergangs-Frequenz Bass zu Mitten in Hz; 3.Argument: Gain im Mittenbereich in dB; 4.Argument: bergangs-Frequenz Mitten zu Hhen in Hz; 5.Argument: Gain im Hhenbereich in dB; 6.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Gain im Bassbereich in dB; 3.Eingang: {float} bergangs-Frequenz Bass zu Mitten in Hz; 4.Eingang: {float} Gain im Mittenbereich in dB; 5.Eingang: {float} bergangs-Frequenz Mitten zu Hhen in Hz; 6.Eingang: {float} Gain im Hhenbereich in dB; 7.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. para_bp2~ : parametrischer Bandpass 2. Ordnung Funktionsweise: Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Gleiches gilt fr die Parameter Gte und Gain, wobei fr Gain hier zuerst die dB-Werte linear interpoliert werden und dann erst die Effektiv-Wert-Konvertierung statt findet. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Resonanz-Frequenz in Hz; 2.Argument: Gte (ohne Einheit); 3.Argument: Gain, Resonanz-berhhung oder Abschwchung in dB; 4.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Resonanz-Frequenz in Hz; 3.Eingang: {float} Gte (ohne Einheit); 4.Eingang: {float} Gain, Resonanz-berhhung oder Abschwchung in dB; 5.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. Fr die folgenden Filter gilt: Die Koeffizienten der einzelnen Kaskaden-Stufen wurden entnommen aus  REF _Ref62547861 \n \h [3]. hp2_butt~ , hp3_butt~ , hp4_butt~ , hp5_butt~ ; hp6_butt~ , hp7_butt~ , hp8_butt~ , hp9_butt~ ; hp10_butt~ : Hochpass 2. bis 10.Ordnung mit Butterworth-Kennlinie Funktionsweise: Butterworth-Charakteristik des Frequenzgangs bedeutet, dass die Kennlinie, von hohen Frequenzen ausgehend, mglichst lange bei 0 dB bleibt, und ab der Grenzfrequenz sich mglichst schnell der Kennlinie +20dB/(Ordnung*Decade) nhert. Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Grenz-Frequenz in Hz; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Grenz-Frequenz in Hz; 3.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. hp2_cheb~ , hp3_cheb~ , hp4_cheb~ , hp5_cheb~ ; hp6_cheb~ , hp7_cheb~ , hp8_cheb~ , hp9_cheb~ ; hp10_cheb~ : Hochpass 2. bis 10.Ordnung mit Tschebyscheff-Kennlinie Funktionsweise: Tschebyscheff-Charakteristik Typ I des Frequenzgangs bedeutet, dass die Kennlinie, von hohen Frequenzen ausgehend, mglichst lange innerhalb des Welligkeits-Bereich bleibt, und ab der Grenzfrequenz sich mglichst steil absenkt, und erst dann sich der Kennlinie +20dB/(Ordnung*Decade) nhert. Bei geraden Ordnungen liegt der Welligkeits-Bereich zwischen 0 dB und +1 dB, bei ungeraden Ordnungen liegt er zwischen -1 dB und 0 dB. Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Grenz-Frequenz in Hz; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Grenz-Frequenz in Hz; 3.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. hp2_bess~ , hp3_bess~ , hp4_bess~ , hp5_bess~ ; hp6_bess~ , hp7_bess~ , hp8_bess~ , hp9_bess~ ; hp10_bess~ : Hochpass 2. bis 10.Ordnung mit Bessel-Kennlinie Funktionsweise: Bessel-Charakteristik der Gruppenlaufzeit bedeutet, dass die Kennlinie, von hohen Frequenzen ausgehend, mglichst lange konstant gehalten wird, und erst ab der Grenzfrequenz sich verndern darf. Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Grenz-Frequenz in Hz; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Grenz-Frequenz in Hz; 3.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. hp2_crit~ , hp3_crit~ , hp4_crit~ , hp5_crit~ ; hp6_crit~ , hp7_crit~ , hp8_crit~ , hp9_crit~ ; hp10_crit~ : Hochpass 2. bis 10.Ordnung mit kritischer Dmpfung Funktionsweise: Kritische Dmpfung bedeutet, dass die Sprungantwort keine berhhung bzw. kein Ausschwingverhalten aufweist. Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Grenz-Frequenz in Hz; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Grenz-Frequenz in Hz; 3.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. lp2_butt~ , lp3_butt~ , lp4_butt~ , lp5_butt~ ; lp6_butt~ , lp7_butt~ , lp8_butt~ , lp9_butt~ ; lp10_butt~ : Tiefpass 2. bis 10.Ordnung mit Butterworth-Kennlinie Funktionsweise: Butterworth-Charakteristik des Frequenzgangs bedeutet, dass die Kennlinie, von tiefen Frequenzen ausgehend, mglichst lange bei 0 dB bleibt, und ab der Grenzfrequenz sich mglichst schnell der Kennlinie -20dB/(Ordnung*Decade) nhert. Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Grenz-Frequenz in Hz; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Grenz-Frequenz in Hz; 3.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. lp2_cheb~ , lp3_cheb~ , lp4_cheb~ , lp5_cheb~ ; lp6_cheb~ , lp7_cheb~ , lp8_cheb~ , lp9_cheb~ ; lp10_cheb~ : Tiefpass 2. bis 10.Ordnung mit Tschebyscheff-Kennlinie Funktionsweise: Tschebyscheff-Charakteristik Typ I des Frequenzgangs bedeutet, dass die Kennlinie, von tiefen Frequenzen ausgehend, mglichst lange innerhalb des Welligkeits-Bereich bleibt, und ab der Grenzfrequenz sich mglichst steil absenkt, und erst dann sich der Kennlinie -20dB/(Ordnung*Decade) nhert. Bei geraden Ordnungen liegt der Welligkeits-Bereich zwischen 0 dB und +1 dB, bei ungeraden Ordnungen liegt er zwischen -1 dB und 0 dB. Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Grenz-Frequenz in Hz; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Grenz-Frequenz in Hz; 3.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. lp2_bess~ , lp3_bess~ , lp4_bess~ , lp5_bess~ ; lp6_bess~ , lp7_bess~ , lp8_bess~ , lp9_bess~ ; lp10_bess~ : Tiefpass 2. bis 10.Ordnung mit Bessel-Kennlinie Funktionsweise: Bessel-Charakteristik der Gruppenlaufzeit bedeutet, dass die Kennlinie, von tiefen Frequenzen ausgehend, mglichst lange konstant gehalten wird, und erst ab der Grenzfrequenz sich verndern darf. Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Grenz-Frequenz in Hz; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Grenz-Frequenz in Hz; 3.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. lp2_crit~ , lp3_crit~ , lp4_crit~ , lp5_crit~ ; lp6_crit~ , lp7_crit~ , lp8_crit~ , lp9_crit~ ; lp10_crit~ : Tiefpass 2. bis 10.Ordnung mit kritischer Dmpfung Funktionsweise: Kritische Dmpfung bedeutet, dass die Sprungantwort keine berhhung bzw. kein Ausschwingverhalten aufweist. Bei nderung der Frequenz wird binnen der Interpolationszeit in 1.45 ms (bei Blocksize = 64; Samplerate = 44100 Hz) Schritten die bisherige Frequenz auf die neue Frequenz logarithmisch interpoliert. Bei jeder Neuberechnung der Koeffizienten wird die Stabilitt des Filters berprft. bergabe-Parameter: 1.Argument: Grenz-Frequenz in Hz; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {float} Grenz-Frequenz in Hz; 3.Eingang: {float} Interpolationszeit in ms. 1.Ausgang: {signal} Filter-Ausgang. vcf_hp2~ , vcf_hp4~ , vcf_hp6~ ; vcf_hp8~ : Hochpass 2. bis 8. Ordnung mit Frequenz- und Q-Signaleingngen vcf_lp2~ , vcf_lp4~ , vcf_lp6~ ; vcf_lp8~ : Tiefpass 2. bis 8.Ordnung mit Frequenz- und Q-Signaleingngen Funktionsweise: Die Vorsilbe vcf stammt aus Zeiten der Analog-Synthesizer und bedeutet Voltage Controlled Filter. Filter hherer Ordnung als 2 werden zusammengesetzt aus Filterstufen 2. Ordnung. Die effektive Gte dieser Filterstufen betrgt: Q radiziert durch N/2. Bei den als Signal vorliegenden Werten von Frequenz und/oder Gte werden nur alle 4 Samples neue Koeffizienten berechnet (4-fach Downsampling). Die Stabilitt des Filters wird nicht berprft, daher wird empfohlen, den Frequenzbereich von 10 bis 17000 Hz nicht zu verlassen. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {signal} Grenz-Frequenz in Hz; 3.Eingang: {signal} Gte (ohne Einheit). 1.Ausgang: {signal} Filter-Ausgang. vcf_bp2~ , vcf_bp4~ , vcf_bp6~ ; vcf_bp8~ : Bandpass 2. bis 8.Ordnung mit Frequenz- und Q-Signaleingngen vcf_rbp2~ , vcf_rbp4~ , vcf_rbp6~ , vcf_rbp8~ : Resonanz-Bandpass 2. bis 8.Ordnung mit Frequenz- und Q-Signaleingngen Funktionsweise: Die Vorsilbe vcf stammt aus Zeiten der Analog-Synthesizer und bedeutet Voltage Controlled Filter. Die normalen Bandpsse weisen bei Resonanzfrequenz eine Verstrkung von 1 auf; whrend die Resonanz-Bandpsse eine Verstrkung proportional zu Q erzeugen. Filter hherer Ordnung als 2 werden zusammengesetzt aus Filterstufen 2. Ordnung. Die effektive Gte dieser Filterstufen wurde multiplikativ verringert, damit fr das Gesamtfilter die Formel: Q = Resonanzfrequenz / Bandbreite erfllt wird. Bei den als Signal vorliegenden Werten von Frequenz und/oder Gte werden nur alle 4 Samples neue Koeffizienten berechnet (4-fach Downsampling). Die Stabilitt des Filters wird nicht berprft, daher wird empfohlen, den Frequenzbereich von 10 bis 17000 Hz nicht zu verlassen. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {signal} Filter-Eingang; 2.Eingang: {signal} Grenz-Frequenz in Hz; 3.Eingang: {signal} Gte (ohne Einheit). 1.Ausgang: {signal} Filter-Ausgang. Arithmetische Objekte addl~ : Signal-Addition mit line~ divl~ : Signal-Divison mit line~ mull~ : Signal-Multiplikation mit line~ subl~ : Signal-Subtraktion mit line~ Funktionsweise: Der linke Signal-Eingang wird mit rechten -Message-Eingang, der intern mittels line~-Funktion zeitlich interpoliert wird, mit einer der 4 Grundrechnungsarten verknpft, das Signal-Resultat wird am Ausgang ausgegeben. bergabe-Parameter: 1.Argument: 2. Operand fr die Grundrechnungsart; 2.Argument: Interpolationszeit in ms (optional, sonst 0 ms). Eingnge und Ausgnge: 1.Eingang: {signal} 1. Operand; 2.Eingang: {float} 2. Operand; 3.Eingang: {float} Interpolationszeit fr 2. Operanden in ms. 1.Ausgang: {signal} Ergebnis der Grundrechnungsart. signal-to-float Objekte prvu~ : Spitzenwert und Effektivwert VU-Meter Interface Funktionsweise: Dreierlei Werte werden berechnet und ausgegeben: der Effektivwert, der Spitzenwert und ein Zhlerwert fr die Anzahl an bersteuerungen pro Metronom-Intervall. Der Effektivwert steigt und fllt mit der Zeitkonstante von Abkling-Zeitkonstante, der Spitzenwert steigt unmittelbar an, bleibt dann Spitzenwert-Einfrierzeit lang konstant und fllt mit Abkling-Zeitkonstante ab. Der bersteuerungszhler wird inkrementiert, falls der zeitlich unverlngerte Spitzenwert binnen eines Metronom-Intervalls den Wert von bersteuerungs-Schwellwert berschreitet. bergabe-Parameter: 1.Argument: Ausgabe-Metronomzeit in ms (optinal, sonst: 300 ms); 2.Argument: Spitzenwert-Einfrierzeit in ms (optinal, sonst: 1000 ms); 3.Argument: Abkling-Zeitkonstante in ms (optinal, sonst: 300 ms); 4.Argument: bersteuerungs-Schwellwert in dB (optinal, sonst: -0.01 dB). Eingnge und Ausgnge: 1.Eingang: {signal} Eingangssignal; oder {t_metro} + Ausgabe-Metronomzeit in ms; oder {t_hold} + Spitzenwert-Einfrierzeit in ms; oder {t_release} + Abkling-Zeitkonstante in ms; oder {threshold} + bersteuerungs-Schwellwert in dB; oder {reset} setzt interne Werte von Effektiv- und Spitzenwert auf -99.9 dB, und den bersteuerungszhler auf 0; oder {start} startet Ausgabe Metronom; oder {stop} stoppt Ausgabe Metronom; oder {float} 0 stoppt, 1 startet Ausgabe Metronom; 1.Ausgang: {list}+ Effektivwert + Spitzenwert + + Anzahl der bersteuerungen. pvu~ : Spitzenwert VU-Meter Interface Funktionsweise: Zweierlei Werte werden berechnet und ausgegeben: der Spitzenwert und ein Zhlerwert fr die Anzahl an bersteuerungen pro Metronom-Intervall. Der Spitzenwert steigt unmittelbar an und fllt mit Abkling-Zeitkonstante ab. Der bersteuerungszhler wird inkrementiert, falls der zeitlich unverlngerte Spitzenwert binnen eines Metronom-Intervalls den Wert von bersteuerungs-Schwellwert berschreitet. bergabe-Parameter: 1.Argument: Ausgabe-Metronomzeit in ms (optinal, sonst: 300 ms); 2.Argument: Abkling-Zeitkonstante in ms (optinal, sonst: 300 ms); 3.Argument: bersteuerungs-Schwellwert in dB (optinal, sonst: -0.01 dB). Eingnge und Ausgnge: 1.Eingang: {signal} Eingangssignal; oder {t_metro} + Ausgabe-Metronomzeit in ms; oder {t_release} + Abkling-Zeitkonstante in ms; oder {threshold} + bersteuerungs-Schwellwert in dB; oder {reset} setzt internen Wert von Spitzenwert auf -199.9 dB, und den bersteuerungszhler auf 0; oder {start} startet Ausgabe Metronom; oder {stop} stoppt Ausgabe Metronom; oder {float} 0 stoppt, 1 startet Ausgabe Metronom; 1.Ausgang: {float}+ Spitzenwert; 2.Ausgang: {float}+ Anzahl der bersteuerungen. rvu~ : Effektivwert VU-Meter Interface Funktionsweise: Der Effektivwert wird folgendermaen ermittelt: blockweise wird die Energie berechnet und binnen der Metronomzeit aufaddiert, durch die Anzahl von Samples dividiert, einer Message-Tiefpass-Filterung unterzogen, in dB gewandelt und ausgegeben. bergabe-Parameter: 1.Argument: Ausgabe-Metronomzeit in ms (optinal, sonst: 300 ms); 2.Argument: Abkling-Zeitkonstante in ms (optinal, sonst: 300 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Eingangssignal; oder {t_metro} + Ausgabe-Metronomzeit in ms; oder {t_release} + Abkling-Zeitkonstante in ms; oder {reset} setzt internen Wert von Effektivwert auf -99.9 dB; oder {start} startet Ausgabe Metronom; oder {stop} stoppt Ausgabe Metronom; oder {float} 0 stoppt, 1 startet Ausgabe Metronom; 1.Ausgang: {float}+ Effektivwert. unsig~ : Signal zu -Message Konverter Funktionsweise: Im Abstand von Metronomzeit wird der erste Wert eines Signal-Blocks als {float}-Message ausgegeben. bergabe-Parameter: 1.Argument: Ausgabe-Metronomzeit in ms (optinal, sonst: 300 ms). Eingnge und Ausgnge: 1.Eingang: {signal} Eingangssignal. 1.Ausgang: {float}+ erster Wert eines Signal-Blocks. Allgemeine Objekte fade~ : Formgeber fr Signal Ein-/Aus-Blendungskurven (bentigt line~) Funktionsweise: fade~ stellt eine Transformationsfunktion dar, mit einem Eingangswertebereich von 0 bis 1. Das bergabeargument bzw. der Inhalt der {set}-Message sind 6 verschiedene Symbole: _lin : Lineare bertragungsfunktion; _linsqrt : Linearer bertragungsfunktion potenziert mit 3/4; _sqrt : Linearer bertragungsfunktion potenziert mit 1/2; _sin : Viertelperiode einer Sinusfunktion; _sinhann : Viertelperiode einer Sinusfunktion potenziert mit 3/2; _hann : Viertelperiode einer Sinusfunktion potenziert mit 2. bergabe-Parameter: 1.Argument: Name der Transformations-Kurve. Eingnge und Ausgnge: 1.Eingang: {signal} : Rampen-Verlauf zwischen 0 und 1; oder {set} + Name der Transformations-Kurve; 1.Ausgang: {signal} : Verzerrte Rampe. iem_blocksize~ : liefert die Signal-Block-Lnge eines Fensters in Samples Funktionsweise: iem_blocksize~ muss man in einem Pd-Fenster an ein Objekt mit Signal-Ausgang anschliessen. Wenn man nun die DSP-Engine neu einschaltet, gibt dieses Objekt die jeweilige Gre der Signal-Block-Lnge in Samples aus. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {signal} Signal-Leitung, der die Information entnommen werden soll. 1.Ausgang: {float} Signal-Block-Lnge in Samples. iem_samplerate~ : liefert die Samplerate eines Fensters in Hz Funktionsweise: iem_samplerate~ muss man in einem Pd-Fenster an ein Objekt mit Signal-Ausgang anschliessen. Wenn man nun die DSP-Engine neu einschaltet, gibt dieses Objekt die jeweilige Samplerate in Hz aus. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {signal} Signal-Leitung, der die Information entnommen werden soll. 1.Ausgang: {float} Samplerate in Hz. LFO_noise~ : bandbegrenztes weisses Rauschen mit Grenzfrequenz Funktionsweise: Die Erzeugung dieses bandbegrenzten weissen Rauschens wird folgendermaen bewerkstelligt: proportional zur Grenzfrequenz wird immer wieder ein neuer Zufallswert zwischen -1 und +1 gebildet und mittels einer 2-Punkt-Interpolation die Zwischensamples berechnet und ausgegeben. bergabe-Parameter: 1.Argument: Grenzfrequenz des weissen Rauschens. Eingnge und Ausgnge: 1.Eingang: {float} + Grenzfrequenz des weissen Rauschens. 1.Ausgang: {signal} : bandbegrenztes weisses Rauschen. peakenv~ : Spitzenwert-Hllkurven-Folger Funktionsweise: Zuerst wird das Eingangssignal gleichgerichtet, das interne Signal mit einem Abklingwert (< 1) multipliziert und dann folgendes entschieden: ist das gleichgerichtete Signal grer als das interne, exponentiell abklingende Signal, so wird der Eingangswert unmittelbar auf den internen Wert bertragen und ausgegeben; ist es kleiner oder gleich, wird das interne abklingende Signal ausgegeben. bergabe-Parameter: 1.Argument: Abkling-Zeitkonstante in ms. Eingnge und Ausgnge: 1.Eingang: {signal} Eingangssignal; oder {reset} setzt internen Wert und Ausgang auf null. 2.Eingang: {float} Abkling-Zeitkonstante in ms. 1.Ausgang: {signal} geglttetes Spitzenwert-Signal. pink~ : rosa Rausch-Generator Funktionsweise: Weisses Rauschen wird mittels 6 high-shelving Filterstufen, die logarithmisch ber den Hrbereich verteilt sind, gefiltert, wodurch sich ein Betrags-Frequenzgang von -3 dB pro Oktave ergibt ( mit einer Welligkeit von weniger als +-1 dB). Zeitlicher Spitzenwert ist um -4 dB, Effektivwert ist um -16 dB. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Ausgang: {signal} rosa Rausch-Signal. sin_phase~ : berechnet die Phasendifferenz zweier Sinus-Signale in Samples Funktionsweise: Unter der Annahme, dass beide eingehenden Signale sinusfrmig sind, wird die Phasendifferenz bezglich der Nulldurchgnge berrechnet und als Vielfache Ganzzahl der Abtastperiode ausgegeben. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {signal} Phasenverschobenes Signal; 2.Eingang: {signal} Referenz-Sinus-Signal. 1.Ausgang: {signal} Phasendifferenz in Samples. Message-verarbeitende Objekte Gleitkomma-basierende Objekte (float) 1p1z : IIR-Filter 1.Ordnung fr einen Parameter-Wert Funktionsweise: Dient zur Filterung von {float}-Messages. Es ist aufgebaut wie ein IIR-Filter 1. Ordnung mit einer Polstelle und einer Nullstelle und gehorcht folgender Differenzen-Gleichung:. out0 = a0*in0 + a1*in1 + b1*out1 out1 = out0 in1 = in0 Das Objekt besitzt selbst keine Abtastrate, es wird also von der Rate der eingehenden {float}-Messages getaktet. bergabe-Parameter: 1.Argument: a0 erster Zhler-Term; 2.Argument: a1 zweiter Zhler-Term; 3.Argument: b1 erster Nenner-Term. Eingnge und Ausgnge: 1.Eingang: {float} + neuer Eingangswert in0; 2.Eingang: {float} + a0 zweiter Zhler-Term; 3.Eingang: {float} + a1 erster Nenner-Term; 4.Eingang: {float} + b1 erster Zhler-Term; 5.Eingang: {float} + in1 alter Eingangswert; 6.Eingang: {float} + out1 alter Ausgangswert. 1.Ausgang: {float} + gefilterter Wert out0. bpe : zeitliche Ablauf-Steuereinheit fr einen Parameter Funktionsweise: Dieses Objekt in Kombination mit einem line- oder line~-Objekt generiert lineare Verlufe eines Parameters ber die Zeit (break-point-envelope). Eine {list}-Message bestehend aus einer Anzahl N von -Paaren (Wert + Zeit) bestimmt den Polygonzugverlauf. Diese Message muss immer mit dem Paar Initialwert + 0 ms beginnen (die Zeit wird immer in ms relativ zum letzten Breakpoint gemessen), und wird in einem Arbeitsspeicher gespeichert. Aktiviert wird der Ablauf durch eine {bang}-Message. Gelangt innerhalb des Abarbeitens eine weitere {list}-Message ein, wird diese in einen Hilfsspeicher abgelegt und erst beim nchsten Start in den Arbeitsspeicher bertragen. Nachdem das letzte Wert-Zeit-Paar verarbeitet wurde (der Endwert in Zeit erreicht wurde), erscheint eine {bang}-Message am 3.Ausgang; zuvor wurde auf den Ausgngen 1 und 2 immer die Wert-in-Zeit-Paare ausgegeben. Eine {bang}-Message whrend eines Ablaufs, bricht den aktuellen Ablauf ab und startet ihn neu. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {list} + N * ( Wert + Zeit in ms); oder {bang} startet den Ablauf; oder {stop} stoppt den Ablauf. 1.Ausgang: {float} + Endwert der Rampe; 2.Ausgang: {float} + Dauer der Rampe; 3.Ausgang: {bang} zeigt Ende des Ablaufes an. db2v : dB zu Effektivwert Konverter Funktionsweise: Wandelt technische dB in Effektivwert um (0 dB entspricht 1, -6 dB entspricht 0.5). Unterhalb von -199.9 dB wird 0 ausgegeben. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {float} + technische dB. 1.Ausgang: {float} + Effektivwert. v2db : Effektivwert zu dB Konverter Funktionsweise: Wandelt Effektivwert in technische dB um (1 entspricht 0 dB, 0.5 entspricht -6 dB). Unterhalb von 0 werden -199.9 dB ausgegeben. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {float} + Effektivwert. 1.Ausgang: {float} + technische dB. dbtofad : MIDI-dB zu Fader-Verlauf Konverter Funktionsweise: Wandelt MIDI-dB in eine geometrische Pixel-Auslenkung um. Diese Auslenkung entspricht einer VU-Meter-Skala bzw. einer Mischpult-Fader-Skala. Hier nachfolgend einige Entsprechungen: 120 MIDI-dB ~ 20 dB ~ 10.0 ~ 125 pixel 106 MIDI-dB ~ 6 dB ~ 2.0 ~ 108 pixel 100 MIDI-dB ~ 0 dB ~ 1.0 ~ 84 pixel 94 MIDI-dB ~ -6 dB ~ 0.5 ~ 60 pixel 80 MIDI-dB ~ -20 dB ~ 0.1 ~ 36 pixel 60 MIDI-dB ~ -40 dB ~ 0.01 ~ 18 pixel 40 MIDI-dB ~ -60 dB ~ 0.001 ~ 6 pixel 0 MIDI-dB ~ -inf dB ~ 0.0 ~ 0 pixel. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {float} + MIDI-dB. 1.Ausgang: {float} + Fader-Skala-Auslenkung in pixel. fadtodb : Fader-Verlauf zu MIDI-dB Konverter Funktionsweise: Wandelt eine geometrische Pixel-Auslenkung in MIDI-dB um. Siehe dbtofad. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {float} + Fader-Skala-Auslenkung in pixel. 1.Ausgang: {float} + MIDI-dB. fadtorms : Fader-Verlauf zu Effektivwert Konverter Funktionsweise: Wandelt eine geometrische Pixel-Auslenkung in Effektivwert um. Siehe dbtofad. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {float} + Fader-Skala-Auslenkung in pixel. 1.Ausgang: {float} + Effektivwert. rmstofad : Effektivwert zu Fader-Verlauf Konverter Funktionsweise: Wandelt Effektivwert in verzerrte MIDI-dB eines Mischpult-Faders um (100 dB entspricht 1, 94 dB entspricht 0.5). Unterhalb von 0 werden 0 dB ausgegeben.Siehe dbtofad. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {float} + Effektivwert. 1.Ausgang: {float} + Fader-Skala-Auslenkung in pixel. round_zero : rundet Zahlen im Bereich um null auf null Funktionsweise: Das bergabeargument beschreibt die positive Grenze eines symmterischen Bereichs bezglich 0. round_zero rundet eingehende Zahlen, die sich innerhalb dieses Bereichs befinden, exakt zu 0. Zahlen, die auerhalb dieses Gebiets befinden bleiben unbehelligt. bergabe-Parameter: 1.Argument: positiver Grenzwert des Rundungs-Gebiets. Eingnge und Ausgnge: 1.Eingang: {float} + die zu rundende Zahl. 1.Ausgang: {float} + die eventuell gerundete Zahl. speedlim : reduziert die Daten-Durchlaufrate von -Messages Funktionsweise: Das bergabeargument bestimmt die Abtastperiodendauer in ms. Im Prinzip ist speedlim ein event-bedingtes Downsampling-Objekt, das hhere Event-Raten auf maximal eine {float}-Message pro Abtastperiodendauer reduziert, und zuletzt den aktuellsten Eingangswert ausgibt. Falls lngere Zeit keine Eingangs-Message hereinkam, bleibt auch der Ausgang stumm. bergabe-Parameter: 1.Argument: Abtastperiodendauer in ms. Eingnge und Ausgnge: 1.Eingang: {float} + Eingangswert; 2.Eingang: {float} + Abtastperiodendauer in ms. 1.Ausgang: {float} + eventuell downgesampelter Eingangswert. split3 : teilt eine {float}-Message einem von 3 Wertebereichen zu Funktionsweise: Falls Eingangswert grer gleich dem unteren Grenzwert und kleiner dem oberen Grenzwert ist, wird er auf dem ersten Ausgang ausgegeben. Ist der Eingangswert kleiner als der untere Grenzwert, wird er auf dem zweiten Ausgang ausgegeben, ist er grer gleich dem oberen Grenzwert, wird er auf dem dritten Ausgang ausgegeben. Die jeweils anderen 2 Ausgnge bleiben dabei inakiv. bergabe-Parameter: 1.Argument: untere Grenze; 2.Argument: obere Grenze. Eingnge und Ausgnge: 1.Eingang: {float} + Eingangswert; 2.Eingang: {float} + untere Grenze; 3.Eingang: {float} + obere Grenze. 1.Ausgang: {float} + Eingangswert innerhalb beider Grenzen; 2.Ausgang: {float} + Eingangswert kleiner unterer Grenze; 3.Ausgang: {float} + Eingangswert grer gleich oberer Grenze. split : teilt eine {float}-Message einem von 2 Wertebereichen zu (wie moses) Funktionsweise: Falls Eingangswert kleiner dem Grenzwert ist, wird er auf dem ersten Ausgang ausgegeben. Ist der Eingangswert grer gleich dem Grenzwert, wird er auf dem zweiten Ausgang ausgegeben. Der jeweils andere Ausgang bleibt dabei inakiv. bergabe-Parameter: 1.Argument: Grenzwert. Eingnge und Ausgnge: 1.Eingang: {float} + Eingangswert; 2.Eingang: {float} + Grenzwert. 1.Ausgang: {float} + Eingangswert kleiner als Grenzwert; 2.Ausgang: {float} + Eingangswert grer gleich als Grenzwert. symbol-basierende Objekte mergefilename : fgt Liste zu einer Symbol-Buchstabenkette zusammen Funktionsweise: fgt eine {list} von - und/oder -Elementen zu einem langen zusammen. An den Verbindungungsstellen wird optional ein Trennzeichen eingefgt. bergabe-Parameter: 1.Argument: Separier-Buchstabe = Trennzeichen (optional, sonst leer). Eingnge und Ausgnge: 1.Eingang: {list} von - und/oder -Elementen; {separator} + Separier-Buchstabe = Trennzeichen. 1.Ausgang: {symbol} zu einer Buchstabenkette zusammengefgte Liste samt Trennzeichen. splitfilename : trennt ein Symbol in 2 Teile auf Funktionsweise: trennt ein eingehendes in 2 Teile auf. Als Trennzeichen gilt das erstmalige Auftreten des Separier-Buchstabens, beginnend von rechts (String-Ende). Der Teil rechts vom Trennzeichen wird am 2. Ausgang, der Teil links vom Trennzeichen wird am 1. Ausgang als {symbol} ausgegeben. Das Trennzeichen selbst wird nicht ausgegeben. bergabe-Parameter: 1.Argument: Trennzeichen (optional, sonst / = slash, gilt auch unter Windows als Trennzeichen diverser Ordner). Eingnge und Ausgnge: 1.Eingang: {symbol} Buchstabenkette (absoluter Datei-Pfad + Name); {separator} + Trennzeichen = Separier-Buchstabe. 1.Ausgang: {symbol} linker Teil des eingehenden Symbols (Pfad); 2.Ausgang: {symbol} rechter Teil des eingehenden Symbols (Datei-Name). stripfilename : entfernt Buchstaben aus einer Buchstabenkette Funktionsweise: wenn Parameter strip-index positiv ist, werden die ersten strip-index Buchstaben vom eingehenden Symbol entfernt, wenn Parameter strip-index negativ ist, werden die letzten strip-index Buchstaben vom eingehenden Symbol entfernt und anschlieend der Rest als {symbol} ausgegeben. bergabe-Parameter: 1.Argument: strip-index. Eingnge und Ausgnge: 1.Eingang: {symbol} Buchstabenkette; {set} + strip-index. 1.Ausgang: {symbol} Rest der Buchstabenkette. unsymbol : wandelt eine - in eine -Message um Funktionsweise: wandelt ein eingehendes {symbol} in eine {anything}-Message um (Inhalt von Symbol wird zum Selektor-Symbol einer Message). Wird vor dem Objekt route manchmal gebraucht. Keine bergabe-Parameter. Eingnge und Ausgnge: 1.Eingang: {symbol} Buchstabenfeld. 1.Ausgang: {Buchstabenfeld} + leere Liste = eingehendes Symbol als Selektor. anything-basierende Objekte any : universeller Speicher fr jegliche Einzel-Message (wie f oder symbol) Funktionsweise: any hat 2 Eingnge, der linke heie Eingang gibt jede eingehende Message zum Ausgang weiter (und speichert sie intern), der rechte kalte Eingang speichert nur die eingehende Message. Diese kann durch einen {bang} am linken Eingang wieder abgerufen werden. bergabe-Parameter: N Argumente: Liste von - oder -Eintrgen, die intern gespeichert werden. Eingnge und Ausgnge: 1.Eingang: {bang} gibt die intern gespeicherte Message am Ausgang aus. {float} gibt {float}-Message am Ausgang aus. {symbol} gibt {symbol}-Message am Ausgang aus. {list} gibt {list}-Message am Ausgang aus. {anything} gibt {anything}-Message am Ausgang aus. 2.Eingang: {bang} lscht internen Speicher. {float} speichert {float}-Message im internen Speicher. {symbol} speichert {symbol}-Message im internen Speicher. {list} speichert {list}-Message im internen Speicher. {anything} speichert {anything}-Message im internen Speicher. 1.Ausgang: jegliche Message. iem_append : fgt Message einen Nachspann hinzu (ehemals merge_any) Funktionsweise: iem_append hat 2 Eingnge, einer eingehenden Message am linken heien Eingang wird die intern gespeicherte Message (appendix) angeheftet und zum Ausgang weitergeleitet, der rechte kalte Eingang speichert die eingehende Message (appendix) intern ab. bergabe-Parameter: 1.Argument: Liste von - oder -Eintrgen, die intern gespeichert werden (appendix). Eingnge und Ausgnge: 1.Eingang: {bang} {float} {symbol} {list} {anything} Vorderteil der Message, die ausgegeben wird; Ausgang wird aktiviert. 2.Eingang: {bang} {float} {symbol} {list} {anything} Hinterteil der Message, die ausgegeben wird; Ausgang bleibt inaktiv. 1.Ausgang: jegliche Message; zusammengesetzt aus Vorderteil und Hinterteil. iem_prepend : fgt Message einen Vorspann hinzu (Abbk. pp , prepend) Funktionsweise: iem_prepend hat 2 Eingnge, die intern gespeicherte Message (prependix) wird einer, am linken heien Eingang, eingehenden Message vorangestellt und zum Ausgang weitergeleitet, der rechte kalte Eingang speichert die eingehende Message intern ab (prependix). bergabe-Parameter: 1.Argument: Liste von - oder -Eintrgen, die intern gespeichert werden (prependix). Eingnge und Ausgnge: 1.Eingang: {bang} {float} {symbol} {list} {anything} Hinterteil der Message, die ausgegeben wird, Ausgang wird aktiviert. 2.Eingang: {bang} {float} {symbol} {list} {anything} Vorderteil der Message, die ausgegeben wird, Ausgang bleibt inaktiv. 1.Ausgang: jegliche Message; zusammengesetzt aus Vorderteil und Hinterteil. Initialisierungsobjekte dollarg : gibt bergabeargumente des Eltern-Klasse-Objekts aus (Abbk. $n) Funktionsweise: Dieses Objekt dient dazu, die bergabe-Argumente des Abstraktions-Patches, in dem dollarg verwendet wird, auszuwerten. Unter der Annahme, dass N - und/oder -Eintrge bergeben wurden, kann man mittels einer {float}-Message (Index) folgendes bewerkstelligen: falls der Index positiv ist, wird der - oder -Eintrag an der Stelle Index auf dem 1.Ausgang ausgegeben, auf dem 2.Ausgang wird die Index-Zahl selbst ausgegeben. Falls der Index negativ ist, wird der - oder -Eintrag an der von hinten her gezhlten Stelle Index auf dem 1.Ausgang ausgegeben, auf dem 2.Ausgang wird die auf positiv korrigierte Index-Zahl ausgegeben. Falls der Index 0 ist, wird eine {list}-Message, gefolgt von allen - oder -Eintrgen, am 1.Ausgang ausgegeben, auf Ausgang 2 wird die Gesamtanzahl der Eintrge ausgegeben. Eine {bang}-Message bewirkt das gleiche wie ein Index 0. Keine direkten bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {float} + Index : gibt einen oder mehrere Eintrge auf 1.Ausgang, und am 2.Ausgang den korrigierten Index aus; {bang}: gibt eine {list} mit allen - oder -Eintrgen auf 1.Ausgang aus, auf 2.Ausgang wird die Anzahl der Eintrge ausgegeben. 1.Ausgang: {list} + - oder -Eintrag: alle bergabe-Argumente; oder {anything} (je nach Eintrag) -bergabe-Argument an der Stelle Index; oder {float} (je nach Eintrag) -bergabe-Argument an der Stelle Index; 2.Ausgang: {float} Anzahl oder Index der bergabe-Argumente. dsp : schaltet Audio-Engine ein und berechnet die Auslastung (aka dsp~) Funktionsweise: Dieses Objekt schaltet die Audio-Engine (DSP) des Rechners EIN oder AUS und berechnet die DSP-Ausnutzung des Pd-Prozesses. Alle halben Sekunden wird der Mittelwert der Ausnutzung (5 Sekunden Glttung) am 1. Ausgang ausgegeben, am 2.Ausgang wird der Spitzenwert ausgegeben (und 4 Sekunden gehalten). Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {float} + EIN/AUS : schaltet Audio-Engine EIN (1) und AUS (0). 1.Ausgang: {float} + Mittelwert-Last; 2.Ausgang: {float} + Spitzenwert-Last. float24 : speichert eine -Zahl 24 Bit genau Funktionsweise: Dient zum Speichern einer Gleitkommazahl mit 24 Bit genauer Mantisse innerhalb eines Pd-Patches. Da Pd eine Zahl auf 6 Dezimalstellen (entspricht ca. 20 Bit) rundet, wenn man einen Patch abspeichert, ist dies eine Mglichkeit, auf 7 bis 8 Dezimalstellen genaue Zahlen zu verwenden. Die gewnschte Zahl ist als bergabeargument so zu unterteilen, dass nicht mehr als 6 signifikante Dezimalstellen pro Zahl bleiben (zB. 0.987654321 wird zu 0.987654 321). Eine {bang}-Message gibt die zusammengesetzten bergabeargumente als Zahl aus. Eine {float}-Message berschreibt die interne Zahl und gibt die neue Zahl sofort aus. bergabe-Parameter: N Argumente: -Eintrge von einer, in mehrere Stcke unterteilten, Gleitkommazahl. Eingnge und Ausgnge: 1.Eingang: {float} + neuer Wert : berschreibt internen Wert und wird ausgegeben; oder {bang} gibt zusammengesetzte bergabe-Argumente aus. 1.Ausgang: {float} + zusammengesetzter Wert. init : gibt Initial-Message aus (Abbk. ii) Funktionsweise: Dieses Objekt gibt seine bergabe-Argumente nach dem vollstndigen Laden des ihn nutzenden Pd-Patches aus. Unter der Annahme, dass N - und/oder -Eintrge vorhanden sind, wird entsprechend der Anzahl N, bzw. des ersten Eintrags folgende Message ausgegeben: eine {bang}-Message, falls kein Eintrag; eine {float}-Message, falls nur ein -Eintrag vorhanden; eine {symbol}-Message, falls die Eintrge und vorhanden; eine {list}-Message: falls mehrere Eintrge, beginndend mit einem -Eintrag oder einem Symbol ; oder mit einer {anything}-Message, falls zuerst ein Symbol-Eintrag war, und noch mehrere Eintrge anhngen. Der Inhalt kann spter auch noch abgerufen werden mittels einer {bang}-Message. bergabe-Parameter: N Argumente: Liste von - oder -Eintrgen, die zur Initialisierung dienen. Eingnge und Ausgnge: 1.Eingang: {bang}: gibt alle Eintrge aus. 1.Ausgang: {bang} {float} {symbol} {list} {anything} je nach Anzahl und Art der bergabe-Argumente. once : lsst eine Message nur erstmalig passieren Funktionsweise: Once besitzt intern ein anfangs offenes Gatter, das jegliche Message in Richtung Ausgang passieren lsst. War dies der Fall, schliet sich das Gatter und blockiert jede weitere Message. Aufgehoben wird dies durch eine beliebige Message am 2. Eingang. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {bang} {float} {symbol} {list} {anything} einmalig durchlssiger Eingang; 2.Eingang: {bang} {float} {symbol} {list} {anything} Aufhebungs-Eingang der Sperre. 1.Ausgang: {bang} {float} {symbol} {list} {anything} Ausgang des Einmal-Gatters. Zhlerobjekte exp_inc : exponentieller / inkrementeller Zhler (ausgelst durch {bang}) Funktionsweise: exp_inc ist ein Zhler mit sowohl additivem als auch multiplikativem Inkrement. Der Wert des multiplikativem Inkrement ist in Prozent angegeben. Der Ausgangsbereich des Zhlers wird zwischen Untergrenze und Obergrenze begrenzt. Gesteuert wird dieser Ausgabe- und Zhl-Vorgang durch eine {bang}-Message auf folgende weise: Ausgabe von out0; out0 = a + (1 + 0.01*m)*out1; out1 = out0. Eine {reset}-Message setzt den Wert out0 auf den Initialwert zurck. bergabe-Parameter: 1.Argument: Initialwert; 2.Argument: Multiplikative Erhhung in Prozent; 3.Argument: Additive Erhhung; 4.Argument: Untergrenze des Ausgangs; 5.Argument: Obergrenze des Ausgangs. Eingnge und Ausgnge: 1.Eingang: {float} + Initialwert; oder {bang} gibt Zhlerwert aus und inkrementiert ihn; oder {reset} setzt Zhlerwert auf Initialwert zurck; 2.Eingang: {float} + Multiplikative Erhhung in Prozent; 3.Eingang: {float} + Additive Erhhung; 4.Eingang: {float} + Untergrenze des Ausgangs; 5.Eingang: {float} + Obergrenze des Ausgangs. 1.Ausgang: {float} + Zhlerwert out0. for++ : inkrementeller Zhler (gesteuert durch internes Metronom) Funktionsweise: for++ ist ein Schleifen-Zhler-Objekt mit Anfangswert, Endwert und der jeweiligen Dauer einer Inkrementierung des Zhlers. Falls der Endwert kleiner als der Anfangswert ist, wird der Zhlerwert dekrementiert. Der Endwert wird immer inklusive erreicht und ausgegeben. Nachdem der Zhler gestartet wurde durch eine {bang}- oder {start}-Message wird unmittelbar danach der Anfangswert als Zhlerstand ausgegeben. Dann wird zyklisch Metronom-Zeit lang gewartet, der Zhlerstand um 1 erhht oder erniedrigt und ausgegeben, bis dass der Endwert erreicht und ausgegeben wird. Zuletzt wird noch einmal Metronom-Zeit lang gewartet und der fertig-Bang ausgegeben. Eine {stop}-Message beendet den Zhlvorgang sofort, belsst aber den Zhlerstand. bergabe-Parameter: 1.Argument: auf Ganzzahl abgerundeter Anfangs-Zhlerwert; 2.Argument: auf Ganzzahl abgerundeter End-Zhlerwert; 3.Argument: Metronom-Zeit in ms. Eingnge und Ausgnge: 1.Eingang: {float} + auf Ganzzahl abgerundeter Anfangs-Zhlerwert; oder {bang} startet den Zhlvorgang; oder {start} startet den Zhlvorgang; oder {stop} stoppt den Zhlvorgang; 2.Eingang: {float} + auf Ganzzahl abgerundeter End-Zhlerwert; 3.Eingang: {float} + Metronom-Zeit in ms. 1.Ausgang: {float} + Zhlerwert; 2.Ausgang: {bang} zeigt, mit einer Verzgerung von einer Metro-Zeit, das Ende des gesamten Zhlvorgangs an. modulo_counter : Zirkulr-Zhler (ausgelst durch {bang}) Funktionsweise: modulo_counter ist ein Zhler mit einem Inkrement von +1, der immer im Kreis zhlt. Der Ausgangsbereich des Zhlers bewegt sich zwischen 0 und N-1. Zuerst wird der Zhlerstand auf den Wert des 2.bergabearguments bzw. des 2. Eingangs gesetzt, und zwischen 0 und N-1 begrenzt. Eine {bang}-Message gibt den aktuellen Zhlerstand aus, inkrementiert ihn und fragt ab, ob er grsser-gleich N ist. Falls dies wahr ist, wird der Zhlerstand auf 0 gesetzt. Dies kann man elegant formulieren als: Ausgabe von out0; out0 = out1 % N; out1 = out0. bergabe-Parameter: 1.Argument: Modulozahl N, ist der positive Grenzwert, auf den sich der Zhlerstand bezieht; 2.Argument: Initial-Zhlerstand, wird begrenzt zwischen 0 und N-1. Eingnge und Ausgnge: 1.Eingang: {float} + Modulozahl N, ist der positive Grenzwert, auf den sich der Zhlerstand bezieht; oder {bang} gibt Zhlerwert aus und inkrementiert ihn; 2.Eingang: {float} + Initial-Zhlerstand , wird begrenzt zwischen 0 und N-1. 1.Ausgang: {float} + Zhlerwert out0. Objekte fr Parameter-Management iem_pbank_csv : verwaltet Parameter-Banken im CSV-Format (wie textfile) Funktionsweise: iem_pbank_csv verwaltet Parameter-Banken und speichert diese Banken als Datei im CSV-Format (Comma Separated Values). Eine Parameter-Bank stellt eine Zeile der Arbeits-Matrix dar, die von 0 beginnend bis N-1 indiziert wird (N Zeilen). Die einzelnen Parameter werden mittels eines Spaltenindex indiziert (0 bis M-1). Die Elemente der Arbeits-Matrix knnen sowohl - als auch -Eintrge sein. Eine {list}-Message am 1.Eingang, die mit dem Spaltenindex beginnt, und dem dann m Parameter folgen (maximal bis Zeilenende), schreibt die Parameterwerte in eine Arbeits-Buffer-Zeile, die wiederum durch eine {store}-Message in die Arbeits-Matrix bertragen werden kann (und zwar auf die Stelle, auf die der Zeilenindex-Wert vom 2.Eingang verweist). Eine {recall}-Message liest eine Zeile der Matrix aus, kopiert den Inhalt in die Arbeits-Buffer-Zeile und gibt Ihn am Ausgang aus. {read}- und {write}-Messages lesen bzw. speichern den Matrix-Inhalt aus einer Datei bzw. in eine Datei. Zum Dateinamen muss noch das CSV-Format in Form eines 3 Buchstaben-Symbols bergeben werden. Die Bedeutung der 3 Buchstaben sind: der 1.Buchstabe bestimmt das Eintrags-Trennzeichen: b .. Leerzeichen (blank) c .. Beistrich (colon) s .. Strich-Punkt (semicolon) t .. Tabulator (tab) der 2.Buchstabe bestimmt das Zeilenende-Zeichen: b .. Leerzeichen + Zeilenumbruch (blank + return) c .. Beistrich + Zeilenumbruch (colon + return) s .. Strich-Punkt + Zeilenumbruch (semicolon + return) r .. nur Zeilenumbruch (return) der 3.Buchstabe bestimmt die Kodierung des Zeilenumbruchs in Abhngigkeit des Betriebssystems: l .. Linux w .. Windows m .. Macintosh. bergabe-Parameter: 1.Argument: maximale Anzahl der Parameter-Spalten M; 2.Argument: maximale Anzahl der Preset-Zeilen N. Eingnge und Ausgnge: 1.Eingang: {bang} : gibt den Inhalt der ganzen Arbeitsbuffer-Zeile aus; oder {list} + Spaltenindex + m mal - oder -Eintrge; speichert die m Eintrge in die Arbeitsbuffer-Zeile ab der Stelle Spaltenindex. oder {recall} : kopiert den Inhalt der ganzen Zeile mit Position Zeilenindex (2.Eingang) aus der Arbeits-Matrix in die Arbeitsbuffer-Zeile und gibt diese Zeile aus; oder {recall} + Spaltenindex + Eintrge-Anzahl; diese Message kopiert nur einen Teil der Zeile aus der Arbeits-Matrix, beginnend von Spaltenindex bis Spaltenindex + Eintrge-Anzahl 1 (maximal bis M-1) in die Arbeitsbuffer-Zeile (gleiche Grenzen) und gibt diesen Teil auch aus; oder {store} : speichert den Inhalt der ganzen Arbeitsbuffer-Zeile in die Zeile an der Stelle Zeilenindex (2.Eingang) der Arbeits-Matrix; oder {read} + Dateiname + CSV-Format; falls die Datei erfolgreich geffnet und interpretiert werden konnte, kopiert diese Message den Inhalt dieser Datei in die gesamte Arbeits-Matrix; falls zu wenig Eintrge vorhanden waren, werden diese mit 0 Eintrgen ergnzt, falls zu viele Eintrge pro Zeile oder pro Spaltenindex vorhanden waren, werden diese ignoriert und bergangen; oder {write} + Dateiname + CSV-Format; falls die Datei erfolgreich angelegt werden konnte, kopiert diese Message den Inhalt der gesamten Arbeits-Matrix in diese Datei; dabei werden alle Eintrge einer Zeile durch ein bestimmtes ASCII-Zeichen separiert, und die Zeilen wiederum durch ein eigenes Zeichen terminiert; (bestimmt mittels CSV-Format) 2.Eingang: {float} + Zeilenindex; fr {store}- oder {recall}-Message (beginnend von 0 bis N-1). 1.Ausgang: {list} + Eintrge-Anzahl mal - oder -Eintrge; Ausgabe der Liste von Eintrgen einer ganzen Zeile oder eines Teils einer Zeile; 2.Ausgang: {list} + Spaltenindex + Eintrge-Anzahl mal - oder -Eintrge; Ausgabe der der gleichen Liste wie auf 1.Ausgang, nur mit einem vorangestelltem -Eintrag, der die Zahl Spaltenindex von der {recall}-Message bernimmt (falls die ganze Zeile ausgegeben wird, ist dieser Index 0); list2send : wandelt {list}-Messages in send-Messages um Funktionsweise: list2send dient als Bindeglied zwischen iem_pbank_csv und receive-fhigen GUI-Objekten. Mittels einer {add}-Message werden Indexzahlen mit Send-Receive-Namen in Zusammenhang gebracht. Eingehende Messages werden dann anhand ihres Index in Richtung eines entsprechenden receive-Objekts weiter geleitet. bergabe-Parameter: 1.Argument: maximale Anzahl an versendbaren Parametern M. Eingnge und Ausgnge: 1.Eingang: {list} + Index + - oder -Inhalt-Eintrag; sendet den Inhalt-Eintrag an Receive-Objekte mit dem Symbol-Namen, auf den Index verweist; oder {set} + Index + - oder -Inhalt; sendet eine {set}-Message mit Inhalt-Eintrag an Receive-Objekte mit dem Symbol-Namen, auf den Index verweist; oder {all} + M mal - oder -Eintrge; sendet alle Eintrge an die jeweiligen Receive-Objekte mit den Symbol-Namen, die mit den Indizes 0 bis M-1 assoziiert werden; oder {set_all} + M mal - oder -Eintrge; sendet M {set}-Messages mit den jeweiligen Eintrgen an Receive-Objekte mit den Symbol-Namen, die mit den Indizes 0 bis M-1 assoziiert werden; oder {from} + Index + m mal - oder -Eintrge; sendet die m Eintrge an die jeweiligen Receive-Objekte mit den Symbol-Namen, die mit den Indizes Index bis Index+m-1 assoziiert werden; oder {set_from} + Index + m mal - oder -Eintrge; sendet m {set}-Messages mit den jeweiligen Eintrgen an Receive-Objekte mit den Symbol-Namen, die mit den Indizes Index bis Index+m-1 assoziiert werden; oder {add} + Index + Parameter-Send-Name; die Parameter-Send-Namen werden in einer internen Tabelle an der Stelle Index gespeichert; es wird eine Verbindung hergestellt mit diversen receive-Objekten; oder {clear} : lscht die interne Namens-Tabelle. Kein Ausgang: receive2list : empfngt receive-Messages und gibt sie als Listen aus Funktionsweise: receive2list dient als Bindeglied zwischen send-fhigen GUI-Objekten und iem_pbank_csv. Mittels einer {add}-Message werden Indexzahlen mit Send-Receive-Namen in Zusammenhang gebracht. Empfangene Messages werden dann entsprechend der Receive-Namen mit einer Indexzahl versehen und als Liste ausgegeben. bergabe-Parameter: Kein Argument: (in Zukunft: maximale Anzahl an empfangbaren Parametern M, momentan maximal 200) Eingnge und Ausgnge: 1.Eingang: {add} + Index + Parameter-Send-Name; die Parameter-Receive-Namen werden in einer internen Tabelle an der Stelle Index gespeichert; es wird eine Verbindung hergestellt mit diversen send-Objekten; oder {clear} : lscht die interne Namens-Tabelle. 1.Ausgang: {list} + Index + - oder -Wert; falls nur ein einfacher - oder -Wert empfangen wurde; oder {list} + Index + + - oder -Wert; falls eine {set}-Message mit - oder -Wert empfangen wurde. Allgemeine Objekte add2_comma : erzeugt Beistrich getrennte Messages in einer Messagebox Funktionsweise: fgt einer eingehenden Message am Anfang das Selektor-Symbol {add2} und als erstes Element ein , (Beistrich) voraus. Dies dient dazu, eine Messagebox mit diversen Messages zu bestcken, die dann gleichzeitig aktiviert werden knnen. Keine bergabe-Parameter. Eingnge und Ausgnge: 1.Eingang: {bang} liefert am Ausgang die Message {add2} + ,; {float} liefert am Ausgang die Message {add2} + , + + eingehende Zahl. {symbol} liefert {add2} + , + eingehendes Symbol. {list} liefert {add2} + , + - oder -Eintrge der eingehenden Liste. {anything} liefert {add2} + , + + + - oder -Eintrge der eingehenden Message. 1.Ausgang: {add2} + , + eingehende Message. f2note : Frequenz zu Midi+Cents+Note Konverter Funktionsweise: f2note wandelt einen eingehenden Frequenzwert (Hz) um in 3 Ausgangsgren: in einen MIDI-Wert am ersten Ausgang, in ein Noten-Symbol (mittels einer {set}-Message) am zweiten Ausgang und in die Cent-Abweichung von der Note am dritten Ausgang. Die Umwandlung findet bezglich des Kammerton a1 statt, der als Frequenz in Hz bergeben werden muss (sonst 440 Hz). Die Noten einer Oktave sind : C, #C, D, #D, E, F, #F, G, #G, A, #A und H; die Indizierung der Oktaven an Hand des Tons A von tief nach hoch sind: A3, A2, A1, A, a, a1, a2, a3, a4, a5, a6 usw. Wobei a1 dem bergabeargument bzw. 440 Hz entspricht. bergabe-Parameter: 1.Argument: Frequenz des Kammerton a1 in Hz (MIDI 69) (sonst 440 Hz). Eingnge und Ausgnge: 1.Eingang: {float} + Eingangsfrequenz. 1.Ausgang: {float} + in MIDI-Wert gewandelte Eingangsfrequenz; 2.Ausgang: {set} + Note. 3.Ausgang: {float} + Abweichung von Note in cents. gate : steuerbares Message-Gatter (wie spigot) Funktionsweise: gate lt in Abhngigkeit von seinem Steuerparameter eine beliebige Message durch oder blockiert deren Durchgang. Falls der Steuerparameter ungleich 0 ist, wird jegliche Message vom ersten Eingang auf den Ausgang weitergereicht. Falls der Steuerparameter 0 ist, wird diese Message blockiert. Der Steuerparameter kann auch mittels bergabeargument initialisiert werden. bergabe-Parameter: 1.Argument: Steuerparameter (0 = Blockade, sonst Durchlass). Eingnge und Ausgnge: 1.Eingang: {bang} oder {float} oder {symbol} oder {list} oder {anything} Eingangs-Message; 2.Eingang: {float} + Steuerparameter (0 = Blockade, sonst Durchlass). 1.Ausgang: {bang} oder {float} oder {symbol} oder {list} oder {anything} Ausgang fr optional durchgelassene Eingangs-Message. iem_i_route : Variation von route-Objekt (Abbk. iiroute) Funktionsweise: iem_i_route ist eine spezielle Variante des route-Objekts, das geeignet ist fr Anwendungen in Abstraktionen. Bedingung dafr ist, dass die Eingangs-Message eine Liste mit einem -Eintrag an erster Stelle ist. Die 3 bergabeargumente bedeuten: Anfangs-Index, End-Index und Offset-Index. Intern wird dann der Offset-Index jeweils zum Anfangs-Index bzw. zum End-Index hinzuaddiert. Die Differenz von End-Index minus Anfangs-Index plus 1 ergibt die Anzahl der Ausgnge mit Abzweig-Eigenschaften, hinzu kommt noch ein weiterer Ausgang (ganz rechts), der die Eingangs-Message abweist, falls der erste -Eintrag der Message nicht bereingestimmte mit einem der Indizes, die zwischen Anfang und Ende lagen. Aus den bergabeargumenten ergeben sich damit folgende Gren: Effektiver Anfangs-Index = Anfangs-Index + Offset-Index; effektiver End-Index = End-Index + Offset-Index; Anzahl der Abzweig-Ausgnge N = End-Index - Anfangs-Index + 1. Eine abgezweigte Message besitzt nur mehr M Eintrge (um den ersten -Eintrag verringert). Falls M gleich 0 ist, kommt nur mehr eine {bang}-Message heraus, falls M eins ist, kommt eine {float}-Message oder eine {anything}-Message heraus, falls M grer 1 ist, kommt eine {list}-Message oder eine {anything}-Message heraus. (Wenn der nunmehr erste Eintrag der Liste ein -Eintrag ist, wandelt sie sich in eine {anything}-Message um) bergabe-Parameter: 1.Argument: Anfangs-Index; 2.Argument: End-Index; 3.Argument: Offset-Index, der den beiden vorangegangenen Indizes hinzuaddiert wird (optional, sonst 0). Eingnge und Ausgnge: 1.Eingang: {list} + -Eintrag + beliebiger Rest (M * oder ). 1. bis N. Ausgang: {bang} oder {float} oder {list} oder {anything} um den ersten Eintrag verkrzte Eingangs-Message. N+1.Ausgang: {list} Eingangs-Message, deren erster Eintrag nicht passte, und damit abgewiesen wurde. iem_route : verzweigt Listen in Abhngigkeit ihres ersten Eintrags Funktionsweise: iem_route funktioniert fast gleich wie das route-Objekt, bis auf folgenden Unterschied: falls eine {float}-Message mit einem der -bergabeargumente bereinstimmt, kommt beim route-Objekt eine Liste mit null Eintrgen heraus (was manche Objekte nicht verstehen) und bei iem_route kommt eine {bang}-Message heraus. Gleiches gilt, falls eine {anything}-Message mit einem der -bergabeargumente bereinstimmt. bergabe-Parameter: N Argumente: - oder -Eintrge. Eingnge und Ausgnge: 1.Eingang: {float} oder {symbol} oder {list} oder {anything} Eingangs-Message 1. bis N. Ausgang: {bang} oder {float} oder {symbol} oder {list} oder {anything} um den ersten Eintrag verkrzte Eingangs-Message. N+1.Ausgang: {float} oder {symbol} oder {list} oder {anything} Eingangs-Message, deren erster Eintrag nicht passte, und damit abgewiesen wurde. iem_receive : Receive-Objekt mit Eingang fr Namen (Abbk. iem_r) Funktionsweise: iem_receive funktioniert fast gleich wie das receive-Objekt, es hat jedoch einen Eingang, mittels dem man den Receive-Namen verndern kann ({set} + Name). Mit einer {clear}-Message unterbricht man die bisherige Verbindung. bergabe-Parameter: 1.Argument: Receive-Name. Eingnge und Ausgnge: 1.Eingang: {set} + Receive-Name; stellt eine Verbindung zu unter Receive-Name sendenden Objekten her; oder {clear} : lscht die bisherige Verbindung; 1.Ausgang: {bang} oder {float} oder {symbol} oder {list} oder {anything} gibt die empfangene Message aus. iem_sel_any : ermglicht Messagebox mit Mehrfach-Inhalt Funktionsweise: Mittels einer {add}-Message wird ein Symbol-Feld mit Eintrgen an der Stelle Index belegt. Zuvor stand an dieser Stelle das symbol no_entry. Das Symbol-Feld hat die Gre vom 1.bergabe-Argument. Mit einer {clear}-Message lscht man die Eintrge. Eine {float}-Message ruft die Eintrge aus dem Symbol-Feld ab und gibt zuerst am 2. Ausgang das Symbol als {anything}-Message aus, und in einem 2. Schritt das Symbol mit vorangestelltem {set}-Selektor am 1.Ausgang aus. Dieser 1.Ausgang soll mit einer Messagebox verbunden werden. Man hat also mittels dem float-Eingang wahlfreien Zugriff auf das Symbol-Feld. bergabe-Parameter: 1.Argumente: maximale Anzahl an Symbol-Eintrgen. Eingnge und Ausgnge: 1.Eingang: {float} + Index : gibt am 2.Ausgang die {anything}-Message aus; gibt am 1.Ausgang die {set} + -Message aus; oder {add} + Index + Eintrag : speichert den Symbol-Eintrag in den Symbol-Buffer an der Stelle Index; {clear} lscht alle Eintrge des Symbol-Buffers. 1.Ausgang: {set} + Symbol-Eintrag; 2.Ausgang: {Symbol-Eintrag}-Message. iem_send : Send-Objekt mit extra Eingang fr Namen (Abbk. iem_s) Funktionsweise: iem_send funktioniert fast gleich wie das send-Objekt, es hat jedoch noch einen 2. Eingang, mittels dem man den Send-Namen verndern kann ({set} + Name). Mit einer {clear}-Message am 2.Eingang unterbricht man die bisherige Verbindung. bergabe-Parameter: 1.Argument: Send-Name. Eingnge und Ausgnge: 1.Eingang: {bang} oder {float} oder {symbol} oder {list} oder {anything} versendet jegliche Message, falls ein empfangbereites Objekt zur Verfgung steht. 2.Eingang: {set} + Receive-Name; stellt eine Verbindung zu unter Send-Name empfangenden Objekten her; oder {clear} : lscht die bisherige Verbindung; Kein Ausgang: pre_inlet : schickt eine Identifikations-Message jeder Message voraus Funktionsweise: pre_inlet dient der Erstellung eines Makro-Externals mit mehreren Eingngen, die {anything}-Messages verarbeiten. Die erste bergabeargument-Zahl wird als ASCII-Nummer interpretiert und in ein gewandelt, die zweite bergabeargument-Zahl bleibt ; beide werden intern gespeichert. Das erste Argument dient als Selektor-Symbol, das bei Verwendung von ASCII-Zahlen von 1 bis 8 keinem Buchstaben-quivalent gleichkommt, das zweite Argument dient als Eingangs-ID (zB. 1 als erster Eingang, 2 als zweiter Eingang, usw.). Jede eingehende Message verursacht zuerst die Ausgabe einer ID-Message, und darauf folgend die Ausgabe der eigentlichen Message. bergabe-Parameter: 1.Argument: ID-Selektor-Symbol als ASCII-Zahl; 2.Argument: Eingangs-ID. Eingnge und Ausgnge: 1.Eingang: {bang} {float} {symbol} {list} {anything} Jede Art von Message, die nach Ausgabe der ID-Message ausgegeben wird. 1.Ausgang: {anything} ID-Message-Ausgang + {anything} eingehender Message-Ausgang. soundfile_info : liefert Header-Information einer wav-Datei Funktionsweise: Eine {read}-Message mit einem nachfolgenden -Eintrag Dateiname bewirkt die Ausgabe einer Liste mit 7 Eintrgen, falls die Datei erfolgreich geffnet und interpretiert werden konnte. Die 7 Eintrge sind: 1.Eintrag: Samplerate in Hz (zB. 44100); 2.Eintrag: Dateiname (zB. /sounds/ping.wav); 3.Eintrag: Sound-Datenlnge in Samples (zB. 88200); 4.Eintrag: Fileheader-Lnge in Bytes (zB. 44); 5.Eintrag: Anzahl der Kanle (zB. 2); 6.Eintrag: Einzel-Sample-Daten-Gre in Bytes (zB. 2); 7.Eintrag: l fr little, b fr big endian; litlle endian wird als natrliche Bit-Anordnungs-Reihenfolge fr wav-Dateien auf Intel-Rechnern verwendet, big endian wird als natrliche Bit-Anordnungs-Reihenfolge fr aiff-Dateien auf Macintosh-Rechnern verwendet. Keine bergabe-Parameter: Eingnge und Ausgnge: 1.Eingang: {read} + Pfad_plus_Dateiname. 1.Ausgang: {list} + 7 Eintrge wie oben erklrt. toggle_mess : ermglicht Messagebox mit Mehrfach-Inhalt (Abbk. tm) Funktionsweise: Die N bergabe-Argumente werden in einem zirkulren Element-Buffer gespeichert, der interne Zirkulr-Index zeigt anfangs auf den letzten Eintrag. Erreicht den Eingang nun eine - oder {anything}-Message, springt der Zhler auf 0, der 3. Ausgang gibt diesen Wert aus; der 2. Ausgang gibt entweder einen -Eintrag als {float}-Message, oder einen -Eintrag als {anything}-Message aus. Der 1. Ausgang gibt den Eintrag als {set}-Message, gefolgt von einem - oder -Eintrag, aus. Weiters kann der Anfangszustand initialisiert werden mittels einer {set}-Message und einer nachfolgenden -Indexzahl (Index von 0 bis N-1) und einer anschlieenden {bang}-Message. bergabe-Parameter: N.Argumente: - oder -Eintrge, wird in den Zirkulr-Buffer kopiert. Eingnge und Ausgnge: 1.Eingang: {set} + Index : setzt den internen Zhler auf Index und verndert nur den 1.Ausgang; {bang}: ndert auch 3. und 2. Ausgang; {anything} oder {float} : inkrementiert internen Zhler (modulo) und ndert 3. , 2. und 1. Ausgang; 1.Ausgang: {set} + oder (je nach Eintrag) Richtung Messagebox; 2.Ausgang: {anything} oder {float} gibt bei -Eintrag eine {anything}-Message aus, bei -Eintrag eine {float}-Message aus; 3.Ausgang: {float} Index der am 2.Ausgang ausgegebenen {anything}-Message. Literaturverzeichnis Miller Puckette, Pd Documentation Rel-0.37, Dokumentation von Pd im Netz: http://crca.ucsd.edu/~msp/Pd_documentation/ U. Tietze, Ch. Schenk, Kap 24 Digitale Filter in: Halbleiter-Schaltungstechnik 9. Auflage, Springer-Verlag 1991, pp. 834 841 U. Tietze, Ch. Schenk, Kap 14 Aktive Filter in: Halbleiter-Schaltungstechnik 9. Auflage, Springer-Verlag 1991, pp. 391 414 Wechselwirkung Lautsprecher-Mikrofon Maximalapplikation  PAGE 2 IEM - INSTITUT FR ELEKTRONISCHE MUSIK UND AKUSTIK Vorstand: O.Univ.-Prof. Mag. DI Dr. Robert HLDRICH IEMLIB fr PD Inhaltsverzeichnis IEMLIB fr PD Einleitung PAGE   PAGE 48 IEMLIB fr PD Begriffsdefinitionen IEMLIB fr PD Filterobjekte Signalobjekte IEMLIB fr PD Arithmetische Objekte Signalobjekte IEMLIB fr PD signal-to-float Objekte Signalobjekte IEMLIB fr PD Allgemeine Objekte Signalobjekte IEMLIB fr PD Gleitkomma-basierende Objekte Message-Objekte IEMLIB fr PD symbol-basierende Objekte Message-Objekte IEMLIB fr PD anything-basierende Objekte Message-Objekte IEMLIB fr PD Initialisierungsobjekte Message-Objekte IEMLIB fr PD Zhlerobjekte Message-Objekte IEMLIB fr PD Objekte fr Parameter-Management Message-Objekte IEMLIB fr PD Allgemeine Objekte Message-Objekte IEMLIB fr PD Literaturverzeichnis A-8010 Graz, Inffeldgasse 10/3, Tel.:+43/(0)316/389 3447, FAX:+43/(0)316/389 3171 musil@iem.at http://iem.at/ &' QRSTUpqrstu年xe]Q]jUmHnHumHnHu$5;OJQJ\aJmHnHsH u&j>*B*UmHnHphu0JmHnHuj0JUmHnHu mHnHu jU>*CJmH sH mH sH 5CJ OJQJ\^JmH sH 5CJ OJQJ\^Jj>*CJUmHnHsHu5\ 5>*\ CJ mHsHCJ jCJ U&'l  +dh[$$a$$a$$a$\]aaSU  } 3  _   d#  d#  d#  d#  Gd#  U d#  bd#  d#  d# $a$$a$ +dh[$      4 5 6 O P Q R S T U ѾѶѶގѾѶzѶlѾjfUmHnHu&j>*B*UmHnHphujpUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHu$5;OJQJ\aJmHnHsH uj0JUmHnHumHnHujUmHnHujzUmHnHu*U V W r s t u x y          1 2 뾲뾲zjRUmHnHumHnHsH u&jס>*B*UmHnHphuj\UmHnHujUmHnHumHnHu5\mHnHsH u&j>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHu(2 3 4 ? @ \ ] ^ w x y z { | } ~     - ǻǭǻקדǻDžǻקqǻ&j>*B*UmHnHphuj>UmHnHu&jã>*B*UmHnHphu mHnHujHUmHnHujUmHnHumHnHumHnHsH u0JmHnHuj0JUmHnHu&j͢>*B*UmHnHphu,- . / 0 1 2 3 4 5 P Q R S Y Z m n o        " # ޙwj UmHnHu&j>*B*UmHnHphuj*UmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHuj4UmHnHu.# $ % + , > ? @ Y Z [ \ ] ^ _ ` a | } ~   ǻǭǻקדǻDžǻקqǻ&j>*B*UmHnHphuj UmHnHu&j>*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHumHnHsH u0JmHnHuj0JUmHnHu&j>*B*UmHnHphu,         2 3 4 5 < = ` a b { | } ~  ޙwjUmHnHu&js>*B*UmHnHphujUmHnHu&j}>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujUmHnHu.  i[C"{]M  d#   d#  ~ d#  d#  - d#  p d#  d#  d#  d#  vd#  d#  d#  d# HIJcdefghijk :;<UǻǭǻקדǻDžǻקqǻ&jU>*B*UmHnHphujڭUmHnHu&j_>*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHumHnHsH u0JmHnHuj0JUmHnHu&ji>*B*UmHnHphu,UVWXYZ[\]xyz{"#$=>?@ABCDE`aޙwjUmHnHu&jA>*B*UmHnHphujƯUmHnHu&jK>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujЮUmHnHu.abcno !"#$?@ABqrsŽŝʼnŽ{ŝgŽ&j#>*B*UmHnHphujUmHnHu&j->*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHu0JmHnHumHnHsH u0JmHnHsHuj0JUmHnHu&j7>*B*UmHnHphu(s2345efgwjUmHnHu&j>*B*UmHnHphujUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHujUmHnHujUmHnHumHnHu-"#Z[\uvwxyz{|}ϵ߭קד׭υ߭קq&j>*B*UmHnHphujvUmHnHu&j>*B*UmHnHphu mHnHumHnHsH ujUmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&j>*B*UmHnHphu(    ;<=VWXZ[\]^_z{|}ޙwjXUmHnHu&jݹ>*B*UmHnHphujbUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujlUmHnHu,+,-FGHJKLMNOjklm 9ϵ߭קדυ߭קq׭&j>*B*UmHnHphujDUmHnHu&jɻ>*B*UmHnHphu mHnHumHnHsH ujNUmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&jӺ>*B*UmHnHphu(M@"nP4!  d#  d#   d#  q d#   d#  I d#  H d#  d# 9:;=>?@AB]^_` !"#$?@ޙwj&UmHnHu&j>*B*UmHnHphuj0UmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHuj:UmHnHu*@ABNO4567fghǻǭǻקדǻDžǻקqǻ&j>*B*UmHnHphujUmHnHu&j>*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHumHnHsH u0JmHnHuj0JUmHnHu&j>*B*UmHnHphu(    +,-.]^_xyz|}~ޙwjUmHnHu&jy>*B*UmHnHphujUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujUmHnHu, LMNghiklmnopϵ߭קד׭υ߭קq&j[>*B*UmHnHphujUmHnHu&je>*B*UmHnHphu mHnHumHnHsH ujUmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&jo>*B*UmHnHphu(./0IJKMNOPQRmnop|}ޙwjUmHnHu&jG>*B*UmHnHphujUmHnHu&jQ>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujUmHnHu,-./123456QRST^_ϵ߭קד׭υ߭קq&j)>*B*UmHnHphujUmHnHu&j3>*B*UmHnHphu mHnHumHnHsH ujUmHnHujUmHnHumHnHu0JmHnHuj0JUmHnHu&j=>*B*UmHnHphu( !"#>?@AKL    *+ޙwjUmHnHu&j>*B*UmHnHphujUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujUmHnHu,+,-78uvw  %&'(nopǻǭǻקדǻDžǻקqǻ&j>*B*UmHnHphuj|UmHnHu&j>*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHumHnHsH u0JmHnHuj0JUmHnHu&j >*B*UmHnHphu(   , - . G H I K L M N ގќzlj^UmHnHu&j>*B*UmHnHphujhUmHnHu5\mHnHsH u&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujrUmHnHu*N !!!Z""+###{$%%&q&& [d#   d#   d#   d#   d#  Md#  d#  d#  d#  hd#  Ad#  id#  &d#  Nd#  d# N O P k l m n u v !!!!!!!!!7!8!9!:!A!B!q&j>*B*UmHnHphujJUmHnHu&j>*B*UmHnHphujTUmHnHujUmHnHumHnHumHnHsH u&j>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHu,B!_!`!a!z!{!|!~!!!!!!!!!!!!!!!!!!!!!!!!!!!"""8"9":"S"Ȝȑo&j>*B*UmHnHphuj6UmHnHu5\mHnHsH u0JmHnHsH u&j>*B*UmHnHphu mHnHumHnHsH uj0JUmHnHuj@UmHnHujUmHnHumHnHu0JmHnHu(S"T"U"W"X"Y"Z"["\"w"x"y"z""""""""""""""""""""" # # #$#%#&#(#)#*#+#,#-#H#I#ޙwjUmHnHu&j>*B*UmHnHphuj"UmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHuj,UmHnHu.I#J#K#S#T#`#e#x#y#z############################$$׽ם׉~׽p~םjUmHnHu5\mHnHsH u&j>*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHu0J6mHnHumHnHsH u0JmHnHuj0JUmHnHu&j>*B*UmHnHphu&$$$$$Y$Z$[$t$u$v$x$y$z${$|$}$$$$$$$$$$$%%%%%%%%#%$%%%&%7%8%c%d%e%~%ǻǭǻקדǻDžǻקqǻ&jk>*B*UmHnHphujUmHnHu&ju>*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHumHnHsH u0JmHnHuj0JUmHnHu&j>*B*UmHnHphu,~%%%%%%%%%%%%%%%%%%%&&&&&&&&#&$&%&&&1&2&O&P&Q&j&k&l&n&o&p&q&r&s&&&ޙwjUmHnHu&jW>*B*UmHnHphujUmHnHu&ja>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHujUmHnHu.&&&&&&&&&&&&&&&&&&&&&&&;'<'='V'W'X'Z'['\']'^'_'z'{'|'}'~'ǻǭǻקדǻDžǻקq&j9>*B*UmHnHphujUmHnHu&jC>*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHumHnHsH u0JmHnHuj0JUmHnHu&jM>*B*UmHnHphu'&]'')(()))Y**=++*,,3--#../  d#   d#  d#  Dd#  d#  t d#  d#   d#  d#  d#  d#  d#  d#  c d# ~''''''''''''''''''''(( ("(#($(&('((()(*(+(F(G(H(I(O(P((((Ѷ圶݃ѶogmHnHsH u&j%>*B*UmHnHphujUmHnHu5\mHnHsH u&j/>*B*UmHnHphu mHnHuj0JUmHnHujUmHnHujUmHnHumHnHu0JmHnHu$5;OJQJ\aJmHnHsH u(((((((((((((((((((()))))))))9):);)<)B)C)a)b)c)|)})~))))))))wjUmHnHu&j>*B*UmHnHphujUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHujUmHnHujUmHnHumHnHu.))))))))))))))))))** * ***7*8*9*R*S*T*V*W*X*Y*Z*[*v*w*x*y******ƺƬƺƺƄƺpƺ&j>*B*UmHnHphujxUmHnHu&j>*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHumHnHsH uj0JUmHnHu&j>*B*UmHnHphu0JmHnHu,****************+++6+7+8+:+;+<+=+>+?+Z+[+\+]+g+h++++++++++++++wjZUmHnHu&j>*B*UmHnHphujdUmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHujUmHnHujnUmHnHumHnHu.++++++, , ,#,$,%,',(,),*,+,,,G,H,I,J,T,U,},,,,,,,,,,,,,,,,,ƺƬƺƺzƺf&j>*B*UmHnHphujFUmHnHu0J6mHnHu&j>*B*UmHnHphu mHnHujPUmHnHujUmHnHumHnHumHnHsH uj0JUmHnHu&j>*B*UmHnHphu0JmHnHu(,,,,,,---,---.-0-1-2-3-4-5-P-Q-R-S-Z-[-h-m-------------------.ѷя{p5\mHnHsH u&j>*B*UmHnHphuj2UmHnHu&j>*B*UmHnHphu mHnHuj<UmHnHujUmHnHumHnHu0J6mHnHumHnHsH u0JmHnHuj0JUmHnHu,...... .!.".#.$.%.@.A.B.C.R.S......................////ѾѾќѾzѾljUmHnHu&j>*B*UmHnHphujUmHnHumHnHsH u&j>*B*UmHnHphu mHnHu0JmHnHu5\mHnHsH uj0JUmHnHuj(UmHnHujUmHnHumHnHu*//////8/9/:/;/J/K/x/y/z/////////////////////00000000090:0ִּ֒ֈִzjUmHnHu0J6mHnHu&j>*B*UmHnHphuj UmHnHumHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHujUmHnHu-//00 112w2334m44455C66$77  d#  T d#  d#  &d#  d#  d#  d#   d#   d#  d#  d#  d#  ! d# :0;0<0?0@0]0^0_0x0y0z0|0}0~0000000000000111 1 1 1 111*1+1,1-191:1ĸĪĸפא׈ĸzĸ߈פf׈&jg>*B*UmHnHphujUmHnHumHnHsH u&jq>*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHu5\mHnHsH u0JmHnHuj0JUmHnHu&j{>*B*UmHnHphu(:1q1r1s1111111111111111111222222222728292:2=2>2U2V2W2p2q2r2ykjUmHnHu5\mHnHsH u&jS>*B*UmHnHphujUmHnHu&j]>*B*UmHnHphu mHnHumHnHsH uj0JUmHnHujUmHnHujUmHnHumHnHu0JmHnHu*r2t2u2v2w2x2y2222222222222333333 3!3"3#3(3)3j3k3l333333333333̲̪ߪ̪̈zߪjUmHnHu&j?>*B*UmHnHphujUmHnHumHnHsH u&jI>*B*UmHnHphu mHnHu0JmHnHu5\mHnHsH uj0JUmHnHujUmHnHumHnHu,3333333333333333444444 4&4'4K4L4M4f4g4h4j4k4l4m4n4o44444׽ם׉׽{םg&j!>*B*UmHnHphujUmHnHu&j+>*B*UmHnHphu mHnHujUmHnHujUmHnHumHnHu0J6mHnHumHnHsH u0JmHnHuj0JUmHnHu&j5>*B*UmHnHphu(444444444444444445555555-5.5/5152535455565Q5R5S5T5]5^555555yo0J6mHnHu&j >*B*UmHnHphujUmHnHu5\mHnHsH u&j>*B*UmHnHphu mHnHuj0JUmHnHujUmHnHujUmHnHumHnHumHnHsH u0JmHnHu+5555555555555555!6"6#6<6=6>6@6A6B6C6D6E6`6a6b6c6s6t6666666666{mjtUmHnHu0J6mHnHu&j>*B*UmHnHphuj~UmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHujUmHnHujUmHnHumHnHu*666666666666777777!7"7#7$7%7&7A7B7C7D7S7T777777777777777ֱּ֩և֩yj`UmHnHu&j>*B*UmHnHphujjUmHnHumHnHu5\mHnHsH u&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHujUmHnHu+7777777888 8!8"8$8%8&8'8(8)8D8E8F8G8U8V88888888888888888׽ם׉׽{םg&j>*B*UmHnHphujLUmHnHu&j>*B*UmHnHphu mHnHujVUmHnHujUmHnHumHnHu0J6mHnHumHnHsH u0JmHnHuj0JUmHnHu&j>*B*UmHnHphu(7'88999p::p;;l<<u==w>>>>$a$$a$ d#   d#   d#  d#   d#   d#  d#   d#  d#  d#  < d#  d#   d#  d# 888888889999999"9#9$9%91929j9k9l99999999999999999999ؽؽy&j>*B*UmHnHphuj8UmHnHumHnHsH u&j>*B*UmHnHphu mHnHuj0JUmHnHujBUmHnHujUmHnHumHnHu5\mHnHsH u0JmHnHu*99999999:::::$:%:N:O:P:i:j:k:m:n:o:p:q:r:::::::::::::::::ޙ{{mj UmHnHu0JmHnHsH u&j >*B*UmHnHphuj$ UmHnHu&j>*B*UmHnHphu mHnHu0JmHnHumHnHsH uj0JUmHnHumHnHujUmHnHuj.UmHnHu*:::; ; ; ;;;N;O;P;i;j;k;m;n;o;p;q;r;;;;;;;;;;;;;;;;;;;<<<<< <q&j >*B*UmHnHphuj UmHnHu&j >*B*UmHnHphuj UmHnHujUmHnHumHnHumHnHsH u&j >*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHu, <J<K<L<e<f<g<i<j<k<l<m<n<<<<<<<<<<<<<<<<<<< = = ====S=T=U=n=o=p=r=s=t=u=vjUmHnHu&jm>*B*UmHnHphuj UmHnHu&jw >*B*UmHnHphu mHnHumHnHsH uj0JUmHnHuj UmHnHujUmHnHumHnHu0JmHnHu.u=v=w===================>>>>> >U>V>W>p>q>r>t>u>v>w>x>y>>>>>>q&jO>*B*UmHnHphujUmHnHu&jY>*B*UmHnHphujUmHnHujUmHnHumHnHumHnHsH u&jc>*B*UmHnHphu mHnHu0JmHnHuj0JUmHnHu+>>>>>>>>>>>>>>>3????????uCvCCCCCCCCCѶ|t|||l|i|bi j0JU0JjUjEU jU56OJQJ\]^J5CJ OJQJ\^J 5CJ\*j5;CJOJQJU\aJmHsHj0JUmHnHujUmHnHujUmHnHumHnHu0JmHnHu$5;OJQJ\aJmHnHsH u >>>&?3?4?5?6?7?8?9?:?;? jx CQ} 9!G"$a$CCCDDDD)D,DDDDDEENETEGFJFoFtF}FFFFGG&G+GeGjG{GGGGGGGGGGHHH$HhHlHHHHHHHHHHIIII,IIIQI1J5J:J^J_JoJKKKKľ >*mH sH >* 5CJ\CJ>*CJ 6mH sH CJ6mH sH 0JmH sH mH sH 0J j0JUja>*B*UphHEMEEEFFGTGzGGHNH|HHHH,I2 _+We  0 > jx CQ} 9!G"> & F% _+We  0 > jx CQ} 9!G"^`,IJJ#J1J^JoJKKKKKdddddd2 _+Wes ! > ji &CQ} !V"1 \+We  0 > jx CQ} 9!G"2 _+We  0 > jx CQ} 9!G" KKKKLL)L/LLLOLTLZLjLoLLLLLLLLLLM NNNKNPNNNNNNNOOAOBOaOOOPPPPQQQQ&R'RXRYRvRRRRRRRRRRRRRRR.S0S1S=S>SASBSFS H*mH sH jJU jUH*OJQJH*5CJ 5CJ\CJ\ >*CJ\ 5>*CJ>*6mH sH LKLLCLLLLLLM N>NNNNOAOBOaOO PPQTQ22 _+Wes ! > ji &CQ} !V"TQQQRORvRRRR-SLSoSzSSSSSSS,T22 _+Wes ! > ji &CQ} !V"FSGSJSMSWSXS[S\S`SaSdSeSmSoSpSrSsSxSzS}S~SSSSSSSSSSSSSSSS,TyTUUUU(V-VaVxVVVVVVVW!W3W4W;W=WlWmW}W8YLYYY^YYYYYYYZ Z.Z3Z\ZbZtZuZzZ|ZZZZZZ6>*CJ\ >*CJ\ 5CJ\>*CJCJH*mH sH  H*mH sH U,TVTyTTUUV`VxVVVW3W4W5WlW}W22 _+Wes ! > ji &CQ} !V"6 & F( _+Wes ! > ji &CQ} !V"}W7YLYuYYYY!ZOZtZuZvZZZZZ$[Z[[[ \ \ \\22 _+Wes ! > ji &CQ} !V"ZZZZZZZZ$[)[+[Z[_[a[[[[[[[[ \ \\N\z\{\\\\\\\\\1]2]5]t]u]]]]]]]]]>^?^^^b1b>bCbbbbbcc&c,cKcPcccccd dd d*d,dLdMd]dffffffg5CJ6H* H*mH sH mH sH >*CJ >*CJ\ 5CJ\CJ\U\N\\\\5]x]]^B^^b`6 & F( _+Wes ! > ji &CQ} !V"6 & F) _+Wes ! > ji &CQ} !V"2 _+Wes ! > ji &CQ} !V" b1b}bbcc>ccccd dLd]dfffg4grgggg$h22 _+Wes ! > ji &CQ} !V"ggAgFggggggg hh1h6hahfhhhhhiiAiFipiviiiiiiiiikkkkkk llSlXlllllllmm-m2mumzmmmmmm#n$nnAnBnDnEnNnQnZn]nfnſCJ\ >*CJ\ 5>*CJjU jU55CJ5CJmHsHCJ\mHsH>*CJ\mHsHCJ>*6J$hThhhi4iciiiiikkkkFlllll mhmmm22 _+Wes ! > ji &CQ} !V"mmmDnEnunnnnpq>qqqqqqr@rArrrrrr2 _+Wes ! > ji &CQ} !V"2fninrnun~nnnnnnnnnnnnnnqq!q&qKqPqqqqqqqqq(r.r@rArJrMrVrYrcrfrorrr{r~rrrrrrrrrrrrruuuu vvEv\vivovvvvvvvww wwwwww$w'w0w2w3ww?wHwJw>*CJCJ6>*5CJ >*CJ\CJ\[ruuuDv\vvvvwwww3wcwwwyyyz.zSz~z22 _+Wes ! > ji &CQ} !V"JwKwTwVwWw`wbwcwmwowwwwyyyyyyz.z;zAz`zezzzzzzzzzzzzz{{ {{{{${'{0{3{={?{t{u{{}$}1}6}[}`}}}}}}}~ ~7~=~O~P~Y~\~e~h~q~t~}~~~~~~~~~~~~~~ -2W6>*CJ>*CJ5CJ_~zzzz{3{t{{}$}N}}}}}*~O~P~~~~ 22 _+Wes ! > ji &CQ} !V" J́&KLMNOPυSk22 _+Wes ! > ji &CQ} !V"W\فށ 39KLY\ehqt}Ѕ Tkx~Ȇ͆%(14=@ILUXadmpz|Ɖ$;HNmrNJCJ\ >*CJ\5CJCJ>*CJ 5>*CJ>*6X@pމ#;`ߊ@122 _+Wes ! > ji &CQ} !V"NJ͊ߊ %(14=@JL1>ChmōˍDJ\]gjru}ʎҎՎݎ45EUop*,47?BJMUWCJ>*CJ>*5CJCJ\ >*CJ\ 5>*CJ6X1[ݍ7\]^_ʎ4EToّ*+22 _+Wes ! > ji &CQ} !V"+,Mƒ:Rxϖ // YWes ! > ji &CQ} !V"2 _+Wes ! > ji &CQ} !V"2ÒŒ :;R_eܖ /46QVXy~ۗ%<joJKL\=B̝#JPCJ\ >*CJ\5>*CJmH sH  CJmH sH  5>*CJ6>*5CJ>*CJCJR/Qyߘ$<]/ YWes ! > ji &CQ} !V"22 _+Wes ! > ji &CQ} !V"K\0z˝ A|Ht̟Gstu22 _+Wes ! > ji &CQ} !V"PUZɞΞӞ}՟ڟ16PUstz|=Q^c6MZ`|£ǣ/4̤Ф49W\|}˦ЦSjw}>*5CJCJ\ >*CJ\ 5>*CJ6[uv<Q5Ms&jä'J|}22 _+Wes ! > ji &CQ} !V"QRjȧGtب*;;q22 _+Wes ! > ji &CQ} !V"ѧڧߧ PU}*+;Ʃ"(HMqrŪ˪̪ͪΪު15_g 0GTZƭ̭+,-=./FSYCJ>* 56CJ5CJCJ\ >*CJ\ 5>*CJ6Xqrͪު1_/G2 _+Wes ! > ji &CQ} !V"/ YWes ! > ji &CQ} !V"2,=.F˯̯ ۰^DZر22 _+Wes ! > ji &CQ} !V"˯̯ۯݯ ܰ!kpƱDZȱر :Q^cųƳγгѵX]նֶ25LY_vw¸øӸĹѹ׹ 17WXvCJ6>*5CJCJ\ >*CJ\ 5>*CJZ9QųƳ[еKն2322 _+Wes ! > ji &CQ} !V"34Lvw¸ӸĹ$WXv1 \+Wes ! > ji &CQ} !V"22 _+Wes ! > ji &CQ} !V"vԺǻԻ+F[ݼ޼߼%2 _+Wes ! > ji &CQ} !V"2/ YWes ! > ji &CQ} !V"ԺպŻǻ˻̻ѻԻ,1G[hmpqļǼȼ "#27<=`ejkŽƽ4578;=rs >*CJ\ 5>*CJH*6 H*mH sH mH sH 6]>*5CJCJ\T%S۽ 78rYt9`L22 _+Wes ! > ji &CQ} !V"KPfjZtu"FKmqMgh ./?t+,<|55CJCJ\ >*CJ\ 5>*CJ>*6ZLg.?!P?22 _+Wes ! > ji &CQ} !V"?s+<CT22 _+Wes ! > ji &CQ} !V"5$ _+Wes ! > ji &CQ} !V"a$CDT019;efv :;R_d Kbotx 9>klrt9MZ 56CJ5>*5CJCJ\ >*CJ\ 5>*CJ6XT 01ev:Rv Jb22 _+Wes ! > ji &CQ} !V"w,kl8Mr\2 _+Wes ! > ji &CQ} !V"2Z_ +0in!&()9!5BGWn{12NO\^K_lr PVCJ 56CJ5CJCJ\ >*CJ\ 5>*CJ>*6X(9 5Vn12NO/ YWes ! > ji &CQ} !V"22 _+Wes ! > ji &CQ} !V"HIJ_C,A _)22 _+Wes ! > ji &CQ} !V"-ANT&/4:lr)*:AGVjw|&(8>_`p45LY_%+-.> ?S6] 56CJ 5>*CJ 6mH sH mH sH  >*mH sH 5CJCJ\ >*CJ\CJ6>*O):Uj_p4Lr22 _+Wes ! > ji &CQ} !V"->>S @t2 _+Wes ! > ji &CQ} !V"2/ YWes ! > ji &CQ} !V"Slr{!&FLTZz~(-SYfl*+57enpq{"*/7=EIQY5CJCJ\ >*CJ\ 5CJ\CJ>*CJ 5>*CJ>*6VM *+pz$1?K22 _+Wes ! > ji &CQ} !V">3d|%2@L22 _+Wes ! > ji &CQ} !V"!&e|#+08>FJRZWY[\lKPTYbh)-KPY_ 7DIaejpy~CJ\CJ 5>*CJ6>*5CJ >*CJ\ZL[l7T/ YWes ! > ji &CQ} !V"22 _+Wes ! > ji &CQ} !V"O-E%j22 _+Wes ! > ji &CQ} !V" !&\a-.EQV%@E$)sw)-RWqvOW(.7<n 56CJ>*5CJCJ\ >*CJ\ 5>*CJ6Yjijklm*+^oj22 _+Wes ! > ji &CQ} !V"*+/1^_ok %-3;?GO}*.12Bcg H*mH sH mH sH H* 56CJCJ>*5CJCJ\ >*CJ\ 5>*CJ6Rj'5Ap22 _+Wes ! > ji &CQ} !V"1B>bbb6 & F, _+Wes ! > ji &CQ} !V"2 _+Wes ! > ji &CQ} !V"2/ YWes ! > ji &CQ} !V" ).KP!&@D{#OT(,5:5:ty % L P z        o p ~             mH sH  56CJ5CJCJ\ >*CJ\ 5>*CJH*6>*U>w7rBr~(g22 _+Wes ! > ji &CQ} !V" C m    A o p       6 & F* _+Wes ! > ji &CQ} !V"22 _+Wes ! > ji &CQ} !V"            d i     37ty >FHIYPV &'FG01 CH 6mH sH 5CJCJ\ >*CJ\CJ 5>*CJH*>*6 >*mH sH mH sH  H*mH sH P   * W    *g22 _+Wes ! > ji &CQ} !V"6 & F* _+Wes ! > ji &CQ} !V" HY2 _+Wes ! > ji &CQ} !V"2/ YWes ! > ji &CQ} !V"  $D[\.PQ2 _+Wes ! > ji &CQ} !V"> & F% _+Wes ! > ji &CQ} !V"^`6q!j5xU{K)2 _+Wes ! > ji &CQ} !V"Hr>DIN`e"(7=5:fksw|',ag q t 8!L!Y!^!!!!!!!!!!!h"k"p"u" 56CJ5CJCJ\ >*CJ\ 5>*CJ6>*Y)|U4YfQ b 7!L!22 _+Wes ! > ji &CQ} !V"L!!!!!@"_"""#Q###1$q$$ %T%%%5&&&&2 _+Wes ! > ji &CQ} !V"u"""""##&#1#6#?#E#####$ $$$$$$$$$%%%%%%%%%%&&&&&&'''''' ( ((((K)_))))))))***++++'+,+5+;+c+h+q+w++++++++++, ,,',(,;,CJ>*5CJCJ\ >*CJ\ 5>*CJ6Z&'_''''' ( ((t(J)_)))*d***+C+++',22 _+Wes ! > ji &CQ} !V"',(,;,<,,,---.K.m.. /&/h///2 _+Wes ! > ji &CQ} !V"/ YWes ! > ji &CQ} !V"2;,<,F,H,,,,,,,,---------- ..<.B.U.Z.s.y.............,/4/L/R/r/x///////////00%02222233373<3x3{33333333333334y555555566>*5CJCJ\ >*CJ\ 5>*CJ\//0%02223*3k333334x5555555562 _+Wes ! > ji &CQ} !V"26 666"6-616<6D6e6j66666666666-7.797;7_7f7h7i7y7,81899::z;;;;;;<<K<O<d<l<<<<<<===-=:=?=N=[=`=======>">*>0>H>L>X>]>i>m>z>>> 6mH sH mH sH >*mH sH 5CJmH sH CJ\mH sH >*CJ\mH sH 5>*CJ6P66$636X666666-7.7h7y7B:::> & F% _+Wes ! > ji &CQ} !V"6^6`22 _+Wes ! > ji &CQ} !V"::5;<<=-=N====4>N>2 _+Wes ! > ji &CQ} !V"> & F% _+Wes ! > ji &CQ} !V"6^6` N>_>o>> ?'?(?l?}?"A7AfA~AAAAA22 _+Wes ! > ji &CQ} !V"6 _+Wes ! > ji &CQ} !V"^>>'?(?1?3?l?m?}????@@@@@@@#A7AFAKATAZAgA~AAAAAAAAAAABBBB%B)B6B>BBBBBBBBBCC)C+C,CXC]C_C`CpCCDD DD$DYDmDzDDDDDDDD+E0EbEfEpEuEE>*CJ 5CJ\\>*\>*5CJCJ\ >*CJ\ 5>*CJ6UAA BB+BsBtBBBBBCbb2 _We 0 > jx 5Con 9!V"6 _+Wes ! > ji &CQ} !V"^2 _+Wes ! > ji &CQ} !V" CC_CpCXDmDDDD"EUEhEwEEEEE6 _We 0 > jx 5Con 9!V"^2 _We 0 > jx 5Con 9!V"2EEEEEEEEEEFFF$F'FFFGGzGGGGvHHHHHHHHIIQIWIoIrIwI|IIIII+J.J3J9JXJfJqJrJzJ|JJJJJJPKSKXK^KrKwKKKKKKLLL L%L/L5L?LCLNLVLLLLL4M9MlMmMwMyMMM>*5CJCJ\ >*CJ\ 5>*CJ6[EFFuHHHH(IfIIIJKJqJrJJJKKKLL22 _We 0 > jx 5Con 9!V"L'L7LELLLL+M^MlMmMnMMM[PpPP22 _We 0 > jx 5Con 9!V"6 _We 0 > jx 5Con 9!V"^MMNNNNNN\PpP}PPPPPPPPPPQ QQQ Q(QQQQQQQQQRR)RVR\RS S9S?SoStSSSSSTTOTUTYUsUtUUUUUUUUUV3V5V7V8VHVVVWW}WWWWWWWWWXX$X-X3XXXXX5CJCJ\ >*CJ\ 5>*CJ6>*[PPPPQQQaQ|QQQQR)RR-ScS6 & F+ _We 0 > jx 5Con 9!V"22 _We 0 > jx 5Con 9!V"cSSSTCT{TXUsUUUUU7VHVXYeY <^`<22 _We 0 > jx 5Con 9!V"6 & F+ _We 0 > jx 5Con 9!V"XXY Y%Y.Y4YfY}YYYYYYY!Z)Z1Z6ZZZZZZZZZZZ [[ [([B[G[W[\[y[~[[[[[\#\N\_\h\\\\\\\\\] ] ] ]5][]\]]]]]]]]]]5CJOJQJmHnHu0JmHnHu0J j0JU CJmHsHmH sH 6] 0JmH sH 6mH sH mH sH 6>*GeY}YYYZfZZZ2[k[l[[[[[[P\\\ ]\]` & F22 _We 0 > jx 5Con 9!V"\]]]]]] ^ ^ ^^^^^3^4^7^8^9^:^;^<^=^W^X^a^&`#$$a$ $dN &dP] ^ ^^3^8^9^=^W^X^Y^_^`^a^e^f^l^m^o^p^r^^^^^^^_,_-_._]_^_____``J`K`w`x`````aaaaaaamH sH mHsHCJOJQJmHsH5CJOJQJmHsH CJmH sH 0JmHnHu0J j0JU CJmHsH CJOJQJCJOJQJmHnHu5a^b^c^q^r^^^^^^^-_._]_^_____``J`K`w`x``` &dP $dNh]h```aaahaaaaa`$a$ &dP 6 001hP. A!"#$n% 6 001hP. A!"#$n% 6 001hP. A!"#$n% 70&P 1hP. A!"#$n% : 00&P 1hP. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% 3 0&P 1h. A!"#$n% Dd.   C tA\..\..\..\Noisternig\Arbeit\iem_schriftzug.jpgR֋磼ڻTNDjDgF֋磼ڻTNDjJFIFddDuckyd&Adobed W.y/ +  ` 1347@!50A2DE6#'  !1A"2Qa `qB#$v@R3bC0Ss4%urD5E&6Fw !1AQaq"2`Br Rb#3s0ƒ$4@CctғD5&!1AQa`q 0@ !+3ۛ6Tztֺ/urfX@nL QZmɛDBW=`:k]3hJGMkrW&m ^t^6͢!+5\@%z9x۫6Tztֺb>l9x۫6Tztֺ":7դLB9x۫6Tztֺǫ=kEEZz|^6͢!+5DWƮvľcO鞕f^gycQ_ .薢~g>+ttI=:%M}2+_m'^6͢!+5Ĭpەi\K}oW[*.´5=/\Yu8;;߯KmWMd~}N \@%z._3O#l+TEq4} UdÇَtLNďmryaW7]#g#y-^6͢!+5gν5,`yL| eYfkѹ!/.rzDܣO盬sO= Ve>/V?nLWOʙ~s/urfX@^wlLdxuz̯ǟ-GmзotJu.3[@l Gnno>tsfW߷uܙ].yx۫6TztֺȦ;J:n#} #}bjR]j+n}!$LOƮĿ=Yrxa_<\1fٖ6>in^6͕!6f]CO3ݑ'AɌ[Eo}=Cv5B#R˖ |Pk~I0Z*Su0L R";,it=nm2QZuqR:s96 rwl׵68dKzo+=ʽ9~y:_u9%񇢵 re~ѺRΰ{x؛.Li/ts QOvXm6nzglzyVgAɎq{6d>uFTglMW.*2U9S.Ώ.2+J)Oܭ#.O:ud<R[vGo%ZQEy?Q/͙wqfo909xSϗʋǁ篇PfgZXTJQ/hqVGm# I=kcnɖڋ.V}Z)G 0}YQKx(d ln]i]wx^°}^ˎ+}A?3ˇǫj?>Qmu^09ޖjUFihTj2M=kveh|4k* `5̖z:-Wq]=17zN^d:ma:g]Vw+rܮw+rܮw+rܮw+rܮw+rܮw+rܮaJV{~#lǿ['1V{~#lǿ['1VYvx+dYaǿ['XY(Ws6I<lƮ4Ե[0ҕ虉mPbqKħxFxjGmQ]5cU^5YЪ0غc୓{rAk׺Sp3cI^,zeV{[tcW{Mn$2'E'avLWŮڋm7\hͷ,-U-Q= ?o Ulf HQk!.ևQ4Y`DWtDыZEpm {\,v*=5{<ЪéYR-:%ǿ['] bngKU#ӳ^Qۭ] ;zmhV%V# 6`œ;va'uϗu1G;lti䤮>4g3c_[֯N(ibfLl\Ĭ!J:yjȱGG>anv;]FBngUS1V2oc,3٭m,xuNSs Mg=PIԗFi6+af89-Ut勼W^NKU_O/6H翚-=mߢsĄOU+ Ke~ $㜼J>,=,w,"c/?ghgkIJi*NsrϢ-mUۺMu 칒fV#/+͓d%^zbb+V,SQRe~#817WJ T.0āػgy{#n֏29RԮc߭퓶gKNͼUݶ^j!n jRlRU+]jRس:=~e۳]alW.^Uzre rRc5 =eUcUuy q5`Oo6e^n|yenr/MAlSRܓ!2Xe ݮbج-o֌A=S]fx,]nE\wL> MHgk\͙PT'c69kdޮ\?Kd55ӄƦag^_&MF>v}iCIv(vU1-{K[<[zPLj\Ǧᯭ~ uK8?@ְxs|llgsH;ocl4 #«io q@p-VrfU3n!.O8W⹰6gBx-OaҤAtԮx2/uK]#^ndzɳX."k1毌c0d;Us\W;Us\W;Us\W;Us\W;Us\W;Us\W0yTw;G#}㾿q_8w;h廱z;#w$ Ld8Zq>Ǘ[#"QYsѻ'~K,Y$$ƙhH/%kkɮ^Hȴʒ$zTzEw0Yu$ĪU_ZZ#^Ԭ3SPdlQ%Rlq{Ӕ VNfJ6ѡII~[>Q>c"E<5 -Qu,vxy)5[,xwY޸3B#; !lٳ#\9PfaiG#32GW!lF&Q2b7b ,9d-Y7tݺqƼT[0b7/ڄI |1J هn,En"h voVf7thzRil7### Scy5ן1_a aX_#?zVV>?Us¨n^y xi;m:֚cںɴb#Z7噠GDAƠ1-G-qAmg icte>bCʵ"^Ay.L0i٪ݡ|]kHILear#zפSҭۤdUd>YϦ1frFs4r~4߹Ǒn뙦!o0"bYV)a<*%RTS_-k5v QP!rd!DI8LU|A\ozDZ*&9-ʶ\dݹuϟ{(1GL>!9Zāf9l0+|#V&D#_ TAtŁryqVU7nEmG"$$Y5U5 )IPAr !I8(B(=Do@kn/0E)Ɏ`TW̍(IՔza~iyϮ|(/YE/ܬ*VD#r?Yil%Y}dz*rcK'ȓ!jҢ"d_6*!5_Z d-ISa9.SíH᳌9Us W̕jIJB-}RT0C7BjI-HIȼ+r+!VVRZӏw2+?WoLyE)JFHs$5hBZ2Ogpc _"E(oWj %r3`#W%@x,A곖So/T@8"iWkti3π㓍a:0~NjPU+t|ɆDq ~T|%pdTq_/9i0_W tXV?*)!)!)!)!)!Ilc2pK#%{=!G`_c9DBjJ=s &Yv'}h!:Kl9'=sQ a8bnBpi+_7A#%$ 4nY&JdHm`xK~ziV]-Na ).!mS<0bsN't89ɂ|DGLcmۘ\R|X@"+_,$fU#tSprx~k+[9_(7QB${.sJ8Fs>SdB]{%$fnsr!T8xJvBsmWs \;pSUI㻅wsK>TٕD9' |n7Ϳd:$Nf1ĐrknveM4/m6ir/l>0J\Zڷ-J2eN\j&th!P![ɕhui.QȒnwj yRd%o{]7穥Ӆ6 %=iG'HIM_yp\NnĆ:ֻYʋ h9s׼4vgPsR緙 j*xȂz-)s9ngւOy[Zm5!f{%ud(MF!i!uj["ZCRG7ju=<:SIlч<p 1L=>i&_r=7sIjheNh'XAk2 - 윶StiV5 9d4wۮۮHuON #UY Ph1<:gial`sOe:aqhS w>g)|3\6fQatF> COH"\W&2G<p8 Yn'׬ pV ,iFT]ìk\CY*&RU- +YtZhւ;ՠ m"#!3\ 9YDVjy7AS< s.ab)edA^/x5F q&N~Kט,t­8Rs^UVN^.qW:2Ի;NS l:|7w_4ϺɣpZvLh^ἴf*67ⷍa/nIoZTo,XpgꓛK~t[~LGaʴډ3k큮;WJ'N0#q=ۖ/oJ_N[O*ohL}oxIʏAD }m5<;몛ziOށ-W\~ikt6Cdiiww(cO7|$rdW]~)_ti5ܵ$F\xIhC9rZ/Ѳm< k_ QKd u_>4K~ژVWl0xK!eiE@;&)b4lW-s}3i4;ѽ<|O$wCsS iq.h5.sHiȤo2k1o7)ܷf+yn$FȕjKmn.{fKAnU癙j*ü~fdDq5iCt?.hG_fk4! 3<-a9+ޥ4Ӵ)fEM[0ʚ9T9)KԺH$D)3r[r;q0Aҕ,Fa$9=5x̲J ;)c1=$ۍA !^fu6([ 9Hnt,}0R &Cg@mʡ3Eř\B.L 5ψiv3ĴTd*>r |a@`JlPY'Ӱ".,`q%" QϥnbMBf)Hy-f6EVDb3O#ǹ̩c7Z78;WkĩE/Τ8J7cz֡"QL`TPLq0VMX9qSjgix(Nk0sܕ;{ǽ).+b1(u:^T}(T?=}!1{r$Ga9R;k Z a\;}&Hv&ʲGTZPrvUGtwsP-7ړS6[}_?٭3tKשMOD46m#*FwhͪVOp b6GSi"Qs\jr Z}G˝y`q o{fء"ts S׆ŦW u f?T2MW(3Ho_DZ#og`FbM\U?٭?]34ŃvwTGYo W%*=V_&l8幻ʇݟMirlL;h|Xt;5j}7"!gu2]Cl`\2!K5ߴwc@s>vx8JIg0~#7}z>Oޝ)PUm:Ǫ?ΩqΝ&YNEE=Z6/֦|Y<S#HMVF.8ԯ >钚M7uI|' n{6֧O395(9 z=Tw  ?u1j?)|w#)HwG{R;~B7V ]ߑ,8<Œ~+H=OXZ}KD~%mŽNǵ2;>Cm,5vs 3S Bz[ zkcot㈏F,7 cdaLf %sT׺`'SwzD.k_hԚR o(M F;pX6 +p4Q;f>zdO=7tdoIT\;.6F־jwŷ_z@懵l"3Fŷbyw> F ynȽC>/cPKtm(;}s{BW)V9AiHҭ 㵒` yUqdE|Eݡ S q5;49S&+\g43:K!zlL{1_NT ٝ8 \)|t͸QvG.N Rx^N\ Ɯ);{e_ubSGfYE)ZsLlƉ'ĕ-f\BkO8Do.{?O^v~CgZfȁ-sߕc^z0=>mA=36msi_}?2U&mQ̕JB+btHz&Z*ҸltL[OmVn ;ȎBQޭ0meTyc9Y*`7V":}]! VI -uZM^,Ł$C` JŊhs2!aQTǒz*TU7nzƸLq;R:9*9;1hBs<9m%1a&"TNJ+9+F:\Q ;Q넷kYyzqC^x2L_ w/Mv<hdD1D! $LsXiN(Zq[x l]aG#,"GCG9 V:80xq-YT8Ѯ"L̝}kb.3TlF@fd`&\=3`\!6x#="]RB9Uqյ∴/y~ۻ~LڍհB &7(#O:IA^ۋ2[:-`́(fIyW\uvJm͒It;+!VWq5x%LH# [j#y'mpƖqG eǷQ.Ȃ#MAH2)o5xA1ց.\Er)yJeNcɏ0}Tr?5:׋Q]\[aK3Lњ!CDysO5@XƔ1\{ T3UTTTTZ*/EN gfu5s&8J{p4M;4!ڵ=YE`bF Y#fPx-Qb([}] t uձc3F\V +m&Jθ; F:OIt_W7j3UPjA]PvGLB dYE!ː8gf4,p-CҙTtV\ؿelЌkQ\1ƿOU)$KX!Ȁ2#&@cFm). ΈmT"5l\j%2 s6w6Lom*5,92z̬fo2k9-\dIqǒK'/y~ۻ~L"]7Yv0V$ϔ׿zJ֎]U)#N2E[Gd=dM!VfZ/WՈ]"S=\Ht8Vnp\f}v I+^IGj(ܙ}7Y% *%^WŐiA]ڴtKfM.%KKMkreYsr8 #|jzL:ul4%q Fk;('_nr5)=r7„FFmWDR0)FM{t3]rN1JWӒe,c$5ȅʮMaǍWTI/RLG]Hb9$+Fwxz=6u-8lGFgVʩǚ; %V=NjS\.1 wIW4p׏Hr೫ "!Xк`?;pO̽n2|b"FC5+ފdڊh t@R"fHWHZHV.5lE۷  k.{ՅXτYj1s>up<ɶ"lg;ng: ^gØ\V=J9js\- s|<)@خp`E-R;+:4Qd[|-1UyLM hdu@a7qȾ^K2OW˖P钕u]J}i8ӕ.Y:X/=s5ۈ։,F[_ĊTnXg=[L:"BSIIl2(y@Dr ,}='d( 3@7WRl+1`<^0v99.kd/)֫%J kցFۥ *X$DASJ".$N/pH=;hd !&S;SUU檼}Gڤt ]M#SmE͝QsNwmdD3 ѹ e]p;7mq5z>C'aU1wLSW9Qj+UWԉ϶ˏ:W\BֹrW1jY&nO\ܻ12tSϷhb8&R1*OKd\Ƃ1if`~"zѩW=̝~8$ĴƒP ƛ-bN j` QVd4!!" S eI:kHJ4]M EnUKz'Ct=.L٫͛6zB{ ivUIɢG1G̵ٱg2 ĈqQa*>][,m-Et|+ȊBT|́|'7;4ﶨdcxxRVIc[#ѩjlڗ95cGp:M;1 2'Fl#£sJt$'Cmֽիp.;TT+Jq y$'o[h >Kc3eJ5iN?*9sbƕr!oc f@P7*86LH8$ QHx ^4y\O7.$Xd,*7zrCFȕNKۛFm9vuK95r"#y~ۻ~L)TOZv׋tI: Vc0ajtjEJSdD%-LpqX1)Qh}#fFqnm }*4 p*R {1FkY̙qf[FS6g>V=|q}ۛ FrثE6^w/Eġkh \BWEy\Hg52Vc&$kx Íp(ms *ҮcRm=~7N:f˜Ŏ@[:u4 3DIRH9GJ=ŘaNwC~%CL"gOc3q M;dUظۯH6Y2np`š˥Hlڜ]ky.?O2:UT}8glEu4d]ڋFEXiŢW"j({϶SB=V (\aH4^CkmmY&XkrLZީ+۲tJmu|BOooFJcֿ͗+-y,(Ǔ=ZC6(؁r9Z6#o6|Ct }pK[sGڧ3OAöl[.Ѵ@[: %=Tnl^{1\ es%Asb5vej:F7%#Ël h#xNkS}X]7ۆߧ,̷Ö4agI܌g*"|}0G8?KZD=DYkԯigf6۷8}]:T5 +8FiQ绽TFͱ>(m_q ,$7!j;ʜkg[svϸ~ L-BM*⯢Q;DO 'ƽH[^w^ D v&r"+9Qmxxd>CHdWBD\\6q[eĆhzww֭r%x{hoȐڬ͹"D-P3X.*vct-=: %1쀭oW0ڢҘdWx1,[0bp@eb wۥviXmK\H6H)S[osZdUǻ[2x~OmKho%%B77S FOoQ8qԱ.Z=c V+-Wcwl:=FmT;aY.qΎ†e+-vEu[V pY).NӎS-~ܬ;{JJdBÔotGWU60mB\tLH$l4&KXƱq*3cnZGҭxF$ TAW-qtB\FY}tFRۏ 8'(skZQ~Ķ@Gn.lPD'2QZev/95!s8":1KpA:*Lm1ÃrWMyipBܭ ȎowvO|@&q,V[diԍI lu#9✱fgFx2eF;"՞6Y*Y4x{̧9шCens50]iI=~*f.ym"}Y]5lv|;bŸ4/Pr(֙U}qh!'u $YF!!^ⶸmtmts'L ԅ"1I'bfm-ۮm2/rACǐ3vӖ-RaoH{1zLZ-eőNWÇB&\.bɡJY!1eR"zJ 1y?p$y$OD4GwN݌n3:AB$y'$Lm= 3oX$n+pmᑮ*18 +Z'?[D219y֢8h5^*DOV7xc eR h9UjUVrVQZ!CyyHW\errח~O$OKzBH7/`cbR|04iJ&$&HUUQEF{s/wmZ2eN㕀x2׷wdmmvߏsP ;dmv hU֘5+NU\|Ilɗ|Ivx{[!eH]K{*Uyk Iv8d:s6:>(g2cq]5l7*2M-:0|YL0d2mqVfYnʎK _qF>CJUp\oZ~#nn.>&-h4^ "O̕dsn 0m/bF4'hD΋ZOŚV{ɑ,U4繃BgGWmZ-?ÉIZp u芿K.?Ll=ͳ O8g÷'pƊE_LEnO[ 1f)I.a1U6tw:m%l#ȑI x9"*xACw'O]3Ya4rUCNsk:vTJ$O x62dHo VZjךb/wɷ4>*em0ѨRU-5ٮ wo^` .0-1a4L^\|)tdi"F`, P he5m v; hUhRWc`;ݻ 5t;in$#GNŪݶ:6͑,ITɒP M,6W3wnKs!k5JF T/-p6 ȣ],tˬIOF4ikkw2i';^͈2 Q{wB5S\)azPX16]B@ų?^\ha$ߦm}8*4O7 c4仓NۘƎrʋZDƘ  <"ю\m~ۀ;:^V( jVYL3UG7/:co? v㵴Dt%"m<^}an YWۣn3ACmwIsZ1xӳ|`mvxd-ɕ:IDEkϷJg&ې+l],Bo vzq\|8ȷ;d́4-rs/>rs/>rs/>rs/>rs/>rs/>rs/>rs/>rs/>rs/>rs/>rs/=?7Jߠ$Jߠ$Jߠ$Jߠ$ǭhYé GO̟bq I$'ò(cPCn.{Yt{#~6;~+1Mf3(qSQ=@?"6锁\xo5qXo?cATL wE4;o6T7b)I$@ͺ{?+ޘ+a[0Svunp`r8+ѭq[\%rs@OJ¼;G-]*| yF87g.Y=Ot9ovk9r آ:J5|Jq@Ú͇57I C_o?^ZI\K_+ 7s >Xe&PLdVTb/HjPZ ";( H9qթ3_"\vPa˳?f;@OF4Q|dX}PJ/8WA<: NG! J``ya1yV6).C4M?FubyYL4\n5Jް7#p+ve f`v8fb֬\CԊ,-gB# cEcF~J" fܜ9pvIOC8w\%Y 0" ^:RTvr tB+q>A"z?K|xBVhq^+1 QlI~ГLc7BuyQ{fb}UH&ޭ! }Ox'tq˜Iɺq8 p7oy/ |0 \kߝ] >R"`ܵ."Ol9:&'A O'^܏NV@xQ޲BmXAIjf,Lg ;Ҽ})f_UlE/&+ƪCRx sx>(AX>ؿe%Y6 sHgřVwk͖BpN)g;RWת;l|KM(bm rB4Vgi?xel1 .Q fְ.cN"A,UKP3!E 2"]7;^ZVcUf1!(Mj l#R"4q hz{XG|29ĭjZ(cY4gnBҰÛW[r"Ȱ?H੬l4^ aosDSΠ4u frG5.: 2qpI<+;FM df[oj8{ud8:V(f\8& C{a2#y#m(ʑ@Q|er 7o+{|~}PHxv`y9x9<8}0@0>qW lgW:xϣ6gz 8E&Z>,f ‚ɋMf< n)znqG5VWj;T~R!Ïm3y+@H3d@nN 27s({1{N<ﻡA%4,#TcsD==x8:"r]y*{&XR囂 4-]W jeULNʈ%eR}zjP#HJ" DusԻ1xs|W&"(g/vQh n5%9Kɬ#: r-Ttl hs%YQ _OvJAC  Y*kO2'LJݒ+#vao\&@Fғs! ȩS r-_X|AHs+T5یw 9_%0AuC Prz D,zӂ]˭iG`HF|,.aGQ% C!d2 C!d2 C!d2c'|>$ğ1>|O|I>cԀuª%hx4ozeh_` "&χcqa{+uSHV.qG9`/c!cv@hPM(1et8 ZQ@}r *6HYVPm9=~`Ym,ڸl(˰L CtwS!<ѩ6h>n;hpY #u\y17*A?MJtø0@Z! Ao|=Wݘg u 9 U UXO!3B@5 ,'p s]|8d2u\4%pP)EB&/9]1t=Y|o66Թ_q/mlj(BYĞh9gV>T/kۂlu~}vTYĽ'F#(ߘJ/"R ^̇1}5E.FAWPʊ3`FO̳e!|/ U@6WRMZH!<*?1'aa=Œ=0+ ;ɟr+xp(c-44Q [ @^`Cc 04eyhҍ@)|1 Ҵ1l$^|bxmt89qLfBN\iwXwHNޘR^ `Bx-e 3 i_~[ ӳuhyS#HY3:o|?# I>r$(c^FOv("kL8/aаl>IV)Yo*me+5y5軩s{`mJV+9HD ( Uf(UQ;olbl03cR3ƻ{w=V':ur;490I6y1@ vCa*@/M&@ʓ?v G7z]%w[p.G-48m YBF" LwTIrm-.-Rs"TVƍA=L ;I-[Ho9ǼS?uK%jcU)`9~ޭ7Ld5̟'ܗ+_z7Mq(B|_i!NN]חs"JؗsYT3T*Mr槧|=m9v"b9mh'1HaUEX!P=Q{~e^ROP1'pٯaaN t&o>L^TA!W/6dP1su+m& 7 EI4c|\&Ѽ0=oWq8@=!aY+QþrƯKxV ǑnkQ_n5j}3Zs_,s9уWQZo|fܑ5DǾoHM0GڂE@ >I#BWoU"#l: 2>b{z]Y#U j] +Lj!{Bu!5<'lSqpvC9y$;d׌#!^]XG|;d #<#V<^gq9V`b̃JOm77}f=#0 =*pzd]LHv,"9 t;&.xzC̟"`J(;x_bGf8xڲ~ww8o᝛ysTU*!kb"''oΗXf~v/30ZPYKH9`/Ү?'):]S%`m~-=;Kt^OܾGDrUAَ 6xX o" ]~VO=3CeQ8~u _Ϙe2LS)e2LS)e2LS)e3?!+ğ$'￯?}|IO_~ğW٦>풃dG֔|?Frx>׃C￯Rcsi{hu1a-Y8p% H2krkI@ +:;GNh}: x|AjqO>bAPv;S Gz4A/23[-V3Jߺyy<"_^(˧%4CpYq@>\M^zP`O~Lt+鳤Xœ.:y=5-~q-C hH|^\e] x#Ok}9w$=^ JN$_Q)y6I8m'wAڹ7R*M럃}I)H+@ 5=bȚC&jhoڮ7Wҙh^͒{eWm&t:=PWRY ~?maB lG0{JlMrq([]f~kه -]_a lqsZGзɣ5Yh9׶ ߋM߶}h}_`B/N5 "VVNo8i~hEM-| `OḴWG8ߏ|ɖ Fiq&$+F6rYQd@ud7׭aEaޭk:ٕĤsw'K϶"B 8dACǓ+vl,j8/)/߾DĴ4hj{wDOMӐy۹OO0~3u {̫Y廨 Jm?ٝ邌<ǏRv}\w&w?o=F&_BfP'F _MgG("~]@ĉ6DW{ ϧ￯OIp'Y uҧq}sHa:Xx+;ʦOsuwݿN@iiaU]{ -N>MϿf>I)To.L<`3x͢!sɇN@"@^o 8)M{w=[49g23NT 84{e=.wvgzֺ,SbukȚáKd6owXnxOZw$1f}}qK8iز`985SN} 555sӀDv￯V <;Wyb04IYÁT>^9w gZ{)>O׬=D{'?P._S ޞ?Ahr/,nSI ?'y0,Im>>^&̾D/[z{u+x-ϸu wzulǪ$+ B9|>$+ Mӏ8}t7O'|>+t$!PkjPЁ|U*73;N%8*t!"”s퉋s lBWIP(ĥ(|Һle\e>"`uHA(S3_IUDA5j.3sUӱ2)`=/=$p|GANpa3Y |kn\`szw $?2TL-|q%J"#"v&\|ƪ#&X6^t3 } C'}]) ɫT @=w'cK6XZCX*Х1Pu>ͮՖ&t&*{+x%٠ U :GLX:D!b9yUj}Q@,L0oy9-1h{G#| >M]&jN)j Pm,L(vbh4\Vl VzƊ<+pd1SQ1Io'` i@t3`Q"%+$;kk?(`]Q}enˬL L"N#1K_n!ہ],ʋxH xMm+h-*t:[<ހYrOi*z`b$#7#_ 0ԥA5DX@JL<7yk |1+:;CYiI9SAND  ]Gel}~܌sz`uf Zk/I\Cf6j\RYI0TA} 4=D5!@7 4i@\NaxB=[Z㥢@2mW|rauqwpiY 4!ul J|ZeqJ0,:sA`l@+G̵,.U‡qhg^Ɣ4C)w7C)~To;n&jy\x?OjaDkvj({Uy! U5l#uUn@* Uq8, ShPSz]hݟ,$KryP,JHB/N(cD ڄ4pJg}Dp2y+Of@QE&oZ4)±"*<0XM"8pչMyz.`9 LN{+`,](`(ou,@BZ!\otPXՎh_*pxJ \O`#P9:ؘ8PlJF[V,O@Hȃl*i5&\gۇPevpU 5)l(=☺f@F+&D ?BP,d3 _:H0.ڊF8ˑU(-yZ'=@!  m2N46yz4sq.|}qm #rL!v\hu82K%qbHK|R 4Ϭw8$!\dH12C=Q(iq@^Xq9\C,\Tg?m,] *U ^SSaAiw[@PGH3ݒc[RBL 9CAJFzHek%ׂ!`(փ`GW\Ffkn̢rSAI8 o[ CKZj`0t9V>EY™> #ΖBI % C3`# `)L &ΊK~hL(uMmM *Hp52=A%4o1Nћs9Ţh8Q,lpn,3?ɟxt& V 7h \QҌ ǐ8R0 N8[GHb=P5ZշM @ReX AZư8:#~2d Ne,oD.!C,W054'OTTT v$bŋ,Xbŋ,Xbŋ,:"~?-ggggggggggggggggggggggggcGě6 /syitWxrgcǟ/ جS:sDn,a{ B4jEt Y&X"J~k\.2xPQժz8b"`-|e`h%Ď-Lx1"EYsɍZ 'r  C㈨RLTQ&M't7FD / | Q=@ݸ7찵5R4%l_K&,Ⱥmh)j-i EԂ)X{V%Fm%QBq1 1 GГ,-\C&A"Ra!1Ϋ6R%]~nRP Vx(-DVA ے5AG!ؽftP7>%R0cO !( =Ku`3Cãw_!2n"قɕ_1#vٜ{P]w_R\[lFc/pZ b)K@YF}\p`"Q1G{w`+) t>W! n2`]jyJ ~x2@cA$jUk'$`q  ͎O)' D|6ۄH^k$C]Q4!XƘͺq>fM!qcMc!XAkwX` h4zH!!N@Cn<8Q4Ve0<9 ;797ˉMBǟU@ ,^])+Qq]BEX+:p{=7-M}(Z c@  cH!M] v:㹂+C(E1oC !'knzJBeؗ\Hxf*j-xjzIcnk1tgyFSK*hF(.~ J^e`0Th/#wxT.f$hR7)hc b\jwI*$d{LJXSw޺PSj&Ğ+:EEyLěbڝZ;:{6orrR=-<,*wQq5 pIԴ($OarF`Uĝhwq)φ:%.F+:Jn0рӜ'k Y- p+8хWeR B{$Vv:x$0h ,8V H=ª1m ]H-ajAГ#vT_'QNu)=Zfx@ HV_N BVIJ^uӭhF wEBx " ݠ*B*2͂h fZC.j*R$eFi2hl›>P j-3cBiؼ&$1CT"vMFUʶrtk.X8Eٺi|8WnU}}, z 18s~$HD"iI 4Nq_>1A% ` ^^P|xӳN/U#C#6k(OE| ML/*M0P8]!z"浠 bRp(2=6)]?Q!@u(GYai퀎"KR ZigỴ*WKhHiaj҃H*] h_=Fj조1bP H"a`fvDh KqQ̎1AQ6#N;W^$hH^Ե @Vѣvs;@ *pET^.fP+W5W${A8\S Ji;@m^1[ ̓DI]x\v ЀuP= En!1CK_J6ׅ$US'd Ϋ|zЌO*%! @[ǥbqL<6]|`xbPjb]TW!=gҭDa"QOE?+Y\W+r\W+r\W+r_{'|$ğ=_|O|I/>{(W3J0>]xlcXS4F|мU4O,y0J70#* T%ͼgq/}Yn/ SH)SkqdM4Ml?p# 2f!x &pIWo˔P2V&I("@T'%[ Fim@\k%]%n@,Z](Vb  W*rժ ,|Ӝ6'h%U HYlJRcmq¡P \^*p!I[ƒ'g߿S@҈$ei)̂i.Vt"pY"#B<}NZN I:DpLy8,+9K[H5+Bƨ*x$``h4\Pk¦lQB> , $ ul@ 8pE'3dU瞚L[\~iYܳ(r=8X^cldEF[q~UzyE~&£Š?Y1mGPH)Zizr jݭ$Z'xUBH" qVd(@ ED@k'=rPQ-Jyx/c9R b[wd 91J|=TnA ƚL悙=I]LXkzmp![Az0kymіB'}s?Bq#vV ANz&$càkyDZ ]?sx`U&،E;@c˰O>{&:, ̠!I+@# cl 󅠀{G@)lܔ<@=}cbH ͐@uI'C5"KmI BMhv!TTWNU3 l;;R5ʁDOE$4BI Qvqg|wͽu#d3EaHr@W$`™%d tZB!;T27 JM0ClF$y0P0@l!r@7IP@A.9'ђRLjh>ABmox` @ZY!ꚿ9]PLPM_+)ȡaQl qDFkiyNds a"%`g3|䮔ke9/Wܴ* zkdBk A ˇzcg2o6>j}}5B ɮNQݿyn"&\pb)5&*b/?:9KcMAF;Hp}xh#ϿF~>{J"m(M1# f..v<{qʣ~*}`BzVVI z``dsz#A@b={j]c(Њ 4Jt"#tF89 np asKX3wDo@l3.cLA >^XX>R VcoQ: `D>Ʊ7ى±RY` t).Sv &VQNz5t*b@R*l"pE&39·j|pCYxGE2<(gͱ+ێ#ۨ1M?8aT䮚qWw[|x[3_sCo=7ppKa*)U/rXj\6xoP#4 2@ɔGO@;up-Pr\˟zaP@S0tO ='hY@ ba,4ԮoUM j؜.j׀gK`i}\Ni -`hWDy!j|Otjf hKI HT2r]@x0L!O'ROaB + $ڸ &ɚ}P6{O|d { xWXfrd0yM8rdTcNJѦ[6ٯ$U`SEѯHrՙ4S~&!hZVq0$N ˺?.x4J]j4GDv"SSBPg3I@AI^(܋\@mG 6ߌt6-  +{Ń|Q~ã]$w\V?<@6&|p(؛XM%Kmzw{qw{2C˚?kzZ )@4='앳K=BY팖+}5f$}q"-mMx =a'ػ# 5/:6J{xXf1a%TBTdLV. utG}`v04Gn߮Oz@h9X,nv~pa *p 6'O###2e.Y~Xa<%6ܯ':D :4X]}@۬lGoNyqtt6ux/#XHTֆsHDvs.}Ck7+i#y5MNI:{\p2H1ᬔBVqOEpqF6fYU@ߏFccnYA=4dD)<kꜫs6"#.y99,G#r9G#r9G#r9{DyK  _Toc63175150{DyK  _Toc63175150{DyK  _Toc63175151{DyK  _Toc63175151{DyK  _Toc63175152{DyK  _Toc63175152{DyK  _Toc63175153{DyK  _Toc63175153{DyK  _Toc63175154{DyK  _Toc63175154{DyK  _Toc63175155{DyK  _Toc63175155{DyK  _Toc63175156{DyK  _Toc63175156{DyK  _Toc63175157{DyK  _Toc63175157{DyK  _Toc63175158{DyK  _Toc63175158{DyK  _Toc63175159{DyK  _Toc63175159{DyK  _Toc63175160{DyK  _Toc63175160{DyK  _Toc63175161{DyK  _Toc63175161{DyK  _Toc63175162{DyK  _Toc63175162{DyK  _Toc63175163{DyK  _Toc63175163{DyK  _Toc63175164{DyK  _Toc63175164{DyK  _Toc63175165{DyK  _Toc63175165{DyK  _Toc63175166{DyK  _Toc63175166{DyK  _Toc63175167{DyK  _Toc63175167{DyK  _Toc63175168{DyK  _Toc63175168{DyK  _Toc63175169{DyK  _Toc63175169{DyK  _Toc63175170{DyK  _Toc63175170{DyK  _Toc63175171{DyK  _Toc63175171{DyK  _Toc63175172{DyK  _Toc63175172{DyK  _Toc63175173{DyK  _Toc63175173{DyK  _Toc63175174{DyK  _Toc63175174{DyK  _Toc63175175{DyK  _Toc63175175{DyK  _Toc63175176{DyK  _Toc63175176{DyK  _Toc63175177{DyK  _Toc63175177{DyK  _Toc63175178{DyK  _Toc63175178{DyK  _Toc63175179{DyK  _Toc63175179{DyK  _Toc63175180{DyK  _Toc63175180{DyK  _Toc63175181{DyK  _Toc63175181{DyK  _Toc63175182{DyK  _Toc63175182{DyK  _Toc63175183{DyK  _Toc63175183{DyK  _Toc63175184{DyK  _Toc63175184{DyK  _Toc63175185{DyK  _Toc63175185{DyK  _Toc63175186{DyK  _Toc63175186{DyK  _Toc63175187{DyK  _Toc63175187{DyK  _Toc63175188{DyK  _Toc63175188{DyK  _Toc63175189{DyK  _Toc63175189{DyK  _Toc63175190{DyK  _Toc63175190{DyK  _Toc63175191{DyK  _Toc63175191{DyK  _Toc63175192{DyK  _Toc63175192{DyK  _Toc63175193{DyK  _Toc63175193{DyK  _Toc63175194{DyK  _Toc63175194{DyK  _Toc63175195{DyK  _Toc63175195{DyK  _Toc63175196{DyK  _Toc63175196{DyK  _Toc63175197{DyK  _Toc63175197{DyK  _Toc63175198{DyK  _Toc63175198{DyK  _Toc63175199{DyK  _Toc63175199{DyK  _Toc63175200{DyK  _Toc63175200{DyK  _Toc63175201{DyK  _Toc63175201{DyK  _Toc63175202{DyK  _Toc63175202{DyK  _Toc63175203{DyK  _Toc63175203{DyK  _Toc63175204{DyK  _Toc63175204{DyK  _Toc63175205{DyK  _Toc63175205{DyK  _Toc63175206{DyK  _Toc63175206{DyK  _Toc63175207{DyK  _Toc63175207{DyK  _Toc63175208{DyK  _Toc63175208{DyK  _Toc63175209{DyK  _Toc63175209{DyK  _Toc63175210{DyK  _Toc63175210{DyK  _Toc63175211{DyK  _Toc63175211{DyK  _Toc63175212{DyK  _Toc63175212{DyK  _Toc63175213{DyK  _Toc63175213{DyK  _Toc63175214{DyK  _Toc63175214{DyK  _Toc63175215{DyK  _Toc63175215{DyK  _Toc63175216{DyK  _Toc63175216{DyK  _Toc63175217{DyK  _Toc63175217{DyK  _Toc63175218{DyK  _Toc63175218{DyK  _Toc63175219{DyK  _Toc63175219{DyK  _Toc63175220{DyK  _Toc63175220{DyK  _Toc63175221{DyK  _Toc63175221{DyK  _Toc63175222{DyK  _Toc63175222{DyK  _Toc63175223{DyK  _Toc63175223{DyK  _Toc63175224{DyK  _Toc63175224{DyK  _Toc63175225{DyK  _Toc63175225{DyK  _Toc63175226{DyK  _Toc63175226{DyK  _Toc63175227{DyK  _Toc63175227{DyK  _Toc63175228{DyK  _Toc63175228{DyK  _Toc63175229{DyK  _Toc63175229{DyK  _Toc63175230{DyK  _Toc63175230{DyK  _Toc63175231{DyK  _Toc63175231{DyK  _Toc63175232{DyK  _Toc63175232{DyK  _Toc63175233{DyK  _Toc63175233{DyK  _Toc63175234{DyK  _Toc63175234{DyK  _Toc63175235{DyK  _Toc63175235{DyK  _Toc63175236{DyK  _Toc63175236{DyK  _Toc63175237{DyK  _Toc63175237{DyK  _Toc63175238{DyK  _Toc63175238{DyK  _Toc63175239{DyK  _Toc63175239{DyK  _Toc63175240{DyK  _Toc63175240{DyK  _Toc63175241{DyK  _Toc63175241{DyK  _Toc63175242{DyK  _Toc63175242{DyK  _Toc63175243{DyK  _Toc63175243{DyK  _Toc63175244{DyK  _Toc63175244{DyK  _Toc63175245{DyK  _Toc63175245{DyK  _Toc63175246{DyK  _Toc63175246{DyK  _Toc63175247{DyK  _Toc63175247{DyK  _Toc63175248{DyK  _Toc63175248{DyK  _Toc63175249{DyK  _Toc63175249{DyK  _Toc63175250{DyK  _Toc63175250{DyK  _Toc63175251{DyK  _Toc63175251{DyK  _Toc63175252{DyK  _Toc63175252{DyK  _Toc63175253{DyK  _Toc63175253{DyK  _Toc63175254{DyK  _Toc63175254{DyK  _Toc63175255{DyK  _Toc63175255{DyK  _Toc63175256{DyK  _Toc63175256{DyK  _Toc63175257{DyK  _Toc63175257{DyK  _Toc63175258{DyK  _Toc63175258{DyK  _Toc63175259{DyK  _Toc63175259{DyK  _Toc63175260{DyK  _Toc63175260{DyK  _Toc63175261{DyK  _Toc63175261{DyK  _Toc63175262{DyK  _Toc63175262{DyK  _Toc63175263{DyK  _Toc63175263{DyK  _Toc63175264{DyK  _Toc63175264{DyK  _Toc63175265{DyK  _Toc63175265{DyK  _Toc63175266{DyK  _Toc63175266{DyK  _Toc63175267{DyK  _Toc63175267{DyK  _Toc63175268{DyK  _Toc63175268{DyK  _Toc63175269{DyK  _Toc63175269{DyK  _Toc63175270{DyK  _Toc63175270{DyK  _Ref62479923DyK yK 0http://pd.iem.at/iemlibDyK http://iem.at/~musil/iemlib/yK :http://iem.at/~musil/iemlib/{DyK  _Ref62547790{DyK  _Ref625478619 iH@H Standard$dha$CJ_HaJmHsHtHJ@J berschrift 1$ & Fx@& 5CJ\Z@Z berschrift 2$ & F<@&5CJ\]^JaJ^^ berschrift 3$ & F<@&5CJOJQJ\^JaJ>> berschrift 4$@& 5CJ\NN berschrift 5 <@&56CJ\]aJH@H berschrift 6 <@&5CJ\aJ:: berschrift 7 <@&@@ berschrift 8 <@&6]N N berschrift 9 <@&CJOJQJ^JaJBA@B Absatz-Standardschriftart.B. Textkrper$a$0 @0 Fuzeile  p#$)@$ Seitenzahl@@"@ Kopfzeile p#dhmH sH DP@2D Textkrper 2dh5CJ\mH sH N>BN Titel$<@&a$5CJ KHOJQJ\^JaJ HJRH Untertitel$<@&a$56OJQJ^J.U@a. Hyperlink >*B*ph@V@q@ BesuchterHyperlink >*B* ph66 Verzeichnis 3 ^H@H Verzeichnis 1h5;OJQJ\aJ8@8 Verzeichnis 25\66 Verzeichnis 4 ^66 Verzeichnis 5 ^6@6 Verzeichnis 6 ^66 Verzeichnis 7 ^66 Verzeichnis 8 ^66 Verzeichnis 9 ^FF Formel ! 9!7d8xx^7OJQJ4"4 Funotentext"CJaJ2&@12 FunotenzeichenH*8QB8 Textkrper 3$$a$6]FCRF Textkrper-Einzug%|^`|^Rb^ Textkrper-Einzug 2&$d8^a$CJOJQJ^JHSrH Textkrper-Einzug 3'$^a$P"P Beschriftung($xxa$5CJOJQJ\aJ4+4 Endnotentext)CJaJ2*@2 EndnotenzeichenH*P^@P Standard (Web)+$ddw[$a$mH sH XX berschrift ,$x*$5$7$8$9DH$CJOJQJaJ:/: Liste-*$5$7$8$9DH$CJaJPP Tabellen Inhalt. $*$5$7$8$9DH$CJaJHH Tabellen berschrift/$a$56HH Rahmeninhalt0*$5$7$8$9DH$CJaJHH Verzeichnis1 $*$5$7$8$9DH$CJaJjOj Horizontale Linie-2 $&d*$5$7$8$9DH$PCJ aJZ2Z WW-Textkrper 23*$5$7$8$9DH$5CJaJmH sH RBR WW-Textkrper 34*$5$7$8$9DH$ 6CJaJrRr WW-Textkrper-Einzug 2#5d8*$5$7$8$9DH$^CJOJQJaJdbd WW-Textkrper-Einzug 36*$5$7$8$9DH$^CJaJ.Oq. WW8Num9z0 OJQJkH*((@( Zeilennummer\::@G+޷I #lV\8pR&[Ů/d&'l SU}3_ i [ C " {]M@"nP4! NZ+{ !!"q""]##)$$%%%Y&&=''*((3))#**++,, --.w.//0m00411C22$33'44555p66p77l88u99w::::::&;3;4;5;6;7;8;9;:;;;<;=;H;2?@@@@AMAAABBCTCzCCDND|DDDD,EFF#F1F^FoFGGGGGHHCHHHHHHI J>JJJJKAKBKaKKLVLLLLLMOMvMMMM-NLNoNzNNNNNNN,OVOyOOPPQ`QxQQQR3R4R5RlR}R7TLTuTTTT!UOUtUuUvUUUUU$VZVVV W W WWNWWWW5XxXXYBYY]1]}]]^^>^^^^_ _L_]_aaab4brbbbb$cTcccd4dcdddddffffFggggg hhhhhhhDiEiuiiiikl>llllllm@mAmrmmmmpppDq\qqqqrrrr3rcrrrtttu.uSu~uuuuv3vtvvx$xNxxxxx*yOyPyyyyz | |J|||||&}K}L}M}N}O}P}}}}~πSk@pބ#;`߅@1[݈7\]^_ʉ4EToٌ*+,Mƍ:Rxϑ /Qyߓ$<]K\0z˘ A|Ht̚Gstuv<Q5Ms&jß'J|}QRjȢGtأ*;;qrͥޥ1_/G,=.F˪̪ ۫^Ǭج9QŮƮ[аKձ234Lvw³ӳĴ$WXvԵǶԶ+F[ݷ޷߷%S۸ 78rYtʽ9`˾Lgȿɿ.?!P?s+<CT 01ev:Rv Jbw,kl8Mr\(9 5Vn12NOHIJ_C,A _):Uj_p4Lr->>S @tM *+pz$1?K>3d|%2@L[l7TO-E%jijklm*+^oj'5Ap1B>w7rBr~(gCmAop*W* g      H Y  $D[\.PQ6q!j5xU{K)|U4YfQ b7L@_Q1q T   5!!!!"_""""" # ##t#J$_$$$%d%%%&C&&&''(';'<'''((()K)m)) *&*h****+%+---.*.k...../x0000000011$131X111111-2.2h2y2B555556778-8N888849N9_9o99 :':(:l:}:"<7<f<~<<<<<< ==+=s=t=====>>_>p>X?m????"@U@h@w@@@@@AAuCCCC(DfDDDEKEqErEEEFFFGG'G7GEGGGG+H^HlHmHnHHH[KpKKKKKLLLaL|LLLLM)MM-NcNNNOCO{OXPsPPPPP7QHQSTeT}TTTUfUUU2VkVlVVVVVVPWWW X\XXXXXX Y Y YYYYY3Y4Y7Y8Y9Y:Y;Y;0>;`0>;0>; 00@% 0@% 0@0@0@0@% 0@% 0@0@% 0@% 0@0@0@0@% 0@% 0@% 0@0@0@ 0 0FFX0$F02F02F`02F02F02F02F02F02F02F02F02F202FX0$F0H0H0H0H0H0H0H0H0H20H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H0H20HX0$FX0$FX0$F0N0N( 0N( 0N( 0N0N0N0N0N0N0N0N0N0N20NX0$FX0$F06R06R06R06R06R06R06R06R06R06R206RX0$FX0$FX0$FX0$FX0$FX0$FX0$FX0$FX0$FX0$F0V0V0V0V) 0V) 0V( 0V) 0V) 0V) 0V) 0V) 0V) 0V0V0V0V0V0V0V0V0V0V0V0V20VX0$F0!_0!_0!_0!_0!_0!_0!_0!_0!_0!_0!_0!_0!_0!_0!_0!_0!_0!_20!_X0$F0d0d0d0d0d0d0d0d0d0d0d0d0d0d20d0d0d20dX0$FX0$FX0$F0i0i0i0i0i0i0i0i0i0i0i20iX0$FX0$FX0$F0m0m0m0m0m0m0m0m0m0m20mX0$FX0$FX0$FX0$FX0$F0dr0dr0dr0dr0dr0dr0dr0dr0dr0dr20drX0$FX0$FX0$F04v04v04v04v04v04v04v04v04v04v204vX0$FX0$FX0$F0y0y0y0y0y0y0y0y0y0y20yX0$FX0$FX0$FX0$FX0$FX0$FX0$F0}0}0}0}0}0}0}0}0}0}20}X0$FX0$FX0$F0q0q0q0q0q0q0q0q0q0q20qX0$FX0$FX0$F0A0A0A0A0A0A0A0A0A0A20AX0$FX0$FX0$FX0$FX0$FX0$F00000000`2020X0$FX0$FX0$FX0$F0Ǎ0Ǎ0Ǎ0Ǎ0Ǎ0Ǎ0Ǎ0Ǎ20Ǎ 0FF20X0X0X0X00z0z0z0z0z0z0z0z0z0z`20z20z 0FF20X00000000000000000000020X0X0X00w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w0w20wX00~0~0~0~0~0~0~0~0~0~0~0~0~0~0~20~X0000000020 0FFX0s00000000`0000000020X0s00000020X0s0ͪ0ͪ0ͪ0ͪ0ͪ0ͪ20ͪX0s000000020X0s0Ǯ0Ǯ0Ǯ0Ǯ0Ǯ0Ǯ0Ǯ0Ǯ0Ǯ0Ǯ20ǮX0s0000000020X0s0x0x0x0x0x0x0x20x 0 0YY20wX0w0000000000`000000000020X0w09090909090909090909209X0wX0w00000020X0w0ʿ0ʿ0ʿ0ʿ0ʿ0ʿ20ʿX0w0000000000000020X0w00000020X0w00000020X0w020202020202202X0wX0w000000020X0w0000000020X0w0m0m0m0m0m0m0m0m0m0m0m0m20mX0w00000000020 0YY203X030P0P`0P0P0P0P0P0P0P0P20PX03000000000020X03000000000020X0300000020 0YY20X000000000000`0000000020X00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,X0X0X0000000000000000000020 0YY`2020X0000000000000020X0000000020X0X0X00000000020X000000000000000020X00,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,`20,20, 0YY20X000, 0, 0, 0000000000000000020X00000000000000000020X0`0q0q0q* 0q* 0q* 0q0q0q0q0q0q0q0q0q0q0q20q 0YY20 X0 0 0 0 0 0 0 0 % 0  % 0  % 0  % 0  0 0 % 0  % 0 % 0 % 0 0 0 0 % 0 % 0 % 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 20 X0 0000000000000000000000000000000020X0 `0"0"0"0"0"0"0"0"0"0"0"0"0"0"0"0"20" 0YY20)'X0)'0='0='0='0='0='0='0='0='0='0='0='0='0='20='X0)'0*0*0*0*0*0*0*0*0*20*X0)'0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.20.X0)'0/20/20/2% 0/2% 0/2% 0/20/20/20/20/20/20/20/20/20/20/20/20/20/20/20/220/2X0)'0):0):0):0):0):0):0):0):0):0):0):0):0):0):0):0):0):0):0):0):20):X0)'0>0>0>0>0>0>0>0>0>0>0>0>0>20>X0)'0@0@0@0@0@0@0@0@0@0@0@0@20@X0)'0sE0sE0sE0sE0sE0sE0sE0sE0sE0sE0sE0sE0sE0sE0sE20sEX0)'X0)'0oH0oH0oH0oH0oH0oH0oH0oH0oH0oH0oH0oH0oH0oH20oHX0)'0L0L+ 0L+ 0L+ 0L+ 0L+ 0L+ 0L+ 0L0L0L0L0L0L20LX0)'0P0P0P0P0P0P0P0P0P0P0P0P0P`0P0P20P0P 00V 0V 0V0V 0V0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0@0 0000::HH;;;;;;ffffff??????zzzzzz\\\\\\U 2 - #  Uas9@+N B!S"I#$~%&~'()*+,./:0:1r23456789: <u=>CKFSZgfnJwWNJPZS Hu";,6>EMX]a  "%(+.036;>ACGJMPS M&/7>E,IKTQ,T}W\b$hmr~z 1+/uq3v%L?T)Ljj> )L!&',/6:N>ACELPcSeY\]a^`a    !#$&')*,-/1245789:<=?@BDEFHIKLNOQRTUaQSr5PRSUt3]xz{}.013Rn$?Z\]_~    4 a | ~   I d f g i  ; V X Y [ z # > @ A C b    " A r 4f[vxy{ <WZ[]|,GJKMl:=>@_ "A6g  -^y|}Mhkln/JMNPo.124S!@   ,v'o -HKLNm9`{~9TWXZy %()+Jy Z u x y { !!!!%!d!!!!!!!""""%"P"k"n"o"q""""""""<#W#Z#[#]#|#######$#$&$'$)$H$$$$$$$$%%%%;%b%}%%%%%%%%%% &8&S&V&W&Y&x&&&&&&&'7':';'='\''''''' ($('(((*(I((((((()-)0)1)3)R)))))))** *!*#*B********++++:+y+++++++,,,,;,^,y,|,},,,,- - - -,-r-------....9.V.q.t.u.w....///"/k//////////00L0g0j0k0m000000011.1112141S1111111"2=2@2A2C2b222222233!3"3$3C33333334!4$4%4'4F444444444555$5k555555555556O6j6m6n6p6666666 7O7j7m7n7p77777778K8f8i8j8l8888888 9T9o9r9s9u9999999:V:q:t:u:w:::::::;;;u?????@MMM#i=iAi\ 4X%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%TX%T̕XTX<CE !4!!4l,2$wF?Ԍwߥg@(  H  #  B S  ?\D%4 _Ref50911613 _Hlt50715154 _Hlt50715163 _Toc62533638 _Toc63175150 _Toc62533639 _Toc63175151 _Toc62533640 _Toc63175152 _Toc62533641 _Toc63175153 _Toc62533642 _Toc63175154 _Toc62533643 _Toc63175155 _Toc62533644 _Toc63175156 _Toc62533645 _Toc63175157 _Toc62533646 _Toc63175158 _Toc62533647 _Toc63175159 _Toc62533648 _Toc63175160 _Toc62533649 _Toc63175161 _Toc62533650 _Toc63175162 _Toc62533651 _Toc63175163 _Toc62533652 _Toc63175164 _Toc62533653 _Toc63175165 _Toc62533654 _Toc63175166 _Toc62533655 _Toc63175167 _Toc62533656 _Toc63175168 _Toc62533657 _Toc63175169 _Toc62533658 _Toc63175170 _Toc62533659 _Toc63175171 _Toc62533660 _Toc63175172 _Toc62533661 _Toc63175173 _Toc62533662 _Toc63175174 _Toc62533663 _Toc63175175 _Toc62533664 _Toc63175176 _Toc62533665 _Toc63175177 _Toc62533666 _Toc63175178 _Toc62533667 _Toc63175179 _Toc62533668 _Toc63175180 _Toc62533669 _Toc63175181 _Toc62533670 _Toc63175182 _Toc62533671 _Toc63175183 _Toc62533672 _Toc63175184 _Toc62533673 _Toc63175185 _Toc62533674 _Toc63175186 _Toc62533675 _Toc63175187 _Toc62533676 _Toc63175188 _Toc62533677 _Toc63175189 _Toc62533678 _Toc63175190 _Toc62533679 _Toc63175191 _Toc62533680 _Toc63175192 _Toc62533681 _Toc63175193 _Toc62533682 _Toc63175194 _Toc62533683 _Toc63175195 _Toc62533684 _Toc63175196 _Toc62533685 _Toc63175197 _Toc62533686 _Toc63175198 _Toc62533687 _Toc63175199 _Toc62533688 _Toc63175200 _Toc62533689 _Toc63175201 _Toc62533690 _Toc63175202 _Toc62533691 _Toc63175203 _Toc62533692 _Toc63175204 _Toc62533693 _Toc63175205 _Toc62533694 _Toc63175206 _Toc62533695 _Toc63175207 _Toc62533696 _Toc63175208 _Toc62533697 _Toc63175209 _Toc62533698 _Toc63175210 _Toc62533699 _Toc63175211 _Toc62533700 _Toc63175212 _Toc62533701 _Toc63175213 _Toc62533702 _Toc63175214 _Toc62533703 _Toc63175215 _Toc62533704 _Toc63175216 _Toc62533705 _Toc63175217 _Toc62533706 _Toc63175218 _Toc62533707 _Toc63175219 _Toc62533708 _Toc63175220 _Toc62533709 _Toc63175221 _Toc62533710 _Toc63175222 _Toc62533711 _Toc63175223 _Toc62533712 _Toc63175224 _Toc62533713 _Toc63175225 _Toc62533714 _Toc63175226 _Toc62533715 _Toc63175227 _Toc62533716 _Toc63175228 _Toc62533717 _Toc63175229 _Toc62533718 _Toc63175230 _Toc62533719 _Toc63175231 _Toc62533720 _Toc63175232 _Toc62533721 _Toc63175233 _Toc62533722 _Toc63175234 _Toc62533723 _Toc63175235 _Toc62533724 _Toc63175236 _Toc62533725 _Toc63175237 _Toc62533726 _Toc63175238 _Toc62533727 _Toc63175239 _Toc62533728 _Toc63175240 _Toc62533729 _Toc63175241 _Toc62533730 _Toc63175242 _Toc62533731 _Toc63175243 _Toc62533732 _Hlt63162912 _Toc63175244 _Toc62533733 _Toc63175245 _Toc62533734 _Toc63175246 _Toc62533735 _Toc63175247 _Toc62533736 _Toc63175248 _Toc62533737 _Toc63175249 _Toc62533738 _Toc63175250 _Toc62533739 _Toc63175251 _Toc62533740 _Toc63175252 _Toc62533741 _Toc63175253 _Toc62533742 _Toc63175254 _Toc62533743 _Toc63175255 _Toc62533744 _Toc63175256 _Toc62533745 _Toc63175257 _Toc62533746 _Toc63175258 _Toc62533747 _Toc63175259 _Toc62533748 _Toc63175260 _Toc62533749 _Toc63175261 _Toc62533750 _Toc63175262 _Toc62533751 _Toc63175263 _Toc62533752 _Toc63175264 _Toc62533753 _Toc63175265 _Toc62533754 _Toc63175266 _Toc62533755 _Toc63175267 _Toc62533756 _Toc63175268 _Toc62533757 _Toc63175269 _Toc62533758 _Hlt63162835 _Hlt63162935 _Hlt63162996 _Toc63175270 _Ref62479923 _Hlt62547721 _Ref62480290 _Hlt62480301 _Hlt62538222 _Ref62547790 _Ref62480424 _Ref62547861:=;=;=;@@FF#F#F1F1FHHNNNNNN4R5RuUvUUUUUUUUU$V$VZVZVVVVV _ _ddEiEiuiuiiiAmAmrmrmmmrr3r3rcrcruuvv3v3vPyPyyyyyP}P}}}}}@@pp@@__ʉʉ,,MMǍǍ //QQyyvv}}rr̪̪ƮƮwwXXvv88ɿɿ11ll22OO++++pp    ""('('<'<'**...2.2(:(:>>@@rErEnHnHLLPPVVVVVVVPWPWPWPWWW\@@  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~@@@@@@@:=;G;G;@@"F"F0F0F]F]FHHNNNNNNkRkRUUUUUUUU#V#VYVYVVVVVWWK_K_ddtitiiiiiqmqmmmmm2r2rbrbrrrvv2v2vsvsvyyyyyy}}}}}}??oo??ɉɉ33LLōō ..PPxxJJ))̥̥++ ƬƬԱԱuuӵӵqq--**BBdd''MM((^^,,oo ZZ]]00  G G  # #:':'''++..g2g2k:k:^>^>AAEEHHMM6Q6QVVVVVVOWPWPWWW XXX\5S]{1n?] a  I g ; Y # A  r f[y<[,K> g ^}Ml/N2 vo-L`9X )yZ y !d!!!"P"o"""<#[###$'$$$$%b%%%%8&W&&&';''' ((((()1)))*!****+y+++,^,},, -r---.V.u../k////L0k00012111"2A2223"3334%44445k5555O6n666O7n777K8j888T9s999V:u:::;;[X\XXXY Y2Y4Y4Y6Y6Y7Y7Y8YJYLYVYWYXY`YcYcYeYpYqYYYYYYYYYYYYYYZ,Z-Z;Z _Toc6317516078 _Toc6317515972 _Toc631751587, _Toc631751577& _Toc631751567  _Toc631751557 _Toc631751547 _Toc631751537 _Toc631751527 _Toc631751517 _Toc63175150R ...\..\..\Noisternig\Arbeit\iem_schriftzug.jpg  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Root Entry F ԍData X@1TableNWordDocumentίSummaryInformation(DocumentSummaryInformation8(CompObjjObjectPool`>;`>;  FMicrosoft Word-Dokument MSWordDocWord.Document.89q