#N canvas 72 25 1011 661 12; #X floatatom 46 55 9 0 0 0 - - -; #N canvas 0 0 450 300 (subpatch) 0; #X array array99 11 float 0; #X coords 0 1 10 -1 250 200 1; #X restore 603 153 graph; #X obj 600 27 loadbang; #X floatatom 46 12 5 0 135 0 - - -; #X obj 46 32 mtof; #X floatatom 80 380 0 0 0 0 - - -; #N canvas 159 26 706 447 output 0; #X obj 414 196 t b; #X obj 414 134 f; #X obj 414 73 inlet; #X text 421 36 mute; #X obj 414 227 f; #X msg 521 218 0; #X msg 414 104 bang; #X obj 414 166 moses 1; #X obj 521 187 t b f; #X obj 486 143 moses 1; #X obj 102 181 dbtorms; #X obj 486 113 r master-lvl; #X obj 102 52 r master-lvl; #X obj 414 257 s master-lvl; #X obj 26 222 inlet~; #X obj 244 50 inlet; #X text 244 22 level; #X obj 244 122 s master-lvl; #X msg 118 80 set \$1; #X obj 118 109 outlet; #X msg 262 78 \; pd dsp 1; #X obj 102 238 line~; #X obj 26 259 *~; #X obj 26 295 dac~; #X obj 102 210 pack 0 50; #X text 24 195 audio; #X text 114 135 show level; #X connect 0 0 4 0; #X connect 1 0 7 0; #X connect 2 0 6 0; #X connect 4 0 13 0; #X connect 5 0 13 0; #X connect 6 0 1 0; #X connect 7 0 0 0; #X connect 7 1 8 0; #X connect 8 0 5 0; #X connect 9 1 4 1; #X connect 10 0 24 0; #X connect 11 0 1 1; #X connect 11 0 9 0; #X connect 12 0 10 0; #X connect 12 0 18 0; #X connect 14 0 22 0; #X connect 15 0 17 0; #X connect 15 0 20 0; #X connect 18 0 19 0; #X connect 21 0 22 1; #X connect 22 0 23 0; #X connect 22 0 23 1; #X connect 24 0 21 0; #X restore 46 406 pd output; #X msg 116 380 MUTE; #X obj 200 293 *~; #X msg 433 193 \$1 30; #X obj 436 170 hsl 128 15 0 1 0 0 empty empty empty -2 -8 0 10 -262144 -1 -1 0 1; #X obj 434 240 -~ 1; #X obj 433 264 *~ -1; #X obj 433 217 line~; #X obj 46 294 *~; #X msg 341 214 0; #X msg 600 54 \; array99 resize 11 \; array99 0 0 0 -0.5 -0.5 1 -1 0.5 -1 0 0 0 \; pd dsp 1 \;; #X obj 200 255 tabosc4~ array99; #X text 501 149 tabosc4~; #N canvas 371 25 645 661 osc~ 0; #X obj 12 133 pack~; #X obj 14 7 inlet~; #X text 230 14 change block size; #X msg 77 379 0; #X obj 47 403 f; #X obj 63 428 + 1; #X obj 17 379 t a b; #X obj 16 245 gemhead; #X text 72 7 audio input; #X obj 13 29 rfft~; #X obj 13 51 *~; #X obj 53 53 *~; #X obj 171 72 block~ 4096 4; #X obj 12 75 /~ 4096; #X obj 12 95 log~; #X obj 12 114 *~ 0.05; #X obj 12 152 list prepend 0; #X obj 12 173 s \$0-fft; #X obj 273 189 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1 -1; #X obj 273 207 t b b; #X obj 272 251 until; #X msg 272 228 2048; #X msg 331 251 0; #X obj 272 276 f; #X obj 287 299 + 1; #X obj 272 349 tabread \$0-fft; #X obj 408 348 tabread \$0-fft-lop; #X obj 272 399 +; #X obj 272 443 tabwrite \$0-fft-lop; #X obj 272 324 t f f f; #X obj 296 183 bang~; #X obj 272 421 / 8; #X obj 409 376 * 7; #X obj 77 494 tabread \$0-fft-lop; #X obj 26 611 loadbang; #X obj 47 451 t f f; #X obj 72 578 l; #X obj 22 224 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X obj 71 547 t l b; #X obj 18 659 curve 2; #X obj 46 519 pack f f f; #X floatatom 36 296 5 0 0 0 - - -; #X floatatom 78 297 5 0 0 0 - - -; #X obj 17 334 t a b; #X floatatom 72 250 5 0 0 0 - - -; #X floatatom 114 251 5 0 0 0 - - -; #X obj 17 358 repeat 2048; #X obj 14 277 translateXYZ -4 0 0; #X obj 47 471 log; #X obj 17 314 scaleXYZ 1.04 6 0; #X msg 26 633 res 2; #X obj 170 92 table \$0-fft 2048; #X obj 170 112 table \$0-fft-lop 2048; #X connect 0 0 16 0; #X connect 1 0 9 0; #X connect 3 0 4 0; #X connect 4 0 5 0; #X connect 4 0 35 0; #X connect 5 0 4 1; #X connect 6 0 39 0; #X connect 6 1 4 0; #X connect 7 0 47 0; #X connect 9 0 10 0; #X connect 9 0 10 1; #X connect 9 1 11 0; #X connect 9 1 11 1; #X connect 10 0 13 0; #X connect 11 0 13 0; #X connect 13 0 14 0; #X connect 14 0 15 0; #X connect 15 0 0 0; #X connect 16 0 17 0; #X connect 18 0 19 0; #X connect 19 0 21 0; #X connect 19 1 22 0; #X connect 20 0 23 0; #X connect 21 0 20 0; #X connect 22 0 23 1; #X connect 23 0 24 0; #X connect 23 0 29 0; #X connect 24 0 23 1; #X connect 25 0 27 0; #X connect 26 0 32 0; #X connect 27 0 31 0; #X connect 29 0 25 0; #X connect 29 1 26 0; #X connect 29 2 28 1; #X connect 30 0 19 0; #X connect 31 0 28 0; #X connect 32 0 27 1; #X connect 33 0 40 1; #X connect 34 0 50 0; #X connect 35 0 48 0; #X connect 35 1 33 0; #X connect 36 0 39 2; #X connect 37 0 7 0; #X connect 38 0 36 1; #X connect 38 1 36 0; #X connect 40 0 38 0; #X connect 40 0 39 1; #X connect 41 0 49 1; #X connect 42 0 49 2; #X connect 43 0 46 0; #X connect 43 1 3 0; #X connect 44 0 47 1; #X connect 45 0 47 2; #X connect 46 0 6 0; #X connect 47 0 49 0; #X connect 48 0 40 0; #X connect 49 0 43 0; #X connect 50 0 39 0; #X restore 55 356 pd osc~; #X msg 605 385 reset \, create \, 1; #X msg 611 407 0 \, destroy; #X msg 46 73 \$1 100; #X obj 46 96 line~; #X obj 605 429 gemwin 20; #X msg 172 77 cutoff \$1; #X floatatom 172 14 5 0 0 0 - - -; #X obj 172 34 mtof; #X floatatom 185 58 9 0 0 0 - - -; #X text 396 149 tabosc4i~; #X obj 45 333 +~; #X floatatom 286 52 5 0 0 0 - - -; #X msg 286 75 upsample \$1; #X msg 325 23 4; #X msg 286 23 2; #X obj 47 254 tabosci~ array99; #X obj 214 353 oscillo~; #X msg 364 23 8; #X text 41 458 tabosc4c~ is a drop in remplacement for tabosc4~ \, but offer an other 4 points interpolation. So \, in some case \, quality is better than the standart interpolation. Moreover \, it can use table size 2^n (and not 2^n+3) \, so you dan't have to copy the 1st 3 point of the table at the end.; #X text 764 387 <- draw spectrum with Gem; #X text 43 543 You can also adjust an upsamplig factor \, and a cutoff freq of the internal biquad. Upsample by 4 is ok most of the time. To remove "all" spectrom folding \, main sampling rate should be 96000Hz \, but it already gives good result at 44.1 or 48KHz...; #X msg 171 110 cutoff 0; #X text 255 110 no filter; #X connect 0 0 22 0; #X connect 2 0 16 0; #X connect 3 0 4 0; #X connect 4 0 0 0; #X connect 5 0 6 1; #X connect 6 0 5 0; #X connect 7 0 6 2; #X connect 8 0 30 0; #X connect 9 0 13 0; #X connect 10 0 9 0; #X connect 11 0 12 0; #X connect 12 0 14 1; #X connect 13 0 11 0; #X connect 13 0 8 1; #X connect 14 0 30 0; #X connect 15 0 17 1; #X connect 15 0 35 1; #X connect 17 0 8 0; #X connect 20 0 24 0; #X connect 21 0 24 0; #X connect 22 0 23 0; #X connect 23 0 17 0; #X connect 23 0 35 0; #X connect 25 0 35 0; #X connect 26 0 27 0; #X connect 27 0 28 0; #X connect 27 0 25 0; #X connect 30 0 6 0; #X connect 30 0 19 0; #X connect 30 0 36 0; #X connect 31 0 32 0; #X connect 32 0 35 0; #X connect 33 0 31 0; #X connect 34 0 31 0; #X connect 35 0 14 0; #X connect 37 0 31 0; #X connect 41 0 35 0;