#N canvas 454 17 528 492 10; #N canvas 647 5 291 900 lookup-tables 0; #X restore 20 53 pd lookup-tables; #N canvas 0 0 505 412 lookup-table-creation 0; #N canvas 535 94 265 461 bandlimited_square_sinesum 0; #X obj 43 67 until; #X obj 21 38 t b f b; #X obj 84 67 1; #X obj 43 99 f 1; #X obj 84 99 + 1; #X obj 43 125 t f f; #X obj 43 153 % 2; #X obj 43 176 sel 0 1; #X obj 43 203 0; #X obj 69 203 f; #X obj 69 227 t b f; #X obj 69 249 pack 1 f; #X obj 69 274 /; #X obj 43 306 list prepend; #X obj 142 307 list; #X obj 21 335 list; #X obj 154 252 b; #X obj 21 380 list trim; #X obj 21 16 inlet; #X obj 21 402 outlet; #X obj 21 358 list prepend sinesum 512; #X connect 0 0 3 0; #X connect 1 0 15 0; #X connect 1 1 0 0; #X connect 1 2 2 0; #X connect 1 2 16 0; #X connect 2 0 3 1; #X connect 3 0 4 0; #X connect 3 0 5 0; #X connect 4 0 3 1; #X connect 5 0 6 0; #X connect 5 1 9 1; #X connect 6 0 7 0; #X connect 7 0 8 0; #X connect 7 1 9 0; #X connect 8 0 13 0; #X connect 9 0 10 0; #X connect 10 0 11 0; #X connect 10 1 11 1; #X connect 11 0 12 0; #X connect 12 0 13 0; #X connect 13 0 14 0; #X connect 13 0 15 1; #X connect 14 0 13 1; #X connect 15 0 20 0; #X connect 16 0 15 1; #X connect 16 0 13 1; #X connect 17 0 19 0; #X connect 18 0 1 0; #X connect 20 0 17 0; #X restore 19 327 pd bandlimited_square_sinesum; #X obj 19 92 until; #X obj 19 114 f; #X obj 54 114 + 1; #X obj 62 92 1; #X obj 19 135 * 2; #X obj 19 157 - 1; #X obj 84 293 s pd-lookup-tables; #X obj 135 220 makefilename \$0-square%d; #X obj 84 242 pack f s; #X obj 19 70 t f b b; #X msg 140 167 clear; #X obj 84 218 * 10; #X obj 19 179 t b f f; #X obj 19 304 f; #X obj 19 371 send; #X obj 19 44 r \$0-num_of_tables; #X obj 319 35 loadbang; #X obj 319 61 \$0; #X msg 319 86 \; \$1-num_of_tables 30; #X msg 84 271 obj 10 \$1 table \$2 515; #X connect 0 0 15 0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 2 0 5 0; #X connect 3 0 2 1; #X connect 4 0 2 1; #X connect 5 0 6 0; #X connect 6 0 13 0; #X connect 8 0 9 1; #X connect 8 0 15 1; #X connect 9 0 20 0; #X connect 10 0 1 0; #X connect 10 1 4 0; #X connect 10 2 11 0; #X connect 11 0 7 0; #X connect 12 0 9 0; #X connect 13 0 14 0; #X connect 13 1 12 0; #X connect 13 2 8 0; #X connect 13 2 14 1; #X connect 14 0 0 0; #X connect 16 0 10 0; #X connect 17 0 18 0; #X connect 18 0 19 0; #X connect 20 0 7 0; #X restore 20 28 pd lookup-table-creation; #X floatatom 25 109 5 0 0 0 - - -; #X obj 28 379 dac~; #X obj 28 88 hsl 128 15 20 17000 1 0 empty empty empty -2 -8 0 10 -262144 -1 -1 8800 1; #X obj 27 350 *~; #X obj 97 304 pow 2; #X obj 100 279 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X obj 25 152 line~; #X obj 97 350 line~; #X obj 97 327 pack f 20; #N canvas 340 190 333 233 bandlimited_square 0; #N canvas 314 100 500 478 number_of_harmonics_allowed 0; #X obj 135 68 / 2; #X obj 15 151 /; #X obj 15 174 int; #X obj 135 44 samplerate~; #X obj 15 241 * 0.5; #X obj 15 261 int; #X obj 15 282 * 2; #X obj 15 221 - 1; #X obj 15 305 + 1; #X obj 15 397 makefilename \$0-square%d; #X obj 15 373 change; #X obj 15 199 change; #X msg 15 422 set \$1; #X obj 15 98 t b f; #X text 241 49 sr / 2 = nyquist frequency; #X obj 15 450 outlet; #X obj 206 370 b; #X obj 239 371 b; #X obj 206 392 0; #X obj 239 392 1; #X obj 206 420 change; #X obj 206 444 outlet; #X obj 14 18 inlet~; #X obj 15 121 f; #X obj 135 21 loadbang; #X text 119 216 harmonics never should exceed the nyquist frequency ; #X obj 15 49 snapshot~; #X obj 78 21 bang~; #X obj 15 72 change; #X obj 15 329 moses; #X obj 78 263 r \$0-num_of_tables; #X obj 78 287 * 2; #X obj 78 309 + 1; #X connect 0 0 23 1; #X connect 1 0 2 0; #X connect 2 0 11 0; #X connect 3 0 0 0; #X connect 4 0 5 0; #X connect 5 0 6 0; #X connect 6 0 8 0; #X connect 7 0 4 0; #X connect 8 0 29 0; #X connect 9 0 12 0; #X connect 10 0 9 0; #X connect 11 0 7 0; #X connect 12 0 15 0; #X connect 13 0 23 0; #X connect 13 1 1 1; #X connect 16 0 18 0; #X connect 17 0 19 0; #X connect 18 0 20 0; #X connect 19 0 20 0; #X connect 20 0 21 0; #X connect 22 0 26 0; #X connect 23 0 1 0; #X connect 24 0 3 0; #X connect 26 0 28 0; #X connect 27 0 26 0; #X connect 28 0 13 0; #X connect 29 0 10 0; #X connect 29 0 16 0; #X connect 29 1 17 0; #X connect 30 0 31 0; #X connect 31 0 32 0; #X connect 32 0 29 1; #X restore 87 61 pd number_of_harmonics_allowed; #X obj 190 90 == 0; #N canvas 499 174 280 152 raw_square 0; #N canvas 186 124 192 145 switchable_part 0; #X obj 17 38 <~ 0.5; #X obj 17 62 -~ 0.5; #X obj 17 84 *~ 1.9; #X obj 17 109 outlet~; #X obj 109 48 inlet; #X obj 109 73 switch~; #X obj 17 12 inlet~; #X connect 0 0 1 0; #X connect 1 0 2 0; #X connect 2 0 3 0; #X connect 4 0 5 0; #X connect 6 0 0 0; #X restore 20 66 pd switchable_part; #X obj 19 13 inlet~; #X obj 19 91 outlet~; #X obj 141 34 inlet; #X obj 19 39 phasor~; #X connect 0 0 2 0; #X connect 1 0 4 0; #X connect 3 0 0 1; #X connect 4 0 0 0; #X restore 89 143 pd raw_square; #N canvas 0 0 305 193 bandlimited_square 0; #X obj 16 31 inlet~; #X obj 71 36 inlet; #X obj 17 74 tabosc4~ \$0-square1; #X obj 162 44 inlet; #X obj 17 132 outlet~; #X obj 16 105 *~; #X connect 0 0 2 0; #X connect 1 0 2 0; #X connect 2 0 5 0; #X connect 3 0 5 1; #X connect 5 0 4 0; #X restore 40 111 pd bandlimited_square; #X obj 40 20 inlet~; #X obj 39 175 outlet~; #X connect 0 0 3 1; #X connect 0 1 1 0; #X connect 0 1 2 1; #X connect 1 0 3 2; #X connect 2 0 5 0; #X connect 3 0 5 0; #X connect 4 0 3 0; #X connect 4 0 0 0; #X connect 4 0 2 0; #X restore 26 232 pd bandlimited_square; #X obj 25 129 pack f 100; #X floatatom 241 111 5 0 0 0 - - -; #X obj 244 381 dac~; #X obj 244 90 hsl 128 15 20 17000 1 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X obj 243 352 *~; #X obj 313 306 pow 2; #X obj 316 281 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X obj 241 154 line~; #X obj 313 352 line~; #X obj 313 329 pack f 20; #X obj 241 131 pack f 100; #N canvas 499 174 280 152 raw_square 0; #X obj 18 16 inlet~; #X obj 17 128 outlet~; #X obj 18 39 phasor~; #X obj 18 61 <~ 0.5; #X obj 18 85 -~ 0.5; #X obj 18 107 *~ 1.9; #X connect 0 0 2 0; #X connect 2 0 3 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 5 0 1 0; #X restore 242 236 pd raw_square; #X connect 2 0 12 0; #X connect 4 0 2 0; #X connect 5 0 3 0; #X connect 5 0 3 1; #X connect 6 0 10 0; #X connect 7 0 6 0; #X connect 8 0 11 0; #X connect 9 0 5 1; #X connect 10 0 9 0; #X connect 11 0 5 0; #X connect 12 0 8 0; #X connect 13 0 22 0; #X connect 15 0 13 0; #X connect 16 0 14 0; #X connect 16 0 14 1; #X connect 17 0 21 0; #X connect 18 0 17 0; #X connect 19 0 23 0; #X connect 20 0 16 1; #X connect 21 0 20 0; #X connect 22 0 19 0; #X connect 23 0 16 0;