pax_global_header00006660000000000000000000000064143001504760014512gustar00rootroot0000000000000052 comment=cf4dc673e9fb74245e531e16facae90594216ecc upp-0.2.0/000077500000000000000000000000001430015047600123155ustar00rootroot00000000000000upp-0.2.0/.gitignore000066400000000000000000000000161430015047600143020ustar00rootroot00000000000000.DS_Store testupp-0.2.0/frnd.pd000066400000000000000000000003161430015047600135730ustar00rootroot00000000000000#N canvas 0 22 450 300 10; #X obj 64 37 inlet; #X obj 65 73 urnd; #X obj 64 102 * 2; #X obj 64 130 - 1; #X obj 62 161 outlet; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 3 0 4 0; upp-0.2.0/grnd.pd000066400000000000000000000027171430015047600136030ustar00rootroot00000000000000#N canvas 341 168 380 515 10; #X obj 45 91 inlet; #X text 143 240 S; #X obj 142 209 *; #X obj 108 209 *; #X obj 108 238 +; #X obj 108 285 log; #X obj 108 308 /; #X obj 108 328 * -2; #X obj 108 349 sqrt; #X obj 45 379 *; #X obj 45 468 outlet; #X obj 45 114 t b b; #X text 28 13 deliver normally distributed random number with unit standard deviation and zero mean; #X obj 45 142 urnd; #X obj 45 173 t a a a; #X obj 135 174 t a a; #X obj 135 143 urnd; #X obj 108 264 t a a; #X text 29 43 Box-Muller transformation; #X obj 45 292 cos; #X obj 45 264 * 6.28319; #X obj 225 91 inlet; #X obj 225 144 f \$1; #X obj 270 91 loadbang; #X obj 45 422 max; #X obj 45 445 min; #X text 52 396 clip the result; #X obj 74 422 * -1; #X obj 226 381 t a a; #X msg 225 202 1e+30; #X obj 225 171 select 0; #X connect 0 0 11 0; #X connect 2 0 4 1; #X connect 3 0 4 0; #X connect 4 0 17 0; #X connect 5 0 6 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 8 0 9 1; #X connect 9 0 24 0; #X connect 11 0 13 0; #X connect 11 1 16 0; #X connect 13 0 14 0; #X connect 14 0 20 0; #X connect 14 1 3 0; #X connect 14 2 3 1; #X connect 15 0 2 0; #X connect 15 1 2 1; #X connect 16 0 15 0; #X connect 17 0 5 0; #X connect 17 1 6 1; #X connect 19 0 9 0; #X connect 20 0 19 0; #X connect 21 0 22 0; #X connect 22 0 30 0; #X connect 23 0 22 0; #X connect 24 0 25 0; #X connect 25 0 10 0; #X connect 27 0 24 1; #X connect 28 0 27 0; #X connect 28 1 25 1; #X connect 29 0 28 0; #X connect 30 0 29 0; #X connect 30 1 28 0; upp-0.2.0/license.txt000066400000000000000000000533401430015047600145050ustar00rootroot00000000000000Creative Commons Legal Code Attribution-ShareAlike 3.0 Unported CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM ITS USE. License THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW IS PROHIBITED. BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF SUCH TERMS AND CONDITIONS. 1. Definitions a. "Adaptation" means a work based upon the Work, or upon the Work and other pre-existing works, such as a translation, adaptation, derivative work, arrangement of music or other alterations of a literary or artistic work, or phonogram or performance and includes cinematographic adaptations or any other form in which the Work may be recast, transformed, or adapted including in any form recognizably derived from the original, except that a work that constitutes a Collection will not be considered an Adaptation for the purpose of this License. For the avoidance of doubt, where the Work is a musical work, performance or phonogram, the synchronization of the Work in timed-relation with a moving image ("synching") will be considered an Adaptation for the purpose of this License. b. "Collection" means a collection of literary or artistic works, such as encyclopedias and anthologies, or performances, phonograms or broadcasts, or other works or subject matter other than works listed in Section 1(f) below, which, by reason of the selection and arrangement of their contents, constitute intellectual creations, in which the Work is included in its entirety in unmodified form along with one or more other contributions, each constituting separate and independent works in themselves, which together are assembled into a collective whole. A work that constitutes a Collection will not be considered an Adaptation (as defined below) for the purposes of this License. c. "Creative Commons Compatible License" means a license that is listed at https://creativecommons.org/compatiblelicenses that has been approved by Creative Commons as being essentially equivalent to this License, including, at a minimum, because that license: (i) contains terms that have the same purpose, meaning and effect as the License Elements of this License; and, (ii) explicitly permits the relicensing of adaptations of works made available under that license under this License or a Creative Commons jurisdiction license with the same License Elements as this License. d. "Distribute" means to make available to the public the original and copies of the Work or Adaptation, as appropriate, through sale or other transfer of ownership. e. "License Elements" means the following high-level license attributes as selected by Licensor and indicated in the title of this License: Attribution, ShareAlike. f. "Licensor" means the individual, individuals, entity or entities that offer(s) the Work under the terms of this License. g. "Original Author" means, in the case of a literary or artistic work, the individual, individuals, entity or entities who created the Work or if no individual or entity can be identified, the publisher; and in addition (i) in the case of a performance the actors, singers, musicians, dancers, and other persons who act, sing, deliver, declaim, play in, interpret or otherwise perform literary or artistic works or expressions of folklore; (ii) in the case of a phonogram the producer being the person or legal entity who first fixes the sounds of a performance or other sounds; and, (iii) in the case of broadcasts, the organization that transmits the broadcast. h. "Work" means the literary and/or artistic work offered under the terms of this License including without limitation any production in the literary, scientific and artistic domain, whatever may be the mode or form of its expression including digital form, such as a book, pamphlet and other writing; a lecture, address, sermon or other work of the same nature; a dramatic or dramatico-musical work; a choreographic work or entertainment in dumb show; a musical composition with or without words; a cinematographic work to which are assimilated works expressed by a process analogous to cinematography; a work of drawing, painting, architecture, sculpture, engraving or lithography; a photographic work to which are assimilated works expressed by a process analogous to photography; a work of applied art; an illustration, map, plan, sketch or three-dimensional work relative to geography, topography, architecture or science; a performance; a broadcast; a phonogram; a compilation of data to the extent it is protected as a copyrightable work; or a work performed by a variety or circus performer to the extent it is not otherwise considered a literary or artistic work. i. "You" means an individual or entity exercising rights under this License who has not previously violated the terms of this License with respect to the Work, or who has received express permission from the Licensor to exercise rights under this License despite a previous violation. j. "Publicly Perform" means to perform public recitations of the Work and to communicate to the public those public recitations, by any means or process, including by wire or wireless means or public digital performances; to make available to the public Works in such a way that members of the public may access these Works from a place and at a place individually chosen by them; to perform the Work to the public by any means or process and the communication to the public of the performances of the Work, including by public digital performance; to broadcast and rebroadcast the Work by any means including signs, sounds or images. k. "Reproduce" means to make copies of the Work by any means including without limitation by sound or visual recordings and the right of fixation and reproducing fixations of the Work, including storage of a protected performance or phonogram in digital form or other electronic medium. 2. Fair Dealing Rights. Nothing in this License is intended to reduce, limit, or restrict any uses free from copyright or rights arising from limitations or exceptions that are provided for in connection with the copyright protection under copyright law or other applicable laws. 3. License Grant. Subject to the terms and conditions of this License, Licensor hereby grants You a worldwide, royalty-free, non-exclusive, perpetual (for the duration of the applicable copyright) license to exercise the rights in the Work as stated below: a. to Reproduce the Work, to incorporate the Work into one or more Collections, and to Reproduce the Work as incorporated in the Collections; b. to create and Reproduce Adaptations provided that any such Adaptation, including any translation in any medium, takes reasonable steps to clearly label, demarcate or otherwise identify that changes were made to the original Work. For example, a translation could be marked "The original work was translated from English to Spanish," or a modification could indicate "The original work has been modified."; c. to Distribute and Publicly Perform the Work including as incorporated in Collections; and, d. to Distribute and Publicly Perform Adaptations. e. For the avoidance of doubt: i. Non-waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme cannot be waived, the Licensor reserves the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; ii. Waivable Compulsory License Schemes. In those jurisdictions in which the right to collect royalties through any statutory or compulsory licensing scheme can be waived, the Licensor waives the exclusive right to collect such royalties for any exercise by You of the rights granted under this License; and, iii. Voluntary License Schemes. The Licensor waives the right to collect royalties, whether individually or, in the event that the Licensor is a member of a collecting society that administers voluntary licensing schemes, via that society, from any exercise by You of the rights granted under this License. The above rights may be exercised in all media and formats whether now known or hereafter devised. The above rights include the right to make such modifications as are technically necessary to exercise the rights in other media and formats. Subject to Section 8(f), all rights not expressly granted by Licensor are hereby reserved. 4. Restrictions. The license granted in Section 3 above is expressly made subject to and limited by the following restrictions: a. You may Distribute or Publicly Perform the Work only under the terms of this License. You must include a copy of, or the Uniform Resource Identifier (URI) for, this License with every copy of the Work You Distribute or Publicly Perform. You may not offer or impose any terms on the Work that restrict the terms of this License or the ability of the recipient of the Work to exercise the rights granted to that recipient under the terms of the License. You may not sublicense the Work. You must keep intact all notices that refer to this License and to the disclaimer of warranties with every copy of the Work You Distribute or Publicly Perform. When You Distribute or Publicly Perform the Work, You may not impose any effective technological measures on the Work that restrict the ability of a recipient of the Work from You to exercise the rights granted to that recipient under the terms of the License. This Section 4(a) applies to the Work as incorporated in a Collection, but this does not require the Collection apart from the Work itself to be made subject to the terms of this License. If You create a Collection, upon notice from any Licensor You must, to the extent practicable, remove from the Collection any credit as required by Section 4(c), as requested. If You create an Adaptation, upon notice from any Licensor You must, to the extent practicable, remove from the Adaptation any credit as required by Section 4(c), as requested. b. You may Distribute or Publicly Perform an Adaptation only under the terms of: (i) this License; (ii) a later version of this License with the same License Elements as this License; (iii) a Creative Commons jurisdiction license (either this or a later license version) that contains the same License Elements as this License (e.g., Attribution-ShareAlike 3.0 US)); (iv) a Creative Commons Compatible License. If you license the Adaptation under one of the licenses mentioned in (iv), you must comply with the terms of that license. If you license the Adaptation under the terms of any of the licenses mentioned in (i), (ii) or (iii) (the "Applicable License"), you must comply with the terms of the Applicable License generally and the following provisions: (I) You must include a copy of, or the URI for, the Applicable License with every copy of each Adaptation You Distribute or Publicly Perform; (II) You may not offer or impose any terms on the Adaptation that restrict the terms of the Applicable License or the ability of the recipient of the Adaptation to exercise the rights granted to that recipient under the terms of the Applicable License; (III) You must keep intact all notices that refer to the Applicable License and to the disclaimer of warranties with every copy of the Work as included in the Adaptation You Distribute or Publicly Perform; (IV) when You Distribute or Publicly Perform the Adaptation, You may not impose any effective technological measures on the Adaptation that restrict the ability of a recipient of the Adaptation from You to exercise the rights granted to that recipient under the terms of the Applicable License. This Section 4(b) applies to the Adaptation as incorporated in a Collection, but this does not require the Collection apart from the Adaptation itself to be made subject to the terms of the Applicable License. c. If You Distribute, or Publicly Perform the Work or any Adaptations or Collections, You must, unless a request has been made pursuant to Section 4(a), keep intact all copyright notices for the Work and provide, reasonable to the medium or means You are utilizing: (i) the name of the Original Author (or pseudonym, if applicable) if supplied, and/or if the Original Author and/or Licensor designate another party or parties (e.g., a sponsor institute, publishing entity, journal) for attribution ("Attribution Parties") in Licensor's copyright notice, terms of service or by other reasonable means, the name of such party or parties; (ii) the title of the Work if supplied; (iii) to the extent reasonably practicable, the URI, if any, that Licensor specifies to be associated with the Work, unless such URI does not refer to the copyright notice or licensing information for the Work; and (iv) , consistent with Ssection 3(b), in the case of an Adaptation, a credit identifying the use of the Work in the Adaptation (e.g., "French translation of the Work by Original Author," or "Screenplay based on original Work by Original Author"). The credit required by this Section 4(c) may be implemented in any reasonable manner; provided, however, that in the case of a Adaptation or Collection, at a minimum such credit will appear, if a credit for all contributing authors of the Adaptation or Collection appears, then as part of these credits and in a manner at least as prominent as the credits for the other contributing authors. For the avoidance of doubt, You may only use the credit required by this Section for the purpose of attribution in the manner set out above and, by exercising Your rights under this License, You may not implicitly or explicitly assert or imply any connection with, sponsorship or endorsement by the Original Author, Licensor and/or Attribution Parties, as appropriate, of You or Your use of the Work, without the separate, express prior written permission of the Original Author, Licensor and/or Attribution Parties. d. Except as otherwise agreed in writing by the Licensor or as may be otherwise permitted by applicable law, if You Reproduce, Distribute or Publicly Perform the Work either by itself or as part of any Adaptations or Collections, You must not distort, mutilate, modify or take other derogatory action in relation to the Work which would be prejudicial to the Original Author's honor or reputation. Licensor agrees that in those jurisdictions (e.g. Japan), in which any exercise of the right granted in Section 3(b) of this License (the right to make Adaptations) would be deemed to be a distortion, mutilation, modification or other derogatory action prejudicial to the Original Author's honor and reputation, the Licensor will waive or not assert, as appropriate, this Section, to the fullest extent permitted by the applicable national law, to enable You to reasonably exercise Your right under Section 3(b) of this License (right to make Adaptations) but not otherwise. 5. Representations, Warranties and Disclaimer UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 7. Termination a. This License and the rights granted hereunder will terminate automatically upon any breach by You of the terms of this License. Individuals or entities who have received Adaptations or Collections from You under this License, however, will not have their licenses terminated provided such individuals or entities remain in full compliance with those licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any termination of this License. b. Subject to the above terms and conditions, the license granted here is perpetual (for the duration of the applicable copyright in the Work). Notwithstanding the above, Licensor reserves the right to release the Work under different license terms or to stop distributing the Work at any time; provided, however that any such election will not serve to withdraw this License (or any other license that has been, or is required to be, granted under the terms of this License), and this License will continue in full force and effect unless terminated as stated above. 8. Miscellaneous a. Each time You Distribute or Publicly Perform the Work or a Collection, the Licensor offers to the recipient a license to the Work on the same terms and conditions as the license granted to You under this License. b. Each time You Distribute or Publicly Perform an Adaptation, Licensor offers to the recipient a license to the original Work on the same terms and conditions as the license granted to You under this License. c. If any provision of this License is invalid or unenforceable under applicable law, it shall not affect the validity or enforceability of the remainder of the terms of this License, and without further action by the parties to this agreement, such provision shall be reformed to the minimum extent necessary to make such provision valid and enforceable. d. No term or provision of this License shall be deemed waived and no breach consented to unless such waiver or consent shall be in writing and signed by the party to be charged with such waiver or consent. e. This License constitutes the entire agreement between the parties with respect to the Work licensed here. There are no understandings, agreements or representations with respect to the Work not specified here. Licensor shall not be bound by any additional provisions that may appear in any communication from You. This License may not be modified without the mutual written agreement of the Licensor and You. f. The rights granted under, and the subject matter referenced, in this License were drafted utilizing the terminology of the Berne Convention for the Protection of Literary and Artistic Works (as amended on September 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty of 1996, the WIPO Performances and Phonograms Treaty of 1996 and the Universal Copyright Convention (as revised on July 24, 1971). These rights and subject matter take effect in the relevant jurisdiction in which the License terms are sought to be enforced according to the corresponding provisions of the implementation of those treaty provisions in the applicable national law. If the standard suite of rights granted under applicable copyright law includes additional rights not granted under this License, such additional rights are deemed to be included in the License; this License is not intended to restrict the license of any rights under applicable law. Creative Commons Notice Creative Commons is not a party to this License, and makes no warranty whatsoever in connection with the Work. Creative Commons will not be liable to You or any party on any legal theory for any damages whatsoever, including without limitation any general, special, incidental or consequential damages arising in connection to this license. Notwithstanding the foregoing two (2) sentences, if Creative Commons has expressly identified itself as the Licensor hereunder, it shall have all rights and obligations of Licensor. Except for the limited purpose of indicating to the public that the Work is licensed under the CCPL, Creative Commons does not authorize the use by either party of the trademark "Creative Commons" or any related trademark or logo of Creative Commons without the prior written consent of Creative Commons. Any permitted use will be in compliance with Creative Commons' then-current trademark usage guidelines, as may be published on its website or otherwise made available upon request from time to time. For the avoidance of doubt, this trademark restriction does not form part of the License. Creative Commons may be contacted at https://creativecommons.org/. upp-0.2.0/note_basic.pd000066400000000000000000000007371430015047600147570ustar00rootroot00000000000000#N canvas 26 39 330 259 10; #X obj 68 129 osc~; #X obj 68 179 *~; #X obj 137 129 vline~; #X obj 68 53 t a b; #X text 142 88 attack+decay; #X text 140 147 volume envelope; #X text 30 130 sine; #X obj 68 27 inlet; #X obj 68 207 outlet~; #X obj 68 105 mtof; #X text 120 27 MIDI note in; #X msg 136 105 1 20 \, 0 800 20; #X connect 0 0 1 0; #X connect 1 0 8 0; #X connect 2 0 1 1; #X connect 3 0 9 0; #X connect 3 1 11 0; #X connect 7 0 3 0; #X connect 9 0 0 0; #X connect 11 0 2 0; upp-0.2.0/note_busvoldur.pd000066400000000000000000000022511430015047600157140ustar00rootroot00000000000000#N canvas 518 289 532 439 10; #X obj 67 35 inlet; #X obj 66 377 outlet; #X obj 66 264 delay; #X text 58 207 total duration; #X text 46 395 bang when ready; #X obj 191 179 cnv 15 300 200 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 263 228 osc~; #X obj 263 299 *~; #X obj 332 249 vline~; #X text 335 267 volume envelope; #X text 229 226 sine; #X obj 263 204 mtof; #X text 257 348 audio out; #X msg 331 212 \$2 \$3 \, 0 \$4 \$3; #X obj 105 84 t b a a; #X obj 129 113 unpack 0 0 0 0; #X obj 105 191 +; #X obj 66 191 f; #X text 66 14 bus midinote volume attack decay; #X obj 67 59 list split 1; #X msg 211 300 set \$1; #X obj 263 327 throw~ \$0-dummy; #X obj 263 390 catch~ \$0-dummy; #X text 333 194 volume \, attack+decay; #X obj 331 39 inlet; #X text 327 16 mod dummy; #X text 421 13 grrrr.org 2012; #X connect 0 0 19 0; #X connect 2 0 1 0; #X connect 6 0 7 0; #X connect 7 0 21 0; #X connect 8 0 7 1; #X connect 11 0 6 0; #X connect 13 0 8 0; #X connect 14 0 17 0; #X connect 14 1 15 0; #X connect 14 2 13 0; #X connect 15 0 11 0; #X connect 15 2 16 0; #X connect 15 3 16 1; #X connect 16 0 17 1; #X connect 17 0 2 0; #X connect 19 0 20 0; #X connect 19 1 14 0; #X connect 20 0 21 0; upp-0.2.0/note_off.pd000066400000000000000000000024561430015047600144500ustar00rootroot00000000000000#N canvas 17 23 602 485 10; #X obj 226 44 inlet; #X obj 67 404 outlet; #X obj 175 252 cnv 15 350 200 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 249 286 osc~; #X obj 249 378 *~; #X obj 371 342 vline~; #X text 368 360 volume envelope; #X text 215 284 sine; #X obj 249 265 mtof; #X text 246 425 audio out; #X obj 226 120 t b a a; #X obj 441 40 inlet; #X obj 441 207 f; #X obj 441 164 t b; #X msg 478 304 0 \$1; #X text 439 22 mod msg; #X obj 371 303 pack 0 0 0; #X obj 371 275 *; #X msg 319 303 \$2 \$3; #X obj 249 164 unpack 0 0 0 0 0 0; #X text 75 278 only once!; #X obj 441 70 list split 1; #X text 415 70 tag; #X obj 249 404 outlet~; #X text 61 20 tag=midinote volume A(ms) D(ms) S(gain) R(ms); #X text 49 424 output delay time; #X obj 67 260 upp.once; #X obj 67 378 upp.ms2s; #X connect 0 0 10 0; #X connect 3 0 4 0; #X connect 4 0 23 0; #X connect 5 0 4 1; #X connect 8 0 3 0; #X connect 10 0 26 1; #X connect 10 1 19 0; #X connect 10 2 18 0; #X connect 11 0 21 0; #X connect 12 0 14 0; #X connect 12 0 26 0; #X connect 13 0 12 0; #X connect 14 0 5 0; #X connect 16 0 5 0; #X connect 17 0 16 0; #X connect 18 0 5 0; #X connect 19 0 8 0; #X connect 19 1 17 0; #X connect 19 2 16 2; #X connect 19 3 16 1; #X connect 19 4 17 1; #X connect 19 5 12 1; #X connect 21 0 13 0; #X connect 26 0 27 0; #X connect 27 0 1 0; upp-0.2.0/pan-stereo.pd000066400000000000000000000013741430015047600147240ustar00rootroot00000000000000#N canvas 75 404 623 365 10; #X obj 53 67 inlet~; #X obj 206 66 inlet; #X obj 52 306 outlet~; #X obj 148 305 outlet~; #X obj 52 266 *~ 0; #X obj 147 266 *~ 0; #X text 200 50 -1...+1; #X obj 358 57 loadbang; #X obj 358 78 expr asin(1)/2; #X text 453 75 pi/4; #X obj 188 210 expr sin((1-$f1)*$f2); #X obj 359 209 expr sin((1+$f1)*$f2); #X text 417 27 grrrr.org 2012; #X obj 546 77 inlet; #X text 547 60 gain; #X obj 358 155 * 1; #X obj 430 157 t b a; #X connect 0 0 4 0; #X connect 0 0 5 0; #X connect 1 0 10 0; #X connect 1 0 11 0; #X connect 4 0 2 0; #X connect 5 0 3 0; #X connect 7 0 8 0; #X connect 8 0 15 0; #X connect 10 0 4 1; #X connect 11 0 5 1; #X connect 13 0 16 0; #X connect 15 0 10 1; #X connect 15 0 11 1; #X connect 16 0 15 0; #X connect 16 1 15 1; upp-0.2.0/readme.txt000066400000000000000000000010021430015047600143040ustar00rootroot00000000000000(c) 2012-22 grrrr.org http://grrrr.org/research/software/upp/ License: CC-BY-SA The Universal Polyphonic Player (short UPP) is an infrastructure for all kinds of polyphonic events – be it note-like events, other generated sounds or short grains in granular synthesis. The strengths of the system are a modular, easily extendible design, almost unlimited polyphony, ease of control, DSP load scaling and sample-accurate timing. Please refer to the tutorials folder and the UPP web page for how to get started. upp-0.2.0/spat-invd.pd000066400000000000000000000012641430015047600145520ustar00rootroot00000000000000#N canvas 88 71 570 296 10; #X obj 47 34 inlet; #X obj 47 242 outlet; #X obj 208 33 inlet; #X obj 289 140 route float; #X obj 47 74 upp._extract 5; #X obj 208 77 upp._extract 5; #X obj 47 169 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X obj 289 116 list split 1; #X obj 289 164 list append; #X obj 188 244 upp._spat upp._spat.invd \$1 \$2; #X text 54 150 synth abstraction; #X text 293 98 modifying messages must start with float; #X text 276 224 x y z bias power; #X connect 0 0 4 0; #X connect 2 0 5 0; #X connect 3 0 8 0; #X connect 4 0 6 0; #X connect 4 1 9 1; #X connect 5 0 6 1; #X connect 5 1 7 0; #X connect 6 0 1 0; #X connect 6 1 9 0; #X connect 7 0 3 0; #X connect 7 1 8 1; #X connect 8 0 9 1; upp-0.2.0/spat-mono.pd000066400000000000000000000004161430015047600145600ustar00rootroot00000000000000#N canvas 191 160 384 203 10; #X obj 39 23 inlet; #X obj 39 143 outlet; #X obj 197 144 throw~ \$1; #X obj 174 23 inlet; #X text 38 159 release; #X obj 39 77 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X connect 0 0 5 0; #X connect 3 0 5 1; #X connect 5 0 1 0; #X connect 5 1 2 0; upp-0.2.0/spat-multi.pd000066400000000000000000000026361430015047600147500ustar00rootroot00000000000000#N canvas 21 28 535 417 10; #X obj 217 255 int; #X obj 249 255 + 1; #X obj 183 254 -; #X obj 183 292 expr cos($f1*1.5708); #X obj 315 292 expr sin($f1*1.5708); #X obj 402 366 catch~ \$0-dummy; #X obj 282 367 throw~ \$0-dummy; #X obj 162 367 throw~ \$0-dummy; #X obj 186 65 inlet; #X obj 162 344 *~ 0; #X obj 282 344 *~ 0; #X msg 197 345 set \$2-\$1; #X msg 317 344 set \$2-\$1; #X obj 198 190 min; #X obj 379 62 loadbang; #X obj 379 85 f \$2; #X obj 379 107 - 0.001; #X text 46 18 multi-pan \$1... bus-basename \, \$2...number of speakers ; #X obj 198 165 max 1; #X obj 45 67 inlet; #X obj 45 94 upp._extract 1; #X obj 45 143 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X obj 45 362 outlet; #X obj 198 139 route float; #X obj 186 92 upp._extract 1; #X obj 198 214 t a a; #X obj 197 325 list append \$1; #X obj 317 324 list append \$1; #X connect 0 0 2 1; #X connect 0 0 1 0; #X connect 0 0 26 0; #X connect 1 0 27 0; #X connect 2 0 3 0; #X connect 2 0 4 0; #X connect 3 0 9 1; #X connect 4 0 10 1; #X connect 8 0 24 0; #X connect 9 0 7 0; #X connect 10 0 6 0; #X connect 11 0 7 0; #X connect 12 0 6 0; #X connect 13 0 25 0; #X connect 14 0 15 0; #X connect 15 0 16 0; #X connect 16 0 13 1; #X connect 18 0 13 0; #X connect 19 0 20 0; #X connect 20 0 21 0; #X connect 20 1 23 0; #X connect 21 0 22 0; #X connect 23 0 18 0; #X connect 24 0 21 1; #X connect 24 1 23 0; #X connect 25 0 2 0; #X connect 25 1 0 0; #X connect 26 0 11 0; #X connect 27 0 12 0; upp-0.2.0/spat-quad.pd000066400000000000000000000016371430015047600145500ustar00rootroot00000000000000#N canvas 242 387 435 422 10; #X obj 47 34 inlet; #X obj 47 357 outlet; #X obj 208 33 inlet; #X obj 47 169 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X obj 206 238 pan-stereo; #X obj 263 214 unpack; #X obj 292 334 throw~ \$1-2; #X obj 180 337 throw~ \$1-1; #X obj 206 287 pan-stereo; #X obj 293 288 pan-stereo; #X obj 205 362 throw~ \$1-3; #X obj 320 365 throw~ \$1-4; #X obj 263 111 unpack; #X obj 263 133 route float; #X obj 263 154 pack; #X obj 47 74 upp._extract 2; #X obj 208 77 upp._extract 2; #X connect 0 0 15 0; #X connect 2 0 16 0; #X connect 3 0 1 0; #X connect 3 1 4 0; #X connect 4 0 8 0; #X connect 4 1 9 0; #X connect 5 0 4 1; #X connect 5 1 8 1; #X connect 5 1 9 1; #X connect 8 0 7 0; #X connect 8 1 10 0; #X connect 9 0 6 0; #X connect 9 1 11 0; #X connect 12 0 13 0; #X connect 12 1 14 1; #X connect 13 0 14 0; #X connect 14 0 5 0; #X connect 15 0 3 0; #X connect 15 1 5 0; #X connect 16 0 3 1; #X connect 16 1 12 0; upp-0.2.0/spat-stereo.pd000066400000000000000000000011431430015047600151070ustar00rootroot00000000000000#N canvas 288 318 447 260 10; #X obj 51 30 inlet; #X obj 51 209 outlet; #X obj 208 29 inlet; #X obj 51 123 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X obj 291 209 throw~ \$1-2; #X obj 204 208 throw~ \$1-1; #X obj 204 159 pan-stereo; #X text 310 25 grrrr.org 2012; #X obj 261 105 route float; #X text 257 124 any non-float is ignored; #X obj 51 60 upp._extract 1; #X obj 208 61 upp._extract 1; #X connect 0 0 10 0; #X connect 2 0 11 0; #X connect 3 0 1 0; #X connect 3 1 6 0; #X connect 6 0 5 0; #X connect 6 1 4 0; #X connect 8 0 6 1; #X connect 10 0 3 0; #X connect 10 1 6 1; #X connect 11 0 3 1; #X connect 11 1 8 0; upp-0.2.0/spat-varbus.pd000066400000000000000000000011321430015047600151060ustar00rootroot00000000000000#N canvas 244 267 445 257 10; #X obj 51 30 inlet; #X obj 51 204 outlet; #X obj 204 29 inlet; #X text 310 25 grrrr.org 2012; #X obj 257 102 route symbol; #X text 253 121 any non-symbol is ignored; #X msg 257 155 set \$1; #X obj 313 205 catch~ \$0-dummy; #X obj 204 205 throw~ \$0-dummy; #X obj 51 141 \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X obj 51 59 upp._extract 1; #X obj 204 60 upp._extract 1; #X connect 0 0 10 0; #X connect 2 0 11 0; #X connect 4 0 6 0; #X connect 6 0 8 0; #X connect 9 0 1 0; #X connect 9 1 8 0; #X connect 10 0 9 0; #X connect 10 1 6 0; #X connect 11 0 9 1; #X connect 11 1 4 0; upp-0.2.0/spat-vbap.pd000066400000000000000000000012111430015047600145320ustar00rootroot00000000000000#N canvas 88 71 402 288 10; #X obj 47 34 inlet; #X obj 47 242 outlet; #X obj 208 33 inlet; #X obj 289 142 route float; #X obj 47 74 upp._extract 3; #X text 204 223 azimuth elevation spread; #X obj 47 169 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X obj 289 118 list split 1; #X obj 289 166 list append; #X text 54 150 synth abstraction; #X obj 164 242 upp._spat upp._spat.vbap \$1 \$2; #X obj 208 77 upp._extract 3; #X connect 0 0 4 0; #X connect 2 0 11 0; #X connect 3 0 8 0; #X connect 4 0 6 0; #X connect 4 1 10 1; #X connect 6 0 1 0; #X connect 6 1 10 0; #X connect 7 0 3 0; #X connect 7 1 8 1; #X connect 8 0 10 1; #X connect 11 0 6 1; #X connect 11 1 7 0; upp-0.2.0/syn-dirac.pd000066400000000000000000000007221430015047600145340ustar00rootroot00000000000000#N canvas 0 23 459 396 10; #X obj 37 41 inlet; #X obj 72 302 outlet~; #X obj 37 87 list split 1; #X obj 52 124 cnv 15 120 150 empty empty play_dirac 20 12 0 14 -233017 -66577 0; #X obj 313 43 inlet; #X obj 316 298 outlet; #X text 317 18 grrrr.org 2018; #X text 36 20 tag volume; #X obj 72 193 upp.dirac~; #X obj 71 156 t b a; #X msg 315 274 1; #X connect 0 0 2 0; #X connect 2 1 9 0; #X connect 8 0 1 0; #X connect 9 0 10 0; #X connect 9 1 8 0; #X connect 10 0 5 0; upp-0.2.0/syn-grain.pd000066400000000000000000000027071430015047600145570ustar00rootroot00000000000000#N canvas 95 98 617 430 10; #X obj 76 62 inlet; #X obj 227 389 outlet~; #X obj 227 364 *~; #X obj 63 389 outlet; #X obj 304 83 unpack 0 0 0 0; #X obj 76 89 list split 1; #X obj 76 118 t b b b a; #X obj 218 204 cnv 15 120 150 empty empty play_sample 20 12 0 14 -233017 -66577 0; #X obj 227 324 tabplay~; #X msg 270 287 set \$1; #X obj 227 287 f; #X obj 386 195 cnv 15 180 150 empty empty play_envelope 20 12 0 14 -233017 -66577 0; #X obj 473 252 pack 0 0 0; #X text 400 237 attack; #X text 477 237 release; #X obj 337 146 +; #X obj 63 220 +; #X text 58 243 total duration; #X text 328 63 L<<<< frequency; #X text 13 267 gain; #X text 31 280 ^; #X text 31 285 |; #X text 31 298 |; #X obj 375 406 catch~ \$0-bus; #N canvas 0 22 1314 340 50voices 0; #X obj 26 21 inlet; #X obj 1046 293 outlet; #X obj 25 56 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 25 78 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 25 100 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 25 122 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 25 144 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 25 166 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 25 188 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 25 210 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 25 232 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 25 254 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 278 56 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 278 78 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 278 100 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 278 122 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 278 144 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 278 166 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 278 188 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 278 210 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 278 232 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 278 254 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 1046 54 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 1046 76 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 1046 98 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 1046 120 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 1046 142 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 1046 164 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 1046 186 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 1046 208 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 1046 230 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 1046 252 upp.flow spat-mono \$0-bus note_alt_vol; #X text 74 20 message; #X obj 533 55 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 533 77 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 533 99 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 533 121 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 533 143 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 533 165 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 533 187 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 533 209 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 533 231 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 533 253 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 788 54 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 788 76 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 788 98 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 788 120 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 788 142 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 788 164 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 788 186 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 788 208 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 788 230 upp.flow spat-mono \$0-bus note_alt_vol; #X obj 788 252 upp.flow spat-mono \$0-bus note_alt_vol; #X text 1100 294 overflow; #X text 1198 15 grrrr.org 2012; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 12 0; #X connect 12 0 13 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 15 0 16 0; #X connect 16 0 17 0; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 20 0 21 0; #X connect 21 0 33 0; #X connect 22 0 23 0; #X connect 23 0 24 0; #X connect 24 0 25 0; #X connect 25 0 26 0; #X connect 26 0 27 0; #X connect 27 0 28 0; #X connect 28 0 29 0; #X connect 29 0 30 0; #X connect 30 0 31 0; #X connect 31 0 1 0; #X connect 33 0 34 0; #X connect 34 0 35 0; #X connect 35 0 36 0; #X connect 36 0 37 0; #X connect 37 0 38 0; #X connect 38 0 39 0; #X connect 39 0 40 0; #X connect 40 0 41 0; #X connect 41 0 42 0; #X connect 42 0 43 0; #X connect 43 0 44 0; #X connect 44 0 45 0; #X connect 45 0 46 0; #X connect 46 0 47 0; #X connect 47 0 48 0; #X connect 48 0 49 0; #X connect 49 0 50 0; #X connect 50 0 51 0; #X connect 51 0 52 0; #X connect 52 0 22 0; #X restore 47 429 pd 50voices; #X connect 5 0 10 0; #X connect 6 0 11 0; #X connect 9 0 20 0; #X connect 10 0 9 0; #X connect 11 0 12 0; #X connect 11 1 12 1; #X connect 12 0 5 0; #X connect 19 0 13 0; #X connect 20 0 7 0; upp-0.2.0/tutorials/5a-chained.pd000066400000000000000000000073601430015047600165740ustar00rootroot00000000000000#N canvas 14 28 551 520 10; #X declare -path .. -path .; #X obj 27 11 cnv 15 500 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X text 34 34 playing notes with a formant-defined timbre; #X text 406 98 to find voice patch; #X obj 380 78 declare -path .. -path .; #X text 410 14 grrrr.org \, 2012-15; #X floatatom 66 169 5 0 0 1 MIDI_note - -, f 5; #X obj 66 459 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X text 140 205 partials; #X obj 66 204 pack 0 8; #X text 70 401 midinote volume; #X obj 66 123 unpack; #X obj 66 143 spigot; #X obj 66 85 kbd; #X obj 368 453 out-mono; #N canvas 812 212 637 584 timbre 0; #X obj 90 28 inlet; #X obj 82 538 outlet; #N canvas 0 22 450 300 (subpatch) 0; #X array timbre 150 float 1; #A 0 87.6777 88.9635 89.6064 90.035 90.2493 90.8921 91.9636 92.6065 90.6779 90.8921 91.1064 91.3207 91.535 91.6064 91.6778 91.7493 91.7493 91.8564 91.9635 91.9635 92.1778 92.6064 93.0349 93.0349 89.1779 89.3922 89.8207 91.535 93.0349 93.2492 93.0349 92.6064 89.8207 88.9636 88.1065 87.2494 86.3923 85.9637 85.9637 85.9637 85.9637 85.9637 86.178 86.3923 86.6066 86.8208 87.0351 87.3029 87.5708 87.8386 88.1065 88.3743 88.6422 88.91 89.1779 89.484 89.7901 90.0962 90.4024 90.7085 91.0146 91.3207 89.3922 89.6065 90.4636 91.3207 91.535 92.8206 92.1778 92.1778 92.1778 92.1778 92.1778 92.3064 92.4349 92.5635 92.6921 92.3921 92.3921 92.6064 92.8206 93.2492 93.6778 94.642 95.6063 95.6063 92.8206 90.6779 90.4636 90.6064 90.7493 90.8921 91.3207 92.1778 88.5351 88.5351 88.5351 88.3208 88.2136 88.1065 87.7851 87.4637 87.0351 86.6066 85.5352 85.5352 85.7494 86.3923 86.8208 86.9637 87.1065 87.2494 87.2494 87.2494 87.6779 88.5351 88.9636 89.9279 90.8921 91.7493 85.1066 84.4638 84.4638 83.8209 83.8209 83.6066 83.6066 83.5352 83.4638 83.3924 83.3924 83.3209 83.2495 83.1781 83.1781 83.1781 84.0352 84.678 85.3209 85.9637 86.6066 87.2494 87.8922 88.5351 88.8208 89.1065 89.3922 89.9279 90.4636 90.6779; #X coords 0 100 149 70 300 140 1; #X restore 280 35 graph; #X floatatom 53 137 5 0 0 0 - - -, f 5; #X floatatom 171 135 5 0 0 0 - - -, f 5; #X obj 54 247 until; #X obj 54 203 f; #X obj 53 224 t a b; #X obj 52 280 f; #X obj 86 279 + 1; #X obj 67 167 t b a; #X obj 84 328 *; #X msg 108 249 1; #X obj 83 399 t a a; #X obj 83 511 pack; #X obj 115 448 dbtopow; #X obj 91 61 unpack; #X text 171 116 partials; #X text 223 35 dB; #X text 458 178 MIDI note 0...150; #X text 116 281 count partials; #X text 49 346 partial frequencies; #X text 226 424 fetch gain from table; #X obj 53 94 mtof; #X text 24 117 fundamental frq; #X obj 83 372 ftom; #X text 45 491 midinote volume; #X obj 115 425 tabread timbre; #X msg 469 222 \; timbre const 80; #X obj 565 20 bng 15 250 50 0 empty empty clear -35 7 0 10 -204786 -1 -1; #X text 222 52 70..100; #X connect 0 0 16 0; #X connect 3 0 10 0; #X connect 4 0 6 1; #X connect 5 0 8 0; #X connect 6 0 7 0; #X connect 7 0 5 0; #X connect 7 1 12 0; #X connect 8 0 9 0; #X connect 8 0 11 0; #X connect 9 0 8 1; #X connect 10 0 6 0; #X connect 10 1 11 1; #X connect 11 0 25 0; #X connect 12 0 8 1; #X connect 13 0 14 0; #X connect 13 1 27 0; #X connect 14 0 1 0; #X connect 15 0 14 1; #X connect 16 0 23 0; #X connect 16 1 4 0; #X connect 23 0 3 0; #X connect 25 0 13 0; #X connect 27 0 15 0; #X connect 29 0 28 0; #X coords 0 -1 1 1 300 155 2 280 20; #X restore 66 229 pd timbre; #X text 267 387 ---> frequency; #X text 32 245 gain; #X text 50 258 ^; #X text 50 263 |; #X text 50 276 |; #X floatatom 297 458 5 0 0 0 voices_active - -, f 5; #X obj 368 429 catch~ \$0-bus; #X obj 66 431 upp.xc 50 spat-mono \$0-bus note_alt_vol; #X connect 5 0 8 0; #X connect 8 0 14 0; #X connect 10 0 11 0; #X connect 10 1 11 1; #X connect 11 0 5 0; #X connect 12 0 10 0; #X connect 14 0 22 0; #X connect 21 0 13 0; #X connect 22 0 6 0; #X connect 22 2 20 0; upp-0.2.0/tutorials/5b-2level.pd000066400000000000000000000123601430015047600163670ustar00rootroot00000000000000#N canvas 6 22 559 693 10; #X declare -path .. -path .; #X obj 27 11 cnv 15 500 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X text 34 34 playing notes with note-dependent timbre and decay; #X text 405 98 to find voice patch; #X text 411 14 grrrr.org \, 2012-15; #X obj 378 78 declare -path .. -path .; #X floatatom 44 164 5 0 0 1 MIDI_note - -, f 5; #X obj 44 80 kbd; #X obj 44 640 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X text 118 200 partials; #N canvas 621 281 755 641 timbre+dur 0; #X obj 90 28 inlet; #X obj 83 590 outlet; #N canvas 0 22 450 300 (subpatch) 0; #X array timbre 150 float 1; #A 0 89.107 89.3213 89.5356 89.7499 89.9642 89.9642 89.9642 90.3928 90.4642 90.5357 90.6071 90.8214 91.0357 91.0357 91.3571 91.6786 91.7322 91.7857 91.8393 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 90.8214 90.6071 89.5356 88.8928 88.8928 88.8928 88.8928 89.2499 89.6071 89.9642 90.3214 90.6785 91.0357 91.25 91.4643 91.6786 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 92.1072 92.8215 93.5358 94.2501 95.5359 96.1788 97.2502 97.8931 97.8931 98.1074 98.4289 98.7503 99.1789 100.036 98.3217 94.2501 89.107 89.4285 89.7499 90.1785 90.6071 90.875 91.1428 91.4107 91.6786 92 92.3215 92.5358 92.9643 93.3929 93.8215 94.143 94.4644 94.893 95.1073 95.3216 95.643 96.1788 96.5359 96.8931 97.0359 94.2501 93.6072 90.8214 90.8214 91.25 91.6786 91.8929 92.1072 92.3215 92.5358 92.5358 92.9643 92.9643 92.9643 92.9643 92.9643 92.9643 92.9643 93.1786 93.3929 93.6072 93.8215 93.6072 92.7501 91.6786 89.9642 88.4642 88.0356 86.3212 85.8926 85.2497 84.6069 83.964 83.3211 82.8925 81.6067 80.8567 80.1067 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 78.8209 78.8209 79.0352; #X coords 0 100 149 70 400 140 1; #X restore 300 47 graph; #X floatatom 53 137 5 0 0 0 - - -, f 5; #X floatatom 171 135 5 0 0 0 - - -, f 5; #X obj 54 247 until; #X obj 54 203 f; #X obj 53 224 t a b; #X obj 52 280 f; #X obj 86 279 + 1; #X obj 67 167 t b a; #X obj 84 328 *; #X msg 108 249 1; #X obj 116 500 dbtopow; #X obj 91 61 unpack; #X text 171 116 partials; #X text 116 281 count partials; #X text 49 346 partial frequencies; #X text 229 478 fetch gain from table; #X obj 53 94 mtof; #X text 24 117 fundamental frq; #X obj 83 372 ftom; #N canvas 0 22 450 300 (subpatch) 0; #X array decay 150 float 1; #A 0 967.852 967.852 967.852 967.852 967.852 967.852 967.852 967.852 964.281 960.71 953.567 953.567 953.567 953.567 953.567 939.281 939.281 939.281 935.709 932.138 924.995 924.995 924.995 917.852 917.852 910.709 910.709 896.422 889.279 889.279 882.136 878.565 860.707 860.707 860.707 851.183 841.659 832.135 828.563 824.992 817.849 810.706 799.991 789.276 778.562 767.847 746.418 742.847 739.275 724.989 717.846 710.703 703.56 689.274 682.13 660.701 653.558 646.415 635.701 624.986 610.7 607.128 589.271 585.699 582.128 567.841 560.698 546.412 539.269 524.983 517.84 503.554 489.268 482.125 460.695 453.552 446.409 439.266 428.552 417.837 396.408 389.265 382.122 367.836 360.693 339.263 332.12 317.834 310.691 296.405 289.262 285.69 282.119 274.976 267.833 267.833 260.69 253.547 246.403 242.832 239.26 232.117 217.831 210.688 203.545 196.402 189.259 182.116 174.973 174.973 160.687 153.544 146.401 146.401 139.257 139.257 139.257 132.114 132.114 132.114 124.971 117.828 117.828 117.828 117.828 110.685 110.685 110.685 103.542 103.542 96.399 96.399 89.256 89.256 74.9698 74.9698 74.9698 67.8268 67.8268 60.6837 60.6837 60.6837 60.6837 60.6837 53.5406 53.5406 53.5406 53.5406 46.3976 46.3976; #X coords 0 1000 149 0 400 140 1; #X restore 300 205 graph; #X obj 83 399 t a a a; #X text 46 543 midinote volume attack decay; #X obj 84 563 pack 0 0 20 0; #X text 239 224 0..1000; #X text 230 206 decay(ms); #X text 239 38 gain(dB); #X obj 116 477 tabread timbre; #X msg 300 364 \; timbre const 80; #X text 581 350 MIDI note 0...150; #X obj 684 30 bng 15 250 50 0 empty empty clear -35 7 0 10 -204786 -1 -1; #X msg 430 364 \; decay const 500; #X obj 150 446 tabread decay; #X text 270 445 fetch decay time from table; #X text 243 56 70..100; #X connect 0 0 14 0; #X connect 3 0 10 0; #X connect 4 0 6 1; #X connect 5 0 8 0; #X connect 6 0 7 0; #X connect 7 0 5 0; #X connect 7 1 12 0; #X connect 8 0 9 0; #X connect 8 0 11 0; #X connect 9 0 8 1; #X connect 10 0 6 0; #X connect 10 1 11 1; #X connect 11 0 21 0; #X connect 12 0 8 1; #X connect 13 0 25 1; #X connect 14 0 19 0; #X connect 14 1 4 0; #X connect 19 0 3 0; #X connect 21 0 23 0; #X connect 23 0 25 0; #X connect 23 1 29 0; #X connect 23 2 34 0; #X connect 25 0 1 0; #X connect 29 0 13 0; #X connect 32 0 30 0; #X connect 32 0 33 0; #X connect 34 0 25 3; #X coords 0 -1 1 1 400 320 2 300 25; #X restore 44 227 pd timbre+dur; #X text 49 595 bus midinote volume attack decay; #X obj 44 117 unpack; #X obj 44 138 spigot; #X floatatom 210 640 5 0 0 0 voices_active - -, f 5; #X obj 305 616 out-mono; #X obj 44 199 pack 0 15; #X obj 305 592 catch~ \$0-bus; #X obj 44 562 list prepend \$0-bus; #X obj 44 613 upp.x2 100 note_busvoldur; #X connect 5 0 15 0; #X connect 6 0 11 0; #X connect 9 0 17 0; #X connect 11 0 12 0; #X connect 11 1 12 1; #X connect 12 0 5 0; #X connect 15 0 9 0; #X connect 16 0 14 0; #X connect 17 0 18 0; #X connect 18 0 7 0; #X connect 18 2 13 0; upp-0.2.0/tutorials/5c-table.pd000066400000000000000000000123621430015047600162700ustar00rootroot00000000000000#N canvas 25 41 555 714 10; #X declare -path .. -path .; #X obj 27 11 cnv 15 500 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X text 34 34 playing notes with note-dependent timbre and decay; #X text 406 100 to find voice patch; #X text 411 14 grrrr.org \, 2012-15; #X obj 379 79 declare -path .. -path .; #X floatatom 68 162 5 0 0 1 MIDI_note - -, f 5; #X obj 68 83 kbd; #X obj 68 664 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X text 142 206 partials; #N canvas 621 281 755 641 timbre+dur 0; #X obj 90 28 inlet; #X obj 83 590 outlet; #N canvas 0 22 450 300 (subpatch) 0; #X array timbre 150 float 1; #A 0 89.107 89.3213 89.5356 89.7499 89.9642 89.9642 89.9642 90.3928 90.4642 90.5357 90.6071 90.8214 91.0357 91.0357 91.3571 91.6786 91.7322 91.7857 91.8393 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 90.8214 90.6071 89.5356 88.8928 88.8928 88.8928 88.8928 89.2499 89.6071 89.9642 90.3214 90.6785 91.0357 91.25 91.4643 91.6786 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 91.8929 92.1072 92.8215 93.5358 94.2501 95.5359 96.1788 97.2502 97.8931 97.8931 98.1074 98.4289 98.7503 99.1789 100.036 98.3217 94.2501 89.107 89.4285 89.7499 90.1785 90.6071 90.875 91.1428 91.4107 91.6786 92 92.3215 92.5358 92.9643 93.3929 93.8215 94.143 94.4644 94.893 95.1073 95.3216 95.643 96.1788 96.5359 96.8931 97.0359 94.2501 93.6072 90.8214 90.8214 91.25 91.6786 91.8929 92.1072 92.3215 92.5358 92.5358 92.9643 92.9643 92.9643 92.9643 92.9643 92.9643 92.9643 93.1786 93.3929 93.6072 93.8215 93.6072 92.7501 91.6786 89.9642 88.4642 88.0356 86.3212 85.8926 85.2497 84.6069 83.964 83.3211 82.8925 81.6067 80.8567 80.1067 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 79.4638 78.8209 78.8209 79.0352; #X coords 0 100 149 70 400 140 1; #X restore 300 47 graph; #X floatatom 53 137 5 0 0 0 - - -, f 5; #X floatatom 171 135 5 0 0 0 - - -, f 5; #X obj 54 247 until; #X obj 54 203 f; #X obj 53 224 t a b; #X obj 52 280 f; #X obj 86 279 + 1; #X obj 67 167 t b a; #X obj 84 328 *; #X msg 108 249 1; #X obj 116 500 dbtopow; #X obj 91 61 unpack; #X text 171 116 partials; #X text 116 281 count partials; #X text 49 346 partial frequencies; #X text 229 478 fetch gain from table; #X obj 53 94 mtof; #X text 24 117 fundamental frq; #X obj 83 372 ftom; #N canvas 0 22 450 300 (subpatch) 0; #X array decay 150 float 1; #A 0 967.852 967.852 967.852 967.852 967.852 967.852 967.852 967.852 964.281 960.71 953.567 953.567 953.567 953.567 953.567 939.281 939.281 939.281 935.709 932.138 924.995 924.995 924.995 917.852 917.852 910.709 910.709 896.422 889.279 889.279 882.136 878.565 860.707 860.707 860.707 851.183 841.659 832.135 828.563 824.992 817.849 810.706 799.991 789.276 778.562 767.847 746.418 742.847 739.275 724.989 717.846 710.703 703.56 689.274 682.13 660.701 653.558 646.415 635.701 624.986 610.7 607.128 589.271 585.699 582.128 567.841 560.698 546.412 539.269 524.983 517.84 503.554 489.268 482.125 460.695 453.552 446.409 439.266 428.552 417.837 396.408 389.265 382.122 367.836 360.693 339.263 332.12 317.834 310.691 296.405 289.262 285.69 282.119 274.976 267.833 267.833 260.69 253.547 246.403 242.832 239.26 232.117 217.831 210.688 203.545 196.402 189.259 182.116 174.973 174.973 160.687 153.544 146.401 146.401 139.257 139.257 139.257 132.114 132.114 132.114 124.971 117.828 117.828 117.828 117.828 110.685 110.685 110.685 103.542 103.542 96.399 96.399 89.256 89.256 74.9698 74.9698 74.9698 67.8268 67.8268 60.6837 60.6837 60.6837 60.6837 60.6837 53.5406 53.5406 53.5406 53.5406 46.3976 46.3976; #X coords 0 1000 149 0 400 140 1; #X restore 300 205 graph; #X obj 83 399 t a a a; #X text 46 543 midinote volume attack decay; #X obj 84 563 pack 0 0 20 0; #X text 239 224 0..1000; #X text 230 206 decay(ms); #X text 239 38 gain(dB); #X obj 116 477 tabread timbre; #X msg 300 364 \; timbre const 80; #X text 581 350 MIDI note 0...150; #X obj 684 30 bng 15 250 50 0 empty empty clear -35 7 0 10 -204786 -1 -1; #X msg 430 364 \; decay const 500; #X obj 150 446 tabread decay; #X text 270 445 fetch decay time from table; #X text 243 56 70..100; #X connect 0 0 14 0; #X connect 3 0 10 0; #X connect 4 0 6 1; #X connect 5 0 8 0; #X connect 6 0 7 0; #X connect 7 0 5 0; #X connect 7 1 12 0; #X connect 8 0 9 0; #X connect 8 0 11 0; #X connect 9 0 8 1; #X connect 10 0 6 0; #X connect 10 1 11 1; #X connect 11 0 21 0; #X connect 12 0 8 1; #X connect 13 0 25 1; #X connect 14 0 19 0; #X connect 14 1 4 0; #X connect 19 0 3 0; #X connect 21 0 23 0; #X connect 23 0 25 0; #X connect 23 1 29 0; #X connect 23 2 34 0; #X connect 25 0 1 0; #X connect 29 0 13 0; #X connect 32 0 30 0; #X connect 32 0 33 0; #X connect 34 0 25 3; #X coords 0 -1 1 1 400 320 2 300 25; #X restore 68 230 pd timbre+dur; #X text 73 606 bus midinote volume attack decay; #X obj 68 120 unpack; #X obj 68 141 spigot; #X floatatom 261 664 5 0 0 0 voices_active - -, f 5; #X obj 365 643 out-mono; #X obj 365 619 catch~ \$0-bus; #X obj 68 565 list prepend \$0-bus; #X obj 68 205 pack 0 15; #X obj 68 624 upp.xf 100 note_busvoldur; #X connect 5 0 17 0; #X connect 6 0 11 0; #X connect 9 0 16 0; #X connect 11 0 12 0; #X connect 11 1 12 1; #X connect 12 0 5 0; #X connect 15 0 14 0; #X connect 16 0 18 0; #X connect 17 0 9 0; #X connect 18 0 7 0; #X connect 18 2 13 0; upp-0.2.0/tutorials/6-granular.pd000066400000000000000000000025721430015047600166540ustar00rootroot00000000000000#N canvas 380 -859 621 428 10; #X declare -path .. -path .; #X obj 27 11 cnv 15 550 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X text 34 34 granular scrubbing through audio buffer; #X text 458 87 to find voice patch; #X text 459 15 grrrr.org \, 2012-15; #X obj 429 63 declare -path .. -path .; #X obj 39 385 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X obj 42 95 hsl 250 30 0 1 0 0 empty empty scrub -2 -8 0 10 -257985 -1 -1 7100 1; #X obj 39 173 *; #X text 142 195 position in buffer(ms); #X text 161 279 attack sustain decay; #X text 418 244 half window for one grain; #X floatatom 117 242 5 0 0 0 - - -; #X text 299 102 0...1; #X obj 39 195 nbx 10 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 53043.8 256; #X obj 421 361 out-mono; #X obj 327 141 sample \$0-sample; #X obj 39 316 list prepend \$0-sample; #X text 160 241 change attack+decay; #X floatatom 294 382 5 0 0 0 voices_active - -; #X obj 421 263 wnd-sin \$0-wnd 1024; #X obj 421 337 catch~ \$0-bus; #X obj 39 217 upp.ms2s; #X obj 39 280 pack 0 5000 0 5000; #X obj 39 352 upp 20 spat-mono \$0-bus syn-grain \$0-wnd; #X connect 6 0 7 0; #X connect 7 0 13 0; #X connect 11 0 22 1; #X connect 11 0 22 3; #X connect 13 0 21 0; #X connect 15 0 7 1; #X connect 16 0 23 0; #X connect 20 0 14 0; #X connect 21 0 22 0; #X connect 22 0 16 0; #X connect 23 0 5 0; #X connect 23 2 18 0; upp-0.2.0/tutorials/6a-granular-play.pd000066400000000000000000000056461430015047600177650ustar00rootroot00000000000000#N canvas 245 -980 633 510 10; #X declare -path .. -path .; #X obj 37 21 cnv 15 550 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X text 44 44 synchronous granular playing through audio buffer; #X text 471 107 to find voice patch; #X text 465 24 grrrr.org \, 2012-15; #X obj 440 85 declare -path .. -path .; #X obj 189 134 nbx 5 14 0.01 10 1 0 empty empty empty 0 -8 0 10 -204786 -1 -1 1.07522 256; #X obj 192 116 hsl 128 15 0.01 10 1 1 empty empty speed -2 -8 0 10 -204786 -1 -1 8668 1; #X obj 110 118 nbx 5 14 1 1000 1 1 empty empty grain_length 0 -8 0 10 -204786 -1 -1 100 256; #X obj 110 138 / 2; #X msg 68 189 0; #N canvas 762 55 588 464 play 0; #X obj 168 388 outlet; #X text 257 150 attack+sustain; #X obj 63 60 inlet; #X obj 496 62 inlet; #X text 62 43 play 0/1; #X text 494 44 speed; #X text 165 409 trigger new grain; #X obj 257 61 inlet; #X obj 336 61 inlet; #X obj 424 62 inlet; #X text 257 40 attack; #X text 337 41 sustain; #X text 420 42 release; #X obj 337 86 t b a; #X obj 169 60 inlet; #X obj 288 129 + 0; #X text 166 41 set pos; #X obj 385 200 * 1; #X obj 495 102 t b a; #X text 383 217 playpos increment; #X obj 140 277 +; #X obj 63 300 t a a; #X obj 168 358 pack 0 0 0 0; #X obj 63 216 upp.onward; #X obj 63 261 f; #X connect 2 0 23 0; #X connect 3 0 18 0; #X connect 7 0 15 0; #X connect 7 0 22 1; #X connect 8 0 13 0; #X connect 9 0 22 3; #X connect 13 0 15 0; #X connect 13 1 15 1; #X connect 13 1 22 2; #X connect 14 0 24 1; #X connect 15 0 17 0; #X connect 15 0 23 1; #X connect 17 0 20 1; #X connect 18 0 17 0; #X connect 18 1 17 1; #X connect 20 0 24 1; #X connect 21 0 22 0; #X connect 21 1 20 0; #X connect 22 0 0 0; #X connect 23 0 24 0; #X connect 24 0 21 0; #X restore 45 211 pd play ___________; #X text 419 275 half window for one grain; #X obj 106 357 moses; #X obj 154 357 spigot; #X obj 349 116 tgl 15 0 empty empty loop 17 7 0 10 -204786 -1 -1 0 1; #X obj 446 435 out-mono; #X obj 341 187 sample \$0-sample; #X obj 45 449 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X floatatom 299 449 5 0 0 0 voices_active - -; #X obj 45 398 list prepend \$0-sample; #X obj 46 118 tgl 25 0 empty empty play 0 -8 0 10 -258113 -1 -1 0 1 ; #X obj 446 413 catch~ \$0-bus; #X obj 45 299 nbx 8 14 0 1e+37 0 0 empty empty pos_in_buffer_(samps) 0 -8 0 10 -262144 -1 -1 0 256; #X text 192 399 tag; #X obj 45 240 t a a; #X obj 454 299 wnd-lin \$0-wnd 1024; #X obj 103 187 upp.ms2s; #X obj 341 250 upp.ms2s; #X obj 45 423 upp.xc 10 spat-mono \$0-bus syn-grain \$0-wnd; #X connect 5 0 10 5; #X connect 6 0 5 0; #X connect 7 0 8 0; #X connect 8 0 26 0; #X connect 9 0 10 1; #X connect 10 0 24 0; #X connect 12 1 13 0; #X connect 13 0 9 0; #X connect 14 0 13 1; #X connect 16 0 27 0; #X connect 19 0 28 0; #X connect 20 0 10 0; #X connect 21 0 15 0; #X connect 22 0 12 0; #X connect 24 0 22 0; #X connect 24 1 19 0; #X connect 26 0 10 4; #X connect 26 0 10 2; #X connect 27 0 12 1; #X connect 28 0 17 0; #X connect 28 2 18 0; upp-0.2.0/tutorials/6b-granular-play.pd000066400000000000000000000062301430015047600177540ustar00rootroot00000000000000#N canvas 11 29 622 509 10; #X declare -path .. -path .; #X text 399 268 half window for one grain; #X obj 96 347 moses; #X obj 144 347 spigot; #X obj 339 106 tgl 15 0 empty empty loop 17 7 0 10 -204786 -1 -1 0 1; #X obj 473 455 out-mono; #X obj 327 180 sample \$0-sample; #X obj 35 452 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X floatatom 295 449 5 0 0 0 voices_active - -, f 5; #X obj 35 396 list prepend \$0-sample; #X obj 27 11 cnv 15 550 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X obj 35 108 tgl 25 0 empty empty play 0 -8 0 10 -258113 -1 -1 0 1 ; #X obj 179 125 nbx 5 14 0.01 10 1 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0.913335 256; #X text 34 34 synchronous granular playing through audio buffer; #X obj 182 107 hsl 128 15 0.01 10 1 1 empty empty speed -2 -8 0 10 -204786 -1 -1 8368 1; #X obj 473 433 catch~ \$0-bus; #X obj 214 397 list prepend \$0-sample; #X obj 100 109 nbx 5 14 1 1000 1 1 empty empty grain_length 0 -8 0 10 -204786 -1 -1 106.499 256; #X obj 100 129 / 2; #X msg 57 179 0; #X obj 35 289 nbx 8 14 0 1e+37 0 0 empty empty pos_in_buffer_(samps) 0 -8 0 10 -262144 -1 -1 0 256; #X text 182 397 tag; #N canvas 472 176 603 538 play 0; #X obj 63 448 outlet; #X text 257 150 attack+sustain; #X obj 63 60 inlet; #X obj 496 62 inlet; #X text 62 43 play 0/1; #X text 494 44 speed; #X obj 409 454 outlet; #X obj 409 425 f; #X text 407 474 release old grain; #X text 60 469 trigger new grain; #X obj 63 418 pack 0 0; #X obj 257 61 inlet; #X obj 336 61 inlet; #X obj 424 62 inlet; #X text 257 40 attack; #X text 337 41 sustain; #X text 420 42 release; #X obj 337 86 t b a; #X obj 169 60 inlet; #X obj 288 129 + 0; #X text 166 41 set pos; #X obj 289 272 * 1; #X obj 495 102 t b a; #X text 287 289 playpos increment; #X obj 204 337 +; #X obj 63 295 upp.onward; #X obj 78 103 sel 0; #X obj 63 359 t a a b; #X obj 63 325 f; #X connect 2 0 25 0; #X connect 2 0 26 0; #X connect 3 0 22 0; #X connect 7 0 6 0; #X connect 10 0 0 0; #X connect 11 0 19 0; #X connect 11 0 10 1; #X connect 12 0 17 0; #X connect 13 0 7 1; #X connect 17 0 19 0; #X connect 17 1 19 1; #X connect 18 0 28 1; #X connect 19 0 21 0; #X connect 19 0 25 1; #X connect 21 0 24 1; #X connect 22 0 21 0; #X connect 22 1 21 1; #X connect 24 0 28 1; #X connect 25 0 28 0; #X connect 26 0 7 0; #X connect 27 0 10 0; #X connect 27 1 24 0; #X connect 27 2 7 0; #X connect 28 0 27 0; #X restore 35 202 pd play ___________; #X obj 35 230 t a a; #X obj 399 287 wnd-lin \$0-wnd 1024; #X text 461 114 to find voice patch; #X obj 431 91 declare -path .. -path .; #X text 459 13 grrrr.org \, 2012-15; #X obj 93 179 upp.ms2s; #X obj 327 244 upp.ms2s; #X obj 35 425 upp.xc 10 spat-mono \$0-bus syn-sample \$0-wnd; #X connect 1 1 2 0; #X connect 2 0 18 0; #X connect 3 0 2 1; #X connect 5 0 28 0; #X connect 8 0 29 0; #X connect 10 0 21 0; #X connect 11 0 21 5; #X connect 13 0 11 0; #X connect 14 0 4 0; #X connect 15 0 29 1; #X connect 16 0 17 0; #X connect 17 0 27 0; #X connect 18 0 21 1; #X connect 19 0 1 0; #X connect 21 0 22 0; #X connect 21 1 15 0; #X connect 22 0 19 0; #X connect 22 1 8 0; #X connect 27 0 21 4; #X connect 27 0 21 2; #X connect 28 0 1 1; #X connect 29 0 6 0; #X connect 29 2 7 0; upp-0.2.0/tutorials/6c-granular-repitch.pd000066400000000000000000000066111430015047600204510ustar00rootroot00000000000000#N canvas 389 -870 621 497 10; #X declare -path .. -path .; #X text 424 269 half window for one grain; #X obj 96 323 moses; #X obj 144 323 spigot; #X obj 340 106 tgl 15 0 empty empty loop 17 7 0 10 -204786 -1 -1 1 1; #X obj 440 427 out-mono; #X obj 327 180 sample \$0-sample; #X obj 35 451 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X floatatom 320 454 5 0 0 0 voices_active - -; #X obj 35 393 list prepend \$0-sample; #X obj 27 11 cnv 15 550 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X obj 35 108 tgl 25 0 empty empty play 0 -8 0 10 -258113 -1 -1 0 1 ; #X obj 179 125 nbx 5 14 0.01 10 1 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0.307744 256; #X text 34 34 synchronous granular playing through audio buffer; #X obj 182 107 hsl 128 15 0.01 10 1 1 empty empty speed -2 -8 0 10 -204786 -1 -1 6368 1; #X obj 440 403 catch~ \$0-bus; #X obj 214 394 list prepend \$0-sample; #X obj 94 109 nbx 5 14 1 1000 1 1 empty empty grain_length 0 -8 0 10 -204786 -1 -1 100 256; #X obj 94 129 / 2; #X msg 58 180 0; #X obj 35 289 nbx 8 14 0 1e+37 0 0 empty empty pos_in_buffer_(samps) 0 -8 0 10 -262144 -1 -1 259216 256; #X text 182 394 tag; #N canvas 336 -826 603 538 play 0; #X obj 63 448 outlet; #X text 257 150 attack+sustain; #X obj 63 60 inlet; #X obj 496 62 inlet; #X text 62 43 play 0/1; #X text 494 44 speed; #X obj 409 454 outlet; #X obj 409 428 f; #X text 407 474 release old grain; #X text 60 469 trigger new grain; #X obj 63 418 pack 0 0; #X obj 257 61 inlet; #X obj 336 61 inlet; #X obj 424 62 inlet; #X text 257 40 attack; #X text 337 41 sustain; #X text 420 42 release; #X obj 337 86 t b a; #X obj 169 60 inlet; #X obj 288 129 + 0; #X text 166 41 set pos; #X obj 289 272 * 1; #X obj 495 102 t b a; #X text 287 289 playpos increment; #X obj 188 337 +; #X obj 63 295 upp.onward; #X obj 73 103 sel 0; #X obj 63 354 t a a b; #X obj 63 325 f; #X connect 2 0 25 0; #X connect 2 0 26 0; #X connect 3 0 22 0; #X connect 7 0 6 0; #X connect 10 0 0 0; #X connect 11 0 19 0; #X connect 11 0 10 1; #X connect 12 0 17 0; #X connect 13 0 7 1; #X connect 17 0 19 0; #X connect 17 1 19 1; #X connect 18 0 28 1; #X connect 19 0 21 0; #X connect 19 0 25 1; #X connect 21 0 24 1; #X connect 22 0 21 0; #X connect 22 1 21 1; #X connect 24 0 28 1; #X connect 25 0 28 0; #X connect 26 0 7 0; #X connect 27 0 10 0; #X connect 27 1 24 0; #X connect 27 2 7 0; #X connect 28 0 27 0; #X restore 35 202 pd play ___________; #X obj 35 230 t a a; #X obj 180 166 nbx 5 14 -1e+37 1e+37 0 0 empty empty pitch-shift_(halftones) 0 -8 0 10 -204786 -1 -1 0 256; #X obj 234 362 expr pow(2 \, $f1/12); #X obj 35 364 list append 1; #X obj 424 288 wnd-lin \$0-wnd 1024; #X text 458 120 to find voice patch; #X obj 428 100 declare -path .. -path .; #X text 456 14 grrrr.org \, 2012-15; #X obj 328 245 upp.ms2s; #X obj 94 179 upp.ms2s; #X obj 35 427 upp 10 spat-mono \$0-bus syn-sample-var \$0-wnd; #X connect 1 1 2 0; #X connect 2 0 18 0; #X connect 3 0 2 1; #X connect 5 0 30 0; #X connect 8 0 32 0; #X connect 10 0 21 0; #X connect 11 0 21 5; #X connect 13 0 11 0; #X connect 14 0 4 0; #X connect 15 0 32 1; #X connect 16 0 17 0; #X connect 17 0 31 0; #X connect 18 0 21 1; #X connect 19 0 1 0; #X connect 21 0 22 0; #X connect 21 1 15 0; #X connect 22 0 19 0; #X connect 22 1 25 0; #X connect 23 0 24 0; #X connect 24 0 25 1; #X connect 25 0 8 0; #X connect 30 0 1 1; #X connect 31 0 21 4; #X connect 31 0 21 2; #X connect 32 0 6 0; #X connect 32 2 7 0; upp-0.2.0/tutorials/7-granular-tcorr.pd000066400000000000000000000067261430015047600200110ustar00rootroot00000000000000#N canvas 75 118 600 529 10; #X declare -path .. -path .; #X obj 27 11 cnv 15 550 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X text 34 34 synchronous granular playing through audio buffer; #X text 441 121 to find voice patch; #X obj 412 100 declare -path .. -path .; #X text 455 14 grrrr.org \, 2012-15; #X text 405 276 half window for one grain; #X obj 96 321 moses; #X obj 158 321 spigot; #X obj 340 106 tgl 15 0 empty empty loop 17 7 0 10 -204786 -1 -1 0 1; #X obj 308 185 sample \$0-sample; #X obj 35 478 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X floatatom 326 480 5 0 0 0 voices_active - -, f 5; #X obj 35 108 tgl 25 0 empty empty play 0 -8 0 10 -258113 -1 -1 0 1 ; #X obj 179 125 nbx 5 14 0.01 10 1 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0.964388 256; #X obj 182 107 hsl 128 15 0.01 10 1 1 empty empty speed -2 -8 0 10 -204786 -1 -1 8467 1; #X obj 100 109 nbx 5 14 1 1000 1 1 empty empty grain_length 0 -8 0 10 -204786 -1 -1 100 256; #X obj 100 129 / 2; #X msg 58 180 0; #X obj 35 289 nbx 8 14 0 1e+37 0 0 empty empty pos_in_buffer_(ms) 0 -8 0 10 -262144 -1 -1 0 256; #X text 189 410 tag; #N canvas 190 125 603 538 play 0; #X obj 63 448 outlet; #X text 257 150 attack+sustain; #X obj 63 60 inlet; #X obj 496 62 inlet; #X text 62 43 play 0/1; #X text 494 44 speed; #X obj 409 454 outlet; #X text 407 474 release old grain; #X text 60 469 trigger new grain; #X obj 257 61 inlet; #X obj 336 61 inlet; #X obj 424 62 inlet; #X text 257 40 attack; #X text 337 41 sustain; #X text 420 42 release; #X obj 337 86 t b a; #X obj 169 60 inlet; #X obj 288 129 + 0; #X text 166 41 set pos; #X obj 289 256 * 1; #X obj 495 102 t b a; #X text 287 273 playpos increment; #X obj 169 344 +; #X obj 63 276 upp.onward; #X obj 73 103 sel 0; #X obj 63 418 pack 0 0 0; #X msg 409 403 0; #X obj 409 426 pack 0 0; #X obj 63 371 t a a; #X obj 63 322 f; #X connect 2 0 23 0; #X connect 2 0 24 0; #X connect 3 0 20 0; #X connect 9 0 17 0; #X connect 9 0 25 2; #X connect 10 0 15 0; #X connect 11 0 27 1; #X connect 15 0 17 0; #X connect 15 1 17 1; #X connect 16 0 29 1; #X connect 17 0 19 0; #X connect 17 0 23 1; #X connect 19 0 22 1; #X connect 20 0 19 0; #X connect 20 1 19 1; #X connect 22 0 29 1; #X connect 23 0 29 0; #X connect 23 1 25 1; #X connect 23 1 27 0; #X connect 24 0 26 0; #X connect 25 0 0 0; #X connect 26 0 27 0; #X connect 27 0 6 0; #X connect 28 0 25 0; #X connect 28 1 22 0; #X connect 29 0 28 0; #X restore 35 202 pd play ___________; #X obj 180 166 nbx 5 14 -1e+37 1e+37 0 0 empty empty pitch-shift_(halftones) 0 -8 0 10 -204786 -1 -1 0 256; #X obj 134 370 expr pow(2 \, $f1/12); #X obj 35 371 list append 1; #X obj 35 411 list prepend \$0-sample; #X obj 241 412 list prepend \$0-sample; #X obj 35 230 t a a; #X obj 427 431 catch~ \$0-bus; #X obj 427 457 out-mono; #X obj 100 179 upp.ms2s; #X obj 308 248 upp.ms2s; #X obj 440 295 wnd-lin \$0-wnd 1024; #X obj 35 452 upp 10 spat-mono \$0-bus syn-sample-varcorr \$0-wnd; #X connect 6 1 7 0; #X connect 7 0 17 0; #X connect 8 0 7 1; #X connect 9 0 30 0; #X connect 12 0 20 0; #X connect 13 0 20 5; #X connect 14 0 13 0; #X connect 15 0 16 0; #X connect 16 0 29 0; #X connect 17 0 20 1; #X connect 18 0 6 0; #X connect 20 0 26 0; #X connect 20 1 25 0; #X connect 21 0 22 0; #X connect 22 0 23 1; #X connect 23 0 24 0; #X connect 24 0 32 0; #X connect 25 0 32 1; #X connect 26 0 18 0; #X connect 26 1 23 0; #X connect 27 0 28 0; #X connect 29 0 20 2; #X connect 29 0 20 4; #X connect 30 0 6 1; #X connect 32 0 10 0; #X connect 32 2 11 0; upp-0.2.0/tutorials/7a-granular-tcenv.pd000066400000000000000000000075421430015047600201350ustar00rootroot00000000000000#N canvas 321 68 615 525 10; #X declare -path .. -path .; #X text 418 279 half window for one grain; #X obj 96 321 moses; #X obj 158 321 spigot; #X obj 340 106 tgl 15 0 empty empty loop 17 7 0 10 -204786 -1 -1 1 1; #X obj 324 185 sample \$0-sample; #X obj 35 479 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X floatatom 350 478 5 0 0 0 voices_active - -, f 5; #X obj 27 11 cnv 15 550 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X obj 35 108 tgl 25 0 empty empty play 0 -8 0 10 -258113 -1 -1 1 1 ; #X obj 179 125 nbx 5 14 0.01 10 1 0 empty empty empty 0 -8 0 10 -204786 -1 -1 1.00073 256; #X text 34 34 synchronous granular playing through audio buffer; #X obj 182 107 hsl 128 15 0.01 10 1 1 empty empty speed -2 -8 0 10 -204786 -1 -1 8468 1; #X obj 100 109 nbx 5 14 1 1000 1 1 empty empty grain_length 0 -8 0 10 -204786 -1 -1 10 256; #X obj 100 129 / 2; #X msg 57 180 0; #X obj 64 291 nbx 8 14 0 1e+37 0 0 empty empty pos_in_buffer_(smps) 0 -8 0 10 -262144 -1 -1 1.34824e+06 256; #X text 189 410 tag; #N canvas 296 129 603 538 play 0; #X obj 92 473 outlet; #X text 257 150 attack+sustain; #X obj 63 60 inlet; #X obj 496 62 inlet; #X text 62 43 play 0/1; #X text 494 44 speed; #X obj 409 475 outlet; #X text 407 495 release old grain; #X text 89 494 trigger new grain; #X obj 257 61 inlet; #X obj 336 61 inlet; #X obj 424 62 inlet; #X text 257 40 attack; #X text 337 41 sustain; #X text 420 42 release; #X obj 337 86 t b a; #X obj 169 60 inlet; #X obj 288 129 + 0; #X text 166 41 set pos; #X obj 288 216 * 1; #X obj 495 102 t b a; #X text 286 233 playpos increment; #X obj 164 341 +; #X obj 63 276 upp.onward; #X obj 73 103 sel 0; #X obj 92 451 pack 0 0 0; #X msg 409 348 0; #X obj 409 451 pack 0 0; #X obj 63 322 f; #X obj 409 406 t b a; #X obj 409 429 f; #X obj 92 430 f; #X text 90 507 attack(ms) delay(samples) playpos(ms); #X text 407 509 release(ms) delay(samples); #X obj 63 364 t b a a; #X connect 2 0 23 0; #X connect 2 0 24 0; #X connect 3 0 20 0; #X connect 9 0 17 0; #X connect 9 0 31 1; #X connect 10 0 15 0; #X connect 11 0 30 1; #X connect 15 0 17 0; #X connect 15 1 17 1; #X connect 16 0 28 1; #X connect 17 0 19 0; #X connect 17 0 23 1; #X connect 19 0 22 1; #X connect 20 0 19 0; #X connect 20 1 19 1; #X connect 22 0 28 1; #X connect 23 0 28 0; #X connect 23 1 29 0; #X connect 23 1 25 1; #X connect 24 0 26 0; #X connect 25 0 0 0; #X connect 26 0 29 0; #X connect 27 0 6 0; #X connect 28 0 34 0; #X connect 29 0 30 0; #X connect 29 1 27 1; #X connect 30 0 27 0; #X connect 31 0 25 0; #X connect 34 0 31 0; #X connect 34 1 25 2; #X connect 34 2 22 0; #X restore 35 202 pd play ___________; #X obj 180 166 nbx 5 14 -1e+37 1e+37 0 0 empty empty pitch-shift_(halftones) 0 -8 0 10 -204786 -1 -1 0 256; #X obj 134 359 expr pow(2 \, $f1/12); #X obj 35 360 list append 1; #X obj 35 411 list prepend \$0-sample; #X obj 453 299 wnd-lin \$0-wnd 1024; #X obj 241 412 list prepend \$0-sample; #X obj 427 431 catch~ \$0-bus; #X obj 427 457 out-mono; #X obj 35 249 unpack 0 0 0; #X text 459 118 to find voice patch; #X obj 430 98 declare -path .. -path .; #X text 453 14 grrrr.org \, 2012-15; #X obj 324 248 upp.ms2s; #X obj 96 179 upp.ms2s; #X obj 35 384 list append 1; #X text 121 385 volume; #X obj 35 453 upp 10 spat-mono \$0-bus tcenv \$0-wnd syn-sample0; #X obj 35 225 t a a b; #X connect 1 1 2 0; #X connect 2 0 14 0; #X connect 3 0 2 1; #X connect 4 0 30 0; #X connect 8 0 17 0; #X connect 9 0 17 5; #X connect 11 0 9 0; #X connect 12 0 13 0; #X connect 13 0 31 0; #X connect 14 0 17 1; #X connect 15 0 1 0; #X connect 17 0 35 0; #X connect 17 1 23 0; #X connect 18 0 19 0; #X connect 19 0 20 1; #X connect 20 0 32 0; #X connect 21 0 34 0; #X connect 23 0 34 1; #X connect 24 0 25 0; #X connect 26 2 15 0; #X connect 30 0 1 1; #X connect 31 0 17 4; #X connect 31 0 17 2; #X connect 32 0 21 0; #X connect 34 0 5 0; #X connect 34 2 6 0; #X connect 35 0 26 0; #X connect 35 1 20 0; upp-0.2.0/tutorials/7b-granular-tcorr-rnd.pd000066400000000000000000000101051430015047600207160ustar00rootroot00000000000000#N canvas 5 23 615 530 10; #X declare -path .. -path .; #X text 418 272 half window for one grain; #X obj 96 342 moses; #X obj 158 342 spigot; #X obj 340 106 tgl 15 0 empty empty loop 17 7 0 10 -204786 -1 -1 0 1; #X obj 321 185 sample \$0-sample; #X obj 35 477 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X floatatom 325 478 5 0 0 0 voices_active - -, f 5; #X obj 27 11 cnv 15 550 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X obj 35 108 tgl 25 0 empty empty play 0 -8 0 10 -258113 -1 -1 0 1 ; #X obj 179 125 nbx 5 14 -1 1 0 0 empty empty empty 0 -8 0 10 -204786 -1 -1 0.968504 256; #X text 34 34 synchronous granular playing through audio buffer; #X obj 182 107 hsl 128 15 -1 1 0 1 empty empty speed -2 -8 0 10 -204786 -1 -1 12550 1; #X obj 100 109 nbx 5 14 1 1000 1 1 empty empty grain_length 0 -8 0 10 -204786 -1 -1 100 256; #X obj 100 129 / 2; #X msg 58 180 0; #X obj 35 310 nbx 8 14 0 1e+37 0 0 empty empty pos_in_buffer_(ms) 0 -8 0 10 -262144 -1 -1 0 256; #X text 189 410 tag; #N canvas 622 249 705 532 play 0; #X obj 63 448 outlet; #X text 257 150 attack+sustain; #X obj 63 60 inlet; #X obj 496 62 inlet; #X text 62 43 play 0/1; #X text 494 44 speed; #X obj 409 454 outlet; #X text 407 474 release old grain; #X text 60 469 trigger new grain; #X obj 257 61 inlet; #X obj 336 61 inlet; #X obj 424 62 inlet; #X text 257 40 attack; #X text 337 41 sustain; #X text 420 42 release; #X obj 337 86 t b a; #X obj 169 60 inlet; #X obj 288 129 + 0; #X text 166 41 set pos; #X obj 289 256 * 1; #X obj 495 102 t b a; #X text 287 273 playpos increment; #X obj 169 344 +; #X obj 63 276 upp.onward; #X obj 73 103 sel 0; #X obj 63 418 pack 0 0 0; #X msg 409 403 0; #X obj 409 426 pack 0 0; #X obj 63 350 t a a; #X obj 63 322 f; #X obj 559 59 inlet; #X text 559 41 dev; #N canvas 0 22 218 353 rnd 0; #X obj 46 41 inlet; #X obj 117 41 inlet; #X obj 47 75 t a b; #X obj 97 230 * 0; #X obj 44 267 +; #X obj 43 295 outlet; #X floatatom 127 261 5 0 0 0 - - -, f 5; #X obj 72 165 frnd; #X connect 0 0 2 0; #X connect 1 0 3 1; #X connect 2 0 4 0; #X connect 2 1 7 0; #X connect 3 0 4 1; #X connect 3 0 6 0; #X connect 4 0 5 0; #X connect 7 0 3 0; #X restore 63 389 pd rnd; #X connect 2 0 23 0; #X connect 2 0 24 0; #X connect 3 0 20 0; #X connect 9 0 17 0; #X connect 9 0 25 2; #X connect 10 0 15 0; #X connect 11 0 27 1; #X connect 15 0 17 0; #X connect 15 1 17 1; #X connect 16 0 29 1; #X connect 17 0 19 0; #X connect 17 0 23 1; #X connect 19 0 22 1; #X connect 20 0 19 0; #X connect 20 1 19 1; #X connect 22 0 29 1; #X connect 23 0 29 0; #X connect 23 1 25 1; #X connect 23 1 27 0; #X connect 24 0 26 0; #X connect 25 0 0 0; #X connect 26 0 27 0; #X connect 27 0 6 0; #X connect 28 0 32 0; #X connect 28 1 22 0; #X connect 29 0 28 0; #X connect 30 0 32 1; #X connect 32 0 25 0; #X restore 35 202 pd play ___________; #X obj 180 166 nbx 5 14 -1e+37 1e+37 0 0 empty empty pitch-shift_(halftones) 0 -8 0 10 -204786 -1 -1 0 256; #X obj 134 370 expr pow(2 \, $f1/12); #X obj 35 371 list append 1; #X obj 35 411 list prepend \$0-sample; #X obj 241 412 list prepend \$0-sample; #X obj 35 230 t a a; #X obj 428 429 catch~ \$0-bus; #X obj 428 453 out-mono; #X text 454 121 to find voice patch; #X obj 186 209 nbx 5 14 0.01 1000 1 1 empty empty dev 0 -8 0 10 -204786 -1 -1 10 256; #X obj 452 292 wnd-lin \$0-wnd 1024; #X obj 425 102 declare -path .. -path .; #X text 456 15 grrrr.org \, 2012-15; #X obj 321 250 upp.ms2s; #X obj 94 177 upp.ms2s; #X obj 186 227 upp.ms2s; #X obj 35 452 upp 10 spat-mono \$0-bus syn-sample-varcorr \$0-wnd; #X connect 1 1 2 0; #X connect 2 0 14 0; #X connect 3 0 2 1; #X connect 4 0 31 0; #X connect 8 0 17 0; #X connect 9 0 17 5; #X connect 11 0 9 0; #X connect 12 0 13 0; #X connect 13 0 32 0; #X connect 14 0 17 1; #X connect 15 0 1 0; #X connect 17 0 23 0; #X connect 17 1 22 0; #X connect 18 0 19 0; #X connect 19 0 20 1; #X connect 20 0 21 0; #X connect 21 0 34 0; #X connect 22 0 34 1; #X connect 23 0 15 0; #X connect 23 1 20 0; #X connect 24 0 25 0; #X connect 27 0 33 0; #X connect 31 0 1 1; #X connect 32 0 17 4; #X connect 32 0 17 2; #X connect 33 0 17 6; #X connect 34 0 5 0; #X connect 34 2 6 0; upp-0.2.0/tutorials/8-bus.pd000066400000000000000000000036371430015047600156370ustar00rootroot00000000000000#N canvas 2 23 675 530 10; #X declare -path .. -path .; #X obj 39 474 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X obj 42 95 hsl 250 30 0 1 0 0 empty empty scrub -2 -8 0 10 -257985 -1 -1 0 1; #X obj 39 167 *; #X text 161 252 attack sustain decay; #X text 477 255 half window for one grain; #X floatatom 109 211 5 0 0 0 - - -, f 5; #X text 299 102 0...1; #X obj 39 188 nbx 10 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X obj 377 142 sample \$0-sample; #X obj 39 421 list prepend \$0-sample; #X text 160 222 change attack+decay; #X obj 27 11 cnv 15 600 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X text 34 34 granular scrubbing through audio buffer; #X floatatom 245 473 5 0 0 0 voices_active - -, f 5; #X obj 507 276 wnd-sin \$0-wnd 1024; #X obj 442 450 out-stereo; #X obj 39 292 t a b; #X obj 402 426 catch~ \$0-bus-1; #X obj 524 426 catch~ \$0-bus-2; #X text 159 295 random panning; #X text 182 421 this is the tag; #X obj 39 381 list prepend; #X obj 108 293 random 2; #X obj 108 336 list prepend \$0; #X msg 108 358 symbol \$1-bus-\$2; #X obj 108 315 + 1; #X text 218 358 \$0-bus-1 or \$0-bus-2; #X text 122 381 prepend bus name; #X text 512 96 to find voice patch; #X text 511 13 grrrr.org \, 2012-15; #X obj 480 76 declare -path .. -path .; #X obj 378 206 upp.ms2s; #X text 137 187 position in buffer(smps); #X obj 109 228 upp.ms2s; #X obj 39 253 pack 0 5000 0 5000; #X obj 39 450 upp 20 spat-varbus syn-grain \$0-wnd; #X connect 1 0 2 0; #X connect 2 0 7 0; #X connect 5 0 33 0; #X connect 7 0 34 0; #X connect 8 0 31 0; #X connect 9 0 35 0; #X connect 16 0 21 0; #X connect 16 1 22 0; #X connect 17 0 15 0; #X connect 18 0 15 1; #X connect 21 0 9 0; #X connect 22 0 25 0; #X connect 23 0 24 0; #X connect 24 0 21 1; #X connect 25 0 23 0; #X connect 31 0 2 1; #X connect 33 0 34 3; #X connect 33 0 34 1; #X connect 34 0 16 0; #X connect 35 0 0 0; #X connect 35 2 13 0; upp-0.2.0/tutorials/8a-stereo.pd000066400000000000000000000037411430015047600165040ustar00rootroot00000000000000#N canvas 175 -1006 671 474 10; #X declare -path .. -path .; #X obj 39 434 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X obj 42 95 hsl 250 30 0 1 0 0 empty empty scrub -2 -8 0 10 -257985 -1 -1 13100 1; #X obj 39 167 *; #X text 161 264 attack sustain decay; #X text 470 256 half window for one grain; #X floatatom 112 224 5 0 0 0 - - -; #X text 299 102 0...1; #X obj 39 188 nbx 10 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 293220 256; #X obj 371 150 sample \$0-sample; #X obj 39 371 list prepend \$0-sample; #X obj 27 11 cnv 15 600 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X text 34 34 granular scrubbing through audio buffer; #X floatatom 287 433 5 0 0 0 voices_active - -; #X obj 504 273 wnd-sin \$0-wnd 1024; #X obj 433 405 out-stereo; #X obj 39 311 t a b; #X obj 39 337 list prepend 0; #X obj 402 379 catch~ \$0-bus-1; #X obj 529 379 catch~ \$0-bus-2; #N canvas 504 -550 231 244 rnd 0; #X obj 68 34 inlet; #X obj 68 163 outlet; #X obj 68 126 - 1; #X obj 68 106 * 2; #X obj 68 83 urnd; #X connect 0 0 4 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 4 0 3 0; #X restore 120 311 pd rnd; #X text 182 371 this is the tag; #X text 168 311 random panning -1...+1; #X text 508 105 to find voice patch; #X obj 479 86 declare -path .. -path .; #X text 508 16 grrrr.org \, 2012-15; #X obj 372 214 upp.ms2s; #X text 137 187 position in buffer(smps); #X obj 39 265 pack 0 5000 0 5000; #X obj 112 242 upp.ms2s; #X text 147 223 change attack+decay (ms); #X obj 39 414 upp 20 spat-stereo \$0-bus syn-grain \$0-wnd; #X text 48 387 [tag/sample pan pos att sus decay(; #X connect 1 0 2 0; #X connect 2 0 7 0; #X connect 5 0 28 0; #X connect 7 0 27 0; #X connect 8 0 25 0; #X connect 9 0 30 0; #X connect 15 0 16 0; #X connect 15 1 19 0; #X connect 16 0 9 0; #X connect 17 0 14 0; #X connect 18 0 14 1; #X connect 19 0 16 1; #X connect 25 0 2 1; #X connect 27 0 15 0; #X connect 28 0 27 1; #X connect 28 0 27 3; #X connect 30 0 0 0; #X connect 30 2 12 0; upp-0.2.0/tutorials/8b-quadro.pd000066400000000000000000000052021430015047600164710ustar00rootroot00000000000000#N canvas 329 57 677 513 10; #X declare -path .. -path .; #X obj 39 458 bng 15 250 50 0 empty empty overflow 17 7 0 10 -262144 -1 -1; #X obj 42 95 hsl 250 30 0 1 0 0 empty empty scrub -2 -8 0 10 -257985 -1 -1 0 1; #X obj 39 167 *; #X text 161 264 attack sustain decay; #X text 474 244 half window for one grain; #X floatatom 112 223 5 0 0 0 - - -, f 5; #X text 299 102 0...1; #X obj 39 188 nbx 10 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X obj 381 154 sample \$0-sample; #X obj 39 398 list prepend \$0-sample; #X obj 27 11 cnv 15 600 40 empty empty Universal_Polyphonic_Player 10 10 0 14 -233017 -66577 0; #X floatatom 276 457 5 0 0 0 voices_active - -, f 5; #X obj 511 262 wnd-sin \$0-wnd 1024; #X obj 39 345 list prepend 0 0; #X obj 39 316 t a b; #X text 145 344 x y; #N canvas 0 22 319 326 polarpanning 0; #X obj 68 34 inlet; #X obj 66 271 outlet; #X obj 68 56 t b b; #X obj 67 248 pack; #X obj 68 111 * 6.28319; #X obj 69 159 sin; #X obj 109 159 cos; #X obj 68 180 *; #X obj 108 181 *; #X obj 67 225 min 1; #X obj 67 205 max 0; #X obj 112 225 min 1; #X obj 112 205 max 0; #X obj 202 32 inlet; #X obj 68 88 urnd; #X obj 168 86 grnd; #X obj 168 107 * 0.5; #X obj 68 131 t a a; #X connect 0 0 2 0; #X connect 2 0 14 0; #X connect 2 1 15 0; #X connect 3 0 1 0; #X connect 4 0 17 0; #X connect 5 0 7 0; #X connect 6 0 8 0; #X connect 7 0 10 0; #X connect 8 0 12 0; #X connect 9 0 3 0; #X connect 10 0 9 0; #X connect 11 0 3 1; #X connect 12 0 11 0; #X connect 13 0 16 1; #X connect 14 0 4 0; #X connect 15 0 16 0; #X connect 16 0 7 1; #X connect 16 0 8 1; #X connect 17 0 5 0; #X connect 17 1 6 0; #X restore 132 317 pd polarpanning; #X obj 260 319 hsl 128 15 0.05 1 1 0 empty empty deviation -2 -8 0 10 -262130 -1 -1 0 1; #X floatatom 257 338 5 0 0 0 - - -, f 5; #X text 472 395 quadrophonic output; #X text 510 103 to find voice patch; #X text 509 15 grrrr.org \, 2012-15; #X obj 480 83 declare -path .. -path .; #X obj 382 219 upp.ms2s; #X text 137 187 position in buffer(smps); #X text 155 222 change attack+decay (ms); #X obj 39 265 pack 0 5000 0 5000; #X obj 112 240 upp.ms2s; #X obj 473 413 out-multi \$0-bus 4; #X text 34 34 granular scrubbing with quadrophony; #X text 181 399 the sample name is also the tag; #X obj 39 434 upp 20 spat-quad \$0-bus syn-grain \$0-wnd; #X connect 1 0 2 0; #X connect 2 0 7 0; #X connect 5 0 27 0; #X connect 7 0 26 0; #X connect 8 0 23 0; #X connect 9 0 31 0; #X connect 13 0 9 0; #X connect 14 0 13 0; #X connect 14 1 16 0; #X connect 16 0 13 1; #X connect 17 0 16 1; #X connect 17 0 18 0; #X connect 23 0 2 1; #X connect 26 0 14 0; #X connect 27 0 26 3; #X connect 27 0 26 1; #X connect 31 0 0 0; #X connect 31 2 11 0; upp-0.2.0/tutorials/8c-spat-5.1.pd000066400000000000000000000046341430015047600164570ustar00rootroot00000000000000#N canvas 304 239 677 513 10; #X declare -path .. -path . -lib vbap; #X obj 39 480 bng 15 250 50 0 empty empty overflow 17 7 0 10 #fcfcfc #000000 #000000; #X obj 42 95 hsl 250 30 0 1 0 0 empty empty scrub -2 -8 0 10 #f8fc00 #000000 #000000 0 1; #X obj 39 167 *; #X text 161 264 attack sustain decay; #X text 474 244 half window for one grain; #X floatatom 112 223 5 0 0 0 - - - 0; #X text 299 102 0...1; #X obj 39 188 nbx 10 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 #fcfcfc #000000 #000000 0 256; #X obj 381 154 sample \$0-sample; #X obj 39 415 list prepend \$0-sample; #X obj 27 11 cnv 15 600 40 empty empty Universal_Polyphonic_Player 10 10 0 14 #e0e0e0 #404040 0; #X floatatom 329 480 5 0 0 0 voices_active - - 0; #X obj 511 262 wnd-sin \$0-wnd 1024; #X obj 39 312 t a b; #X text 411 106 to find voice patch; #X obj 382 219 upp.ms2s; #X text 137 187 position in buffer(smps); #X text 155 222 change attack+decay (ms); #X obj 39 265 pack 0 5000 0 5000; #X obj 112 240 upp.ms2s; #X text 125 374 azimuth elevation spread; #N canvas 468 207 156 202 running 0; #X obj 37 28 inlet; #X obj 37 151 outlet; #X obj 37 93 f; #X obj 37 50 t b a; #X obj 66 93 +; #X obj 37 121 % 360; #X connect 0 0 3 0; #X connect 2 0 5 0; #X connect 3 0 2 0; #X connect 3 1 4 1; #X connect 4 0 2 1; #X connect 5 0 4 0; #X connect 5 0 1 0; #X restore 108 311 pd running angle; #X floatatom 108 334 5 0 0 0 - - - 0; #X obj 108 353 pack 0 0 0.5; #X obj 39 375 list prepend; #X text 377 310 Dolby-5.1 loudspeaker arrangement; #X text 377 327 The order of speakers is defined in; #X text 376 345 [vbap-5.1] as follows:; #X text 378 363 1 Front-left \, 2 Front-right; #X text 378 379 3 Rear-left \, 4 Rear-right \, 5 Center; #X text 34 34 granular scrubbing with surround spatialization; #X text 178 416 the sample name is also the tag; #X obj 490 432 out-multi \$0-bus 5; #X msg 64 334 1; #X text 144 333 azimuth in degrees; #X obj 39 456 upp 20 spat-vbap vbap-5.1 \$0-bus syn-grain \$0-wnd; #X text 526 15 grrrr.org \, 2022; #X obj 381 86 declare -path .. -path . -lib vbap; #X connect 1 0 2 0; #X connect 2 0 7 0; #X connect 5 0 19 0; #X connect 7 0 18 0; #X connect 8 0 15 0; #X connect 9 0 35 0; #X connect 13 0 24 0; #X connect 13 1 33 0; #X connect 15 0 2 1; #X connect 18 0 13 0; #X connect 19 0 18 3; #X connect 19 0 18 1; #X connect 21 0 22 0; #X connect 22 0 23 0; #X connect 23 0 24 1; #X connect 24 0 9 0; #X connect 33 0 21 0; #X connect 35 0 0 0; #X connect 35 2 11 0; upp-0.2.0/tutorials/kbd-help.pd000066400000000000000000000015241430015047600163600ustar00rootroot00000000000000#N canvas 196 349 555 300 10; #X obj 52 95 kbd; #X obj 27 11 cnv 15 500 40 empty empty keyboard 10 10 0 14 -233017 -66577 0; #X text 414 14 grrrr.org \, 2011; #X text 34 32 play MIDI notes with octave shift and inhibited repetition ; #X text 198 144 - middle row keys play notes; #X text 199 93 - select your keyboard layout; #X text 210 108 (english \, german \, french \, spanish); #X obj 52 232 print NOTE; #X obj 70 148 unpack; #X floatatom 70 187 5 0 0 2 MIDI_note - -; #X obj 109 187 tgl 15 0 empty empty down/up 17 7 0 10 -262144 -1 -1 0 1; #X text 210 194 (some key combinations might not be recognized); #X text 198 180 - you can play chords; #X text 212 159 (on US keyboard: a w s e d f t g y h etc.); #X text 198 126 - numeric keys 1 2 3 4 etc. select octave; #X connect 0 0 7 0; #X connect 0 0 8 0; #X connect 8 0 9 0; #X connect 8 1 10 0; upp-0.2.0/tutorials/kbd.pd000066400000000000000000000171261430015047600154370ustar00rootroot00000000000000#N canvas 18 26 722 672 10; #X obj 43 91 keyname; #X symbolatom 90 117 10 0 0 0 - - -; #X obj 249 88 loadbang; #X obj 249 108 symbol \$1; #X msg 264 201 list a w s e d f t g z h u j k o l p ö ä + #; #X text 595 225 FR; #X text 607 251 ES; #X text 582 202 DE_de DE_at; #X text 557 177 EN_us EN_gb; #X msg 281 226 list q z s e d f t g y h u j k o l p m ù $; #X obj 249 132 select en us de fr es; #X obj 43 116 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 61 116 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 43 502 swap; #X obj 43 528 pack; #X obj 43 605 outlet; #X text 41 624 note on/off; #X obj 150 396 * 12; #X obj 176 90 key; #X obj 89 374 nbx 5 14 -1e+37 1e+37 0 0 empty empty note 0 -8 0 10 -262144 -1 -1 3 256; #X obj 150 375 nbx 5 14 -1e+37 1e+37 0 0 empty empty octave 0 -8 0 10 -262144 -1 -1 5 256; #X obj 425 85 inlet; #X obj 425 106 list trim; #X obj 426 124 list prepend symbol; #X obj 426 142 list trim; #X text 469 88 digest selector and symbol; #N canvas 1054 261 233 228 octave 0; #X obj 47 80 moses 49; #X text 127 98 >=; #X text 52 96 <; #X obj 48 111 select 48; #X obj 129 133 - 49; #X obj 48 195 outlet; #X obj 48 47 inlet; #X obj 129 112 moses 58; #X msg 48 132 9; #X connect 0 0 3 0; #X connect 0 1 7 0; #X connect 3 0 8 0; #X connect 4 0 5 0; #X connect 6 0 0 0; #X connect 7 0 4 0; #X connect 8 0 5 0; #X restore 150 333 pd octave; #N canvas 624 223 411 391 findsymbol 0; #X obj 61 37 inlet; #X obj 222 35 inlet; #X text 221 12 list of symbols; #X text 58 15 symbols; #X obj 60 125 list split 1; #X obj 60 103 list; #X obj 60 247 f; #X msg 260 113 0; #X obj 243 189 f; #X obj 274 189 + 1; #X obj 187 136 list; #X obj 38 163 t b a b; #X obj 61 192 select sym; #X obj 61 63 t b a b a; #X obj 60 328 outlet; #X obj 238 304 symbol; #X obj 239 327 outlet; #X text 58 346 index of found symbol; #X text 237 346 symbol not found; #X obj 60 276 t a b; #X obj 186 116 spigot; #X msg 224 91 1; #X msg 191 92 0; #X connect 0 0 13 0; #X connect 1 0 5 1; #X connect 4 0 11 0; #X connect 4 1 10 1; #X connect 4 2 15 0; #X connect 5 0 4 0; #X connect 6 0 19 0; #X connect 7 0 8 1; #X connect 8 0 6 1; #X connect 8 0 9 0; #X connect 9 0 8 1; #X connect 10 0 4 0; #X connect 11 0 20 0; #X connect 11 1 12 0; #X connect 11 2 8 0; #X connect 12 0 6 0; #X connect 13 0 5 0; #X connect 13 1 12 1; #X connect 13 2 7 0; #X connect 13 2 21 0; #X connect 13 3 15 1; #X connect 15 0 16 0; #X connect 19 0 14 0; #X connect 19 1 22 0; #X connect 20 0 10 0; #X connect 21 0 20 1; #X connect 22 0 20 1; #X restore 90 239 pd findsymbol; #X obj 151 302 swap; #X msg 151 282 0; #X obj 27 11 cnv 15 650 40 empty empty kbd 10 10 0 14 -233017 -66577 0; #X obj 151 263 t b b; #X obj 43 480 spigot; #X obj 88 418 t f b; #X msg 120 442 1; #X msg 183 443 0; #N canvas 815 329 482 457 display 0; #X msg 211 148 list c c# d d# e f f# g g# a a# b; #X obj 165 28 loadbang; #X obj 142 233 list split; #X obj 209 208 % 12; #X obj 142 257 list split 1; #X obj 274 214 / 12; #X obj 274 237 int; #X obj 142 210 list; #X obj 142 149 t b a a; #X obj 63 31 inlet; #X obj 63 56 unpack; #X obj 63 85 upp.dilemma; #X obj 63 397 outlet; #X obj 142 296 list append; #X msg 63 328 symbol; #X msg 142 328 symbol \$1\$2; #X obj 274 258 - 2; #X connect 0 0 7 1; #X connect 1 0 0 0; #X connect 1 0 14 0; #X connect 2 1 4 0; #X connect 3 0 2 1; #X connect 4 0 13 0; #X connect 5 0 6 0; #X connect 6 0 16 0; #X connect 7 0 2 0; #X connect 8 0 7 0; #X connect 8 1 3 0; #X connect 8 2 5 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 10 1 11 1; #X connect 11 0 14 0; #X connect 11 1 8 0; #X connect 13 0 15 0; #X connect 14 0 12 0; #X connect 15 0 12 0; #X connect 16 0 13 1; #X restore 341 473 pd display; #X obj 89 398 +; #X obj 341 297 loadbang; #X msg 341 319 5; #X text 371 321 default octave; #X obj 374 519 nbx 2 14 -3 9 0 0 empty empty empty 0 -8 0 9 -262144 -1 -1 3 256; #X obj 337 500 hradio 15 1 0 4 empty empty EN_DE_FR_ES 3 10 0 8 -262144 -258113 -1 1; #X obj 237 541 route 0 1 2 3; #X msg 249 175 list a w s e d f t g y h u j k o l p; #X msg 303 251 list a w s e d f g y h u j k o l p ñ; #X text 34 53 Caution: there are key (chord) combinations \, that are not possible \, e.g. a-d-k simultaneously on the US keyboard.; #X obj 337 517 cnv 5 40 15 empty empty empty 20 12 0 14 -233017 -66577 0; #X symbolatom 349 519 4 0 0 0 - - -; #X obj 338 520 bng 10 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 372 447 - 2; #N canvas 838 104 511 661 fltrep 0; #X obj 227 153 inlet; #X obj 79 607 outlet; #X obj 250 339 timer; #X obj 372 413 unpack; #X obj 296 413 unpack; #X obj 411 447 == 0; #X obj 335 449 == 1; #X obj 296 449 ==; #X obj 335 470 *; #X obj 296 470 *; #X obj 250 359 < 10; #X obj 372 275 list; #X obj 64 282 spigot; #X obj 250 550 == 0; #X obj 250 602 select 0; #X text 240 529 1...is repetition; #X obj 250 495 *; #X obj 250 310 t b b a; #X text 43 20 Key repetitions are characterized by a sequence of key-up/key-down combinations in <10ms time intervals.; #X text 44 54 We filter these by delaying a key-stroke for 10ms \, checking if there is any close follow-up key-down of the same key. ; #X obj 78 586 pack; #X obj 64 324 unpack; #X text 294 396 check if old and new match; #X text 254 293 new; #X text 377 294 old; #X obj 37 359 upp.dilemma; #X text 45 92 It is sufficient to delay key-up messages only \, therefore let pass unfiltered key-downs to avoid unnecessary latency.; #X obj 37 500 list; #X obj 37 525 t a b; #X text 76 525 clear; #X obj 37 549 route float; #X obj 226 177 t a a b a; #X obj 250 572 t a a; #X obj 37 441 pipe 10; #X msg 117 442 clear; #X connect 0 0 31 0; #X connect 2 0 10 0; #X connect 3 0 7 1; #X connect 3 1 5 0; #X connect 4 0 7 0; #X connect 4 1 6 0; #X connect 5 0 8 1; #X connect 6 0 8 0; #X connect 7 0 9 0; #X connect 8 0 9 1; #X connect 9 0 16 1; #X connect 10 0 16 0; #X connect 11 0 3 0; #X connect 12 0 21 0; #X connect 13 0 32 0; #X connect 14 0 34 0; #X connect 16 0 13 0; #X connect 17 0 2 0; #X connect 17 1 2 1; #X connect 17 2 4 0; #X connect 20 0 1 0; #X connect 21 0 25 0; #X connect 21 1 20 1; #X connect 21 1 25 1; #X connect 25 0 33 0; #X connect 25 1 27 0; #X connect 27 0 28 0; #X connect 28 0 30 0; #X connect 28 1 27 1; #X connect 30 0 20 0; #X connect 31 0 12 0; #X connect 31 1 17 0; #X connect 31 1 11 1; #X connect 31 2 11 0; #X connect 32 0 14 0; #X connect 32 0 12 1; #X connect 33 0 27 0; #X connect 34 0 33 0; #X restore 42 573 pd fltrep; #X text 564 15 grrrr.org \, 2012; #X text 34 32 play MIDI notes with octave shift and inhibited repetition ; #X connect 0 0 11 0; #X connect 0 0 12 0; #X connect 0 1 1 0; #X connect 1 0 27 0; #X connect 2 0 3 0; #X connect 3 0 10 0; #X connect 4 0 27 1; #X connect 9 0 27 1; #X connect 10 0 44 0; #X connect 10 1 44 0; #X connect 10 2 4 0; #X connect 10 3 9 0; #X connect 10 4 45 0; #X connect 10 5 44 0; #X connect 11 0 32 0; #X connect 13 0 14 0; #X connect 13 1 14 1; #X connect 14 0 51 0; #X connect 17 0 37 1; #X connect 18 0 28 1; #X connect 19 0 37 0; #X connect 20 0 17 0; #X connect 20 0 50 0; #X connect 21 0 22 0; #X connect 22 0 23 0; #X connect 23 0 24 0; #X connect 24 0 3 0; #X connect 26 0 20 0; #X connect 27 0 19 0; #X connect 27 1 31 0; #X connect 28 0 26 0; #X connect 29 0 28 0; #X connect 31 0 29 0; #X connect 31 1 35 0; #X connect 32 0 13 0; #X connect 33 0 13 1; #X connect 33 1 34 0; #X connect 34 0 32 1; #X connect 35 0 32 1; #X connect 36 0 48 0; #X connect 36 0 49 0; #X connect 37 0 33 0; #X connect 38 0 39 0; #X connect 39 0 20 0; #X connect 42 0 43 0; #X connect 43 0 44 0; #X connect 43 1 4 0; #X connect 43 2 9 0; #X connect 43 3 45 0; #X connect 44 0 27 1; #X connect 45 0 27 1; #X connect 50 0 41 0; #X connect 51 0 15 0; #X connect 51 0 36 0; #X coords 0 -1 1 1 90 35 1 310 500; upp-0.2.0/tutorials/note_alt.pd000066400000000000000000000014251430015047600164770ustar00rootroot00000000000000#N canvas 55 41 468 381 10; #X obj 211 31 inlet; #X obj 65 281 outlet; #X text 61 209 total duration; #X text 45 299 bang when ready; #X obj 190 144 cnv 15 250 200 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 237 204 osc~; #X obj 237 253 *~; #X obj 306 203 vline~; #X text 311 162 attack+decay; #X text 309 221 volume envelope; #X text 203 204 sine; #X obj 237 281 outlet~; #X obj 237 178 mtof; #X text 231 302 audio out; #X obj 211 53 t a b; #X obj 65 227 delay 820; #X text 209 14 midinote; #X msg 305 180 1 20 \, 0 800 20; #X obj 364 35 inlet; #X text 362 19 dummy; #X connect 0 0 14 0; #X connect 5 0 6 0; #X connect 6 0 11 0; #X connect 7 0 6 1; #X connect 12 0 5 0; #X connect 14 0 12 0; #X connect 14 1 17 0; #X connect 14 1 15 0; #X connect 15 0 1 0; #X connect 17 0 7 0; upp-0.2.0/tutorials/note_alt_vol.pd000066400000000000000000000015551430015047600173630ustar00rootroot00000000000000#N canvas 62 60 468 381 10; #X obj 210 31 inlet; #X obj 65 281 outlet; #X text 61 209 total duration; #X obj 190 144 cnv 15 250 200 empty empty empty 20 12 0 14 -233017 -66577 0; #X obj 237 204 osc~; #X obj 237 253 *~; #X obj 306 203 vline~; #X text 311 162 attack+decay; #X text 309 221 volume envelope; #X text 203 204 sine; #X obj 237 281 outlet~; #X obj 237 178 mtof; #X text 231 302 audio out; #X obj 210 53 t b a; #X text 208 14 midinote vol; #X obj 375 33 inlet; #X text 373 16 dummy; #X msg 65 232 820; #X text 62 301 release time; #X obj 237 102 unpack; #X msg 305 180 \$1 20 \, 0 800 20; #X obj 65 258 upp.ms2s; #X connect 0 0 13 0; #X connect 4 0 5 0; #X connect 5 0 10 0; #X connect 6 0 5 1; #X connect 11 0 4 0; #X connect 13 0 17 0; #X connect 13 1 19 0; #X connect 17 0 21 0; #X connect 19 0 11 0; #X connect 19 1 20 0; #X connect 20 0 6 0; #X connect 21 0 1 0; upp-0.2.0/tutorials/out-mono.pd000066400000000000000000000015451430015047600164520ustar00rootroot00000000000000#N canvas 587 106 337 240 10; #X obj 45 31 inlet~; #X obj 103 148 dbtopow; #X obj 45 202 dac~; #X text 82 205 audio out; #X obj 103 84 nbx 4 16 -100 27 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 -1.9685 256; #X obj 106 102 hsl 128 16 -50 0 0 0 empty empty gain(dB) 75 -8 0 10 -204786 -1 -1 12200 1; #X msg 261 153 set \$1; #X msg 260 133 set \$1; #X obj 103 129 + 100; #X obj 174 32 loadbang; #X msg 174 52 -20; #X obj 103 31 inlet; #X obj 103 188 line~; #X obj 45 153 *~; #X obj 103 168 pack 0 20; #X connect 0 0 13 0; #X connect 1 0 14 0; #X connect 4 0 8 0; #X connect 4 0 7 0; #X connect 5 0 8 0; #X connect 5 0 6 0; #X connect 6 0 4 0; #X connect 7 0 5 0; #X connect 8 0 1 0; #X connect 9 0 10 0; #X connect 10 0 4 0; #X connect 11 0 4 0; #X connect 12 0 13 1; #X connect 13 0 2 0; #X connect 13 0 2 1; #X connect 14 0 12 0; #X coords 0 -1 1 1 140 40 2 100 80; upp-0.2.0/tutorials/out-multi.pd000066400000000000000000000036261430015047600166360ustar00rootroot00000000000000#N canvas 481 589 212 241 10; #X obj 33 150 dbtopow; #X obj 33 82 nbx 4 16 -100 27 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 -9.37008 256; #X obj 36 98 hsl 128 16 -50 0 0 0 empty empty volume(dB) 70 -8 0 10 -204786 -1 -1 10320 1; #X msg 128 152 set \$1; #X msg 127 132 set \$1; #X obj 33 131 + 100; #X obj 73 9 loadbang; #X msg 73 29 -20; #X obj 33 10 inlet; #N canvas 101 274 374 446 \$0-out 0; #X obj 10 10 inlet; #X restore 33 186 pd \$0-out; #N canvas 661 44 492 466 gen-outs 0; #X obj 48 89 t b a b; #X obj 70 122 until; #X obj 70 147 f; #X obj 96 147 + 1; #X obj 47 417 upp.fwd; #X msg 48 367 loadbang; #X obj 172 204 * 20; #X obj 47 392 list prepend pd-\$0-out; #X obj 48 28 loadbang; #X obj 70 168 t a a; #X obj 70 282 list prepend \$1; #X obj 48 57 f \$2; #X obj 87 225 + 1; #X obj 114 225 + 2; #X obj 88 195 * 3; #X obj 70 260 pack 0 0 0 0 0; #X msg 113 122 0; #X obj 141 224 + 3; #X obj 60 225 + 1; #X obj 172 225 + 50; #X msg 70 313 obj 10 \$6 catch~ \$1-\$2 \, obj 135 \$6 *~ 0 \, obj 170 \$6 dac~ \$2 \, connect \$3 0 \$4 0 \, connect \$4 0 \$5 0 \, connect 0 0 \$4 1; #X connect 0 0 5 0; #X connect 0 1 1 0; #X connect 0 2 16 0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 2 0 9 0; #X connect 3 0 2 1; #X connect 5 0 7 0; #X connect 6 0 19 0; #X connect 7 0 4 0; #X connect 8 0 11 0; #X connect 9 0 18 0; #X connect 9 1 6 0; #X connect 9 1 14 0; #X connect 10 0 20 0; #X connect 11 0 0 0; #X connect 12 0 15 1; #X connect 13 0 15 2; #X connect 14 0 12 0; #X connect 14 0 13 0; #X connect 14 0 17 0; #X connect 15 0 10 0; #X connect 16 0 2 1; #X connect 17 0 15 3; #X connect 18 0 15 0; #X connect 19 0 15 4; #X connect 20 0 7 0; #X restore 101 187 pd gen-outs; #X connect 0 0 9 0; #X connect 1 0 5 0; #X connect 1 0 4 0; #X connect 2 0 5 0; #X connect 2 0 3 0; #X connect 3 0 1 0; #X connect 4 0 2 0; #X connect 5 0 0 0; #X connect 6 0 7 0; #X connect 7 0 1 0; #X connect 8 0 1 0; #X coords 0 -1 1 1 140 60 1 30 60; upp-0.2.0/tutorials/out-stereo.pd000066400000000000000000000015371430015047600170040ustar00rootroot00000000000000#N canvas 587 106 457 282 10; #X obj 45 31 inlet~; #X obj 45 153 *~ 0; #X obj 202 153 dbtopow; #X obj 60 203 dac~; #X text 97 206 audio out; #X obj 202 84 nbx 4 16 -100 27 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 -17.7165 256; #X obj 205 102 hsl 128 16 -50 0 0 0 empty empty gain(dB) 75 -8 0 10 -204786 -1 -1 8200 1; #X msg 360 153 set \$1; #X msg 359 133 set \$1; #X obj 202 134 + 100; #X obj 273 32 loadbang; #X msg 273 52 -20; #X obj 101 31 inlet~; #X obj 101 153 *~ 0; #X obj 158 30 inlet; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 1 1; #X connect 2 0 13 1; #X connect 5 0 9 0; #X connect 5 0 8 0; #X connect 6 0 9 0; #X connect 6 0 7 0; #X connect 7 0 5 0; #X connect 8 0 6 0; #X connect 9 0 2 0; #X connect 10 0 11 0; #X connect 11 0 5 0; #X connect 12 0 13 0; #X connect 13 0 3 1; #X connect 14 0 5 0; #X coords 0 -1 1 1 140 40 2 200 80; upp-0.2.0/tutorials/sample.pd000066400000000000000000000012041430015047600161460ustar00rootroot00000000000000#N canvas 273 76 354 321 10; #X obj 42 184 soundfiler; #X obj 42 107 openpanel; #X obj 33 62 bng 25 250 50 0 empty empty load 0 -8 0 10 -261234 -1 -1; #X msg 42 154 read -resize \$1 \$2; #X obj 135 184 table \$1; #X symbolatom 67 60 30 0 0 2 filename - -; #X obj 42 267 outlet; #X obj 42 133 list append \$1; #X obj 42 229 upp.s2ms; #X obj 66 76 nbx 6 14 -1e+37 1e+37 0 0 empty empty ms 65 8 0 10 -262144 -1 -1 0 256; #X text 237 12 grrrr.org 2012; #X connect 0 0 8 0; #X connect 1 0 5 0; #X connect 1 0 7 0; #X connect 2 0 1 0; #X connect 3 0 0 0; #X connect 7 0 3 0; #X connect 8 0 6 0; #X connect 8 0 9 0; #X coords 0 -1 1 1 250 60 1 30 30; upp-0.2.0/upp-meta.pd000066400000000000000000000005231430015047600143720ustar00rootroot00000000000000#N canvas 10 22 200 200 10; #N canvas 20 22 420 300 META 0; #X text 10 10 META this is a prototype of a libdir meta file; #X text 10 110 VERSION 0.2; #X text 10 30 NAME upp; #X text 10 90 LICENSE CC-BY-SA; #X text 10 70 DESCRIPTION Universal polyphonic player (grrrr.org/upp) ; #X text 10 50 AUTHOR Thomas Grill; #X restore 10 10 pd META; upp-0.2.0/upp._check.pd000066400000000000000000000006751430015047600146710ustar00rootroot00000000000000#N canvas 0 22 450 300 10; #X obj 225 57 inlet; #X obj 59 59 inlet; #X obj 59 221 outlet; #X text 57 41 message; #X obj 59 193 spigot; #X obj 86 116 list split 1; #X text 176 39 single atom (float or symbol); #X obj 225 112 list split 1; #X obj 59 89 t a a; #X obj 86 160 upp.cmpatom; #X connect 0 0 7 0; #X connect 1 0 8 0; #X connect 4 0 2 0; #X connect 5 0 9 0; #X connect 7 0 9 1; #X connect 8 0 4 0; #X connect 8 1 5 0; #X connect 9 0 4 1; upp-0.2.0/upp._extract.pd000066400000000000000000000005221430015047600152550ustar00rootroot00000000000000#N canvas 0 23 367 239 10; #X obj 77 46 inlet; #X obj 77 77 list split 1; #X obj 77 127 list append; #X obj 77 164 outlet; #X obj 145 164 outlet; #X obj 193 45 inlet; #X obj 111 102 list split \$1; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 1 6 0; #X connect 2 0 3 0; #X connect 5 0 6 1; #X connect 6 0 4 0; #X connect 6 1 2 1; upp-0.2.0/upp._release.pd000066400000000000000000000005501430015047600152240ustar00rootroot00000000000000#N canvas 495 420 339 319 10; #X obj 50 36 inlet; #X obj 96 268 outlet; #X obj 96 232 delay; #X obj 50 66 route bang float; #X obj 96 206 upp.s2ms; #X msg 50 90 0; #X text 131 180 1 DSP block safety; #X obj 96 180 + 64; #X connect 0 0 3 0; #X connect 2 0 1 0; #X connect 3 0 5 0; #X connect 3 1 7 0; #X connect 4 0 2 0; #X connect 5 0 7 0; #X connect 7 0 4 0; upp-0.2.0/upp._spat.invd.pd000066400000000000000000000117371430015047600155230ustar00rootroot00000000000000#N canvas 692 189 393 526 10; #X obj 51 60 inlet; #X obj 51 475 outlet; #X obj 232 61 inlet; #X obj 51 137 f; #X msg 174 251 0; #X obj 51 251 unpack 0 0 0, f 17; #X obj 149 302 f; #X obj 124 302 f; #X text 229 43 ls coords; #X obj 51 443 list prepend; #X obj 51 356 list append; #X obj 51 82 t b a b, f 21; #X obj 51 301 t b a b b; #X obj 232 473 outlet; #N canvas 564 189 291 232 num-speakers 0; #X obj 44 33 inlet; #X obj 44 182 outlet; #X obj 44 97 list length; #X obj 44 119 - 1; #X obj 44 150 /; #X obj 125 98 list split 1; #X obj 44 62 t a a; #X obj 125 182 outlet; #X text 125 203 dim; #X text 44 204 count; #X text 43 15 list; #X obj 195 182 outlet; #X text 196 203 coords; #X connect 0 0 6 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X connect 5 0 7 0; #X connect 5 0 4 1; #X connect 5 1 11 0; #X connect 6 0 2 0; #X connect 6 1 5 0; #X restore 232 85 pd num-speakers; #N canvas 0 22 177 213 count 0; #X obj 45 24 inlet; #X obj 45 154 outlet; #X obj 45 89 until; #X obj 45 115 f; #X obj 76 116 + 1; #X obj 45 53 t a b; #X msg 90 91 0; #X connect 0 0 5 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 3 0 1 0; #X connect 4 0 3 1; #X connect 5 0 2 0; #X connect 5 1 6 0; #X connect 6 0 3 1; #X restore 51 159 pd count; #X text 306 104 coords; #X text 262 105 dim; #X text 218 104 num; #N canvas 0 22 310 272 nth_coord 0; #X obj 46 32 inlet; #X obj 189 34 inlet; #X obj 74 217 outlet; #X text 45 12 index; #X text 188 16 coordinates; #X obj 131 33 inlet; #X text 131 15 dim; #X obj 46 125 list append; #X obj 46 153 list split; #X obj 74 185 list split; #X obj 103 86 *; #X obj 46 61 t b a; #X connect 0 0 11 0; #X connect 1 0 7 1; #X connect 5 0 10 1; #X connect 5 0 9 1; #X connect 7 0 8 0; #X connect 8 1 9 0; #X connect 9 0 2 0; #X connect 10 0 8 1; #X connect 11 0 7 0; #X connect 11 1 10 0; #X restore 51 221 pd nth_coord, f 17; #X obj 51 187 t a a; #X text 131 443 prepend index; #X text 239 455 num speakers; #X text 125 355 x y z bias pow; #X text 126 284 preset to 0; #X text 49 43 x y z bias pow; #X text 48 15 Compute inverse distances to loudspeaker coordinates ; #N canvas 83 334 343 353 invd 0; #X obj 54 71 inlet; #X obj 180 68 inlet; #X obj 222 68 inlet; #X obj 264 68 inlet; #X obj 54 309 outlet; #X text 51 12 inverse distance; #N canvas 0 22 240 200 invd 0; #X obj 41 33 inlet; #X obj 41 113 pow; #X obj 114 33 inlet; #X obj 161 33 inlet; #X text 43 15 distance; #X text 116 15 bias; #X text 163 14 power; #X obj 41 149 outlet; #X obj 71 114 * -1; #X obj 41 70 + 1; #X connect 0 0 9 0; #X connect 1 0 7 0; #X connect 2 0 9 1; #X connect 3 0 8 0; #X connect 8 0 1 1; #X connect 9 0 1 0; #X restore 54 241 pd invd; #N canvas 0 22 450 300 3ddist 0; #X obj 207 31 inlet; #X obj 249 31 inlet; #X obj 291 31 inlet; #X obj 55 124 -; #X obj 56 148 t a a; #X obj 56 172 *; #X obj 96 123 -; #X obj 97 147 t a a; #X obj 97 171 *; #X obj 136 124 -; #X obj 137 148 t a a; #X obj 137 172 *; #X obj 55 198 +; #X obj 95 198 +; #X obj 56 222 sqrt; #X obj 55 31 inlet; #X obj 97 31 inlet; #X obj 139 31 inlet; #X obj 56 255 outlet, f 31; #X connect 0 0 3 1; #X connect 1 0 6 1; #X connect 2 0 9 1; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 4 1 5 1; #X connect 5 0 12 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 7 1 8 1; #X connect 8 0 13 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 10 1 11 1; #X connect 11 0 13 1; #X connect 12 0 14 0; #X connect 13 0 12 1; #X connect 14 0 18 0; #X connect 15 0 3 0; #X connect 16 0 6 0; #X connect 17 0 9 0; #X restore 54 152 pd 3ddist, f 33; #X obj 54 187 t a b; #X msg 121 219 0; #X obj 54 273 / 1; #X text 52 45 x y z bias pow; #N canvas 0 22 240 200 invd 0; #X obj 41 33 inlet; #X obj 41 113 pow; #X obj 114 33 inlet; #X obj 161 33 inlet; #X text 43 15 distance; #X text 116 15 bias; #X text 163 14 power; #X obj 41 149 outlet; #X obj 71 114 * -1; #X obj 41 70 + 1; #X connect 0 0 9 0; #X connect 1 0 7 0; #X connect 2 0 9 1; #X connect 3 0 8 0; #X connect 8 0 1 1; #X connect 9 0 1 0; #X restore 121 241 pd invd; #X obj 54 99 unpack 0 0 0 1 2, f 19; #X connect 0 0 13 0; #X connect 1 0 7 3; #X connect 2 0 7 4; #X connect 3 0 7 5; #X connect 6 0 10 0; #X connect 7 0 8 0; #X connect 8 0 6 0; #X connect 8 1 9 0; #X connect 9 0 12 0; #X connect 10 0 4 0; #X connect 12 0 10 1; #X connect 13 0 7 0; #X connect 13 1 7 1; #X connect 13 2 7 2; #X connect 13 3 6 1; #X connect 13 3 12 1; #X connect 13 4 6 2; #X connect 13 4 12 2; #X restore 51 408 pd invd, f 18; #X text 164 407 compute gain; #X connect 0 0 11 0; #X connect 2 0 14 0; #X connect 3 0 15 0; #X connect 4 0 6 1; #X connect 4 0 7 1; #X connect 5 0 12 0; #X connect 5 1 7 1; #X connect 5 2 6 1; #X connect 6 0 27 3; #X connect 7 0 27 2; #X connect 9 0 1 0; #X connect 10 0 27 0; #X connect 11 0 3 0; #X connect 11 1 10 1; #X connect 11 2 4 0; #X connect 12 0 10 0; #X connect 12 1 27 1; #X connect 12 2 7 0; #X connect 12 3 6 0; #X connect 14 0 13 0; #X connect 14 0 3 1; #X connect 14 1 19 1; #X connect 14 2 19 2; #X connect 15 0 20 0; #X connect 19 0 5 0; #X connect 20 0 19 0; #X connect 20 1 9 1; #X connect 27 0 9 0; upp-0.2.0/upp._spat.pd000066400000000000000000000045731430015047600145640ustar00rootroot00000000000000#N canvas 111 84 465 414 10; #X obj 43 133 inlet~; #X obj 100 133 inlet; #X obj 309 133 loadbang; #X text 179 187 loudspeaker definitions; #N canvas 331 68 343 316 \$0-mult 0; #X obj 20 14 inlet~; #X obj 81 15 inlet; #X restore 43 367 pd \$0-mult; #N canvas 225 161 460 489 generate-mult 0; #X obj 35 40 inlet; #X text 35 22 number of loudspeakers; #X obj 34 439 upp.fwd; #X obj 210 43 inlet; #X text 208 27 bus name; #X obj 35 95 t b a b; #X obj 57 128 until; #X obj 57 153 f; #X obj 83 153 + 1; #X msg 35 373 loadbang; #X obj 159 210 * 20; #X obj 57 174 t a a; #X obj 75 201 * 3; #X obj 57 266 pack 0 0 0 0 0; #X msg 100 128 0; #X obj 159 231 + 50; #X obj 74 231 + 2; #X obj 101 231 + 3; #X obj 128 230 + 4; #X obj 47 231 + 1; #X obj 34 398 list prepend pd-\$0-mult; #X msg 57 319 obj 40 \$6 *~ 0 \, obj 100 \$6 route \$2 \, obj 170 \$6 throw~ \$1-\$2 \, connect 0 0 \$3 0 \, connect 1 0 \$4 0 \, connect \$3 0 \$5 0 \, connect \$4 0 \$3 1; #X obj 57 291 list prepend, f 26; #X connect 0 0 5 0; #X connect 3 0 22 1; #X connect 5 0 9 0; #X connect 5 1 6 0; #X connect 5 2 14 0; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 7 0 11 0; #X connect 8 0 7 1; #X connect 9 0 20 0; #X connect 10 0 15 0; #X connect 11 0 19 0; #X connect 11 1 10 0; #X connect 11 1 12 0; #X connect 12 0 16 0; #X connect 12 0 17 0; #X connect 12 0 18 0; #X connect 13 0 22 0; #X connect 14 0 7 1; #X connect 15 0 13 4; #X connect 16 0 13 1; #X connect 17 0 13 2; #X connect 18 0 13 3; #X connect 19 0 13 0; #X connect 20 0 2 0; #X connect 21 0 20 0; #X connect 22 0 21 0; #X restore 216 368 pd generate-mult; #X obj 100 293 unpack 0 0; #X obj 100 313 + 1; #X obj 100 333 pack 0 0; #X text 95 275 index gain; #X text 38 23 Implementaion of inverse distance spatialization.; #X obj 100 215 \$1, f 10; #X obj 157 188 \$2; #X text 107 117 spatialization parameters; #X text 167 214 gain computation; #X text 316 324 bus name prefix; #X text 138 235 num loudspeakers; #X text 39 58 \$2... abstraction yielding a list of loudspeaker definitions ; #X text 39 74 \$3... name of output bus; #X text 39 42 \$1... gain computation algo; #X obj 309 343 symbol \$3; #X obj 309 155 t a a; #X connect 0 0 4 0; #X connect 1 0 11 0; #X connect 2 0 21 0; #X connect 6 0 7 0; #X connect 6 1 8 1; #X connect 7 0 8 0; #X connect 8 0 4 1; #X connect 11 0 6 0; #X connect 11 1 5 0; #X connect 12 0 11 1; #X connect 20 0 5 1; #X connect 21 0 12 0; #X connect 21 1 20 0; upp-0.2.0/upp._spat.vbap.pd000066400000000000000000000025341430015047600155060ustar00rootroot00000000000000#N canvas 723 113 429 389 10; #X obj 51 60 inlet; #X obj 51 331 outlet; #X obj 232 61 inlet; #X text 229 43 ls coords; #X obj 259 329 outlet; #N canvas 564 189 291 232 num-speakers 0; #X obj 44 33 inlet; #X obj 44 182 outlet; #X obj 44 97 list length; #X obj 44 123 - 1; #X obj 44 150 /; #X obj 125 98 list split 1; #X obj 44 62 t a a; #X obj 125 182 outlet; #X text 125 203 dim; #X text 44 204 count; #X text 43 15 list; #X obj 195 182 outlet; #X text 196 203 coords; #X obj 80 122 - 1; #X connect 0 0 6 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 1 0; #X connect 5 0 7 0; #X connect 5 0 13 0; #X connect 5 1 11 0; #X connect 6 0 2 0; #X connect 6 1 5 0; #X connect 13 0 4 1; #X restore 259 120 pd num-speakers; #X text 334 139 coords; #X text 289 140 dim; #X text 245 139 num; #X text 266 311 num speakers; #X text 49 43 azimuth elevation spread; #X obj 51 181 unpack 0 0 0; #X obj 51 293 vbap/vbap 0 0 0; #X obj 51 243 t b a; #X obj 181 181 list prepend define_loudspeakers; #X obj 181 204 list trim; #X obj 232 87 t a a; #X text 48 15 Use VBAP external (seems unmaintained; #X connect 0 0 11 0; #X connect 2 0 16 0; #X connect 5 0 4 0; #X connect 11 0 13 0; #X connect 11 1 12 2; #X connect 11 2 12 3; #X connect 12 0 1 0; #X connect 13 0 12 0; #X connect 13 1 12 1; #X connect 14 0 15 0; #X connect 15 0 12 0; #X connect 16 0 14 0; #X connect 16 1 5 0; upp-0.2.0/upp._vlinesub.pd000066400000000000000000000155041430015047600154400ustar00rootroot00000000000000#N canvas 148 172 470 390 10; #X obj 42 105 inlet; #X obj 42 337 outlet; #X obj 123 144 tgl 15 0 empty empty busy 17 7 0 10 -262144 -1 -1 0 1; #X obj 105 120 r \$0-free; #X obj 105 165 s \$0-busy; #X text 46 319 forward message; #X obj 247 177 change -1; #X obj 247 199 sel 1; #X obj 247 223 s \$0-free; #X obj 247 154 > 0; #X obj 247 128 r \$0-offset; #N canvas 99 410 563 403 init 0; #X text 196 96 del; #X obj 262 117 s \$0-startval; #X obj 40 122 s \$0-target; #X obj 128 122 s \$0-dur; #X text 286 174 stop; #X obj 189 150 t a b a b; #X msg 223 219 1; #X msg 257 219 0; #X obj 241 240 s \$0-lock; #X obj 114 180 +; #X obj 40 76 unpack 0 0 0 0 0, f 50; #X text 125 95 dur; #X text 270 98 start; #X obj 40 31 inlet; #X obj 337 275 outlet; #X text 29 95 target value; #X obj 223 174 s \$1-stop; #X obj 214 276 s \$0-slopestart; #X obj 125 276 s \$0-slopeend; #X obj 41 275 s \$0-stoppos; #X obj 114 202 t a a; #X obj 188 354 s \$0-startpos; #X obj 188 332 *; #X obj 218 309 r \$1-busy; #X text 248 332 if we are the only voice \, set \$0-startpos to 0; #X text 329 99 blocklen; #X obj 41 240 + 1e+38; #X obj 218 331 > 1; #X connect 5 0 9 1; #X connect 5 0 17 0; #X connect 5 0 22 0; #X connect 5 1 6 0; #X connect 5 2 16 0; #X connect 5 3 7 0; #X connect 6 0 8 0; #X connect 7 0 8 0; #X connect 9 0 20 0; #X connect 10 0 2 0; #X connect 10 1 3 0; #X connect 10 1 9 0; #X connect 10 2 5 0; #X connect 10 3 1 0; #X connect 10 4 14 0; #X connect 13 0 10 0; #X connect 20 0 26 0; #X connect 20 1 18 0; #X connect 22 0 21 0; #X connect 23 0 27 0; #X connect 26 0 19 0; #X connect 27 0 22 1; #X restore 103 231 pd init; #N canvas 366 195 777 579 DSP 0; #X obj 359 136 upp.ramp~; #X obj 137 49 r \$0-busy; #X obj 644 32 r \$0-dur; #X obj 359 330 clip~ 0 1; #X obj 359 451 +~ 0; #X obj 359 419 *~ 0; #X obj 475 383 r \$0-startval; #X obj 397 383 r \$0-target; #X obj 397 418 -; #X obj 487 500 *~; #X text 598 365 mask for this part; #X text 358 16 tick; #X obj 359 31 r \$0-offset; #X obj 380 189 -; #X obj 359 55 t b a; #X obj 487 527 throw~ \$1-out; #X obj 506 30 r \$0-slopestart; #N canvas 711 372 401 326 partmask 0; #X obj 36 49 inlet~; #X obj 124 49 inlet; #X obj 237 145 -; #X obj 237 111 t b a; #X text 267 144 offset-stoppos; #X obj 237 169 * -1; #X obj 237 89 r \$0-stoppos; #X obj 139 90 r \$0-startpos; #X obj 124 148 -; #X obj 139 113 t b a; #X obj 124 169 * -1; #X obj 36 247 outlet~; #X obj 36 209 expr~ ($v1 >= $f2)*($v1 < $f3); #X text 125 23 running offset; #X text 36 24 unity ramp; #X text 34 284 signal mask between startpos and stoppos; #X connect 0 0 12 0; #X connect 1 0 2 0; #X connect 1 0 8 0; #X connect 2 0 5 0; #X connect 3 0 2 0; #X connect 3 1 2 1; #X connect 5 0 12 2; #X connect 6 0 3 0; #X connect 7 0 9 0; #X connect 8 0 10 0; #X connect 9 0 8 0; #X connect 9 1 8 1; #X connect 10 0 12 1; #X connect 12 0 11 0; #X restore 596 385 pd partmask; #N canvas 0 22 260 170 step 0; #X obj 41 30 inlet~; #X obj 41 114 outlet~; #X obj 157 61 == 0; #X obj 41 60 expr~ $v1 >= 0; #X obj 157 31 inlet; #X obj 157 115 switch~; #X connect 0 0 3 0; #X connect 2 0 5 0; #X connect 3 0 1 0; #X connect 4 0 2 0; #X restore 400 290 pd step; #N canvas 0 22 317 226 slope 0; #X obj 55 33 inlet~; #X obj 55 142 *~ 0; #X obj 137 77 sel 0; #X msg 137 97 0; #X msg 169 97 1 \$1; #X obj 169 118 /; #X obj 137 33 inlet; #X obj 55 172 outlet~; #X obj 236 75 != 0; #X obj 236 99 switch~; #X connect 0 0 1 0; #X connect 1 0 7 0; #X connect 2 0 3 0; #X connect 2 1 4 0; #X connect 3 0 1 1; #X connect 4 0 5 0; #X connect 5 0 1 1; #X connect 6 0 2 0; #X connect 6 0 8 0; #X connect 8 0 9 0; #X restore 309 289 pd slope; #X text 319 271 either; #X text 414 271 or; #X text 362 119 unity ramp; #X text 305 364 transposing to value range; #X obj 359 210 +~ 0; #X obj 160 72 switch~; #X obj 33 50 inlet; #X obj 139 199 upp.dspintv; #X obj 215 49 r \$0-reset; #X obj 74 234 *; #X obj 74 258 s \$0-offset; #X obj 215 73 t b b; #X text 32 26 running offset; #X obj 124 137 spigot; #X obj 82 137 delay; #X obj 81 94 upp.s2ms; #X connect 0 0 17 0; #X connect 0 0 24 0; #X connect 1 0 25 0; #X connect 1 0 33 1; #X connect 2 0 18 1; #X connect 2 0 19 1; #X connect 3 0 5 0; #X connect 4 0 9 0; #X connect 5 0 4 0; #X connect 6 0 4 1; #X connect 6 0 8 1; #X connect 7 0 8 0; #X connect 8 0 5 1; #X connect 9 0 15 0; #X connect 12 0 14 0; #X connect 13 0 24 1; #X connect 14 0 0 0; #X connect 14 1 13 0; #X connect 14 1 17 1; #X connect 16 0 13 1; #X connect 17 0 9 1; #X connect 18 0 3 0; #X connect 19 0 3 0; #X connect 24 0 18 0; #X connect 24 0 19 0; #X connect 26 0 29 1; #X connect 26 0 35 0; #X connect 27 0 29 0; #X connect 28 0 31 0; #X connect 29 0 30 0; #X connect 31 0 27 0; #X connect 31 1 27 1; #X connect 31 1 33 0; #X connect 33 0 34 0; #X connect 34 0 27 0; #X connect 34 0 33 0; #X connect 35 0 34 1; #X restore 248 284 pd DSP; #N canvas 0 22 395 368 stop 0; #X obj 30 73 spigot 0; #X obj 89 73 r \$0-busy; #X obj 89 99 r \$0-lock; #X obj 30 98 spigot 1; #X text 48 131 we are stopped from outside; #X text 46 148 -> update stop position; #X obj 30 47 r \$1-stop; #X obj 30 254 min; #X obj 63 227 r \$0-stoppos; #X obj 63 322 s \$0-stoppos; #X obj 30 289 select; #X text 77 306 output on change; #X obj 30 202 +; #X obj 45 178 r \$0-offset; #X obj 209 256 min; #X obj 209 291 select; #X text 256 308 output on change; #X obj 242 229 r \$0-slopeend; #X obj 242 324 s \$0-slopeend; #X text 28 24 Stop signal by other voice (sample delay from now); #X connect 0 0 3 0; #X connect 1 0 0 1; #X connect 2 0 3 1; #X connect 3 0 12 0; #X connect 6 0 0 0; #X connect 7 0 10 0; #X connect 8 0 7 1; #X connect 8 0 10 1; #X connect 10 1 9 0; #X connect 12 0 7 0; #X connect 12 0 14 0; #X connect 13 0 12 1; #X connect 14 0 15 0; #X connect 15 1 18 0; #X connect 17 0 14 1; #X connect 17 0 15 1; #X restore 157 231 pd stop; #X obj 326 128 r \$0-slopeend; #X text 246 110 signal end after slope end; #X text 41 13 This is used in upp.vline~; #X text 41 28 It plays one ramp segment; #N canvas 0 22 225 200 incdec_voices 0; #X obj 37 24 r \$0-busy; #X obj 37 48 change -1; #X obj 37 70 sel 0 1; #X obj 37 124 +; #X msg 37 92 -1; #X msg 68 92 1; #X obj 68 125 max 0; #X obj 37 159 s \$1-busy; #X obj 121 24 r \$1-busy; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 4 0; #X connect 2 1 5 0; #X connect 3 0 6 0; #X connect 3 0 7 0; #X connect 4 0 3 0; #X connect 5 0 3 0; #X connect 6 0 3 1; #X connect 8 0 3 1; #X restore 247 336 pd incdec_voices; #X text 245 266 actual synthesis; #X text 245 318 increment/decrement busy voices; #X text 42 50 grrrr.org 2016; #X text 39 84 targetval dur delay startval blocksize; #X obj 42 143 upp.flowctrl; #X obj 76 278 s \$0-reset; #X obj 76 193 t b a; #X connect 0 0 23 0; #X connect 3 0 23 1; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 9 0 6 0; #X connect 10 0 9 0; #X connect 11 0 12 0; #X connect 14 0 9 1; #X connect 23 0 1 0; #X connect 23 1 25 0; #X connect 23 2 2 0; #X connect 23 2 4 0; #X connect 25 0 24 0; #X connect 25 1 11 0; upp-0.2.0/upp._xhelper.pd000066400000000000000000000031621430015047600152550ustar00rootroot00000000000000#N canvas 396 109 780 637 10; #X obj 69 38 inlet; #X obj 367 420 t a b; #X obj 69 562 outlet; #X text 365 402 overflow; #X obj 447 422 t b; #X text 436 440 release; #X obj 216 562 outlet; #X obj 362 22 loadbang; #X msg 362 44 0; #X obj 50 95 cnv 15 200 100 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 186 166 if busy; #X text 74 165 if vacant; #X obj 198 111 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 164 108 busy; #X msg 288 116 1; #X text 287 99 set busy; #X text 70 579 pass on; #X text 212 579 release; #X obj 429 259 spigot; #X obj 178 38 inlet; #X obj 294 386 t a; #X msg 273 337 -1; #X obj 260 423 nbx 5 14 -1e+37 1e+37 0 0 empty empty active 0 -8 0 10 -262144 -1 -1 0 256; #X text 173 20 modulation message; #X obj 256 254 t a b; #X msg 238 338 1; #X obj 260 385 +; #X obj 306 567 outlet; #X text 303 588 voices active; #X text 67 20 event message; #X obj 506 378 inlet pass_on; #X obj 644 374 inlet release; #X obj 506 332 outlet event_msg; #X obj 643 330 outlet mod_msg; #X text 648 21 grrrr.org 2012; #X obj 135 143 upp.dilemma; #X connect 0 0 35 0; #X connect 1 0 2 0; #X connect 1 1 14 0; #X connect 1 1 21 0; #X connect 4 0 6 0; #X connect 4 0 8 0; #X connect 4 0 21 0; #X connect 7 0 8 0; #X connect 8 0 12 0; #X connect 8 0 26 0; #X connect 12 0 35 1; #X connect 14 0 12 0; #X connect 18 0 33 0; #X connect 19 0 18 0; #X connect 20 0 26 1; #X connect 21 0 26 0; #X connect 22 0 27 0; #X connect 24 0 32 0; #X connect 24 1 25 0; #X connect 25 0 26 0; #X connect 26 0 20 0; #X connect 26 0 22 0; #X connect 26 0 18 1; #X connect 30 0 1 0; #X connect 31 0 4 0; #X connect 35 0 24 0; #X connect 35 1 2 0; upp-0.2.0/upp.cmpatom.pd000066400000000000000000000014671430015047600151150ustar00rootroot00000000000000#N canvas 383 280 397 296 10; #X obj 63 31 inlet; #X obj 128 237 outlet; #X obj 220 30 inlet; #X obj 220 57 route float symbol; #X msg 220 80 0; #X msg 260 81 1; #X msg 260 100 0; #X msg 309 101 1; #X msg 155 202 0; #X obj 64 75 upp.dilemma; #X obj 110 99 upp.dilemma; #X obj 176 158 select s; #X msg 102 201 1; #X obj 64 158 select 0; #X text 288 23 grrrr.org 2012; #X connect 0 0 9 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 3 0 13 1; #X connect 3 1 5 0; #X connect 3 1 6 0; #X connect 3 1 11 1; #X connect 3 2 7 0; #X connect 4 0 9 1; #X connect 5 0 9 1; #X connect 6 0 10 1; #X connect 7 0 10 1; #X connect 8 0 1 0; #X connect 9 0 13 0; #X connect 9 1 10 0; #X connect 10 0 11 0; #X connect 10 1 8 0; #X connect 11 0 12 0; #X connect 11 1 8 0; #X connect 12 0 1 0; #X connect 13 0 12 0; #X connect 13 1 8 0; upp-0.2.0/upp.comm.pd000066400000000000000000000020241430015047600143760ustar00rootroot00000000000000#N canvas 123 398 369 376 10; #X obj 238 53 loadbang; #X obj 40 53 route start mod; #X obj 40 25 r \$1-\$2; #X obj 115 90 spigot; #X obj 40 179 t a a b; #X text 236 23 grrrr.org 2012; #X obj 115 132 upp._check; #X obj 22 206 cnv 15 180 25 empty empty empty 20 12 0 14 -204786 -66577 0; #X obj 224 207 cnv 15 100 100 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 38 325 release; #X obj 256 280 switch~; #X msg 273 233 1; #X msg 238 233 0; #X obj 256 259 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 40 308 s \$1; #X obj 40 282 list prepend \$2; #X obj 40 257 t b b; #X obj 40 236 upp._release; #X obj 40 210 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X connect 0 0 12 0; #X connect 1 0 4 0; #X connect 1 1 3 0; #X connect 2 0 1 0; #X connect 3 0 6 0; #X connect 4 0 18 0; #X connect 4 1 6 1; #X connect 4 2 11 0; #X connect 6 0 18 1; #X connect 11 0 13 0; #X connect 12 0 13 0; #X connect 13 0 10 0; #X connect 13 0 3 1; #X connect 15 0 14 0; #X connect 16 0 15 0; #X connect 16 1 12 0; #X connect 17 0 16 0; #X connect 18 0 17 0; upp-0.2.0/upp.delay-help.pd000066400000000000000000000066021430015047600154750ustar00rootroot00000000000000#N canvas 411 153 881 347 10; #X msg 69 67 0; #X msg 105 66 1; #X floatatom 69 296 5 0 0 0 - - -, f 5; #X msg 190 65 64; #X msg 139 42 63.4; #X msg 138 66 63.5; #X msg 140 87 63.6; #X msg 189 40 63.9999; #X floatatom 108 297 5 0 0 0 - - -, f 5; #X floatatom 147 297 5 0 0 0 - - -, f 5; #X msg 190 90 64.5; #X msg 192 141 1000; #X obj 69 161 t a b; #X msg 359 61 0; #X msg 395 60 1; #X msg 480 59 64; #X msg 429 36 63.4; #X msg 428 60 63.5; #X msg 430 81 63.6; #X msg 479 34 63.9999; #X msg 481 109 128; #X msg 480 84 64.5; #X msg 482 135 1000; #N canvas 0 22 239 213 print_dsp_blocks 0; #X obj 143 168 print~; #X obj 36 105 spigot; #X obj 105 105 - 1; #X obj 36 127 t a b; #X obj 36 80 t a a; #X obj 39 20 bang~; #X obj 37 59 f; #X obj 94 20 inlet; #X obj 145 20 inlet~; #X obj 94 42 t f b; #X connect 1 0 3 0; #X connect 2 0 6 1; #X connect 3 0 2 0; #X connect 3 1 0 0; #X connect 4 0 1 0; #X connect 4 1 1 1; #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 9 0 6 1; #X restore 358 306 pd print_dsp_blocks; #X obj 469 279 sig~; #X msg 448 234 1; #X msg 479 234 0; #X obj 473 180 print -----------; #X obj 359 155 t a b; #X msg 358 280 3; #X obj 359 197 upp.delay; #X obj 69 214 upp.delay; #X obj 655 196 upp.delay; #N canvas 0 22 239 213 print_dsp_blocks 0; #X obj 143 168 print~; #X obj 36 105 spigot; #X obj 105 105 - 1; #X obj 36 127 t a b; #X obj 36 80 t a a; #X obj 39 20 bang~; #X obj 37 59 f; #X obj 94 20 inlet; #X obj 145 20 inlet~; #X obj 94 42 t f b; #X connect 1 0 3 0; #X connect 2 0 6 1; #X connect 3 0 2 0; #X connect 3 1 0 0; #X connect 4 0 1 0; #X connect 4 1 1 1; #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 9 0 6 1; #X restore 648 294 pd print_dsp_blocks; #X obj 759 267 sig~; #X obj 655 140 t b b; #X msg 655 168 64; #X msg 654 230 0; #X obj 655 77 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 718 195 upp.delay; #X msg 718 167 64; #X obj 781 194 upp.delay; #X msg 781 166 64; #X msg 694 230 1; #X msg 733 231 2; #X msg 773 230 3; #X msg 648 268 4; #X msg 192 166 3392; #X msg 192 188 3456; #X text 229 118 2/0; #X text 230 165 53/0; #X text 231 188 54/0; #X obj 69 266 upp.dspintv; #X text 229 142 15/40; #X msg 191 115 128; #X connect 0 0 12 0; #X connect 1 0 12 0; #X connect 3 0 12 0; #X connect 4 0 12 0; #X connect 5 0 12 0; #X connect 6 0 12 0; #X connect 7 0 12 0; #X connect 10 0 12 0; #X connect 11 0 12 0; #X connect 12 0 31 0; #X connect 12 1 52 1; #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 19 0 28 0; #X connect 20 0 28 0; #X connect 21 0 28 0; #X connect 22 0 28 0; #X connect 24 0 23 1; #X connect 25 0 24 0; #X connect 26 0 24 0; #X connect 28 0 30 0; #X connect 28 1 26 0; #X connect 28 1 27 0; #X connect 28 1 29 0; #X connect 29 0 23 0; #X connect 30 0 25 0; #X connect 31 0 52 0; #X connect 31 1 8 0; #X connect 31 2 9 0; #X connect 32 0 40 0; #X connect 32 0 43 0; #X connect 34 0 33 1; #X connect 35 0 36 0; #X connect 35 1 46 0; #X connect 35 1 37 0; #X connect 36 0 32 0; #X connect 37 0 34 0; #X connect 38 0 35 0; #X connect 39 0 42 0; #X connect 39 0 44 0; #X connect 40 0 39 0; #X connect 41 0 45 0; #X connect 42 0 41 0; #X connect 43 0 34 0; #X connect 44 0 34 0; #X connect 45 0 34 0; #X connect 46 0 33 0; #X connect 47 0 12 0; #X connect 48 0 12 0; #X connect 52 0 2 0; #X connect 54 0 12 0; upp-0.2.0/upp.delay.pd000066400000000000000000000071561430015047600145540ustar00rootroot00000000000000#N canvas 374 444 453 411 10; #X obj 41 86 inlet; #X obj 41 343 outlet; #X obj 151 344 outlet; #X text 95 362 sub-block delay (samples); #X obj 41 189 f \$1; #X text 38 362 bang; #X text 40 17 delay with DSP block boundary correction; #X obj 268 345 outlet; #X text 41 33 grrrr.org \, 2012-2016; #X text 265 364 sub-sample loss (samples); #X text 40 68 bang / delay (samples); #N canvas 220 232 248 255 delay_blocks 0; #X obj 40 36 inlet; #X obj 41 215 outlet; #X obj 171 36 inlet; #X msg 171 144 stop; #X obj 40 59 sel 0; #X obj 103 36 inlet; #X text 171 18 stop; #X text 93 19 blocksize; #X obj 67 183 delay; #X obj 67 97 * 64; #X obj 67 150 upp.s2ms; #N canvas 151 291 376 479 corr 0; #X obj 53 34 inlet; #X obj 119 232 t a a, f 7; #X obj 119 285 -; #X msg 176 369 0; #X obj 119 255 int; #X obj 119 341 + 1; #X obj 119 105 upp.s2ms; #X obj 119 185 upp.ms2s; #X text 176 185 this happens inside [delay]; #X obj 53 73 t a a; #X obj 53 403 +; #X obj 53 432 outlet; #X obj 119 367 * 2; #X text 108 140 round-off error occurs here; #X obj 119 313 moses -0.5; #X connect 0 0 9 0; #X connect 1 0 4 0; #X connect 1 1 2 1; #X connect 2 0 14 0; #X connect 3 0 10 1; #X connect 4 0 2 0; #X connect 5 0 12 0; #X connect 6 0 7 0; #X connect 7 0 1 0; #X connect 9 0 10 0; #X connect 9 1 6 0; #X connect 10 0 11 0; #X connect 12 0 10 1; #X connect 14 0 5 0; #X connect 14 1 3 0; #X restore 120 105 pd corr; #X text 36 18 blocks; #X obj 67 125 + 0.0001; #X connect 0 0 4 0; #X connect 2 0 3 0; #X connect 3 0 8 0; #X connect 4 0 1 0; #X connect 4 1 9 0; #X connect 5 0 9 1; #X connect 8 0 1 0; #X connect 9 0 13 0; #X connect 10 0 8 0; #X connect 11 0 10 0; #X connect 13 0 10 0; #X restore 41 257 pd delay_blocks; #N canvas 96 92 332 300 whole_blocks 0; #X obj 53 44 inlet; #X obj 52 239 outlet; #X obj 176 237 outlet; #X obj 53 107 / 64; #X obj 53 134 int; #X obj 53 80 t a a; #X obj 53 163 t a a; #X obj 177 176 -; #X obj 176 199 * -1; #X text 77 136 whole blocks; #X obj 80 189 * 64; #X text 54 25 samples; #X text 51 262 whole blocks; #X text 175 259 remaining samples; #X obj 171 46 inlet; #X text 171 28 blocksize; #X connect 0 0 5 0; #X connect 3 0 4 0; #X connect 4 0 6 0; #X connect 5 0 3 0; #X connect 5 1 7 1; #X connect 6 0 1 0; #X connect 6 1 10 0; #X connect 7 0 8 0; #X connect 8 0 2 0; #X connect 10 0 7 0; #X connect 14 0 3 1; #X connect 14 0 10 1; #X restore 41 219 pd whole_blocks; #N canvas 0 22 341 256 whole_samples 0; #X obj 53 179 outlet; #X obj 54 109 int; #X obj 168 114 -; #X obj 168 176 outlet; #X obj 54 134 t a a; #X obj 168 136 * -1; #X obj 54 80 t a a; #X obj 56 48 inlet; #X text 57 21 samples; #X text 52 206 whole samples; #X text 171 201 fractional samples; #X connect 1 0 4 0; #X connect 2 0 5 0; #X connect 4 0 0 0; #X connect 4 1 2 0; #X connect 5 0 3 0; #X connect 6 0 1 0; #X connect 6 1 2 1; #X connect 7 0 6 0; #X restore 166 257 pd whole_samples; #X obj 41 285 t b b b; #X obj 151 319 f; #X obj 268 321 f; #X obj 126 87 inlet; #X obj 41 114 route bang float stop; #X text 211 70 blocksize (should be adaptive); #X obj 216 88 loadbang; #X obj 216 136 select 0; #X msg 216 158 64; #X obj 278 89 inlet; #X obj 270 185 t a; #X obj 216 115 f \$2; #X connect 0 0 18 0; #X connect 4 0 12 0; #X connect 11 0 14 0; #X connect 12 0 11 0; #X connect 12 1 13 0; #X connect 13 0 15 1; #X connect 13 1 16 1; #X connect 14 0 1 0; #X connect 14 1 15 0; #X connect 14 2 16 0; #X connect 15 0 2 0; #X connect 16 0 7 0; #X connect 17 0 4 1; #X connect 18 0 4 0; #X connect 18 1 4 0; #X connect 18 2 11 2; #X connect 20 0 25 0; #X connect 21 0 22 0; #X connect 21 1 24 0; #X connect 22 0 24 0; #X connect 23 0 24 0; #X connect 24 0 12 1; #X connect 24 0 11 1; #X connect 25 0 21 0; upp-0.2.0/upp.delay~-help.pd000066400000000000000000000010721430015047600156670ustar00rootroot00000000000000#N canvas 276 275 450 300 10; #X obj 98 159 upp.delay~; #X obj 58 228 print~; #X obj 98 120 sig~; #X obj 58 69 t b a; #X obj 58 43 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1 ; #X floatatom 155 121 5 0 0 0 - - -, f 5; #X obj 156 41 loadbang; #X msg 155 64 10; #X text 194 122 delay in samples; #X text 174 158 non-integer sample times are rounded; #X text 175 175 to next integer sample time value; #X connect 0 0 1 0; #X connect 2 0 0 0; #X connect 3 0 1 0; #X connect 3 1 2 0; #X connect 4 0 3 0; #X connect 5 0 0 1; #X connect 6 0 7 0; #X connect 7 0 5 0; upp-0.2.0/upp.delay~.pd000066400000000000000000000014351430015047600147440ustar00rootroot00000000000000#N canvas 0 22 356 217 10; #N canvas 484 237 243 216 delwrite 0; #X obj 47 32 inlet~; #X obj 46 132 outlet~; #X obj 47 67 delwrite~ \$0-delay 10; #X connect 0 0 2 0; #X restore 34 82 pd delwrite; #N canvas 0 22 307 200 delread 0; #X obj 70 37 inlet~; #X obj 69 128 outlet~; #X obj 187 36 inlet; #X obj 69 97 delread~ \$0-delay; #X connect 2 0 3 0; #X connect 3 0 1 0; #X restore 34 145 pd delread; #X obj 34 46 inlet~; #X obj 34 171 outlet~; #X obj 162 45 inlet; #X obj 162 88 upp.s2ms; #X text 155 66 delay(samples); #X text 33 18 grrrr.org \, 2012-2016; #X text 108 143 delread is rounding (not truncating); #X text 108 156 to sample times; #X text 106 170 (no need to correct incoming values); #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 2 0 0 0; #X connect 4 0 5 0; #X connect 5 0 1 1; upp-0.2.0/upp.dilemma.pd000066400000000000000000000012371430015047600150600ustar00rootroot00000000000000#N canvas 68 50 453 244 10; #X obj 41 139 spigot; #X obj 180 141 spigot; #X obj 74 117 == 0; #X obj 44 33 inlet; #X obj 41 190 outlet; #X obj 180 191 outlet; #X obj 184 33 inlet; #X text 171 65 not directly setting the spigot args; #X text 171 79 avoids problems if right outlet sets it; #X obj 84 68 t a b; #X obj 137 68 f 0; #X text 43 12 data; #X text 182 13 control 0/1; #X text 184 160 if control==1; #X text 44 158 if control==0; #X text 352 11 grrrr.org 2012; #X connect 0 0 4 0; #X connect 1 0 5 0; #X connect 2 0 0 1; #X connect 3 0 9 0; #X connect 6 0 10 1; #X connect 9 0 0 0; #X connect 9 0 1 0; #X connect 9 1 10 0; #X connect 10 0 1 1; #X connect 10 0 2 0; upp-0.2.0/upp.dirac~-help.pd000066400000000000000000000026601430015047600156570ustar00rootroot00000000000000#N canvas 208 60 516 517 10; #N canvas 0 22 239 213 print_dsp_blocks 0; #X obj 143 168 print~; #X obj 36 105 spigot; #X obj 105 105 - 1; #X obj 36 127 t a b; #X obj 36 80 t a a; #X obj 39 20 bang~; #X obj 37 59 f; #X obj 94 20 inlet; #X obj 145 20 inlet~; #X obj 94 42 t f b; #X connect 1 0 3 0; #X connect 2 0 6 1; #X connect 3 0 2 0; #X connect 3 1 0 0; #X connect 4 0 1 0; #X connect 4 1 1 1; #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 9 0 6 1; #X restore 28 327 pd print_dsp_blocks; #X obj 85 120 print ============; #X text 26 36 Time units are samples; #X obj 28 97 hradio 15 1 0 3 empty empty examples 0 -8 0 10 -260097 -1 -1 2; #X obj 28 120 t b a b; #X obj 46 147 sel 0 1 2 3; #X text 26 56 grrrr.org 2018; #X msg 28 275 1; #X msg 47 175 1 0; #X msg 64 203 0.5 3; #X msg 79 226 0.5 3 \, 0.7 7; #X obj 64 275 upp.dirac~ 8; #X text 25 430 - block size (default=64); #X text 25 400 - voices (default=2): number of ramp parts within one DSP block. Overflow will be signaled at right outlet if exceeded; #X text 26 454 The block size can also be set through the right inlet ; #X text 24 384 upp.dirac~ can be given two arguments:; #X text 26 17 Dirac spike; #X connect 3 0 4 0; #X connect 4 0 7 0; #X connect 4 1 5 0; #X connect 4 2 1 0; #X connect 5 0 8 0; #X connect 5 1 9 0; #X connect 5 2 10 0; #X connect 7 0 0 0; #X connect 8 0 11 0; #X connect 9 0 11 0; #X connect 10 0 11 0; #X connect 11 0 0 1; upp-0.2.0/upp.dirac~.pd000066400000000000000000000013121430015047600147220ustar00rootroot00000000000000#N canvas 0 23 398 335 10; #X obj 37 80 inlet; #X obj 77 284 outlet~; #X text 32 34 grrrr.org 2018; #X text 32 14 Dirac spike; #X obj 275 90 inlet; #X obj 77 201 pack 0 0 1; #X obj 134 179 + 1; #X obj 37 105 route bang float list; #X obj 77 155 unpack; #X text 34 63 bang or volume; #X msg 77 231 0 \, \$1 0 \$2 \, 0 0 \$3; #X text 273 70 block size; #X obj 77 254 upp.vline~ \$1 \$2; #X msg 37 126 1 0; #X msg 78 125 \$1 0; #X connect 0 0 7 0; #X connect 4 0 12 1; #X connect 5 0 10 0; #X connect 6 0 5 2; #X connect 7 0 13 0; #X connect 7 1 14 0; #X connect 7 2 8 0; #X connect 8 0 5 0; #X connect 8 1 6 0; #X connect 8 1 5 1; #X connect 10 0 12 0; #X connect 12 0 1 0; #X connect 13 0 8 0; #X connect 14 0 8 0; upp-0.2.0/upp.dspintv-help.pd000066400000000000000000000020231430015047600160570ustar00rootroot00000000000000#N canvas 0 22 450 300 10; #X obj 46 83 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 46 115 t b b; #X obj 117 81 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 117 113 t b b; #X obj 224 83 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 224 115 t b b; #X obj 103 149 upp.delay 1; #X obj 216 144 upp.delay 64; #X obj 318 83 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 318 115 t b b; #X obj 310 144 upp.delay 640; #X floatatom 46 262 5 0 0 0 - - -, f 5; #X obj 47 233 upp.dspintv; #X text 45 15 Measure time interval in DSP ticks; #X text 46 30 0 indicates that messages fall within the same DSP tick ; #X text 45 46 grrrr.org 2016; #X connect 0 0 1 0; #X connect 1 0 12 0; #X connect 1 1 12 1; #X connect 2 0 3 0; #X connect 3 0 6 0; #X connect 3 1 12 1; #X connect 4 0 5 0; #X connect 5 0 7 0; #X connect 5 1 12 1; #X connect 6 0 12 0; #X connect 7 0 12 0; #X connect 8 0 9 0; #X connect 9 0 10 0; #X connect 9 1 12 1; #X connect 10 0 12 0; #X connect 12 0 11 0; upp-0.2.0/upp.dspintv.pd000066400000000000000000000017451430015047600151430ustar00rootroot00000000000000#N canvas 0 22 484 368 10; #X obj 44 89 inlet; #X obj 44 296 outlet; #X obj 247 91 inlet; #X text 249 72 reset; #X text 44 71 test; #X obj 246 275 sig~ 1; #X obj 246 299 tabsend~ \$0-table; #X obj 246 238 table \$0-table 1; #X obj 335 183 switch~; #X obj 335 87 loadbang; #X msg 335 113 0; #X obj 299 275 tabreceive~ \$0-table; #X msg 293 146 1; #X obj 247 213 tabwrite \$0-table; #X msg 247 148 0; #X obj 44 240 tabread \$0-table; #X msg 44 144 0; #X text 45 35 grrrr.org 2016; #X obj 247 116 b; #X obj 44 117 route stop; #X obj 44 193 b; #X msg 45 215 0; #X text 45 18 Query time between right and left message input in DSP ticks; #X connect 0 0 19 0; #X connect 2 0 18 0; #X connect 5 0 6 0; #X connect 9 0 10 0; #X connect 10 0 8 0; #X connect 10 0 13 1; #X connect 11 0 6 0; #X connect 12 0 8 0; #X connect 14 0 13 0; #X connect 15 0 1 0; #X connect 16 0 8 0; #X connect 18 0 12 0; #X connect 18 0 14 0; #X connect 19 0 16 0; #X connect 19 1 20 0; #X connect 20 0 21 0; #X connect 21 0 15 0; upp-0.2.0/upp.dynchain.pd000066400000000000000000000045671430015047600152560ustar00rootroot00000000000000#N canvas 708 22 574 700 10; #X obj 67 104 inlet; #X obj 67 206 until; #X msg 113 206 0; #X obj 67 227 f; #X obj 248 643 list trim; #X msg 247 597 list obj 50 \$1; #X obj 67 176 t a b a; #X obj 61 333 moses 1; #X obj 120 333 moses; #X obj 177 306 - 1; #X obj 71 413 t a a; #X obj 72 456 pack; #X msg 72 476 connect \$1 0 \$2 0 \, connect 1 0 \$2 1 \, connect \$2 1 3 0; #X obj 159 412 t a a; #X obj 160 455 pack; #X msg 160 501 connect \$1 0 \$2 0 \, connect 1 0 \$2 1 \, connect \$2 1 3 0 \, connect \$2 0 2 0; #X msg 61 380 connect 0 0 \$1 0 \, connect 1 0 \$1 1 \, connect \$1 1 3 0; #X obj 72 433 - 1; #X obj 160 432 - 1; #X obj 67 153 list split 1; #X obj 61 695 list prepend; #X obj 402 107 inlet; #X obj 248 622 list append; #X obj 97 227 + 1; #X obj 275 703 outlet; #X msg 158 208 symbol pd-\$1; #X obj 370 701 outlet; #X obj 67 249 t a a a a; #X text 371 723 pre-creation; #X text 257 723 post-creation; #X text 63 34 arg1: offset index into sub-patch (= number of existing objects in sub-patch); #X text 401 86 object_to_create (list); #X text 124 276 only connect if \$1 != 0; #X text 62 16 dynamically creates (chained) voices; #X obj 158 175 list split 1; #X obj 61 289 spigot; #X obj 62 355 +; #X obj 118 357 +; #X obj 156 358 +; #X text 65 84 voice-count sub-patch existing_objects; #X text 454 13 grrrr.org 2012; #X obj 61 717 upp.fwd; #X obj 247 568 + 50; #X obj 247 549 * 20; #X connect 0 0 19 0; #X connect 1 0 3 0; #X connect 2 0 3 1; #X connect 3 0 23 0; #X connect 3 0 27 0; #X connect 4 0 20 0; #X connect 5 0 22 0; #X connect 6 0 1 0; #X connect 6 1 2 0; #X connect 6 2 9 0; #X connect 7 0 36 0; #X connect 7 1 8 0; #X connect 8 0 37 0; #X connect 8 1 38 0; #X connect 9 0 8 1; #X connect 10 0 17 0; #X connect 10 1 11 1; #X connect 11 0 12 0; #X connect 12 0 20 0; #X connect 13 0 18 0; #X connect 13 1 14 1; #X connect 14 0 15 0; #X connect 15 0 20 0; #X connect 16 0 20 0; #X connect 17 0 11 0; #X connect 18 0 14 0; #X connect 19 0 6 0; #X connect 19 1 34 0; #X connect 20 0 41 0; #X connect 21 0 22 1; #X connect 22 0 4 0; #X connect 23 0 3 1; #X connect 25 0 20 1; #X connect 27 0 35 0; #X connect 27 1 24 0; #X connect 27 2 43 0; #X connect 27 3 26 0; #X connect 34 0 25 0; #X connect 34 1 35 1; #X connect 34 1 36 1; #X connect 34 1 37 1; #X connect 34 1 38 1; #X connect 35 0 7 0; #X connect 36 0 16 0; #X connect 37 0 10 0; #X connect 38 0 13 0; #X connect 42 0 5 0; #X connect 43 0 42 0; upp-0.2.0/upp.dynpatch.pd000066400000000000000000000014241430015047600152600ustar00rootroot00000000000000#N canvas 27 40 610 339 10; #X obj 186 38 loadbang; #X text 184 288 explicit loadbang after everything has been set up ; #X obj 213 176 upp.dynchain; #X obj 186 232 f \$0; #X msg 186 256 \; pd-\$1-dynsub loadbang; #X obj 351 196 outlet; #X obj 351 155 inlet; #X text 349 213 index; #X text 351 138 object to create (list); #X text 276 31 create dynamically allocated object per message; #X text 276 45 with no inlets and outlets; #X obj 186 70 t b b; #X obj 213 112 list append \$1 \$0-dynsub 0; #X obj 30 195 cnv 15 120 25 empty empty empty 20 12 0 14 -204786 -66577 0; #N canvas 12 104 526 277 \$0-dynsub 0; #X restore 44 199 pd \$0-dynsub; #X connect 0 0 11 0; #X connect 2 1 5 0; #X connect 3 0 4 0; #X connect 6 0 2 1; #X connect 11 0 3 0; #X connect 11 1 12 0; #X connect 12 0 2 0; upp-0.2.0/upp.dynpatch1.pd000066400000000000000000000020401430015047600153340ustar00rootroot00000000000000#N canvas 551 464 608 290 10; #X text 213 178 explicit loadbang after everything has been set up ; #N canvas 117 188 525 431 \$0-dynsub 0; #X obj 10 6 inlet; #X obj 10 404 outlet; #X restore 27 135 pd \$0-dynsub; #X obj 153 26 inlet; #X obj 27 27 inlet; #X obj 27 248 outlet; #X obj 182 250 upp.fwd; #X obj 182 228 list prepend pd-\$0-dynsub; #X msg 153 177 loadbang; #X obj 153 64 t b b a b; #X text 373 154 connect inlet and outlet; #X msg 170 153 connect 0 0 2 0 \, connect 2 0 1 0; #X obj 187 128 list prepend obj 10 30; #X text 330 128 create object; #X text 429 67 delete existing object; #X msg 204 89 vis 1 \, editmode 1 \, mouse 0 25 0 0 \, mouseup 1000 200 0 \, cut \, editmode 0 \, vis 0; #X text 230 31 with one inlet and one outlet; #X text 230 17 create dynamically allocated object per message; #X connect 1 0 4 0; #X connect 2 0 8 0; #X connect 3 0 1 0; #X connect 6 0 5 0; #X connect 7 0 6 0; #X connect 8 0 7 0; #X connect 8 1 10 0; #X connect 8 2 11 0; #X connect 8 3 14 0; #X connect 10 0 6 0; #X connect 11 0 6 0; #X connect 14 0 6 0; upp-0.2.0/upp.flow.pd000066400000000000000000000023221430015047600144130ustar00rootroot00000000000000#N canvas 57 145 563 449 10; #X obj 31 153 inlet; #X obj 31 389 outlet; #X obj 210 389 outlet; #X text 30 405 pass; #X text 207 406 release; #X obj 100 390 switch~; #X obj 363 153 inlet; #X obj 31 192 upp.flowctrl; #X obj 363 232 spigot; #X text 30 133 event message; #X obj 210 366 t b b; #X obj 210 315 upp._release; #X obj 363 266 upp._check; #X obj 210 290 \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X obj 210 229 t a a; #X text 81 406 busy controls DSP; #X text 249 367 release voice; #X obj 15 11 cnv 15 530 100 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 436 18 grrrr.org 2016; #X text 36 19 upp.flow; #X text 36 37 Manages one voice [\$1]. If the voice is vacant \, it receives an incoming event. If it is busy \, events are forwarded to the first outlet. DSP is switched on as long as the voice is active. Modulating messages are checked against the event tag and forwarded iff matching.; #X text 362 133 modulating message; #X connect 0 0 7 0; #X connect 6 0 8 0; #X connect 7 0 1 0; #X connect 7 1 14 0; #X connect 7 2 8 1; #X connect 7 2 5 0; #X connect 8 0 12 0; #X connect 10 0 2 0; #X connect 10 1 7 1; #X connect 11 0 10 0; #X connect 12 0 13 1; #X connect 13 0 11 0; #X connect 14 0 13 0; #X connect 14 1 12 1; upp-0.2.0/upp.flowctrl.pd000066400000000000000000000017751430015047600153130ustar00rootroot00000000000000#N canvas 65 71 445 326 10; #X obj 66 33 inlet; #X obj 68 272 outlet; #X text 64 292 pass on; #X obj 231 36 loadbang; #X msg 190 77 0; #X obj 50 95 cnv 15 200 130 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 164 168 if busy; #X text 62 169 if vacant; #X obj 190 107 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X text 207 113 busy; #X obj 189 273 outlet; #X obj 190 36 inlet; #X msg 263 151 1; #X obj 189 246 t a b; #X text 262 134 set busy; #X text 188 293 to worker; #X text 65 16 message in; #X obj 117 149 upp.dilemma; #X obj 190 127 t a a; #X obj 306 274 outlet; #X text 304 292 busy state; #X text 320 16 grrrr.org 2012-16; #X obj 190 56 b; #X obj 306 248 change -1; #X text 189 18 free voice; #X connect 0 0 17 0; #X connect 3 0 4 0; #X connect 4 0 8 0; #X connect 8 0 18 0; #X connect 11 0 22 0; #X connect 12 0 8 0; #X connect 13 0 10 0; #X connect 13 1 12 0; #X connect 17 0 13 0; #X connect 17 1 1 0; #X connect 18 0 23 0; #X connect 18 1 17 1; #X connect 22 0 4 0; #X connect 23 0 19 0; upp-0.2.0/upp.fwd.pd000066400000000000000000000004661430015047600142330ustar00rootroot00000000000000#N canvas 0 22 208 212 10; #X obj 35 50 t b a b; #X obj 56 96 list prepend add2; #X msg 80 73 set \, addsemi; #X obj 53 122 list trim; #X obj 35 24 inlet; #X msg 36 152; #X connect 0 0 5 0; #X connect 0 1 1 0; #X connect 0 2 2 0; #X connect 1 0 3 0; #X connect 2 0 5 0; #X connect 3 0 5 0; #X connect 4 0 0 0; upp-0.2.0/upp.ms2s.pd000066400000000000000000000003641430015047600143340ustar00rootroot00000000000000#N canvas 0 22 289 188 10; #X obj 67 35 inlet; #X obj 136 63 / 1000; #X obj 67 90 *; #X obj 66 118 outlet; #X text 142 80 samples/ms; #X obj 136 35 upp.samplerate; #X connect 0 0 2 0; #X connect 1 0 2 1; #X connect 2 0 3 0; #X connect 5 0 1 0; upp-0.2.0/upp.once.pd000066400000000000000000000006561430015047600144000ustar00rootroot00000000000000#N canvas 152 367 223 263 10; #X obj 41 72 inlet; #X obj 111 71 inlet; #X text 41 51 message; #X obj 41 209 outlet; #X obj 41 144 spigot 0; #X obj 41 171 t a b; #X msg 109 144 0; #X obj 110 93 t b; #X msg 110 119 1; #X text 110 51 enable; #X text 108 14 grrrr.org 2012; #X connect 0 0 4 0; #X connect 1 0 7 0; #X connect 4 0 5 0; #X connect 5 0 3 0; #X connect 5 1 6 0; #X connect 6 0 4 1; #X connect 7 0 8 0; #X connect 8 0 4 1; upp-0.2.0/upp.onward.pd000066400000000000000000000014501430015047600147370ustar00rootroot00000000000000#N canvas 528 100 359 435 10; #X obj 45 366 outlet; #X obj 48 257 spigot; #X obj 63 86 t a a; #X obj 48 48 inlet; #X text 47 31 play 0/1; #X obj 227 47 inlet; #X text 202 230 delay to next grain; #X text 224 28 offset; #X obj 48 136 sel 1; #X obj 48 223 upp.delay; #X obj 206 213 f \$1; #X obj 204 331 f; #X obj 204 366 outlet; #X text 194 384 sub-block delay (samples); #X obj 48 303 t b b b; #X text 35 385 bang at block boundary; #X obj 48 200 + 0; #X msg 48 162 0 0; #X connect 1 0 14 0; #X connect 2 0 8 0; #X connect 2 1 1 1; #X connect 3 0 2 0; #X connect 5 0 10 1; #X connect 8 0 17 0; #X connect 9 0 1 0; #X connect 9 1 11 1; #X connect 9 1 16 1; #X connect 10 0 16 0; #X connect 11 0 12 0; #X connect 14 0 10 0; #X connect 14 1 0 0; #X connect 14 2 11 0; #X connect 16 0 9 0; #X connect 17 0 16 0; upp-0.2.0/upp.pd000066400000000000000000000033631430015047600134530ustar00rootroot00000000000000#N canvas 55 58 562 324 10; #X obj 30 165 inlet; #X obj 129 164 inlet; #X text 131 146 modulation message; #X text 28 147 event message; #X obj 30 275 outlet; #X obj 103 275 outlet; #X text 31 292 pass on; #X text 99 292 release; #X obj 168 275 outlet; #X text 165 293 voices active; #N canvas 84 388 450 300 \$0-UPP 0; #X obj 51 40 inlet; #X obj 182 39 inlet; #X obj 51 217 outlet; #X obj 117 217 outlet; #X obj 182 217 outlet; #X restore 30 219 pd \$0-UPP; #X obj 301 163 loadbang; #X obj 301 187 f \$1; #X text 334 187 number of voices; #N canvas 78 120 446 229 gen 0; #X obj 31 27 inlet; #X msg 31 118 connect 0 0 5 0 \, connect 1 0 5 1 \, connect 5 0 2 0 \, connect 5 1 3 0 \, connect 5 2 4 0 \, loadbang; #X obj 31 53 t b a; #X obj 31 189 upp.fwd; #X obj 31 162 list prepend pd-\$0-UPP; #X obj 58 84 list prepend obj 10 100; #X connect 0 0 2 0; #X connect 1 0 4 0; #X connect 2 0 1 0; #X connect 2 1 5 0; #X connect 4 0 3 0; #X connect 5 0 4 0; #X restore 301 283 pd gen; #X obj 301 210 moses 50; #X msg 301 234 symbol upp.xc; #X msg 390 234 symbol upp.xf; #X obj 301 260 list append \$1 \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X text 359 210 <50: upp.xc \, >=50: upp.xf; #X text 93 220 upp.xc / upp.xf; #X obj 15 11 cnv 15 530 100 empty empty empty 20 12 0 14 -233017 -66577 0; #X text 36 23 Main UPP abstraction; #X text 36 56 \$2: player abstraction; #X text 36 71 \$3...\$9: arguments to player abstraction; #X text 36 41 \$1: max voices - used to select between upp.xc or upp.xf ; #X text 427 19 grrrr.org 2016-18; #X connect 0 0 10 0; #X connect 1 0 10 1; #X connect 10 0 4 0; #X connect 10 1 5 0; #X connect 10 2 8 0; #X connect 11 0 12 0; #X connect 12 0 15 0; #X connect 15 0 16 0; #X connect 15 1 17 0; #X connect 16 0 18 0; #X connect 17 0 18 0; #X connect 18 0 14 0; upp-0.2.0/upp.ramp~-help.pd000066400000000000000000000013211430015047600155250ustar00rootroot00000000000000#N canvas 109 64 450 300 10; #X obj 53 157 t b b; #X obj 52 239 print~; #X obj 53 131 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 48 31 Provides a ramp starting with the bang at block start. ; #X text 51 82 As of Pd 0.46 \, both line~ and vline~ provide buggy ramps.; #X text 102 241 see Pd console; #X obj 79 186 upp.ramp~; #X obj 104 140 nbx 5 14 -1e+37 1e+37 0 1 empty empty start 0 -8 0 10 -257985 -1 -1 0 256; #X obj 162 140 nbx 5 14 -1e+37 1e+37 0 1 empty empty inc 0 -8 0 10 -257985 -1 -1 1 256; #X text 49 46 By default \, values are increasing by 1 with each sample. ; #X connect 0 0 1 0; #X connect 0 1 6 0; #X connect 2 0 0 0; #X connect 6 0 1 0; #X connect 7 0 6 1; #X connect 8 0 6 2; upp-0.2.0/upp.ramp~.pd000066400000000000000000000011431430015047600146010ustar00rootroot00000000000000#N canvas 173 94 228 338 10; #X obj 38 82 inlet; #X obj 38 304 outlet~; #X text 34 16 endless ramp up; #X text 37 62 reset; #X obj 38 268 rpole~ 1; #X obj 103 81 inlet; #X msg 38 236 set \$1 \, \$2; #X obj 38 104 t b b; #X obj 38 210 pack 0 0; #X obj 83 145 f 1; #X obj 146 81 inlet; #X text 103 63 start; #X text 146 63 inc; #X obj 38 185 - 1; #X obj 38 144 f 0; #X connect 0 0 7 0; #X connect 4 0 1 0; #X connect 5 0 14 1; #X connect 6 0 4 0; #X connect 7 0 14 0; #X connect 7 1 9 0; #X connect 8 0 6 0; #X connect 9 0 8 1; #X connect 9 0 13 1; #X connect 10 0 9 1; #X connect 13 0 8 0; #X connect 14 0 13 0; upp-0.2.0/upp.s2ms.pd000066400000000000000000000004221430015047600143270ustar00rootroot00000000000000#N canvas 0 23 246 217 10; #X obj 42 25 inlet; #X obj 42 176 outlet; #X obj 42 48 t a b; #X obj 69 71 samplerate~; #X obj 42 108 /; #X obj 42 151 * 1000; #X connect 0 0 2 0; #X connect 2 0 4 0; #X connect 2 1 3 0; #X connect 3 0 4 1; #X connect 4 0 5 0; #X connect 5 0 1 0; upp-0.2.0/upp.samplerate.pd000066400000000000000000000005731430015047600156070ustar00rootroot00000000000000#N canvas 210 407 214 218 10; #X obj 39 114 samplerate~; #X obj 39 36 r pd; #X obj 39 63 route dsp audio-dialog; #X obj 78 37 loadbang; #X obj 39 140 change; #X obj 39 168 outlet; #X obj 39 88 t b; #X obj 148 38 inlet; #X connect 0 0 4 0; #X connect 1 0 2 0; #X connect 2 0 6 0; #X connect 2 1 6 0; #X connect 3 0 6 0; #X connect 4 0 5 0; #X connect 6 0 0 0; #X connect 7 0 6 0; upp-0.2.0/upp.schedule-help.pd000066400000000000000000000016241430015047600161720ustar00rootroot00000000000000#N canvas 278 208 746 299 10; #X obj 47 114 t a b; #X obj 47 191 t a b; #X obj 47 249 print; #X obj 195 225 timer; #X msg 47 62 0; #X floatatom 196 250 8 0 0 0 - - -; #X msg 82 62 1000; #X msg 126 61 44100; #X text 175 62 time is in samples; #X text 50 232 remaining samples; #X text 167 138 2nd arg/inlet... position of time in list (default 0); #X text 167 155 3rd arg/inlet... block size (default 64); #X text 167 122 1st inlet: list/float; #X obj 541 191 print; #X msg 541 95 list a b 1000; #X msg 551 117 list a b 64; #X obj 47 150 upp.schedule; #X text 46 26 Schedule event to the latest inter-DSP-block gap before the given time; #X obj 541 152 upp.schedule 2; #X connect 0 0 16 0; #X connect 0 1 3 0; #X connect 1 0 2 0; #X connect 1 1 3 1; #X connect 3 0 5 0; #X connect 4 0 0 0; #X connect 6 0 0 0; #X connect 7 0 0 0; #X connect 14 0 18 0; #X connect 15 0 18 0; #X connect 16 0 1 0; #X connect 18 0 13 0; upp-0.2.0/upp.schedule.pd000066400000000000000000000121661430015047600152470ustar00rootroot00000000000000#N canvas 534 270 370 323 10; #X obj 45 53 inlet; #X obj 45 253 outlet; #X obj 216 48 inlet; #X text 213 31 blocksize; #N canvas 35 64 429 408 enqueue 0; #X obj 38 30 inlet; #X obj 38 353 outlet; #X obj 38 263 upp.dilemma; #X msg 57 165 0; #X obj 38 295 t b a; #X obj 64 323 text set \$0-msgqueue; #X text 132 228 TODO: we should replace previous entries; #X text 125 345 append message; #X obj 134 166 >; #N canvas 0 22 231 249 get-last 0; #X obj 37 100 sel 0; #X obj 37 57 text size \$0-msgqueue; #X obj 59 153 text get \$0-msgqueue; #X obj 59 132 - 1; #X obj 37 26 inlet; #X obj 38 183 outlet; #X obj 37 78 t a a; #X obj 137 184 outlet; #X text 140 204 size; #X text 38 215 bang for none; #X text 37 202 last element, f 14; #X connect 0 0 5 0; #X connect 0 1 3 0; #X connect 1 0 6 0; #X connect 2 0 5 0; #X connect 3 0 2 0; #X connect 4 0 1 0; #X connect 6 0 0 0; #X connect 6 1 7 0; #X restore 63 83 pd get-last; #X obj 38 56 t a b a; #X obj 57 107 route bang; #X text 166 245 instead of warning; #X obj 175 32 inlet; #X text 177 13 index; #N canvas 0 23 211 199 nth 0; #X obj 38 32 inlet; #X obj 38 140 outlet; #X obj 95 31 inlet; #X obj 38 114 list split 1; #X obj 95 54 + 1; #X obj 38 80 list split; #X connect 0 0 5 0; #X connect 2 0 4 0; #X connect 3 0 1 0; #X connect 4 0 5 1; #X connect 5 1 3 0; #X restore 181 141 pd nth; #N canvas 496 432 211 199 nth 0; #X obj 38 32 inlet; #X obj 38 140 outlet; #X obj 95 31 inlet; #X obj 38 113 list split 1; #X obj 95 54 + 1; #X obj 38 81 list split; #X connect 0 0 5 0; #X connect 2 0 4 0; #X connect 3 0 1 0; #X connect 4 0 5 1; #X connect 5 1 3 0; #X restore 134 141 pd nth; #X obj 101 288 print upp.schedule(\$0) - Times are not increasing: ; #X connect 0 0 10 0; #X connect 2 0 4 0; #X connect 2 1 17 0; #X connect 3 0 2 1; #X connect 4 0 1 0; #X connect 4 1 5 0; #X connect 8 0 2 1; #X connect 9 0 11 0; #X connect 9 1 5 1; #X connect 10 0 2 0; #X connect 10 1 9 0; #X connect 10 2 15 0; #X connect 11 0 3 0; #X connect 11 1 16 0; #X connect 13 0 15 1; #X connect 13 0 16 1; #X connect 15 0 8 1; #X connect 16 0 8 0; #X restore 45 143 pd enqueue; #N canvas 69 80 338 451 dequeue 0; #X obj 31 33 inlet; #X obj 121 411 outlet; #X obj 222 34 inlet; #X text 220 16 blocksize; #X obj 31 133 route bang; #N canvas 0 22 231 249 get-first 0; #X obj 37 100 sel 0; #X obj 37 56 text size \$0-msgqueue; #X obj 59 153 text get \$0-msgqueue; #X obj 37 26 inlet; #X obj 37 183 outlet; #X obj 37 78 t a a; #X obj 137 184 outlet; #X text 140 204 size; #X text 38 215 bang for none; #X text 37 202 last element, f 14; #X msg 59 130 0; #X connect 0 0 4 0; #X connect 0 1 10 0; #X connect 1 0 5 0; #X connect 2 0 4 0; #X connect 3 0 1 0; #X connect 5 0 0 0; #X connect 5 1 6 0; #X connect 10 0 2 0; #X restore 31 109 pd get-first; #X obj 161 206 <; #N canvas 0 23 249 287 offset 0; #X obj 103 175 +; #X msg 43 124 0; #X obj 73 175 f 0; #X obj 73 124 upp.delay; #X obj 170 43 inlet; #X obj 43 42 inlet; #X text 170 25 blksize; #X text 42 21 reset; #X obj 73 237 outlet; #X obj 73 205 t a b; #X obj 43 71 t b b; #X msg 73 94 stop; #X obj 108 42 inlet; #X text 103 24 stop; #X connect 0 0 2 1; #X connect 1 0 2 0; #X connect 2 0 0 0; #X connect 2 0 9 0; #X connect 3 0 2 0; #X connect 4 0 0 1; #X connect 4 0 3 1; #X connect 5 0 10 0; #X connect 9 0 8 0; #X connect 9 1 3 0; #X connect 10 0 1 0; #X connect 10 1 11 0; #X connect 11 0 3 0; #X connect 12 0 11 0; #X restore 141 109 pd offset; #X obj 133 179 -; #X obj 88 236 spigot; #X obj 115 315 text delete \$0-msgqueue; #X msg 115 293 0; #X obj 31 63 t b b; #X obj 141 138 t b a; #X obj 89 359 list append; #N canvas 0 22 240 194 nth 0; #X obj 38 32 inlet; #X obj 38 140 outlet; #X obj 95 31 inlet; #X obj 66 105 list split 1; #X obj 38 80 list split; #X obj 100 141 outlet; #X obj 163 142 outlet; #X connect 0 0 4 0; #X connect 2 0 4 1; #X connect 3 0 5 0; #X connect 3 1 6 0; #X connect 4 0 1 0; #X connect 4 1 3 0; #X restore 88 179 pd nth; #X obj 123 34 inlet; #X text 120 17 index; #X obj 121 385 list append; #X obj 88 260 t a b; #X text 164 295 delete first queue entry; #X connect 0 0 12 0; #X connect 2 0 6 1; #X connect 2 0 7 2; #X connect 4 0 7 1; #X connect 4 1 15 0; #X connect 5 0 4 0; #X connect 6 0 9 1; #X connect 7 0 13 0; #X connect 8 0 6 0; #X connect 8 0 14 1; #X connect 9 0 19 0; #X connect 11 0 10 0; #X connect 12 0 5 0; #X connect 12 1 7 0; #X connect 13 0 5 0; #X connect 13 1 8 1; #X connect 14 0 18 0; #X connect 15 0 9 0; #X connect 15 1 8 0; #X connect 15 2 18 1; #X connect 16 0 15 1; #X connect 18 0 1 0; #X connect 19 0 14 0; #X connect 19 1 11 0; #X restore 45 214 pd dequeue; #X obj 177 188 text define \$0-msgqueue; #X obj 180 252 text delete \$0-msgqueue; #X msg 180 228 -1; #X text 208 229 clear all; #X obj 107 52 inlet; #X obj 107 88 f \$1; #X obj 153 49 loadbang; #X obj 217 98 select 0; #X msg 217 120 64; #X obj 217 77 f \$2; #X obj 216 146 t a; #X text 108 31 index; #X text 43 32 message; #X connect 0 0 4 0; #X connect 2 0 15 0; #X connect 4 0 5 0; #X connect 5 0 1 0; #X connect 8 0 7 0; #X connect 10 0 11 0; #X connect 11 0 4 1; #X connect 11 0 5 1; #X connect 12 0 11 0; #X connect 12 0 15 0; #X connect 13 0 14 0; #X connect 13 1 16 0; #X connect 14 0 16 0; #X connect 15 0 13 0; #X connect 16 0 5 2; upp-0.2.0/upp.tabread2~-help.pd000066400000000000000000000010151430015047600162520ustar00rootroot00000000000000#N canvas 396 401 439 263 10; #X obj 47 210 print~; #X obj 47 42 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 74 135 upp.ramp~; #X obj 74 163 upp.tabread2~ \$0-table; #X obj 273 153 array set \$0-table; #X msg 272 123 1 2 0; #X obj 273 49 table \$0-table 3; #X obj 272 98 loadbang; #X obj 47 77 t b b b; #X msg 125 111 0.1; #X connect 1 0 8 0; #X connect 2 0 3 0; #X connect 3 0 0 0; #X connect 5 0 4 0; #X connect 7 0 5 0; #X connect 8 0 0 0; #X connect 8 1 2 0; #X connect 8 2 9 0; #X connect 9 0 2 2; upp-0.2.0/upp.tabread2~.pd000066400000000000000000000026211430015047600153300ustar00rootroot00000000000000#N canvas 53 85 434 432 10; #X obj 252 282 +~ 1; #X obj 43 89 inlet~; #X obj 159 379 outlet~; #X text 42 19 linear interpolation for tabread~; #X obj 204 90 inlet; #X obj 228 170 route symbol; #X obj 253 90 loadbang; #X obj 77 303 tabread~; #X obj 252 307 tabread~; #X msg 229 194 set \$1; #N canvas 637 164 293 240 symbol_arg_\$1_not_0 0; #X obj 33 74 symbol \$1; #X obj 62 122 upp.cmpatom; #X obj 102 71 symbol 0; #X obj 34 51 t b b; #X obj 34 96 t a a; #X obj 34 175 spigot; #X obj 62 144 == 0; #X obj 35 21 inlet; #X obj 35 204 outlet; #X connect 0 0 4 0; #X connect 1 0 6 0; #X connect 2 0 1 1; #X connect 3 0 0 0; #X connect 3 1 2 0; #X connect 4 0 5 0; #X connect 4 1 1 0; #X connect 5 0 8 0; #X connect 6 0 5 1; #X connect 7 0 3 0; #X restore 253 120 pd symbol_arg_\$1_not_0; #X obj 43 114 max~ 0; #X obj 170 181 wrap~; #X obj 143 218 -~; #X text 36 180 fractional pos; #X text 36 218 integer pos; #X text 215 375 s1+f*(s2-s1); #X text 44 39 Thomas Grill \, 2016 - grrrr.org; #X text 200 72 table name; #X text 40 71 position signal; #X obj 159 350 upp.xfade~; #X connect 0 0 8 0; #X connect 1 0 11 0; #X connect 4 0 5 0; #X connect 5 0 9 0; #X connect 6 0 10 0; #X connect 7 0 20 0; #X connect 8 0 20 1; #X connect 9 0 7 0; #X connect 9 0 8 0; #X connect 10 0 5 0; #X connect 11 0 12 0; #X connect 11 0 13 0; #X connect 12 0 13 1; #X connect 12 0 20 2; #X connect 13 0 0 0; #X connect 13 0 7 0; #X connect 20 0 2 0; upp-0.2.0/upp.tabread4~-help.pd000066400000000000000000000010221430015047600162520ustar00rootroot00000000000000#N canvas 301 52 429 270 10; #X obj 47 210 print~; #X obj 47 42 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 74 138 upp.ramp~; #X obj 273 153 array set \$0-table; #X obj 272 98 loadbang; #X obj 74 163 upp.tabread4~ \$0-table; #X msg 272 123 1 2 0 1 3 0; #X obj 273 49 table \$0-table 6; #X obj 47 77 t b b b; #X msg 125 114 0.1; #X connect 1 0 8 0; #X connect 2 0 5 0; #X connect 4 0 6 0; #X connect 5 0 0 0; #X connect 6 0 3 0; #X connect 8 0 0 0; #X connect 8 1 2 0; #X connect 8 2 9 0; #X connect 9 0 2 2; upp-0.2.0/upp.tabread4~.pd000066400000000000000000000033301430015047600153300ustar00rootroot00000000000000#N canvas 673 103 490 470 10; #X obj 63 108 inlet~; #X obj 248 105 inlet; #X obj 128 423 outlet~; #X obj 302 106 loadbang; #X msg 81 304 set \$1; #X obj 64 334 tabread4~; #X obj 219 337 upp.tabread2~; #X obj 247 250 array size; #N canvas 162 271 260 227 first_or_last 0; #X obj 37 44 inlet~; #X obj 37 148 outlet~; #X obj 190 46 inlet; #X text 189 20 size; #X text 26 172 first or last; #X obj 190 87 - 2; #X obj 37 118 expr~ $v1 < 1 || $v1 > $f2; #X connect 0 0 6 0; #X connect 2 0 5 0; #X connect 5 0 6 1; #X connect 6 0 1 0; #X restore 154 284 pd first_or_last; #X obj 248 162 route symbol; #X text 62 25 Workaround for tabread4~; #X text 62 42 Delivers linearly interpolated first and last samples ; #N canvas 637 164 293 240 symbol_arg_\$1_not_0 0; #X obj 35 73 symbol \$1; #X obj 62 122 upp.cmpatom; #X obj 106 73 symbol 0; #X obj 35 47 t b b; #X obj 34 96 t a a; #X obj 34 175 spigot; #X obj 62 144 == 0; #X obj 35 21 inlet; #X obj 35 204 outlet; #X connect 0 0 4 0; #X connect 1 0 6 0; #X connect 2 0 1 1; #X connect 3 0 0 0; #X connect 3 1 2 0; #X connect 4 0 5 0; #X connect 4 1 1 0; #X connect 5 0 8 0; #X connect 6 0 5 1; #X connect 7 0 3 0; #X restore 302 128 pd symbol_arg_\$1_not_0; #X obj 247 186 t b a; #X text 217 359 only for first and last sample; #X text 63 89 position signal; #X text 251 87 table name; #X text 62 61 Thomas Grill \, 2016 - grrrr.org; #X obj 128 399 upp.xfade~; #X connect 0 0 5 0; #X connect 0 0 8 0; #X connect 0 0 6 0; #X connect 1 0 9 0; #X connect 3 0 12 0; #X connect 4 0 5 0; #X connect 5 0 18 0; #X connect 6 0 18 1; #X connect 7 0 8 1; #X connect 8 0 18 2; #X connect 9 0 13 0; #X connect 12 0 9 0; #X connect 13 0 7 0; #X connect 13 1 7 1; #X connect 13 1 6 1; #X connect 13 1 4 0; #X connect 18 0 2 0; upp-0.2.0/upp.vline~-help.pd000066400000000000000000000050671430015047600157160ustar00rootroot00000000000000#N canvas 76 71 547 459 10; #N canvas 0 22 450 300 snap 0; #X obj 20 14 inlet~; #X obj 20 165 outlet; #X obj 21 98 snapshot~; #X obj 98 69 metro 10; #X obj 98 14 loadbang; #X msg 98 42 1; #X obj 101 103 nbx 10 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 -262144 -1 -1 0 256; #X connect 0 0 2 0; #X connect 2 0 1 0; #X connect 2 0 6 0; #X connect 3 0 2 0; #X connect 4 0 5 0; #X connect 5 0 3 0; #X coords 0 -1 1 1 100 20 1 100 100; #X restore 28 171 pd snap; #X msg 28 121 \$1 44100 0; #X obj 31 199 hsl 128 15 0 2 0 0 empty empty empty -2 -8 0 10 -261682 -1 -1 0 1; #N canvas 0 22 239 213 print_dsp_blocks 0; #X obj 143 168 print~; #X obj 36 105 spigot; #X obj 105 105 - 1; #X obj 36 127 t a b; #X obj 36 80 t a a; #X obj 39 20 bang~; #X obj 37 59 f; #X obj 94 20 inlet; #X obj 145 20 inlet~; #X obj 94 42 t f b; #X connect 1 0 3 0; #X connect 2 0 6 1; #X connect 3 0 2 0; #X connect 3 1 0 0; #X connect 4 0 1 0; #X connect 4 1 1 1; #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 9 0 6 1; #X restore 221 303 pd print_dsp_blocks; #X obj 278 122 print ============; #X msg 221 277 3; #X obj 98 147 print OVF; #X obj 343 277 print OVF; #X text 26 56 grrrr.org 2016; #X text 26 36 Time units are samples; #X text 35 376 - block size (default=64); #X text 34 330 upp.vline~ can be given two arguments:; #X text 35 346 - voices (default=2): number of ramp parts within one DSP block. Overflow will be signaled at right outlet if exceeded; #X obj 221 99 hradio 15 1 0 4 empty empty examples 0 -8 0 10 -260097 -1 -1 3; #X obj 221 122 t b a b; #X obj 28 99 hradio 15 1 0 3 empty empty target_value 0 -8 0 10 -260097 -1 -1 0; #X msg 257 199 1 10 10 \, 0.5 40 50 \, 0 20 120; #X msg 274 221 0 \, 1 0 1 \, 0 0 2 \, 1 0 3 \, 0 0 4; #X msg 240 177 1 0 20 \, 0 0 40 \, 1 2 60 \, 0 2 80; #X text 26 17 Replacement for vline~ with line~-like slopes; #X text 36 400 The block size can also be set through the right inlet ; #X obj 28 146 upp.vline~; #X obj 257 277 upp.vline~ 8; #X obj 240 147 sel 0 1 2 3; #X obj 368 243 upp.delay 64; #X msg 287 243 0 \, 1 100 10; #X msg 449 243 0 100 46; #X connect 0 0 2 0; #X connect 1 0 21 0; #X connect 5 0 3 0; #X connect 13 0 14 0; #X connect 14 0 5 0; #X connect 14 1 23 0; #X connect 14 2 4 0; #X connect 15 0 1 0; #X connect 16 0 22 0; #X connect 17 0 22 0; #X connect 18 0 22 0; #X connect 21 0 0 0; #X connect 21 1 6 0; #X connect 22 0 3 1; #X connect 22 1 7 0; #X connect 23 0 18 0; #X connect 23 1 16 0; #X connect 23 2 17 0; #X connect 23 3 25 0; #X connect 23 3 24 0; #X connect 24 0 26 0; #X connect 25 0 22 0; #X connect 26 0 22 0; upp-0.2.0/upp.vline~.pd000066400000000000000000000162671430015047600147740ustar00rootroot00000000000000#N canvas 75 41 558 533 10; #X obj 48 109 inlet; #X obj 48 480 outlet~; #X text 104 194 dur; #X text 137 193 del; #N canvas 366 346 284 335 normalize 0; #X obj 29 92 t a b; #X obj 29 122 list split 1; #X obj 168 122 list split 1; #X msg 130 92 0; #X obj 119 199 f; #X obj 178 199 f; #X obj 29 61 inlet; #X obj 30 280 outlet; #X obj 63 143 route bang; #X obj 63 163 t b b; #X obj 30 254 pack 0 0 0; #X text 27 8 Convert input to triplets; #X text 27 26 2nd and 3rd element are 0 by default; #X connect 0 0 1 0; #X connect 0 1 3 0; #X connect 1 0 10 0; #X connect 1 1 8 0; #X connect 2 0 4 0; #X connect 2 1 5 0; #X connect 3 0 4 1; #X connect 3 0 5 1; #X connect 4 0 10 1; #X connect 5 0 10 2; #X connect 6 0 0 0; #X connect 8 0 9 0; #X connect 8 1 2 0; #X connect 9 0 4 0; #X connect 9 1 5 0; #X connect 10 0 7 0; #X restore 48 146 pd normalize input; #X text 50 194 target; #X obj 48 327 pack 0 0 0 0 0; #X obj 48 452 catch~ \$0-out; #X obj 366 426 nbx 5 14 -1e+37 1e+37 0 0 empty empty voices 0 -8 0 10 -262144 -1 -1 0 256; #X obj 278 105 loadbang; #X obj 278 176 select 0; #X msg 278 198 64; #N canvas 533 264 227 122 const 0; #X obj 95 89 throw~ \$0-out; #X obj 28 17 inlet; #X obj 28 89 switch~; #X obj 95 16 inlet; #X obj 95 45 t b a; #X obj 28 45 &&; #X text 37 64 only on for values != 0; #X connect 1 0 5 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 4 1 5 1; #X connect 4 1 0 0; #X connect 5 0 2 0; #X restore 319 483 pd const; #X obj 352 104 inlet; #X obj 319 425 == 0; #X text 281 135 blocksize; #X obj 416 152 f \$1; #X obj 416 173 select 0; #X obj 278 155 f \$2; #X text 415 135 voices; #X obj 416 222 s \$0-voices; #N canvas 43 85 418 364 voices 0; #X obj 39 46 r \$0-voices; #X obj 58 207 f \$0; #X obj 58 143 t b a; #N canvas 44 529 450 300 \$0-dyn 0; #X obj 20 19 inlet; #X obj 84 19 outlet; #X restore 248 73 pd \$0-dyn; #X obj 58 95 until; #X obj 58 120 f; #X obj 86 120 + 1; #X msg 100 96 0; #X msg 58 252 obj 20 \$4 upp._vlinesub \$1 \, connect \$2 0 \$3 0; #X obj 58 230 pack 0 0 0 0; #X obj 147 186 * 20; #X obj 146 207 + 50; #X obj 71 166 moses 1; #X msg 39 298 connect \$1 0 1 0 \, loadbang; #X obj 115 207 + 2; #X obj 96 185 + 1; #X obj 58 326 s pd-\$0-dyn; #X obj 39 275 + 1; #X obj 248 46 inlet; #X obj 248 99 outlet; #X text 37 15 Dynamically create voices for ramp parts in [pd \$0-dyn] ; #X obj 39 69 t a a b b; #N canvas 154 492 537 236 clear 0; #X obj 39 34 inlet; #X obj 38 125 outlet; #X msg 38 67 vis 1 \, editmode 1 \, mouse 5 50 0 0 0 \, mouseup 100000 100000 0 \, cut \, editmode 0 \, vis 0; #X connect 0 0 2 0; #X connect 2 0 1 0; #X restore 219 181 pd clear; #X obj 220 155 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X connect 0 0 21 0; #X connect 1 0 9 0; #X connect 2 0 1 0; #X connect 2 1 10 0; #X connect 2 1 12 0; #X connect 2 1 14 0; #X connect 3 0 19 0; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 5 0 2 0; #X connect 6 0 5 1; #X connect 7 0 5 1; #X connect 8 0 16 0; #X connect 9 0 8 0; #X connect 10 0 11 0; #X connect 11 0 9 3; #X connect 12 0 9 1; #X connect 12 1 15 0; #X connect 13 0 16 0; #X connect 14 0 9 2; #X connect 15 0 9 1; #X connect 17 0 13 0; #X connect 18 0 3 0; #X connect 21 0 17 0; #X connect 21 1 4 0; #X connect 21 2 7 0; #X connect 22 0 16 0; #X connect 23 0 22 0; #X restore 48 386 pd voices; #X text 316 374 count active voices; #X text 47 434 voice sum; #X text 318 447 no voice active:; #X text 319 463 output constant target value; #X text 49 356 dynamically generated voices; #X obj 278 225 t a; #X obj 48 213 unpack 0 0 0; #X obj 48 171 upp.schedule 2, f 26; #X obj 319 391 r \$0-busy; #X msg 416 297 0; #X obj 416 318 s \$0-busy; #N canvas 89 52 536 458 calculate 0; #X obj 41 73 inlet; #X obj 104 73 inlet; #X obj 171 73 inlet; #X obj 41 284 upp.dilemma; #X obj 104 261 != 0; #X text 13 305 immediate; #X obj 104 237 t a a; #X text 87 304 dur!=0; #X obj 41 412 outlet; #X obj 427 68 inlet; #X text 408 50 blocksize; #N canvas 0 23 310 307 offset 0; #X obj 219 76 inlet; #X obj 35 74 inlet; #X text 219 58 blksize; #X obj 35 256 outlet; #X obj 157 75 inlet; #X text 156 56 max; #X text 30 18 Running offset by DSP blocks; #X obj 88 75 inlet; #X text 86 54 reset; #X text 33 53 now; #X obj 35 192 *; #X obj 35 217 t a a; #X obj 136 212 >; #X obj 136 234 sel 1; #X msg 137 257 stop; #X obj 35 143 upp.dspintv; #X connect 0 0 10 1; #X connect 1 0 15 0; #X connect 4 0 12 1; #X connect 7 0 15 1; #X connect 10 0 11 0; #X connect 11 0 3 0; #X connect 11 1 12 0; #X connect 12 0 13 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 15 0 10 0; #X restore 376 258 pd offset; #X text 364 277 start with 0; #X text 363 291 increase for next block; #X text 395 333 offset; #X obj 104 96 t a b; #X obj 41 95 t a b; #X text 41 56 tgt1; #X text 109 55 dur1; #X text 172 55 del1; #X text 166 139 del0; #X text 41 140 tgt0; #X text 100 141 dur0; #X text 88 333 tgt0; #X text 154 333 cur0; #X text 213 333 dur0; #X text 268 333 del0; #X text 339 333 del1; #X obj 104 351 expr $f2+($f1-$f2)*max(0 \, min(1 \, ($f6+$f5-$f4)/$f3)) ; #X obj 171 95 t a b; #X obj 401 221 +; #X text 212 124 storage for previous values; #X obj 41 121 f 0; #X obj 104 122 f 0; #X obj 171 121 f 0; #X text 372 238 dur+del; #X text 45 13 Calculate current value as result of the last played segment and the time passed; #X obj 333 71 loadbang; #X obj 41 158 t a b; #X obj 41 388 t a a b; #X connect 0 0 16 0; #X connect 1 0 15 0; #X connect 2 0 29 0; #X connect 3 0 39 0; #X connect 3 1 28 0; #X connect 4 0 3 1; #X connect 6 0 4 0; #X connect 6 1 28 2; #X connect 9 0 11 3; #X connect 11 0 28 5; #X connect 15 0 33 1; #X connect 15 0 30 0; #X connect 15 1 33 0; #X connect 16 0 32 1; #X connect 16 1 32 0; #X connect 28 0 39 0; #X connect 29 0 28 4; #X connect 29 0 34 1; #X connect 29 0 30 1; #X connect 29 1 34 0; #X connect 30 0 11 2; #X connect 32 0 38 0; #X connect 33 0 6 0; #X connect 34 0 28 3; #X connect 37 0 11 1; #X connect 38 0 3 0; #X connect 38 1 11 0; #X connect 39 0 8 0; #X connect 39 1 28 1; #X connect 39 2 11 1; #X restore 119 253 pd calculate starting point; #X obj 48 245 t a a; #X obj 36 291 sel 0; #X obj 182 479 outlet; #X msg 416 195 2; #X text 151 433 overflow signal; #X obj 182 454 b; #X text 46 19 Replacement for vline~ with expected behavior; #X text 46 58 grrrr.org 2016; #X text 46 36 Time units are samples; #X text 415 267 initialize number; #X text 417 280 of busy voices; #X text 76 292 has target value changed at all?; #X text 120 270 current value; #X text 49 371 for synthesis of ramp parts; #X text 50 128 target duration delay; #X connect 0 0 4 0; #X connect 4 0 29 0; #X connect 6 0 21 0; #X connect 7 0 1 0; #X connect 9 0 18 0; #X connect 9 0 16 0; #X connect 9 0 31 0; #X connect 10 0 11 0; #X connect 10 1 27 0; #X connect 11 0 27 0; #X connect 13 0 27 0; #X connect 14 0 12 0; #X connect 16 0 17 0; #X connect 17 0 37 0; #X connect 17 1 20 0; #X connect 18 0 10 0; #X connect 21 0 39 0; #X connect 27 0 29 2; #X connect 27 0 33 3; #X connect 27 0 6 4; #X connect 28 0 34 0; #X connect 28 1 6 1; #X connect 28 1 33 1; #X connect 28 2 6 2; #X connect 28 2 33 2; #X connect 29 0 28 0; #X connect 30 0 8 0; #X connect 30 0 14 0; #X connect 31 0 32 0; #X connect 33 0 6 3; #X connect 33 0 35 1; #X connect 34 0 35 0; #X connect 34 1 33 0; #X connect 34 1 12 1; #X connect 35 1 6 0; #X connect 37 0 20 0; #X connect 39 0 36 0; upp-0.2.0/upp.x2.pd000066400000000000000000000067131430015047600140050ustar00rootroot00000000000000#N canvas 14 27 813 271 10; #X obj 69 38 inlet; #X obj 69 195 outlet; #X obj 142 195 outlet; #X text 70 212 pass on; #X text 138 212 release; #X obj 168 37 inlet; #X text 170 19 modulation message; #X obj 207 195 outlet; #X text 204 213 voices active; #X text 67 20 event message; #X obj 429 35 loadbang; #X text 428 209 explicit loadbang after everything has been set up ; #X obj 429 63 t b b; #X obj 402 35 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X text 154 128 dynamically created voices; #X text 454 122 two-level dynamic patch generation; #X text 655 31 grrrr.org 2012; #N canvas 335 116 610 470 populate 0; #X obj 54 33 inlet; #N canvas 0 22 285 284 rep 0; #X obj 98 47 inlet; #X obj 100 219 outlet; #X obj 101 155 f; #X msg 157 122 0; #X obj 98 73 t a b; #X obj 101 122 until; #X obj 143 154 + 1; #X connect 0 0 4 0; #X connect 2 0 6 0; #X connect 2 0 1 0; #X connect 3 0 2 1; #X connect 4 0 5 0; #X connect 4 1 3 0; #X connect 5 0 2 0; #X connect 6 0 2 1; #X restore 54 223 pd rep; #X obj 54 286 list append 1; #X obj 54 364 list append; #X obj 54 250 t b a; #X obj 142 398 t b; #X obj 54 161 t a a a; #N canvas 703 203 419 452 sub 0; #X obj 51 43 inlet; #X obj 292 410 outlet; #X obj 292 40 inlet; #X text 295 22 pre-creation; #X text 49 28 post-creation; #X msg 51 148 \; pd-\$1 vis 0 \; pd-\$1 obj 10 10 inlet \; pd-\$1 obj 100 10 inlet \; pd-\$1 obj 200 10 outlet \; pd-\$1 obj 300 10 outlet \; pd-\$1 obj 30 100 upp._xhelper \; pd-\$1 obj 130 100 pd \$2 \; pd-\$2 vis 0 \; pd-\$1 connect 0 0 4 0 \; pd-\$1 connect 1 0 4 1 \; pd-\$1 connect 4 0 2 0 \; pd-\$1 connect 4 1 3 0 \; pd-\$2 obj 10 10 inlet \; pd-\$2 obj 100 10 inlet \; pd-\$2 obj 200 10 outlet \; pd-\$2 obj 300 10 outlet \; pd-\$1 connect 4 3 5 0 \; pd-\$1 connect 4 4 5 1 \; pd-\$1 connect 5 0 4 2 \; pd-\$1 connect 5 1 4 3 \;; #X obj 51 79 list prepend \$0; #X msg 51 100 list \$1-c-\$2 \$1-v-\$2; #X obj 292 79 list prepend \$0; #X msg 292 100 pd \$1-c-\$2; #X connect 0 0 6 0; #X connect 2 0 8 0; #X connect 6 0 7 0; #X connect 7 0 5 0; #X connect 8 0 9 0; #X connect 9 0 1 0; #X restore 521 418 pd sub; #X obj 142 418 list append upp.flow \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9 ; #X obj 54 80 sqrt; #X obj 54 101 + 1; #X obj 54 123 int; #X obj 54 57 f \$1; #X obj 54 407 upp.dynchain; #X obj 430 418 upp.dynchain; #X obj 430 322 list prepend \$0; #X msg 430 344 list \$2 \$1-root 4; #X obj 117 321 list prepend \$0; #X msg 117 342 list \$1-v-\$2 4; #X connect 0 0 12 0; #X connect 1 0 4 0; #X connect 2 0 3 0; #X connect 3 0 13 0; #X connect 4 0 2 0; #X connect 4 1 17 0; #X connect 5 0 8 0; #X connect 6 0 1 0; #X connect 6 1 2 1; #X connect 6 2 15 0; #X connect 7 0 14 1; #X connect 8 0 13 1; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 11 0 6 0; #X connect 12 0 9 0; #X connect 13 1 5 0; #X connect 14 0 7 0; #X connect 14 1 7 1; #X connect 15 0 16 0; #X connect 16 0 14 0; #X connect 17 0 18 0; #X connect 18 0 3 1; #X restore 456 103 pd populate; #X obj 69 110 upp._xhelper; #N canvas 607 231 450 300 \$0-root 0; #X obj 37 26 inlet; #X obj 110 26 inlet; #X obj 197 26 outlet; #X obj 267 25 outlet; #X restore 156 109 pd \$0-root; #X obj 429 156 f \$0; #X msg 429 177 \; pd-\$1-root loadbang; #X connect 0 0 18 0; #X connect 5 0 18 1; #X connect 10 0 12 0; #X connect 12 0 20 0; #X connect 12 1 17 0; #X connect 13 0 12 0; #X connect 18 0 1 0; #X connect 18 1 2 0; #X connect 18 2 7 0; #X connect 18 3 19 0; #X connect 18 4 19 1; #X connect 19 0 18 2; #X connect 19 1 18 3; #X connect 20 0 21 0; #X coords 0 0 1 1 100 50 0; upp-0.2.0/upp.xc.pd000066400000000000000000000023771430015047600140700ustar00rootroot00000000000000#N canvas 26 43 889 269 10; #X obj 69 38 inlet; #X obj 69 195 outlet; #X obj 142 195 outlet; #X text 70 212 pass on; #X text 138 212 release; #X obj 168 37 inlet; #X text 170 19 modulation message; #X obj 207 195 outlet; #X text 204 213 voices active; #X text 67 20 event message; #X obj 430 19 loadbang; #X text 428 224 explicit loadbang after everything has been set up ; #X obj 559 127 t b; #X text 155 120 dynamically created voices; #X obj 430 51 t b b; #X obj 558 147 list append upp.flow \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9 ; #X obj 457 136 upp.dynchain; #X text 741 27 grrrr.org 2012; #X obj 69 103 upp._xhelper; #N canvas 94 22 384 700 \$0-voices 0; #X obj 37 26 inlet; #X obj 113 25 inlet; #X obj 195 25 outlet; #X obj 275 27 outlet; #X restore 158 102 pd \$0-voices; #X obj 430 170 f \$0; #X msg 430 192 \; pd-\$1-voices loadbang; #X obj 457 88 list append \$1 \$0-voices 4; #X connect 0 0 18 0; #X connect 5 0 18 1; #X connect 10 0 14 0; #X connect 12 0 15 0; #X connect 14 0 20 0; #X connect 14 1 22 0; #X connect 15 0 16 1; #X connect 16 1 12 0; #X connect 18 0 1 0; #X connect 18 1 2 0; #X connect 18 2 7 0; #X connect 18 3 19 0; #X connect 18 4 19 1; #X connect 19 0 18 2; #X connect 19 1 18 3; #X connect 20 0 21 0; #X connect 22 0 16 0; #X coords 0 0 1 1 100 50 0; upp-0.2.0/upp.xf.pd000066400000000000000000000145231430015047600140670ustar00rootroot00000000000000#N canvas 57 409 587 257 10; #X obj 69 38 inlet; #X obj 69 195 outlet; #X obj 142 195 outlet; #X text 70 212 pass on; #X text 138 212 release; #X obj 168 37 inlet; #X text 170 19 modulation message; #X obj 207 195 outlet; #X text 204 213 voices active; #X text 67 20 event message; #X obj 352 125 list append \$2 \$3 \$4 \$5 \$6 \$7 \$8 \$9; #X obj 352 81 pack 0 \$0; #N canvas 15 27 871 725 comm 0; #X obj 79 48 inlet; #X text 296 446 release; #X obj 300 659 outlet; #X text 296 676 release; #X obj 364 56 inlet; #X obj 153 571 t a; #X msg 153 533 -1; #X obj 118 608 nbx 5 14 -1e+37 1e+37 0 0 empty empty active 0 -8 0 10 -262144 -1 -1 0 256; #X text 360 38 modulation message; #X msg 118 534 1; #X obj 118 570 +; #X obj 491 660 outlet; #X text 488 681 voices active; #X text 77 30 event message; #X obj 539 339 table \$0-free \$1; #X obj 539 359 table \$0-assigned \$1; #X obj 628 47 loadbang; #X obj 627 212 tabwrite \$0-free; #X obj 628 123 until; #X obj 629 151 f; #X obj 656 152 + 1; #X obj 628 98 f \$1; #X obj 565 261 v \$0-freecnt; #X obj 654 261 tabwrite \$0-assigned; #X obj 628 72 t b b; #X msg 675 122 0; #X obj 606 47 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X msg 666 237 -1; #X obj 106 139 t a a; #X obj 188 290 list prepend UPP-\$0; #X obj 79 201 upp.dilemma; #X obj 79 654 outlet; #X text 75 671 overflow; #X obj 326 289 list prepend start; #X obj 391 313 list prepend mod; #X obj 263 355 list append; #N canvas 0 22 243 358 itervoices 0; #X obj 62 37 inlet; #X obj 62 297 outlet; #X obj 62 98 v \$0-freecnt; #X obj 62 201 until; #X obj 62 263 tabread \$0-assigned; #X msg 131 199 0; #X obj 62 234 f; #X obj 89 234 + 1; #X obj 62 126 - \$1; #X obj 62 148 * -1; #X obj 62 73 t b b; #X connect 0 0 10 0; #X connect 2 0 8 0; #X connect 3 0 6 0; #X connect 4 0 1 0; #X connect 5 0 6 1; #X connect 6 0 4 0; #X connect 6 0 7 0; #X connect 7 0 6 1; #X connect 8 0 9 0; #X connect 9 0 3 0; #X connect 10 0 2 0; #X connect 10 1 5 0; #X restore 364 196 pd itervoices; #X obj 300 462 r UPP-\$0; #X obj 195 546 loadbang; #X msg 193 569 0; #X msg 188 314 symbol \$1-\$2; #X obj 188 233 f; #X obj 106 168 > 0; #X text 361 216 active voices; #X obj 630 175 t a b a; #X obj 118 233 t b a; #X obj 539 380 table \$0-ids \$1; #X obj 685 284 tabwrite \$0-ids; #X text 646 336 stack of free voices; #X text 666 359 stack of assigned voices; #X text 637 379 voice positions on assigned stack; #N canvas 327 105 791 512 allocvoice 0; #X obj 35 30 inlet; #X obj 34 449 outlet; #X obj 62 81 v \$0-freecnt; #X obj 410 312 tabread \$0-free; #X text 407 328 voice #; #X obj 260 448 v \$0-freecnt; #X obj 130 451 tabwrite \$0-free; #X msg 130 428 -1; #X obj 34 426 f; #X obj 584 452 tabwrite \$0-assigned; #X text 579 432 val; #X text 688 434 pos; #X obj 702 331 - \$1; #X obj 702 357 * -1; #X obj 35 59 t b b; #X obj 62 132 moses 1; #X obj 232 256 - 1; #X obj 212 213 t b a a; #X obj 411 451 tabwrite \$0-ids; #X obj 410 421 f; #X obj 410 389 t b a; #X connect 0 0 14 0; #X connect 2 0 15 0; #X connect 3 0 9 0; #X connect 3 0 8 1; #X connect 3 0 20 0; #X connect 7 0 6 0; #X connect 8 0 1 0; #X connect 12 0 13 0; #X connect 13 0 9 1; #X connect 13 0 19 1; #X connect 14 0 8 0; #X connect 14 1 2 0; #X connect 15 0 8 1; #X connect 15 1 17 0; #X connect 16 0 6 1; #X connect 16 0 3 0; #X connect 16 0 5 0; #X connect 17 0 7 0; #X connect 17 1 16 0; #X connect 17 2 12 0; #X connect 19 0 18 0; #X connect 20 0 19 0; #X connect 20 1 18 1; #X restore 106 115 pd allocvoice; #N canvas 85 115 697 522 freevoice 0; #X obj 269 28 inlet; #X obj 269 55 list split 1; #X obj 460 159 v \$0-freecnt; #X obj 507 217 v \$0-freecnt; #X obj 367 472 tabwrite \$0-free; #X obj 489 188 + 1; #X text 249 76 voice#; #X text 82 289 ass index; #X obj 64 472 tabwrite \$0-assigned; #X obj 489 246 - \$1; #X obj 489 267 * -1; #X obj 489 293 tabread \$0-assigned; #X text 495 309 get last assigned voice; #X obj 133 414 f; #X obj 88 413 f; #X msg 55 413 -1; #X text 62 432 clear; #X obj 103 261 tabread \$0-ids; #X obj 245 473 tabwrite \$0-ids; #X msg 186 418 -1; #X obj 269 99 t a a b; #X obj 308 417 f; #X obj 217 417 f; #X obj 103 323 t b b b a b b a b; #X connect 0 0 1 0; #X connect 1 0 20 0; #X connect 2 0 5 0; #X connect 2 0 4 1; #X connect 5 0 9 0; #X connect 5 0 3 0; #X connect 9 0 10 0; #X connect 10 0 14 1; #X connect 10 0 11 0; #X connect 11 0 13 1; #X connect 11 0 21 1; #X connect 13 0 8 0; #X connect 14 0 8 1; #X connect 15 0 8 0; #X connect 17 0 23 0; #X connect 19 0 18 0; #X connect 20 0 17 0; #X connect 20 1 4 0; #X connect 20 1 22 1; #X connect 20 2 2 0; #X connect 21 0 18 1; #X connect 22 0 18 1; #X connect 23 0 15 0; #X connect 23 1 14 0; #X connect 23 2 13 0; #X connect 23 3 8 1; #X connect 23 4 19 0; #X connect 23 5 22 0; #X connect 23 6 18 0; #X connect 23 7 21 0; #X restore 339 518 pd freevoice; #X obj 300 489 t a b a; #X obj 364 141 t a a; #X obj 79 89 t a b; #X obj 263 379 upp.fwd; #X connect 0 0 55 0; #X connect 4 0 54 0; #X connect 5 0 10 1; #X connect 6 0 10 0; #X connect 7 0 11 0; #X connect 9 0 10 0; #X connect 10 0 5 0; #X connect 10 0 7 0; #X connect 16 0 24 0; #X connect 18 0 19 0; #X connect 19 0 20 0; #X connect 19 0 44 0; #X connect 20 0 19 1; #X connect 21 0 18 0; #X connect 21 0 22 0; #X connect 24 0 21 0; #X connect 24 1 25 0; #X connect 25 0 19 1; #X connect 26 0 24 0; #X connect 27 0 23 0; #X connect 27 0 47 0; #X connect 28 0 42 0; #X connect 28 1 41 1; #X connect 29 0 40 0; #X connect 30 0 31 0; #X connect 30 1 45 0; #X connect 33 0 35 1; #X connect 34 0 35 1; #X connect 35 0 56 0; #X connect 36 0 29 0; #X connect 37 0 53 0; #X connect 38 0 39 0; #X connect 39 0 5 0; #X connect 39 0 7 0; #X connect 40 0 35 0; #X connect 41 0 29 0; #X connect 42 0 30 1; #X connect 44 0 17 0; #X connect 44 1 27 0; #X connect 44 2 17 1; #X connect 44 2 23 1; #X connect 44 2 47 1; #X connect 45 0 41 0; #X connect 45 0 9 0; #X connect 45 1 33 0; #X connect 51 0 28 0; #X connect 53 0 2 0; #X connect 53 1 6 0; #X connect 53 2 52 0; #X connect 54 0 36 0; #X connect 54 1 34 0; #X connect 55 0 30 0; #X connect 55 1 51 0; #X restore 69 103 pd comm; #X msg 352 103 upp.comm UPP-\$2 \$1; #X text 475 23 grrrr.org 2012; #X obj 227 102 cnv 15 120 25 empty empty empty 20 12 0 14 -204786 -66577 0; #X obj 241 107 upp.dynpatch \$1; #X connect 0 0 12 0; #X connect 5 0 12 1; #X connect 10 0 16 0; #X connect 11 0 13 0; #X connect 12 0 1 0; #X connect 12 1 2 0; #X connect 12 2 7 0; #X connect 13 0 10 0; #X connect 16 0 11 0; #X coords 0 0 1 1 100 50 0; upp-0.2.0/upp.xfade~-help.pd000066400000000000000000000015071430015047600156630ustar00rootroot00000000000000#N canvas 584 364 343 297 10; #X obj 41 235 snapshot~; #X obj 66 206 metro 10; #X msg 66 184 1; #X obj 66 162 loadbang; #X obj 41 81 sig~ 2; #X obj 92 82 sig~ 3; #X obj 41 134 upp.xfade~; #X text 36 19 Fade linearly between two signals; #X obj 165 133 sig~; #X obj 168 81 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -257985 -1 -1 0 1; #X obj 41 258 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 -257985 -1 -1 2 256; #X text 55 61 A; #X text 103 62 B; #X text 161 62 A; #X text 209 60 <----->; #X text 290 60 B; #X text 210 48 0.....1; #X obj 165 99 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -8 0 10 -257985 -1 -1 0 256; #X connect 0 0 10 0; #X connect 1 0 0 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 4 0 6 0; #X connect 5 0 6 1; #X connect 6 0 0 0; #X connect 8 0 6 2; #X connect 9 0 17 0; #X connect 17 0 8 0; upp-0.2.0/upp.xfade~.pd000066400000000000000000000006541430015047600147370ustar00rootroot00000000000000#N canvas 290 183 302 261 10; #X obj 64 36 inlet~; #X obj 118 36 inlet~; #X obj 193 36 inlet~; #X obj 64 202 outlet~; #X text 70 18 A; #X text 127 21 B; #X text 202 21 M; #X text 123 186 A*(1-M)+B*M; #X obj 118 104 -~; #X obj 118 135 *~; #X obj 64 168 +~; #X text 123 207 = A+(B-A)*M; #X connect 0 0 8 1; #X connect 0 0 10 0; #X connect 1 0 8 0; #X connect 2 0 9 1; #X connect 8 0 9 0; #X connect 9 0 10 1; #X connect 10 0 3 0; upp-0.2.0/urnd.pd000066400000000000000000000004051430015047600136110ustar00rootroot00000000000000#N canvas 341 168 470 233 10; #X obj 68 70 inlet; #X obj 68 163 outlet; #X obj 68 104 random 1e+06; #X obj 68 127 / 1e+06; #X text 28 10 deliver uniformly distributed random number in the range 0...1; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 3 0 1 0; upp-0.2.0/vbap-5.1.pd000066400000000000000000000002171430015047600140730ustar00rootroot00000000000000#N canvas 0 22 224 158 10; #X obj 37 33 inlet; #X obj 37 104 outlet; #X msg 37 68 2 -135 -45 0 45 135; #X connect 0 0 2 0; #X connect 2 0 1 0; upp-0.2.0/vbap-stereo.pd000066400000000000000000000002041430015047600150650ustar00rootroot00000000000000#N canvas 0 22 252 177 10; #X obj 48 33 inlet; #X obj 48 126 outlet; #X msg 48 77 2 -60 60; #X connect 0 0 2 0; #X connect 2 0 1 0; upp-0.2.0/version.txt000066400000000000000000000000071430015047600145400ustar00rootroot000000000000000.2.0 upp-0.2.0/wnd-lin.pd000066400000000000000000000012041430015047600142070ustar00rootroot00000000000000#N canvas 238 96 266 291 10; #X obj 42 120 until; #X obj 42 148 f; #X obj 74 148 + 1; #X msg 84 120 0; #X obj 42 170 t a a; #X text 34 229 value; #X text 95 229 index; #X obj 42 26 loadbang; #X obj 42 247 tabwrite \$1; #X obj 42 195 / \$2; #X obj 42 47 f \$2; #X obj 136 88 array size \$1; #X obj 162 28 table \$1; #X obj 42 92 t a b a; #X obj 43 69 + 1; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 1 0 4 0; #X connect 2 0 1 1; #X connect 3 0 1 1; #X connect 4 0 9 0; #X connect 4 1 8 1; #X connect 7 0 10 0; #X connect 9 0 8 0; #X connect 10 0 14 0; #X connect 13 0 0 0; #X connect 13 1 3 0; #X connect 13 2 11 0; #X connect 14 0 13 0; upp-0.2.0/wnd-sin.pd000066400000000000000000000012041430015047600142160ustar00rootroot00000000000000#N canvas 238 96 263 346 10; #X obj 62 76 t a b; #X obj 62 100 until; #X obj 62 128 f; #X obj 94 128 + 1; #X msg 104 100 0; #X obj 62 150 t a a; #X text 47 236 value; #X text 108 236 index; #X obj 56 211 expr sin($f1*1.5708); #X obj 62 19 loadbang; #X obj 55 254 tabwrite \$1; #X obj 54 292 table \$1 \$2; #X obj 62 175 / \$2; #X obj 62 50 f \$2; #X text 150 17 grrrr.org 2012; #X connect 0 0 1 0; #X connect 0 1 4 0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 2 0 5 0; #X connect 3 0 2 1; #X connect 4 0 2 1; #X connect 5 0 12 0; #X connect 5 1 10 1; #X connect 8 0 10 0; #X connect 9 0 13 0; #X connect 12 0 8 0; #X connect 13 0 0 0;