#N canvas 0 0 625 583 10; #X obj 17 549 dac~; #X obj 16 523 *~ 0.2; #X obj 513 212 vsl 15 64 0 0.3 0 0 empty empty amp 0 -8 1 8 -262144 -258699 -1 0 1; #X obj 442 374 vsl 15 64 0 2000 0 0 empty empty filter_freq 0 -8 1 8 -262144 -258699 -1 0 1; #X obj 15 409 bp~ 100 3; #X obj 15 435 hip~ 60; #N canvas 0 0 450 300 envelope 0; #X obj 175 243 line; #X msg 194 219 1 \$1; #X msg 150 218 0 \$1; #X obj 150 146 t b b; #X obj 175 267 outlet; #X obj 187 46 inlet attack; #X obj 289 45 inlet decay; #X obj 77 46 inlet trigger; #X obj 187 87 t f f; #X obj 150 196 f 50; #X obj 194 197 f 50; #X text 235 199 <-- default values 50 ms; #X text 236 88 <-- set floats nicely; #X obj 150 173 del 50; #X text 151 9 envelope subpatch; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 13 0; #X connect 3 1 10 0; #X connect 5 0 8 0; #X connect 6 0 9 1; #X connect 7 0 3 0; #X connect 8 0 13 1; #X connect 8 1 10 1; #X connect 9 0 2 0; #X connect 10 0 1 0; #X connect 13 0 9 0; #X restore 44 249 pd envelope; #X obj 32 103 bng 15 130 50 0 empty empty fire 0 -6 0 8 -262144 -258699 -1; #X obj 228 375 vsl 15 64 0 2000 0 1 empty empty filter-attack 0 -8 1 8 -262144 -258699 -1 800 1; #X obj 305 374 vsl 15 64 0 2000 0 1 empty empty filter-decay 0 -8 1 8 -262144 -258699 -1 2300 1; #X floatatom 233 449 5 0 0 0 - - -; #X floatatom 305 448 5 0 0 0 - - -; #X floatatom 442 448 5 0 0 0 - - -; #X floatatom 513 289 5 0 0 0 - - -; #X obj 44 317 * 3000; #X obj 374 374 vsl 15 64 0 3000 0 0 empty empty filter_range 0 -8 1 8 -262144 -258699 -1 0 1; #X floatatom 374 448 5 0 0 0 - - -; #N canvas 0 0 450 300 fatoscillator 0; #X obj 113 206 +~; #X obj 61 165 -~ 0.5; #X obj 147 164 -~ 0.5; #X obj 60 8 inlet pitch; #X obj 146 108 +; #X obj 60 109 -; #X obj 149 7 inlet fatness; #X obj 149 31 * 5; #X obj 112 238 outlet~; #X obj 60 137 phasor~ 55; #X obj 146 136 phasor~ 55; #X obj 149 53 t b b f f; #X connect 0 0 8 0; #X connect 1 0 0 0; #X connect 2 0 0 1; #X connect 3 0 5 0; #X connect 3 0 4 0; #X connect 4 0 10 0; #X connect 5 0 9 0; #X connect 6 0 7 0; #X connect 7 0 11 0; #X connect 9 0 1 0; #X connect 10 0 2 0; #X connect 11 0 5 0; #X connect 11 1 4 0; #X connect 11 2 5 1; #X connect 11 3 4 1; #X restore 15 186 pd fatoscillator; #X obj 299 215 vsl 15 64 0 1 0 0 empty empty fatness 0 -8 1 8 -262144 -258699 -1 0 1; #X floatatom 303 289 5 0 0 0 - - -; #X obj 224 214 vsl 15 64 22.5 440 0 1 empty empty pitch 0 -8 1 8 -262144 -258699 -1 1400 1; #X floatatom 223 288 5 0 0 0 - - -; #X obj 54 360 t b f; #X obj 52 293 t b f; #X obj 44 384 + 20; #X obj 521 373 vsl 15 64 0.5 6 0 0 empty empty filter_res 0 -8 1 8 -262144 -258699 -1 0 1; #X floatatom 521 447 5 0 0 0 - - -; #N canvas 0 0 450 300 envelope 0; #X obj 175 243 line; #X msg 194 219 1 \$1; #X msg 150 218 0 \$1; #X obj 150 146 t b b; #X obj 175 267 outlet; #X obj 187 46 inlet attack; #X obj 289 45 inlet decay; #X obj 77 46 inlet trigger; #X obj 187 87 t f f; #X obj 150 196 f 50; #X obj 194 197 f 50; #X text 235 199 <-- default values 50 ms; #X text 236 88 <-- set floats nicely; #X obj 150 173 del 50; #X text 151 9 envelope subpatch; #X connect 0 0 4 0; #X connect 1 0 0 0; #X connect 2 0 0 0; #X connect 3 0 13 0; #X connect 3 1 10 0; #X connect 5 0 8 0; #X connect 6 0 9 1; #X connect 7 0 3 0; #X connect 8 0 13 1; #X connect 8 1 10 1; #X connect 9 0 2 0; #X connect 10 0 1 0; #X connect 13 0 9 0; #X restore 32 463 pd envelope; #X obj 371 212 vsl 15 64 0 2000 0 1 empty empty amp-attack 0 -8 1 8 -262144 -258699 -1 100 1; #X obj 447 212 vsl 15 64 0 2000 0 1 empty empty amp-decay 0 -8 1 8 -262144 -258699 -1 2500 1; #X floatatom 371 290 5 0 0 0 - - -; #X floatatom 447 289 5 0 0 0 - - -; #X obj 16 486 *~; #X obj 32 126 t b b; #X obj 207 312 s \$0-oscf; #X obj 15 162 r \$0-oscf; #X obj 281 313 s \$0-oscfat; #X obj 122 159 r \$0-oscfat; #X obj 192 473 s \$0-fenva; #X obj 80 223 r \$0-fenva; #X obj 288 472 s \$0-fenvd; #X obj 117 202 r \$0-fenvd; #X obj 368 313 s \$0-aenva; #X obj 68 428 r \$0-aenva; #X obj 446 313 s \$0-aenvd; #X obj 104 404 r \$0-aenvd; #X obj 526 313 s \$0-amp; #X obj 53 498 r \$0-amp; #X obj 524 471 s \$0-fres; #X obj 79 384 r \$0-fres; #X obj 375 473 s \$0-frng; #X obj 52 271 r \$0-frng; #X obj 449 472 s \$0-frle; #X obj 54 339 r \$0-frle; #X text 169 35 Interface construction II; #X text 88 68 Now we can pull apart the interface from the DSP code ; #X text 167 9 Six simple synthesisers 110; #X connect 1 0 0 0; #X connect 1 0 0 1; #X connect 2 0 13 0; #X connect 2 0 46 0; #X connect 3 0 12 0; #X connect 3 0 52 0; #X connect 4 0 5 0; #X connect 5 0 32 0; #X connect 6 0 14 0; #X connect 7 0 33 0; #X connect 8 0 10 0; #X connect 8 0 38 0; #X connect 9 0 11 0; #X connect 9 0 40 0; #X connect 14 0 24 0; #X connect 15 0 16 0; #X connect 15 0 50 0; #X connect 17 0 4 0; #X connect 18 0 19 0; #X connect 18 0 36 0; #X connect 20 0 21 0; #X connect 20 0 34 0; #X connect 22 0 24 0; #X connect 22 1 24 1; #X connect 23 0 14 0; #X connect 23 1 14 1; #X connect 24 0 4 1; #X connect 25 0 26 0; #X connect 25 0 48 0; #X connect 27 0 32 1; #X connect 28 0 30 0; #X connect 28 0 42 0; #X connect 29 0 31 0; #X connect 29 0 44 0; #X connect 32 0 1 0; #X connect 33 0 27 0; #X connect 33 1 6 0; #X connect 35 0 17 0; #X connect 37 0 17 1; #X connect 39 0 6 1; #X connect 41 0 6 2; #X connect 43 0 27 1; #X connect 45 0 27 2; #X connect 47 0 1 1; #X connect 49 0 4 2; #X connect 51 0 23 0; #X connect 53 0 22 0;