#N canvas 255 101 922 466 10;
#X obj 58 170 catch~ \$0-out;
#X obj 58 193 outlet~;
#X obj 577 85 inlet;
#X obj 577 140 u_dispatch \$0 pwmfreq;
#X obj 577 163 u_dispatch \$0 pwmdepth;
#X obj 632 62 u_loader s_osc-\$1 \$0;
#N canvas 89 0 753 372 synths 0;
#N canvas 0 0 727 452 triangle 0;
#X obj 204 71 inlet;
#X obj 328 74 inlet;
#X obj 130 207 outlet~;
#X obj 131 65 inlet~;
#N canvas 0 0 779 606 triangle 0;
#X obj 80 290 -~ 0.5;
#X obj 228 290 -~ 0.5;
#X obj 134 340 -~;
#X obj 220 480 outlet~;
#X obj 80 91 phasor~ 0;
#X text 131 55 frequency;
#X obj 228 236 wrap~;
#N canvas 0 0 540 420 4*$v1*(1-$v1) 0;
#X obj 182 177 *~ 4;
#X obj 132 177 sig~ 1;
#X obj 132 200 -~;
#X obj 132 228 *~;
#X obj 182 76 inlet~;
#X obj 132 253 outlet~;
#X connect 0 0 3 1;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 5 0;
#X connect 4 0 2 1;
#X connect 4 0 0 0;
#X restore 228 262 pd 4*$v1*(1-$v1);
#N canvas 0 0 540 420 4*$v1*(1-$v1) 0;
#X obj 182 177 *~ 4;
#X obj 132 177 sig~ 1;
#X obj 132 200 -~;
#X obj 132 228 *~;
#X obj 182 76 inlet~;
#X obj 132 253 outlet~;
#X connect 0 0 3 1;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 5 0;
#X connect 4 0 2 1;
#X connect 4 0 0 0;
#X restore 79 261 pd 4*$v1*(1-$v1);
#X text 489 64 tri-saw factor (0-1);
#X obj 80 54 inlet~;
#X obj 430 66 inlet;
#X obj 430 89 clip 0.01 0.99;
#X obj 294 372 line~;
#X obj 294 350 pack 0 10;
#N canvas 0 0 540 420 4*$f1*(1-$f1) 0;
#X obj 185 177 * 4;
#X obj 137 72 inlet;
#X msg 137 171 1 \$1;
#X obj 137 200 -;
#X obj 137 228 *;
#X obj 137 107 t a a;
#X obj 137 253 outlet;
#X connect 0 0 4 1;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 2 0;
#X connect 5 1 0 0;
#X restore 430 290 pd 4*$f1*(1-$f1);
#X obj 245 151 line~;
#X obj 245 129 pack 0 10;
#X obj 227 177 +~;
#X obj 245 77 loadbang;
#X msg 245 98 0.5;
#X obj 220 414 /~;
#X obj 294 297 loadbang;
#X msg 294 318 1;
#X obj 241 45 inlet;
#X connect 0 0 2 0;
#X connect 1 0 2 1;
#X connect 2 0 21 0;
#X connect 4 0 8 0;
#X connect 4 0 18 0;
#X connect 6 0 7 0;
#X connect 7 0 1 0;
#X connect 8 0 0 0;
#X connect 10 0 4 0;
#X connect 11 0 12 0;
#X connect 12 0 15 0;
#X connect 12 0 17 0;
#X connect 13 0 21 1;
#X connect 14 0 13 0;
#X connect 15 0 14 0;
#X connect 16 0 18 1;
#X connect 17 0 16 0;
#X connect 18 0 6 0;
#X connect 19 0 20 0;
#X connect 20 0 17 0;
#X connect 21 0 3 0;
#X connect 22 0 23 0;
#X connect 23 0 14 0;
#X connect 24 0 4 1;
#X restore 130 162 pd triangle;
#X obj 328 98 switch~;
#X text 202 48 slope;
#X obj 204 137 m_scale -1 1 0 1;
#X obj 167 102 r \$0-phase;
#X connect 0 0 7 0;
#X connect 1 0 5 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X connect 7 0 4 2;
#X connect 8 0 4 1;
#X restore 506 211 pd triangle;
#X obj 580 185 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 507 233 throw~ \$0-out;
#X obj 343 229 throw~ \$0-out;
#X obj 404 180 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 364 100 r \$0-pwmfreq;
#X obj 384 124 r \$0-pwmdepth;
#N canvas 0 0 539 425 saw 0;
#X obj 179 188 s_blsaw;
#X obj 180 268 outlet~;
#X obj 290 122 switch~;
#X obj 290 98 inlet;
#X obj 179 87 inlet~;
#X obj 225 161 r \$0-phase;
#X obj 206 216 *~ 1.6;
#X obj 206 240 -~ 0.8;
#X connect 0 0 6 0;
#X connect 3 0 2 0;
#X connect 4 0 0 0;
#X connect 5 0 0 1;
#X connect 6 0 7 0;
#X connect 7 0 1 0;
#X restore 217 198 pd saw;
#X obj 217 227 throw~ \$0-out;
#N canvas 0 0 725 579 square 0;
#X obj 226 396 outlet~;
#X obj 591 114 switch~;
#X obj 591 90 inlet;
#X obj 227 370 s_blsquare;
#X floatatom 258 224 5 0 0 2 pwm_freq - -;
#X obj 259 303 +~ 0.5;
#X obj 259 338 *~ 1;
#X text 325 303 it's best to modulate around 0.5;
#X obj 345 242 / 100;
#X floatatom 345 224 5 0 0 2 depth - -;
#X obj 296 87 inlet;
#X obj 347 88 inlet;
#X obj 227 87 inlet~;
#X obj 310 370 r \$0-phase;
#X obj 259 275 *~ 0;
#X obj 258 243 osc~ 0;
#X connect 2 0 1 0;
#X connect 3 0 0 0;
#X connect 4 0 15 0;
#X connect 5 0 6 0;
#X connect 6 0 3 1;
#X connect 8 0 14 1;
#X connect 9 0 8 0;
#X connect 10 0 15 0;
#X connect 11 0 8 0;
#X connect 12 0 3 0;
#X connect 13 0 3 2;
#X connect 14 0 5 0;
#X connect 15 0 14 0;
#X restore 344 205 pd square;
#X obj 256 177 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#N canvas 0 0 541 367 sine 0;
#X obj 115 150 osc~;
#X obj 304 89 switch~;
#X obj 304 65 inlet;
#X obj 116 187 outlet~;
#X obj 115 71 inlet~;
#X obj 140 122 r \$0-phase;
#X connect 0 0 3 0;
#X connect 2 0 1 0;
#X connect 4 0 0 0;
#X connect 5 0 0 1;
#X restore 69 199 pd sine;
#X obj 115 176 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X obj 69 225 throw~ \$0-out;
#X obj 543 104 r \$0-trislope;
#X obj 115 154 r \$0-sine;
#X obj 256 152 r \$0-saw;
#X obj 404 155 r \$0-square;
#X obj 580 160 r \$0-tri;
#X obj 69 21 inlet~;
#X connect 0 0 2 0;
#X connect 1 0 0 2;
#X connect 4 0 9 3;
#X connect 5 0 9 1;
#X connect 6 0 9 2;
#X connect 7 0 8 0;
#X connect 9 0 3 0;
#X connect 10 0 7 1;
#X connect 11 0 13 0;
#X connect 12 0 11 1;
#X connect 14 0 0 1;
#X connect 15 0 12 0;
#X connect 16 0 10 0;
#X connect 17 0 4 0;
#X connect 18 0 1 0;
#X connect 19 0 11 0;
#X connect 19 0 7 0;
#X connect 19 0 9 0;
#X connect 19 0 0 0;
#X restore 59 122 pd synths;
#X obj 632 91 r \$0-init;
#X obj 58 81 inlet~;
#X obj 577 208 u_dispatch \$0 phase;
#X obj 577 186 u_dispatch \$0 trislope;
#X obj 577 231 u_dispatch \$0 sine;
#X obj 577 255 u_dispatch \$0 saw;
#X obj 577 278 u_dispatch \$0 square;
#X obj 577 301 u_dispatch \$0 tri;
#X obj 577 326 u_dispatch \$0 switch;
#X obj 217 86 loadbang;
#X obj 217 113 list append \$2;
#X obj 217 239 s \$0-init;
#X text 736 328 sine saw square tri;
#X obj 217 141 select 0;
#X obj 270 177 list append 1;
#X obj 270 202 list trim;
#X msg 217 177 sine 1;
#X obj 215 275 r \$0-switch;
#X msg 215 323 sine \$1 \, saw \$2 \, square \$3 \, tri \$4;
#X obj 215 351 s \$0-init;
#N canvas 0 0 450 300 pad 0;
#X obj 129 41 inlet;
#X obj 216 113 list;
#X obj 216 140 list length;
#X obj 149 190 list split;
#X obj 228 43 inlet;
#X obj 129 256 outlet;
#X obj 129 74 t a b b a;
#X obj 129 229 list append;
#X obj 149 166 list;
#X connect 0 0 6 0;
#X connect 1 0 2 0;
#X connect 2 0 3 1;
#X connect 3 1 7 1;
#X connect 4 0 8 1;
#X connect 6 0 7 0;
#X connect 6 1 8 0;
#X connect 6 2 7 1;
#X connect 6 3 1 0;
#X connect 7 0 5 0;
#X connect 8 0 3 0;
#X restore 215 299 pd pad;
#X obj 302 274 loadbang;
#X msg 302 299 0 0 0 0;
#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 712 29 pd LICENSE-GPL;
#X connect 0 0 1 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 10 0;
#X connect 7 0 3 0;
#X connect 8 0 6 0;
#X connect 9 0 11 0;
#X connect 10 0 9 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 16 0 17 0;
#X connect 17 0 20 0;
#X connect 20 0 23 0;
#X connect 20 1 21 0;
#X connect 21 0 22 0;
#X connect 22 0 18 0;
#X connect 23 0 18 0;
#X connect 24 0 27 0;
#X connect 25 0 26 0;
#X connect 27 0 25 0;
#X connect 28 0 29 0;
#X connect 29 0 27 1;
