-
Notifications
You must be signed in to change notification settings - Fork 0
/
spiketrain.pd
351 lines (351 loc) · 8.14 KB
/
spiketrain.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
#N canvas 224 262 1800 1103 12;
#X obj 110 102 inlet;
#X obj 109 200 lop~ 10;
#X obj 110 148 sig~, f 9;
#X obj 38 129 metro 16;
#X obj 38 52 loadbang;
#X floatatom 164 103 5 0 0 0 - - -;
#X obj 882 540 sinsq, f 8;
#X obj 917 516 * 2;
#X msg 949 515 0.7;
#X obj 882 438 loadbang;
#X obj 671 773 outlet~;
#X msg 882 492 180;
#X obj 341 324 change;
#X obj 882 571 *~;
#X obj 883 599 clip~ -1 1;
#X obj 858 256 > 0;
#X obj 859 308 sel 0 1, f 37;
#X floatatom 482 344 5 0 0 0 - - -;
#X obj 341 219 abs;
#N canvas 0 97 450 300 non_null 0;
#X obj 189 132 == 0;
#X obj 157 104 t f f;
#X obj 157 184 +;
#X obj 157 71 inlet;
#X obj 153 219 outlet;
#X obj 188 159 /, f 6;
#X obj 236 103 d \$1 1000;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 1 1 0 0;
#X connect 2 0 4 0;
#X connect 3 0 1 0;
#X connect 5 0 2 1;
#X connect 6 0 5 1;
#X restore 483 292 pd non_null 10000;
#N canvas 0 97 441 300 deriv 0;
#X obj 70 120 lop~ 10;
#X obj 70 93 sig~;
#X obj 70 147 hip~ 1;
#X obj 70 66 - 0;
#X obj 70 39 t f f;
#X obj 70 12 inlet;
#X obj 69 174 outlet~;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 3 1;
#X connect 4 1 3 0;
#X connect 5 0 4 0;
#X restore 408 218 pd deriv;
#X obj 341 193 t f f, f 10;
#N canvas 577 253 699 488 old_train 0;
#X obj 154 307 *~;
#X obj 154 273 vline~;
#X msg 153 247 \$1 10;
#X obj 239 257 sq~, f 8;
#X obj 154 339 threshold~ 0.9 0 0 0;
#X msg 154 364 1;
#X msg 291 363 0;
#X obj 162 426 adsr~ 1 10 0 50 2;
#X obj 162 450 *~ 0.5;
#X obj 154 221 - 0.1;
#X obj 264 288 snapshot~;
#X obj 153 170 > 0.1;
#X obj 154 195 change;
#X obj 239 206 log 10;
#X obj 241 129 abs;
#N canvas 0 97 450 300 non_null 0;
#X obj 189 132 == 0;
#X obj 157 104 t f f;
#X obj 157 184 +;
#X obj 157 71 inlet;
#X obj 153 219 outlet;
#X obj 188 159 /, f 6;
#X obj 236 103 d \$1 1000;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 1 1 0 0;
#X connect 2 0 4 0;
#X connect 3 0 1 0;
#X connect 5 0 2 1;
#X connect 6 0 5 1;
#X restore 240 180 pd non_null 10000;
#X obj 240 154 + 10;
#N canvas 0 97 441 300 deriv 0;
#X obj 70 120 lop~ 10;
#X obj 70 93 sig~;
#X obj 70 147 hip~ 1;
#X obj 70 66 - 0;
#X obj 70 39 t f f;
#X obj 70 12 inlet;
#X obj 69 174 outlet~;
#X connect 0 0 2 0;
#X connect 1 0 0 0;
#X connect 2 0 6 0;
#X connect 3 0 1 0;
#X connect 4 0 3 1;
#X connect 4 1 3 0;
#X connect 5 0 4 0;
#X restore 309 106 pd deriv;
#X obj 241 80 t f f, f 10;
#X obj 241 52 r v;
#X text 309 242 sets the frequency of this square oscillator to generate
threshold activations;
#X text 292 426 adsr shapes the spikes;
#X text 107 63 this left bit turns the spikes off when the input reaches
close to 0;
#X connect 0 0 4 0;
#X connect 1 0 0 0;
#X connect 2 0 1 0;
#X connect 3 0 0 1;
#X connect 3 0 10 0;
#X connect 4 0 5 0;
#X connect 4 1 6 0;
#X connect 5 0 7 0;
#X connect 6 0 7 0;
#X connect 7 0 8 0;
#X connect 9 0 2 0;
#X connect 11 0 12 0;
#X connect 12 0 9 0;
#X connect 13 0 3 0;
#X connect 14 0 11 0;
#X connect 14 0 16 0;
#X connect 15 0 13 0;
#X connect 16 0 15 0;
#X connect 18 0 14 0;
#X connect 18 1 17 0;
#X connect 19 0 18 0;
#X restore 46 427 pd old_train;
#N canvas 1061 438 767 582 hip_diy 0;
#X obj 87 104 inlet~;
#X obj 88 213 outlet~;
#X obj 87 182 -~;
#X obj 105 150 lop~ 0.5;
#X connect 0 0 3 0;
#X connect 0 0 2 0;
#X connect 2 0 1 0;
#X connect 3 0 2 1;
#X restore 135 248 pd hip_diy;
#X obj 110 326 snapshot~;
#X obj 688 673 select2~;
#X obj 741 622 d \$1;
#X obj 882 464 t a a, f 10;
#X obj 689 386 phasor~;
#X obj 690 357 sig~;
#X obj 209 128 sq~;
#X obj 208 102 0.4;
#X obj 570 640 vline~;
#X msg 570 607 \$1 100;
#X obj 670 700 *~;
#X obj 341 271 / 1;
#X obj 209 153 *~ 1024;
#X obj 482 318 log 2;
#X obj 276 153 sig~;
#X obj 209 181 *~, f 10;
#X obj 109 175 +~;
#X obj 688 560 lop~ 30;
#X obj 704 495 +~;
#X obj 612 292 log~;
#X obj 613 267 abs~;
#X obj 613 240 +~ 1;
#X obj 612 319 *~ 10;
#X obj 688 417 *~ 1000;
#X obj 482 370 recip 0.1;
#X floatatom 629 349 5 0 0 0 - - -;
#X obj 334 129 tgl 19 0 empty empty empty 0 -10 0 12 -262144 -1 -1
0 1;
#X obj 859 281 change;
#X text 1190 41 arg2: use the change in value to drive the spiketrain
;
#X text 1190 25 arg1: synth output or mod value output;
#N canvas 501 313 696 573 noise 0;
#X obj 113 175 noise~;
#X obj 113 202 lop~ 100;
#X obj 101 330 line~;
#X obj 220 320 samphold~;
#X obj 102 372 *~;
#X obj 115 262 t b b;
#X msg 221 289 reset;
#X msg 102 300 1 \, 0 50;
#X obj 192 364 *~;
#X obj 114 238 threshold~ 0.15 1 0.005 10;
#X obj 167 148 log;
#X obj 167 121 + 1;
#X obj 166 172 * 30;
#X obj 167 90 inlet;
#X obj 103 400 outlet~;
#X connect 0 0 1 0;
#X connect 0 0 3 0;
#X connect 1 0 9 0;
#X connect 2 0 4 0;
#X connect 3 0 8 0;
#X connect 3 0 8 1;
#X connect 4 0 14 0;
#X connect 5 0 7 0;
#X connect 5 1 6 0;
#X connect 6 0 3 0;
#X connect 7 0 2 0;
#X connect 8 0 4 1;
#X connect 9 0 5 0;
#X connect 10 0 12 0;
#X connect 11 0 10 0;
#X connect 12 0 1 1;
#X connect 13 0 11 0;
#X restore 221 425 pd noise;
#X obj 687 536 +~;
#X obj 585 507 select2~;
#X text 1190 57 arg3: add in derivative value to output;
#X obj 638 480 d \$3 0;
#X obj 483 266 + 10;
#X obj 341 246 t f f, f 15;
#X obj 341 299 > 0.031;
#X text 1191 75 arg4: scaling of value to phasor speed;
#X obj 522 94 d \$4 1;
#X obj 609 190 pow, f 6;
#X obj 522 120 t b f b f, f 19;
#X msg 608 167 10;
#X obj 647 166 * -1;
#X obj 522 190 pow, f 7;
#X msg 522 163 10;
#N canvas 0 97 450 300 non_null 0;
#X obj 189 132 == 0;
#X obj 157 104 t f f;
#X obj 157 184 +;
#X obj 157 71 inlet;
#X obj 153 219 outlet;
#X obj 188 159 /, f 6;
#X obj 236 103 d \$1 1000;
#X connect 0 0 5 0;
#X connect 1 0 2 0;
#X connect 1 1 0 0;
#X connect 2 0 4 0;
#X connect 3 0 1 0;
#X connect 5 0 2 1;
#X connect 6 0 5 1;
#X restore 647 144 pd non_null 1;
#X msg 860 366 set \$1;
#X msg 1004 367 set \$1;
#X obj 110 351 s \$0-v;
#X obj 341 165 r \$0-v;
#X obj 482 398 s \$0-vline_speed;
#X obj 690 327 r \$0-vline_speed;
#X obj 570 578 r \$0-close_to_0;
#X obj 858 232 r \$0-v;
#X obj 341 349 s \$0-close_to_0;
#X obj 223 391 * 10;
#X text 1189 94 arg5: noise premult;
#X obj 251 361 d \$5 1;
#X obj 387 271 inlet;
#X obj 110 299 select2~;
#X obj 161 273 d \$2 0;
#X obj 276 129 d \$7 0;
#X text 1188 113 arg6: array name prefix;
#X text 1189 132 arg7: enable test mode;
#X obj 860 341 symbol \$6-neg_train;
#X obj 1005 342 symbol \$6-pos_train;
#X obj 688 451 tabread4~;
#X connect 0 0 2 0;
#X connect 1 0 23 0;
#X connect 1 0 84 0;
#X connect 2 0 40 0;
#X connect 3 0 24 0;
#X connect 4 0 3 0;
#X connect 4 0 31 0;
#X connect 5 0 2 0;
#X connect 6 0 13 0;
#X connect 7 0 6 2;
#X connect 8 0 6 3;
#X connect 9 0 27 0;
#X connect 11 0 7 0;
#X connect 11 0 6 0;
#X connect 12 0 79 0;
#X connect 13 0 14 0;
#X connect 14 0 25 1;
#X connect 15 0 51 0;
#X connect 16 0 89 0;
#X connect 16 1 90 0;
#X connect 17 0 48 0;
#X connect 18 0 60 0;
#X connect 18 0 80 0;
#X connect 19 0 37 0;
#X connect 20 0 45 0;
#X connect 21 0 18 0;
#X connect 21 1 20 0;
#X connect 23 0 84 1;
#X connect 24 0 73 0;
#X connect 25 0 34 1;
#X connect 26 0 25 2;
#X connect 27 0 11 0;
#X connect 27 1 8 0;
#X connect 28 0 47 0;
#X connect 29 0 28 0;
#X connect 30 0 36 0;
#X connect 31 0 30 0;
#X connect 32 0 34 0;
#X connect 33 0 32 0;
#X connect 34 0 10 0;
#X connect 35 0 61 0;
#X connect 36 0 39 0;
#X connect 37 0 17 0;
#X connect 38 0 39 1;
#X connect 39 0 40 1;
#X connect 40 0 1 0;
#X connect 41 0 25 0;
#X connect 42 0 55 1;
#X connect 43 0 46 0;
#X connect 44 0 43 0;
#X connect 45 0 44 0;
#X connect 46 0 56 1;
#X connect 47 0 91 0;
#X connect 48 0 75 0;
#X connect 50 0 38 0;
#X connect 51 0 16 0;
#X connect 54 0 42 1;
#X connect 55 0 41 0;
#X connect 56 0 55 0;
#X connect 58 0 56 2;
#X connect 59 0 19 0;
#X connect 60 0 35 0;
#X connect 60 1 59 0;
#X connect 61 0 12 0;
#X connect 63 0 65 0;
#X connect 64 0 48 1;
#X connect 65 0 69 0;
#X connect 65 1 68 1;
#X connect 65 2 66 0;
#X connect 65 3 70 0;
#X connect 66 0 64 0;
#X connect 67 0 64 1;
#X connect 68 0 59 1;
#X connect 69 0 68 0;
#X connect 70 0 67 0;
#X connect 71 0 91 0;
#X connect 72 0 91 0;
#X connect 74 0 21 0;
#X connect 76 0 29 0;
#X connect 76 0 49 0;
#X connect 77 0 33 0;
#X connect 78 0 15 0;
#X connect 80 0 54 0;
#X connect 82 0 80 1;
#X connect 83 0 61 1;
#X connect 84 0 24 0;
#X connect 85 0 84 2;
#X connect 86 0 38 0;
#X connect 89 0 71 0;
#X connect 90 0 72 0;
#X connect 91 0 13 1;
#X connect 91 0 42 0;