#N canvas 26 211 652 472 10; #X obj 541 21 pddp/dsp; #X obj 11 8 cnv 15 450 40 empty empty building_waveforms_with_sines 20 12 0 24 -228992 -66577 0; #X obj 467 373 output~; #X obj 32 219 sixteen_harmonics wavetable; #X obj 522 238 random 64; #X obj 522 262 + 32; #X obj 522 285 mtof; #X msg 408 190 bang; #X obj 479 336 *~; #X obj 522 309 tabosc4~ wavetable; #X obj 440 105 cnv 15 100 60 empty empty empty 20 12 0 14 -241291 -66577 0; #X obj 446 125 vsl 10 32 0 1 0 1 \$0-a \$0-a a 0 -8 0 8 -262144 -1 -1 1900 0; #X obj 459 125 vsl 10 32 0 1 0 1 \$0-d \$0-d d 0 -8 0 8 -262144 -1 -1 2700 0; #X obj 472 125 vsl 10 32 0 1 0 1 \$0-s \$0-s s 0 -8 0 8 -262144 -1 -1 1000 0; #X obj 485 125 vsl 10 32 0 1 0 1 \$0-r \$0-r r 0 -8 0 8 -262144 -1 -1 1500 0; #N canvas 95 141 435 501 env 0; #X obj 29 5 inlet; #X obj 29 457 outlet~; #X obj 29 423 vline~; #X msg 29 203 0 \, 1 \$1; #X msg 224 375 0 \$1; #X obj 254 307 * 500; #X obj 59 71 * 500; #X obj 100 253 pack; #X obj 224 240 random 1000; #X msg 100 274 \$2 \$1; #X obj 129 148 * 500; #X obj 100 189 max 10; #X obj 29 114 max 10; #X obj 224 352 max 10; #X obj 29 25 bang; #X obj 129 126 receive \$0-d; #X obj 59 50 receive \$0-a; #X obj 223 218 delay; #X obj 254 287 receive \$0-r; #X obj 224 331 float; #X obj 224 261 delay; #X obj 29 92 float; #X obj 46 139 delay; #X obj 100 170 float; #X obj 122 231 receive \$0-s; #X connect 0 0 14 0; #X connect 2 0 1 0; #X connect 3 0 2 0; #X connect 4 0 2 0; #X connect 5 0 19 1; #X connect 6 0 21 1; #X connect 7 0 9 0; #X connect 8 0 20 0; #X connect 9 0 2 0; #X connect 10 0 23 1; #X connect 11 0 7 0; #X connect 11 0 17 0; #X connect 12 0 3 0; #X connect 12 0 22 0; #X connect 13 0 4 0; #X connect 14 0 21 0; #X connect 15 0 10 0; #X connect 16 0 6 0; #X connect 17 0 8 0; #X connect 18 0 5 0; #X connect 19 0 13 0; #X connect 20 0 19 0; #X connect 21 0 12 0; #X connect 22 0 23 0; #X connect 23 0 11 0; #X connect 24 0 7 1; #X restore 407 273 pd env; #X text 18 145 To start with \, we have something close to a square wave; #X text 15 62 Any waveform can be contructed using sine waves. This patch allows you to construct a waveform using harmonics.; #X obj 408 213 trigger bang bang; #X text 7 373 You can make a triangle wave by setting each harmonic to an amplitude that is the inverse of the harmonic number. That means for harmonic 2 \, set the slider to an amplitude of 1/2 \, or halfway in the middle. For harmonic 3 \, set it at 1/3 \, harmonic 4 \, set to 1/4 \, and so on...; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 6 0 9 0; #X connect 7 0 18 0; #X connect 8 0 2 0; #X connect 8 0 2 1; #X connect 9 0 8 1; #X connect 15 0 8 0; #X connect 18 0 15 0; #X connect 18 1 4 0;