/
mother.pd
1227 lines (1227 loc) · 29.7 KB
/
mother.pd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#N canvas 804 156 891 543 10;
#X obj 76 75 loadbang;
#X obj 358 162 r knob1;
#X obj 358 196 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 5214 1;
#X obj 421 196 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 5773 1;
#X obj 482 196 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 0 1;
#X obj 544 196 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 12700 1;
#X obj 421 162 r knob2;
#X obj 482 162 r knob3;
#X obj 544 162 r knob4;
#X obj 653 197 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 12700 1;
#X obj 470 388 r notes;
#X obj 470 414 unpack;
#X floatatom 470 443 5 0 0 0 - - -;
#X floatatom 509 443 5 0 0 0 - - -;
#X obj 366 394 r aux;
#X obj 366 420 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 654 340 r fs;
#X obj 654 368 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
1;
#X obj 653 163 r exp;
#N canvas 142 50 1149 734 audioIO 0;
#X obj 513 336 dac~;
#X obj 561 101 catch~ outR;
#X obj 456 104 catch~ outL;
#X obj 192 166 adc~, f 6;
#X obj 331 218 s~ inR;
#X obj 62 219 s~ inL;
#X obj 217 493 s oscOut;
#X obj 479 225 *~;
#X obj 568 224 *~;
#X obj 810 69 r vol;
#X obj 810 122 *;
#X obj 810 95 t f f;
#X obj 810 150 sig~;
#X obj 482 264 clip~ -1 1;
#X obj 553 278 clip~ -1 1;
#X text 268 34 Receives and sends audio to patch. Outgoing audio is
run through a compressor to provide some headroom if things get too
loud. Also sends values to the Organelle's OLED VU meter.;
#X obj 742 360 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 -262144
-1 -1 4991 1;
#X obj 742 326 r vol;
#X obj 810 175 lop~ 5;
#N canvas 4 50 1358 888 vumeter 0;
#X obj 112 240 i;
#X obj 295 234 i;
#X obj 295 116 env~ 8192 4096;
#X obj 112 116 env~ 8192 4096;
#X obj 295 163 expr if($f1 >= 0 \, $f1 \, 0);
#X obj 112 166 expr if($f1 >= 0 \, $f1 \, 0);
#X obj 347 848 outlet;
#X obj 462 233 i;
#X obj 462 115 env~ 8192 4096;
#X obj 462 162 expr if($f1 >= 0 \, $f1 \, 0);
#X obj 112 142 - 40;
#X obj 295 141 - 40;
#X obj 462 140 - 40;
#X obj 652 227 i;
#X obj 652 109 env~ 8192 4096;
#X obj 652 156 expr if($f1 >= 0 \, $f1 \, 0);
#X obj 652 134 - 40;
#X obj 112 189 / 60;
#X obj 295 188 / 60;
#X obj 462 187 / 60;
#X obj 652 181 / 60;
#X text 243 29 start metering at -60 db;
#X obj 112 70 inlet~;
#X obj 295 72 inlet~;
#X obj 462 71 inlet~;
#X obj 652 69 inlet~;
#X obj 112 211 * 11;
#X obj 295 212 * 11;
#X obj 462 211 * 11;
#X obj 652 205 * 11;
#X text 693 205 12 bars on vu meter \, leave last one for peak indicator.
;
#X obj 347 760 pack 0 0 0 0 0, f 18;
#X obj 150 421 t f b;
#N canvas 4 50 1347 781 peaks 0;
#X obj 324 427 i;
#X obj 369 424 i;
#X obj 421 428 i;
#X obj 468 428 i;
#X msg 1085 254 0;
#X msg 932 254 1;
#X obj 419 491 +;
#X obj 416 459 << 1;
#X obj 370 459 << 2;
#X obj 330 459 << 3;
#X obj 385 520 +;
#X obj 361 546 +;
#X obj 245 374 t b b b b;
#X obj 932 230 threshold~ 0.95 500 0.9 10;
#X obj 340 584 outlet;
#X text 511 423 combine all peaks into one int;
#X msg 891 254 0;
#X msg 738 254 1;
#X obj 738 230 threshold~ 0.95 500 0.9 10;
#X msg 697 252 0;
#X msg 544 252 1;
#X obj 553 230 threshold~ 0.95 500 0.9 10;
#X msg 506 255 0;
#X msg 353 255 1;
#X obj 353 231 threshold~ 0.95 500 0.9 10;
#X obj 168 41 inlet;
#X obj 325 29 inlet~;
#X obj 548 34 inlet~;
#X obj 739 33 inlet~;
#X obj 937 44 inlet~;
#X connect 0 0 9 0;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 6 1;
#X connect 4 0 3 1;
#X connect 5 0 3 1;
#X connect 6 0 10 1;
#X connect 7 0 6 0;
#X connect 8 0 10 0;
#X connect 9 0 11 0;
#X connect 10 0 11 1;
#X connect 11 0 14 0;
#X connect 12 0 0 0;
#X connect 12 1 1 0;
#X connect 12 2 2 0;
#X connect 12 3 3 0;
#X connect 13 0 5 0;
#X connect 13 1 4 0;
#X connect 16 0 2 1;
#X connect 17 0 2 1;
#X connect 18 0 17 0;
#X connect 18 1 16 0;
#X connect 19 0 1 1;
#X connect 20 0 1 1;
#X connect 21 0 20 0;
#X connect 21 1 19 0;
#X connect 22 0 0 1;
#X connect 23 0 0 1;
#X connect 24 0 23 0;
#X connect 24 1 22 0;
#X connect 25 0 12 0;
#X connect 26 0 13 0;
#X connect 27 0 18 0;
#X connect 28 0 21 0;
#X connect 29 0 24 0;
#X restore 589 536 pd peaks;
#X f 48;
#X connect 0 0 32 0;
#X connect 1 0 31 1;
#X connect 2 0 11 0;
#X connect 3 0 10 0;
#X connect 4 0 18 0;
#X connect 5 0 17 0;
#X connect 7 0 31 2;
#X connect 8 0 12 0;
#X connect 9 0 19 0;
#X connect 10 0 5 0;
#X connect 11 0 4 0;
#X connect 12 0 9 0;
#X connect 13 0 31 3;
#X connect 14 0 16 0;
#X connect 15 0 20 0;
#X connect 16 0 15 0;
#X connect 17 0 26 0;
#X connect 18 0 27 0;
#X connect 19 0 28 0;
#X connect 20 0 29 0;
#X connect 22 0 3 0;
#X connect 22 0 33 1;
#X connect 23 0 2 0;
#X connect 23 0 33 2;
#X connect 24 0 8 0;
#X connect 24 0 33 3;
#X connect 25 0 14 0;
#X connect 25 0 33 4;
#X connect 26 0 0 0;
#X connect 27 0 1 0;
#X connect 28 0 7 0;
#X connect 29 0 13 0;
#X connect 31 0 6 0;
#X connect 32 0 31 0;
#X connect 32 1 33 0;
#X connect 33 0 31 4;
#X restore 230 408 pd vumeter;
#X msg 217 471 sendtyped /oled/vumeter iiiii \$1 \$2 \$3 \$4 \$5;
#X connect 1 0 8 0;
#X connect 2 0 7 0;
#X connect 3 0 5 0;
#X connect 3 0 19 0;
#X connect 3 1 4 0;
#X connect 3 1 19 1;
#X connect 7 0 13 0;
#X connect 8 0 14 0;
#X connect 9 0 11 0;
#X connect 10 0 12 0;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 18 0;
#X connect 13 0 0 0;
#X connect 13 0 19 2;
#X connect 14 0 0 1;
#X connect 14 0 19 3;
#X connect 17 0 16 0;
#X connect 18 0 8 1;
#X connect 18 0 7 1;
#X connect 19 0 20 0;
#X connect 20 0 6 0;
#X restore 76 202 pd audioIO;
#N canvas 88 306 1265 661 messageIO 0;
#X msg 568 179 port 4000;
#X obj 244 251 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 1
1;
#X msg 315 177 connect localhost 4001;
#X obj 568 207 udpreceive;
#X obj 568 231 unpackOSC;
#X obj 244 179 packOSC;
#X obj 244 215 udpsend;
#X obj 244 151 r oscOut;
#X obj 450 94 t b b;
#X obj 450 65 loadbang;
#X msg 766 178 send /screenshot;
#X obj 765 66 r notes;
#X obj 766 104 route 83;
#X obj 766 126 sel 100;
#X obj 925 183 print takin-pic;
#X obj 766 217 s oscOut;
#X obj 568 255 s oscIn;
#X text 892 97 screen shot hack -- not for production release;
#N canvas 17 50 633 581 LED 0;
#X msg 74 339 send /led \$1;
#X obj 75 137 % 8;
#X obj 75 86 r led;
#X msg 125 134 0;
#X obj 125 84 r quitting;
#X obj 74 368 s oscOut;
#X obj 89 235 sel 0 1 2 3 4 5 6 7, f 37;
#X msg 87 266 0;
#X msg 343 267 7;
#X msg 123 266 1;
#X msg 160 266 2;
#X msg 197 265 3;
#X msg 232 265 4;
#X msg 270 265 5;
#X msg 306 267 6;
#X connect 0 0 5 0;
#X connect 1 0 6 0;
#X connect 2 0 1 0;
#X connect 3 0 6 0;
#X connect 4 0 3 0;
#X connect 6 0 7 0;
#X connect 6 1 9 0;
#X connect 6 2 10 0;
#X connect 6 3 11 0;
#X connect 6 4 12 0;
#X connect 6 5 13 0;
#X connect 6 6 14 0;
#X connect 6 7 8 0;
#X connect 7 0 0 0;
#X connect 8 0 0 0;
#X connect 9 0 0 0;
#X connect 10 0 0 0;
#X connect 11 0 0 0;
#X connect 12 0 0 0;
#X connect 13 0 0 0;
#X connect 14 0 0 0;
#X restore 381 363 pd LED;
#N canvas 16 50 1215 407 OLED 0;
#X obj 110 173 list append;
#X obj 110 198 list trim;
#X obj 137 110 t b l;
#X msg 35 138 send /oled/line/1;
#X obj 110 223 s oscOut;
#X obj 137 78 list;
#X obj 135 44 r screenLine1;
#X obj 297 169 list append;
#X obj 297 194 list trim;
#X obj 324 106 t b l;
#X obj 297 219 s oscOut;
#X obj 324 74 list;
#X obj 505 198 list trim;
#X obj 532 110 t b l;
#X obj 505 223 s oscOut;
#X obj 532 78 list;
#X obj 505 173 list append;
#X obj 697 170 list append;
#X obj 697 195 list trim;
#X obj 724 107 t b l;
#X obj 697 220 s oscOut;
#X obj 724 75 list;
#X obj 914 170 list append;
#X obj 914 195 list trim;
#X obj 941 107 t b l;
#X obj 914 220 s oscOut;
#X obj 941 75 list;
#X obj 322 40 r screenLine2;
#X obj 530 44 r screenLine3;
#X obj 722 41 r screenLine4;
#X obj 939 41 r screenLine5;
#X msg 222 134 send /oled/line/2;
#X msg 430 138 send /oled/line/3;
#X msg 622 136 send /oled/line/4;
#X msg 839 135 send /oled/line/5;
#X connect 0 0 1 0;
#X connect 1 0 4 0;
#X connect 2 0 3 0;
#X connect 2 1 0 1;
#X connect 3 0 0 0;
#X connect 5 0 2 0;
#X connect 6 0 5 0;
#X connect 7 0 8 0;
#X connect 8 0 10 0;
#X connect 9 0 31 0;
#X connect 9 1 7 1;
#X connect 11 0 9 0;
#X connect 12 0 14 0;
#X connect 13 0 32 0;
#X connect 13 1 16 1;
#X connect 15 0 13 0;
#X connect 16 0 12 0;
#X connect 17 0 18 0;
#X connect 18 0 20 0;
#X connect 19 0 33 0;
#X connect 19 1 17 1;
#X connect 21 0 19 0;
#X connect 22 0 23 0;
#X connect 23 0 25 0;
#X connect 24 0 34 0;
#X connect 24 1 22 1;
#X connect 26 0 24 0;
#X connect 27 0 11 0;
#X connect 28 0 15 0;
#X connect 29 0 21 0;
#X connect 30 0 26 0;
#X connect 31 0 7 0;
#X connect 32 0 16 0;
#X connect 33 0 17 0;
#X connect 34 0 22 0;
#X restore 383 395 pd OLED;
#N canvas 8 50 450 300 quit 0;
#X obj 96 95 sel 1;
#X obj 96 149 delay 100;
#X msg 96 171 \; pd quit;
#X obj 96 117 t b b;
#X obj 170 150 s quitting;
#X obj 96 60 routeOSC /quitpd;
#X obj 96 26 r oscIn;
#X connect 0 0 3 0;
#X connect 1 0 2 0;
#X connect 3 0 1 0;
#X connect 3 1 4 0;
#X connect 5 0 0 0;
#X connect 6 0 5 0;
#X restore 381 469 pd quit;
#N canvas 13 50 516 343 keys 0;
#X obj 119 56 routeOSC /key;
#X obj 206 114 unpack;
#X floatatom 206 144 5 0 0 0 - - -;
#X floatatom 253 146 5 0 0 0 - - -;
#X obj 206 212 pack;
#X obj 206 247 s notes;
#X obj 253 173 / 1;
#X obj 206 171 + 59;
#X obj 119 112 sel 100;
#X msg 119 145 1;
#X msg 165 145 0;
#X obj 119 178 s aux;
#X obj 119 83 route 0;
#X obj 119 26 r oscIn;
#X obj 284 249 s notesRaw;
#X obj 39 181 s auxRaw;
#X connect 0 0 12 0;
#X connect 1 0 2 0;
#X connect 1 1 3 0;
#X connect 2 0 7 0;
#X connect 3 0 6 0;
#X connect 4 0 5 0;
#X connect 4 0 14 0;
#X connect 6 0 4 1;
#X connect 7 0 4 0;
#X connect 8 0 9 0;
#X connect 8 1 10 0;
#X connect 9 0 11 0;
#X connect 9 0 15 0;
#X connect 10 0 11 0;
#X connect 10 0 15 0;
#X connect 12 0 8 0;
#X connect 12 1 1 0;
#X connect 13 0 0 0;
#X restore 381 496 pd keys;
#N canvas 12 51 821 300 footSwitch 0;
#X obj 194 218 s fs;
#X obj 194 109 routeOSC /fs;
#X obj 194 76 r oscIn;
#X obj 254 219 s fsRaw;
#X obj 194 171 == 0;
#X text 253 167 flip this cause most foot switches we tried are normally
closed, f 66;
#X obj 327 118 r footSwitchPolarity;
#X connect 1 0 4 0;
#X connect 2 0 1 0;
#X connect 4 0 3 0;
#X connect 4 0 0 0;
#X connect 6 0 4 1;
#X restore 381 523 pd footSwitch;
#N canvas 369 229 1252 622 analog 0;
#X obj 148 147 routeOSC /knobs;
#X obj 868 278 s vol;
#X obj 148 175 unpack 0 0 0 0 0 0, f 129;
#X obj 145 375 s knob1;
#X obj 148 113 r oscIn;
#X obj 63 231 s knob1Raw;
#X obj 1048 366 s exp;
#X obj 1122 211 r expOverride;
#X obj 1122 305 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1
0 1;
#X obj 984 270 s expRaw;
#X floatatom 1048 339 5 0 0 0 - - -;
#X obj 145 323 change -1;
#X obj 868 210 change -1;
#X obj 1048 209 change -1;
#X obj 1048 275 override 20;
#X obj 257 234 s knob2Raw;
#X obj 338 427 s knob2;
#X obj 338 373 change -1;
#X obj 538 367 change -1;
#X obj 425 232 s knob3Raw;
#X obj 538 421 s knob3;
#X obj 707 381 change -1;
#X obj 599 230 s knob4Raw;
#X obj 707 435 s knob4;
#X obj 145 349 / 1023;
#X obj 338 401 / 1023;
#X obj 538 395 / 1023;
#X obj 707 409 / 1023;
#X obj 868 245 / 1023;
#X obj 1048 306 / 1023;
#X obj 148 297 override2 20 1;
#X text 298 34 knobs pass thru override2 if their value is coming from
somewhere else (knobs.txt preset file or MIDI CC);
#X obj 338 344 override2 20 2;
#X obj 538 338 override2 20 3;
#X obj 707 352 override2 20 4;
#X connect 0 0 2 0;
#X connect 2 0 5 0;
#X connect 2 0 30 0;
#X connect 2 1 15 0;
#X connect 2 1 32 0;
#X connect 2 2 19 0;
#X connect 2 2 33 0;
#X connect 2 3 22 0;
#X connect 2 3 34 0;
#X connect 2 4 12 0;
#X connect 2 5 13 0;
#X connect 4 0 0 0;
#X connect 7 0 14 1;
#X connect 10 0 6 0;
#X connect 11 0 24 0;
#X connect 12 0 28 0;
#X connect 13 0 9 0;
#X connect 13 0 14 0;
#X connect 14 0 29 0;
#X connect 14 1 8 0;
#X connect 17 0 25 0;
#X connect 18 0 26 0;
#X connect 21 0 27 0;
#X connect 24 0 3 0;
#X connect 25 0 16 0;
#X connect 26 0 20 0;
#X connect 27 0 23 0;
#X connect 28 0 1 0;
#X connect 29 0 10 0;
#X connect 30 0 11 0;
#X connect 32 0 17 0;
#X connect 33 0 18 0;
#X connect 34 0 21 0;
#X restore 382 556 pd analog;
#X text 355 333 stuff going out (from patch)...;
#X text 352 440 stuff coming in (to patch)...;
#X text 269 252 connected to mother background program;
#X text 293 8 Receives and sends signals to the Organelle hardware.
A program running in the background interacts with the hardware and
exchanges messages with this patch using OSC over UDP.;
#X connect 0 0 3 0;
#X connect 2 0 6 0;
#X connect 3 0 4 0;
#X connect 4 0 16 0;
#X connect 5 0 6 0;
#X connect 6 0 1 0;
#X connect 7 0 5 0;
#X connect 8 0 2 0;
#X connect 8 1 0 0;
#X connect 9 0 8 0;
#X connect 10 0 15 0;
#X connect 12 0 13 0;
#X connect 13 0 10 0;
#X connect 13 0 14 0;
#X restore 76 229 pd messageIO;
#N canvas 273 157 1779 821 MIDI 0;
#X obj 51 227 spigot 1;
#X obj 139 183 r midiInGate;
#X obj 51 257 t f b;
#X obj 51 295 / 127;
#X obj 51 317 s knob1;
#X obj 103 290 s knob1Override;
#X obj 51 188 change;
#X obj 250 223 spigot 1;
#X obj 338 179 r midiInGate;
#X obj 250 253 t f b;
#X obj 250 291 / 127;
#X obj 250 184 change;
#X obj 444 219 spigot 1;
#X obj 532 175 r midiInGate;
#X obj 444 249 t f b;
#X obj 444 287 / 127;
#X obj 444 180 change;
#X obj 642 218 spigot 1;
#X obj 730 174 r midiInGate;
#X obj 642 248 t f b;
#X obj 642 286 / 127;
#X obj 642 184 change;
#X obj 250 313 s knob2;
#X obj 444 309 s knob3;
#X obj 642 308 s knob4;
#X obj 302 286 s knob2Override;
#X obj 497 282 s knob3Override;
#X obj 694 280 s knob4Override;
#X obj 891 323 spigot 1;
#X obj 839 607 spigot 1;
#X obj 839 639 unpack;
#X obj 839 671 noteout;
#X obj 960 288 r midiInGate;
#X obj 891 356 s notes;
#X obj 892 570 r midiOutGate;
#X obj 48 631 i;
#X obj 48 653 change;
#X obj 48 585 spigot 1;
#X obj 101 553 r midiOutGate;
#X obj 220 633 i;
#X obj 220 655 change;
#X obj 220 587 spigot 1;
#X obj 273 555 r midiOutGate;
#X obj 390 637 i;
#X obj 390 659 change;
#X obj 390 591 spigot 1;
#X obj 443 559 r midiOutGate;
#X obj 568 634 i;
#X obj 568 656 change;
#X obj 568 588 spigot 1;
#X obj 621 556 r midiOutGate;
#X obj 568 612 / 8;
#X obj 390 615 / 8;
#X obj 220 611 / 8;
#X obj 48 609 / 8;
#X obj 48 675 ctlout 21 1;
#X obj 220 677 ctlout 22 1;
#X obj 388 681 ctlout 23 1;
#X obj 568 678 ctlout 24 1;
#X obj 48 512 r knob1Raw;
#X obj 220 523 r knob2Raw;
#X obj 390 519 r knob3Raw;
#X obj 568 529 r knob4Raw;
#X obj 839 533 r notesRaw;
#X text 670 101 MIDI in;
#X text 570 473 MIDI out;
#X obj 1091 641 i;
#X obj 1091 663 change;
#X obj 1091 595 spigot 1;
#X obj 1144 563 r midiOutGate;
#X obj 1091 536 r auxRaw;
#X obj 1091 619 * 127;
#X obj 1091 689 ctlout 25 1;
#X obj 1092 210 spigot 1;
#X obj 1180 166 r midiInGate;
#X obj 1092 298 s aux;
#X obj 1272 632 i;
#X obj 1272 654 change;
#X obj 1272 586 spigot 1;
#X obj 1325 554 r midiOutGate;
#X obj 1272 610 * 127;
#X obj 1272 527 r fsRaw;
#X obj 1272 680 ctlout 64 1;
#X obj 1285 210 spigot 1;
#X obj 1373 160 r midiInGate;
#X obj 1285 307 s fs;
#X obj 1285 240 >= 64;
#X obj 1285 272 change;
#X obj 1092 239 >= 64;
#X obj 1092 271 change;
#N canvas 1252 260 653 703 program-change-in 0;
#X obj 116 35 pgmin;
#X obj 141 361 s oscOut;
#X msg 141 332 send /pgmchg \$1;
#X obj 141 171 spigot 1;
#X obj 194 111 r midiInGate;
#X obj 232 139 loadbang;
#X obj 141 231 spigot 0;
#X msg 232 196 1;
#X obj 232 167 delay 500;
#X msg 227 234 0;
#X text 271 220 speed limit these;
#X text 43 4 program change in loads new patch;
#X obj 141 265 t f b b;
#X obj 141 298 i;
#N canvas 1101 410 681 530 chsel 0;
#X obj 159 28 r midiCh;
#X obj 67 61 swap;
#X obj 67 86 pack;
#X obj 44 29 inlet;
#X obj 97 28 inlet;
#X obj 67 347 outlet;
#X obj 67 169 route 1;
#X obj 120 211 spigot;
#X obj 159 167 == 0;
#X obj 120 234 unpack;
#X connect 0 0 6 1;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 1 1;
#X connect 6 0 5 0;
#X connect 6 1 7 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 1 5 0;
#X restore 115 78 pd chsel;
#X connect 0 0 14 0;
#X connect 0 1 14 1;
#X connect 2 0 1 0;
#X connect 3 0 6 0;
#X connect 4 0 3 1;
#X connect 5 0 8 0;
#X connect 6 0 12 0;
#X connect 7 0 6 1;
#X connect 8 0 7 0;
#X connect 9 0 6 1;
#X connect 12 0 13 0;
#X connect 12 1 8 0;
#X connect 12 2 9 0;
#X connect 13 0 2 0;
#X connect 14 0 3 0;
#X restore 1338 58 pd program-change-in;
#X obj 1474 635 i;
#X obj 1474 657 change;
#X obj 1474 589 spigot 1;
#X obj 1527 557 r midiOutGate;
#X obj 1474 613 / 8;
#X obj 1474 679 ctlout 26 1;
#X obj 1474 530 r expRaw;
#X obj 1550 210 spigot 1;
#X obj 1638 166 r midiInGate;
#X obj 1550 240 t f b;
#X obj 1550 278 / 127;
#X obj 1550 187 change;
#X obj 1602 273 s expOverride;
#X obj 1550 300 s exp;
#X text 709 472 the 'raw' stuff comes directly from built in controls
;
#X text 659 31 This patch provides the default MIDI behavior. All MIDI
output and input can be suppressed by sending a 0 to midiOutGate and
midiInGate respectively.;
#X text 1351 30 program change loads new patches;
#X obj 51 116 ctlin 21;
#X obj 892 154 notein;
#N canvas 667 404 743 412 chsel 0;
#X obj 159 28 r midiCh;
#X obj 67 61 swap;
#X obj 67 86 pack;
#X obj 44 29 inlet;
#X obj 97 28 inlet;
#X obj 67 347 outlet;
#X obj 67 169 route 1;
#X obj 120 211 spigot;
#X obj 159 167 == 0;
#X obj 120 234 unpack;
#X connect 0 0 6 1;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 1 1;
#X connect 6 0 5 0;
#X connect 6 1 7 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 1 5 0;
#X restore 51 147 pd chsel;
#N canvas 6 50 1280 956 chsel 0;
#X obj 187 417 pack;
#X obj 207 372 f;
#X obj 168 372 f;
#X obj 237 123 f;
#X obj 152 87 t b f;
#X obj 237 145 sel 1;
#X obj 237 325 t b b;
#X obj 342 33 r midiCh;
#X obj 117 35 inlet;
#X obj 199 37 inlet;
#X obj 274 39 inlet;
#X obj 186 444 outlet;
#X obj 325 173 spigot;
#X obj 364 129 == 0;
#X obj 302 246 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X connect 0 0 11 0;
#X connect 1 0 0 1;
#X connect 2 0 0 0;
#X connect 3 0 5 0;
#X connect 4 0 3 0;
#X connect 4 1 2 1;
#X connect 5 0 6 0;
#X connect 5 1 12 0;
#X connect 6 0 2 0;
#X connect 6 1 1 0;
#X connect 7 0 5 1;
#X connect 7 0 13 0;
#X connect 8 0 4 0;
#X connect 9 0 1 1;
#X connect 10 0 3 1;
#X connect 12 0 14 0;
#X connect 13 0 12 1;
#X connect 14 0 6 0;
#X restore 885 226 pd chsel;
#X obj 164 117 r midiCh;
#X floatatom 164 139 5 0 0 0 - - -;
#X obj 250 119 ctlin 22;
#X obj 444 128 ctlin 23;
#X obj 642 132 ctlin 24;
#X obj 1092 136 ctlin 25;
#X obj 1285 138 ctlin 64;
#X obj 1550 136 ctlin 26;
#X obj 1092 186 change;
#X obj 1285 184 change;
#X obj 1159 23 r oscIn;
#X obj 1159 45 routeOSC /midich;
#X floatatom 1159 67 5 0 0 0 - - -;
#X obj 1124 96 s midiCh;
#X obj 370 18 r oscIn;
#X floatatom 370 62 5 0 0 0 - - -;
#X obj 370 40 routeOSC /midiInGate;
#X obj 370 81 s midiInGate;
#X obj 236 394 r oscIn;
#X floatatom 236 438 5 0 0 0 - - -;
#X obj 236 416 routeOSC /midiOutGate;
#X obj 236 457 s midiOutGate;
#X obj 62 393 r oscIn;
#X floatatom 62 437 5 0 0 0 - - -;
#X obj 62 415 routeOSC /midiOutCh;
#X obj 62 456 s midiOutCh;
#X obj 228 17 r oscIn;
#X floatatom 228 61 5 0 0 0 - - -;
#X obj 228 80 s midiCh;
#X obj 228 39 routeOSC /midiInCh;
#X obj 1194 97 s midiOutCh;
#X obj 122 641 r midiOutCh;
#X obj 294 645 r midiOutCh;
#X obj 462 645 r midiOutCh;
#X obj 642 631 r midiOutCh;
#X obj 903 637 r midiOutCh;
#X obj 1165 653 r midiOutCh;
#X obj 1346 645 r midiOutCh;
#X obj 1548 646 r midiOutCh;
#X text 1129 5 Legacy \, use midiInCh and midiOutCh;
#N canvas 312 499 743 412 chsel 0;
#X obj 159 28 r midiCh;
#X obj 67 61 swap;
#X obj 67 86 pack;
#X obj 44 29 inlet;
#X obj 97 28 inlet;
#X obj 67 347 outlet;
#X obj 67 169 route 1;
#X obj 120 211 spigot;
#X obj 159 167 == 0;
#X obj 120 234 unpack;
#X connect 0 0 6 1;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 1 1;
#X connect 6 0 5 0;
#X connect 6 1 7 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 1 5 0;
#X restore 250 151 pd chsel;
#N canvas 312 499 743 412 chsel 0;
#X obj 159 28 r midiCh;
#X obj 67 61 swap;
#X obj 67 86 pack;
#X obj 44 29 inlet;
#X obj 97 28 inlet;
#X obj 67 347 outlet;
#X obj 67 169 route 1;
#X obj 120 211 spigot;
#X obj 159 167 == 0;
#X obj 120 234 unpack;
#X connect 0 0 6 1;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 1 1;
#X connect 6 0 5 0;
#X connect 6 1 7 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 1 5 0;
#X restore 443 153 pd chsel;
#N canvas 312 499 743 412 chsel 0;
#X obj 159 28 r midiCh;
#X obj 67 61 swap;
#X obj 67 86 pack;
#X obj 44 29 inlet;
#X obj 97 28 inlet;
#X obj 67 347 outlet;
#X obj 67 169 route 1;
#X obj 120 211 spigot;
#X obj 159 167 == 0;
#X obj 120 234 unpack;
#X connect 0 0 6 1;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 1 1;
#X connect 6 0 5 0;
#X connect 6 1 7 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 1 5 0;
#X restore 640 157 pd chsel;
#N canvas 312 499 743 412 chsel 0;
#X obj 159 28 r midiCh;
#X obj 67 61 swap;
#X obj 67 86 pack;
#X obj 44 29 inlet;
#X obj 97 28 inlet;
#X obj 67 347 outlet;
#X obj 67 169 route 1;
#X obj 120 211 spigot;
#X obj 159 167 == 0;
#X obj 120 234 unpack;
#X connect 0 0 6 1;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 1 1;
#X connect 6 0 5 0;
#X connect 6 1 7 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 1 5 0;
#X restore 1092 162 pd chsel;
#N canvas 312 499 743 412 chsel 0;
#X obj 159 28 r midiCh;
#X obj 67 61 swap;
#X obj 67 86 pack;
#X obj 44 29 inlet;
#X obj 97 28 inlet;
#X obj 67 347 outlet;
#X obj 67 169 route 1;
#X obj 120 211 spigot;
#X obj 159 167 == 0;
#X obj 120 234 unpack;
#X connect 0 0 6 1;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 1 1;
#X connect 6 0 5 0;
#X connect 6 1 7 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 1 5 0;
#X restore 1285 162 pd chsel;
#N canvas 312 499 743 412 chsel 0;
#X obj 159 28 r midiCh;
#X obj 67 61 swap;
#X obj 67 86 pack;
#X obj 44 29 inlet;
#X obj 97 28 inlet;
#X obj 67 347 outlet;
#X obj 67 169 route 1;
#X obj 120 211 spigot;
#X obj 159 167 == 0;
#X obj 120 234 unpack;
#X connect 0 0 6 1;
#X connect 0 0 8 0;
#X connect 1 0 2 0;
#X connect 1 1 2 1;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 1 1;
#X connect 6 0 5 0;
#X connect 6 1 7 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 1 5 0;
#X restore 1550 160 pd chsel;
#X connect 0 0 2 0;
#X connect 1 0 0 1;
#X connect 2 0 3 0;
#X connect 2 1 5 0;
#X connect 3 0 4 0;
#X connect 6 0 0 0;
#X connect 7 0 9 0;
#X connect 8 0 7 1;
#X connect 9 0 10 0;
#X connect 9 1 25 0;
#X connect 10 0 22 0;
#X connect 11 0 7 0;
#X connect 12 0 14 0;
#X connect 13 0 12 1;
#X connect 14 0 15 0;
#X connect 14 1 26 0;
#X connect 15 0 23 0;
#X connect 16 0 12 0;
#X connect 17 0 19 0;
#X connect 18 0 17 1;
#X connect 19 0 20 0;
#X connect 19 1 27 0;
#X connect 20 0 24 0;
#X connect 21 0 17 0;
#X connect 28 0 33 0;
#X connect 29 0 30 0;
#X connect 30 0 31 0;
#X connect 30 1 31 1;
#X connect 32 0 28 1;
#X connect 34 0 29 1;
#X connect 35 0 36 0;
#X connect 36 0 55 0;
#X connect 37 0 54 0;
#X connect 38 0 37 1;
#X connect 39 0 40 0;
#X connect 40 0 56 0;
#X connect 41 0 53 0;
#X connect 42 0 41 1;
#X connect 43 0 44 0;
#X connect 44 0 57 0;
#X connect 45 0 52 0;
#X connect 46 0 45 1;
#X connect 47 0 48 0;
#X connect 48 0 58 0;
#X connect 49 0 51 0;
#X connect 50 0 49 1;
#X connect 51 0 47 0;
#X connect 52 0 43 0;
#X connect 53 0 39 0;
#X connect 54 0 35 0;
#X connect 59 0 37 0;
#X connect 60 0 41 0;
#X connect 61 0 45 0;
#X connect 62 0 49 0;
#X connect 63 0 29 0;
#X connect 66 0 67 0;
#X connect 67 0 72 0;
#X connect 68 0 71 0;
#X connect 69 0 68 1;
#X connect 70 0 68 0;
#X connect 71 0 66 0;
#X connect 73 0 88 0;
#X connect 74 0 73 1;
#X connect 76 0 77 0;
#X connect 77 0 82 0;
#X connect 78 0 80 0;
#X connect 79 0 78 1;
#X connect 80 0 76 0;
#X connect 81 0 78 0;
#X connect 83 0 86 0;
#X connect 84 0 83 1;
#X connect 86 0 87 0;
#X connect 87 0 85 0;
#X connect 88 0 89 0;
#X connect 89 0 75 0;
#X connect 91 0 92 0;
#X connect 92 0 96 0;
#X connect 93 0 95 0;
#X connect 94 0 93 1;
#X connect 95 0 91 0;
#X connect 97 0 93 0;
#X connect 98 0 100 0;
#X connect 99 0 98 1;
#X connect 100 0 101 0;
#X connect 100 1 103 0;