-
Notifications
You must be signed in to change notification settings - Fork 9
/
pp.fft-profile-st~.pd
1924 lines (1924 loc) · 55 KB
/
pp.fft-profile-st~.pd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#N canvas 557 238 916 592 10;
#X obj 587 96 inlet;
#N canvas 639 332 1009 532 stuff 0;
#X obj 113 151 s \$0-visbngr;
#X obj 95 46 r \$0-visbng;
#X msg 93 123 color 0 0;
#X msg 177 123 color 10 10;
#X obj 95 68 t b;
#X obj 175 98 del 250;
#X obj 59 206 s pd-\$0-fft-profile;
#N canvas 89 132 345 180 isvisible 0;
#X obj 48 43 loadbang;
#X obj 48 85 metro 300;
#X obj 48 65 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 48 108 s \$0-isvisible-check;
#X connect 0 0 2 0;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X restore 195 46 pd isvisible;
#X obj 337 65 r \$0-mode;
#X obj 337 88 sel 0 1 2;
#X obj 337 179 s \$0-modelabel;
#X msg 413 134 label learn;
#X msg 337 136 label slew;
#X msg 501 134 label freeze;
#X obj 656 40 r \$0-window-size;
#X obj 656 148 s \$0-fft-profile-gui;
#X msg 656 123 vis 0 \, vis 1 \, vis 0;
#X obj 656 97 del 0;
#X obj 656 63 t b;
#X msg 59 182 relocate 330x260+1+1 1x1+50+60 \, vis 1;
#X obj 353 228 r \$0-restoretgl;
#X obj 353 370 s \$0-restoretglr;
#X obj 353 251 sel 0 1 2;
#X msg 370 306 label Restore-mode\ 1;
#X msg 387 334 label Restore-mode\ 2;
#X obj 623 198 r \$0-restoretgl;
#X obj 623 280 sel 0 1;
#X obj 623 227 != 0;
#X obj 615 363 s \$0-lockr;
#X msg 719 319 color 0 22 22;
#X obj 615 407 s \$0-restorer;
#X obj 615 430 s \$0-restoreguir;
#X obj 615 451 s \$0-trebler;
#X obj 615 473 s \$0-trebleguir;
#X msg 615 319 color 10 11 22;
#X obj 615 384 s \$0-lockguir;
#X msg 353 278 label Restore-mode\ 0/Off;
#X obj 623 250 change;
#X connect 1 0 4 0;
#X connect 2 0 0 0;
#X connect 3 0 0 0;
#X connect 4 0 2 0;
#X connect 4 0 5 0;
#X connect 4 0 19 0;
#X connect 5 0 3 0;
#X connect 8 0 9 0;
#X connect 9 0 12 0;
#X connect 9 1 11 0;
#X connect 9 2 13 0;
#X connect 11 0 10 0;
#X connect 12 0 10 0;
#X connect 13 0 10 0;
#X connect 14 0 18 0;
#X connect 16 0 15 0;
#X connect 17 0 16 0;
#X connect 18 0 17 0;
#X connect 19 0 6 0;
#X connect 20 0 22 0;
#X connect 22 0 36 0;
#X connect 22 1 23 0;
#X connect 22 2 24 0;
#X connect 23 0 21 0;
#X connect 24 0 21 0;
#X connect 25 0 27 0;
#X connect 26 0 34 0;
#X connect 26 1 29 0;
#X connect 27 0 37 0;
#X connect 29 0 28 0;
#X connect 29 0 30 0;
#X connect 29 0 31 0;
#X connect 29 0 32 0;
#X connect 29 0 33 0;
#X connect 29 0 35 0;
#X connect 34 0 28 0;
#X connect 34 0 30 0;
#X connect 34 0 31 0;
#X connect 34 0 32 0;
#X connect 34 0 33 0;
#X connect 34 0 35 0;
#X connect 36 0 21 0;
#X connect 37 0 26 0;
#X restore 590 240 pd stuff;
#X obj 103 115 hsl 175 15 0 127 0 0 \$0-visbng \$0-visbngr empty 50 8 2 10 #e0e0e0 #e0e0e0 #000000 0 1;
#X obj 590 418 outlet;
#N canvas 1119 244 649 304 in 0;
#X obj 122 18 inlet;
#X obj 121 192 s \$0-window-size;
#X obj 152 236 s \$0-overlap;
#X obj 121 145 change;
#X obj 152 216 change;
#N canvas 3 57 617 375 blocksize 0;
#X obj 184 76 t f f;
#X obj 184 212 spigot;
#X text 249 141 prevent setting blocksizes that are not a power of 2;
#X msg 244 244 blocksize is not a power of 2;
#X obj 184 294 outlet;
#X obj 244 222 sel 0;
#X obj 184 54 inlet;
#X obj 244 265 print pp.fft-gate~;
#X obj 217 122 expr (($f1-1) & $f1) == 0;
#X connect 0 0 1 0;
#X connect 0 1 8 0;
#X connect 1 0 4 0;
#X connect 3 0 7 0;
#X connect 5 0 3 0;
#X connect 6 0 0 0;
#X connect 8 0 1 1;
#X connect 8 0 5 0;
#X restore 120 171 pd blocksize;
#N canvas 698 546 200 251 route 0;
#X obj 20 20 inlet;
#X obj 30 60 route save recall;
#X obj 30 85 route float;
#X obj 97 111 route float;
#X obj 30 136 s \$0-save;
#X obj 30 108 i;
#X obj 98 133 i;
#X obj 98 161 s \$0-recall;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 2 0 5 0;
#X connect 3 0 6 0;
#X connect 5 0 4 0;
#X connect 6 0 7 0;
#X restore 141 58 pd route save-recall;
#N canvas 362 125 450 479 recall 0;
#X obj 49 145 outlet;
#N canvas 3 54 450 600 listsplit 0;
#X obj 158 23 inlet;
#X obj 220 87 list length;
#X obj 220 113 until;
#X obj 182 150 f;
#X obj 278 150 + 1;
#X msg 265 111 0;
#X obj 182 226 list store;
#X msg 182 202 get \$1 1;
#X obj 154 367 list split;
#X obj 222 342 f;
#X obj 154 334 list;
#X obj 98 124 list;
#X obj 182 389 list split 1;
#X obj 154 274 t bang bang bang;
#X obj 182 179 t f f;
#X obj 158 48 t l l l b;
#X obj 154 473 outlet;
#X obj 154 440 list trim;
#X obj 163 248 sel |;
#X text 275 197 hacky split list at "|";
#X connect 0 0 15 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 3 0 14 0;
#X connect 4 0 3 1;
#X connect 5 0 3 1;
#X connect 6 0 18 0;
#X connect 7 0 6 0;
#X connect 8 0 17 0;
#X connect 8 1 12 0;
#X connect 9 0 8 1;
#X connect 10 0 8 0;
#X connect 11 0 15 0;
#X connect 12 1 11 0;
#X connect 13 0 10 0;
#X connect 13 1 9 0;
#X connect 13 2 2 1;
#X connect 14 0 7 0;
#X connect 14 1 9 1;
#X connect 15 0 1 0;
#X connect 15 1 10 1;
#X connect 15 2 6 1;
#X connect 15 3 5 0;
#X connect 17 0 16 0;
#X connect 18 0 13 0;
#X restore 49 117 pd listsplit;
#X obj 49 24 r \$0-recall;
#X obj 49 54 pipe 1;
#X obj 221 409 text fromlist \$0-savestates;
#X obj 49 77 text get \$0-savestates;
#X msg 253 246 21;
#X obj 253 269 until;
#X obj 253 292 f;
#X obj 300 295 + 1;
#X obj 253 315 t b f;
#X obj 253 367 text set \$0-savestates;
#X obj 221 114 text tolist \$0-savestates;
#X msg 253 342 list empty_slot;
#X obj 221 160 t a b;
#X obj 151 166 loadbang;
#X obj 221 137 savestate;
#X obj 221 33 text define \$0-savestates;
#X obj 151 189 del 0;
#X msg 298 199 0;
#X obj 253 220 spigot 1;
#X connect 1 0 0 0;
#X connect 2 0 3 0;
#X connect 3 0 5 0;
#X connect 5 0 1 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 8 1;
#X connect 10 0 13 0;
#X connect 10 1 11 1;
#X connect 12 0 16 0;
#X connect 13 0 11 0;
#X connect 14 0 4 0;
#X connect 14 1 19 0;
#X connect 15 0 18 0;
#X connect 16 0 14 0;
#X connect 16 1 12 0;
#X connect 18 0 20 0;
#X connect 19 0 20 1;
#X connect 20 0 6 0;
#X restore 207 80 pd recall;
#X obj 184 145 s \$0-maskingr;
#X obj 215 170 s \$0-slew-attacr;
#X obj 258 195 s \$0-slew-decayr;
#X obj 288 218 s \$0-expandr;
#X obj 402 167 s \$0-moder;
#X obj 314 148 s \$0-restorer;
#X obj 365 188 s \$0-restoretglr;
#X obj 420 144 s \$0-trebler;
#X obj 472 175 s \$0-lockr;
#X obj 121 107 route blocksize overlap masking learn forget expand restore restore-mode masking-mode treble lock;
#X connect 0 0 6 0;
#X connect 0 0 17 0;
#X connect 3 0 5 0;
#X connect 4 0 2 0;
#X connect 5 0 1 0;
#X connect 7 0 17 0;
#X connect 17 0 3 0;
#X connect 17 1 4 0;
#X connect 17 2 8 0;
#X connect 17 3 9 0;
#X connect 17 4 10 0;
#X connect 17 5 11 0;
#X connect 17 6 13 0;
#X connect 17 7 14 0;
#X connect 17 8 12 0;
#X connect 17 9 15 0;
#X connect 17 10 16 0;
#X restore 587 117 pd in;
#N canvas 128 299 1074 543 outlet-message 0;
#N canvas 105 314 986 300 bang_once....................................... 0;
#X obj 174 87 t b f;
#X obj 132 87 t b f;
#X obj 89 139 del 0;
#X obj 89 87 t b f;
#X obj 217 87 t b f;
#X obj 261 87 t b f;
#X obj 303 87 t b f;
#X obj 89 41 inlet;
#X obj 132 40 inlet;
#X obj 174 40 inlet;
#X obj 217 40 inlet;
#X obj 261 41 inlet;
#X obj 303 42 inlet;
#X obj 89 247 outlet;
#X obj 89 173 f;
#X obj 351 87 t b f;
#X obj 351 43 inlet;
#X obj 394 89 t b f;
#X obj 394 43 inlet;
#X obj 442 89 t b f;
#X obj 442 44 inlet;
#X obj 89 203 pack 0 0 0 0 0 0 0 0 0 0 0;
#X obj 485 88 t b f;
#X obj 485 42 inlet;
#X obj 533 88 t b f;
#X obj 533 43 inlet;
#X connect 0 0 2 0;
#X connect 0 1 21 2;
#X connect 1 0 2 0;
#X connect 1 1 21 1;
#X connect 2 0 14 0;
#X connect 3 0 2 0;
#X connect 3 1 14 1;
#X connect 4 0 2 0;
#X connect 4 1 21 3;
#X connect 5 0 2 0;
#X connect 5 1 21 4;
#X connect 6 0 2 0;
#X connect 6 1 21 5;
#X connect 7 0 3 0;
#X connect 8 0 1 0;
#X connect 9 0 0 0;
#X connect 10 0 4 0;
#X connect 11 0 5 0;
#X connect 12 0 6 0;
#X connect 14 0 21 0;
#X connect 15 0 2 0;
#X connect 15 1 21 6;
#X connect 16 0 15 0;
#X connect 17 0 2 0;
#X connect 17 1 21 7;
#X connect 18 0 17 0;
#X connect 19 0 2 0;
#X connect 19 1 21 8;
#X connect 20 0 19 0;
#X connect 21 0 13 0;
#X connect 22 0 2 0;
#X connect 22 1 21 9;
#X connect 23 0 22 0;
#X connect 24 0 2 0;
#X connect 24 1 21 10;
#X connect 25 0 24 0;
#X restore 251 205 pd bang_once.......................................;
#X obj 307 430 list trim;
#X msg 227 428 addcomma;
#X msg 163 435 set;
#X obj 307 407 list prepend add2;
#X obj 307 515 outlet;
#X obj 251 42 r \$0-window-size;
#X obj 288 66 r \$0-overlap;
#X obj 251 240 t b a b;
#X obj 288 358 t b a a;
#N canvas 497 319 297 264 save 0;
#X obj 48 16 inlet;
#N canvas 690 259 481 384 collect 0;
#X obj 47 60 inlet;
#X obj 47 274 outlet;
#X obj 98 180 list;
#X obj 166 181 t l;
#X obj 47 225 list;
#X obj 98 139 list append |;
#X obj 47 126 del 0;
#X obj 47 82 t b a;
#X text 119 75 hacky thing... replaycing " \, " with "|";
#X connect 0 0 7 0;
#X connect 2 0 3 0;
#X connect 2 0 4 1;
#X connect 3 0 2 1;
#X connect 4 0 1 0;
#X connect 5 0 2 0;
#X connect 6 0 2 1;
#X connect 6 0 4 0;
#X connect 7 0 6 0;
#X connect 7 1 5 0;
#X restore 48 38 pd collect;
#X obj 117 16 r \$0-save;
#X obj 27 130 text set \$0-savestates;
#X obj 27 104 list;
#X obj 117 62 t b f;
#X obj 117 39 clip 0 20;
#X connect 0 0 1 0;
#X connect 1 0 4 1;
#X connect 2 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 4 0;
#X connect 5 1 3 1;
#X connect 6 0 5 0;
#X restore 327 382 pd save;
#X obj 326 90 r \$0-masking;
#X obj 364 115 r \$0-slew-attac;
#X obj 402 140 r \$0-slew-decay;
#X obj 440 164 r \$0-expand;
#X obj 524 110 r \$0-mode;
#X obj 474 56 r \$0-restore;
#X obj 512 83 r \$0-restoretgl;
#X obj 544 136 r \$0-treble;
#X obj 562 167 r \$0-lock;
#X msg 288 291 blocksize \$1 \, overlap \$2 \, masking \$3 \, learn \$4 \, forget \$5 \, expand \$6 \, restore \$7 \, restore-mode \$8 \, masking-mode \$9 \, treble \$10 \, lock \$11;
#X connect 0 0 8 0;
#X connect 1 0 5 0;
#X connect 2 0 5 0;
#X connect 3 0 5 0;
#X connect 4 0 1 0;
#X connect 6 0 0 0;
#X connect 7 0 0 1;
#X connect 8 0 5 0;
#X connect 8 1 20 0;
#X connect 8 2 3 0;
#X connect 9 0 2 0;
#X connect 9 1 4 0;
#X connect 9 2 10 0;
#X connect 11 0 0 2;
#X connect 12 0 0 3;
#X connect 13 0 0 4;
#X connect 14 0 0 5;
#X connect 15 0 0 8;
#X connect 16 0 0 6;
#X connect 17 0 0 7;
#X connect 18 0 0 9;
#X connect 19 0 0 10;
#X connect 20 0 9 0;
#X restore 590 394 pd outlet-message;
#N canvas 50 60 330 260 \$0-fft-profile 1;
#N canvas 313 135 864 747 mask 0;
#X obj 100 100 cnv 15 319 249 empty empty empty 20 12 0 14 #fcfcfc #404040 0;
#X obj 210 268 nbx 5 12 0 200 0 0 \$0-masking \$0-maskingr empty 41 8 2 10 #fcfcfc #000000 #000000 0 256;
#X obj 356 268 nbx 5 12 0 1e+37 0 0 \$0-expand \$0-expandr empty 41 8 2 10 #fcfcfc #000000 #000000 0 256;
#X obj 210 140 nbx 5 12 0 2 0 0 \$0-slew-attac \$0-slew-attacr empty 41 8 2 10 #fcfcfc #000000 #000000 0 256;
#X obj 122 268 hsl 80 12 0 1 0 0 \$0-maskgui \$0-maskguir Masking -2 -6 2 10 #fcfcfc #000000 #000000 0 1;
#X obj 269 268 hsl 80 12 0 100 0 0 \$0-expgui \$0-expguir Expand -2 -6 2 10 #fcfcfc #000000 #000000 0 1;
#X obj 123 140 hsl 80 12 0 1 0 0 \$0-atgui \$0-atguir Learn -2 -6 2 10 #fcfcfc #000000 #000000 0 1;
#X obj 359 123 cnv 10 10 10 empty \$0-modelabel freeze 0 5 2 10 #fcfcfc #000000 0;
#X obj 158 118 cnv 10 10 10 empty empty fft-profile-st~ 0 5 2 14 #fcfcfc #9c9c9c 0;
#N canvas 0 0 450 300 map 0;
#X obj 103 36 inlet;
#X obj 103 124 outlet;
#X obj 102 59 pow 0.25;
#X obj 103 82 * 110;
#X obj 213 33 inlet;
#X obj 213 56 / 110;
#X obj 213 79 pow 4;
#X obj 213 133 outlet;
#X msg 213 106 set \$1;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 8 0 7 0;
#X restore 43 262 pd map;
#N canvas 734 369 263 260 map 0;
#X obj 46 50 inlet;
#X obj 46 134 outlet;
#X obj 121 52 inlet;
#X obj 121 134 outlet;
#X msg 121 108 set \$1;
#X obj 46 102 pow 2;
#X obj 121 77 pow 0.5;
#X connect 0 0 5 0;
#X connect 2 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 1 0;
#X connect 6 0 4 0;
#X restore 49 132 pd map;
#X obj 355 141 nbx 5 12 0 2 0 0 \$0-slew-decay \$0-slew-decayr empty 41 8 2 10 #fcfcfc #000000 #000000 0 256;
#X obj 269 141 hsl 80 12 0 1 0 0 \$0-dcgui \$0-dcguir Forget -2 -6 2 10 #fcfcfc #000000 #000000 0 1;
#N canvas 734 369 263 311 map 0;
#X obj 46 50 inlet;
#X obj 46 134 outlet;
#X obj 121 52 inlet;
#X obj 121 134 outlet;
#X msg 121 108 set \$1;
#X obj 46 82 pow 2;
#X obj 121 77 pow 0.5;
#X connect 0 0 5 0;
#X connect 2 0 6 0;
#X connect 4 0 3 0;
#X connect 5 0 1 0;
#X connect 6 0 4 0;
#X restore 427 133 pd map;
#N canvas 779 492 450 300 map 0;
#X obj 138 14 inlet;
#X obj 138 157 outlet;
#X obj 282 21 inlet;
#X obj 282 155 outlet;
#X msg 282 120 set \$1;
#X obj 138 44 / 100;
#X obj 138 90 * 100;
#X obj 138 67 pow 6;
#X obj 282 74 pow 0.166667;
#X obj 282 51 / 100;
#X obj 282 97 * 100;
#X connect 0 0 5 0;
#X connect 2 0 9 0;
#X connect 4 0 3 0;
#X connect 5 0 7 0;
#X connect 6 0 1 0;
#X connect 7 0 6 0;
#X connect 8 0 10 0;
#X connect 9 0 8 0;
#X connect 10 0 4 0;
#X restore 429 263 pd map;
#X obj 121 170 cnv 10 280 80 empty empty empty 0 5 2 10 #dfdfdf #000000 0;
#X obj 315 120 hradio 12 1 0 3 \$0-mode \$0-moder Mode 0 -6 2 10 #fcfcfc #000000 #000000 0;
#X msg 593 85 isvisible;
#X obj 593 108 pdcontrol;
#X obj 593 131 s \$0-isvisible;
#X obj 593 63 r \$0-isvisible-check;
#X obj 96 440 namecanvas \$0-fft-profile-gui;
#N canvas 0 50 450 250 (subpatch) 0;
#X array \$0-spectrum 512 float 0;
#X coords 0 1 511 0 280 80 2 0 0;
#X restore 120 170 graph;
#X obj 120 154 cnv 14 100 14 \$0-mask-canvas \$0-mask-canvasr Mask 0 8 2 10 #fcfcfc #000000 0;
#X obj 356 296 nbx 5 12 0 1e+37 0 0 \$0-restore \$0-restorer empty 41 8 2 10 #fcfcfc #000000 #000000 0 256;
#X obj 269 296 hsl 80 12 0 100 0 0 \$0-restoregui \$0-restoreguir Restore -2 -6 2 10 #fcfcfc #000000 #000000 0 1;
#N canvas 779 492 450 300 map 0;
#X obj 138 14 inlet;
#X obj 138 157 outlet;
#X obj 282 21 inlet;
#X obj 282 155 outlet;
#X msg 282 120 set \$1;
#X obj 138 44 / 100;
#X obj 138 90 * 100;
#X obj 138 67 pow 6;
#X obj 282 74 pow 0.166667;
#X obj 282 51 / 100;
#X obj 282 97 * 100;
#X connect 0 0 5 0;
#X connect 2 0 9 0;
#X connect 4 0 3 0;
#X connect 5 0 7 0;
#X connect 6 0 1 0;
#X connect 7 0 6 0;
#X connect 8 0 10 0;
#X connect 9 0 8 0;
#X connect 10 0 4 0;
#X restore 431 292 pd map;
#X obj 119 291 hradio 12 1 0 3 \$0-restoretgl \$0-restoretglr Restore-mode\ 0/Off 45 10 2 10 #fcfcfc #000000 #000000 0;
#X obj 356 325 nbx 5 12 0 1e+37 0 0 \$0-treble \$0-trebler empty 41 8 2 10 #fcfcfc #000000 #000000 0 256;
#X obj 269 325 hsl 80 12 0 5 0 0 \$0-treblegui \$0-trebleguir Treble -2 -6 2 10 #fcfcfc #000000 #000000 0 1;
#N canvas 779 492 450 300 map 0;
#X obj 138 14 inlet;
#X obj 138 157 outlet;
#X obj 282 21 inlet;
#X obj 282 155 outlet;
#X msg 282 120 set \$1;
#X connect 0 0 1 0;
#X connect 2 0 4 0;
#X connect 4 0 3 0;
#X restore 434 320 pd map;
#X obj 209 324 nbx 5 12 0 1e+37 0 0 \$0-lock \$0-lockr empty 41 8 2 10 #fcfcfc #000000 #000000 0 256;
#X obj 122 324 hsl 80 12 0 5 0 0 \$0-lockgui \$0-lockguir Lock -2 -6 2 10 #fcfcfc #000000 #000000 0 1;
#X msg 38 320 set \$1;
#X connect 1 0 9 1;
#X connect 2 0 14 1;
#X connect 3 0 10 1;
#X connect 4 0 9 0;
#X connect 5 0 14 0;
#X connect 6 0 10 0;
#X connect 9 0 1 0;
#X connect 9 1 4 0;
#X connect 10 0 3 0;
#X connect 10 1 6 0;
#X connect 11 0 13 1;
#X connect 12 0 13 0;
#X connect 13 0 11 0;
#X connect 13 1 12 0;
#X connect 14 0 2 0;
#X connect 14 1 5 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 20 0 17 0;
#X connect 24 0 26 1;
#X connect 25 0 26 0;
#X connect 26 0 24 0;
#X connect 26 1 25 0;
#X connect 28 0 30 1;
#X connect 29 0 30 0;
#X connect 30 0 28 0;
#X connect 30 1 29 0;
#X connect 31 0 33 0;
#X connect 32 0 31 0;
#X connect 33 0 32 0;
#X coords 0 -1 1 1 320 250 2 100 100;
#X restore 4 5 pd mask;
#X restore 590 216 pd \$0-fft-profile;
#N canvas 187 39 1589 982 fft 0;
#X obj 1412 29 r \$0-window-size;
#X obj 61 21 inlet~;
#X obj 60 64 *~;
#X obj 60 89 rfft~;
#X obj 383 49 tabreceive~ \$0-hann;
#X obj 130 138 *~;
#X obj 156 137 *~;
#X obj 131 158 +~;
#X obj 58 787 rifft~;
#X obj 57 918 outlet~;
#N canvas 768 337 511 389 normalize 0;
#X obj 173 313 outlet;
#X obj 159 208 / 4;
#X msg 157 148 1;
#X obj 173 230 *;
#X obj 159 175 t f f;
#X obj 157 123 t b f;
#X obj 280 117 t b f;
#X obj 173 282 / 1;
#X obj 191 207 / 0.375;
#X obj 280 96 r \$0-window-size;
#X obj 157 100 r \$0-overlap;
#X text 258 208 Hanning mean of squares;
#X floatatom 336 152 5 0 0 0 - - - 0;
#X connect 1 0 3 0;
#X connect 2 0 4 0;
#X connect 3 0 7 0;
#X connect 4 0 1 0;
#X connect 4 1 8 0;
#X connect 5 0 2 0;
#X connect 5 1 1 1;
#X connect 6 0 2 0;
#X connect 6 1 7 1;
#X connect 6 1 12 0;
#X connect 7 0 0 0;
#X connect 8 0 3 1;
#X connect 9 0 6 0;
#X connect 10 0 5 0;
#X restore 210 870 pd normalize;
#X obj 91 757 *~;
#X obj 59 758 *~;
#X obj 335 341 *~;
#X obj 244 518 /~;
#X obj 245 453 -~, f 5;
#X obj 245 491 max~ 0;
#X obj 271 519 +~ 1e-20;
#X obj 244 542 sqrt~;
#X obj 57 892 *~;
#X obj 57 846 *~;
#X obj 334 22 inlet~;
#X obj 333 71 *~;
#X obj 333 94 rfft~;
#X obj 333 121 *~;
#X obj 362 121 *~;
#X obj 334 144 +~;
#X obj 350 315 dbtorms;
#X obj 196 794 rifft~;
#X obj 195 921 outlet~;
#X obj 229 764 *~;
#X obj 197 765 *~;
#X obj 195 895 *~;
#X obj 196 848 *~;
#X obj 212 822 tabreceive~ \$0-hann;
#X obj 248 695 sig~ 1;
#X obj 248 719 -~;
#X obj 1412 102 pack 1024 4;
#X obj 1448 56 r \$0-overlap;
#X obj 1448 79 t b f;
#X obj 1412 154 block~ 1024 4;
#X obj 1411 200 r \$0-window-size;
#X msg 1411 252 resize \$1;
#X obj 1411 223 / 2;
#X msg 1412 127 set \$1 \$2;
#X obj 1411 278 s \$0-mask;
#N canvas 389 248 1002 689 mask 0;
#X obj 163 99 inlet~;
#X obj 164 173 -~;
#X obj 205 436 *~;
#X obj 190 524 +~;
#X obj 190 605 outlet~;
#X obj 204 222 max~ 0;
#X obj 361 222 min~ 0;
#X obj 359 435 *~;
#X obj 227 560 tabsend~ \$0-mask;
#X obj 657 51 array define \$0-mask 512;
#X obj 853 59 r \$0-window-size;
#X obj 853 127 / 16;
#X obj 866 83 r \$0-overlap;
#X obj 853 153 t f b;
#X obj 880 176 samplerate~;
#X obj 880 199 / 1000;
#X obj 853 223 /;
#X obj 853 245 / 5.33333;
#X obj 866 106 t b f;
#X obj 853 268 s \$0-slew-norm;
#X obj 205 494 +~;
#N canvas 889 106 730 524 slew 0;
#X obj 68 27 r \$0-slew-attac;
#X obj 224 26 r \$0-slew-decay;
#N canvas 0 0 450 300 norm-clip 0;
#X obj 163 49 t b f;
#X obj 175 121 * 1;
#X obj 163 25 r \$0-slew-norm;
#X obj 86 139 clip 1 2;
#X obj 175 143 clip 0 1;
#X obj 86 84 f;
#X obj 86 25 inlet;
#X obj 86 218 outlet;
#X obj 86 162 change;
#X obj 175 166 change;
#X connect 0 0 5 0;
#X connect 0 1 1 1;
#X connect 1 0 4 0;
#X connect 2 0 0 0;
#X connect 3 0 8 0;
#X connect 4 0 9 0;
#X connect 5 0 1 0;
#X connect 5 0 3 0;
#X connect 6 0 5 0;
#X connect 8 0 7 0;
#X connect 9 0 7 0;
#X restore 224 156 pd norm-clip;
#N canvas 0 0 450 300 norm-clip 0;
#X obj 163 49 t b f;
#X obj 175 121 * 1;
#X obj 163 25 r \$0-slew-norm;
#X obj 86 139 clip 1 2;
#X obj 175 143 clip 0 1;
#X obj 86 84 f;
#X obj 86 25 inlet;
#X obj 86 218 outlet;
#X obj 86 162 change;
#X obj 175 166 change;
#X connect 0 0 5 0;
#X connect 0 1 1 1;
#X connect 1 0 4 0;
#X connect 2 0 0 0;
#X connect 3 0 8 0;
#X connect 4 0 9 0;
#X connect 5 0 1 0;
#X connect 5 0 3 0;
#X connect 6 0 5 0;
#X connect 8 0 7 0;
#X connect 9 0 7 0;
#X restore 68 161 pd norm-clip;
#X obj 269 211 == 0;
#X obj 68 248 spigot 1;
#X obj 224 244 spigot 1;
#N canvas 1257 361 401 391 average 0;
#X msg 247 316 0;
#X msg 201 206 0;
#X obj 148 282 float;
#X obj 148 46 bang~;
#X obj 148 200 spigot;
#X obj 217 107 f;
#X obj 217 130 change;
#X obj 148 74 t b b;
#X obj 228 183 sel 1 0;
#X obj 148 364 outlet;
#X obj 232 35 inlet;
#X obj 148 316 expr 1/($f1+1);
#X obj 201 284 + 1;
#X obj 73 126 inlet;
#X obj 73 154 min 1;
#X obj 232 58 swap 2;
#X obj 232 81 -;
#X obj 181 163 == 1;
#X connect 0 0 9 0;
#X connect 1 0 2 1;
#X connect 2 0 12 0;
#X connect 2 0 11 0;
#X connect 3 0 7 0;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 6 0 17 0;
#X connect 7 0 4 0;
#X connect 7 1 5 0;
#X connect 8 0 1 0;
#X connect 8 1 0 0;
#X connect 10 0 15 0;
#X connect 11 0 9 0;
#X connect 12 0 2 1;
#X connect 13 0 14 0;
#X connect 14 0 12 1;
#X connect 15 0 16 0;
#X connect 15 1 16 1;
#X connect 16 0 5 1;
#X connect 17 0 4 1;
#X restore 297 327 pd average;
#X obj 509 373 sel 1;
#X msg 509 422 const 0;
#X obj 509 443 s \$0-mask;
#X obj 168 128 sel 0;
#X obj 68 454 outlet;
#X obj 224 452 outlet;
#X obj 224 188 f;
#X obj 68 188 f;
#X obj 297 408 spigot;
#X obj 139 407 spigot;
#X obj 335 73 t f f f f;
#X text 500 43 pain...;
#X obj 415 313 >= 1;
#N canvas 1028 401 401 391 average 0;
#X msg 247 316 0;
#X msg 201 206 0;
#X obj 148 282 float;
#X obj 148 46 bang~;
#X obj 148 200 spigot;
#X obj 217 107 f;
#X obj 217 130 change;
#X obj 148 74 t b b;
#X obj 228 183 sel 1 0;
#X obj 148 364 outlet;
#X obj 232 35 inlet;
#X obj 148 316 expr 1/($f1+1);
#X obj 201 284 + 1;
#X obj 73 126 inlet;
#X obj 73 154 min 1;
#X obj 232 58 swap 2;
#X obj 232 81 -;
#X obj 181 163 == 1;
#X connect 0 0 9 0;
#X connect 1 0 2 1;
#X connect 2 0 12 0;
#X connect 2 0 11 0;
#X connect 3 0 7 0;
#X connect 4 0 2 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 6 0 17 0;
#X connect 7 0 4 0;
#X connect 7 1 5 0;
#X connect 8 0 1 0;
#X connect 8 1 0 0;
#X connect 10 0 15 0;
#X connect 11 0 9 0;
#X connect 12 0 2 1;
#X connect 13 0 14 0;
#X connect 14 0 12 1;
#X connect 15 0 16 0;
#X connect 15 1 16 1;
#X connect 16 0 5 1;
#X connect 17 0 4 1;
#X restore 139 334 pd average;
#X obj 354 267 f;
#X obj 335 50 r \$0-mode;
#X obj 509 346 r \$0-mode;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 2 0 14 0;
#X connect 3 0 15 0;
#X connect 4 0 5 1;
#X connect 4 0 6 1;
#X connect 5 0 12 0;
#X connect 6 0 13 0;
#X connect 7 0 16 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 11 0 14 0;
#X connect 11 0 15 0;
#X connect 14 0 6 0;
#X connect 14 0 21 0;
#X connect 15 0 5 0;
#X connect 15 0 7 0;
#X connect 16 0 13 0;
#X connect 17 0 12 0;
#X connect 18 0 11 0;
#X connect 18 1 22 0;
#X connect 18 2 20 0;
#X connect 18 3 4 0;
#X connect 20 0 16 1;
#X connect 20 0 17 1;
#X connect 21 0 17 0;
#X connect 22 0 7 1;
#X connect 22 0 21 1;
#X connect 23 0 18 0;
#X connect 24 0 8 0;
#X restore 235 362 pd slew logic;
#X obj 191 145 tabreceive~ \$0-mask;
#X connect 0 0 1 0;
#X connect 1 0 5 0;
#X connect 1 0 6 0;
#X connect 2 0 20 0;
#X connect 3 0 8 0;
#X connect 3 0 4 0;
#X connect 5 0 2 0;
#X connect 6 0 7 0;
#X connect 7 0 20 1;
#X connect 10 0 11 0;
#X connect 11 0 13 0;
#X connect 12 0 18 0;
#X connect 13 0 16 0;
#X connect 13 1 14 0;
#X connect 14 0 15 0;
#X connect 15 0 16 1;
#X connect 16 0 17 0;
#X connect 17 0 19 0;
#X connect 18 0 11 0;
#X connect 18 1 11 1;
#X connect 20 0 3 1;
#X connect 21 0 2 1;
#X connect 21 1 7 1;
#X connect 22 0 1 1;
#X connect 22 0 3 0;
#X restore 335 170 pd mask;
#X obj 245 565 clip~ 0 1;
#X obj 282 613 max 0.01;
#X obj 282 590 r \$0-expand;
#X obj 350 291 r \$0-masking;
#N canvas 405 140 672 502 draw-spec 0;
#X obj 218 132 sqrt~;
#X obj 218 187 powtodb~;
#X obj 218 209 /~ 100;
#X obj 219 235 *~;
#X obj 264 140 r \$0-window-size;
#X obj 264 165 / 4;
#X obj 220 279 tabwrite~ \$0-spectrum;
#X obj 218 164 /~ 256;
#X obj 560 133 r \$0-isvisible;
#X obj 560 156 switch~;
#X obj 532 182 tgl 18 0 empty empty empty 0 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 532 205 metro 50;
#X obj 218 90 inlet~;
#X connect 0 0 7 0;
#X connect 1 0 2 0;
#X connect 2 0 3 1;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 5 0;
#X connect 5 0 7 1;
#X connect 7 0 1 0;
#X connect 8 0 9 0;
#X connect 8 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 6 0;
#X connect 12 0 0 0;
#X restore 463 298 pd draw-spec;
#X obj 245 392 *~;
#X obj 1411 329 s \$0-spectrum;
#X obj 245 638 pow~;
#N canvas 920 172 487 618 restore 0;
#N canvas 250 460 716 422 sqelch 0;
#X obj 90 44 inlet~;
#X obj 89 142 rsqrt~;
#X obj 252 84 tgl 18 0 empty empty empty 0 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 152 177 f;
#X obj 252 144 sel 1;
#X obj 90 80 +~ 1e-24;
#X obj 152 29 r \$0-restore;
#X obj 252 33 r \$0-restoretgl;
#X obj 114 273 outlet~;
#X obj 152 54 / 100;
#X obj 152 111 list trim;
#X obj 152 134 route 1 0;
#X obj 113 214 *~ 0, f 7;
#X obj 152 88 list prepend 0;
#X obj 252 58 != 0;
#X connect 0 0 5 0;
#X connect 1 0 12 0;
#X connect 2 0 4 0;
#X connect 2 0 13 1;
#X connect 3 0 12 1;
#X connect 4 0 3 0;
#X connect 4 1 12 1;
#X connect 5 0 1 0;
#X connect 6 0 9 0;
#X connect 7 0 14 0;
#X connect 9 0 13 0;
#X connect 10 0 11 0;
#X connect 11 0 3 0;
#X connect 11 1 3 1;
#X connect 12 0 8 0;
#X connect 13 0 10 0;
#X connect 14 0 2 0;
#X restore 259 217 pd sqelch;
#X obj 126 326 *~;
#X obj 293 511 r \$0-restoretgl;
#X obj 295 187 *~;
#X obj 260 188 pow~;
#X obj 294 113 sig~ 1;
#X obj 294 165 -~;
#X obj 260 89 clip~ 0 1;
#X obj 259 63 inlet~;
#X obj 293 534 == 0;
#X obj 258 534 +~ 1;
#X obj 126 68 inlet~;
#X obj 126 426 *~;
#X obj 154 425 == 2;
#X obj 154 404 r \$0-restoretgl;
#X obj 259 423 *~;
#X obj 285 403 r \$0-restoretgl;
#X obj 285 424 == 1;
#X obj 258 566 outlet~;
#X obj 322 187 r \$0-treble;
#N canvas 75 285 1192 404 lock 0;
#X obj 95 95 lrshift~ 1;
#X obj 89 120 lrshift~ -1;
#X obj 91 307 *~;
#X obj 75 331 +~;
#X obj 164 235 r \$0-lock;
#X obj 76 15 inlet~;
#X obj 75 354 outlet~;
#N canvas 675 260 751 433 more 0;
#X obj 59 94 lrshift~ 2;
#X obj 54 118 lrshift~ -2;
#X obj 143 95 lrshift~ 3;
#X obj 138 119 lrshift~ -3;
#X obj 223 96 lrshift~ 4;
#X obj 218 120 lrshift~ -4;
#X obj 304 96 lrshift~ 5;
#X obj 299 120 lrshift~ -5;
#X obj 386 96 lrshift~ 6;
#X obj 381 120 lrshift~ -6;
#X obj 464 96 lrshift~ 7;
#X obj 459 121 lrshift~ -7;
#X obj 545 96 lrshift~ 8;
#X obj 540 120 lrshift~ -8;
#X obj 627 96 lrshift~ 9;
#X obj 622 120 lrshift~ -9;
#X obj 54 287 *~;
#X obj 53 7 inlet~;
#X obj 257 327 switch~ 0;
#X obj 54 328 outlet~;
#X obj 124 279 r \$0-lock;
#X obj 124 302 clip 1 2;
#X obj 124 325 - 1;
#X obj 257 280 r \$0-lock;
#X obj 257 303 > 1;
#X connect 0 0 16 0;
#X connect 1 0 16 0;
#X connect 2 0 16 0;
#X connect 3 0 16 0;