aboutsummaryrefslogtreecommitdiff
path: root/help/help-ambi_encode.pd
blob: b5e1632848bf401a7cef8f1f3c31645e4a2f25a5 (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
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
#N canvas 61 48 860 672 10;
#X obj 374 243 ambi_encode 2;
#X obj 374 288 print;
#X text 478 247 1.arg: <float> ambisonic order;
#X text 489 259 (1 .. 12 for 2 dimensional use);
#X msg 461 178 col 2 \$1;
#X msg 425 97 row 1 \$1;
#X msg 288 211 col 3 \$1 \$2;
#X obj 288 188 pack 0 0;
#X obj 306 166 t b f;
#X obj 374 265 round_zero 1e-006;
#X obj 184 193 pack 0 0;
#X obj 202 171 t b f;
#X floatatom 100 161 5 -180 180 0 - - -;
#X floatatom 51 162 5 -90 90 0 - - -;
#X obj 82 222 pack 0 0;
#X obj 100 200 t b f;
#X text 48 143 delta;
#X text 102 142 phi;
#X text 21 12 ambi_encode;
#X text 34 291 ambisonic-order = n_ao;
#X text 346 320 -> output: <list> of (2*n_ao+1) <float>;
#X text 346 331 -> output: <list> of (n_ao+1)*(n_ao+1) <float>;
#X text 387 356 -> output: <row> + index + (2*n_ao+1) <float>;
#X text 387 368 -> output: <row> + index + (n_ao+1)*(n_ao+1) <float>
;
#X text 383 394 -> output: <col> + index + (2*n_ao+1) <float>;
#X text 383 406 -> output: <col> + index + (n_ao+1)*(n_ao+1) <float>
;
#X text 432 424 for crossfading of 2 ambisonic-systems;
#X msg 605 183 ambi_weight 1 1 1;
#X msg 588 162 ambi_weight 1 1 0.3904;
#X text 299 424 ambisonic-order-group;
#X text 89 452 -90 <= delta <= +90;
#X text 89 464 -180 <= phi <= +180;
#X text 415 439 or for bluring a signal-source-direction;
#X text 31 506 order of ambisonic-channels in 2d-case: W X1 Y1 X2 Y2
X3 Y3;
#X text 391 506 X4 Y4 X5 Y5 ....;
#X text 167 520 W := 1 \, X-term ... cos(i*phi) \, Y-term ... sin(i*phi)
;
#X text 30 560 order of ambisonic-channels in 3d-case: W Z1X1 Z1Y1
Z1;
#X text 358 560 Z2X2 Z2Y2 Z2X1 Z2Y1 Z2 Z3X3 Z3Y3 Z3X2 Z3Y2 Z3X1 Z3Y1
Z3 ...;
#X text 166 574 W := 1 \, X-term ... cos(i*phi) \, Y-term ... sin(i*phi)
\,;
#X text 489 574 Z-term ... cos(j*delta)*sin(k*delta);
#X text 33 318 input: <float> phi [degree] .. 2-dimensional;
#X text 33 331 input: <list> delta + phi [degree] .. 3-dimensional
;
#X text 33 356 input: <row> index + phi [degree] .. 2-dimensional;
#X text 34 368 input: <row> index + delta + phi [degree] .. 3-dimensional
;
#X text 31 395 input: <col> index + phi [degree .. 2-dimensional;
#X text 31 407 input: <col> index + delta + phi [degree] .. 3-dimensional
;
#X text 31 424 input: <ambi_weight> one mul-factor for each;
#X text 267 492 |0| 1 | 2 | 3 | 4 | 5 |;
#X text 687 549 |;
#X text 263 547 |0| 1 | 2 | 3;
#X floatatom 226 142 5 -180 180 0 - - -;
#X floatatom 177 143 5 -90 90 0 - - -;
#X text 174 124 delta;
#X text 228 123 phi;
#X floatatom 327 139 5 -180 180 0 - - -;
#X floatatom 278 140 5 -90 90 0 - - -;
#X text 275 121 delta;
#X text 329 120 phi;
#X floatatom 370 65 5 -180 180 0 - - -;
#X text 372 46 phi;
#X floatatom 425 79 5 -180 180 0 - - -;
#X text 427 60 phi;
#X floatatom 461 160 5 -180 180 0 - - -;
#X text 463 141 phi;
#X text 491 272 (1 .. 5 for 3 dimensional use);
#X msg 184 218 row 4 \$1 \$2;
#X text 112 12 calculates a row or column of a ambisonic-encoder-matrix
;
#X text 82 849 "float"-message: <float> azimuth-angle phi [degree]
-> two-dimensional ambisonic-system -> output a <list> of (2*n_ao +
1) <float> elements;
#X text 478 850 "list"-message: 1.item <float> elevation-angle delta
[degree] \, 2.item <float> azimuth-angle phi [degree] -> three-dimensional
ambisonic-system -> output a <list> of (n_ao + 1)^2 <float> elements
;
#X text 87 914 "row"-message: <float> row-index of ambisonic-encoder-matrix
\, <float> azimuth-angle phi [degree] -> two-dimensional ambisonic-system
-> output a "row"-message + <float> row-index + (2*n_ao + 1) <float>
elements;
#X text 480 919 "row"-message: 1.item <float> elevation-angle delta
[degree] \, 2.item <float> azimuth-angle phi [degree] -> three-dimensional
ambisonic-system -> output a <list> of (n_ao + 1)^2 <float> elements
;
#X text 105 441 1 <= index <= nr_sources;
#N canvas 0 0 860 478 3D-5.Order-example 0;
#X obj 78 97 pack 0 0;
#X floatatom 78 55 5 -90 90 0 - - -;
#X floatatom 121 56 5 -180 180 0 - - -;
#X text 63 24 delta;
#X text 44 38 -90 .. +90;
#X text 147 26 phi;
#X text 120 40 -180 .. +180;
#X obj 96 76 t b f;
#X obj 97 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 9439 1;
#X obj 107 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 6442 1;
#X obj 117 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 3208 1;
#X obj 127 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 137 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 147 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 157 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 167 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 177 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 187 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 197 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 207 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 217 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 227 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 237 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 247 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 257 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 267 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 277 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 287 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 297 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 307 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 317 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 327 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 87 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 10000 1;
#X obj 422 89 ambi_encode 4;
#X floatatom 422 68 5 -180 180 0 - - -;
#X text 434 31 phi;
#X text 407 45 -180 .. +180;
#X obj 142 202 print 3d;
#X obj 422 132 print 2d;
#X obj 78 201 route row;
#X obj 142 180 round_zero 1e-006;
#X floatatom 42 244 5 0 0 0 - - -;
#X obj 78 124 pp row 7;
#X text 13 254 row-index;
#X obj 422 111 round_zero 1e-006;
#X text 448 260 +1;
#X text 448 360 -1;
#X text 451 311 0;
#X obj 78 151 ambi_encode 5;
#X obj 78 222 unpack 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0;
#X obj 337 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 347 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 357 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 367 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 377 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 387 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 397 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 407 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 417 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 427 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X obj 437 268 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280
-1109 -1 5000 1;
#X msg 260 57 ambi_weight 1 1 1 1 1 1;
#X msg 260 95 ambi_weight 1 1 1 1 0 0;
#X msg 260 114 ambi_weight 1 1 1 0 0 0;
#X msg 260 134 ambi_weight 1 1 0 0 0 0;
#X msg 260 154 ambi_weight 1 0 0 0 0 0;
#X msg 260 76 ambi_weight 1 1 1 1 1 0;
#X connect 0 0 42 0;
#X connect 1 0 0 0;
#X connect 2 0 7 0;
#X connect 7 0 0 0;
#X connect 7 1 0 1;
#X connect 33 0 44 0;
#X connect 34 0 33 0;
#X connect 39 0 49 0;
#X connect 40 0 37 0;
#X connect 42 0 48 0;
#X connect 44 0 38 0;
#X connect 48 0 39 0;
#X connect 48 0 40 0;
#X connect 49 0 41 0;
#X connect 49 1 32 0;
#X connect 49 2 8 0;
#X connect 49 3 9 0;
#X connect 49 4 10 0;
#X connect 49 5 11 0;
#X connect 49 6 12 0;
#X connect 49 7 13 0;
#X connect 49 8 14 0;
#X connect 49 9 15 0;
#X connect 49 10 16 0;
#X connect 49 11 17 0;
#X connect 49 12 18 0;
#X connect 49 13 19 0;
#X connect 49 14 20 0;
#X connect 49 15 21 0;
#X connect 49 16 22 0;
#X connect 49 17 23 0;
#X connect 49 18 24 0;
#X connect 49 19 25 0;
#X connect 49 20 26 0;
#X connect 49 21 27 0;
#X connect 49 22 28 0;
#X connect 49 23 29 0;
#X connect 49 24 30 0;
#X connect 49 25 31 0;
#X connect 49 26 50 0;
#X connect 49 27 51 0;
#X connect 49 28 52 0;
#X connect 49 29 53 0;
#X connect 49 30 54 0;
#X connect 49 31 55 0;
#X connect 49 32 56 0;
#X connect 49 33 57 0;
#X connect 49 34 58 0;
#X connect 49 35 59 0;
#X connect 49 36 60 0;
#X connect 61 0 48 0;
#X connect 62 0 48 0;
#X connect 63 0 48 0;
#X connect 64 0 48 0;
#X connect 65 0 48 0;
#X connect 66 0 48 0;
#X restore 538 61 pd 3D-5.Order-example;
#X connect 0 0 9 0;
#X connect 4 0 0 0;
#X connect 5 0 0 0;
#X connect 6 0 0 0;
#X connect 7 0 6 0;
#X connect 8 0 7 0;
#X connect 8 1 7 1;
#X connect 9 0 1 0;
#X connect 10 0 65 0;
#X connect 11 0 10 0;
#X connect 11 1 10 1;
#X connect 12 0 15 0;
#X connect 13 0 14 0;
#X connect 14 0 0 0;
#X connect 15 0 14 0;
#X connect 15 1 14 1;
#X connect 27 0 0 0;
#X connect 28 0 0 0;
#X connect 50 0 11 0;
#X connect 51 0 10 0;
#X connect 54 0 8 0;
#X connect 55 0 7 0;
#X connect 58 0 0 0;
#X connect 60 0 5 0;
#X connect 62 0 4 0;
#X connect 65 0 0 0;