#N canvas 82 3 844 643 10; #X obj 38 441 print; #X text 454 156 1.arg: ambisonic order; #X obj 38 418 round_zero 1e-006; #X text 297 312 ambisonic-order = n_ao; #X text 485 387 ambisonic-order-group; #X text 273 428 -90 <= delta <= +90; #X text 273 440 -180 <= phi <= +180; #X text 214 387 input: one mul-factor for each; #X text 21 12 ambi_decode; #X text 105 12 calculates a decoder-matrix; #X obj 38 33 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -42246 -1; #X text 214 336 input: index + phi [degree] .. 2-dimensional; #X text 214 346 input: index + delta + phi [degree] .. 3-dimensional ; #X text 214 360 input: index + phi [degree .. 2-dimensional ; #X text 214 371 input: index + delta + phi [degree] .. 3-dimensional ; #X text 238 518 n_col = (2*n_ao+1) = number of ambisonic-channels ; #X text 226 527 + n_row = (n_ls) = number of loudspeakers; #X text 466 313 number of loudspeakers = n_ls; #X text 229 587 + n_row = (n_ls) = number of loudspeakers; #X text 214 568 output in case of 3d: ((n_ao+1)*(n_ao+1)*n_ls+2) ; #X text 212 507 output in case of 2d: ((2*n_ao+1)*n_ls+2) ; #X text 559 568 :; #X text 516 506 :; #X text 456 578 number of ambisonic-channels; #X text 241 578 n_col = (n_ao+1)*(n_ao+1) =; #X text 427 597 elements of a matrix; #X text 229 597 + (n_ao + 1) * (n_ao + 1) * n_ls; #X text 226 537 + (2*n_ao + 1) * n_ls elements of a matrix ; #X text 207 460 input: calculates the pseudo-inverse of the encoded; #X text 263 471 loudspeaker-positions (+ the phantom-speakers); #X text 277 482 and output a matrix-message; #X text 288 417 1 <= index <= n_ao; #X text 544 268 a regular matrix to inverse it); #X text 375 399 to suppress the side-lobe-phenomena; #X text 467 258 (it is sometimes necessary to add phantom-ls. for achieving ; #X msg 38 372 pseudo_inverse; #X msg 234 128 ambi_weight 1 1 1 0.3904; #X msg 108 129 ambi_weight 1 1 1 1; #X msg 123 104 mirror_weight 0.7; #X obj 94 178 pp ind_ls; #X msg 94 155 1 90 0 \, 2 45 45 \, 3 45 135 \, 4 45 225 \, 5 45 315 ; #X obj 38 396 ambi_decode2 3 3 5 8 1; #X obj 80 243 pp mrg_ls; #X msg 80 208 1 0 0 \, 2 0 45 \, 3 0 90 \, 4 0 135 \, 5 0 180 \, 6 0 225 \, 7 0 270 \, 8 0 315; #X obj 66 300 pp mir_ls; #X msg 66 265 1 -45 0 \, 2 -45 45 \, 3 -45 90 \, 4 -45 135 \, 5 -45 180 \, 6 -45 225 \, 7 -45 270 \, 8 -45 315; #X obj 52 346 pp pht_ls; #X msg 52 323 1 -90 0; #X obj 38 77 t b b b b b b b; #X text 469 174 (1 .. 5 in case of 3 dimensional); #X text 469 165 (1 .. 12 in case of 2 dimensional); #X text 455 196 3.arg: number of independent loudspeakers; #X text 454 184 2.arg: dimension (2 or 3); #X text 454 247 5.arg: number of canceled phantom_loudspeakers ; #X text 455 208 4.arg: number of merged and mirrored loudspeakers ; #X text 501 221 (the merged loudspeakers are at the border of the arc ; #X text 514 233 or the hemisphere \, the mirrored loudspeakers are ; #X connect 2 0 0 0; #X connect 10 0 48 0; #X connect 35 0 41 0; #X connect 36 0 41 0; #X connect 37 0 41 0; #X connect 38 0 41 0; #X connect 39 0 41 0; #X connect 40 0 39 0; #X connect 41 0 2 0; #X connect 42 0 41 0; #X connect 43 0 42 0; #X connect 44 0 41 0; #X connect 45 0 44 0; #X connect 46 0 41 0; #X connect 47 0 46 0; #X connect 48 0 35 0; #X connect 48 1 47 0; #X connect 48 2 45 0; #X connect 48 3 43 0; #X connect 48 4 40 0; #X connect 48 5 37 0; #X connect 48 6 38 0;