1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287
|
#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;
|