aboutsummaryrefslogtreecommitdiff
path: root/s-midiloop.pd
blob: 2b253aa1d696c9489e63ae3f73f740f08d9715fa (plain)
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
#N canvas 7 17 986 667 10;
#X obj 490 632 outlet;
#X text 540 635 Midi pairs come out here.;
#X obj 490 544 t l l;
#X obj 520 567 unpack f f;
#X obj 62 21 tgl 14 0 \$0/passthrough \$1/passthrough passthrough 17
7 0 8 -260818 -1 -1 0 1;
#X obj 520 610 s \$0/num1;
#X obj 585 589 s \$0/num2;
#X floatatom 4 42 3 0 0 0 - #0/num1 -;
#X floatatom 32 42 3 0 0 0 - #0/num2 -;
#X text 156 0 args: name timername length [midichannel];
#X obj 6 77 notein \$4;
#X obj 574 4 r \$2;
#X text 78 77 Midi notes come in here;
#X text 609 3 Listen for timer ticks;
#X obj 604 48 mod \$3;
#X text 657 49 Loop at the right length;
#X obj 6 106 pack f f;
#X obj 6 246 t l l;
#X text 695 100 Get the time since the last timer tick;
#X obj 574 126 timer;
#X obj 36 464 list prepend;
#X obj 115 437 pack f f;
#X obj 604 70 s \$0/tick;
#X obj 166 415 r \$0/subtime;
#X obj 574 150 s \$0/subtime;
#X obj 604 100 r \$0/gettime;
#X obj 94 316 s \$0/gettime;
#X obj 115 414 f;
#X obj 131 392 r \$0/tick;
#X obj 574 25 t b f;
#X obj 36 510 list prepend;
#X obj 132 511 t l;
#X obj 36 269 spigot;
#X obj 73 247 r \$0/record;
#X obj 129 464 r \$0/record;
#X text 108 368 Data stored is: tick - tick offset - note - volume
;
#X text 214 464 Reset the data if we hit record;
#X obj 129 485 sel 1;
#X obj 36 533 s \$0/data;
#X obj 36 293 t l b b b;
#X obj 94 342 s \$0/resettime;
#X obj 463 69 r \$0/resettime;
#X obj 513 247 r \$0/data;
#X obj 490 269 list;
#X text 527 270 Data lives here;
#X obj 490 339 list append;
#X obj 490 291 t b l;
#X obj 490 363 list split 4;
#X obj 490 390 unpack f f f f;
#X obj 490 421 ==;
#X obj 490 222 t b f;
#X obj 490 468 delay;
#X obj 552 468 pack f f;
#X obj 490 500 list;
#X text 489 183 Replay our list;
#X obj 490 443 sel 1 0;
#X obj 490 202 r \$0/tick;
#X obj 162 511 s \$0/reset;
#X obj 708 214 r \$0/reset;
#X obj 708 235 t b b;
#X obj 761 235 r \$0/data;
#X obj 738 258 list;
#X obj 738 280 t b l;
#X obj 738 302 until;
#X obj 738 327 list append;
#X obj 738 349 list split 4;
#X obj 738 372 unpack f f f f;
#X text 771 259 Zero every note we know about;
#X obj 800 393 pack f 0;
#X obj 43 129 r \$0/record;
#X obj 51 152 r \$0/passthrough;
#X obj 43 203 ||;
#X obj 6 224 spigot;
#X obj 4 21 tgl 14 0 \$0/record \$1/record record 17 7 0 8 -260818
-1 -1 0 1;
#X obj 6 570 s \$0/passnotes;
#X obj 380 500 r \$0/passnotes;
#X obj 51 173 t b f;
#X obj 828 349 bang;
#X text 220 131 sssad persistence;
#X obj 221 147 sssad/auto \$0/data \$1/data;
#X obj 719 165 s-connect \$1/data \$0/data;
#X text 717 147 User can send in data;
#X connect 2 0 0 0;
#X connect 2 1 3 0;
#X connect 3 0 5 0;
#X connect 3 1 6 0;
#X connect 10 0 16 0;
#X connect 10 1 16 1;
#X connect 11 0 29 0;
#X connect 14 0 22 0;
#X connect 16 0 72 0;
#X connect 17 0 74 0;
#X connect 17 1 32 0;
#X connect 19 0 24 0;
#X connect 20 0 30 0;
#X connect 21 0 20 1;
#X connect 23 0 21 1;
#X connect 25 0 19 1;
#X connect 27 0 21 0;
#X connect 28 0 27 1;
#X connect 29 0 19 0;
#X connect 29 1 14 0;
#X connect 30 0 31 0;
#X connect 30 0 38 0;
#X connect 31 0 30 1;
#X connect 32 0 39 0;
#X connect 33 0 32 1;
#X connect 34 0 37 0;
#X connect 37 0 30 1;
#X connect 37 0 57 0;
#X connect 39 0 20 0;
#X connect 39 1 27 0;
#X connect 39 2 40 0;
#X connect 39 3 26 0;
#X connect 41 0 19 0;
#X connect 42 0 43 1;
#X connect 43 0 46 0;
#X connect 45 0 47 0;
#X connect 46 0 45 0;
#X connect 46 1 45 1;
#X connect 47 0 48 0;
#X connect 47 1 45 1;
#X connect 48 0 49 0;
#X connect 48 1 51 1;
#X connect 48 2 52 0;
#X connect 48 3 52 1;
#X connect 49 0 55 0;
#X connect 50 0 43 0;
#X connect 50 1 49 1;
#X connect 51 0 53 0;
#X connect 52 0 53 1;
#X connect 53 0 2 0;
#X connect 55 0 51 0;
#X connect 55 1 45 0;
#X connect 56 0 50 0;
#X connect 58 0 59 0;
#X connect 59 0 43 1;
#X connect 59 0 61 1;
#X connect 59 1 61 0;
#X connect 60 0 61 1;
#X connect 61 0 62 0;
#X connect 62 0 63 0;
#X connect 62 1 64 1;
#X connect 63 0 64 0;
#X connect 64 0 65 0;
#X connect 65 0 66 0;
#X connect 65 1 64 1;
#X connect 65 2 77 0;
#X connect 66 2 68 0;
#X connect 68 0 2 0;
#X connect 69 0 71 0;
#X connect 70 0 76 0;
#X connect 71 0 72 1;
#X connect 72 0 17 0;
#X connect 75 0 2 0;
#X connect 76 0 71 0;
#X connect 76 1 71 1;
#X connect 77 0 63 1;
#X coords 0 -1 1 1 150 60 1 0 0;