#N canvas 36 85 602 640 10; #N canvas 0 0 383 778 synth1 0; #X obj -15 723 *~ 0.2; #X obj -16 601 bp~ 100 3; #X obj -16 622 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 13 283 pd envelope; #X obj 13 413 * 3000; #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 -16 180 pd fatoscillator; #X obj 23 496 t b f; #X obj 21 389 t b f; #X obj 13 520 + 20; #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 1 663 pd envelope; #X obj -15 686 *~; #X obj -16 30 r \$0-oscf; #X obj 91 153 r \$0-oscfat; #X obj 49 217 r \$0-fenva; #X obj 123 177 r \$0-fenvd; #X obj 84 558 r \$0-aenva; #X obj 73 620 r \$0-aenvd; #X obj 22 698 r \$0-amp; #X obj 42 537 r \$0-fres; #X obj 21 337 r \$0-frng; #X obj 24 447 r \$0-frle; #X obj -16 753 outlet~; #X obj 53 4 inlet; #X obj 83 112 t b b; #X obj 53 29 t f b; #X obj -16 155 mtof; #X obj -16 79 * 12; #X obj -16 132 +; #X obj -16 55 - 2; #X obj -7 102 t b f; #X obj 49 238 * 2000; #X obj 123 200 * 2000; #X obj 21 364 * 3000; #X obj 23 473 * 3000; #X obj 42 559 * 6; #X obj 42 579 + 0.5; #X obj 84 600 * 2000; #X obj 73 641 * 2000; #X text 173 201 <---- added multipliers; #X text 164 241 <------------ and offsets; #X text 68 304 <---- offset to stop clicks when; #X text 110 321 filter is zero; #X obj 49 262 + 10; #X obj 123 240 + 10; #X obj 13 308 + 0.2; #X connect 0 0 21 0; #X connect 1 0 2 0; #X connect 2 0 10 0; #X connect 3 0 44 0; #X connect 4 0 8 0; #X connect 5 0 1 0; #X connect 6 0 8 0; #X connect 6 1 8 1; #X connect 7 0 4 0; #X connect 7 1 4 1; #X connect 8 0 1 1; #X connect 9 0 10 1; #X connect 10 0 0 0; #X connect 11 0 28 0; #X connect 12 0 5 1; #X connect 13 0 30 0; #X connect 14 0 31 0; #X connect 15 0 36 0; #X connect 16 0 37 0; #X connect 17 0 0 1; #X connect 18 0 34 0; #X connect 19 0 32 0; #X connect 20 0 33 0; #X connect 22 0 24 0; #X connect 23 0 9 0; #X connect 23 1 3 0; #X connect 24 0 29 0; #X connect 24 1 23 0; #X connect 25 0 5 0; #X connect 26 0 27 0; #X connect 27 0 25 0; #X connect 28 0 26 0; #X connect 29 0 27 0; #X connect 29 1 27 1; #X connect 30 0 42 0; #X connect 31 0 43 0; #X connect 32 0 7 0; #X connect 33 0 6 0; #X connect 34 0 35 0; #X connect 35 0 1 2; #X connect 36 0 9 1; #X connect 37 0 9 2; #X connect 42 0 3 1; #X connect 43 0 3 2; #X connect 44 0 4 0; #X restore 53 450 pd synth1; #X obj 54 489 dac~; #N canvas 614 223 579 466 interface 0; #X obj 100 253 cnv 15 100 120 empty empty OSC 8 12 1 14 -258699 -262144 0; #X obj 201 253 cnv 15 200 120 empty empty AMP 8 12 1 14 -260818 -262144 0; #X obj 101 132 cnv 15 300 120 empty empty FILTER 8 12 1 14 -62784 -262144 0; #X obj 322 287 vsl 12 60 0.01 1 1 0 empty \$0-amplevel-r L 0 -8 1 8 -262144 -1 -262144 0 1; #X obj 285 164 vsl 12 60 0.01 1 1 0 empty \$0-filterlevel-r LEV 0 -8 1 8 -262144 -1 -262144 0 1; #X obj 116 164 vsl 12 60 0.01 1 1 1 empty \$0-filterattack-r A 0 -8 1 8 -262144 -1 -262144 2644 1; #X obj 156 164 vsl 12 60 0.01 1 1 1 empty \$0-filterdecay-r D 0 -8 1 8 -262144 -1 -262144 2644 1; #X obj 246 164 vsl 12 60 0.01 1 1 0 empty \$0-filteramount-r AMT 0 -8 1 8 -262144 -1 -262144 0 1; #X obj 157 286 vsl 12 60 0.01 1 1 0 empty \$0-oscfatness-r FAT 0 -8 1 8 -262144 -1 -262144 0 1; #X obj 324 164 vsl 12 60 0 1 0 0 empty \$0-filterresonance-r RES 0 -8 1 8 -262144 -33289 -262144 0 1; #X obj 244 287 vsl 12 60 0.01 1 1 1 empty \$0-ampattack-r A 0 -8 1 8 -262144 -1 -262144 868 1; #X obj 283 287 vsl 12 60 0.01 1 1 1 empty \$0-ampdecay-r D 0 -8 1 8 -262144 -1 -262144 1756 1; #X obj 53 420 s \$0-oscf; #X obj 130 421 s \$0-oscfat; #X obj 54 391 s \$0-fenva; #X obj 131 390 s \$0-fenvd; #X obj 217 421 s \$0-aenva; #X obj 295 421 s \$0-aenvd; #X obj 374 421 s \$0-amp; #X obj 377 389 s \$0-fres; #X obj 218 391 s \$0-frng; #X obj 298 390 s \$0-frle; #X obj 322 355 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -260818 -262144 -1 0 256; #X obj 283 355 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -260818 -262144 -1 0.0393781 256; #X obj 244 355 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -260818 -262144 -1 0.0196896 256; #X obj 157 352 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -258699 -262144 -1 0 256; #X obj 112 351 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -258699 -262144 -1 0 256; #X obj 324 234 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -62784 -262144 -1 0 256; #X obj 285 234 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -62784 -262144 -1 0 256; #X obj 246 234 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -62784 -262144 -1 0 256; #X obj 156 234 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -62784 -262144 -1 0.0787537 256; #X obj 116 234 nbx 3 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -62784 -262144 -1 0.0787537 256; #X obj 112 285 vradio 12 1 1 5 empty \$0-oscoctave-r OCT 0 -6 1 8 -262144 -1 -262144 2; #X obj 74 339 - 2; #X text -14 78 We changed all the sliders to log and normalised their ranges to 1 - 0; #X text -89 341 to adjust display -->; #X obj 100 101 cnv 15 300 30 empty empty PLUTO 20 12 1 18 -258699 -262144 0; #X symbolatom 237 113 20 0 0 2 patchname #0-patchname -; #X connect 3 0 18 0; #X connect 3 0 22 0; #X connect 4 0 21 0; #X connect 4 0 28 0; #X connect 5 0 14 0; #X connect 5 0 31 0; #X connect 6 0 15 0; #X connect 6 0 30 0; #X connect 7 0 20 0; #X connect 7 0 29 0; #X connect 8 0 13 0; #X connect 8 0 25 0; #X connect 9 0 19 0; #X connect 9 0 27 0; #X connect 10 0 16 0; #X connect 10 0 24 0; #X connect 11 0 17 0; #X connect 11 0 23 0; #X connect 32 0 12 0; #X connect 32 0 33 0; #X connect 33 0 26 0; #X coords 0 -1 1 1 300 270 1 100 100; #X restore 274 335 pd interface; #N canvas 0 0 450 300 random 0; #X obj 55 101 metro 100; #X obj 55 214 outlet; #X obj 81 46 loadbang; #X msg 81 69 1; #X obj 32 46 inlet; #X obj 55 125 random 12; #X obj 55 153 * 3; #X obj 55 188 + 36; #X connect 0 0 5 0; #X connect 2 0 3 0; #X connect 3 0 0 0; #X connect 4 0 0 0; #X connect 5 0 6 0; #X connect 6 0 7 0; #X connect 7 0 1 0; #X restore 53 389 pd random midi notes; #X obj 53 367 tgl 15 0 empty empty on-off 0 -6 1 8 -262144 -1 -1 0 1; #X floatatom 53 417 5 0 0 0 - - -; #X text 99 4 Six simple synthesisers 114; #X text 40 34 Control interface. We decide what we want the "outside world" to be able to send to our synth.; #X text 39 69 Each slider must have its receive symbol filled in with a corresponding control name.; #X text 40 102 We assign controls to a name and a range between 0 and 127 for midi controllers. These can be used to recall patch memories or have live midi control.; #N canvas 0 0 564 551 control 0; #X obj 39 336 s \$0-filterattack-r; #X obj 39 356 s \$0-filterdecay-r; #X obj 39 376 s \$0-filteramount-r; #X obj 39 396 s \$0-filterlevel-r; #X obj 39 416 s \$0-filterresonance-r; #X obj 39 436 s \$0-oscoctave-r; #X obj 39 456 s \$0-oscfatness-r; #X obj 39 476 s \$0-ampattack-r; #X obj 39 496 s \$0-ampdecay-r; #X obj 39 516 s \$0-amplevel-r; #X obj 75 202 route fak fdy fam flv fre ooc oft aak ady alv; #X obj 75 154 r pluto; #X obj 39 237 / 127; #X obj 79 237 / 127; #X obj 119 237 / 127; #X obj 159 237 / 127; #X obj 199 237 / 127; #X obj 239 237 / 127; #X obj 279 237 / 127; #X obj 319 237 / 127; #X obj 359 237 / 127; #X obj 399 237 / 127; #X obj 239 257 * 5; #X obj 444 237 route name; #X obj 444 287 s \$0-patchname; #X obj 444 263 symbol; #X msg 26 87 \; pluto name stringy \, fak 10 \, fdy 10 \, fam 20 \, flv 15 \, fre 40 \, ooc 60 \, oft 2 \, aak 2.5 \, ady 5 \, alv 40; #X connect 10 0 12 0; #X connect 10 1 13 0; #X connect 10 2 14 0; #X connect 10 3 15 0; #X connect 10 4 16 0; #X connect 10 5 17 0; #X connect 10 6 18 0; #X connect 10 7 19 0; #X connect 10 8 20 0; #X connect 10 9 21 0; #X connect 10 10 23 0; #X connect 11 0 10 0; #X connect 12 0 0 0; #X connect 13 0 1 0; #X connect 14 0 2 0; #X connect 15 0 3 0; #X connect 16 0 4 0; #X connect 17 0 22 0; #X connect 18 0 6 0; #X connect 19 0 7 0; #X connect 20 0 8 0; #X connect 21 0 9 0; #X connect 22 0 5 0; #X connect 23 0 25 0; #X connect 25 0 24 0; #X restore 444 40 pd control interface; #X text 41 154 Now we can send program messages like this; #X msg 98 180 \; pluto name brassy \, fak 10 \, fdy 50 \, fam 50 \, flv 50 \, fre 20 \, ooc 60 \, oft 20 \, aak 10 \, ady 60 \, alv 20 ; #X msg 99 228 \; pluto name synbass \, fak 2 \, fdy 10 \, fam 40 \, flv 10 \, fre 40 \, ooc 30 \, oft 1 \, aak 1 \, ady 4 \, alv 40; #X msg 99 277 \; pluto name stringy \, fak 10 \, fdy 10 \, fam 20 \, flv 15 \, fre 40 \, ooc 60 \, oft 2 \, aak 2.5 \, ady 5 \, alv 40; #X connect 0 0 1 0; #X connect 0 0 1 1; #X connect 3 0 5 0; #X connect 4 0 3 0; #X connect 5 0 0 0;