#N canvas 0 0 1033 690 10;
#X obj 258 405 *~;
#X floatatom 295 113 4 0 0 2 grain-rate - -;
#X obj 632 80 inlet;
#X obj 260 545 outlet~;
#X obj 258 142 phasor~;
#X obj 299 524 outlet~;
#X obj 258 359 *~;
#N canvas 0 0 450 300 pan 0;
#X obj 70 74 inlet~;
#X obj 70 200 outlet~;
#X obj 160 201 outlet~;
#X obj 178 70 inlet~;
#X obj 88 122 sig~ 1;
#X obj 88 148 -~;
#X obj 161 167 *~;
#X obj 70 172 *~;
#X text 237 71 0:left \, 1: right;
#X connect 0 0 7 0;
#X connect 0 0 6 0;
#X connect 3 0 6 1;
#X connect 3 0 5 1;
#X connect 4 0 5 0;
#X connect 5 0 7 1;
#X connect 6 0 2 0;
#X connect 7 0 1 0;
#X restore 259 458 pd pan;
#X text 311 457 0:left \, 1: right;
#N canvas 152 123 932 536 params 0;
#X obj 65 356 *~;
#X obj 64 403 +~;
#X obj 63 432 outlet~;
#X obj 66 116 inlet~;
#X text 68 96 grain phasor;
#X text 56 46 envelope phasor-in \, to only change settings when envelope
is zero. This is to avoid clicks.;
#X text 462 183 delay of grain in msec;
#X obj 498 231 r \$0-delay;
#X obj 477 210 r \$0-delay-r;
#X obj 647 240 outlet~;
#X obj 721 89 r \$0-pan-r;
#N canvas 763 409 494 345 randhold 0;
#X obj 120 63 noise~;
#X obj 120 249 outlet~;
#X obj 120 141 *~ 0;
#X obj 119 206 samphold~;
#X obj 200 67 inlet;
#X obj 46 162 inlet~;
#X text 51 37 sample noise on falling signal edges;
#X obj 120 169 +~ 0;
#X obj 200 94 unpack 0 0;
#X text 12 111 -1 .. 1 noise;
#X text 255 66 <width \, center>;
#X connect 0 0 2 0;
#X connect 2 0 7 0;
#X connect 3 0 1 0;
#X connect 4 0 8 0;
#X connect 5 0 3 1;
#X connect 7 0 3 0;
#X connect 8 0 2 1;
#X connect 8 1 7 1;
#X restore 647 166 pd randhold;
#X obj 477 277 pack 0 0;
#X obj 498 255 t b a;
#N canvas 0 0 494 345 randhold 0;
#X obj 120 63 noise~;
#X obj 120 249 outlet~;
#X obj 120 141 *~ 0;
#X obj 119 206 samphold~;
#X obj 200 67 inlet;
#X obj 46 162 inlet~;
#X text 51 37 sample noise on falling signal edges;
#X obj 120 169 +~ 0;
#X obj 200 94 unpack 0 0;
#X text 12 111 -1 .. 1 noise;
#X text 255 66 <width \, center>;
#X connect 0 0 2 0;
#X connect 2 0 7 0;
#X connect 3 0 1 0;
#X connect 4 0 8 0;
#X connect 5 0 3 1;
#X connect 7 0 3 0;
#X connect 8 0 2 1;
#X connect 8 1 7 1;
#X restore 389 304 pd randhold;
#X obj 171 287 pack 0 0;
#X obj 192 265 t b a;
#N canvas 0 0 494 345 randhold 0;
#X obj 120 63 noise~;
#X obj 120 249 outlet~;
#X obj 120 141 *~ 0;
#X obj 119 206 samphold~;
#X obj 200 67 inlet;
#X obj 46 162 inlet~;
#X text 51 37 sample noise on falling signal edges;
#X obj 120 169 +~ 0;
#X obj 200 94 unpack 0 0;
#X text 12 111 -1 .. 1 noise;
#X text 255 66 <width \, center>;
#X connect 0 0 2 0;
#X connect 2 0 7 0;
#X connect 3 0 1 0;
#X connect 4 0 8 0;
#X connect 5 0 3 1;
#X connect 7 0 3 0;
#X connect 8 0 2 1;
#X connect 8 1 7 1;
#X restore 83 314 pd randhold;
#X obj 171 220 r \$0-size-r;
#X obj 192 241 r \$0-size;
#X text 807 89 panning;
#X msg 695 66 0;
#X obj 695 45 loadbang;
#X text 121 432 to tabread4~/vd~;
#X obj 721 143 pack 0 0.5;
#X text 732 167 centered around 0.5;
#X text 204 179 grain size in msecs;
#X text 182 313 <width \, center>;
#X text 486 303 <width \, center>;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 3 0 0 0;
#X connect 3 0 17 0;
#X connect 3 0 14 0;
#X connect 3 0 11 0;
#X connect 7 0 13 0;
#X connect 8 0 12 0;
#X connect 10 0 24 0;
#X connect 11 0 9 0;
#X connect 12 0 14 1;
#X connect 13 0 12 0;
#X connect 13 1 12 1;
#X connect 14 0 1 1;
#X connect 15 0 17 1;
#X connect 16 0 15 0;
#X connect 16 1 15 1;
#X connect 17 0 0 1;
#X connect 18 0 15 0;
#X connect 19 0 16 0;
#X connect 21 0 24 0;
#X connect 22 0 21 0;
#X connect 24 0 11 1;
#X coords 0 0 1 1 170 60 0;
#X restore 490 296 pd params;
#N canvas 0 0 476 569 raised-cosine 0;
#X obj 119 40 inlet~;
#X obj 118 282 outlet~;
#X obj 119 196 cos~;
#X obj 119 95 -~ 0.5;
#X obj 119 173 clip~ -0.5 0.5;
#X obj 119 219 +~ 1;
#X obj 119 242 *~ 0.5;
#X text 169 204 raised;
#X obj 119 150 *~ 1;
#X floatatom 159 151 5 0 0 0 - - -;
#X obj 219 41 inlet;
#X text 277 43 bandwidth;
#X connect 0 0 3 0;
#X connect 2 0 5 0;
#X connect 3 0 8 0;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 1 0;
#X connect 8 0 4 0;
#X connect 9 0 8 1;
#X connect 10 0 8 1;
#X restore 258 296 pd raised-cosine;
#X obj 367 275 r \$0-bw;
#N canvas 0 0 1093 423 volume-hold 0;
#X obj 187 229 outlet~;
#X obj 274 171 pack 0 0;
#X obj 295 149 t b a;
#N canvas 0 0 494 345 randhold 0;
#X obj 120 63 noise~;
#X obj 120 249 outlet~;
#X obj 120 141 *~ 0;
#X obj 119 206 samphold~;
#X obj 200 67 inlet;
#X obj 46 162 inlet~;
#X text 51 37 sample noise on falling signal edges;
#X obj 120 169 +~ 0;
#X obj 200 94 unpack 0 0;
#X text 12 111 -1 .. 1 noise;
#X text 255 66 <width \, center>;
#X connect 0 0 2 0;
#X connect 2 0 7 0;
#X connect 3 0 1 0;
#X connect 4 0 8 0;
#X connect 5 0 3 1;
#X connect 7 0 3 0;
#X connect 8 0 2 1;
#X connect 8 1 7 1;
#X restore 186 198 pd randhold;
#X text 283 197 <width \, low border>;
#X obj 274 104 r \$0-vol-r;
#X obj 295 125 r \$0-vol;
#X obj 187 106 inlet~;
#X connect 1 0 3 1;
#X connect 2 0 1 0;
#X connect 2 1 1 1;
#X connect 3 0 0 0;
#X connect 5 0 1 0;
#X connect 6 0 2 0;
#X connect 7 0 3 0;
#X restore 275 328 pd volume-hold;
#X obj 375 77 r \$0-phase;
#X obj 258 77 r \$0-grain-rate;
#X obj 632 109 list trim;
#X obj 632 138 route save;
#X msg 632 167 save;
#X obj 632 225 outlet;
#X obj 699 247 u_dispatch \$0 grain-rate;
#X obj 699 276 u_dispatch \$0 phase;
#X obj 699 305 u_dispatch \$0 bw;
#X obj 699 334 u_dispatch \$0 vol;
#X obj 699 363 u_dispatch \$0 vol-r;
#X obj 699 392 u_dispatch \$0 size;
#X obj 699 421 u_dispatch \$0 size-r;
#X obj 699 450 u_dispatch \$0 delay;
#X obj 699 479 u_dispatch \$0 delay-r;
#X obj 699 508 u_dispatch \$0 pan-r;
#X obj 699 536 u_dispatch \$0 phase-rand;
#N canvas 0 0 450 300 randphase 0;
#X obj 123 207 s \$0-phase;
#X obj 123 146 random 10000;
#X obj 123 173 / 10000;
#X obj 136 94 r \$0-phase-rand;
#X obj 123 122 b;
#X obj 123 68 inlet;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 4 0 1 0;
#X connect 5 0 4 0;
#X restore 449 122 pd randphase;
#X text 113 78 dummy;
#X obj 60 77 inlet;
#X obj 277 383 vd~ \$2;
#X obj 632 196 u_loader e_graindelread-\$1 \$0;
#X obj 375 100 route float;
#X text 387 52 phase: float = set \, else = rand;
#X obj 410 145 print rand;
#N canvas 172 83 586 377 LICENSE-GPL 0;
#X text 57 88 This program is free software: you can redistribute it
and/or modify it under the terms of the GNU General Public License
as published by the Free Software Foundation \, either version 3 of
the License \, or (at your option) any later version.;
#X text 58 168 This program is distributed in the hope that it will
be useful \, but WITHOUT ANY WARRANTY \; without even the implied warranty
of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.;
#X text 57 261 You should have received a copy of the GNU General Public
License along with this program. If not \, see <http://www.gnu.org/licenses/>.
;
#X text 61 54 Copyright (C) 2009 \, Reality Jockey Ltd.;
#X text 60 325 See the file LICENSE.txt for the full license text.
;
#X restore 812 39 pd LICENSE-GPL;
#X connect 0 0 7 0;
#X connect 1 0 4 0;
#X connect 2 0 15 0;
#X connect 4 0 9 0;
#X connect 4 0 10 0;
#X connect 4 0 12 0;
#X connect 6 0 0 0;
#X connect 7 0 3 0;
#X connect 7 1 5 0;
#X connect 9 0 33 0;
#X connect 9 1 7 1;
#X connect 10 0 6 0;
#X connect 11 0 10 1;
#X connect 12 0 6 1;
#X connect 13 0 35 0;
#X connect 14 0 4 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X connect 16 1 19 0;
#X connect 17 0 34 0;
#X connect 19 0 20 0;
#X connect 20 0 21 0;
#X connect 21 0 22 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 33 0 0 1;
#X connect 34 0 18 0;
#X connect 35 0 4 1;
#X connect 35 1 30 0;
#X connect 35 1 37 0;
