aboutsummaryrefslogtreecommitdiff
path: root/s-midiloop.pd
blob: 311cc1c2c2c30352a62416ecad1bcd7514fa2c99 (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
164
165
#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 275 t l l;
#X text 695 100 Get the time since the last timer tick;
#X obj 574 126 timer;
#X obj 36 493 list prepend;
#X obj 115 466 pack f f;
#X obj 604 70 s \$0/tick;
#X obj 166 443 r \$0/subtime;
#X obj 574 150 s \$0/subtime;
#X obj 604 100 r \$0/gettime;
#X obj 94 345 s \$0/gettime;
#X obj 115 443 f;
#X obj 131 421 r \$0/tick;
#X obj 574 25 t b f;
#X obj 36 539 list prepend;
#X obj 132 540 t l;
#X obj 36 298 spigot;
#X obj 73 276 r \$0/record;
#X obj 129 493 r \$0/record;
#X text 108 397 Data stored is: tick - tick offset - note - volume
;
#X text 214 464 Reset the data if we hit record;
#X obj 129 514 sel 1;
#X obj 36 562 s \$0/data;
#X obj 36 322 t l b b b;
#X obj 94 371 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 161 540 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 158 r \$0/record;
#X obj 51 181 r \$0/passthrough;
#X obj 43 232 ||;
#X obj 6 253 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 599 s \$0/passnotes;
#X obj 380 500 r \$0/passnotes;
#X obj 51 202 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 obj 29 133 inlet;
#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 connect 82 0 72 0;
#X coords 0 -1 1 1 150 60 1 0 0;