aboutsummaryrefslogtreecommitdiff
path: root/weightonset/help-weightonset.pd
blob: 375bacd3afe500432fd4ae16cd8a8cbafeb79062 (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
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
#N canvas 31 64 901 594 10;
#N canvas 1901 230 450 300 hasc 0;
#X obj 65 62 inlet~;
#X obj 196 184 block~ 1024;
#X obj 55 106 rfft~;
#X obj 56 150 hasc~;
#X obj 56 188 outlet;
#X obj 179 60 inlet;
#X text 153 42 threshold (0-10+);
#X text 43 -1 ...get a "highest apparent spectral component" value
from the FFT;
#X connect 0 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 3 1;
#X connect 3 0 4 0;
#X connect 5 0 3 2;
#X restore 44 418 pd hasc;
#X obj 128 346 bonk~;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-input 106595 float 0;
#X coords 0 1 106594 -1 200 51 1;
#X restore 287 309 graph;
#X obj 128 370 t b b;
#X obj 81 506 f;
#X floatatom 96 487 5 0 0 0 - - -;
#X floatatom 168 348 5 0 99 0 - - -;
#X obj 81 526 print end-value;
#X obj 43 324 tabplay~ \$0-input;
#X floatatom 75 354 5 0 100 0 - - -;
#X floatatom 75 396 5 0 0 0 - - -;
#X obj 75 374 * 0.1;
#N canvas 0 0 450 300 tw 0;
#X obj 274 70 inlet;
#X msg 274 91 0;
#X obj 191 158 cup;
#X obj 110 55 inlet;
#X obj 110 80 t f b;
#X obj 115 207 tabwrite \$0-hasc;
#X obj 301 158 cup;
#X obj 220 55 inlet;
#X obj 220 80 t f b;
#X obj 225 207 tabwrite \$0-weightonset;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 0 6 0;
#X connect 2 0 5 1;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X connect 4 1 2 0;
#X connect 6 0 9 1;
#X connect 7 0 8 0;
#X connect 8 0 9 0;
#X connect 8 1 6 0;
#X restore 39 519 pd tw;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-hasc 1 float 3;
#A 0 0;
#X coords 0 511 1 -1 200 51 1;
#X restore 287 380 graph;
#N canvas 0 0 450 300 adapt 0;
#X obj 128 44 inlet;
#X obj 127 74 / 100;
#X obj 129 108 t b f;
#X msg 126 139 1;
#X obj 132 170 -;
#X obj 134 205 outlet;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 2 0 3 0;
#X connect 2 1 4 1;
#X connect 3 0 4 0;
#X connect 4 0 5 0;
#X restore 168 367 pd adapt;
#X floatatom 168 401 5 0 0 1 influence - -;
#X obj 168 308 loadbang;
#X obj 88 276 bng 15 250 50 0 empty empty load 17 7 0 10 -262144 -1
-1;
#N canvas 211 176 325 300 loadfile 0;
#X obj 44 28 openpanel;
#X obj 44 47 t a b;
#X obj 44 90 pack s s;
#X msg 44 109 read -resize \$1 \$2;
#X obj 44 128 soundfiler;
#X obj 71 66 symbol \$0-input;
#X floatatom 44 186 0 0 0 0 - - -;
#X obj 44 166 i;
#X msg 44 206 resize \$1;
#X obj 44 226 s \$0-hasc;
#X obj 44 147 / 1024;
#X obj 44 5 inlet;
#X obj 113 227 s \$0-weightonset;
#X obj 243 27 loadbang;
#X msg 119 27 ../sound/stink.wav;
#X connect 0 0 1 0;
#X connect 1 0 2 0;
#X connect 1 1 5 0;
#X connect 2 0 3 0;
#X connect 3 0 4 0;
#X connect 4 0 10 0;
#X connect 5 0 2 1;
#X connect 6 0 8 0;
#X connect 7 0 6 0;
#X connect 8 0 9 0;
#X connect 8 0 12 0;
#X connect 10 0 7 0;
#X connect 11 0 0 0;
#X connect 13 0 14 0;
#X connect 14 0 1 0;
#X restore 88 295 pd loadfile;
#X obj 43 276 bng 12 250 50 0 empty empty play 15 6 0 10 -262144 -1
-1;
#X obj 43 291 t b b;
#N canvas 0 0 450 300 (subpatch) 0;
#X array \$0-weightonset 1 float 3;
#A 0 0;
#X coords 0 511 1 -1 200 51 1;
#X restore 287 450 graph;
#X obj 116 407 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-257985 -1;
#X text 56 49 The second value is multipled by the value in the second
inlet (range 0-1) and added to the first value. Then \, the divider
value (in order to work out the weighted average) is also multiplied
by this value \, and added to it.;
#X text 46 8 This object makes a moving average with successively less
important values. The calculation initiates when the object is banged
\, and the first value is the most influential.;
#X msg 65 444 1;
#X obj 130 445 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 195 500 print data;
#X text 78 161 When the object is banged the right outlet sends a list
of all the values that influenced the result since the last bang \,
up to a limit of 1024 values.;
#X obj 477 73 weightonset;
#X text 476 58 V;
#X text 476 54 |;
#X text 476 44 |;
#X text 476 34 |;
#X text 452 20 floats in;
#X text 506 58 V;
#X text 506 54 |;
#X text 506 44 |;
#X text 685 338 ^;
#X text 684 342 |;
#X text 684 351 |;
#X text 738 338 ^;
#X text 737 342 |;
#X text 737 351 |;
#X text 801 338 ^;
#X text 800 342 |;
#X text 800 351 |;
#X text 671 377 of successive inputs;
#X text 475 89 |;
#X text 475 99 |;
#X text 475 109 |;
#X text 475 119 V;
#X text 452 141 influenced;
#X text 464 130 onset-;
#X text 465 153 value;
#X text 538 89 |;
#X text 538 99 |;
#X text 538 109 |;
#X text 538 119 V;
#X text 531 132 data dump;
#X text 537 143 on bang;
#X text 616 389 1: accumulated average (up to 1024 elements);
#X msg 49 354 5;
#X text 212 411 factor;
#X text 202 387 successive;
#X text 64 101 The influence of successive values is lessened by the
inverse of the factor on the right inlet. So \, a value of 0.2 in the
second inlet means that the second value after the bang is 20% as influential
as the first \, and the third value is 20% of 20% (4%) as influential
as the first.;
#X floatatom 195 437 5 0 10 1 attack - -;
#X text 509 200 influence factor = 0 : 1st float output only;
#X text 510 188 attack length = 0 \,;
#X text 535 166 EXAMPLES:;
#X text 520 226 attack length = 0 \,;
#X text 519 238 influence factor = 1: successive values are;
#X text 232 447 phase;
#X text 232 461 0-100;
#X text 508 252 equally influential to the total \, but the list;
#X text 492 31 successive influence factor (0-1);
#X text 538 58 V;
#X text 538 54 |;
#X text 525 43 attack phase (1-100+);
#X text 514 265 grows longer as the numbers are added. Therefore;
#X text 506 278 the output responds less and less to input values.
;
#X text 513 291 This is an accumulating average between bangs.;
#X text 511 313 attack length = 0 \,;
#X text 634 366 (w) = weightings (influence values);
#X text 509 405 the output is onset-weighted e.g. the most influential
values are at the start of the series.;
#X text 700 462 ^;
#X text 699 466 |;
#X text 699 475 |;
#X text 760 462 ^;
#X text 759 466 |;
#X text 759 475 |;
#X text 824 462 ^;
#X text 823 466 |;
#X text 823 475 |;
#X text 680 501 of successive inputs;
#X text 622 513 1: accumulated average (up to 1024 elements);
#X text 656 490 (w) = weightings (influence values);
#X text 515 529 the output is onset-weighted e.g. the most influential
values are at the start of the series.;
#X text 517 437 attack length = 3 \,;
#X text 513 451 influence factor = 0.5: v1 w 0.25 \, v2 w 0.5 \, v3
w 0.75 \, v4 w 1 \, v5 w 0.5 \, v6 w 0.25...;
#X text 509 327 influence factor = 0.5: v1 w 1 \, v2 w 0.5 \, v3 w
0.25 \, v4 w 0.125;
#X text 86 200 If the attack phase is greater than 0 \, the values
become successively more influential to the weighted average \, until
the number of values is equal to the attack+1. The next value after
the attack phase is the most influential \, then the influence factor
kicks in and successive values become less influential.;
#X text 552 73 creation args: influence factor \, attack;
#X obj 96 467 weightonset 0.8 0;
#X obj 10 361 dac~;
#X msg 168 328 80;
#X connect 0 0 12 0;
#X connect 0 0 103 0;
#X connect 1 0 3 0;
#X connect 3 0 22 0;
#X connect 3 0 103 0;
#X connect 3 1 4 0;
#X connect 4 0 7 0;
#X connect 5 0 4 1;
#X connect 5 0 12 1;
#X connect 6 0 14 0;
#X connect 8 0 0 0;
#X connect 8 0 1 0;
#X connect 8 0 104 0;
#X connect 8 0 104 1;
#X connect 9 0 11 0;
#X connect 10 0 0 1;
#X connect 11 0 10 0;
#X connect 14 0 15 0;
#X connect 14 0 103 1;
#X connect 16 0 105 0;
#X connect 16 0 62 0;
#X connect 17 0 18 0;
#X connect 19 0 20 0;
#X connect 20 0 8 0;
#X connect 20 1 12 2;
#X connect 25 0 103 0;
#X connect 26 0 103 0;
#X connect 62 0 9 0;
#X connect 66 0 103 2;
#X connect 103 0 5 0;
#X connect 103 1 27 0;
#X connect 105 0 6 0;