#N canvas 0 0 652 582 10; #N canvas 0 0 450 300 bmt 0; #X obj 109 103 rfft~; #X obj 109 255 outlet; #X obj 150 224 outlet; #X obj 109 71 inlet~; #X obj 109 196 prepend set; #X obj 150 177 prepend set; #X obj 109 139 bmt~ 5; #X obj 109 224 t b a; #X obj 246 130 block~ 1024; #X obj 232 71 inlet; #X connect 0 0 6 0; #X connect 0 1 6 1; #X connect 3 0 0 0; #X connect 4 0 7 0; #X connect 5 0 2 0; #X connect 6 0 4 0; #X connect 6 1 5 0; #X connect 7 0 1 0; #X connect 7 1 1 0; #X connect 9 0 6 0; #X restore 113 137 pd bmt; #N canvas 66 322 450 300 player 0; #X obj 222 112 tabplay~ \$0-input; #X obj 339 92 spigot; #X obj 222 74 inlet; #X obj 222 93 sel 1; #X obj 51 63 inlet; #X obj 51 185 soundfiler; #X obj 51 82 openpanel; #X msg 51 166 read -resize \$1 \$2; #X obj 51 101 t a b; #X obj 96 127 symbol \$0-input; #X obj 51 147 pack s s; #X obj 222 131 outlet~; #X connect 0 0 11 0; #X connect 0 1 1 0; #X connect 1 0 0 0; #X connect 2 0 1 1; #X connect 2 0 3 0; #X connect 3 0 0 0; #X connect 4 0 6 0; #X connect 6 0 8 0; #X connect 7 0 5 0; #X connect 8 0 10 0; #X connect 8 1 9 0; #X connect 9 0 10 1; #X connect 10 0 7 0; #X restore 112 115 pd player; #N canvas 0 0 450 300 (subpatch) 0; #X array \$0-input 666229 float 2; #X coords 0 1 666229 -1 200 60 1; #X restore 227 34 graph; #X obj 112 96 bng 15 250 50 0 empty empty load 17 7 0 10 -262144 -1 -1; #X obj 163 96 tgl 15 0 empty empty play 17 7 0 10 -262144 -1 -1 0 1 ; #X msg 113 190 98.4992 6.67565 4.14764 3.2092 2.85022; #X msg 146 163 102 102 103 102 101; #X obj 88 278 vu 12 120 empty empty -1 -8 0 10 -66577 -1 0 0; #X obj 105 278 vu 12 120 empty empty -1 -8 0 10 -66577 -1 0 0; #N canvas 672 68 450 300 graphic 0; #X obj 70 52 inlet; #X obj 70 90 unpack f f f f f; #X obj 278 50 inlet; #N canvas 0 0 296 300 scale 0; #X obj 115 107 f; #X obj 89 107 max; #X msg 189 74 0; #X obj 189 55 inlet; #X obj 70 56 inlet; #X obj 89 193 expr 100 / $f1; #X obj 70 215 *; #X obj 70 234 - 100; #X obj 70 75 t f f b; #X obj 70 253 outlet; #X connect 0 0 1 1; #X connect 1 0 0 1; #X connect 1 0 5 0; #X connect 2 0 0 0; #X connect 3 0 2 0; #X connect 4 0 8 0; #X connect 5 0 6 1; #X connect 6 0 7 0; #X connect 7 0 9 0; #X connect 8 0 6 0; #X connect 8 1 1 0; #X connect 8 2 0 0; #X restore 21 165 pd scale; #N canvas 0 0 296 300 scale 0; #X obj 115 107 f; #X obj 89 107 max; #X msg 189 74 0; #X obj 189 55 inlet; #X obj 70 56 inlet; #X obj 89 193 expr 100 / $f1; #X obj 70 215 *; #X obj 70 234 - 100; #X obj 70 75 t f f b; #X obj 70 253 outlet; #X connect 0 0 1 1; #X connect 1 0 0 1; #X connect 1 0 5 0; #X connect 2 0 0 0; #X connect 3 0 2 0; #X connect 4 0 8 0; #X connect 5 0 6 1; #X connect 6 0 7 0; #X connect 7 0 9 0; #X connect 8 0 6 0; #X connect 8 1 1 0; #X connect 8 2 0 0; #X restore 81 165 pd scale; #N canvas 0 0 296 300 scale 0; #X obj 115 107 f; #X obj 89 107 max; #X msg 189 74 0; #X obj 189 55 inlet; #X obj 70 56 inlet; #X obj 89 193 expr 100 / $f1; #X obj 70 215 *; #X obj 70 234 - 100; #X obj 70 75 t f f b; #X obj 70 253 outlet; #X connect 0 0 1 1; #X connect 1 0 0 1; #X connect 1 0 5 0; #X connect 2 0 0 0; #X connect 3 0 2 0; #X connect 4 0 8 0; #X connect 5 0 6 1; #X connect 6 0 7 0; #X connect 7 0 9 0; #X connect 8 0 6 0; #X connect 8 1 1 0; #X connect 8 2 0 0; #X restore 141 165 pd scale; #N canvas 0 0 296 300 scale 0; #X obj 115 107 f; #X obj 89 107 max; #X msg 189 74 0; #X obj 189 55 inlet; #X obj 70 56 inlet; #X obj 89 193 expr 100 / $f1; #X obj 70 215 *; #X obj 70 234 - 100; #X obj 70 75 t f f b; #X obj 70 253 outlet; #X connect 0 0 1 1; #X connect 1 0 0 1; #X connect 1 0 5 0; #X connect 2 0 0 0; #X connect 3 0 2 0; #X connect 4 0 8 0; #X connect 5 0 6 1; #X connect 6 0 7 0; #X connect 7 0 9 0; #X connect 8 0 6 0; #X connect 8 1 1 0; #X connect 8 2 0 0; #X restore 201 165 pd scale; #N canvas 0 0 296 300 scale 0; #X obj 115 107 f; #X obj 89 107 max; #X msg 189 74 0; #X obj 189 55 inlet; #X obj 70 56 inlet; #X obj 89 193 expr 100 / $f1; #X obj 70 215 *; #X obj 70 234 - 100; #X obj 70 75 t f f b; #X obj 70 253 outlet; #X connect 0 0 1 1; #X connect 1 0 0 1; #X connect 1 0 5 0; #X connect 2 0 0 0; #X connect 3 0 2 0; #X connect 4 0 8 0; #X connect 5 0 6 1; #X connect 6 0 7 0; #X connect 7 0 9 0; #X connect 8 0 6 0; #X connect 8 1 1 0; #X connect 8 2 0 0; #X restore 261 165 pd scale; #X obj 21 184 outlet; #X obj 81 184 outlet; #X obj 141 184 outlet; #X obj 201 184 outlet; #X obj 261 184 outlet; #X floatatom 68 145 5 0 0 0 - - -; #X text 20 213 This will rescale the inputs so that they automatically span the range -100 to 0 Since bass frequencies are usually louder than treble \, this is useful in order to make the bands consistent with one another in their output.; #X connect 0 0 1 0; #X connect 1 0 3 0; #X connect 1 0 13 0; #X connect 1 1 4 0; #X connect 1 2 5 0; #X connect 1 3 6 0; #X connect 1 4 7 0; #X connect 2 0 7 1; #X connect 2 0 6 1; #X connect 2 0 5 1; #X connect 2 0 4 1; #X connect 2 0 3 1; #X connect 3 0 8 0; #X connect 4 0 9 0; #X connect 5 0 10 0; #X connect 6 0 11 0; #X connect 7 0 12 0; #X restore 87 254 pd graphic; #X obj 144 213 bng 32 250 50 0 empty empty reset 35 16 0 10 -262144 -1 -1; #X obj 122 278 vu 12 120 empty empty -1 -8 0 10 -66577 -1 0 0; #X obj 139 278 vu 12 120 empty empty -1 -8 0 10 -66577 -1 0 0; #X obj 156 278 vu 12 120 empty empty -1 -8 0 10 -66577 -1 0 0; #X obj 48 143 dac~; #X text 400 192 <--- alpha (magnitude) of loudest bin; #X obj 225 284 cnv 15 400 80 empty empty BassMidTreble_(bmt~) 50 12 0 18 -233017 -65745 0; #X text 160 139 <--- [rfft~] and [bmt~] are in here!; #X obj 231 289 bmt~; #X obj 223 103 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1; #X msg 223 121 mode \$1; #X obj 73 498 s bass; #X obj 99 534 s bassmid; #X obj 120 507 s mid; #X obj 223 501 s highmid; #X obj 163 486 s high; #X obj 53 444 mavg 10; #X obj 99 414 mavg 10; #X obj 121 436 mavg 10; #X obj 171 433 mavg 10; #X obj 236 430 mavg 10; #X text 278 104 <--- mode 0 is maximum magnitude bin in the band \, mode 1 is sum of all fft bins in the band.; #X msg 52 43 \; pd dsp 1; #X text 237 309 Splits a spectral analysis [rfft~] into n bands \, where n is the creation argument (default 3 \, range 2-128). Reports the maximum bin magnitude and its corresponding bin number for each band.; #X obj 49 89 adc~; #X obj 49 109 *~ 0; #X obj 80 89 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0 1 ; #X text 270 163 <--- bin offset in band of loudest (highest magnitude) bin; #X text 290 433 <--- smoothing (optional); #X connect 0 0 5 0; #X connect 0 1 6 0; #X connect 1 0 0 0; #X connect 1 0 14 0; #X connect 1 0 14 1; #X connect 3 0 1 0; #X connect 4 0 1 1; #X connect 5 0 9 0; #X connect 7 0 26 0; #X connect 8 0 27 0; #X connect 9 0 7 0; #X connect 9 1 8 0; #X connect 9 2 11 0; #X connect 9 3 12 0; #X connect 9 4 13 0; #X connect 10 0 9 1; #X connect 11 0 28 0; #X connect 12 0 29 0; #X connect 13 0 30 0; #X connect 19 0 20 0; #X connect 20 0 0 1; #X connect 26 0 21 0; #X connect 27 0 22 0; #X connect 28 0 23 0; #X connect 29 0 25 0; #X connect 30 0 24 0; #X connect 34 0 35 0; #X connect 35 0 0 0; #X connect 36 0 35 1;