#N canvas -1 -1 619 695 10;
#X text 183 136 This should be;
#X floatatom 177 85 75;
#X obj 177 113 mtof;
#X floatatom 128 521 0;
#X floatatom 346 159 3322.44;
#X obj 30 479 -~;
#X obj 198 371 *~;
#N canvas 391 51 561 814 tables 1;
#X graph graph1 0 -1 1002 1 99 322 499 22;
#X array array1 1002 float;
#X pop;
#X msg 58 680 \; array1 resize 1002;
#X graph graph1 0 -1 100 1 100 630 500 330;
#X array array2 100 float;
#X pop;
#X msg 244 682 \; array2 resize 300;
#X restore 32 196 page tables;
#N canvas 3 1 867 672 make-table 0;
#X obj 548 256 cos~;
#X obj 548 282 *~;
#X obj 548 220 *~;
#X obj 382 250 cos~;
#X obj 383 279 *~;
#X obj 382 218 *~;
#X obj 254 250 cos~;
#X msg 145 372 bang;
#X obj 294 280 sig~ -1;
#X obj 255 278 *~;
#X obj 420 218 sig~ 3;
#X obj 586 222 sig~ 5;
#X obj 419 281 sig~ 0.33333;
#X obj 587 282 sig~ -0.2;
#X obj 257 335 *~;
#X obj 260 394 tabwrite~ array1;
#X obj 293 334 sig~ 0.57692;
#X obj 316 84 sig~ 22.05;
#X text 418 83 period is 2000 samples \, twice the table length;
#X obj 124 22 inlet;
#X obj 255 116 phasor~;
#X msg 44 89 \; pd dsp 1;
#X text 80 443 this network puts a half cycle of a band-limited square wave into the table "array1.";
#X text 78 488 logically the half-cycle is in samples 1 through 1000 \; samples 0 and 1001 are provided so that the 4-point interpolation will work everywhere.;
#X text 237 28 back the phase up one sample;
#X msg 254 51 -0.0005;
#X connect 0 0 1 0;
#X connect 1 0 14 0;
#X connect 2 0 0 0;
#X connect 3 0 4 0;
#X connect 4 0 14 0;
#X connect 5 0 3 0;
#X connect 6 0 9 0;
#X connect 7 0 15 0;
#X connect 8 0 9 1;
#X connect 9 0 14 0;
#X connect 10 0 5 1;
#X connect 11 0 2 1;
#X connect 12 0 4 1;
#X connect 13 0 1 1;
#X connect 14 0 15 0;
#X connect 16 0 14 1;
#X connect 17 0 20 0;
#X connect 19 0 25 0;
#X connect 19 0 7 0;
#X connect 19 0 21 0;
#X connect 20 0 6 0;
#X connect 20 0 5 0;
#X connect 20 0 2 0;
#X connect 25 0 20 0;
#X restore 32 155 page make-table;
#X obj 178 205 sig~;
#X obj 346 291 /~;
#X obj 368 250 clip~ 1 999999;
#X obj 178 239 phasor~;
#X obj 221 272 sig~ 0.5;
#X obj 179 272 -~;
#X obj 346 217 sig~ 8000;
#X obj 198 311 *~;
#X obj 198 341 clip~ -0.5 0.5;
#X obj 268 497 tabwrite~ array2;
#X msg 268 464 bang;
#X floatatom 178 180 622.254;
#X obj 233 372 sig~ 1000;
#X obj 233 402 sig~ 501;
#X obj 198 402 +~;
#X obj 198 430 tabread4~ array1;
#X floatatom 345 80 104;
#X obj 346 189 * 0.33333;
#X obj 345 108 mtof;
#X obj 128 549 dbtorms;
#X obj 128 577 pack 0 100;
#X obj 128 605 line~;
#X obj 30 555 *~;
#X obj 31 590 dac~;
#X msg 32 126 bang;
#X text 7 6 Patch to make an approximately band-limited sawtooth.;
#X text 7 23 A similar strategy works for making band-limited rectangle waves. I can't think of a simple explanation of what this is supposed to be doing.;
#X text 382 80 band limit (MIDI units);
#X text 217 84 pitch;
#X text 355 139 Nyquist or less;
#X text 354 128 This should be;
#X text 8 87 FIRST CLICK HERE;
#X text 8 104 TO MAKE TABLE;
#X text 186 151 bandlimit/3;
#X text 188 163 or less;
#X text 172 519 output level;
#X text 319 465 scope;
#X connect 1 0 2 0;
#X connect 2 0 20 0;
#X connect 3 0 28 0;
#X connect 4 0 26 0;
#X connect 5 0 31 0;
#X connect 5 0 18 0;
#X connect 6 0 23 0;
#X connect 9 0 11 0;
#X connect 9 0 12 0;
#X connect 10 0 16 1;
#X connect 11 0 10 1;
#X connect 12 0 14 0;
#X connect 13 0 14 1;
#X connect 14 0 16 0;
#X connect 14 0 5 1;
#X connect 15 0 10 0;
#X connect 16 0 17 0;
#X connect 17 0 6 0;
#X connect 19 0 18 0;
#X connect 20 0 9 0;
#X connect 21 0 6 1;
#X connect 22 0 23 1;
#X connect 23 0 24 0;
#X connect 24 0 5 0;
#X connect 25 0 27 0;
#X connect 26 0 15 0;
#X connect 27 0 4 0;
#X connect 28 0 29 0;
#X connect 29 0 30 0;
#X connect 30 0 31 1;
#X connect 31 0 32 0;
#X connect 31 0 32 1;
#X connect 33 0 8 0;
