forked from solipd/AudioLab
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpp.parameq-st~.pd
2403 lines (2403 loc) · 82.9 KB
/
pp.parameq-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 struct 1048-xt float x float y;
#N struct 1048-yt float x float y;
#N struct 1048-numbers0 float x float y float n;
#N struct 1048-numbers1 float x float y float n;
#N struct 1048-numbers2 float x float y float n;
#N struct 1048-numbers3 float x float y float n;
#N struct 1048-numbers4 float x float y float n;
#N struct 1048-numbers5 float x float y float n;
#N struct 1048-control-array float x float y array 1048-c-array 1048-control-template
;
#N struct 1048-control-template float x float y float c float n;
#N struct 1048-filter-template float x float y float c float s float
th array 1048-filter0 1048-template-y array 1048-filter1 1048-template-y
array 1048-filter2 1048-template-y array 1048-filter3 1048-template-y
array 1048-filter4 1048-template-y array 1048-filter5 1048-template-y
array 1048-filter6 1048-template-y;
#N struct 1048-template-y float y float c;
#N canvas 116 100 915 519 10;
#X obj 310 179 biquad~;
#X obj 310 200 biquad~;
#X obj 310 222 biquad~;
#X obj 310 243 biquad~;
#X obj 310 264 biquad~;
#X obj 310 286 biquad~;
#X obj 372 140 r \$0-filtercoeff-0;
#X obj 372 162 r \$0-filtercoeff-1;
#X obj 371 185 r \$0-filtercoeff-2;
#X obj 372 207 r \$0-filtercoeff-3;
#X obj 373 231 r \$0-filtercoeff-4;
#X obj 373 254 r \$0-filtercoeff-5;
#X obj 103 115 hsl 150 15 0 127 0 0 \$0-visbng \$0-visbngr empty 50
8 2 10 -233017 -233017 -1 0 1;
#X obj 310 368 outlet~;
#X obj 311 62 inlet~;
#X text 739 469 p.s. 2021;
#X obj 521 179 biquad~;
#X obj 521 200 biquad~;
#X obj 521 222 biquad~;
#X obj 521 243 biquad~;
#X obj 521 264 biquad~;
#X obj 521 286 biquad~;
#X obj 583 140 r \$0-filtercoeff-0;
#X obj 583 162 r \$0-filtercoeff-1;
#X obj 582 185 r \$0-filtercoeff-2;
#X obj 583 207 r \$0-filtercoeff-3;
#X obj 584 231 r \$0-filtercoeff-4;
#X obj 584 254 r \$0-filtercoeff-5;
#X obj 521 368 outlet~;
#X obj 522 62 inlet~;
#N canvas 70 251 374 268 read&draw 0;
#N canvas 155 52 940 599 cascade 0;
#X obj 209 431 list append;
#X obj 209 403 list;
#X obj 245 379 t b l;
#X obj 245 355 list append;
#X obj 245 327 list;
#X obj 281 303 t b l;
#X obj 281 280 list append;
#X obj 281 252 list;
#X obj 317 228 t b l;
#X obj 317 203 list append;
#X obj 317 175 list;
#X obj 353 151 t b l;
#X obj 353 129 list append;
#X obj 353 101 list;
#X obj 389 77 t b l;
#X obj 210 550 * 150;
#X obj 209 574 set \$0-template-y y, f 45;
#X obj 583 527 r \$0-filter-pointer;
#X obj 475 549 element \$0-filter-template \$0-filter6;
#X obj 76 340 r \$0-filtercoeff-0;
#X obj 106 273 r \$0-filtercoeff-1;
#X obj 148 192 r \$0-filtercoeff-2;
#X obj 184 115 r \$0-filtercoeff-3;
#X obj 220 41 r \$0-filtercoeff-4;
#X obj 389 41 r \$0-filtercoeff-5;
#N canvas 51 68 713 572 filterplot 0;
#X obj 195 63 inlet;
#X text 244 64 a1 a2 b0 b1 b2;
#N canvas 237 50 1032 717 frequencies 0;
#X msg 741 279 resize \$1;
#X obj 710 335 s \$0-real.freqs1;
#X obj 720 355 s \$0-real.freqs2;
#X obj 730 375 s \$0-imag.freqs1;
#X obj 740 395 s \$0-imag.freqs2;
#X obj 48 50 table \$0-real.freqs1 10;
#X obj 48 70 table \$0-real.freqs2 10;
#X obj 48 90 table \$0-imag.freqs1 10;
#X obj 48 110 table \$0-imag.freqs2 10;
#X msg 334 92 bang;
#X obj 736 237 s \$0-table.size;
#X obj 50 148 table \$0-mag.temp 10;
#X obj 838 335 s \$0-mag.temp;
#X text 34 257 This makes tables of complex frequencies from 0 to pi.
It should only have to do this once \, unless the size of the table
has been changed.;
#X obj 401 199 t f f;
#X obj 401 574 tabwrite \$0-real.freqs1;
#X obj 434 595 tabwrite \$0-real.freqs2;
#X obj 467 617 tabwrite \$0-imag.freqs1;
#X obj 500 637 tabwrite \$0-imag.freqs2;
#X obj 401 512 expr cos(-1*$f1) \; cos(-2*$f1) \; sin(-1*$f1) \; sin(-2*$f1)
;
#X obj 635 535 r \$0-freq.index;
#X obj 401 47 inlet;
#X obj 401 123 f 700;
#X obj 417 155 change -1;
#X obj 401 89 loadbang;
#N canvas 533 50 832 717 mtof-scale 0;
#X obj 138 536 / 44100;
#X obj 207 351 s \$0-freq.index;
#X obj 106 150 inlet;
#X obj 138 645 outlet;
#X obj 106 232 until;
#X obj 106 276 f 0;
#X obj 132 276 + 1;
#X msg 122 254 0;
#X obj 106 308 t f f;
#X obj 106 179 t f b f b;
#X obj 177 227 samplerate~;
#X obj 106 365 / 700;
#X obj 106 481 mtof;
#X obj 106 459 * 135;
#X obj 138 609 * 6.28319;
#X obj 106 412 pow 0.6;
#X connect 0 0 14 0;
#X connect 2 0 9 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 5 0 8 0;
#X connect 6 0 5 1;
#X connect 7 0 5 1;
#X connect 8 0 11 0;
#X connect 8 1 1 0;
#X connect 9 0 4 0;
#X connect 9 1 7 0;
#X connect 9 2 11 1;
#X connect 9 3 10 0;
#X connect 10 0 0 1;
#X connect 11 0 15 0;
#X connect 12 0 0 0;
#X connect 13 0 12 0;
#X connect 14 0 3 0;
#X connect 15 0 13 0;
#X restore 401 398 pd mtof-scale;
#X connect 0 0 1 0;
#X connect 0 0 2 0;
#X connect 0 0 3 0;
#X connect 0 0 4 0;
#X connect 0 0 12 0;
#X connect 9 0 22 0;
#X connect 14 0 25 0;
#X connect 14 1 10 0;
#X connect 14 1 0 0;
#X connect 19 0 15 0;
#X connect 19 1 16 0;
#X connect 19 2 17 0;
#X connect 19 3 18 0;
#X connect 20 0 15 1;
#X connect 20 0 16 1;
#X connect 20 0 17 1;
#X connect 20 0 18 1;
#X connect 22 0 23 0;
#X connect 22 0 14 0;
#X connect 24 0 22 0;
#X connect 25 0 19 0;
#X restore 246 203 pd frequencies;
#N canvas 684 33 681 734 calculate 0;
#X obj 492 -28 inlet;
#X text 778 390 z-Transform:;
#X text 827 417 H(z) = b0 + b1*z^-1 + b2*z^-2;
#X text 869 426 ----------------------;
#X text 873 437 1 + a1*z^-1 + a2*z^-2;
#X obj 492 -2 t b l;
#X obj 259 22 r \$0-table.size;
#X obj 244 65 f;
#X obj 278 112 until;
#X obj 278 156 f 0;
#X obj 304 156 + 1;
#X msg 293 133 0;
#X obj 278 179 t f f f f f;
#X obj 216 257 tabread \$0-real.freqs1;
#X obj 285 285 tabread \$0-imag.freqs1;
#X obj 405 304 tabread \$0-real.freqs2;
#X obj 472 326 tabread \$0-imag.freqs2;
#X obj 618 328 unpack f f f f f;
#X obj 415 508 /;
#X obj 415 402 expr $f7 + $f8*$f1 + $f9*$f3 \; $f8*$f2 + $f9*$f4 \;
1 - $f5*$f1 - $f6*$f3 \; 0 - $f5*$f2 - $f6*$f4 \;;
#X obj 43 665 outlet;
#X obj 368 678 tabwrite \$0-mag.temp;
#X text 95 665 done;
#X obj 244 88 t b b f b;
#X obj 431 614 tabread \$0-mag.temp;
#X obj 415 646 *;
#X obj 391 211 s \$0-temp.index;
#X obj 485 592 r \$0-temp.index;
#X obj 448 516 r \$0-first;
#X obj 448 538 == 0;
#X obj 368 575 spigot;
#X obj 415 574 spigot;
#N canvas 97 203 450 300 magnitude 0;
#X obj 105 49 inlet;
#X obj 188 49 inlet;
#X text 143 50 real;
#X text 223 49 imag;
#X obj 142 174 outlet;
#X text 187 174 magnitude;
#X obj 105 91 pow 2;
#X obj 188 92 pow 2;
#X obj 142 123 +;
#X obj 142 146 sqrt;
#X connect 0 0 6 0;
#X connect 1 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 8 1;
#X connect 8 0 9 0;
#X connect 9 0 4 0;
#X restore 415 472 pd magnitude;
#N canvas 97 203 450 300 magnitude 0;
#X obj 105 49 inlet;
#X obj 188 49 inlet;
#X text 143 50 real;
#X text 223 49 imag;
#X obj 142 174 outlet;
#X text 187 174 magnitude;
#X obj 105 91 pow 2;
#X obj 188 92 pow 2;
#X obj 142 123 +;
#X obj 142 146 sqrt;
#X connect 0 0 6 0;
#X connect 1 0 7 0;
#X connect 6 0 8 0;
#X connect 7 0 8 1;
#X connect 8 0 9 0;
#X connect 9 0 4 0;
#X restore 517 471 pd magnitude;
#X msg 124 175 0;
#X obj 124 203 s \$0-first;
#X connect 0 0 5 0;
#X connect 5 0 7 0;
#X connect 5 1 17 0;
#X connect 6 0 7 1;
#X connect 7 0 23 0;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 9 0 12 0;
#X connect 10 0 9 1;
#X connect 11 0 9 1;
#X connect 12 0 13 0;
#X connect 12 1 14 0;
#X connect 12 2 15 0;
#X connect 12 3 16 0;
#X connect 12 4 26 0;
#X connect 13 0 19 0;
#X connect 14 0 19 1;
#X connect 15 0 19 2;
#X connect 16 0 19 3;
#X connect 17 0 19 4;
#X connect 17 1 19 5;
#X connect 17 2 19 6;
#X connect 17 3 19 7;
#X connect 17 4 19 8;
#X connect 18 0 30 0;
#X connect 18 0 31 0;
#X connect 19 0 32 0;
#X connect 19 1 32 1;
#X connect 19 2 33 0;
#X connect 19 3 33 1;
#X connect 23 0 20 0;
#X connect 23 1 34 0;
#X connect 23 2 8 0;
#X connect 23 3 11 0;
#X connect 24 0 25 1;
#X connect 25 0 21 0;
#X connect 27 0 24 0;
#X connect 27 0 21 1;
#X connect 28 0 29 0;
#X connect 28 0 30 1;
#X connect 29 0 31 1;
#X connect 30 0 21 0;
#X connect 31 0 25 0;
#X connect 32 0 18 0;
#X connect 33 0 18 1;
#X connect 34 0 35 0;
#X restore 212 348 pd calculate;
#X obj 212 291 list split 5;
#X obj 455 63 inlet;
#N canvas 1 50 490 468 messages 0;
#X obj 124 88 inlet;
#X obj 151 206 s \$0-dbrange;
#X obj 124 230 s \$0-redraw;
#X obj 124 183 t b f;
#X obj 124 158 expr abs($f1);
#X obj 124 135 route dbrange;
#X connect 0 0 5 0;
#X connect 3 0 2 0;
#X connect 3 1 1 0;
#X connect 4 0 3 0;
#X connect 5 0 4 0;
#X restore 455 87 pd messages;
#X obj 169 319 list;
#N canvas 450 50 506 627 scale.and.draw 0;
#X obj 134 88 r \$0-table.size;
#X obj 119 140 t f b;
#X obj 119 168 until;
#X obj 119 112 f;
#X obj 119 211 f 0;
#X obj 145 211 + 1;
#X msg 160 169 0;
#X obj 119 237 t f f;
#X obj 146 261 s \$0-plot.index;
#X obj 290 481 r \$0-plot.index;
#X obj 119 331 rmstodb;
#X obj 119 436 clip -24 24;
#X obj 119 466 / 24;
#X obj 119 40 inlet;
#X obj 119 302 tabread \$0-mag.temp;
#X obj 119 360 - 100;
#X obj 182 369 r \$0-dbrange;
#X obj 152 406 * -1;
#X obj 31 72 r \$0-redraw;
#X obj 119 505 outlet;
#X obj 290 504 outlet;
#X connect 0 0 3 1;
#X connect 1 0 2 0;
#X connect 1 1 6 0;
#X connect 2 0 4 0;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 4 0 7 0;
#X connect 5 0 4 1;
#X connect 6 0 4 1;
#X connect 7 0 14 0;
#X connect 7 1 8 0;
#X connect 9 0 20 0;
#X connect 10 0 15 0;
#X connect 11 0 12 0;
#X connect 12 0 19 0;
#X connect 13 0 3 0;
#X connect 14 0 10 0;
#X connect 15 0 11 0;
#X connect 16 0 11 2;
#X connect 16 0 12 1;
#X connect 16 0 17 0;
#X connect 17 0 11 1;
#X connect 18 0 3 0;
#X restore 105 388 pd scale.and.draw;
#X obj 134 134 list;
#X obj 96 98 r \$0-replot;
#X obj 105 411 outlet;
#X obj 204 412 outlet;
#X text 252 415 index;
#X obj 229 250 s \$0-first;
#X msg 229 227 1;
#X obj 195 180 t b l b b;
#N canvas 1 50 450 300 init 0;
#X obj 133 33 loadbang;
#X obj 286 147 samplerate~;
#X obj 286 170 s \$0-sample.rate;
#X msg 228 144 1;
#X obj 228 166 atan;
#X obj 228 188 * 4;
#X obj 228 111 t b b;
#X obj 228 208 s \$0-pi;
#X obj 133 61 t b b;
#X obj 133 137 expr abs($f1);
#X obj 133 165 s \$0-dbrange;
#X msg 133 113 24;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 7 0;
#X connect 6 0 3 0;
#X connect 6 1 1 0;
#X connect 8 0 11 0;
#X connect 8 1 6 0;
#X connect 9 0 10 0;
#X connect 11 0 9 0;
#X restore 454 123 pd init;
#X text 333 449 striped-down version of filterplot.mmb;
#X text 346 468 https://github.com/dotmmb/mmb;
#X connect 0 0 9 1;
#X connect 0 0 16 0;
#X connect 3 0 7 0;
#X connect 4 0 3 0;
#X connect 4 1 7 1;
#X connect 5 0 6 0;
#X connect 7 0 4 0;
#X connect 8 0 11 0;
#X connect 8 1 12 0;
#X connect 9 0 16 0;
#X connect 10 0 9 0;
#X connect 15 0 14 0;
#X connect 16 0 8 0;
#X connect 16 1 4 0;
#X connect 16 2 15 0;
#X connect 16 3 2 0;
#X restore 209 524 pd filterplot;
#X obj 209 503 spigot 1;
#X obj 321 436 r \$0-draw-sum;
#X obj 321 468 t f f;
#X obj 234 466 list;
#X obj 273 468 sel 1;
#X msg 374 506 dbrange \$1;
#X obj 374 486 r \$0-dbrange-gui;
#X connect 0 0 26 0;
#X connect 0 0 29 1;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 2 1 0 1;
#X connect 3 0 2 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 connect 7 0 6 0;
#X connect 8 0 7 0;
#X connect 8 1 6 1;
#X connect 9 0 8 0;
#X connect 10 0 9 0;
#X connect 11 0 10 0;
#X connect 11 1 9 1;
#X connect 12 0 11 0;
#X connect 13 0 12 0;
#X connect 14 0 13 0;
#X connect 14 1 12 1;
#X connect 15 0 16 0;
#X connect 17 0 18 1;
#X connect 18 0 16 1;
#X connect 19 0 1 1;
#X connect 19 0 0 0;
#X connect 20 0 3 0;
#X connect 20 0 4 1;
#X connect 21 0 6 0;
#X connect 21 0 7 1;
#X connect 22 0 9 0;
#X connect 22 0 10 1;
#X connect 23 0 12 0;
#X connect 23 0 13 1;
#X connect 24 0 14 0;
#X connect 25 0 15 0;
#X connect 25 1 18 0;
#X connect 26 0 25 0;
#X connect 27 0 28 0;
#X connect 28 0 30 0;
#X connect 28 1 26 1;
#X connect 29 0 26 0;
#X connect 30 0 29 0;
#X connect 31 0 25 1;
#X connect 32 0 31 0;
#X restore 84 187 pd cascade;
#X obj 84 48 pp.parameq-draw 1 \$0 peaking;
#X obj 84 72 pp.parameq-draw 2 \$0 peaking;
#X obj 84 97 pp.parameq-draw 3 \$0 peaking;
#X obj 84 121 pp.parameq-draw 4 \$0 peaking;
#X obj 84 144 pp.parameq-draw 5 \$0 highshelf;
#X obj 84 24 pp.parameq-draw 0 \$0 lowshelf;
#X restore 780 289 pd read&draw;
#X obj 780 223 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#N canvas 195 50 1115 717 setup 0;
#X obj 47 132 until;
#X obj 47 337 set \$0-control-template x y;
#X obj 194 31 r \$0-control-array-pointer;
#X obj 47 155 f;
#X obj 89 146 + 1;
#X obj 47 180 t f f;
#X obj 47 261 pack f 0 f;
#X obj 47 288 unpack f f f;
#X obj 194 53 t b p;
#X msg 451 171 700;
#X obj 451 149 t b p;
#X msg 451 263 700;
#X obj 451 241 t b p;
#X msg 452 355 700;
#X obj 452 333 t b p;
#X obj 451 195 setsize \$0-filter-template \$0-filter1;
#X obj 451 285 setsize \$0-filter-template \$0-filter2;
#X obj 452 377 setsize \$0-filter-template \$0-filter3;
#X obj 451 126 r \$0-filter-pointer;
#X obj 451 218 r \$0-filter-pointer;
#X obj 452 310 r \$0-filter-pointer;
#X msg 450 81 700;
#X obj 450 59 t b p;
#X obj 450 36 r \$0-filter-pointer;
#X obj 450 105 setsize \$0-filter-template \$0-filter0;
#X msg 726 164 700;
#X obj 726 142 t b p;
#X msg 726 256 700;
#X obj 726 234 t b p;
#X msg 727 348 700;
#X obj 727 326 t b p;
#X obj 726 119 r \$0-filter-pointer;
#X obj 726 211 r \$0-filter-pointer;
#X obj 727 303 r \$0-filter-pointer;
#X obj 726 188 setsize \$0-filter-template \$0-filter4;
#X obj 726 278 setsize \$0-filter-template \$0-filter5;
#X obj 727 370 setsize \$0-filter-template \$0-filter6;
#X msg 47 109 6;
#X msg 195 130 700;
#X floatatom 195 176 5 0 0 0 - - -;
#X obj 195 153 / 6;
#X obj 47 211 * 116.6;
#X obj 89 169 mod 6;
#X obj 195 198 / 2;
#X floatatom 195 221 5 0 0 0 - - -;
#X obj 47 234 + 58.33;
#X obj 803 429 r \$0-control-array-pointer;
#X obj 476 572 set \$0-control-template c;
#X obj 206 315 element \$0-control-array \$0-c-array;
#X obj 623 551 element \$0-control-array \$0-c-array;
#X obj 476 526 unpack;
#X obj 803 452 t b p;
#X msg 476 504 950 0 \, 900 1 \, 70 2 \, 9 3 \, 770 4 \, 707 5;
#X obj 45 412 t b p;
#X msg 45 435 58.33 0;
#X obj 45 458 set \$0-numbers0 x y;
#X obj 45 390 r \$0-numbers0-pointer;
#X obj 45 504 t b p;
#X obj 45 595 t b p;
#X obj 183 414 t b p;
#X obj 183 506 t b p;
#X obj 183 597 t b p;
#X msg 45 527 174.93 0;
#X msg 45 618 291.53 0;
#X msg 183 437 408.13 0;
#X msg 183 529 524.73 0;
#X msg 183 620 641.33 0;
#X obj 45 482 r \$0-numbers1-pointer;
#X obj 45 550 set \$0-numbers1 x y;
#X obj 45 573 r \$0-numbers2-pointer;
#X obj 45 641 set \$0-numbers2 x y;
#X obj 183 392 r \$0-numbers3-pointer;
#X obj 183 460 set \$0-numbers3 x y;
#X obj 183 552 set \$0-numbers4 x y;
#X obj 183 484 r \$0-numbers4-pointer;
#X obj 183 575 r \$0-numbers5-pointer;
#X obj 183 643 set \$0-numbers5 x y;
#X connect 0 0 3 0;
#X connect 2 0 8 0;
#X connect 3 0 4 0;
#X connect 3 0 5 0;
#X connect 4 0 42 0;
#X connect 5 0 41 0;
#X connect 5 1 6 2;
#X connect 6 0 7 0;
#X connect 7 0 1 0;
#X connect 7 1 1 1;
#X connect 7 2 48 0;
#X connect 8 0 37 0;
#X connect 8 1 48 1;
#X connect 9 0 15 0;
#X connect 10 0 9 0;
#X connect 10 1 15 1;
#X connect 11 0 16 0;
#X connect 12 0 11 0;
#X connect 12 1 16 1;
#X connect 13 0 17 0;
#X connect 14 0 13 0;
#X connect 14 1 17 1;
#X connect 18 0 10 0;
#X connect 19 0 12 0;
#X connect 20 0 14 0;
#X connect 21 0 24 0;
#X connect 22 0 21 0;
#X connect 22 1 24 1;
#X connect 23 0 22 0;
#X connect 25 0 34 0;
#X connect 26 0 25 0;
#X connect 26 1 34 1;
#X connect 27 0 35 0;
#X connect 28 0 27 0;
#X connect 28 1 35 1;
#X connect 29 0 36 0;
#X connect 30 0 29 0;
#X connect 30 1 36 1;
#X connect 31 0 26 0;
#X connect 32 0 28 0;
#X connect 33 0 30 0;
#X connect 37 0 0 0;
#X connect 38 0 40 0;
#X connect 39 0 43 0;
#X connect 40 0 39 0;
#X connect 41 0 45 0;
#X connect 42 0 3 1;
#X connect 43 0 44 0;
#X connect 45 0 6 0;
#X connect 46 0 51 0;
#X connect 48 0 1 2;
#X connect 49 0 47 1;
#X connect 50 0 47 0;
#X connect 50 1 49 0;
#X connect 51 0 52 0;
#X connect 51 1 49 1;
#X connect 52 0 50 0;
#X connect 53 0 54 0;
#X connect 53 1 55 2;
#X connect 54 0 55 0;
#X connect 56 0 53 0;
#X connect 57 0 62 0;
#X connect 57 1 68 2;
#X connect 58 0 63 0;
#X connect 58 1 70 2;
#X connect 59 0 64 0;
#X connect 59 1 72 2;
#X connect 60 0 65 0;
#X connect 60 1 73 2;
#X connect 61 0 66 0;
#X connect 61 1 76 2;
#X connect 62 0 68 0;
#X connect 63 0 70 0;
#X connect 64 0 72 0;
#X connect 65 0 73 0;
#X connect 66 0 76 0;
#X connect 67 0 57 0;
#X connect 69 0 58 0;
#X connect 71 0 59 0;
#X connect 74 0 60 0;
#X connect 75 0 61 0;
#X restore 780 266 pd setup struct;
#N canvas 13 84 1268 628 stuff 0;
#X obj 44 63 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1 1
;
#X obj 44 128 metro 100;
#X floatatom 108 129 5 0 0 0 - - -;
#X obj 203 57 route 0;
#X obj 203 34 r \$0-freq-from-array;
#X obj 203 220 s \$0-freq-to-filter;
#X obj 203 174 list prepend 0;
#X obj 203 197 list trim;
#X msg 203 91 set \$1;
#X obj 331 33 r \$0-touch;
#X obj 331 56 change;
#X obj 203 123 s \$0-freq-guir;
#X obj 203 150 r \$0-freq-gui;
#X obj 803 188 list trim;
#X obj 409 56 route 0;
#X obj 409 33 r \$0-gain-from-array;
#X obj 409 172 list prepend 0;
#X obj 409 195 list trim;
#X obj 409 218 s \$0-gain-to-filter;
#X msg 409 94 set \$1;
#X obj 615 58 route 0;
#X obj 615 172 list prepend 0;
#X obj 615 195 list trim;
#X msg 615 86 set \$1;
#X obj 615 34 r \$0-q-from-array;
#X obj 615 218 s \$0-q-to-filter;
#X obj 538 33 r \$0-touch;
#X obj 538 56 change;
#X obj 726 34 r \$0-touch;
#X obj 726 57 change;
#X obj 943 34 r \$0-touch;
#X obj 943 57 change;
#X obj 803 34 r \$0-filtertype-to-gui;
#X msg 803 80 set \$1;
#X obj 803 165 list prepend 0;
#X obj 803 57 route 0;
#X obj 803 216 s \$0-filtertype-to-filter;
#X obj 409 122 s \$0-gain-guir;
#X obj 409 148 r \$0-gain-gui;
#X obj 615 109 s \$0-q-guir;
#X obj 615 149 r \$0-q-gui;
#X msg 216 345 Highpass;
#X obj 199 467 symbol;
#X msg 199 488 label \$1;
#X msg 331 398 color 0;
#X msg 356 418 color 1;
#X obj 803 103 s \$0-filtertype-guir;
#X obj 803 141 r \$0-filtertype-gui;
#X obj 202 279 r \$0-filtertype-gui;
#X msg 202 324 Peaking;
#X msg 234 369 Lowpass;
#X msg 251 394 Lowshelf;
#X msg 260 418 Highshelf;
#X msg 274 441 Notch;
#X obj 199 509 s \$0-filtertype-guir;
#X obj 202 303 sel 0 1 2 3 4 5;
#X obj 467 277 r \$0-touch;
#X obj 467 300 change;
#X obj 327 277 r \$0-filtertype-to-gui;
#X obj 327 300 route 0;
#X obj 356 445 s \$0-gain-guir;
#X obj 803 288 r \$0-touch;
#X obj 803 310 change;
#X msg 803 382 set \$1;
#X obj 803 442 s \$0-touch-guir;
#X obj 600 348 sel 0 1 2 3 4 5;
#X msg 630 374 13;
#X msg 661 374 16;
#X msg 691 374 18;
#X msg 722 374 15;
#X msg 752 374 19;
#X msg 600 374 14;
#X msg 691 408 color \$1;
#X obj 803 466 r \$0-touch-gui;
#X obj 803 489 s \$0-touch;
#X obj 44 151 s \$0-updatebng;
#X obj 553 538 s \$0-visbngr;
#X obj 535 433 r \$0-visbng;
#X msg 533 510 color 0 0;
#X msg 617 510 color 10 10;
#X obj 535 455 t b;
#X obj 615 485 del 250;
#X obj 499 587 s pd-\$0-parameq;
#X obj 44 40 r \$0-update-metro;
#X msg 499 565 relocate 733x370+1+1 1x1+50+70 \, vis 1 \, editmode
0;
#N canvas 1 50 845 386 isvisible 0;
#X obj 418 47 r \$0-draw-sum-gui;
#X obj 434 71 r \$0-draw-colfilter-gui;
#X obj 344 108 f;
#X obj 360 134 f 1;
#X obj 369 10 r \$0-isvisible;
#X obj 325 43 sel 0 1;
#X obj 310 107 f 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 -262144 -1 -1 1 1
;
#X obj 48 108 s \$0-isvisible-check;
#X obj 394 153 spigot;
#X obj 434 183 spigot;
#X obj 359 287 s \$0-draw-colfilter;
#X obj 310 230 s \$0-draw-sum;
#X obj 359 265 change;
#X obj 310 207 change;
#X connect 0 0 2 1;
#X connect 0 0 11 0;
#X connect 1 0 3 1;
#X connect 1 0 12 0;
#X connect 2 0 16 0;
#X connect 3 0 15 0;
#X connect 4 0 5 0;
#X connect 4 0 11 1;
#X connect 4 0 12 1;
#X connect 5 0 6 0;
#X connect 5 1 2 0;
#X connect 5 1 3 0;
#X connect 6 0 15 0;
#X connect 6 0 16 0;
#X connect 7 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 8 0;
#X connect 11 0 16 0;
#X connect 12 0 15 0;
#X connect 15 0 13 0;
#X connect 16 0 14 0;
#X restore 528 412 pd isvisible;
#X obj 967 219 r \$0-dbrange-gui;
#X obj 967 253 * 0.5;
#X obj 1009 252 * 0.25;
#X obj 967 276 * -1;
#X obj 1009 279 * -1;
#X msg 978 366 label \$1;
#X obj 978 387 s \$0-dbzeiger-minus1;
#X msg 967 432 label \$1;
#X obj 967 453 s \$0-dbzeiger-minus2;
#X msg 1118 365 label \$1;
#X msg 1117 435 label \$1;
#X obj 1118 387 s \$0-dbzeiger-plus1;
#X obj 1117 456 s \$0-dbzeiger-plus2;
#X obj 967 410 makefilename %d;
#X obj 978 345 makefilename %d;
#X obj 1118 344 makefilename %d;
#X obj 1117 413 makefilename %d;
#X obj 74 103 r \$0-update-rate;
#X connect 0 0 1 0;
#X connect 1 0 75 0;
#X connect 2 0 1 1;
#X connect 3 0 8 0;
#X connect 4 0 3 0;
#X connect 6 0 7 0;
#X connect 7 0 5 0;
#X connect 8 0 11 0;
#X connect 9 0 10 0;
#X connect 10 0 6 1;
#X connect 10 0 3 1;
#X connect 12 0 6 0;
#X connect 13 0 36 0;
#X connect 14 0 19 0;
#X connect 15 0 14 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 19 0 37 0;
#X connect 20 0 23 0;
#X connect 21 0 22 0;
#X connect 22 0 25 0;
#X connect 23 0 39 0;
#X connect 24 0 20 0;
#X connect 26 0 27 0;
#X connect 27 0 16 1;
#X connect 27 0 14 1;
#X connect 28 0 29 0;
#X connect 29 0 21 1;
#X connect 29 0 20 1;
#X connect 30 0 31 0;
#X connect 31 0 34 1;
#X connect 31 0 35 1;
#X connect 32 0 35 0;
#X connect 33 0 46 0;
#X connect 34 0 13 0;
#X connect 35 0 33 0;
#X connect 38 0 16 0;
#X connect 40 0 21 0;
#X connect 41 0 42 0;
#X connect 42 0 43 0;
#X connect 43 0 54 0;
#X connect 44 0 60 0;
#X connect 45 0 60 0;
#X connect 47 0 34 0;
#X connect 48 0 55 0;
#X connect 49 0 42 0;
#X connect 50 0 42 0;
#X connect 51 0 42 0;
#X connect 52 0 42 0;
#X connect 53 0 42 0;
#X connect 55 0 49 0;
#X connect 55 0 44 0;
#X connect 55 1 41 0;
#X connect 55 1 45 0;
#X connect 55 2 50 0;
#X connect 55 2 45 0;
#X connect 55 3 51 0;
#X connect 55 3 44 0;
#X connect 55 4 52 0;
#X connect 55 4 44 0;
#X connect 55 5 53 0;
#X connect 55 5 45 0;
#X connect 56 0 57 0;
#X connect 57 0 59 1;
#X connect 58 0 59 0;
#X connect 59 0 55 0;
#X connect 61 0 62 0;
#X connect 62 0 63 0;
#X connect 62 0 65 0;
#X connect 63 0 64 0;
#X connect 65 0 71 0;
#X connect 65 1 66 0;
#X connect 65 2 67 0;
#X connect 65 3 68 0;
#X connect 65 4 69 0;
#X connect 65 5 70 0;
#X connect 66 0 72 0;
#X connect 67 0 72 0;
#X connect 68 0 72 0;
#X connect 69 0 72 0;
#X connect 70 0 72 0;
#X connect 71 0 72 0;
#X connect 72 0 64 0;
#X connect 73 0 74 0;
#X connect 77 0 80 0;
#X connect 78 0 76 0;
#X connect 79 0 76 0;
#X connect 80 0 78 0;
#X connect 80 0 81 0;
#X connect 80 0 84 0;
#X connect 81 0 79 0;
#X connect 83 0 0 0;
#X connect 84 0 82 0;
#X connect 86 0 88 0;
#X connect 86 0 87 0;
#X connect 87 0 89 0;
#X connect 87 0 102 0;
#X connect 88 0 90 0;
#X connect 88 0 101 0;
#X connect 89 0 99 0;
#X connect 90 0 100 0;
#X connect 91 0 92 0;
#X connect 93 0 94 0;
#X connect 95 0 97 0;
#X connect 96 0 98 0;
#X connect 99 0 93 0;
#X connect 100 0 91 0;
#X connect 101 0 95 0;
#X connect 102 0 96 0;
#X connect 103 0 1 1;
#X restore 780 320 pd stuff;
#N canvas 146 108 733 370 \$0-parameq 0;
#N canvas 32 57 1033 544 mask 0;
#X obj 100 100 cnv 15 719 354 empty empty empty 20 12 0 14 -262144
-66577 0;
#X obj 109 108 cnv 15 702 302 empty empty empty 20 12 0 14 -128992
-66577 0;
#X obj 110 109 cnv 15 700 300 empty empty empty 20 12 0 14 -262144
-66577 0;
#X obj 213 432 nbx 5 12 0 20000 0 0 \$0-freq-gui \$0-freq-guir Frequency
0 -8 2 10 -262144 -1 -1 243.4 256;
#X obj 306 432 nbx 4 12 -1e+37 1e+37 0 0 \$0-gain-gui \$0-gain-guir
Gain 0 -8 2 10 -262144 -1 -1 0 256;
#X obj 263 432 nbx 4 12 -1e+37 1e+37 0 0 \$0-q-gui \$0-q-guir Q 2 -8
2 10 -262144 -1 -1 0 256;
#X obj 135 432 hradio 12 1 0 6 \$0-filtertype-gui \$0-filtertype-guir
Peaking 0 -8 2 10 -262144 -1 -1 0;
#X obj 523 416 tgl 12 0 \$0-draw-colfilter-gui \$0-draw-colfilter-guir
draw_Filter 17 7 2 10 -262144 -1 -1 1 1;
#X obj 596 416 tgl 12 0 \$0-draw-sum-gui \$0-draw-sum-guir draw_Sum
17 7 2 10 -262144 -1 -1 0 1;
#X obj 112 432 nbx 1 12 0 5 0 0 \$0-touch-gui \$0-touch-guir empty
2 -9 2 10 -258699 -1 -1 1 256;
#N canvas 537 267 450 300 \$0-grid 0;
#X scalar 1048-xt 1.57974 -150 \;;
#X scalar 1048-xt 18.9587 -150 \;;
#X scalar 1048-xt 35.3494 -150 \;;
#X scalar 1048-xt 49.3265 -150 \;;
#X scalar 1048-xt 61.4141 -150 \;;
#X scalar 1048-xt 72.0618 -150 \;;
#X scalar 1048-xt 81.588 -150 \;;
#X scalar 1048-xt 90.2181 -150 \;;
#X scalar 1048-xt 98.1158 -150 \;;
#X scalar 1048-xt 105.403 -150 \;;
#X scalar 1048-xt 158.393 -150 \;;
#X scalar 1048-xt 193.269 -150 \;;
#X scalar 1048-xt 219.669 -150 \;;
#X scalar 1048-xt 241.069 -150 \;;
#X scalar 1048-xt 259.139 -150 \;;
#X scalar 1048-xt 274.822 -150 \;;
#X scalar 1048-xt 288.704 -150 \;;
#X scalar 1048-xt 301.174 -150 \;;
#X scalar 1048-xt 312.508 -150 \;;
#X scalar 1048-xt 391.173 -150 \;;
#X scalar 1048-xt 440.41 -150 \;;
#X scalar 1048-xt 476.747 -150 \;;
#X scalar 1048-xt 505.72 -150 \;;
#X scalar 1048-xt 529.898 -150 \;;
#X scalar 1048-xt 550.69 -150 \;;
#X scalar 1048-xt 568.96 -150 \;;
#X scalar 1048-xt 585.272 -150 \;;
#X scalar 1048-xt 600.019 -150 \;;
#X scalar 1048-yt 1 -37.5 \;;
#X scalar 1048-yt 1 37.5 \;;
#X scalar 1048-yt 1 -75 \;;
#X scalar 1048-yt 1 75 \;;
#X coords 0 -150 700 150 700 300 2 100 100;
#X restore 110 109 pd \$0-grid;
#N canvas 340 269 450 300 \$0-graph 0;
#X scalar 1048-numbers0 58.3297 0 0 \;;
#X scalar 1048-numbers1 174.93 0 0 \;;
#X scalar 1048-numbers2 291.53 0 0 \;;
#X scalar 1048-numbers3 408.13 0 0 \;;
#X scalar 1048-numbers4 524.73 0 0 \;;
#X scalar 1048-numbers5 641.33 0 0 \;;
#X scalar 1048-control-array 0 0 \; 58.3297 0 950 0 \; 174.93 0 900
0 \; 291.53 0 70 0 \; 408.13 0 9 0 \; 524.73 0 770 0 \; 641.33 0 707
0 \; \;;
#X scalar 1048-filter-template 1 0 900 0 1 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0
\; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0
0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \;
0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0 \; 0 0