-
Notifications
You must be signed in to change notification settings - Fork 11
Expand file tree
/
Copy pathpp.distort-st~.pd
More file actions
1078 lines (1078 loc) · 26.6 KB
/
pp.distort-st~.pd
File metadata and controls
1078 lines (1078 loc) · 26.6 KB
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 704 327 1126 582 10;
#X obj 103 115 hsl 150 15 0 127 0 0 \$0-visbng \$0-visbngr empty 50 8 2 10 #e0e0e0 #e0e0e0 #000000 0 1;
#X obj 298 479 outlet~;
#X obj 334 296 *~;
#X msg 503 150 \$1 50;
#X obj 503 173 line~;
#X obj 503 127 r \$0-squeeze;
#X obj 472 234 +~ 1;
#N canvas 199 475 780 398 workings 0;
#X obj 77 189 *~;
#X obj 62 242 +~;
#X obj 184 207 *~;
#X obj 78 123 *~;
#X obj 78 146 *~;
#X obj 183 104 *~;
#N canvas 281 251 641 287 tanh 0;
#X obj 81 200 outlet~;
#X obj 139 81 exp~;
#X obj 140 57 *~ -2;
#X obj 139 104 +~ 1;
#X obj 82 82 sig~ 2;
#X obj 82 105 /~;
#X obj 82 128 -~ 1;
#X obj 139 30 inlet~;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 5 1;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 0 0;
#X connect 7 0 2 0;
#X restore 62 272 pd tanh;
#X obj 62 363 outlet~;
#X obj 62 31 inlet~ lin;
#X obj 628 126 block~ 64 1 1;
#X obj 628 65 r \$0-oversample;
#X msg 628 96 set 64 1 \$1;
#N canvas 0 363 727 530 hicut 0;
#X obj 100 396 *~ 0.125;
#X obj 100 421 rzero~ -1;
#X obj 100 446 rzero~ -1;
#X obj 100 471 rzero~ -1;
#X obj 100 250 *~ 0.115705;
#X obj 100 302 *~ 0.0141602;
#X obj 100 329 cpole~ 0.935322 0.0998846;
#X obj 100 365 cpole~ 0.935322 -0.0998846;
#X obj 100 276 rpole~ 0.884295;
#N canvas 0 0 800 653 buttercoef3 0;
#X obj 119 96 inlet;
#X floatatom 582 159 5 0 0 0 - - - 0;
#X obj 159 199 t f f, f 7;
#X msg 159 151 0.667;
#X msg 139 329 0;
#X obj 575 316 loadbang;
#X obj 586 344 inlet;
#X obj 575 368 f;
#X obj 575 392 expr 1 - 2*$f1;
#X obj 119 124 t b b b f;
#X obj 266 277 * -1;
#X obj 221 277 t f f;
#X obj 119 437 f;
#X obj 66 533 outlet;
#X text 573 283 1 to normalize at Nyquist;
#X text 115 75 characteristic frequency \, 0(DC) to 1(Nyquist);
#X obj 341 533 outlet;
#X obj 497 533 outlet;
#X text 497 557 imag2a;
#X text 341 557 real1;
#X text 432 557 real2;
#X obj 558 533 outlet;
#X text 558 557 imag2b;
#X obj 431 533 outlet;
#X text 52 557 normalizer1;
#X obj 231 533 outlet;
#X text 209 557 normalizer2;
#X obj 231 482 expr (($f2-$f1)*($f2-$f1)+$f3*$f3);
#X obj 119 458 t f f;
#X obj 159 222 expr (1 - $f2*$f2) / (1 + $f2*$f2 + 2*$f2*cos($f1));
#X obj 221 250 expr 2*$f2*sin($f1) / (1 + $f2*$f2 + 2*$f2*cos($f1));
#X obj 139 353 expr (1 - $f2*$f2) / (1 + $f2*$f2 + 2*$f2*cos($f1));
#X obj 582 114 clip 0 1;
#X obj 582 136 expr tan($f1*1.57);
#X obj 159 176 expr $f1*1.5708;
#X text 573 297 0 to normalize at DC;
#X text 175 23 3-pole (or zero) Butterworth filter coefficient calculator;
#X text 203 152 "theta" in units of pi/2;
#X text 269 183 conjugate pair of pole/zero locations:;
#X text 255 200 real part: (1-r*r)/(1+r*r-2rcos(th));
#X text 306 275 imaginary part: 2rsin(th)/(...);
#X text 328 328 real-valued one \, theta=0;
#X obj 66 505 expr abs($f1-$f2);
#X connect 0 0 9 0;
#X connect 1 0 29 1;
#X connect 1 0 30 1;
#X connect 1 0 31 1;
#X connect 2 0 29 0;
#X connect 2 1 30 0;
#X connect 3 0 34 0;
#X connect 4 0 31 0;
#X connect 5 0 7 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 12 1;
#X connect 9 0 12 0;
#X connect 9 1 4 0;
#X connect 9 2 3 0;
#X connect 9 3 32 0;
#X connect 10 0 21 0;
#X connect 11 0 17 0;
#X connect 11 0 27 2;
#X connect 11 1 10 0;
#X connect 12 0 28 0;
#X connect 27 0 25 0;
#X connect 28 0 42 0;
#X connect 28 1 27 0;
#X connect 29 0 23 0;
#X connect 29 0 27 1;
#X connect 30 0 11 0;
#X connect 31 0 16 0;
#X connect 31 0 42 1;
#X connect 32 0 33 0;
#X connect 33 0 1 0;
#X connect 34 0 2 0;
#X connect 42 0 13 0;
#X restore 250 219 pd buttercoef3;
#X obj 99 214 inlet~;
#X obj 100 494 outlet~;
#X obj 250 193 / 1;
#X obj 376 59 r \$0-oversample;
#X obj 376 82 t b f;
#X text 137 139 cutoff frequency;
#X msg 250 139 15000;
#X obj 250 163 / 24000;
#X obj 307 165 r \$0-nyq;
#X obj 403 109 > 1;
#X obj 403 132 switch~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 11 0;
#X connect 4 0 8 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 6 1 7 1;
#X connect 7 0 0 0;
#X connect 8 0 5 0;
#X connect 9 0 4 1;
#X connect 9 1 5 1;
#X connect 9 2 8 1;
#X connect 9 3 6 2;
#X connect 9 3 7 2;
#X connect 9 4 6 3;
#X connect 9 5 7 3;
#X connect 10 0 4 0;
#X connect 12 0 9 0;
#X connect 13 0 14 0;
#X connect 14 0 16 0;
#X connect 14 1 12 1;
#X connect 14 1 19 0;
#X connect 16 0 17 0;
#X connect 17 0 12 0;
#X connect 18 0 17 1;
#X connect 19 0 20 0;
#X restore 146 311 pd hicut;
#N canvas 700 363 450 300 through 0;
#X obj 102 44 inlet~;
#X obj 102 110 outlet~;
#X obj 231 42 r \$0-oversample;
#X obj 231 68 == 1;
#X obj 265 75 loadbang;
#X msg 265 98 1;
#X obj 231 129 switch~;
#X connect 0 0 1 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X restore 62 309 pd through;
#X obj 345 31 inlet~;
#X obj 414 33 inlet~;
#X obj 270 193 *~;
#X obj 255 246 +~;
#X obj 377 211 *~;
#X obj 271 127 *~;
#X obj 271 150 *~;
#X obj 376 108 *~;
#N canvas 281 251 641 287 tanh 0;
#X obj 81 200 outlet~;
#X obj 139 81 exp~;
#X obj 140 57 *~ -2;
#X obj 139 104 +~ 1;
#X obj 82 82 sig~ 2;
#X obj 82 105 /~;
#X obj 82 128 -~ 1;
#X obj 139 30 inlet~;
#X connect 1 0 3 0;
#X connect 2 0 1 0;
#X connect 3 0 5 1;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 0 0;
#X connect 7 0 2 0;
#X restore 255 276 pd tanh;
#X obj 255 367 outlet~;
#N canvas 0 363 727 530 hicut 0;
#X obj 100 396 *~ 0.125;
#X obj 100 421 rzero~ -1;
#X obj 100 446 rzero~ -1;
#X obj 100 471 rzero~ -1;
#X obj 100 250 *~ 0.115705;
#X obj 100 302 *~ 0.0141602;
#X obj 100 329 cpole~ 0.935322 0.0998846;
#X obj 100 365 cpole~ 0.935322 -0.0998846;
#X obj 100 276 rpole~ 0.884295;
#N canvas 0 0 800 653 buttercoef3 0;
#X obj 119 96 inlet;
#X floatatom 582 159 5 0 0 0 - - - 0;
#X obj 159 199 t f f, f 7;
#X msg 159 151 0.667;
#X msg 139 329 0;
#X obj 575 316 loadbang;
#X obj 586 344 inlet;
#X obj 575 368 f;
#X obj 575 392 expr 1 - 2*$f1;
#X obj 119 124 t b b b f;
#X obj 266 277 * -1;
#X obj 221 277 t f f;
#X obj 119 437 f;
#X obj 66 533 outlet;
#X text 573 283 1 to normalize at Nyquist;
#X text 115 75 characteristic frequency \, 0(DC) to 1(Nyquist);
#X obj 341 533 outlet;
#X obj 497 533 outlet;
#X text 497 557 imag2a;
#X text 341 557 real1;
#X text 432 557 real2;
#X obj 558 533 outlet;
#X text 558 557 imag2b;
#X obj 431 533 outlet;
#X text 52 557 normalizer1;
#X obj 231 533 outlet;
#X text 209 557 normalizer2;
#X obj 231 482 expr (($f2-$f1)*($f2-$f1)+$f3*$f3);
#X obj 119 458 t f f;
#X obj 159 222 expr (1 - $f2*$f2) / (1 + $f2*$f2 + 2*$f2*cos($f1));
#X obj 221 250 expr 2*$f2*sin($f1) / (1 + $f2*$f2 + 2*$f2*cos($f1));
#X obj 139 353 expr (1 - $f2*$f2) / (1 + $f2*$f2 + 2*$f2*cos($f1));
#X obj 582 114 clip 0 1;
#X obj 582 136 expr tan($f1*1.57);
#X obj 159 176 expr $f1*1.5708;
#X text 573 297 0 to normalize at DC;
#X text 175 23 3-pole (or zero) Butterworth filter coefficient calculator;
#X text 203 152 "theta" in units of pi/2;
#X text 269 183 conjugate pair of pole/zero locations:;
#X text 255 200 real part: (1-r*r)/(1+r*r-2rcos(th));
#X text 306 275 imaginary part: 2rsin(th)/(...);
#X text 328 328 real-valued one \, theta=0;
#X obj 66 505 expr abs($f1-$f2);
#X connect 0 0 9 0;
#X connect 1 0 29 1;
#X connect 1 0 30 1;
#X connect 1 0 31 1;
#X connect 2 0 29 0;
#X connect 2 1 30 0;
#X connect 3 0 34 0;
#X connect 4 0 31 0;
#X connect 5 0 7 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 8 0 12 1;
#X connect 9 0 12 0;
#X connect 9 1 4 0;
#X connect 9 2 3 0;
#X connect 9 3 32 0;
#X connect 10 0 21 0;
#X connect 11 0 17 0;
#X connect 11 0 27 2;
#X connect 11 1 10 0;
#X connect 12 0 28 0;
#X connect 27 0 25 0;
#X connect 28 0 42 0;
#X connect 28 1 27 0;
#X connect 29 0 23 0;
#X connect 29 0 27 1;
#X connect 30 0 11 0;
#X connect 31 0 16 0;
#X connect 31 0 42 1;
#X connect 32 0 33 0;
#X connect 33 0 1 0;
#X connect 34 0 2 0;
#X connect 42 0 13 0;
#X restore 250 219 pd buttercoef3;
#X obj 99 214 inlet~;
#X obj 100 494 outlet~;
#X obj 250 193 / 1;
#X obj 376 59 r \$0-oversample;
#X obj 376 82 t b f;
#X text 137 139 cutoff frequency;
#X msg 250 139 15000;
#X obj 250 163 / 24000;
#X obj 307 165 r \$0-nyq;
#X obj 403 109 > 1;
#X obj 403 132 switch~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 11 0;
#X connect 4 0 8 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 6 1 7 1;
#X connect 7 0 0 0;
#X connect 8 0 5 0;
#X connect 9 0 4 1;
#X connect 9 1 5 1;
#X connect 9 2 8 1;
#X connect 9 3 6 2;
#X connect 9 3 7 2;
#X connect 9 4 6 3;
#X connect 9 5 7 3;
#X connect 10 0 4 0;
#X connect 12 0 9 0;
#X connect 13 0 14 0;
#X connect 14 0 16 0;
#X connect 14 1 12 1;
#X connect 14 1 19 0;
#X connect 16 0 17 0;
#X connect 17 0 12 0;
#X connect 18 0 17 1;
#X connect 19 0 20 0;
#X restore 339 315 pd hicut;
#N canvas 700 363 450 300 through 0;
#X obj 102 44 inlet~;
#X obj 102 110 outlet~;
#X obj 231 42 r \$0-oversample;
#X obj 231 68 == 1;
#X obj 265 75 loadbang;
#X msg 265 98 1;
#X obj 231 129 switch~;
#X connect 0 0 1 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X restore 255 313 pd through;
#X obj 255 28 inlet~ lin;
#X connect 0 0 1 1;
#X connect 1 0 6 0;
#X connect 2 0 1 1;
#X connect 3 0 4 0;
#X connect 4 0 0 0;
#X connect 5 0 2 0;
#X connect 6 0 13 0;
#X connect 6 0 12 0;
#X connect 8 0 1 0;
#X connect 8 0 3 0;
#X connect 8 0 3 1;
#X connect 8 0 4 1;
#X connect 8 0 5 0;
#X connect 8 0 5 1;
#X connect 10 0 11 0;
#X connect 11 0 9 0;
#X connect 12 0 7 0;
#X connect 13 0 7 0;
#X connect 14 0 0 1;
#X connect 14 0 16 1;
#X connect 15 0 2 1;
#X connect 15 0 18 1;
#X connect 16 0 17 1;
#X connect 17 0 22 0;
#X connect 18 0 17 1;
#X connect 19 0 20 0;
#X connect 20 0 16 0;
#X connect 21 0 18 0;
#X connect 22 0 25 0;
#X connect 22 0 24 0;
#X connect 24 0 23 0;
#X connect 25 0 23 0;
#X connect 26 0 19 0;
#X connect 26 0 19 1;
#X connect 26 0 20 1;
#X connect 26 0 21 0;
#X connect 26 0 21 1;
#X connect 26 0 17 0;
#X restore 334 331 pd workings;
#X f 29;
#X obj 335 86 inlet~;
#X obj 473 203 +~;
#X obj 473 88 inlet~;
#X msg 616 146 \$1 50;
#X obj 616 169 line~;
#X obj 586 199 +~;
#X obj 587 85 inlet~;
#X msg 735 141 \$1 50;
#X obj 735 164 line~;
#X obj 705 194 +~;
#X obj 706 86 inlet~;
#X obj 616 123 r \$0-squash;
#X obj 735 118 r \$0-squish;
#X obj 393 297 *~;
#X obj 394 90 inlet~;
#X obj 850 472 outlet;
#N canvas 307 172 882 559 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 304 41 inlet;
#X obj 89 247 outlet;
#X obj 89 173 f;
#X obj 345 87 t b f;
#X obj 346 41 inlet;
#X obj 389 88 t b f;
#X obj 390 42 inlet;
#X obj 603 42 inlet;
#X obj 602 88 t b s;
#X obj 428 87 t b f;
#X obj 429 41 inlet;
#X obj 474 89 t b f;
#X obj 475 43 inlet;
#X obj 89 203 pack 0 0 0 0 0 0 0 0 0 0 0 s;
#X obj 522 88 t b f;
#X obj 523 42 inlet;
#X connect 0 0 2 0;
#X connect 0 1 25 2;
#X connect 1 0 2 0;
#X connect 1 1 25 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 25 3;
#X connect 5 0 2 0;
#X connect 5 1 25 4;
#X connect 6 0 2 0;
#X connect 6 1 25 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 25 0;
#X connect 15 0 2 0;
#X connect 15 1 25 6;
#X connect 16 0 15 0;
#X connect 17 0 2 0;
#X connect 17 1 25 7;
#X connect 18 0 17 0;
#X connect 19 0 20 0;
#X connect 20 0 2 0;
#X connect 20 1 25 11;
#X connect 21 0 2 0;
#X connect 21 1 25 8;
#X connect 22 0 21 0;
#X connect 23 0 2 0;
#X connect 23 1 25 9;
#X connect 24 0 23 0;
#X connect 25 0 13 0;
#X connect 26 0 2 0;
#X connect 26 1 25 10;
#X connect 27 0 26 0;
#X restore 251 166 pd bang_once.......................................;
#X obj 355 382 list trim;
#X msg 272 358 addcomma;
#X msg 209 353 set;
#X obj 355 359 list prepend add2;
#X obj 352 445 outlet;
#X obj 251 201 t b a b;
#X obj 306 305 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 362 328 pd save;
#X obj 333 91 r \$0-oversample;
#X obj 251 16 r \$0-squeeze;
#X obj 278 45 r \$0-squash;
#X obj 306 69 r \$0-squish;
#X obj 361 115 r \$0-wet;
#X msg 306 255 squeeze \$1 \, squash \$2 \, squish \$3 \, oversample \$4 \, dry/wet \$5;
#X connect 0 0 6 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 5 0;
#X connect 6 1 14 0;
#X connect 6 2 3 0;
#X connect 7 0 2 0;
#X connect 7 1 4 0;
#X connect 7 2 8 0;
#X connect 9 0 0 3;
#X connect 10 0 0 0;
#X connect 11 0 0 1;
#X connect 12 0 0 2;
#X connect 13 0 0 4;
#X connect 14 0 7 0;
#X restore 850 444 pd outlet-message;
#N canvas 650 73 417 705 func-display 0;
#X obj 104 74 r \$0-squash;
#X obj 132 477 pow 3;
#X obj 239 519 *;
#X obj 132 500 *;
#X obj 90 49 r \$0-squeeze;
#X obj 90 294 until;
#X obj 90 321 f;
#X obj 127 321 + 1;
#X msg 133 295 0;
#X obj 90 245 t b b;
#X obj 90 418 *;
#X obj 90 346 t f f, f 12;
#X obj 90 210 t b l;
#N canvas 628 329 450 300 speedlim 0;
#X obj 26 91 metro 50;
#X obj 26 37 r \$0-isvisible;
#X obj 126 70 inlet;
#X obj 111 183 outlet;
#X obj 111 128 list;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 4 1;
#X connect 4 0 3 0;
#X restore 90 185 pd speedlim;
#X obj 104 97 t b f;
#X obj 147 124 t b f;
#X obj 90 537 +;
#X obj 90 566 expr tanh($f1);
#X obj 90 601 tabwrite \$0-funct-display;
#X obj 90 394 - 1;
#X obj 90 510 +;
#X obj 239 493 pow 2;
#X obj 147 98 r \$0-squish;
#X obj 90 157 pack 0 0 0;
#X obj 269 282 unpack f f f, f 19;
#X obj 90 441 t f f f;
#X obj 141 415 + 1;
#X msg 90 269 130;
#X obj 90 371 / 65;
#X connect 0 0 14 0;
#X connect 1 0 3 0;
#X connect 2 0 16 1;
#X connect 3 0 20 1;
#X connect 4 0 23 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 6 0 11 0;
#X connect 7 0 6 1;
#X connect 8 0 6 1;
#X connect 9 0 27 0;
#X connect 9 1 8 0;
#X connect 10 0 25 0;
#X connect 11 0 28 0;
#X connect 11 1 18 1;
#X connect 12 0 9 0;
#X connect 12 1 24 0;
#X connect 13 0 12 0;
#X connect 14 0 23 0;
#X connect 14 1 23 1;
#X connect 15 0 23 0;
#X connect 15 1 23 2;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 19 0 10 0;
#X connect 20 0 16 0;
#X connect 21 0 2 0;
#X connect 22 0 15 0;
#X connect 23 0 13 0;
#X connect 24 0 26 0;
#X connect 24 1 3 1;
#X connect 24 2 2 1;
#X connect 25 0 20 0;
#X connect 25 1 1 0;
#X connect 25 2 21 0;
#X connect 26 0 10 1;
#X connect 27 0 5 0;
#X connect 28 0 19 0;
#X restore 846 221 pd func-display;
#X text 935 490 ps 2026;
#N canvas 606 348 450 300 xfade 0;
#X obj 127 70 inlet~;
#X obj 71 71 inlet~;
#X obj 127 175 *~;
#X obj 127 140 -~;
#X obj 111 207 +~;
#X obj 111 230 outlet~;
#X obj 316 77 inlet~;
#X obj 247 73 inlet~;
#X obj 191 74 inlet~;
#X obj 247 178 *~;
#X obj 247 143 -~;
#X obj 231 210 +~;
#X obj 231 233 outlet~;
#X connect 0 0 3 0;
#X connect 1 0 4 0;
#X connect 1 0 3 1;
#X connect 2 0 4 1;
#X connect 3 0 2 0;
#X connect 4 0 5 0;
#X connect 6 0 2 1;
#X connect 6 0 9 1;
#X connect 7 0 10 0;
#X connect 8 0 11 0;
#X connect 8 0 10 1;
#X connect 9 0 11 1;
#X connect 10 0 9 0;
#X connect 11 0 12 0;
#X restore 297 434 pd xfade;
#X f 27;
#X msg 484 422 \$1 50;
#X obj 484 445 line~;
#X obj 485 376 r \$0-wet;
#X obj 485 398 / 100;
#N canvas 738 270 450 300 del 0;
#N canvas 340 312 450 300 del2samps 0;
#X obj 77 93 rzero_rev~;
#X obj 77 118 rzero_rev~;
#X obj 77 141 outlet~;
#X obj 76 67 inlet~;
#X obj 296 99 > 1;
#X obj 296 122 switch~;
#X obj 296 76 r \$0-oversample;
#X obj 180 98 rzero_rev~;
#X obj 180 123 rzero_rev~;
#X obj 180 146 outlet~;
#X obj 179 72 inlet~;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 3 0 0 0;
#X connect 4 0 5 0;
#X connect 6 0 4 0;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 10 0 7 0;
#X restore 183 126 pd del2samps;
#N canvas 700 363 450 300 through 0;
#X obj 102 44 inlet~;
#X obj 102 110 outlet~;
#X obj 231 42 r \$0-oversample;
#X obj 231 68 == 1;
#X obj 265 75 loadbang;
#X msg 265 98 1;
#X obj 231 129 switch~;
#X obj 168 44 inlet~;
#X obj 168 110 outlet~;
#X connect 0 0 1 0;
#X connect 2 0 3 0;
#X connect 3 0 6 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 7 0 8 0;
#X restore 104 124 pd through;
#X text 240 80 del 2 samp when oversampled;
#X obj 104 50 inlet~;
#X obj 160 48 inlet~;
#X obj 104 169 outlet~;
#X obj 170 169 outlet~;
#X connect 0 0 5 0;
#X connect 0 1 6 0;
#X connect 1 0 5 0;
#X connect 1 1 6 0;
#X connect 3 0 1 0;
#X connect 3 0 0 0;
#X connect 4 0 1 1;
#X connect 4 0 0 1;
#X restore 226 334 pd del;
#X f 11;
#X obj 457 481 outlet~;
#N canvas 50 60 330 170 \$0-distort~ 0;
#N canvas 216 225 692 371 mask 0;
#X obj 100 100 cnv 15 319 159 empty empty empty 20 12 0 14 #ffffff #404040 0;
#X obj 276 115 cnv 15 132 132 empty empty empty 20 12 0 14 #606060 #404040 0;
#X obj 114 137 hsl 100 12 0.1 10.1 1 0 \$0-squeeze-gui \$0-squeeze-guir Squeeze -2 -6 2 10 #ffe3c6 #000000 #000000 0 1;
#X obj 220 137 nbx 4 12 -1e+37 1e+37 0 0 \$0-squeeze \$0-squeezer empty 41 8 2 10 #ffe3c6 #000000 #000000 0 256;
#N canvas 894 411 700 420 maskgraf 0;
#X obj 18 10 cnv 15 100 60 empty empty empty 20 12 0 14 #e0e0e0 #404040 0;
#X obj 101 101 cnv 15 128 128 empty empty empty 20 12 0 14 #dfdfdf #404040 0;
#N canvas 0 50 450 250 (subpatch) 0;
#X array \$0-funct-display 130 float 8;
#A resize 130;
#A color 0;
#A width 1;
#X coords 0 1.1 129 -1.1 130 130 1 0 0;
#X restore 100 100 graph;
#X coords 0 -1 1 1 130 130 2 100 100;
#X restore 277 116 pd maskgraf;
#X obj 183 116 cnv 10 10 10 empty empty distort~ 0 5 2 17 #fcfcfc #b8b8b8 0;
#X msg 500 54 isvisible;
#X obj 500 77 pdcontrol;
#X obj 500 100 s \$0-isvisible;
#X obj 500 32 r \$0-isvisible-check;
#X obj 114 169 hsl 100 12 0 5 0 0 \$0-squash-gui \$0-squash-guir Squash -2 -6 2 10 #ffe3c6 #000000 #000000 0 1;
#X obj 220 169 nbx 4 12 -1e+37 1e+37 0 0 \$0-squash \$0-squashr empty 41 8 2 10 #ffe3c6 #000000 #000000 0 256;
#X msg 28 164 set \$1;
#X obj 114 201 hsl 100 12 0 2 0 0 \$0-squish-gui \$0-squish-guir Squish -2 -6 2 10 #ffe3c6 #000000 #000000 0 1;
#X obj 220 201 nbx 4 12 -1e+37 1e+37 0 0 \$0-squish \$0-squishr empty 41 8 2 10 #ffe3c6 #000000 #000000 0 256;
#X msg 28 195 set \$1;
#N canvas 1104 31 549 423 map 0;
#X obj 133 64 inlet;
#X text 177 63 hsl;
#X obj 291 64 inlet;
#X text 331 62 nbx;
#X obj 133 255 outlet;
#X text 178 258 hsl;
#X obj 293 256 outlet;
#X text 338 260 nbx;
#X obj 141 112 - 0.1;
#X obj 253 115 + 0.1;
#X msg 133 220 set \$1;
#X connect 0 0 8 0;
#X connect 2 0 9 0;
#X connect 8 0 6 0;
#X connect 9 0 10 0;
#X connect 10 0 4 0;
#X restore 31 136 pd map;
#X obj 114 234 hsl 100 12 0 100 0 0 \$0-wet-gui \$0-wet-guir Dry/Wet -2 -6 2 10 #ffffff #000000 #000000 0 1;
#X obj 220 234 nbx 4 12 0 100 0 0 \$0-wet \$0-wetr % 41 8 2 10 #ffffff #000000 #000000 0 256;
#X msg 28 228 set \$1;
#X connect 2 0 16 0;
#X connect 3 0 16 1;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 9 0 6 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 10 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 15 0 13 0;
#X connect 16 0 2 0;
#X connect 16 1 3 0;
#X connect 17 0 18 0;
#X connect 18 0 19 0;
#X connect 19 0 17 0;
#X coords 0 -1 1 1 320 160 2 100 100;
#X restore 3 3 pd mask;
#X restore 845 149 pd \$0-distort~;
#X obj 845 76 inlet;
#N canvas 104 368 885 421 in 0;
#X obj 212 26 inlet;
#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 230 49 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 298 72 pd recall;
#X obj 212 136 s \$0-squeezer;
#X obj 265 160 s \$0-squashr;
#X obj 318 186 s \$0-squishr;
#X obj 212 104 route squeeze squash squish oversample dry/wet;
#X obj 430 244 s \$0-wetr;
#X obj 430 217 clip 0 100;
#N canvas 0 0 450 357 check_pow 0;
#X obj 80 74 log 2;
#X obj 107 122 i;
#X obj 80 149 -;
#X obj 80 188 != 0;
#X obj 80 211 sel 1;
#X obj 147 157 swap 2;
#X obj 147 180 pow;
#X obj 80 21 inlet;
#X obj 80 309 outlet;
#X obj 80 262 pack;
#X obj 80 98 t f f;
#X obj 80 42 t f f;
#X obj 80 234 f;
#X msg 80 285 oversample \$1 is not a power of 2: using \$2;
#X obj 12 285 outlet;
#X connect 0 0 10 0;
#X connect 1 0 2 1;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 12 0;
#X connect 5 0 6 0;
#X connect 5 1 6 1;
#X connect 6 0 9 1;
#X connect 6 0 14 0;
#X connect 7 0 11 0;
#X connect 9 0 13 0;
#X connect 10 0 2 0;
#X connect 10 1 1 0;
#X connect 11 0 0 0;
#X connect 11 1 12 1;
#X connect 12 0 9 0;
#X connect 13 0 8 0;
#X restore 375 128 pd check_pow;
#X obj 375 152 s \$0-oversample;
#X obj 444 175 print pp.distort~;
#X connect 0 0 1 0;
#X connect 0 0 6 0;
#X connect 2 0 6 0;
#X connect 6 0 3 0;
#X connect 6 1 4 0;
#X connect 6 2 5 0;
#X connect 6 3 9 0;
#X connect 6 4 8 0;
#X connect 8 0 7 0;
#X connect 9 0 10 0;
#X connect 9 1 11 0;
#X restore 845 98 pd in;
#N canvas 711 466 1082 396 init+stuff 0;
#X obj 78 172 s \$0-visbngr;
#X obj 60 67 r \$0-visbng;
#X msg 58 144 color 0 0;
#X msg 142 144 color 10 10;
#X obj 60 89 t b;
#X obj 140 119 del 250;
#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 48 18 pd isvisible;
#X obj 337 23 loadbang;
#X obj 337 73 s \$0-funct-display;
#X msg 337 46 visname 0 \, edit 0;
#X obj 335 173 samplerate~;
#X obj 335 196 / 2;
#X obj 335 150 r pd-dsp-started;
#X obj 335 219 s \$0-nyq;
#X obj 677 20 loadbang;
#X text 313 242 nyquist to calculate oversample cutoff freq;
#X obj 26 219 s pd-\$0-distort~;
#X obj 677 42 t b b;
#X obj 820 68 f \$0;
#X msg 820 91 \; \$1-squeezer 0 \; \$1-squashr 0 \; \$1-squishr 0 \; \$1-wetr 100 \;;
#X msg 786 195 no method for \$1;
#X obj 677 127 max 1;
#N canvas 0 0 450 357 check_pow 0;
#X obj 80 74 log 2;
#X obj 107 122 i;
#X obj 80 149 -;
#X obj 80 188 != 0;
#X obj 80 211 sel 1;
#X obj 147 157 swap 2;
#X obj 147 180 pow;
#X obj 80 21 inlet;
#X obj 80 309 outlet;
#X obj 80 262 pack;
#X obj 80 98 t f f;
#X obj 80 42 t f f;
#X obj 80 234 f;
#X msg 80 285 oversample \$1 is not a power of 2: using \$2;
#X obj 12 285 outlet;
#X connect 0 0 10 0;
#X connect 1 0 2 1;
#X connect 1 0 5 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 12 0;
#X connect 5 0 6 0;
#X connect 5 1 6 1;
#X connect 6 0 9 1;
#X connect 6 0 14 0;