-
Notifications
You must be signed in to change notification settings - Fork 0
/
vsl.seq-help.examples.pd
863 lines (863 loc) · 22.1 KB
/
vsl.seq-help.examples.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
#N canvas 1234 198 346 261 12;
#N canvas 484 94 938 820 transition_values 0;
#X obj 658 91 vsl.seq 3 -color 920 -height 4 -receiver \$0-tick;
#A saved 0 0 0;
#X obj 658 188 vsl.seq 4 -color 920 -height 4 -receiver \$0-tick;
#A saved 0 0 0 0;
#X obj 658 285 vsl.seq 5 -color 920 -height 4 -receiver \$0-tick;
#A saved 0 0 0 0 0;
#X obj 658 382 vsl.seq 6 -color 920 -height 4 -receiver \$0-tick;
#A saved 0 0 0 0 0 0;
#X obj 658 479 vsl.seq 7 -color 920 -height 4 -receiver \$0-tick;
#A saved 0 0 0 0 0 0 0;
#X obj 816 99 f;
#X obj 846 99 + 1;
#X obj 816 34 tgl 31 0 empty empty play 34 15 0 10 #c4fcc4 #000000
#000000 0 1;
#X obj 145 107 sel 0;
#X obj 145 151 f;
#X obj 175 151 + 1;
#X obj 575 683 unpack;
#X obj 614 706 t f b;
#X obj 703 731 / 10;
#X obj 574 34 r set_velocities;
#X obj 219 374 until;
#X obj 219 399 random 11;
#X obj 219 423 / 10;
#X obj 219 515 list store;
#X obj 219 539 s set_velocities;
#X obj 219 447 *;
#X msg 219 481 prepend \$1;
#X obj 163 401 f;
#X obj 182 288 t b b b f b;
#X obj 574 58 route 7 6 5 4 3;
#X obj 144 237 + 3;
#X obj 219 349 f;
#X obj 703 685 random 17;
#X obj 182 213 vsl.seq 13;
#A saved 0.0697674 0.651163 0.744186 0.232558 0.55814 0.767442 0.953488
1 0.930233 0.0697674 0 0.0232558 0.55814;
#X obj 144 213 % 5;
#X obj 370 389 line;
#X obj 370 287 route val dur;
#X obj 356 320 t f f;
#X obj 370 353 *;
#X msg 190 697 0 2 4 5 7 9 11 12;
#X obj 190 673 loadbang;
#X obj 575 202 pack;
#X obj 575 156 t b f;
#X msg 301 481 8000;
#X obj 145 131 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 575 299 pack;
#X obj 575 253 t b f;
#X obj 575 396 pack;
#X obj 575 350 t b f;
#X obj 575 493 pack;
#X obj 575 447 t b f;
#X obj 575 590 pack;
#X obj 575 544 t b f;
#X obj 145 175 t f f;
#X obj 158 764 v;
#X obj 144 588 t b f;
#X obj 370 415 vsl 15 128 0 1 0 0 empty empty empty 0 -9 0 10 #fcfcfc
#000000 #000000 0 1;
#X obj 575 750 pack f f 90 6 0;
#X obj 575 706 + 32;
#X obj 88 679 random 15;
#X text 217 28 sequencer steps;
#X obj 703 709 - 8;
#X text 411 316 transition to next \; sequencer value;
#X text 26 212 cycle through \; sequencer \; length/routes;
#X text 29 613 set random note \; from scale for \; selected \; sequencer
;
#X text 206 561 set random velocities \; for each step of \; selected
sequencer;
#X text 741 722 random pan \; for each note;
#X obj 145 83 % 24;
#N canvas 26 26 821 595 int_to_scale 0;
#X text 38 273 wrap values to available range;
#X obj 36 229 %;
#X obj 36 252 expr if($f1 < 0 \, $f1+$f2 \, $f1);
#X obj 36 31 inlet;
#X obj 318 31 inlet;
#X obj 251 556 outlet;
#X obj 251 412 list store;
#X msg 251 387 get \$1 1;
#X obj 384 145 list length;
#X obj 384 168 - 1;
#X obj 251 530 +;
#X msg 430 248 get \$1 1;
#X obj 430 271 list store;
#X obj 389 411 *;
#X obj 389 248 /;
#X obj 36 54 t f f;
#X obj 384 191 t f f f;
#X text 543 213 bang first to clear list \; before adding new scale
;
#X text 67 405 bang first to clear list \; before adding new scale
;
#X text 360 30 scale input | last note should be "octave";
#X obj 497 220 t l b;
#X obj 318 361 t l b;
#X obj 318 54 t l l l;
#X obj 211 210 t f f;
#X obj 389 327 expr if($f1 < 0 \, int($f1-0.9999) \, int($f1));
#X text 697 328 FIXME: ugly;
#X connect 1 0 2 0;
#X connect 2 0 7 0;
#X connect 3 0 15 0;
#X connect 4 0 22 0;
#X connect 6 0 10 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 16 0;
#X connect 10 0 5 0;
#X connect 11 0 12 0;
#X connect 12 0 13 1;
#X connect 13 0 10 1;
#X connect 14 0 24 0;
#X connect 15 0 1 0;
#X connect 15 1 14 0;
#X connect 16 0 23 0;
#X connect 16 1 14 1;
#X connect 16 2 11 0;
#X connect 20 0 12 1;
#X connect 20 1 12 1;
#X connect 21 0 6 1;
#X connect 21 1 6 1;
#X connect 22 0 21 0;
#X connect 22 1 8 0;
#X connect 22 2 20 0;
#X connect 23 0 1 1;
#X connect 23 1 2 1;
#X connect 24 0 13 0;
#X restore 88 722 pd int_to_scale;
#X text 202 725 int_to_scale translates any given int value \; to the
corresponding note of the set scale \; the last number (here "12")
is the "octave" \; - could be any other value \, too \, though.;
#X obj 815 186 loadbang;
#X obj 176 625 pack f \$0;
#X msg 176 649 symbol \$2-note-\$1;
#X obj 575 179 v \$0-note-3;
#X obj 575 276 v \$0-note-4;
#X obj 575 373 v \$0-note-5;
#X obj 575 470 v \$0-note-6;
#X obj 575 567 v \$0-note-7;
#X msg 815 210 reset;
#X obj 145 52 route float;
#X obj 816 73 metro 117;
#X text 206 151 increase value each 24th tick;
#X obj 575 774 s \$0-instrument;
#X obj 815 234 s \$0-tick;
#X obj 145 28 r \$0-tick;
#X obj 816 123 s \$0-tick;
#X obj 370 681 s \$0-decay;
#X obj 626 728 r \$0-decay;
#X text 378 584 manipulate sustain+decay;
#X obj 370 657 + 20;
#X obj 370 633 * 180;
#X connect 0 0 37 0;
#X connect 1 0 41 0;
#X connect 2 0 43 0;
#X connect 3 0 45 0;
#X connect 4 0 47 0;
#X connect 5 0 6 0;
#X connect 5 0 80 0;
#X connect 6 0 5 1;
#X connect 7 0 75 0;
#X connect 8 0 39 0;
#X connect 9 0 10 0;
#X connect 9 0 48 0;
#X connect 10 0 9 1;
#X connect 11 0 53 0;
#X connect 11 1 12 0;
#X connect 12 0 52 1;
#X connect 12 1 27 0;
#X connect 13 0 52 4;
#X connect 14 0 24 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X connect 17 0 20 0;
#X connect 18 0 19 0;
#X connect 20 0 21 0;
#X connect 21 0 18 0;
#X connect 22 0 21 0;
#X connect 23 0 18 0;
#X connect 23 1 22 0;
#X connect 23 2 26 0;
#X connect 23 3 20 1;
#X connect 23 4 38 0;
#X connect 24 0 4 0;
#X connect 24 1 3 0;
#X connect 24 2 2 0;
#X connect 24 3 1 0;
#X connect 24 4 0 0;
#X connect 25 0 22 1;
#X connect 25 0 26 1;
#X connect 25 0 50 0;
#X connect 26 0 15 0;
#X connect 27 0 56 0;
#X connect 28 0 23 0;
#X connect 28 1 31 0;
#X connect 29 0 25 0;
#X connect 30 0 51 0;
#X connect 31 0 32 0;
#X connect 31 1 30 1;
#X connect 32 0 33 0;
#X connect 32 1 33 1;
#X connect 33 0 30 0;
#X connect 34 0 63 1;
#X connect 35 0 34 0;
#X connect 36 0 11 0;
#X connect 37 0 68 0;
#X connect 37 1 36 1;
#X connect 38 0 18 1;
#X connect 39 0 9 0;
#X connect 40 0 11 0;
#X connect 41 0 69 0;
#X connect 41 1 40 1;
#X connect 42 0 11 0;
#X connect 43 0 70 0;
#X connect 43 1 42 1;
#X connect 44 0 11 0;
#X connect 45 0 71 0;
#X connect 45 1 44 1;
#X connect 46 0 11 0;
#X connect 47 0 72 0;
#X connect 47 1 46 1;
#X connect 48 0 28 0;
#X connect 48 1 29 0;
#X connect 50 0 54 0;
#X connect 50 1 66 0;
#X connect 51 0 85 0;
#X connect 52 0 77 0;
#X connect 53 0 52 0;
#X connect 54 0 63 0;
#X connect 56 0 13 0;
#X connect 62 0 8 0;
#X connect 63 0 49 0;
#X connect 65 0 73 0;
#X connect 66 0 67 0;
#X connect 67 0 49 1;
#X connect 68 0 36 0;
#X connect 69 0 40 0;
#X connect 70 0 42 0;
#X connect 71 0 44 0;
#X connect 72 0 46 0;
#X connect 73 0 78 0;
#X connect 74 0 62 0;
#X connect 75 0 5 0;
#X connect 79 0 74 0;
#X connect 82 0 52 2;
#X connect 84 0 81 0;
#X connect 85 0 84 0;
#X restore 38 33 pd transition_values;
#N canvas 440 113 1112 806 stumble_mode 0;
#X obj 211 26 tgl 31 0 empty empty play 34 15 0 10 #c4fcc4 #000000
#000000 0 1;
#X obj 172 204 vsl.seq 8;
#A saved 1 0 1 0 1 0 1 0;
#X obj 172 596 vline~;
#X obj 168 749 dac~;
#X obj 38 616 *~;
#X obj 178 179 r \$0-rhythm;
#X obj 732 570 s \$0-rhythm;
#X obj 442 204 vsl.seq 8;
#A saved 1 0.5 0.25 0.125 0.0625 0.03125 0.015625 0.0078125;
#X obj 444 597 vline~;
#X obj 306 616 *~;
#X obj 305 561 vcf~ 80;
#X obj 169 657 rev3~ 100 92 20 100;
#X obj 844 570 s \$0-rhythm2;
#X obj 448 179 r \$0-rhythm2;
#X obj 172 83 spigot;
#X msg 732 193 1 1 1 1 1 1 1 1 3000 inout-expo;
#X msg 715 223 0.5 0.5 1 0.5 1 0.5 1 1 3000 inout;
#X msg 699 253 0.5 0.5 1 1 1 0.5 0.5 1 3000 inout;
#X msg 682 283 1 1 1 1 0 0 0 0 3000 inout;
#X msg 666 313 1 0 1 0 1 0 1 0 3000 inout;
#X msg 649 344 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 3000 inout;
#X msg 633 373 1 0.5 0.25 0.125 0.0625 0.03125 0.015625 0.0078125 3000
inout, f 62;
#X obj 442 273 vsl.seq 8 -color 983;
#A saved 1 0.790698 0.488372 0.325581 0.325581 0.465116 0.674419 0.860465
;
#X obj 172 274 vsl.seq 8 -color 983;
#A saved 1 0.116279 0.27907 1 0.395349 0.162791 0.302326 0.697674;
#N canvas 1103 486 450 447 route 0;
#X obj 54 47 inlet;
#X obj 325 47 inlet;
#X obj 54 215 route 0 1;
#X obj 54 289 outlet;
#X obj 323 289 outlet;
#X obj 54 134 f;
#X obj 54 71 t b a;
#X obj 54 158 list append;
#X connect 0 0 6 0;
#X connect 1 0 5 1;
#X connect 2 0 3 0;
#X connect 2 1 4 0;
#X connect 5 0 7 0;
#X connect 6 0 5 0;
#X connect 6 1 7 1;
#X connect 7 0 2 0;
#X restore 732 492 pd route;
#X obj 732 425 t a b;
#X obj 172 126 \$0;
#X obj 172 57 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#X msg 172 147 stumble 1200 \$1-start-cycle;
#X msg 442 147 stumble 1200;
#X obj 633 105 sel 0 1 2 3 4 5 6;
#X obj 785 465 tgl 15 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000 0 1;
#X obj 633 57 metro 6000;
#X obj 442 343 vsl.seq 8 -color 689 -grid 5;
#A saved 0 1 0 5 0 1 0 4;
#N canvas 208 208 607 588 int_to_scale 0;
#X obj 26 20 inlet;
#X obj 216 20 inlet;
#X obj 59 529 outlet;
#X obj 100 358 list store;
#X msg 26 224 get \$1 1;
#X obj 126 99 list length;
#X obj 26 203 %;
#X obj 126 124 - 1;
#X obj 100 496 +;
#X msg 241 195 get \$1 1;
#X obj 241 216 list store;
#X obj 130 226 i;
#X obj 226 404 *;
#X obj 130 206 /;
#X obj 26 45 t f f;
#X obj 126 150 t f f f;
#X text 313 203 bang first to clear list \; before adding new scale
;
#X text 179 354 bang first to clear list \; before adding new scale
;
#X text 258 20 scale input | last note should be "octave";
#X obj 298 166 t l b;
#X obj 157 321 t l b;
#X obj 216 45 t l l l;
#X connect 0 0 14 0;
#X connect 1 0 21 0;
#X connect 3 0 8 0;
#X connect 4 0 3 0;
#X connect 5 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 15 0;
#X connect 8 0 2 0;
#X connect 9 0 10 0;
#X connect 10 0 12 1;
#X connect 11 0 12 0;
#X connect 12 0 8 1;
#X connect 13 0 11 0;
#X connect 14 0 6 0;
#X connect 14 1 13 0;
#X connect 15 0 6 1;
#X connect 15 1 13 1;
#X connect 15 2 9 0;
#X connect 19 0 10 1;
#X connect 19 1 10 1;
#X connect 20 0 3 1;
#X connect 20 1 3 1;
#X connect 21 0 5 0;
#X connect 21 1 20 0;
#X connect 21 2 19 0;
#X restore 306 469 pd int_to_scale;
#X obj 408 422 loadbang;
#X obj 306 523 mtof;
#N canvas 0 50 607 588 int_to_scale 0;
#X obj 26 20 inlet;
#X obj 216 20 inlet;
#X obj 59 529 outlet;
#X obj 100 358 list store;
#X msg 26 224 get \$1 1;
#X obj 126 99 list length;
#X obj 26 203 %;
#X obj 126 124 - 1;
#X obj 100 496 +;
#X msg 241 195 get \$1 1;
#X obj 241 216 list store;
#X obj 130 226 i;
#X obj 226 404 *;
#X obj 130 206 /;
#X obj 26 45 t f f;
#X obj 126 150 t f f f;
#X text 313 203 bang first to clear list \; before adding new scale
;
#X text 179 354 bang first to clear list \; before adding new scale
;
#X text 258 20 scale input | last note should be "octave";
#X obj 298 166 t l b;
#X obj 157 321 t l b;
#X obj 216 45 t l l l;
#X connect 0 0 14 0;
#X connect 1 0 21 0;
#X connect 3 0 8 0;
#X connect 4 0 3 0;
#X connect 5 0 7 0;
#X connect 6 0 4 0;
#X connect 7 0 15 0;
#X connect 8 0 2 0;
#X connect 9 0 10 0;
#X connect 10 0 12 1;
#X connect 11 0 12 0;
#X connect 12 0 8 1;
#X connect 13 0 11 0;
#X connect 14 0 6 0;
#X connect 14 1 13 0;
#X connect 15 0 6 1;
#X connect 15 1 13 1;
#X connect 15 2 9 0;
#X connect 19 0 10 1;
#X connect 19 1 10 1;
#X connect 20 0 3 1;
#X connect 20 1 3 1;
#X connect 21 0 5 0;
#X connect 21 1 20 0;
#X connect 21 2 19 0;
#X restore 37 469 pd int_to_scale;
#X obj 139 422 loadbang;
#X obj 37 523 mtof;
#X obj 172 346 vsl.seq 8 -color 689 -grid 5;
#A saved 4 5 0 0 3 5 1 0;
#X obj 212 513 noise~;
#X text 341 221 rhythm;
#X text 334 290 velocity;
#X text 343 361 melody;
#X msg 443 572 \$1 1 \, 0 50 1;
#X obj 369 560 osc~;
#X obj 169 706 *~ 1;
#X obj 38 585 *~ 3;
#X obj 306 585 *~ 0.6;
#X msg 171 572 \$1 40 \, 0 10 40;
#X obj 37 561 vcf~ 140;
#X obj 369 584 *~ 0.15;
#X obj 37 493 + 80;
#X obj 306 493 + 68;
#X obj 40 38 r \$0-start-cycle;
#X msg 139 445 0 2 3 7 10 12;
#X msg 408 445 0 3 5 9 12;
#X obj 633 81 random 7;
#X connect 0 0 14 1;
#X connect 0 0 27 0;
#X connect 0 0 32 0;
#X connect 1 1 23 1;
#X connect 2 0 4 1;
#X connect 4 0 11 0;
#X connect 4 0 47 0;
#X connect 5 0 1 0;
#X connect 7 1 22 1;
#X connect 8 0 9 1;
#X connect 9 0 11 0;
#X connect 9 0 47 0;
#X connect 10 0 49 0;
#X connect 11 0 47 0;
#X connect 13 0 7 0;
#X connect 14 0 29 0;
#X connect 14 0 26 0;
#X connect 15 0 25 0;
#X connect 16 0 25 0;
#X connect 17 0 25 0;
#X connect 18 0 25 0;
#X connect 19 0 25 0;
#X connect 20 0 25 0;
#X connect 21 0 25 0;
#X connect 22 0 45 0;
#X connect 22 1 33 1;
#X connect 23 0 50 0;
#X connect 23 1 40 1;
#X connect 24 0 6 0;
#X connect 24 1 12 0;
#X connect 25 0 24 0;
#X connect 25 1 31 0;
#X connect 26 0 28 0;
#X connect 27 0 14 0;
#X connect 28 0 1 0;
#X connect 29 0 7 0;
#X connect 30 0 21 0;
#X connect 30 1 20 0;
#X connect 30 2 19 0;
#X connect 30 3 18 0;
#X connect 30 4 17 0;
#X connect 30 5 16 0;
#X connect 30 6 15 0;
#X connect 31 0 24 1;
#X connect 32 0 58 0;
#X connect 33 0 34 0;
#X connect 34 0 54 0;
#X connect 35 0 57 0;
#X connect 36 0 10 1;
#X connect 36 0 46 0;
#X connect 37 0 53 0;
#X connect 38 0 56 0;
#X connect 39 0 51 1;
#X connect 40 0 37 0;
#X connect 41 0 10 0;
#X connect 41 0 51 0;
#X connect 45 0 8 0;
#X connect 46 0 52 0;
#X connect 47 0 3 0;
#X connect 47 0 3 1;
#X connect 48 0 4 0;
#X connect 49 0 9 0;
#X connect 50 0 2 0;
#X connect 51 0 48 0;
#X connect 52 0 9 0;
#X connect 53 0 39 0;
#X connect 54 0 36 0;
#X connect 55 0 27 0;
#X connect 56 0 37 1;
#X connect 57 0 34 1;
#X connect 58 0 30 0;
#X restore 38 83 pd stumble_mode;
#N canvas 509 162 871 721 run_mode 0;
#X obj 65 231 vsl.seq 4 -color 259;
#A saved 0 0.4 1 0.3;
#X obj 65 143 \$0;
#X obj 65 38 r \$0-stumble-again;
#X obj 210 128 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X floatatom 118 330 5 0 0 0 - - - 0;
#X obj 118 306 route dur pos;
#X floatatom 162 330 5 0 0 0 - - - 0;
#X obj 162 354 route 0 1 2 3;
#X obj 49 465 f;
#X obj 118 401 t f f f f;
#X obj 120 465 f;
#X obj 206 465 f;
#X obj 307 465 f;
#X msg 49 526 run \$1;
#X msg 120 526 run \$1;
#X msg 206 526 run \$1;
#X msg 307 526 run \$1;
#X obj 65 115 spigot;
#X obj 210 84 tgl 31 0 empty empty play 34 15 0 10 #c4fcc4 #000000
#000000 0 1;
#X obj 49 554 vsl.seq 3 -color 692 -sender \$0-hit;
#A saved 1 0.883721 0.767442;
#X obj 206 554 vsl.seq 5 -color 692 -sender \$0-hit;
#A saved 1 0.837209 0.744186 0.930233 0.534884;
#X obj 120 554 vsl.seq 4 -color 692 -sender \$0-hit;
#A saved 1 0.883721 0.767442 0.674419;
#X obj 307 554 vsl.seq 6 -color 692 -sender \$0-hit;
#A saved 1 0.906977 0.813953 0.906977 0.651163 0.581395;
#X obj 625 38 r \$0-hit;
#X obj 625 61 route val;
#X obj 65 64 t b b;
#X obj 97 88 s \$0-count;
#X obj 330 38 r \$0-count;
#X obj 330 61 f;
#X obj 360 61 + 1;
#X obj 430 38 sel 0;
#X msg 330 212 0.3 0.4 0.5 0.6 0;
#X obj 625 380 s \$0-instrument;
#X obj 625 315 pack f f;
#X obj 330 133 sel 0 1;
#X obj 430 61 f;
#X obj 460 61 + 1;
#X obj 430 84 % 3;
#X obj 330 84 % 2;
#X obj 87 610 route pos;
#X obj 365 653 s \$0-bass;
#X obj 509 291 r \$0-bass;
#X obj 274 610 route pos;
#X obj 365 629 sel 0;
#X obj 625 125 pow 3;
#X msg 65 167 stumble 2600 \$1-stumble-again;
#X obj 625 149 t f b b;
#X obj 678 291 +;
#X obj 747 222 sel 0;
#X obj 747 198 random 4;
#X msg 747 245 0;
#X msg 779 245 3;
#X obj 678 222 * 12;
#X msg 625 356 \$2 \$1 48 12;
#X msg 353 185 0 0.4 1 0.3 0;
#X msg 376 158 0.3 0.8 0.25 0.9 0;
#X obj 678 245 + 35;
#X obj 678 198 random 4;
#X msg 509 315 31 0.7 480 2;
#X connect 0 1 5 0;
#X connect 1 0 45 0;
#X connect 2 0 25 0;
#X connect 3 0 1 0;
#X connect 4 0 9 0;
#X connect 5 0 4 0;
#X connect 5 1 6 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 7 1 10 0;
#X connect 7 2 11 0;
#X connect 7 3 12 0;
#X connect 8 0 13 0;
#X connect 9 0 8 1;
#X connect 9 1 10 1;
#X connect 9 2 11 1;
#X connect 9 3 12 1;
#X connect 10 0 14 0;
#X connect 11 0 15 0;
#X connect 12 0 16 0;
#X connect 13 0 19 0;
#X connect 14 0 21 0;
#X connect 15 0 20 0;
#X connect 16 0 22 0;
#X connect 17 0 1 0;
#X connect 18 0 17 1;
#X connect 18 0 3 0;
#X connect 19 1 39 0;
#X connect 20 1 42 0;
#X connect 23 0 24 0;
#X connect 24 0 44 0;
#X connect 25 0 17 0;
#X connect 25 1 26 0;
#X connect 27 0 28 0;
#X connect 28 0 29 0;
#X connect 28 0 38 0;
#X connect 29 0 28 1;
#X connect 30 0 35 0;
#X connect 31 0 0 0;
#X connect 33 0 53 0;
#X connect 34 0 31 0;
#X connect 34 1 54 0;
#X connect 34 2 55 0;
#X connect 35 0 36 0;
#X connect 35 0 37 0;
#X connect 36 0 35 1;
#X connect 37 0 34 0;
#X connect 38 0 30 0;
#X connect 39 0 43 0;
#X connect 41 0 58 0;
#X connect 42 0 43 0;
#X connect 43 0 40 0;
#X connect 44 0 46 0;
#X connect 45 0 0 0;
#X connect 46 0 33 0;
#X connect 46 1 57 0;
#X connect 46 2 49 0;
#X connect 47 0 33 1;
#X connect 48 0 50 0;
#X connect 48 1 51 0;
#X connect 49 0 48 0;
#X connect 50 0 47 1;
#X connect 51 0 47 1;
#X connect 52 0 56 0;
#X connect 53 0 32 0;
#X connect 54 0 0 0;
#X connect 55 0 0 0;
#X connect 56 0 47 0;
#X connect 57 0 52 0;
#X connect 58 0 32 0;
#X restore 38 58 pd run_mode;
#N canvas 344 123 693 585 instrument 0;
#X text 347 340 play every incoming midi note in new voice;
#X msg 91 164 1;
#X msg 165 164 100;
#X msg 249 164 10;
#X obj 34 58 t a b b b b;
#X text 40 137 note;
#X text 92 137 vel;
#X text 245 137 attack;
#X text 161 137 decay;
#X text 334 137 pan;
#X msg 34 314 next \$1 \$2 \$3 \$4 \$5;
#X obj 34 254 pack 32 1 100 10 0;
#X msg 333 165 0;
#X obj 52 403 rev3~ 100 92 100 100;
#X obj 331 403 rev3~ 100 92 100 100;
#X obj 34 34 r \$0-instrument;
#X obj 35 517 dac~;
#X obj 34 340 clone 16 vsl.seq-help-demo-instrument-play;
#X connect 1 0 11 1;
#X connect 2 0 11 2;
#X connect 3 0 11 3;
#X connect 4 0 11 0;
#X connect 4 1 1 0;
#X connect 4 2 2 0;
#X connect 4 3 3 0;
#X connect 4 4 12 0;
#X connect 10 0 17 0;
#X connect 11 0 10 0;
#X connect 12 0 11 4;
#X connect 13 0 16 0;
#X connect 14 0 16 1;
#X connect 15 0 4 0;
#X connect 17 0 13 0;
#X connect 17 0 16 0;
#X connect 17 1 14 0;
#X connect 17 1 16 1;
#X restore 38 202 pd instrument;
#N canvas 428 209 955 633 markov_chain 0;
#X msg 46 126 random;
#X obj 46 230 vsl.seq 7 -color 905 -height 4;
#A saved 1 0.20339 0 0 0 0 0;
#X obj 171 230 vsl.seq 7 -color 905 -height 4;
#A saved 0.372881 0 0.813559 0 0 0 0;
#X obj 296 230 vsl.seq 7 -color 905 -height 4;
#A saved 0.305085 0 0.915254 0.423729 0 0 0;
#X obj 421 230 vsl.seq 7 -color 905 -height 4;
#A saved 0.322034 0 0 0 0.898305 0 0;
#X obj 546 230 vsl.seq 7 -color 905 -height 4;
#A saved 0.355932 0 0 0 0.881356 0.322034 0;
#X obj 671 230 vsl.seq 7 -color 905 -height 4;
#A saved 0.355932 0 0 0 0 0 0.847458;
#X obj 796 230 vsl.seq 7 -color 905 -height 4;
#A saved 0.0508475 0 0 0 0 0 1;
#N canvas 1338 173 419 391 play 0;
#X obj 80 43 inlet;
#X obj 80 169 t f f;
#X obj 80 297 outlet;
#X obj 181 297 outlet;
#X obj 80 113 route pos;
#X msg 80 241 \$1 random;
#X obj 80 193 pipe 123;
#X connect 0 0 4 0;
#X connect 1 0 6 0;
#X connect 4 0 1 0;
#X connect 4 0 3 0;
#X connect 5 0 2 0;
#X connect 6 0 5 0;
#X restore 410 373 pd play;
#X obj 46 300 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc #000000
#000000;
#X obj 171 300 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 296 300 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 421 300 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 546 300 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 671 300 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 796 300 bng 15 250 50 0 empty empty empty 17 7 0 10 #fcfcfc
#000000 #000000;
#X obj 583 457 vsl.seq 8 -color 69;
#A saved 1 0.581395 0.395349 0.813953 0.465116 0.348837 0.697674 0.302326
;
#X obj 696 510 route val;
#X obj 568 405 loadbang;
#X obj 466 483 + 37;
#X obj 456 404 t f f f b;
#X obj 439 430 + 2;
#X obj 409 430 + 4;
#X obj 466 548 pack f f 140 10;
#X obj 320 155 route 0 1 2 3 4 5 6;
#X msg 568 428 0 2 3 5 7 9 10 24;
#X obj 466 572 s \$0-instrument;
#X obj 449 95 tgl 31 0 empty empty play 34 15 0 10 #c4fcc4 #000000
#000000 0 1;
#X obj 410 131 spigot;
#N canvas 234 234 821 612 int_to_scale 0;
#X text 38 273 wrap values to available range;
#X obj 36 229 %;
#X obj 36 252 expr if($f1 < 0 \, $f1+$f2 \, $f1);
#X obj 36 31 inlet;
#X obj 318 31 inlet;
#X obj 251 556 outlet;
#X obj 251 412 list store;
#X msg 251 387 get \$1 1;
#X obj 384 145 list length;
#X obj 384 168 - 1;
#X obj 251 530 +;
#X msg 430 248 get \$1 1;
#X obj 430 271 list store;
#X obj 389 411 *;
#X obj 389 248 /;
#X obj 36 54 t f f;
#X obj 384 191 t f f f;
#X text 543 213 bang first to clear list \; before adding new scale
;
#X text 67 405 bang first to clear list \; before adding new scale
;
#X text 360 30 scale input | last note should be "octave";
#X obj 497 220 t l b;
#X obj 318 361 t l b;
#X obj 318 54 t l l l;
#X obj 211 210 t f f;
#X obj 389 327 expr if($f1 < 0 \, int($f1-0.9999) \, int($f1));
#X text 697 328 FIXME: ugly;
#X connect 1 0 2 0;
#X connect 2 0 7 0;
#X connect 3 0 15 0;
#X connect 4 0 22 0;
#X connect 6 0 10 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 9 0 16 0;
#X connect 10 0 5 0;
#X connect 11 0 12 0;
#X connect 12 0 13 1;
#X connect 13 0 10 1;
#X connect 14 0 24 0;
#X connect 15 0 1 0;
#X connect 15 1 14 0;
#X connect 16 0 23 0;
#X connect 16 1 14 1;
#X connect 16 2 11 0;
#X connect 20 0 12 1;
#X connect 20 1 12 1;
#X connect 21 0 6 1;
#X connect 21 1 6 1;
#X connect 22 0 21 0;
#X connect 22 1 8 0;
#X connect 22 2 20 0;
#X connect 23 0 1 1;
#X connect 23 1 2 1;
#X connect 24 0 13 0;
#X restore 466 459 pd int_to_scale;
#X text 497 24 This is a simple representation of a markov chain creating
melodies with 7 states \, where each state is triggering a certain
chord and has specified probabilities to reach any other state/chord.
;
#X text 264 431 add third and fifth;
#X text 49 208 ▼;
#X text 189 208 ▼;
#X text 327 208 ▼;
#X text 468 208 ▼;
#X text 608 208 ▼;
#X text 747 208 ▼;
#X text 888 208 ▼;
#X connect 0 0 1 0;
#X connect 1 0 9 0;
#X connect 1 1 8 0;
#X connect 2 0 10 0;
#X connect 2 1 8 0;
#X connect 3 0 11 0;
#X connect 3 1 8 0;
#X connect 4 0 12 0;
#X connect 4 1 8 0;
#X connect 5 0 13 0;
#X connect 5 1 8 0;
#X connect 6 0 14 0;
#X connect 6 1 8 0;
#X connect 7 0 15 0;
#X connect 7 1 8 0;
#X connect 8 0 28 0;
#X connect 8 1 20 0;
#X connect 16 1 17 0;
#X connect 17 0 23 1;
#X connect 18 0 25 0;
#X connect 19 0 23 0;
#X connect 20 0 22 0;
#X connect 20 1 21 0;
#X connect 20 2 29 0;
#X connect 20 3 16 0;
#X connect 21 0 29 0;
#X connect 22 0 29 0;
#X connect 23 0 26 0;
#X connect 24 0 1 0;
#X connect 24 1 2 0;
#X connect 24 2 3 0;
#X connect 24 3 4 0;
#X connect 24 4 5 0;
#X connect 24 5 6 0;
#X connect 24 6 7 0;
#X connect 25 0 29 1;
#X connect 27 0 28 1;
#X connect 27 0 0 0;
#X connect 28 0 24 0;
#X connect 29 0 19 0;
#X restore 38 107 pd markov_chain;