-
Notifications
You must be signed in to change notification settings - Fork 4
/
untik.pd
2906 lines (2906 loc) · 76 KB
/
untik.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 616 173 889 345 10;
#N canvas 624 75 434 119 NETPD 0;
#N canvas 315 75 403 152 abslist 0;
#X msg 6 33 untik-pattern-editor;
#X msg 7 80 untik-pattern-selector;
#X msg 7 56 untik-pattern-editor-display;
#X msg 6 10 untik-pattern-instance;
#X msg 243 11 untik-clock-provider;
#X msg 244 36 untik-clock-consumer;
#X msg 243 62 untik-event-scheduler;
#X msg 8 103 untik-pattern-player;
#X restore 12 38 pd abslist;
#X msg 11 63 singleton;
#X msg 12 8 version 0 1 0;
#X restore 10 14 pd NETPD 2 0;
#X obj 10 44 netpd_head \$1 untik;
#N canvas 614 40 761 55 \$1-untik 1;
#X obj 250 4 cnv 18 240 45 empty empty empty 2 12 0 10 #8080a0 #00ff00 0;
#X obj 452 7 hsl 33 39 0 127 0 0 \$0.stepbeat.display.click empty empty -2 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 410 7 hsl 33 39 0 127 0 0 \$0.beatbar.display.click empty empty -2 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 256 7 hsl 75 39 0 127 0 0 \$0.step.display.click empty empty -2 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 340 7 hsl 61 39 0 127 0 0 \$0.bar.display.click empty empty -2 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 253 14 cnv 18 80 32 empty \$0.step.display 1839 5 16 0 24 #404060 #ccffcc 0;
#X obj 449 14 cnv 18 38 32 empty \$0.stepbeat.display 01 5 16 0 24 #404060 #ccffcc 0;
#X obj 407 14 cnv 18 38 32 empty \$0.beatbar.display 01 5 16 0 24 #404060 #ccffcc 0;
#X obj 337 14 cnv 18 66 32 empty \$0.bar.display 0001 5 16 0 24 #404060 #ccffcc 0;
#X obj 253 7 cnv 10 80 10 empty \$0.step.label pos 4 5 0 10 #404060 #ccffcc 0;
#X obj 449 7 cnv 10 38 10 empty \$0.stepbeat.label tick 4 5 0 10 #404060 #ccffcc 0;
#X obj 407 7 cnv 10 38 10 empty \$0.beatbar.label beat 4 5 0 10 #404060 #ccffcc 0;
#X obj 337 7 cnv 10 66 10 empty \$0.bar.label bar 4 5 0 10 #404060 #ccffcc 0;
#X obj 5 4 cnv 18 240 45 empty empty empty 2 12 0 10 #8080a0 #00ff00 0;
#X obj 181 20 nbx 2 20 1 400 0 0 \$1-ticksperbeat \$1-ticksperbeat empty 0 -9 0 24 #404060 #00ff04 #000000 0 256;
#X obj 181 7 cnv 10 10 39 empty empty empty 2 12 0 10 #404060 #00ff00 0;
#X obj 232 7 cnv 10 10 39 empty empty empty 2 12 0 10 #404060 #00ff00 0;
#X obj 192 7 cnv 10 40 13 empty empty ticks 0 5 0 10 #404060 #00ff04 0;
#X obj 192 40 cnv 6 40 6 empty empty empty 0 5 0 10 #404060 #00ff04 0;
#X obj 177 4 cnv 10 10 45 empty empty empty 2 12 0 10 #8080a0 #00ff00 0;
#X obj 174 7 cnv 10 10 39 empty empty empty 2 12 0 10 #404060 #00ff00 0;
#X obj 121 20 nbx 2 20 1 400 0 0 \$1-beatsperbar \$1-beatsperbar empty 0 -9 0 24 #404060 #00ff04 #000000 0 256;
#X obj 121 7 cnv 10 10 39 empty empty empty 2 12 0 10 #404060 #00ff00 0;
#X obj 172 7 cnv 10 10 39 empty empty empty 2 12 0 10 #404060 #00ff00 0;
#X obj 132 7 cnv 10 40 13 empty empty beats 0 5 0 10 #404060 #00ff04 0;
#X obj 132 40 cnv 6 40 6 empty empty empty 0 5 0 10 #404060 #00ff04 0;
#X obj 117 4 cnv 10 10 45 empty empty empty 2 12 0 10 #8080a0 #00ff00 0;
#X obj 44 20 nbx 3 20 1 400 0 0 \$1-bpm \$1-bpm empty 0 -9 0 24 #404060 #00ff04 #000000 0 256;
#X obj 44 7 cnv 10 10 39 empty empty empty 2 12 0 10 #404060 #00ff00 0;
#X obj 114 7 cnv 10 10 39 empty empty empty 2 12 0 10 #404060 #00ff00 0;
#X obj 55 7 cnv 10 66 13 empty empty bpm 0 5 0 10 #404060 #00ff04 0;
#X obj 55 40 cnv 6 66 6 empty empty empty 0 5 0 10 #404060 #00ff04 0;
#X obj 40 4 cnv 10 10 45 empty empty empty 2 12 0 10 #8080a0 #00ff00 0;
#X obj 8 7 tgl 39 0 \$1-run \$1-run empty 0 -10 0 12 #ffffff #000000 #000000 0 1;
#X obj 8 7 cnv 12 39 39 empty empty empty 20 12 0 10 #404060 #404040 0;
#X obj 11 10 cnv 12 33 33 empty \$0.run.button.front empty 20 12 0 10 #8080a0 #8080a0 0;
#X obj 629 4 cnv 3 126 45 empty empty empty 2 12 0 10 #8080a0 #00ff00 0;
#X obj 635 7 hsl 115 18 0 127 0 0 \$0.pattern.editor.click empty empty -2 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 635 28 hsl 115 18 0 127 0 0 \$0.loop.editor.click empty empty -2 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 632 7 cnv 10 120 18 empty \$0.pattern.editor.label pattern\ editor 3 9 0 14 #404060 #ccffcc 0;
#X obj 632 28 cnv 10 120 18 empty \$0.loop.editor.label loop\ editor 3 9 0 14 #404060 #ccffcc 0;
#X obj 495 4 cnv 18 129 45 empty empty empty 2 12 0 10 #8080a0 #00ff00 0;
#X obj 501 7 hsl 75 39 0 127 0 0 \$0.sync.display.click empty empty -2 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 498 14 cnv 18 80 32 empty \$0.sync.display -- 5 16 0 24 #404060 #bcbcdc 0;
#X obj 498 7 cnv 10 80 10 empty \$0.sync.label sync\ delay 4 5 0 10 #404060 #bcbcdc 0;
#X obj 584 7 hsl 35 11 0 127 0 0 \$0.sync.auto.click empty empty -2 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 581 7 cnv 10 40 11 empty \$0.sync.auto.label auto 4 5 0 10 #404060 #00ff00 0;
#X obj 584 35 hsl 35 11 0 127 0 0 \$0.sync.ticks.click empty empty -2 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 584 21 hsl 35 11 0 127 0 0 \$0.sync.ms.click empty empty -2 -9 0 10 #fcfcfc #000000 #000000 0 1;
#X obj 581 21 cnv 10 40 11 empty \$0.sync.ms.label ms 4 5 0 10 #404060 #bcbcdc 0;
#X obj 581 35 cnv 10 40 11 empty \$0.sync.ticks.label ticks 4 5 0 10 #404060 #ccffcc 0;
#X restore 370 14 pd \$1-untik;
#X obj 10 114 loadbang;
#N canvas 1231 49 598 869 pattern.store 0;
#X msg 350 77 8;
#X obj 350 124 f;
#X obj 350 147 t a a;
#X obj 404 110 + 1;
#X obj 350 100 until;
#X obj 17 115 r \$0.patsel;
#X obj 17 138 route select;
#X obj 17 161 t a b;
#X msg 68 166 1;
#X obj 17 245 s \$0.pattern.name.r;
#X msg 17 222 set \$1;
#X obj 22 338 r \$0.pattern.name.s;
#X obj 91 363 r \$0.patsel;
#X obj 91 386 route select;
#X obj 22 409 list prepend;
#X msg 55 454 \$1;
#X obj 22 524 list append;
#X obj 22 547 t a a, f 18;
#X obj 22 572 list split 1;
#X obj 55 500 list split 1;
#X obj 243 251 r \$0.patted;
#X obj 356 257 r \$0.patsel;
#X obj 356 280 route select;
#X msg 434 327 1;
#X obj 268 376 list prepend, f 15;
#X obj 243 301 route pattern set;
#X text 21 317 -- change pattern name--;
#X text 14 94 -- set pattern name editor --;
#X text 250 232 -- write pattern to text --;
#X text 240 496 -- read pattern from text --;
#X obj 243 515 r \$0.patsel;
#X obj 243 538 route select;
#X obj 243 684 list split 1;
#X obj 243 342 t a b;
#X obj 356 328 f;
#X msg 395 329 0;
#X obj 356 303 t a a b b, f 13;
#X obj 243 276 spigot 1;
#X obj 277 710 t b a b;
#X msg 277 734 1;
#X msg 316 734 0;
#X obj 262 762 t a;
#N canvas 0 0 216 294 display.pattern 0;
#X obj 53 68 list prepend set;
#X obj 53 91 list trim;
#X obj 53 114 s \$0.patted;
#X obj 26 246 s \$0.pattern.length;
#X obj 60 206 s \$0.pattern.ticks;
#X obj 26 138 list split 1;
#X obj 60 160 list length;
#X msg 60 183 set \$1;
#X msg 26 225 set \$1;
#X obj 26 20 inlet;
#X obj 26 43 t a a;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 5 0 8 0;
#X connect 5 1 6 0;
#X connect 6 0 7 0;
#X connect 7 0 4 0;
#X connect 8 0 3 0;
#X connect 9 0 10 0;
#X connect 10 0 5 0;
#X connect 10 1 0 0;
#X restore 296 772 pd display.pattern;
#X obj 17 197 text get \$1-patterns;
#X obj 15 57 s \$0.pats.o.0;
#X obj 103 57 s \$0.pats.o.1;
#X obj 192 56 s \$0.pats.o.2;
#X obj 15 5 r \$0.pats.i;
#X text 348 6 -- INIT ----------;
#X msg 207 140 click;
#X obj 207 163 s \$0.pats.i;
#X obj 356 350 text get \$1-patterns;
#X obj 243 654 text get \$1-patterns;
#X obj 55 477 text get \$1-patterns;
#X obj 56 596 list prepend, f 13;
#X obj 56 618 list trim;
#X obj 56 642 s \$0.pats.i;
#X msg 382 378 set \$1 -1;
#X msg 127 573 set \$1 -1;
#X obj 268 405 list prepend;
#X obj 268 428 list trim;
#X obj 268 451 s \$0.pats.i;
#X obj 15 30 netpd_text \$1 patterns, f 30;
#X obj 350 192 text set \$1-patterns;
#X obj 350 51 t b b;
#X msg 439 119 1e+15;
#X msg 350 170 symbol pattern\$1;
#X obj 350 25 r \$0.loadbang.0;
#X obj 22 432 t a a, f 6;
#X obj 373 571 r \$0.pats.o.2;
#X obj 373 635 route set;
#X obj 373 659 route -1;
#X obj 373 681 list split 2;
#X obj 437 598 r \$1.NETPD;
#X obj 437 621 route remote_origin;
#X obj 373 600 spigot 0;
#N canvas 45 143 711 367 update.pattern.names 0;
#X obj 9 95 s \$0.patsel;
#X obj 9 26 r \$0.pats.o.2;
#X obj 9 49 route set;
#X msg 9 72 \$1 setlabel \$3;
#X text 7 2 -- update pattern name ---;
#X obj 235 32 r \$0.pats.o.2;
#X obj 235 55 route fromlist;
#X text 215 2 -- refresh all names after dump ---;
#X msg 235 105 8;
#X obj 235 152 f;
#X obj 297 161 + 1;
#X obj 235 128 until;
#X obj 235 79 t b b;
#X msg 286 119 0;
#X obj 254 198 text get \$1-patterns;
#X obj 235 175 t a a a;
#X obj 254 220 list split 1;
#X obj 235 321 s \$0.patsel;
#X obj 235 245 list append;
#X msg 235 298 \$1 setlabel \$2;
#X obj 406 153 r \$0.patsel;
#X obj 406 176 route select;
#X obj 397 241 route -1;
#X obj 235 268 t a a;
#X msg 397 288 set \$1;
#X obj 397 310 s \$0.pattern.name.r;
#X obj 397 264 symbol;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 3 0 0 0;
#X connect 5 0 6 0;
#X connect 6 0 12 0;
#X connect 8 0 11 0;
#X connect 9 0 15 0;
#X connect 10 0 9 1;
#X connect 11 0 9 0;
#X connect 12 0 8 0;
#X connect 12 1 13 0;
#X connect 13 0 9 1;
#X connect 14 0 16 0;
#X connect 15 0 18 0;
#X connect 15 1 14 0;
#X connect 15 2 10 0;
#X connect 16 0 18 1;
#X connect 18 0 23 0;
#X connect 19 0 17 0;
#X connect 20 0 21 0;
#X connect 21 0 22 1;
#X connect 22 0 26 0;
#X connect 23 0 19 0;
#X connect 23 1 22 0;
#X connect 24 0 25 0;
#X connect 26 0 24 0;
#X restore 20 701 pd update.pattern.names;
#X msg 373 714 set \$2;
#X obj 373 737 s \$0.pattern.name.r;
#X obj 255 561 r \$0.pats.o.2;
#X obj 255 584 route fromlist;
#X obj 243 630 f;
#X obj 255 607 b;
#X connect 0 0 4 0;
#X connect 1 0 2 0;
#X connect 2 0 66 0;
#X connect 2 1 3 0;
#X connect 3 0 1 1;
#X connect 4 0 1 0;
#X connect 5 0 6 0;
#X connect 6 0 7 0;
#X connect 7 0 43 0;
#X connect 7 1 8 0;
#X connect 8 0 43 2;
#X connect 10 0 9 0;
#X connect 11 0 14 0;
#X connect 12 0 13 0;
#X connect 13 0 14 1;
#X connect 14 0 68 0;
#X connect 15 0 53 0;
#X connect 16 0 17 0;
#X connect 17 0 18 0;
#X connect 17 1 58 0;
#X connect 18 1 54 0;
#X connect 19 1 16 1;
#X connect 20 0 37 0;
#X connect 21 0 22 0;
#X connect 22 0 36 0;
#X connect 23 0 51 2;
#X connect 24 0 59 0;
#X connect 25 0 33 0;
#X connect 25 1 33 0;
#X connect 30 0 31 0;
#X connect 31 0 71 1;
#X connect 31 0 81 0;
#X connect 32 1 38 0;
#X connect 33 0 24 0;
#X connect 33 1 34 0;
#X connect 34 0 51 0;
#X connect 35 0 51 1;
#X connect 36 0 34 0;
#X connect 36 1 57 0;
#X connect 36 2 35 0;
#X connect 36 3 23 0;
#X connect 37 0 25 0;
#X connect 38 0 39 0;
#X connect 38 1 42 0;
#X connect 38 2 40 0;
#X connect 39 0 41 0;
#X connect 40 0 41 0;
#X connect 41 0 37 1;
#X connect 43 0 10 0;
#X connect 47 0 62 0;
#X connect 49 0 50 0;
#X connect 51 0 24 1;
#X connect 52 0 32 0;
#X connect 53 0 19 0;
#X connect 54 0 55 0;
#X connect 55 0 56 0;
#X connect 57 0 59 1;
#X connect 58 0 54 1;
#X connect 59 0 60 0;
#X connect 60 0 61 0;
#X connect 62 0 44 0;
#X connect 62 1 45 0;
#X connect 62 2 46 0;
#X connect 64 0 0 0;
#X connect 64 1 65 0;
#X connect 65 0 63 1;
#X connect 66 0 63 0;
#X connect 67 0 64 0;
#X connect 68 0 16 0;
#X connect 68 1 15 0;
#X connect 69 0 75 0;
#X connect 70 0 71 0;
#X connect 71 0 72 0;
#X connect 72 0 77 0;
#X connect 72 1 38 0;
#X connect 73 0 74 0;
#X connect 74 0 75 1;
#X connect 75 0 70 0;
#X connect 77 0 78 0;
#X connect 79 0 80 0;
#X connect 80 0 82 0;
#X connect 81 0 52 0;
#X connect 82 0 81 0;
#X restore 180 74 pd pattern.store;
#N canvas 0 0 261 500 create.regular.grid 0;
#X obj 10 150 t a a a, f 22;
#X obj 139 174 /;
#X msg 74 174 \$2;
#X msg 119 222 0;
#X obj 74 222 until;
#X obj 74 247 f;
#X obj 74 271 t a a;
#X obj 114 252 + 1;
#X obj 74 297 *, f 11;
#X obj 49 374 list store;
#X msg 74 322 append \$1;
#X obj 10 331 t a b b;
#X obj 10 400 list append;
#X msg 10 177 \$1;
#X obj 74 197 t a b, f 8;
#X obj 10 423 list prepend set;
#X obj 10 446 list trim;
#X obj 10 469 s \$0.patted;
#X obj 10 6 r \$0.pattern.length;
#X obj 137 10 r \$0.pattern.ticks;
#X obj 137 57 t b a;
#X obj 10 112 pack 4 4;
#X obj 10 86 f;
#X obj 137 32 route float set;
#X obj 10 32 route float set;
#X connect 0 0 13 0;
#X connect 0 1 2 0;
#X connect 0 2 1 0;
#X connect 1 0 8 1;
#X connect 2 0 14 0;
#X connect 3 0 5 1;
#X connect 4 0 5 0;
#X connect 5 0 6 0;
#X connect 6 0 8 0;
#X connect 6 1 7 0;
#X connect 7 0 5 1;
#X connect 8 0 10 0;
#X connect 9 0 12 1;
#X connect 10 0 9 0;
#X connect 11 0 12 0;
#X connect 11 1 9 1;
#X connect 11 2 9 0;
#X connect 12 0 15 0;
#X connect 13 0 11 0;
#X connect 14 0 4 0;
#X connect 14 1 3 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X connect 18 0 24 0;
#X connect 19 0 23 0;
#X connect 20 0 22 0;
#X connect 20 1 21 1;
#X connect 21 0 0 0;
#X connect 22 0 21 0;
#X connect 23 0 20 0;
#X connect 23 1 21 1;
#X connect 24 0 22 0;
#X connect 24 1 22 1;
#X restore 180 104 pd create.regular.grid;
#N canvas 1386 40 660 150 \$1-untik-pattern-editor 0;
#X obj 8 63 cnv 18 641 46 empty empty empty 20 12 0 10 #8080a0 #404040 0;
#X obj 46 66 untik-pattern-editor \$0.patted;
#X obj 12 66 cnv 18 30 40 empty empty empty 20 12 0 10 #303050 #404040 0;
#X obj 11 66 nbx 2 20 1 99 0 0 \$0.pattern.length \$0.pattern.length empty 0 -9 0 10 #303050 #66dd00 #ffffff 0 256;
#X obj 11 86 nbx 2 20 1 99 0 0 \$0.pattern.ticks \$0.pattern.ticks empty 0 -9 0 10 #303050 #66dd00 #ffffff 0 256;
#X obj 8 32 cnv 18 641 30 empty empty empty 20 12 0 10 #606080 #404040 0;
#X obj 11 35 untik-pattern-selector \$0 0;
#X obj 91 35 untik-pattern-selector \$0 1;
#X obj 171 35 untik-pattern-selector \$0 2;
#X obj 251 35 untik-pattern-selector \$0 3;
#X obj 331 35 untik-pattern-selector \$0 4;
#X obj 411 35 untik-pattern-selector \$0 5;
#X obj 491 35 untik-pattern-selector \$0 6;
#X obj 571 35 untik-pattern-selector \$0 7;
#X obj 8 110 cnv 18 641 30 empty empty empty 4 14 0 16 #606080 #c0c0e0 0;
#X obj 184 113 cnv 18 82 23 empty empty empty 20 12 0 10 #b0b0d0 #404040 0;
#X symbolatom 184 113 9 0 0 0 - \$0.pattern.name.r \$0.pattern.name.s 16;
#X obj 8 7 cnv 18 641 24 empty empty untik\ pattern\ editor 4 12 0 20 #404060 #8080a0 0;
#N canvas 45 143 480 288 \$0.pattern.enable 0;
#X obj 23 20 hsl 95 21 0 127 0 0 \$0.pat.en.click empty empty -2 -10 0 12 #fcfcfc #000000 #000000 0 1;
#X obj 20 20 cnv 20 100 21 empty \$0.pat.en.label inactive 4 11 0 14 #8080a0 #bcbcdc 0;
#X obj 81 88 sel 0;
#X obj 121 89 t a;
#X obj 81 65 r \$0.pat.en.click;
#X obj 264 225 s \$0.pat.en.label;
#X msg 335 163 label \$1;
#X obj 335 135 symbol;
#X obj 81 111 == 0;
#X obj 233 61 sel 0 1, f 16;
#X msg 233 137 #bcbcdc;
#X msg 233 189 color #8080a0 0 \$1;
#X obj 233 165 symbol;
#X msg 335 108 inactive;
#X msg 396 107 active;
#X obj 114 165 route set;
#X obj 24 137 t a a;
#X obj 51 160 t a a;
#X msg 24 189 enable \$1;
#X obj 24 212 s \$0.pat.en;
#X obj 114 142 r \$0.pat.en;
#X msg 279 108 #ccffcc;
#X connect 2 0 8 0;
#X connect 2 1 3 0;
#X connect 3 0 2 1;
#X connect 4 0 2 0;
#X connect 6 0 5 0;
#X connect 7 0 6 0;
#X connect 8 0 16 0;
#X connect 9 0 13 0;
#X connect 9 0 10 0;
#X connect 9 1 14 0;
#X connect 9 1 21 0;
#X connect 10 0 12 0;
#X connect 11 0 5 0;
#X connect 12 0 11 0;
#X connect 13 0 7 0;
#X connect 14 0 7 0;
#X connect 15 0 17 0;
#X connect 16 0 18 0;
#X connect 16 1 17 0;
#X connect 17 0 8 1;
#X connect 17 1 9 0;
#X connect 18 0 19 0;
#X connect 20 0 15 0;
#X connect 21 0 12 0;
#X coords 0 -1 1 1 100 21 2 20 20;
#X restore 12 114 pd \$0.pattern.enable;
#X obj 268 110 cnv 18 60 30 empty empty empty 4 14 0 16 #606080 #c0c0e0 0;
#X obj 124 110 cnv 18 60 30 empty empty name: 4 14 0 16 #606080 #c0c0e0 0;
#X restore 370 44 pd \$1-untik-pattern-editor;
#N canvas 382 54 325 612 active.state 0;
#X msg 15 489 set \$1;
#X obj 19 56 route enable;
#X obj 19 33 r \$0.pat.en;
#X obj 15 514 s \$0.pat.en;
#X obj 15 274 route select;
#X obj 15 251 r \$0.patsel;
#X obj 15 420 list length;
#X obj 15 443 > 1;
#X text 5 234 -- reflect state in "active" button --;
#X obj 91 496 sel 0;
#X obj 15 466 t a a;
#X msg 91 519 set 0;
#X obj 101 541 s \$0.pattern.ticks;
#X obj 91 561 s \$0.pattern.length;
#X obj 46 169 s \$0.pattern.ticks;
#X obj 19 190 s \$0.pattern.length;
#X text 18 12 -- create regular grid ---;
#X obj 19 124 t a a;
#X msg 46 146 set \$1;
#X obj 19 78 sel 1 0;
#X obj 195 174 s \$0.patted;
#X msg 195 151 set;
#X obj 15 397 text get \$1-patterns;
#X obj 19 100 f 5, f 4;
#X obj 116 260 r \$0.pats.o.2;
#X obj 116 306 b;
#X obj 15 360 f;
#X obj 116 283 route fromlist set;
#X obj 168 328 route -1;
#X obj 15 298 t a a;
#X obj 168 366 list length;
#X obj 168 389 > 2;
#X obj 55 101 netpd_r \$1 ticksperbeat;
#X connect 0 0 3 0;
#X connect 1 0 19 0;
#X connect 2 0 1 0;
#X connect 4 0 29 0;
#X connect 5 0 4 0;
#X connect 6 0 7 0;
#X connect 7 0 10 0;
#X connect 9 0 11 0;
#X connect 10 0 0 0;
#X connect 10 1 9 0;
#X connect 11 0 12 0;
#X connect 11 0 13 0;
#X connect 17 0 15 0;
#X connect 17 1 18 0;
#X connect 18 0 14 0;
#X connect 19 0 23 0;
#X connect 19 1 21 0;
#X connect 21 0 20 0;
#X connect 22 0 6 0;
#X connect 23 0 17 0;
#X connect 24 0 27 0;
#X connect 25 0 26 0;
#X connect 26 0 22 0;
#X connect 27 0 25 0;
#X connect 27 1 28 0;
#X connect 28 0 30 0;
#X connect 29 0 26 0;
#X connect 29 1 28 1;
#X connect 30 0 31 0;
#X connect 31 0 10 0;
#X connect 32 0 23 1;
#X restore 180 134 pd active.state;
#X obj 10 137 t b b b;
#X obj 49 161 s \$0.loadbang.0;
#X msg 10 182 select 0;
#X obj 10 205 s \$0.patsel;
#N canvas 1383 43 731 802 main.clock 0;
#X obj 22 112 metro 1 120 permin;
#X obj 22 135 f;
#X obj 22 219 t a a;
#X obj 96 149 + 1, f 4;
#X msg 22 74 tempo \$1 \$2;
#X obj 22 23 r \$0.untik;
#X obj 22 307 s \$0.untik;
#X obj 22 46 route tempo run set;
#X msg 248 252 tempo \$1 permin;
#X obj 234 300 t a;
#X msg 234 104 run \$1;
#X obj 234 330 s \$0.untik;
#X obj 248 226 *, f 5;
#X obj 248 176 t b a;
#X obj 26 398 r \$0.untik;
#X obj 151 515 mod;
#X obj 166 470 netpd_r \$1 ticksperbeat;
#X obj 151 537 change -1;
#X obj 324 468 netpd_r \$1 ticksperbeat;
#X obj 316 572 change -1;
#X obj 316 515 div;
#X obj 324 491 t b a;
#X obj 343 547 t b a;
#X obj 343 524 netpd_r \$1 beatsperbar;
#X obj 316 546 mod;
#X obj 166 492 t b a;
#X obj 481 618 change -1;
#X obj 481 595 div;
#X obj 489 571 t b a;
#X obj 489 475 netpd_r \$1 beatsperbar;
#X obj 497 497 netpd_r \$1 ticksperbeat;
#X obj 489 547 *;
#X obj 497 522 t b a;
#X msg 481 667 bar \$1;
#X msg 316 616 beat \$1;
#X msg 151 580 tick \$1;
#X obj 481 643 + 1;
#X obj 316 594 + 1;
#X obj 151 559 + 1;
#X obj 20 725 list trim;
#X text 25 374 -- create bar \, beat \, tick from pos ------------------------;
#X text 20 -1 -- MAIN METRO -----------;
#X text 230 5 -- netpd-ize main controls ---------;
#X obj 486 199 r \$0.untik;
#X obj 234 79 t a a, f 34;
#X obj 435 104 sel 1;
#X obj 438 173 f;
#X obj 438 196 sel 1;
#X obj 438 219 f;
#X msg 438 266 set \$1;
#X obj 20 702 list prepend clock main;
#X obj 20 748 s \$0.untik;
#X obj 26 420 route pos set;
#N canvas 1439 344 450 300 precise.start 0;
#X obj 37 37 inlet;
#X obj 37 254 outlet;
#X obj 37 60 sel 0 1;
#X obj 156 18 netpd_r \$1 pos;
#X obj 156 39 wrap;
#X msg 37 133 0;
#X msg 156 62 1 \$1;
#X obj 156 85 -;
#X obj 107 131 f;
#X msg 107 207 1;
#X obj 107 180 delay;
#X msg 66 133 stop;
#X msg 240 139 tempo \$1 \$2;
#X obj 240 88 r \$0.untik;
#X obj 240 111 route tempo;
#X obj 156 108 route 1;
#X msg 156 131 0;
#X connect 0 0 2 0;
#X connect 2 0 5 0;
#X connect 2 0 11 0;
#X connect 2 1 8 0;
#X connect 3 0 4 0;
#X connect 4 0 6 0;
#X connect 5 0 1 0;
#X connect 6 0 7 0;
#X connect 7 0 15 0;
#X connect 8 0 10 0;
#X connect 9 0 1 0;
#X connect 10 0 9 0;
#X connect 11 0 10 0;
#X connect 12 0 10 0;
#X connect 13 0 14 0;
#X connect 14 0 12 0;
#X connect 15 0 16 0;
#X connect 15 1 8 1;
#X connect 16 0 8 1;
#X restore 234 49 pd precise.start;
#X obj 234 26 netpd_f \$1 run 0;
#N canvas 1157 281 731 335 sync.pos.logic 0;
#X obj 9 102 timer;
#X obj 9 11 r \$0.untik;
#X obj 9 58 b;
#X obj 71 86 netpd-dump \$1;
#X obj 24 158 r \$0.untik;
#X obj 24 180 route pos;
#X obj 9 210 +;
#X obj 9 253 netpd_s \$1 pos;
#X obj 235 26 netpd_r \$1 pos;
#X msg 235 75 set \$1;
#X obj 235 98 s \$0.untik;
#X obj 99 111 netpd_r \$1 run;
#X obj 71 111 f;
#X obj 71 134 sel 1 0;
#X obj 9 33 route pos tempo;
#X msg 52 57 tempo \$1 \$2;
#X text 133 150 Send exact position while running;
#X text 112 167 Send last complete step while not running;
#X obj 235 50 int;
#X obj 406 53 r \$1-run;
#X obj 406 99 sel 1;
#X obj 406 200 f;
#X obj 406 237 netpd_s \$1 pos;
#X obj 421 148 r \$0.untik;
#X obj 421 171 route pos;
#X obj 406 76 route float;
#X text 395 27 send current pos before start;
#X obj 520 96 r \$0.untik;
#X obj 520 119 route restart.active;
#X obj 406 122 t b b, f 17;
#X obj 505 147 f;
#X obj 505 171 sel 1;
#X obj 505 238 netpd_s \$1 restart/now;
#X obj 505 194 1;
#X text 525 69 send restart signal;
#X obj 90 222 f -1;
#X text 126 221 <- so that we start at 0;
#X connect 0 0 6 0;
#X connect 1 0 14 0;
#X connect 2 0 0 0;
#X connect 3 0 12 0;
#X connect 4 0 5 0;
#X connect 5 0 6 1;
#X connect 5 0 35 1;
#X connect 6 0 7 0;
#X connect 8 0 18 0;
#X connect 9 0 10 0;
#X connect 11 0 12 1;
#X connect 12 0 13 0;
#X connect 13 0 0 1;
#X connect 13 1 35 0;
#X connect 14 0 2 0;
#X connect 14 1 15 0;
#X connect 15 0 0 0;
#X connect 18 0 9 0;
#X connect 19 0 25 0;
#X connect 20 0 29 0;
#X connect 21 0 22 0;
#X connect 23 0 24 0;
#X connect 24 0 21 1;
#X connect 25 0 20 0;
#X connect 27 0 28 0;
#X connect 28 0 30 1;
#X connect 29 0 21 0;
#X connect 29 1 30 0;
#X connect 30 0 31 0;
#X connect 31 0 33 0;
#X connect 33 0 32 0;
#X connect 35 0 7 0;
#X restore 537 51 pd sync.pos.logic;
#X obj 257 200 netpd_f \$1 bpm 120;
#X obj 248 153 netpd_f \$1 ticksperbeat 4;
#X obj 390 295 netpd_f \$1 beatsperbar 4;
#X obj 486 222 route restart.pos;
#X obj 476 174 netpd_r \$1 restart/now;
#X msg 477 152 0;
#X obj 435 127 t b b;
#X obj 26 445 t a a;
#X obj 151 423 t a a a, f 54;
#X obj 151 402 max 0;
#X obj 234 127 t a a;
#X obj 248 275 t a a;
#N canvas 1305 490 735 350 loop 0;
#X obj 42 26 inlet;
#X obj 42 295 outlet;
#X obj 123 23 r \$0.untik;
#X obj 123 47 route loop.active loop.length restart.pos;
#X obj 154 205 mod 4;
#X obj 154 180 - 0;
#X obj 154 235 + 0;
#X obj 42 100 list prepend 0;
#X obj 42 123 route 0 1, f 38;
#X connect 0 0 7 0;
#X connect 2 0 3 0;
#X connect 3 0 7 1;
#X connect 3 1 4 1;
#X connect 3 2 5 1;
#X connect 3 2 6 1;
#X connect 4 0 6 0;
#X connect 5 0 4 0;
#X connect 6 0 1 0;
#X connect 7 0 8 0;
#X connect 8 0 1 0;
#X connect 8 1 5 0;
#X restore 22 193 pd loop;
#X obj 438 241 - 1;
#X obj 22 167 mod 25200;
#N canvas 0 40 450 446 request.response 0;
#X obj 16 14 inlet;
#X obj 16 368 list trim;
#X obj 16 407 s \$0.untik;
#X obj 16 342 list prepend clock main;
#X obj 87 232 f;
#X msg 87 255 run \$1;
#X obj 158 68 list;
#X obj 158 199 t b a;
#X obj 158 244 list append;
#X obj 158 267 list prepend tempo;
#X obj 158 290 list trim;
#X obj 278 60 route main;
#X obj 278 14 r \$0.untik;
#X obj 314 132 b;
#X obj 351 130 b;
#X obj 278 37 route get;
#X obj 16 37 route pos run tempo, f 36;
#X obj 16 224 f;
#X obj 278 85 route pos run tempo;
#X obj 278 128 b;
#X obj 16 135 change -1;
#X msg 16 282 pos \$1 \, ttt 1;
#X connect 0 0 16 0;
#X connect 1 0 2 0;
#X connect 3 0 1 0;
#X connect 4 0 5 0;
#X connect 5 0 3 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 1 8 1;
#X connect 8 0 9 0;
#X connect 9 0 10 0;
#X connect 10 0 3 0;
#X connect 11 0 18 0;
#X connect 12 0 15 0;
#X connect 13 0 4 0;
#X connect 14 0 8 0;
#X connect 15 0 11 0;
#X connect 16 0 20 0;
#X connect 16 1 4 0;
#X connect 16 2 6 0;
#X connect 17 0 21 0;
#X connect 18 0 19 0;
#X connect 18 1 13 0;
#X connect 18 2 14 0;
#X connect 19 0 17 0;
#X connect 20 0 17 0;
#X connect 21 0 3 0;
#X restore 335 325 pd request.response;
#X obj 22 279 t a a;
#X msg 22 250 pos \$1;
#X connect 0 0 1 0;
#X connect 1 0 70 0;
#X connect 2 0 73 0;
#X connect 2 1 3 0;
#X connect 3 0 1 1;
#X connect 4 0 0 0;
#X connect 5 0 7 0;
#X connect 7 0 4 0;
#X connect 7 1 0 0;
#X connect 7 2 3 0;
#X connect 8 0 67 0;
#X connect 9 0 11 0;
#X connect 10 0 66 0;
#X connect 12 0 8 0;
#X connect 13 0 12 0;
#X connect 13 1 12 1;
#X connect 14 0 52 0;
#X connect 15 0 17 0;
#X connect 16 0 25 0;
#X connect 17 0 38 0;
#X connect 18 0 21 0;
#X connect 19 0 37 0;
#X connect 20 0 24 0;
#X connect 21 0 20 0;
#X connect 21 1 20 1;
#X connect 22 0 24 0;
#X connect 22 1 24 1;
#X connect 23 0 22 0;
#X connect 24 0 19 0;
#X connect 25 0 15 0;
#X connect 25 1 15 1;
#X connect 26 0 36 0;
#X connect 27 0 26 0;
#X connect 28 0 27 0;
#X connect 28 1 27 1;
#X connect 29 0 31 0;
#X connect 30 0 32 0;
#X connect 31 0 28 0;
#X connect 32 0 31 0;
#X connect 32 1 31 1;
#X connect 33 0 50 0;
#X connect 34 0 50 0;
#X connect 35 0 50 0;
#X connect 36 0 33 0;
#X connect 37 0 34 0;
#X connect 38 0 35 0;
#X connect 39 0 51 0;
#X connect 43 0 59 0;
#X connect 44 0 10 0;
#X connect 44 1 45 0;
#X connect 45 0 62 0;
#X connect 46 0 47 0;
#X connect 47 0 48 0;
#X connect 48 0 69 0;
#X connect 49 0 9 0;
#X connect 50 0 39 0;
#X connect 52 0 63 0;
#X connect 52 1 63 0;
#X connect 53 0 44 0;
#X connect 54 0 53 0;
#X connect 56 0 12 0;
#X connect 57 0 13 0;
#X connect 59 0 48 1;
#X connect 60 0 46 1;
#X connect 61 0 46 1;
#X connect 62 0 61 0;
#X connect 62 1 46 0;
#X connect 63 1 65 0;
#X connect 64 0 15 0;
#X connect 64 1 20 0;
#X connect 64 2 27 0;
#X connect 65 0 64 0;
#X connect 66 0 9 0;
#X connect 66 1 71 0;
#X connect 67 0 9 0;
#X connect 67 1 71 0;
#X connect 68 0 2 0;
#X connect 69 0 49 0;
#X connect 70 0 68 0;
#X connect 72 0 6 0;
#X connect 72 1 71 0;
#X connect 73 0 72 0;
#X restore 180 14 pd main.clock;
#N canvas 868 550 450 300 gui.stuff 0;
#N canvas 745 328 374 491 pos.display 0;
#X obj 61 178 s \$0.step.display;
#X obj 11 124 makefilename %05d;
#X msg 61 156 label \$1;
#X obj 56 214 r \$0.step.display.click;
#X obj 83 239 t a;
#X obj 56 260 == 0;
#X obj 92 260 t a;
#X obj 56 238 sel;
#X msg 56 341 symbol #AAAAAA;
#X obj 11 316 t b b, f 8;
#X obj 11 339 del 40;
#X msg 11 362 symbol #404060;
#X obj 11 413 t a a;
#X obj 11 294 spigot 0;
#X obj 48 446 s \$0.step.display;
#X obj 11 147 t a a;
#X obj 11 467 s \$0.step.label;
#X obj 11 74 route main;
#X obj 11 97 route pos;
#X msg 11 390 color \$1 0 #ccffcc;
#X obj 11 31 route clock;
#X obj 11 11 r \$0.untik;
#X connect 1 0 15 0;
#X connect 2 0 0 0;
#X connect 3 0 7 0;
#X connect 4 0 7 1;
#X connect 5 0 6 0;
#X connect 5 0 13 1;
#X connect 6 0 5 1;
#X connect 7 0 5 0;
#X connect 7 1 4 0;
#X connect 8 0 19 0;
#X connect 9 0 10 0;
#X connect 9 1 8 0;
#X connect 10 0 11 0;
#X connect 11 0 19 0;
#X connect 12 0 16 0;
#X connect 12 1 14 0;
#X connect 13 0 9 0;
#X connect 15 0 13 0;
#X connect 15 1 2 0;
#X connect 17 0 18 0;
#X connect 18 0 1 0;
#X connect 19 0 12 0;
#X connect 20 0 17 0;
#X connect 21 0 20 0;
#X restore 12 11 pd pos.display;
#N canvas 1015 253 328 465 bar.display 0;
#X msg 64 151 label \$1;
#X obj 58 391 s \$0.bar.display;
#X obj 64 127 makefilename %04d;
#X obj 24 126 t a a;
#X msg 69 297 symbol #AAAAAA;
#X obj 24 272 t b b, f 8;
#X obj 24 295 del 40;
#X msg 24 318 symbol #404060;
#X obj 24 365 t a a;
#X obj 24 415 s \$0.bar.label;
#X obj 24 240 spigot 0;
#X obj 99 180 r \$0.bar.display.click;
#X obj 126 203 t a;
#X obj 99 226 == 0;
#X obj 135 226 t a;
#X obj 99 203 sel;
#X obj 24 69 route main;
#X obj 24 92 route bar;
#X msg 24 345 color \$1 0 #ccffcc;
#X obj 24 38 route clock;
#X obj 24 18 r \$0.untik;
#X connect 0 0 1 0;
#X connect 2 0 0 0;
#X connect 3 0 10 0;
#X connect 3 1 2 0;
#X connect 4 0 18 0;
#X connect 5 0 6 0;
#X connect 5 1 4 0;
#X connect 6 0 7 0;
#X connect 7 0 18 0;
#X connect 8 0 9 0;
#X connect 8 1 1 0;
#X connect 10 0 5 0;
#X connect 11 0 15 0;
#X connect 12 0 15 1;
#X connect 13 0 14 0;
#X connect 13 0 10 1;
#X connect 14 0 13 1;
#X connect 15 0 13 0;
#X connect 15 1 12 0;
#X connect 16 0 17 0;
#X connect 17 0 3 0;
#X connect 18 0 8 0;
#X connect 19 0 16 0;
#X connect 20 0 19 0;
#X restore 12 41 pd bar.display;
#N canvas 827 368 512 493 beat.display 0;
#X msg 72 175 label \$1;
#X obj 72 151 makefilename %02d;
#X obj 58 430 s \$0.beatbar.display;
#X obj 25 140 t a a;
#X msg 70 319 symbol #AAAAAA;
#X obj 25 294 t b b, f 8;
#X obj 25 317 del 40;
#X msg 25 340 symbol #404060;
#X obj 25 399 t a a;
#X obj 25 450 s \$0.beatbar.label;
#X obj 85 201 r \$0.beatbar.display.click;
#X obj 113 225 t a;
#X obj 85 246 == 0;
#X obj 121 246 t a;
#X obj 85 225 sel;
#X obj 25 270 spigot;
#X obj 25 90 route main;
#X obj 25 113 route beat;
#X msg 25 367 color \$1 0 #ccffcc;
#X obj 25 54 route clock;
#X obj 25 34 r \$0.untik;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 3 0 15 0;
#X connect 3 1 1 0;
#X connect 4 0 18 0;
#X connect 5 0 6 0;
#X connect 5 1 4 0;
#X connect 6 0 7 0;
#X connect 7 0 18 0;
#X connect 8 0 9 0;
#X connect 8 1 2 0;
#X connect 10 0 14 0;
#X connect 11 0 14 1;
#X connect 12 0 13 0;
#X connect 12 0 15 1;
#X connect 13 0 12 1;
#X connect 14 0 12 0;
#X connect 14 1 11 0;
#X connect 15 0 5 0;
#X connect 16 0 17 0;
#X connect 17 0 3 0;
#X connect 18 0 8 0;
#X connect 19 0 16 0;
#X connect 20 0 19 0;
#X restore 12 71 pd beat.display;
#N canvas 996 557 363 490 tick.display 0;
#X msg 86 173 label \$1;
#X obj 65 345 s \$0.stepbeat.display;
#X obj 86 149 makefilename %02d;
#X obj 28 145 t a a;
#X msg 73 240 symbol #AAAAAA;