-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdsp_main.pd
999 lines (999 loc) · 26.1 KB
/
dsp_main.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
#N canvas 840 498 525 244 10;
#N canvas 629 24 627 743 metronome 0;
#X text 93 726 OSC messages to /ui/metro;
#X text 145 15 OSC messages to /dsp/metro;
#X floatatom 23 97 5 0 0 0 - - -, f 5;
#X obj 23 174 metro;
#X obj 23 199 f 0;
#X floatatom 23 224 5 0 0 0 - - -, f 5;
#X obj 23 248 mod 4;
#X floatatom 23 273 5 0 0 0 - - -, f 5;
#X obj 55 199 + 1;
#X text 59 264 beat number between 0 and 3, f 15;
#X obj 74 322 spigot;
#X floatatom 92 83 5 0 0 0 - - -, f 5;
#X msg 74 349 1;
#N canvas 918 78 450 325 click 0;
#X obj 86 15 inlet;
#X obj 86 40 t f f;
#X obj 86 65 * -1;
#X obj 86 120 pack -1 1 f;
#X msg 86 145 \$1 0 \, \$2 0 \, 0 \$3;
#X obj 86 170 vline~;
#X obj 86 195 outlet~;
#X obj 203 13 loadbang;
#X floatatom 203 58 5 0 0 0 - - -, f 5;
#X msg 203 36 31;
#X obj 203 82 / 100;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 3 1;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 7 0 9 0;
#X connect 8 0 10 0;
#X connect 9 0 8 0;
#X connect 10 0 3 2;
#X restore 74 374 pd click;
#X obj 74 399 *~ 0.5;
#X obj 74 424 dac~;
#X msg 162 95 53;
#X obj 162 120 makenote 127;
#X obj 162 145 beat 4;
#X text 195 93 midi note used by [beat];
#X obj 162 221 pow -1;
#X obj 162 246 * 60000;
#X floatatom 162 271 5 0 0 0 - - -, f 5;
#X floatatom 232 75 5 0 0 0 - - -, f 5;
#X obj 349 53 loadbang;
#X msg 349 96 120;
#X text 201 273 tempo in ms;
#X obj 162 74 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#X msg 38 148 0;
#X obj 23 75 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000 #000000
0 1;
#X obj 23 2 r fromui;
#X obj 43 726 s toui;
#X obj 23 27 mrpeach/routeOSC /metro;
#X obj 23 297 t b f f f f, f 12;
#X obj 375 524 s tempo_ms;
#X obj 371 187 loadbang;
#X msg 371 212 4;
#X obj 373 588 s beatsperbar;
#X floatatom 251 477 5 0 0 0 - - -, f 5;
#X msg 251 431 set \$1;
#X obj 251 499 t f f;
#X msg 0 511 0;
#X msg 62 663 ];
#X floatatom 204 511 5 0 0 0 - - -, f 5;
#X msg 204 431 set \$1;
#X obj 162 192 t f f;
#X obj 204 531 t f f;
#X msg 156 430 set \$1;
#X floatatom 156 544 5 0 0 0 - - -, f 5;
#X obj 156 568 t f f;
#X msg 364 477 clear;
#X obj 14 452 t b b b b b b b b, f 56;
#X msg 299 476 [;
#X msg 251 523 /metro/tempo_ms \$1;
#X msg 204 553 /metro/tempo_bpm \$1;
#X msg 156 590 /metro/beatsperbar \$1;
#X obj 23 53 mrpeach/routeOSC /playpause /click /tap /tempo_bpm;
#X obj 40 75 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#X obj 23 126 t f b f 0 f;
#X obj 449 257 select 0 1;
#X obj 449 289 s metrostop;
#X obj 477 314 s metrostart;
#X obj -60 157 r metrostart;
#X msg -60 182 0;
#X obj 162 369 change;
#X obj 260 370 change;
#X obj -48 396 r getmetro;
#X obj 0 327 select 0;
#X obj 299 643 s beatnum;
#X text 366 639 necessary to send beat 0 to avoid DSP qnd UI sliding
out of sync - but not with getmetro, f 27;
#X obj 92 107 t f f;
#X obj 360 332 dsp_switch;
#X obj 360 381 switch~;
#X obj 162 171 nbx 5 14 -1e+37 1e+37 0 0 tempo-s tempo-r tempo-s/r
55 5 0 10 #fcfcfc #000000 #000000 120 256 0;
#X text -59 573 \$2=number of bars since the very start, f 11;
#X obj 19 576 f 0;
#X obj 54 577 + 1;
#X obj 0 535 t f b f;
#X obj 0 605 pack f f;
#X msg 0 630 /metro/beatnum \$1 \$2;
#X obj 71 500 loadbang;
#X msg 71 525 0;
#X connect 2 0 58 0;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 4 0 8 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 33 0;
#X connect 8 0 4 1;
#X connect 10 0 12 0;
#X connect 11 0 70 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 14 0 15 1;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 17 1 18 1;
#X connect 18 0 73 0;
#X connect 20 0 21 0;
#X connect 21 0 22 0;
#X connect 22 0 3 1;
#X connect 22 0 39 0;
#X connect 22 0 64 0;
#X connect 23 0 73 0;
#X connect 24 0 25 0;
#X connect 25 0 73 0;
#X connect 27 0 16 0;
#X connect 28 0 4 1;
#X connect 29 0 2 0;
#X connect 30 0 32 0;
#X connect 32 0 56 0;
#X connect 33 3 10 0;
#X connect 33 4 67 0;
#X connect 35 0 36 0;
#X connect 36 0 6 1;
#X connect 36 0 47 0;
#X connect 38 0 40 0;
#X connect 39 0 38 0;
#X connect 40 0 53 0;
#X connect 40 1 34 0;
#X connect 41 0 77 0;
#X connect 42 0 31 0;
#X connect 43 0 46 0;
#X connect 44 0 43 0;
#X connect 45 0 44 0;
#X connect 45 1 20 0;
#X connect 46 0 54 0;
#X connect 47 0 48 0;
#X connect 48 0 49 0;
#X connect 49 0 55 0;
#X connect 49 1 37 0;
#X connect 51 0 57 0;
#X connect 51 1 42 0;
#X connect 51 3 48 0;
#X connect 51 4 43 0;
#X connect 51 5 38 0;
#X connect 51 6 52 0;
#X connect 51 7 50 0;
#X connect 52 0 31 0;
#X connect 53 0 31 0;
#X connect 54 0 31 0;
#X connect 55 0 31 0;
#X connect 56 0 29 0;
#X connect 56 1 11 0;
#X connect 56 2 27 0;
#X connect 56 3 23 0;
#X connect 58 0 3 0;
#X connect 58 1 28 0;
#X connect 58 4 59 0;
#X connect 59 0 60 0;
#X connect 59 1 61 0;
#X connect 62 0 63 0;
#X connect 63 0 7 0;
#X connect 63 0 51 0;
#X connect 64 0 51 0;
#X connect 65 0 51 0;
#X connect 66 0 51 0;
#X connect 67 0 41 0;
#X connect 70 0 10 1;
#X connect 70 1 71 0;
#X connect 71 0 72 0;
#X connect 73 0 45 0;
#X connect 73 0 65 0;
#X connect 75 0 76 0;
#X connect 75 0 78 1;
#X connect 76 0 75 1;
#X connect 77 0 78 0;
#X connect 77 1 75 0;
#X connect 77 2 68 0;
#X connect 78 0 79 0;
#X connect 79 0 31 0;
#X connect 80 0 81 0;
#X connect 81 0 75 0;
#X coords 0 -1 1 1 41 32 1 18 62;
#X restore 285 84 pd metronome;
#N canvas 231 206 1004 676 OSCconnections 0;
#X obj 41 98 loadbang;
#X obj 41 382 mrpeach/udpsend;
#X obj 41 407 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000 1 1;
#X obj 64 339 mrpeach/packOSC;
#X msg 50 156 disconnect;
#X obj 37 24 bng 15 250 50 0 empty empty connect_to_8081 17 7 0 10
#fcfcfc #000000 #000000;
#X obj 36 47 bng 15 250 50 0 empty empty disconnect 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 156 13 tgl 18 0 empty empty connected 35 6 0 10 #fcfcfc #000000
#000000 1 1;
#X obj 282 33 import mrpeach;
#X obj 237 109 r toui;
#X obj 293 158 list split 1;
#X msg 293 183 send /zig/ui\$1;
#X obj 293 208 list append;
#X obj 293 233 list trim;
#X obj 256 390 mrpeach/routeOSC /zig;
#X obj 256 415 mrpeach/routeOSC /dsp;
#X obj 256 440 s fromui;
#X obj 157 33 tgl 15 0 empty empty printOSC\ in 17 7 0 10 #fcfcfc #000000
#000000 0 1;
#X obj 156 50 tgl 15 0 empty empty printOSC\ out 17 7 0 10 #fcfcfc
#000000 #000000 0 1;
#X obj 203 462 spigot;
#X obj 319 277 spigot;
#X obj 319 302 print OSCout_toui;
#X obj 203 487 print OSCin_fromui;
#X obj 256 364 unpackOSC;
#X obj 256 341 udpreceive 8080;
#X msg 41 123 connect localhost 8081;
#X obj 292 254 t a a;
#X obj 237 131 route [ ], f 10;
#X msg 237 158 [;
#X msg 265 158 ];
#X obj 432 124 r fromui;
#X msg 354 85 /oscconnect/status \$1;
#X obj 354 110 s toui;
#X obj 432 149 routeOSC /oscconnect;
#X obj 432 173 routeOSC /connect /disconnect /printIn /printOut;
#X obj 51 72 t b 0;
#X connect 0 0 25 0;
#X connect 1 0 2 0;
#X connect 2 0 7 0;
#X connect 3 0 1 0;
#X connect 4 0 1 0;
#X connect 5 0 25 0;
#X connect 6 0 35 0;
#X connect 7 0 31 0;
#X connect 9 0 27 0;
#X connect 10 0 11 0;
#X connect 10 1 12 1;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 13 0 26 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 17 0 19 1;
#X connect 18 0 20 1;
#X connect 19 0 22 0;
#X connect 20 0 21 0;
#X connect 23 0 19 0;
#X connect 23 0 14 0;
#X connect 24 0 23 0;
#X connect 25 0 1 0;
#X connect 26 0 3 0;
#X connect 26 1 20 0;
#X connect 27 0 28 0;
#X connect 27 1 29 0;
#X connect 27 2 10 0;
#X connect 28 0 26 0;
#X connect 29 0 26 0;
#X connect 30 0 33 0;
#X connect 31 0 32 0;
#X connect 33 0 34 0;
#X connect 34 0 5 0;
#X connect 34 1 6 0;
#X connect 34 2 17 0;
#X connect 34 3 18 0;
#X connect 35 0 4 0;
#X connect 35 1 7 0;
#X coords 0 -1 1 1 235 60 1 26 8;
#X restore 6 6 pd OSCconnections;
#N canvas 192 75 633 415 sound_outputs 0;
#X obj 19 20 catch~ signal_1;
#X obj 43 44 catch~ signal_2;
#X obj 69 65 catch~ signal_3;
#X obj 94 89 catch~ signal_4;
#X obj 123 112 catch~ signal_5;
#X obj 148 135 catch~ signal_6;
#X obj 171 159 catch~ signal_7;
#X obj 197 181 catch~ signal_8;
#X obj 224 18 catch~ signal_9;
#X obj 249 42 catch~ signal_10;
#X obj 275 68 catch~ signal_11;
#X obj 300 90 catch~ signal_12;
#X obj 514 121 r metrostart;
#X msg 514 146 1;
#X obj 514 171 dsp_switch;
#X obj 514 220 switch~;
#X obj 541 76 r metrostop;
#X msg 541 101 0;
#X obj 18 231 *~;
#X obj 43 230 *~;
#X obj 69 229 *~;
#X obj 94 228 *~;
#X obj 121 230 *~;
#X obj 147 229 *~;
#X obj 171 229 *~;
#X obj 197 229 *~;
#X obj 224 229 *~;
#X obj 249 227 *~;
#X obj 275 229 *~;
#X obj 300 228 *~;
#X obj 18 254 dac~ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16, f 65;
#X obj 325 229 *~;
#X obj 350 227 *~;
#X obj 376 229 *~;
#X obj 401 228 *~;
#X obj 324 113 catch~ signal_13;
#X obj 350 135 catch~ signal_14;
#X obj 376 158 catch~ signal_15;
#X obj 401 181 catch~ signal_16;
#X connect 0 0 18 0;
#X connect 1 0 19 0;
#X connect 2 0 20 0;
#X connect 3 0 21 0;
#X connect 4 0 22 0;
#X connect 5 0 23 0;
#X connect 6 0 24 0;
#X connect 7 0 25 0;
#X connect 8 0 26 0;
#X connect 9 0 27 0;
#X connect 10 0 28 0;
#X connect 11 0 29 0;
#X connect 12 0 13 0;
#X connect 13 0 14 0;
#X connect 14 0 15 0;
#X connect 14 1 34 1;
#X connect 14 1 33 1;
#X connect 14 1 32 1;
#X connect 14 1 31 1;
#X connect 14 1 29 1;
#X connect 14 1 28 1;
#X connect 14 1 27 1;
#X connect 14 1 26 1;
#X connect 14 1 25 1;
#X connect 14 1 24 1;
#X connect 14 1 23 1;
#X connect 14 1 22 1;
#X connect 14 1 21 1;
#X connect 14 1 20 1;
#X connect 14 1 19 1;
#X connect 14 1 18 1;
#X connect 16 0 17 0;
#X connect 17 0 14 0;
#X connect 18 0 30 0;
#X connect 19 0 30 1;
#X connect 20 0 30 2;
#X connect 21 0 30 3;
#X connect 22 0 30 4;
#X connect 23 0 30 5;
#X connect 24 0 30 6;
#X connect 25 0 30 7;
#X connect 26 0 30 8;
#X connect 27 0 30 9;
#X connect 28 0 30 10;
#X connect 29 0 30 11;
#X connect 31 0 30 12;
#X connect 32 0 30 13;
#X connect 33 0 30 14;
#X connect 34 0 30 15;
#X connect 35 0 31 0;
#X connect 36 0 32 0;
#X connect 37 0 33 0;
#X connect 38 0 34 0;
#X restore 353 28 pd sound_outputs;
#N canvas 99 111 594 727 create_dspbutton_array 0;
#N canvas 77 136 657 556 matrix_loop 0;
#X floatatom 82 -22 3 0 0 0 - - -, f 3;
#X obj 104 118 f 0;
#X obj 134 117 + 1;
#X msg 18 68 stop;
#X obj 209 12 loadbang;
#X obj 143 193 outlet;
#X obj 101 145 t f f;
#X floatatom 150 173 5 0 0 0 - - -, f 5;
#X obj 65 -21 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#X obj 73 214 select 1;
#X obj 203 247 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X msg 175 82 0;
#X msg 207 43 4;
#X obj 65 -2 bng 15 250 50 0 empty empty S 4 6 0 10 #fcfcfc #000000
#000000;
#X obj 348 197 outlet;
#X obj 84 183 ==;
#X obj 101 50 t b b 0;
#X obj 48 29 t b b;
#X obj 60 -49 inlet;
#X obj 373 36 inlet;
#X obj 118 -48 inlet;
#X obj 99 82 metro 100;
#X connect 0 0 14 0;
#X connect 0 0 15 1;
#X connect 1 0 2 0;
#X connect 1 0 6 0;
#X connect 2 0 1 1;
#X connect 3 0 21 0;
#X connect 4 0 12 0;
#X connect 6 0 15 0;
#X connect 6 1 7 0;
#X connect 7 0 5 0;
#X connect 8 0 16 0;
#X connect 9 0 3 0;
#X connect 9 0 10 0;
#X connect 10 0 11 0;
#X connect 11 0 1 1;
#X connect 12 0 0 0;
#X connect 13 0 17 0;
#X connect 15 0 9 0;
#X connect 16 0 21 0;
#X connect 16 2 7 0;
#X connect 17 0 11 0;
#X connect 17 1 3 0;
#X connect 18 0 8 0;
#X connect 19 0 0 0;
#X connect 20 0 13 0;
#X connect 21 0 1 0;
#X coords 0 -1 1 1 88 42 1 62 -25;
#X restore 52 23 pd matrix_loop;
#X text 66 76 number;
#X msg 253 21 2;
#X text 283 20 columns;
#X floatatom 257 48 4 0 0 0 cols - -, f 4;
#X floatatom 249 120 5 0 0 0 - - -, f 5;
#X text 283 119 rows;
#X floatatom 240 166 5 0 0 0 - - -, f 5;
#X text 276 177 number;
#X floatatom 202 23 4 0 0 0 cols - -, f 4;
#X obj 246 95 div;
#X text 147 68 max;
#X obj 214 107 + 1;
#X text -31 435 fill from the bottom left;
#X obj 3 207 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#X obj 261 72 t f f f;
#X text 342 269 button width \; button height \; horizontal space
\; vert space \; X init \; Y init \; ncol \; nrow;
#X text 18 206 create 8x8;
#X obj 150 255 t b b b b 8 63;
#X obj 81 207 bng 16 250 50 0 empty empty S 4 6 0 10 #fcfcfc #000000
#000000;
#X obj 181 306 t a a a;
#X msg 99 275 clear;
#X obj 41 280 t b b;
#X msg 185 280 110 25 2 2 10 10 8 8;
#X obj 140 482 s pd-track_dsp_all;
#N canvas 32 24 644 743 tracks_dsp_create 0;
#X obj 19 15 inlet;
#X obj 158 16 inlet;
#X obj 55 57 unpack f f f f f f f f, f 43;
#X floatatom 233 150 5 0 0 0 element_number - -, f 5;
#X floatatom 232 232 5 0 0 0 col - -, f 5;
#X obj 233 193 mod;
#X obj 321 209 + 1;
#X floatatom 289 254 5 0 0 0 row - -, f 5;
#X obj 233 211 + 1;
#X obj 289 184 select 1;
#X obj 289 209 f 1;
#X obj 289 230 + 1;
#X msg 232 98 0;
#X msg 206 103 1;
#X obj 206 171 t f f;
#X obj 233 258 t f f;
#X floatatom 237 435 5 0 0 0 - - -, f 5;
#X floatatom 294 434 5 0 0 0 - - -, f 5;
#X obj 254 477 pack f f f;
#X obj 109 573 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 230 540 t b a;
#X text 115 612 renumber the array etc. and rename the initbang in
the abstraction, f 29;
#X msg 225 15 146 64 5 5 700 200 2 2;
#X floatatom 310 79 2 0 0 1 cols - -, f 2;
#X text 32 28 elem number;
#X floatatom 273 79 2 0 0 1 rows - -, f 2;
#X floatatom 53 85 5 0 0 0 - - -, f 5;
#X obj 421 16 inlet;
#X obj 422 47 unpack f f;
#X floatatom 422 72 5 0 0 0 - - -, f 5;
#X floatatom 479 74 5 0 0 0 - - -, f 5;
#X floatatom 90 85 5 0 0 0 - - -, f 5;
#X floatatom 127 86 5 0 0 0 - - -, f 5;
#X floatatom 163 86 5 0 0 0 - - -, f 5;
#X text 461 20 foord of 1st elem;
#X obj 232 283 - 1;
#X obj 183 281 +;
#X obj 232 307 *;
#X obj 232 330 +;
#X obj 291 285 - 1;
#X obj 334 286 +;
#X obj 291 309 *;
#X obj 291 365 +;
#X obj 268 570 outlet;
#X obj 291 330 * -1;
#X obj 35 146 select 0;
#X obj 19 109 t f f f;
#X obj 251 121 t 0 0;
#X text 462 389 Xi for side column;
#X obj 447 366 expr ( ( $f1 + $f2 ) * $f3 ) + $f4;
#X obj 109 596 s button-initbang-r;
#X msg 231 516 obj \$1 \$2 track_dsp_2 \$3;
#X connect 0 0 46 0;
#X connect 1 0 2 0;
#X connect 2 0 26 0;
#X connect 2 1 31 0;
#X connect 2 2 32 0;
#X connect 2 3 33 0;
#X connect 2 6 25 0;
#X connect 2 7 23 0;
#X connect 3 0 14 0;
#X connect 4 0 9 0;
#X connect 4 0 15 0;
#X connect 5 0 8 0;
#X connect 6 0 10 1;
#X connect 7 0 39 0;
#X connect 8 0 4 0;
#X connect 9 0 10 0;
#X connect 10 0 6 0;
#X connect 10 0 11 0;
#X connect 11 0 7 0;
#X connect 12 0 3 0;
#X connect 13 0 3 0;
#X connect 14 1 5 0;
#X connect 15 0 35 0;
#X connect 16 0 18 0;
#X connect 17 0 18 1;
#X connect 18 0 51 0;
#X connect 19 0 50 0;
#X connect 20 1 43 0;
#X connect 22 0 2 0;
#X connect 23 0 5 1;
#X connect 26 0 36 0;
#X connect 27 0 28 0;
#X connect 28 0 29 0;
#X connect 28 1 30 0;
#X connect 29 0 38 1;
#X connect 30 0 42 1;
#X connect 31 0 40 0;
#X connect 32 0 36 1;
#X connect 33 0 40 1;
#X connect 35 0 37 0;
#X connect 36 0 37 1;
#X connect 37 0 38 0;
#X connect 38 0 16 0;
#X connect 39 0 41 0;
#X connect 40 0 41 1;
#X connect 41 0 44 0;
#X connect 42 0 17 0;
#X connect 44 0 42 0;
#X connect 45 0 47 0;
#X connect 45 1 3 0;
#X connect 46 1 45 0;
#X connect 46 2 18 2;
#X connect 47 0 3 0;
#X connect 47 1 10 1;
#X connect 51 0 20 0;
#X restore 165 436 pd tracks_dsp_create;
#X connect 0 0 7 0;
#X connect 0 1 10 0;
#X connect 2 0 4 0;
#X connect 4 0 15 0;
#X connect 7 0 25 0;
#X connect 9 0 4 0;
#X connect 10 0 12 0;
#X connect 12 0 5 0;
#X connect 14 0 22 0;
#X connect 15 0 10 1;
#X connect 18 0 0 0;
#X connect 18 2 23 0;
#X connect 18 3 23 0;
#X connect 18 4 9 0;
#X connect 18 5 0 2;
#X connect 19 0 0 1;
#X connect 20 1 25 1;
#X connect 21 0 24 0;
#X connect 22 0 18 0;
#X connect 22 1 21 0;
#X connect 23 0 20 0;
#X connect 25 0 24 0;
#X coords 0 -1 1 1 100 34 1 1 191;
#X restore 111 82 pd create_dspbutton_array;
#N canvas 597 346 1 1 track_dsp_all 0;
#X obj 0 0 track_dsp_2 0;
#X obj 0 0 track_dsp_2 0;
#X obj 112 0 track_dsp_2 1;
#X obj 224 0 track_dsp_2 2;
#X obj 336 0 track_dsp_2 3;
#X obj 448 0 track_dsp_2 4;
#X obj 560 0 track_dsp_2 5;
#X obj 672 0 track_dsp_2 6;
#X obj 784 0 track_dsp_2 7;
#X obj 0 -27 track_dsp_2 8;
#X obj 112 -27 track_dsp_2 9;
#X obj 224 -27 track_dsp_2 10;
#X obj 336 -27 track_dsp_2 11;
#X obj 448 -27 track_dsp_2 12;
#X obj 560 -27 track_dsp_2 13;
#X obj 672 -27 track_dsp_2 14;
#X obj 784 -27 track_dsp_2 15;
#X obj 0 -54 track_dsp_2 16;
#X obj 112 -54 track_dsp_2 17;
#X obj 224 -54 track_dsp_2 18;
#X obj 336 -54 track_dsp_2 19;
#X obj 448 -54 track_dsp_2 20;
#X obj 560 -54 track_dsp_2 21;
#X obj 672 -54 track_dsp_2 22;
#X obj 784 -54 track_dsp_2 23;
#X obj 0 -81 track_dsp_2 24;
#X obj 112 -81 track_dsp_2 25;
#X obj 224 -81 track_dsp_2 26;
#X obj 336 -81 track_dsp_2 27;
#X obj 448 -81 track_dsp_2 28;
#X obj 560 -81 track_dsp_2 29;
#X obj 672 -81 track_dsp_2 30;
#X obj 784 -81 track_dsp_2 31;
#X obj 0 -108 track_dsp_2 32;
#X obj 112 -108 track_dsp_2 33;
#X obj 224 -108 track_dsp_2 34;
#X obj 336 -108 track_dsp_2 35;
#X obj 448 -108 track_dsp_2 36;
#X obj 560 -108 track_dsp_2 37;
#X obj 672 -108 track_dsp_2 38;
#X obj 784 -108 track_dsp_2 39;
#X obj 0 -135 track_dsp_2 40;
#X obj 112 -135 track_dsp_2 41;
#X obj 224 -135 track_dsp_2 42;
#X obj 336 -135 track_dsp_2 43;
#X obj 448 -135 track_dsp_2 44;
#X obj 560 -135 track_dsp_2 45;
#X obj 672 -135 track_dsp_2 46;
#X obj 784 -135 track_dsp_2 47;
#X obj 0 -162 track_dsp_2 48;
#X obj 112 -162 track_dsp_2 49;
#X obj 224 -162 track_dsp_2 50;
#X obj 336 -162 track_dsp_2 51;
#X obj 448 -162 track_dsp_2 52;
#X obj 560 -162 track_dsp_2 53;
#X obj 672 -162 track_dsp_2 54;
#X obj 784 -162 track_dsp_2 55;
#X obj 0 -189 track_dsp_2 56;
#X obj 112 -189 track_dsp_2 57;
#X obj 224 -189 track_dsp_2 58;
#X obj 336 -189 track_dsp_2 59;
#X obj 448 -189 track_dsp_2 60;
#X obj 560 -189 track_dsp_2 61;
#X obj 672 -189 track_dsp_2 62;
#X obj 784 -189 track_dsp_2 63;
#X restore 5 82 pd track_dsp_all;
#X obj 5 130 midifluid;
#N canvas 775 209 708 556 sound_input 0;
#X text 125 7 switch between adc~ and midifluid, f 14;
#X dropdown 51 114 6 0 0 0 - - -, f 6;
#X obj 51 9 loadbang;
#X floatatom 150 172 5 0 0 0 - - -, f 5;
#X obj 150 196 select 0 1, f 41;
#X obj 51 134 tgl 15 0 empty empty monitor-> 17 7 0 10 #fcfcfc #000000
#000000 0 1;
#X text 156 386 [spigot~] sends to left output if input=0 \, sends
to right outlet if input=1, f 35;
#X obj 290 359 send~ sigin_2;
#X obj 51 34 t b b 1;
#X msg 51 80 set 1;
#X obj 260 13 r fromui;
#X obj 260 38 routeOSC /input;
#X obj 260 63 routeOSC /monitor /dd /volmon, f 31;
#X msg 317 88 \$1;
#X obj 150 358 send~ sigin_1;
#N canvas 302 151 473 506 input_adc~ 0;
#X obj 264 140 dsp_switch;
#X obj 170 21 inlet;
#X obj 21 91 adc~, f 17;
#X obj 21 246 spigot~;
#X obj 119 247 spigot~;
#X floatatom 61 222 5 0 0 0 - - -, f 5;
#X text 217 241 [spigot~] sends to left output if right input=0 \,
sends to right outlet if right input=1, f 35;
#X obj 60 285 outlet~;
#X obj 158 285 outlet~;
#X obj 119 209 *~;
#X obj 21 203 *~;
#X floatatom 170 46 5 0 0 0 - - -, f 5;
#X obj 170 70 select 1 0, f 19;
#X obj 170 109 t 1 1 1;
#X obj 225 107 t 0 0 0;
#X obj 264 213 switch~;
#X connect 0 0 15 0;
#X connect 0 1 9 1;
#X connect 0 1 10 1;
#X connect 1 0 11 0;
#X connect 2 0 10 0;
#X connect 2 1 9 0;
#X connect 3 1 7 0;
#X connect 4 1 8 0;
#X connect 5 0 3 1;
#X connect 9 0 4 0;
#X connect 10 0 3 0;
#X connect 11 0 12 0;
#X connect 12 0 13 0;
#X connect 12 1 14 0;
#X connect 13 0 5 0;
#X connect 13 1 4 1;
#X connect 13 2 0 0;
#X connect 14 0 5 0;
#X connect 14 1 4 1;
#X connect 14 2 0 0;
#X restore 150 280 pd input_adc~;
#N canvas 245 205 473 531 input_fluid~ 0;
#X obj 362 193 dsp_switch;
#X obj 300 21 inlet;
#X obj 56 326 spigot~, f 8;
#X obj 146 327 spigot~;
#X floatatom 101 301 5 0 0 0 - - -, f 5;
#X text 252 317 [spigot~] sends to left output if right input=0 \,
sends to right outlet if right input=1, f 35;
#X obj 101 385 outlet~;
#X obj 185 385 outlet~;
#X obj 146 267 *~;
#X obj 56 267 *~;
#X floatatom 300 46 5 0 0 0 - - -, f 5;
#X obj 300 70 select 1 0, f 19;
#X obj 300 109 t 1 1 1;
#X obj 355 109 t 0 0 0;
#X obj 58 53 catch~ fluid_1, f 17;
#X obj 148 81 catch~ fluid_2, f 17;
#X obj 362 242 switch~;
#X connect 0 0 16 0;
#X connect 0 1 8 1;
#X connect 0 1 9 1;
#X connect 1 0 10 0;
#X connect 2 1 6 0;
#X connect 3 1 7 0;
#X connect 4 0 2 1;
#X connect 8 0 3 0;
#X connect 9 0 2 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 11 1 13 0;
#X connect 12 0 4 0;
#X connect 12 1 3 1;
#X connect 12 2 0 0;
#X connect 13 0 4 0;
#X connect 13 1 3 1;
#X connect 13 2 0 0;
#X connect 14 0 9 0;
#X connect 15 0 8 0;
#X restore 288 280 pd input_fluid~;
#N canvas 791 151 430 396 monitor 0;
#X obj 120 31 inlet;
#X floatatom 120 56 5 0 0 0 - - -, f 5;
#X obj 81 156 spigot~;
#X obj 142 156 spigot~;
#X text 96 318 monitoring to adc~;
#X obj 120 270 output~;
#X obj 81 109 receive~ sigin_1;
#X obj 142 130 receive~ sigin_2;
#X obj 284 30 inlet;
#X text 329 32 volmon;
#X obj 243 150 dsp_switch;
#X obj 120 81 t f f f, f 21;
#X obj 120 209 *~;
#X obj 181 208 *~;
#X obj 243 208 switch~;
#X connect 0 0 1 0;
#X connect 1 0 11 0;
#X connect 2 1 12 0;
#X connect 3 1 13 0;
#X connect 6 0 2 0;
#X connect 7 0 3 0;
#X connect 8 0 5 2;
#X connect 10 0 14 0;
#X connect 10 1 12 1;
#X connect 10 1 13 1;
#X connect 11 0 2 1;
#X connect 11 1 3 1;
#X connect 11 2 10 0;
#X connect 12 0 5 0;
#X connect 13 0 5 1;
#X coords 0 -1 1 1 93 43 2 118 268;
#X restore 125 107 pd monitor;
#X msg 70 58 names adc~ midifluid none;
#X obj 393 271 dsp_switch;
#X obj 393 219 t 0;
#X obj 150 335 *~;
#X obj 290 332 *~;
#X obj 393 355 switch~;
#X obj 271 237 t 0 1 1 1 1;
#X obj 508 272 s fluidswitch;
#X obj 150 235 t 1 0 0 1 0;
#X connect 1 0 3 0;
#X connect 2 0 8 0;
#X connect 3 0 4 0;
#X connect 4 0 26 0;
#X connect 4 1 24 0;
#X connect 4 2 20 0;
#X connect 5 0 17 0;
#X connect 8 0 9 0;
#X connect 8 1 18 0;
#X connect 8 2 5 0;
#X connect 9 0 1 0;
#X connect 10 0 11 0;
#X connect 11 0 12 0;
#X connect 12 0 5 0;
#X connect 12 1 13 0;
#X connect 12 2 17 1;
#X connect 13 0 1 0;
#X connect 15 0 21 0;
#X connect 15 1 22 0;
#X connect 16 0 21 0;
#X connect 16 1 22 0;
#X connect 18 0 1 0;
#X connect 19 0 23 0;
#X connect 19 1 21 1;
#X connect 19 1 22 1;
#X connect 20 0 19 0;
#X connect 21 0 14 0;
#X connect 22 0 7 0;
#X connect 24 0 15 0;
#X connect 24 1 16 0;
#X connect 24 2 5 0;
#X connect 24 3 19 0;
#X connect 24 4 25 0;
#X connect 26 0 15 0;
#X connect 26 1 16 0;
#X connect 26 2 5 0;
#X connect 26 3 19 0;
#X connect 26 4 25 0;
#X coords 0 -1 1 1 171 51 1 49 103;
#X restore 169 130 pd sound_input;
#N canvas 1041 221 450 325 init 0;
#X obj 90 21 loadbang;
#X msg 195 100 \; pd dsp 1;
#X obj 90 76 t b b, f 18;
#X obj 90 101 samplerate~;
#X obj 90 126 s samplerateval;
#X obj 90 46 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#X connect 0 0 5 0;
#X connect 2 0 3 0;
#X connect 2 1 1 0;
#X connect 3 0 4 0;
#X connect 5 0 2 0;
#X restore 260 7 pd init;
#N canvas 900 210 540 437 monitor_vu 0;
#X obj 23 213 receive~ sigin_1;
#X obj 24 286 - 100;
#X floatatom 133 82 5 0 0 0 - - -, f 5;
#X obj 111 83 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000 0 1;
#X msg 29 372 /monitor \$1;
#X obj 29 397 s toui;
#X obj 110 17 r fromui;
#X obj 110 42 routeOSC /monitor;
#X obj 24 261 env~ 8192;
#X obj 153 288 - 100;
#X obj 154 263 env~ 8192;
#X obj 153 212 adc~;
#X floatatom 133 113 5 0 0 2 adc~ - -, f 5;
#X obj 113 114 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000 0 1;
#X obj 23 237 spigot~;
#X obj 153 235 spigot~;
#X obj 29 327 spigot;
#X obj 153 319 spigot;
#X obj 45 149 t f f f;
#X obj 194 191 switch~;
#X obj 141 151 t f f f;
#X connect 0 0 14 0;
#X connect 1 0 16 0;
#X connect 3 0 18 0;
#X connect 4 0 5 0;
#X connect 6 0 7 0;
#X connect 7 0 3 0;
#X connect 8 0 1 0;
#X connect 9 0 17 0;
#X connect 10 0 9 0;
#X connect 11 0 15 0;
#X connect 13 0 20 0;
#X connect 14 1 8 0;
#X connect 15 1 10 0;
#X connect 16 0 2 0;
#X connect 16 0 4 0;
#X connect 17 0 12 0;
#X connect 18 0 16 1;
#X connect 18 1 14 1;
#X connect 18 2 19 0;
#X connect 20 0 17 1;
#X connect 20 1 15 1;
#X connect 20 2 19 0;
#X coords 0 -1 1 1 74 73 1 107 60;
#X restore 346 129 pd monitor_vu;
#N canvas 591 281 479 460 loadGUI 0;
#X obj 129 21 loadbang;
#X obj 129 88 shell;
#X msg 129 47 purr-data -nrt -noaudio -unique ui_main.pd &;
#X obj 114 192 r fromui;
#X floatatom 114 242 5 0 0 0 - - -, f 5;
#X obj 114 291 s pd-dsp_main.pd;
#X msg 114 266 vis \$1;
#X obj 114 217 route /vis;
#X obj 213 18 inlet;
#X text 229 89 TODO (?) \; - list jack ports with jack_lsp [-c for
connections \, -A for aliases] \; - write a bash script to capture
the name of the ports from the dsp instance \, give it aliases \; -
start UI instance \; - give aliases to the UI ports \; - connect
MIDI devices to the right ports;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 7 0;
#X connect 4 0 6 0;
#X connect 6 0 5 0;
#X connect 7 0 4 0;
#X connect 8 0 2 0;
#X restore 278 29 pd loadGUI;
#N canvas 125 87 450 418 get_dollarnums_tracks 0;
#X obj 61 40 table dollarnumarray 64;
#X obj 109 76 loadbang;
#X obj 109 120 delay 500;
#X obj 109 145 t b;
#X floatatom 109 220 5 0 0 0 - - -, f 5;
#X obj 109 244 t b f;
#X obj 109 289 s;
#X obj 251 99 r dollarnumarray-r;
#X obj 251 140 unpack f f;
#X text 310 183 value \, index;
#X text 265 120 \$0 \, \$1 (of the track);
#X obj 109 101 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 251 184 tabwrite dollarnumarray;
#X floatatom 326 162 5 0 0 0 - - -, f 5;
#X msg 136 266 symbol \$1-num;
#X msg 109 170 0 \, 63 1260;
#X obj 109 195 line 20;
#X text 207 41 array of tracknum \, \$0-value;
#X text 67 12 dollarnumarray lists the \$0 for each track;
#X connect 1 0 11 0;
#X connect 2 0 3 0;
#X connect 3 0 15 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 5 1 14 0;
#X connect 7 0 8 0;
#X connect 8 0 12 0;
#X connect 8 1 13 0;
#X connect 11 0 2 0;
#X connect 13 0 12 1;
#X connect 14 0 6 1;
#X connect 15 0 16 0;
#X connect 16 0 4 0;
#X restore 353 7 pd get_dollarnums_tracks;
#X obj 261 49 saveload;
#X obj 261 29 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#N canvas 459 245 390 271 stdout_pdsend 0;
#X obj 71 35 netreceive 9999 1;
#X obj 71 60 t a a;
#X obj 98 83 print;
#X text 187 35 stderr is redirected to stdout in pdlooper.sh \, then
piped to `pdsend 9999 localhost udp` so we can catch it here., f 28
;
#X obj 71 108 route Loaded;
#X obj 71 133 route Soundfont:;
#X obj 71 158 list2symbol;
#X obj 71 183 splitfilename;
#X obj 146 213 s stdout_sndfnt_loaded;
#X msg 250 123 hola;
#X obj 250 148 stdout -f;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 1 1 2 0;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 1 8 0;
#X connect 9 0 10 0;
#X restore 353 49 pd stdout_pdsend;
#X obj 171 204 midi_in_monitor;
#X connect 12 0 9 0;