aboutsummaryrefslogtreecommitdiff
path: root/weightonset-help.pd
blob: 28c43f701408c7a18c98096f434ce8654e73d1fd (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
256
257
258
259
260
261
#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 446 pd hasc;
#X obj 128 374 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 337 graph;
#X obj 128 398 t b b;
#X obj 81 534 f;
#X floatatom 96 515 5 0 0 0 - - -;
#X floatatom 168 376 5 0 99 0 - - -;
#X obj 81 554 print end-value;
#X obj 43 352 tabplay~ \$0-input;
#X floatatom 75 382 5 0 100 0 - - -;
#X floatatom 75 424 5 0 0 0 - - -;
#X obj 75 402 * 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 547 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 408 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 395 pd adapt;
#X floatatom 168 429 5 0 0 1 influence - -;
#X obj 168 336 loadbang;
#X obj 88 304 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 examples/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 323 pd loadfile;
#X obj 43 304 bng 12 250 50 0 empty empty play 15 6 0 10 -262144 -1
-1;
#X obj 43 319 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 478 graph;
#X obj 116 435 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 472 1;
#X obj 130 473 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 195 528 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 msg 49 382 5;
#X text 212 439 factor;
#X text 202 415 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 465 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 475 phase;
#X text 232 489 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 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 393 the output is onset-weighted e.g. the most influential
values are at the start of the series.;
#X text 699 462 ^;
#X text 698 466 |;
#X text 698 475 |;
#X text 769 462 ^;
#X text 768 466 |;
#X text 768 475 |;
#X text 832 462 ^;
#X text 831 466 |;
#X text 831 475 |;
#X text 680 501 of successive inputs;
#X text 656 490 (w) = weightings (influence values);
#X text 517 437 attack length = 3 \,;
#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 557 71 creation args: influence factor \, attack;
#X obj 96 495 weightonset 0.8 0;
#X obj 10 381 dac~;
#X msg 168 356 80;
#X text 513 451 influence factor = 0.5: v1 w 0.125 \, v2 w 0.25 \,
v3 w 0.5 \, v4 w 1 \, v5 w 0.5 \, v6 w 0.25...;
#X text 525 43 attack phase (0-100+);
#X obj 664 183 weightonset 0 0;
#X obj 666 222 weightonset 1 0;
#X obj 674 312 weightonset 0.5 0;
#X obj 676 434 weightonset 0.5 3;
#X text 509 517 the output is onset-weighted e.g. the most influential
values are at the start of the series \, after the attack phase in
which the values become successively more influential.;
#X text 99 269 The weightings of values during the attack phase is
the reverse of successive weightings after the attack:;
#X text 226 294 weighting = influence pow(attack - index);
#X connect 0 0 12 0;
#X connect 0 0 98 0;
#X connect 1 0 3 0;
#X connect 3 0 22 0;
#X connect 3 0 98 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 99 0;
#X connect 8 0 99 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 98 1;
#X connect 16 0 100 0;
#X connect 16 0 61 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 98 0;
#X connect 26 0 98 0;
#X connect 61 0 9 0;
#X connect 65 0 98 2;
#X connect 98 0 5 0;
#X connect 98 1 27 0;
#X connect 100 0 6 0;