From eb949698bcd785234e69281b7dbc98f849d9f684 Mon Sep 17 00:00:00 2001 From: musil Date: Thu, 11 Dec 2008 17:43:30 +0000 Subject: moved help-files from help to ../ svn path=/trunk/externals/iem/iem_ambi/; revision=10437 --- ambi_decode3-help.pd | 270 +++++++++++++++++++++++++++++++++ ambi_encode-help.pd | 377 ++++++++++++++++++++++++++++++++++++++++++++++ ambi_rot-help.pd | 194 ++++++++++++++++++++++++ help/ambi_decode3-help.pd | 270 --------------------------------- help/ambi_encode-help.pd | 377 ---------------------------------------------- help/ambi_rot-help.pd | 194 ------------------------ 6 files changed, 841 insertions(+), 841 deletions(-) create mode 100644 ambi_decode3-help.pd create mode 100644 ambi_encode-help.pd create mode 100644 ambi_rot-help.pd delete mode 100644 help/ambi_decode3-help.pd delete mode 100644 help/ambi_encode-help.pd delete mode 100644 help/ambi_rot-help.pd diff --git a/ambi_decode3-help.pd b/ambi_decode3-help.pd new file mode 100644 index 0000000..62b5cc7 --- /dev/null +++ b/ambi_decode3-help.pd @@ -0,0 +1,270 @@ +#N canvas 4 2 981 718 10; +#X text 27 436 1.arg: ambisonic order; +#X text 794 41 -180 <= phi <= +180; +#X text 494 172 input: one mul-factor for each; +#X text 42 454 (1 .. 5 in case of 3 dimensional); +#X text 42 445 (1 .. 12 in case of 2 dimensional); +#X text 27 464 2.arg: dimension (2 or 3); +#X text 78 645 IEM KUG; +#X text 62 633 musil; +#X text 92 633 @; +#X text 98 633 iem.at; +#X text 61 655 Graz \, Austria; +#X text 13 622 (c) Thomas Musil 2000 - 2006; +#X obj 109 347 cnv 15 126 15 empty empty empty 20 12 0 14 -260818 -66577 +0; +#X obj 108 368 round_zero 1e-006; +#X obj 38 33 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -42246 +-1; +#X msg 246 121 ambi_weight 1 1 1 0.3904; +#X msg 108 121 ambi_weight 1 1 1 1; +#X msg 124 99 mirror_weight 0.7; +#X obj 80 220 pp pht_ls; +#X obj 38 77 t b b b b b b b; +#X msg 94 143 1 90 0 \, 2 45 45 \, 3 45 135 \, 4 45 225 \, 5 45 315 +\, 6 0 0 \, 7 0 45 \, 8 0 90 \, 9 0 135 \, 10 0 180 \, 11 0 225 \, +12 0 270 \, 13 0 315; +#X obj 94 177 pp real_ls; +#X msg 66 243 begin_pseudo_inverse; +#X obj 108 346 ambi_decode3 3 3 13 6; +#X msg 38 313 end_pseudo_inverse; +#X msg 80 199 1 -45 0 \, 2 -45 90 \, 3 -45 180 \, 4 -45 270 \, 6 -90 +0; +#X msg 52 289 ipht_ireal_muladd \$1 \$2 \$3; +#N canvas 337 146 567 517 mirror_phantom_ls_____ 0; +#X msg 142 186 1 6 \$1; +#X obj 102 58 inlet; +#X obj 101 441 outlet; +#X obj 162 59 inlet; +#X obj 71 135 f; +#X obj 103 135 f; +#X obj 157 106 * 0.25; +#X obj 214 106 * 0.5; +#X msg 163 211 2 8 \$1; +#X msg 40 187 1 13 \$1 \, 1 7 \$1; +#X msg 61 212 2 7 \$1 \, 2 9 \$1; +#X msg 179 241 3 10 \$1; +#X msg 77 242 3 9 \$1 \, 3 11 \$1; +#X msg 199 271 4 12 \$1; +#X msg 87 271 4 11 \$1 \, 4 13 \$1; +#X obj 162 81 route mirror_weight; +#X obj 380 60 inlet; +#X connect 0 0 2 0; +#X connect 1 0 4 0; +#X connect 1 0 5 0; +#X connect 3 0 15 0; +#X connect 4 0 9 0; +#X connect 4 0 10 0; +#X connect 4 0 12 0; +#X connect 4 0 14 0; +#X connect 5 0 0 0; +#X connect 5 0 8 0; +#X connect 5 0 11 0; +#X connect 5 0 13 0; +#X connect 6 0 4 1; +#X connect 7 0 5 1; +#X connect 8 0 2 0; +#X connect 9 0 2 0; +#X connect 10 0 2 0; +#X connect 11 0 2 0; +#X connect 12 0 2 0; +#X connect 13 0 2 0; +#X connect 14 0 2 0; +#X connect 15 0 7 0; +#X connect 15 0 6 0; +#X restore 52 268 pd mirror_phantom_ls_____; +#X text 18 9 ambi_decode3; +#X text 160 14 AMBISONIC DECODING; +#X text 131 40 up to 12.Order 2-dimensional; +#X text 128 28 up to 5.Order 3-dimensional or; +#X text 508 5 n_ao = ambisonic-order; +#X text 520 42 all angles in degree; +#X text 539 183 ambisonic order group to suppress the side-lobe-phenomena +; +#X text 493 274 input: starts the encoding; +#X text 536 285 of all (real + phantom) loudspeaker positions \,; +#X text 537 309 and calculates the pseudo inverse.; +#X text 540 297 multiplicates the ambi order weight; +#X msg 276 230 sing_range 1e-010; +#X text 799 328 mirror_weight; +#X text 545 354 phantom speaker with the factor "mirror_weight" and +adds; +#X text 494 202 input: singularity range; +#X text 537 213 when calculating the inverse of the matrix by gauss +; +#X text 537 223 algorithm \, you have to divide a row by a certain +number \,; +#X text 537 243 outside of this range (> sing_range \, or < -sing_range). +; +#X text 493 385 input: outputs only the first +part of; +#X text 539 398 the inverted matrix (row 1 to row n_pht_ls). The part +; +#X text 541 410 with the phantom speakers \, we ignore.; +#X obj 221 576 cnv 15 192 15 empty empty empty 20 12 0 14 -260818 -66577 +0; +#X obj 221 601 cnv 15 228 15 empty empty empty 20 12 0 14 -260818 -66577 +0; +#X text 537 255 Otherwise we say \, this matrix is singular.; +#N canvas 149 60 413 549 real_speaker_example 0; +#X obj 124 33 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -42246 +-1; +#X obj 143 217 cnv 15 120 15 empty empty empty 20 12 0 14 -260818 -66577 +0; +#X obj 142 261 print; +#X obj 142 238 round_zero 1e-006; +#X obj 161 121 pp real_ls; +#X msg 142 144 begin_pseudo_inverse; +#X msg 124 167 end_pseudo_inverse; +#X obj 142 216 ambi_decode3 2 2 5 0; +#X obj 124 75 t b b b; +#X msg 161 98 1 5 \, 2 2.5 \, 3 0 \, 4 -2.5 \, 5 -5; +#X text 110 300 ambisonic system 2.order; +#X text 137 313 2 dimensional; +#X text 135 327 5 real speakers; +#X text 100 347 arranged in a very small arc between; +#X text 117 360 +5 degrees and -5 degrees; +#X text 82 490 IEM KUG; +#X text 66 478 musil; +#X text 96 478 @; +#X text 102 478 iem.at; +#X text 65 500 Graz \, Austria; +#X text 17 467 (c) Thomas Musil 2000 - 2006; +#X connect 0 0 8 0; +#X connect 3 0 2 0; +#X connect 4 0 7 0; +#X connect 5 0 7 0; +#X connect 6 0 7 0; +#X connect 7 0 3 0; +#X connect 8 0 6 0; +#X connect 8 1 5 0; +#X connect 8 2 9 0; +#X connect 9 0 4 0; +#X restore 220 575 pd real_speaker_example singular; +#N canvas 250 68 437 609 phantom_speaker_example 0; +#X obj 79 30 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -42246 +-1; +#X obj 184 250 cnv 15 132 15 empty empty empty 20 12 0 14 -260818 -66577 +0; +#X obj 183 299 print; +#X obj 183 274 round_zero 1e-006; +#X obj 202 164 pp real_ls; +#X msg 183 187 begin_pseudo_inverse; +#X msg 165 210 end_pseudo_inverse; +#X obj 165 118 t b b b; +#X msg 202 141 1 5 \, 2 2.5 \, 3 0 \, 4 -2.5 \, 5 -5; +#X text 151 343 ambisonic system 2.order; +#X text 178 356 2 dimensional; +#X text 176 370 5 real speakers; +#X obj 79 190 pp pht_ls; +#X obj 79 71 for++ 0 138; +#X obj 79 94 t f f; +#X obj 79 125 + 1; +#X obj 104 116 * 2.5; +#X obj 104 138 + 7.5; +#X obj 79 168 pack 0 0; +#X obj 183 249 ambi_decode3 2 2 5 139; +#X text 157 395 -5 degrees and +5 degrees; +#X text 166 410 139 phantom speakers; +#X text 140 382 arranged on a very small arc between; +#X text 150 422 arranged on an arc between; +#X text 154 436 +7.5 degrees and -7.5 degrees; +#X text 86 558 IEM KUG; +#X text 70 546 musil; +#X text 100 546 @; +#X text 106 546 iem.at; +#X text 69 568 Graz \, Austria; +#X text 21 535 (c) Thomas Musil 2000 - 2006; +#X connect 0 0 13 0; +#X connect 3 0 2 0; +#X connect 4 0 19 0; +#X connect 5 0 19 0; +#X connect 6 0 19 0; +#X connect 7 0 6 0; +#X connect 7 1 5 0; +#X connect 7 2 8 0; +#X connect 8 0 4 0; +#X connect 12 0 19 0; +#X connect 13 0 14 0; +#X connect 13 1 7 0; +#X connect 14 0 15 0; +#X connect 14 1 16 0; +#X connect 15 0 18 0; +#X connect 16 0 17 0; +#X connect 17 0 18 1; +#X connect 18 0 12 0; +#X connect 19 0 3 0; +#X restore 220 600 pd phantom_speaker_example nonsingular; +#X text 537 233 to achieve the identity matrix. This number has to +be; +#X obj 108 391 mtx_print; +#X text 504 463 + n_col = (2*n_ao+1) = number of ambisonic-channels +; +#X text 27 476 3.arg: number of real existing loudspeakers +; +#X text 27 488 4.arg: number of virtual phantom_loudspeakers +; +#X text 493 16 n_re_ls = number of real loudspeakers; +#X text 493 28 n_vi_ls = number of virtual phantom loudspeakers; +#X text 494 78 input: re_ls_index + phi .. 2-dimensional +; +#X text 494 88 input: re_ls_index + theta + phi .. 3-dimensional +; +#X text 494 118 input: vi_ls_index + phi .. 2-dimensional +; +#X text 494 129 input: vi_ls_index + theta + phi .. 3-dimensional +; +#X text 794 29 -90 <= theta <= +90; +#X text 786 5 1 <= re_ls_index <= n_re_ls; +#X text 786 16 1 <= vi_ls_index <= n_vi_ls; +#X text 59 423 initial arguments:; +#X text 334 18 calculates a ambisonic; +#X text 358 29 decoder matrix; +#X text 529 100 encodes the re_ls_index row of a matrix; +#X text 525 141 encodes the (re_ls_index + vi_ls_index) row of a matrix +; +#X text 532 153 we need them to achieve a nonsingular matrix; +#X text 493 328 input: vi_ls_index re_ls_index +; +#X text 811 443 floats :; +#X text 851 503 floats :; +#X text 516 513 n_row = (n_re_ls) = number of real loudspeakers +; +#X text 516 453 n_row = (n_re_ls) = number of real loudspeakers +; +#X text 784 523 ambisonic-channels; +#X text 504 523 + n_col = (n_ao+1)*(nao+1) = number of; +#X text 825 534 decoder matrix; +#X text 504 474 + (2*n_ao + 1) * n_re_ls elements of the; +#X text 504 534 + (n_ao+1)*(n_ao+1) * n_re_ls elements of the +; +#X text 796 474 decoder matrix; +#X text 490 443 output in case of 2d: (n_re_ls*(2*n_ao+1)+2) +; +#X text 490 503 output in case of 3d: (n_re_ls*(n_ao+1)*(n_ao+1)+2) +; +#X text 544 367 this column to the column "re_ls_index" of real speaker +; +#X text 546 341 multiplies the column "vi_ls_index + n_re_ls" of; +#X connect 13 0 55 0; +#X connect 14 0 19 0; +#X connect 15 0 23 0; +#X connect 16 0 23 0; +#X connect 17 0 27 1; +#X connect 18 0 23 0; +#X connect 19 0 24 0; +#X connect 19 1 27 0; +#X connect 19 2 22 0; +#X connect 19 3 25 0; +#X connect 19 4 20 0; +#X connect 19 5 16 0; +#X connect 19 6 17 0; +#X connect 20 0 21 0; +#X connect 21 0 23 0; +#X connect 22 0 23 0; +#X connect 23 0 13 0; +#X connect 24 0 23 0; +#X connect 25 0 18 0; +#X connect 26 0 23 0; +#X connect 27 0 26 0; +#X connect 39 0 23 0; diff --git a/ambi_encode-help.pd b/ambi_encode-help.pd new file mode 100644 index 0000000..91f46b3 --- /dev/null +++ b/ambi_encode-help.pd @@ -0,0 +1,377 @@ +#N canvas 61 22 872 684 10; +#X obj 375 244 cnv 15 78 15 empty empty empty 20 12 0 14 -260818 -66577 +0; +#X obj 374 243 ambi_encode 2; +#X obj 374 288 print; +#X text 478 247 1.arg: 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 102 142 phi; +#X text 21 12 ambi_encode; +#X text 34 291 ambisonic-order = n_ao; +#X text 346 320 -> output: of (2*n_ao+1) ; +#X text 346 331 -> output: of (n_ao+1)*(n_ao+1) ; +#X text 387 356 -> output: + index + (2*n_ao+1) ; +#X text 387 368 -> output: + index + (n_ao+1)*(n_ao+1) +; +#X text 383 394 -> output: + index + (2*n_ao+1) ; +#X text 383 406 -> output: + index + (n_ao+1)*(n_ao+1) +; +#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 464 -180 <= phi <= +180; +#X text 415 439 or for bluring a signal-source-direction; +#X text 31 496 order of ambisonic-channels in 2d-case: W X1 Y1 X2 Y2 +X3 Y3; +#X text 391 496 X4 Y4 X5 Y5 ....; +#X text 167 510 W := 1 \, X-term ... cos(i*phi) \, Y-term ... sin(i*phi) +; +#X text 30 550 order of ambisonic-channels in 3d-case: W Z1X1 Z1Y1 +Z1; +#X text 358 550 Z2X2 Z2Y2 Z2X1 Z2Y1 Z2 Z3X3 Z3Y3 Z3X2 Z3Y2 Z3X1 Z3Y1 +Z3 ...; +#X text 166 564 W := 1 \, X-term ... cos(i*phi) \, Y-term ... sin(i*phi) +\,; +#X text 33 318 input: phi [degree] .. 2-dimensional; +#X text 33 356 input: index + phi [degree] .. 2-dimensional; +#X text 31 395 input: index + phi [degree .. 2-dimensional; +#X text 31 424 input: one mul-factor for each; +#X text 267 482 |0| 1 | 2 | 3 | 4 | 5 |; +#X text 687 539 |; +#X text 263 537 |0| 1 | 2 | 3; +#X floatatom 226 142 5 -180 180 0 - - -; +#X floatatom 177 143 5 -90 90 0 - - -; +#X text 228 123 phi; +#X floatatom 327 139 5 -180 180 0 - - -; +#X floatatom 278 140 5 -90 90 0 - - -; +#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 82 849 "float"-message: azimuth-angle phi [degree] +-> two-dimensional ambisonic-system -> output a of (2*n_ao + +1) elements; +#X text 478 850 "list"-message: 1.item elevation-angle delta +[degree] \, 2.item azimuth-angle phi [degree] -> three-dimensional +ambisonic-system -> output a of (n_ao + 1)^2 elements +; +#X text 87 914 "row"-message: row-index of ambisonic-encoder-matrix +\, azimuth-angle phi [degree] -> two-dimensional ambisonic-system +-> output a "row"-message + row-index + (2*n_ao + 1) +elements; +#X text 480 919 "row"-message: 1.item elevation-angle delta +[degree] \, 2.item azimuth-angle phi [degree] -> three-dimensional +ambisonic-system -> output a of (n_ao + 1)^2 elements +; +#X text 105 441 1 <= index <= nr_sources; +#X text 120 6 AMBISONIC ENCODING; +#X text 112 32 up to 12.Order 2-dimensional; +#X text 109 20 up to 5.Order 3-dimensional or; +#X text 366 8 calculates a row or column of; +#X text 372 20 a ambisonic-encoder-matrix; +#X obj 539 62 cnv 15 126 15 empty empty empty 20 12 0 14 -260818 -66577 +0; +#N canvas 0 0 628 490 3D-5.Order-example 0; +#X obj 83 104 pack 0 0; +#X floatatom 83 62 5 -90 90 0 - - -; +#X floatatom 126 63 5 -180 180 0 - - -; +#X text 49 45 -90 .. +90; +#X text 152 33 phi; +#X text 125 47 -180 .. +180; +#X obj 101 83 t b f; +#X obj 102 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 112 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 122 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 132 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 142 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 152 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 162 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 172 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 182 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 192 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 202 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 212 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 222 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 232 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 242 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 252 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 262 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 272 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 282 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 292 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 302 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 312 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 322 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 332 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 92 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 427 96 ambi_encode 4; +#X floatatom 427 75 5 -180 180 0 - - -; +#X text 439 38 phi; +#X text 412 52 -180 .. +180; +#X obj 147 209 print 3d; +#X obj 427 139 print 2d; +#X obj 83 208 route row; +#X obj 147 187 round_zero 1e-006; +#X floatatom 47 251 5 0 0 0 - - -; +#X obj 83 131 pp row 7; +#X text 18 261 row-index; +#X obj 427 118 round_zero 1e-006; +#X text 453 267 +1; +#X text 453 367 -1; +#X text 456 318 0; +#X obj 83 158 ambi_encode 5; +#X obj 83 229 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 342 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 352 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 362 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 372 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 382 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 392 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 402 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 412 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 422 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 432 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X obj 442 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 +-1109 -1 0 1; +#X msg 265 64 ambi_weight 1 1 1 1 1 1; +#X msg 265 102 ambi_weight 1 1 1 1 0 0; +#X msg 265 121 ambi_weight 1 1 1 0 0 0; +#X msg 265 141 ambi_weight 1 1 0 0 0 0; +#X msg 265 161 ambi_weight 1 0 0 0 0 0; +#X msg 265 83 ambi_weight 1 1 1 1 1 0; +#X text 95 409 IEM KUG; +#X text 79 397 musil; +#X text 109 397 @; +#X text 115 397 iem.at; +#X text 78 419 Graz \, Austria; +#X text 30 386 (c) Thomas Musil 2000 - 2006; +#X text 68 32 theta; +#X connect 0 0 41 0; +#X connect 1 0 0 0; +#X connect 2 0 6 0; +#X connect 6 0 0 0; +#X connect 6 1 0 1; +#X connect 32 0 43 0; +#X connect 33 0 32 0; +#X connect 38 0 48 0; +#X connect 39 0 36 0; +#X connect 41 0 47 0; +#X connect 43 0 37 0; +#X connect 47 0 38 0; +#X connect 47 0 39 0; +#X connect 48 0 40 0; +#X connect 48 1 31 0; +#X connect 48 2 7 0; +#X connect 48 3 8 0; +#X connect 48 4 9 0; +#X connect 48 5 10 0; +#X connect 48 6 11 0; +#X connect 48 7 12 0; +#X connect 48 8 13 0; +#X connect 48 9 14 0; +#X connect 48 10 15 0; +#X connect 48 11 16 0; +#X connect 48 12 17 0; +#X connect 48 13 18 0; +#X connect 48 14 19 0; +#X connect 48 15 20 0; +#X connect 48 16 21 0; +#X connect 48 17 22 0; +#X connect 48 18 23 0; +#X connect 48 19 24 0; +#X connect 48 20 25 0; +#X connect 48 21 26 0; +#X connect 48 22 27 0; +#X connect 48 23 28 0; +#X connect 48 24 29 0; +#X connect 48 25 30 0; +#X connect 48 26 49 0; +#X connect 48 27 50 0; +#X connect 48 28 51 0; +#X connect 48 29 52 0; +#X connect 48 30 53 0; +#X connect 48 31 54 0; +#X connect 48 32 55 0; +#X connect 48 33 56 0; +#X connect 48 34 57 0; +#X connect 48 35 58 0; +#X connect 48 36 59 0; +#X connect 60 0 47 0; +#X connect 61 0 47 0; +#X connect 62 0 47 0; +#X connect 63 0 47 0; +#X connect 64 0 47 0; +#X connect 65 0 47 0; +#X restore 538 61 pd 3D-5.Order-example; +#X text 90 632 IEM KUG; +#X text 74 620 musil; +#X text 104 620 @; +#X text 110 620 iem.at; +#X text 73 642 Graz \, Austria; +#X text 25 609 (c) Thomas Musil 2000 - 2006; +#X text 48 143 theta; +#X text 174 124 theta; +#X text 275 121 theta; +#X text 33 331 input: theta + phi [degree] .. 3-dimensional; +#X text 34 368 input: index theta + phi [degree] .. 3-dimensional +; +#X text 31 407 input: index + theta + phi [degree] .. 3-dimensional +; +#X text 89 452 -90 <= theta <= +90; +#X text 489 564 Z-term ... cos(j*theta)*sin(k*theta); +#X obj 59 72 cnv 15 204 15 empty empty empty 20 12 0 14 -260818 -66577 +0; +#N canvas 0 0 620 309 Definition 0; +#X text 173 233 IEM KUG; +#X text 157 221 musil; +#X text 187 221 @; +#X text 193 221 iem.at; +#X text 156 243 Graz \, Austria; +#X text 108 210 (c) Thomas Musil 2000 - 2006; +#X text 108 154 o-; +#X text 116 149 _____; +#X text 108 147 |; +#X text 108 141 |; +#X text 108 135 |; +#X text 108 129 |; +#X text 108 125 ^; +#X text 107 140 +; +#X text 112 140 -; +#X text 104 140 -; +#X text 116 141 -; +#X text 119 140 .; +#X text 120 140 .; +#X text 121 140 .; +#X text 122 141 .; +#X text 123 141 .; +#X text 124 142 .; +#X text 125 143 .; +#X text 126 144 .; +#X text 146 154 > +x; +#X text 104 115 +y; +#X text 96 159 +z; +#X text 127 145 .; +#X text 127 146 .; +#X text 128 147 .; +#X text 128 148 .; +#X text 128 149 .; +#X text 129 150 .; +#X text 129 151 .; +#X text 69 140 +phi <; +#X text 278 154 o-; +#X text 278 129 |; +#X text 278 125 ^; +#X text 290 140 .; +#X text 291 140 .; +#X text 292 141 .; +#X text 293 141 .; +#X text 294 142 .; +#X text 295 143 .; +#X text 296 144 .; +#X text 297 145 .; +#X text 297 146 .; +#X text 298 147 .; +#X text 298 148 .; +#X text 298 149 .; +#X text 299 150 .; +#X text 299 151 .; +#X text 266 159 +x; +#X text 316 154 > +y; +#X text 274 115 +z; +#X text 278 135 |; +#X text 278 141 |; +#X text 278 147 |; +#X text 288 149 _____; +#X text 291 135 _; +#X text 288 143 |; +#X text 295 135 +theta; +#X text 74 55 theta .. elevation \, geodetical pos. orientation; +#X text 75 42 phi .... azimute in math. pos. orientation; +#X text 373 65 theta = -90 on south pole \;; +#X text 373 75 theta = 0 equator ); +#X text 361 55 ( theta = +90 on north pole \;; +#X text 332 42 ( counter clockwise in xy-plane ); +#X text 74 67 radius . is always 1; +#X text 253 23 we use the spherical coordinate system; +#X text 109 23 for ambisonic encoding \,; +#X restore 58 71 pd Definition of Coordinate System; +#X connect 1 0 10 0; +#X connect 5 0 1 0; +#X connect 6 0 1 0; +#X connect 7 0 1 0; +#X connect 8 0 7 0; +#X connect 9 0 8 0; +#X connect 9 1 8 1; +#X connect 10 0 2 0; +#X connect 11 0 58 0; +#X connect 12 0 11 0; +#X connect 12 1 11 1; +#X connect 13 0 16 0; +#X connect 14 0 15 0; +#X connect 15 0 1 0; +#X connect 16 0 15 0; +#X connect 16 1 15 1; +#X connect 27 0 1 0; +#X connect 28 0 1 0; +#X connect 45 0 12 0; +#X connect 46 0 11 0; +#X connect 48 0 9 0; +#X connect 49 0 8 0; +#X connect 51 0 1 0; +#X connect 53 0 6 0; +#X connect 55 0 5 0; +#X connect 58 0 1 0; diff --git a/ambi_rot-help.pd b/ambi_rot-help.pd new file mode 100644 index 0000000..597dcd4 --- /dev/null +++ b/ambi_rot-help.pd @@ -0,0 +1,194 @@ +#N canvas 50 9 838 665 10; +#X floatatom 50 76 6 -180 180 0 - - -; +#X obj 27 76 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 +-1; +#X floatatom 126 76 6 -180 180 0 - - -; +#X text 127 59 rho_y; +#X text 52 59 rho_z; +#X floatatom 193 76 6 -180 180 0 - - -; +#X text 195 59 rho_x; +#X obj 125 149 pack 0 0 0; +#X obj 193 120 t b f; +#X obj 126 120 t b f; +#X obj 50 93 deg2rad; +#X obj 126 94 deg2rad; +#X obj 193 95 deg2rad; +#X text 14 11 ambi_rot; +#X text 128 8 AMBISONIC ROTATION; +#X text 110 32 up to 12.Order 2-dimensional; +#X text 107 20 up to 4.Order 3-dimensional or; +#X text 615 153 o-; +#X text 623 148 _____; +#X text 653 153 > +y; +#X text 615 146 |; +#X text 615 140 |; +#X text 615 134 |; +#X text 615 128 |; +#X text 615 124 ^; +#X text 611 114 +z; +#X text 603 158 +x; +#X text 614 139 +; +#X text 619 139 -; +#X text 611 139 -; +#X text 623 140 -; +#X text 564 139 +rho_x <; +#X text 626 139 .; +#X text 627 139 .; +#X text 628 139 .; +#X text 629 140 .; +#X text 630 140 .; +#X text 631 141 .; +#X text 632 142 .; +#X text 633 143 .; +#X text 437 148 _____; +#X text 469 140 |; +#X text 469 146 |; +#X text 469 134 |; +#X text 469 128 |; +#X text 469 124 ^; +#X text 465 114 +z; +#X text 468 136 +; +#X text 473 136 -; +#X text 459 136 .; +#X text 463 153 -o; +#X text 412 153 +x <; +#X text 480 136 > +rho_y; +#X text 474 158 +y; +#X text 465 136 -; +#X text 461 137 -; +#X text 458 136 .; +#X text 457 136 .; +#X text 456 137 .; +#X text 455 137 .; +#X text 454 138 .; +#X text 453 139 .; +#X text 452 140 .; +#X text 308 148 _____; +#X text 340 140 |; +#X text 340 146 |; +#X text 340 134 |; +#X text 340 128 |; +#X text 340 124 ^; +#X text 334 153 -o; +#X text 336 114 +x; +#X text 283 153 +y <; +#X text 345 158 +z; +#X text 339 136 +; +#X text 344 136 -; +#X text 336 136 -; +#X text 348 137 -; +#X text 351 136 .; +#X text 352 136 .; +#X text 353 136 .; +#X text 354 137 .; +#X text 355 137 .; +#X text 356 138 .; +#X text 357 139 .; +#X text 358 140 .; +#X text 289 136 +rho_z <; +#X text 300 60 rho_z ... rotation angle resp. z-axe; +#X text 300 71 rho_y ... rotation angle resp. y-axe; +#X text 300 82 rho_x ... rotation angle resp. x-axe; +#X obj 82 250 cnv 15 60 15 empty empty empty 20 12 0 14 -260818 -66577 +0; +#X obj 151 250 cnv 15 60 15 empty empty empty 20 12 0 14 -260818 -66577 +0; +#X obj 81 299 mtx_mul; +#X obj 150 229 pack 0 0 0; +#X obj 150 189 unpack 0 0 0; +#X obj 150 209 * -1; +#X obj 125 169 t l l; +#X obj 99 320 mtx_mul; +#X obj 117 340 mtx_mul; +#X obj 136 360 mtx_mul; +#X obj 183 209 * -1; +#X obj 217 209 * -1; +#X obj 150 249 ambi_rot 4; +#X obj 81 249 ambi_rot 4; +#X obj 355 476 round_zero 0.0001; +#X obj 355 418 round_zero 0.0001; +#X obj 349 359 round_zero 0.0001; +#X obj 353 299 round_zero 0.0001; +#X symbolatom 473 309 0 0 0 0 - - -; +#X symbolatom 473 344 0 0 0 0 - - -; +#X symbolatom 474 423 0 0 0 0 - - -; +#X symbolatom 474 536 0 0 0 0 - - -; +#X obj 355 496 mergefilename blank; +#X obj 353 321 mergefilename blank; +#X obj 349 380 mergefilename blank; +#X obj 355 438 mergefilename blank; +#X text 380 282 1st order; +#X text 383 341 2nd order; +#X text 378 400 3rd order; +#X text 376 456 4th order; +#X text 325 6 calculates a matrix message; +#X text 329 17 for each ambisonic order; +#X text 233 250 1.arg.: ambisonic order; +#X text 283 190 inlet: rotation angle in degree for 2-D; +#X text 322 204 or a list of 3 floats in degree for 3-D:; +#X text 334 216 1.) rotation angle of z-axe; +#X text 334 236 3.) rotation angle of x-axe; +#X text 334 226 2.) rotation angle of y-axe; +#X obj 709 136 ambi_rot 4; +#X obj 709 46 ambi_rot 1; +#X obj 709 76 ambi_rot 2; +#X obj 709 106 ambi_rot 3; +#X obj 709 166 ambi_rot 5; +#X obj 709 196 ambi_rot 6; +#X obj 709 226 ambi_rot 7; +#X obj 669 256 ambi_rot 12 ________; +#X text 11 437 with "matrix" \, followed by number; +#X text 11 449 of rows and columns and the >float> elements.; +#X text 23 462 1.outlet is the ambisonic rotation matrix; +#X text 12 474 for the components of 1.order ambisonc domain.; +#X text 23 487 2.outlet is the ambisonic rotation matrix; +#X text 12 499 for the components of 2.order ambisonc domain.; +#X text 105 513 aso.; +#X text 10 425 outlets: matrix message beginning; +#X text 79 603 IEM KUG; +#X text 63 591 musil; +#X text 93 591 @; +#X text 99 591 iem.at; +#X text 62 613 Graz \, Austria; +#X text 14 580 (c) Thomas Musil 2000 - 2006; +#X connect 0 0 10 0; +#X connect 1 0 0 0; +#X connect 2 0 11 0; +#X connect 5 0 12 0; +#X connect 7 0 95 0; +#X connect 8 0 7 0; +#X connect 8 1 7 2; +#X connect 9 0 7 0; +#X connect 9 1 7 1; +#X connect 10 0 7 0; +#X connect 11 0 9 0; +#X connect 12 0 8 0; +#X connect 91 0 106 0; +#X connect 92 0 101 0; +#X connect 93 0 94 0; +#X connect 93 1 99 0; +#X connect 93 2 100 0; +#X connect 94 0 92 0; +#X connect 95 0 102 0; +#X connect 95 1 93 0; +#X connect 96 0 105 0; +#X connect 97 0 104 0; +#X connect 98 0 103 0; +#X connect 99 0 92 1; +#X connect 100 0 92 2; +#X connect 101 0 91 1; +#X connect 101 1 96 1; +#X connect 101 2 97 1; +#X connect 101 3 98 1; +#X connect 102 0 91 0; +#X connect 102 1 96 0; +#X connect 102 2 97 0; +#X connect 102 3 98 0; +#X connect 103 0 111 0; +#X connect 104 0 114 0; +#X connect 105 0 113 0; +#X connect 106 0 112 0; +#X connect 111 0 110 0; +#X connect 112 0 107 0; +#X connect 113 0 108 0; +#X connect 114 0 109 0; diff --git a/help/ambi_decode3-help.pd b/help/ambi_decode3-help.pd deleted file mode 100644 index 62b5cc7..0000000 --- a/help/ambi_decode3-help.pd +++ /dev/null @@ -1,270 +0,0 @@ -#N canvas 4 2 981 718 10; -#X text 27 436 1.arg: ambisonic order; -#X text 794 41 -180 <= phi <= +180; -#X text 494 172 input: one mul-factor for each; -#X text 42 454 (1 .. 5 in case of 3 dimensional); -#X text 42 445 (1 .. 12 in case of 2 dimensional); -#X text 27 464 2.arg: dimension (2 or 3); -#X text 78 645 IEM KUG; -#X text 62 633 musil; -#X text 92 633 @; -#X text 98 633 iem.at; -#X text 61 655 Graz \, Austria; -#X text 13 622 (c) Thomas Musil 2000 - 2006; -#X obj 109 347 cnv 15 126 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X obj 108 368 round_zero 1e-006; -#X obj 38 33 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -42246 --1; -#X msg 246 121 ambi_weight 1 1 1 0.3904; -#X msg 108 121 ambi_weight 1 1 1 1; -#X msg 124 99 mirror_weight 0.7; -#X obj 80 220 pp pht_ls; -#X obj 38 77 t b b b b b b b; -#X msg 94 143 1 90 0 \, 2 45 45 \, 3 45 135 \, 4 45 225 \, 5 45 315 -\, 6 0 0 \, 7 0 45 \, 8 0 90 \, 9 0 135 \, 10 0 180 \, 11 0 225 \, -12 0 270 \, 13 0 315; -#X obj 94 177 pp real_ls; -#X msg 66 243 begin_pseudo_inverse; -#X obj 108 346 ambi_decode3 3 3 13 6; -#X msg 38 313 end_pseudo_inverse; -#X msg 80 199 1 -45 0 \, 2 -45 90 \, 3 -45 180 \, 4 -45 270 \, 6 -90 -0; -#X msg 52 289 ipht_ireal_muladd \$1 \$2 \$3; -#N canvas 337 146 567 517 mirror_phantom_ls_____ 0; -#X msg 142 186 1 6 \$1; -#X obj 102 58 inlet; -#X obj 101 441 outlet; -#X obj 162 59 inlet; -#X obj 71 135 f; -#X obj 103 135 f; -#X obj 157 106 * 0.25; -#X obj 214 106 * 0.5; -#X msg 163 211 2 8 \$1; -#X msg 40 187 1 13 \$1 \, 1 7 \$1; -#X msg 61 212 2 7 \$1 \, 2 9 \$1; -#X msg 179 241 3 10 \$1; -#X msg 77 242 3 9 \$1 \, 3 11 \$1; -#X msg 199 271 4 12 \$1; -#X msg 87 271 4 11 \$1 \, 4 13 \$1; -#X obj 162 81 route mirror_weight; -#X obj 380 60 inlet; -#X connect 0 0 2 0; -#X connect 1 0 4 0; -#X connect 1 0 5 0; -#X connect 3 0 15 0; -#X connect 4 0 9 0; -#X connect 4 0 10 0; -#X connect 4 0 12 0; -#X connect 4 0 14 0; -#X connect 5 0 0 0; -#X connect 5 0 8 0; -#X connect 5 0 11 0; -#X connect 5 0 13 0; -#X connect 6 0 4 1; -#X connect 7 0 5 1; -#X connect 8 0 2 0; -#X connect 9 0 2 0; -#X connect 10 0 2 0; -#X connect 11 0 2 0; -#X connect 12 0 2 0; -#X connect 13 0 2 0; -#X connect 14 0 2 0; -#X connect 15 0 7 0; -#X connect 15 0 6 0; -#X restore 52 268 pd mirror_phantom_ls_____; -#X text 18 9 ambi_decode3; -#X text 160 14 AMBISONIC DECODING; -#X text 131 40 up to 12.Order 2-dimensional; -#X text 128 28 up to 5.Order 3-dimensional or; -#X text 508 5 n_ao = ambisonic-order; -#X text 520 42 all angles in degree; -#X text 539 183 ambisonic order group to suppress the side-lobe-phenomena -; -#X text 493 274 input: starts the encoding; -#X text 536 285 of all (real + phantom) loudspeaker positions \,; -#X text 537 309 and calculates the pseudo inverse.; -#X text 540 297 multiplicates the ambi order weight; -#X msg 276 230 sing_range 1e-010; -#X text 799 328 mirror_weight; -#X text 545 354 phantom speaker with the factor "mirror_weight" and -adds; -#X text 494 202 input: singularity range; -#X text 537 213 when calculating the inverse of the matrix by gauss -; -#X text 537 223 algorithm \, you have to divide a row by a certain -number \,; -#X text 537 243 outside of this range (> sing_range \, or < -sing_range). -; -#X text 493 385 input: outputs only the first -part of; -#X text 539 398 the inverted matrix (row 1 to row n_pht_ls). The part -; -#X text 541 410 with the phantom speakers \, we ignore.; -#X obj 221 576 cnv 15 192 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X obj 221 601 cnv 15 228 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X text 537 255 Otherwise we say \, this matrix is singular.; -#N canvas 149 60 413 549 real_speaker_example 0; -#X obj 124 33 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -42246 --1; -#X obj 143 217 cnv 15 120 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X obj 142 261 print; -#X obj 142 238 round_zero 1e-006; -#X obj 161 121 pp real_ls; -#X msg 142 144 begin_pseudo_inverse; -#X msg 124 167 end_pseudo_inverse; -#X obj 142 216 ambi_decode3 2 2 5 0; -#X obj 124 75 t b b b; -#X msg 161 98 1 5 \, 2 2.5 \, 3 0 \, 4 -2.5 \, 5 -5; -#X text 110 300 ambisonic system 2.order; -#X text 137 313 2 dimensional; -#X text 135 327 5 real speakers; -#X text 100 347 arranged in a very small arc between; -#X text 117 360 +5 degrees and -5 degrees; -#X text 82 490 IEM KUG; -#X text 66 478 musil; -#X text 96 478 @; -#X text 102 478 iem.at; -#X text 65 500 Graz \, Austria; -#X text 17 467 (c) Thomas Musil 2000 - 2006; -#X connect 0 0 8 0; -#X connect 3 0 2 0; -#X connect 4 0 7 0; -#X connect 5 0 7 0; -#X connect 6 0 7 0; -#X connect 7 0 3 0; -#X connect 8 0 6 0; -#X connect 8 1 5 0; -#X connect 8 2 9 0; -#X connect 9 0 4 0; -#X restore 220 575 pd real_speaker_example singular; -#N canvas 250 68 437 609 phantom_speaker_example 0; -#X obj 79 30 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -42246 --1; -#X obj 184 250 cnv 15 132 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X obj 183 299 print; -#X obj 183 274 round_zero 1e-006; -#X obj 202 164 pp real_ls; -#X msg 183 187 begin_pseudo_inverse; -#X msg 165 210 end_pseudo_inverse; -#X obj 165 118 t b b b; -#X msg 202 141 1 5 \, 2 2.5 \, 3 0 \, 4 -2.5 \, 5 -5; -#X text 151 343 ambisonic system 2.order; -#X text 178 356 2 dimensional; -#X text 176 370 5 real speakers; -#X obj 79 190 pp pht_ls; -#X obj 79 71 for++ 0 138; -#X obj 79 94 t f f; -#X obj 79 125 + 1; -#X obj 104 116 * 2.5; -#X obj 104 138 + 7.5; -#X obj 79 168 pack 0 0; -#X obj 183 249 ambi_decode3 2 2 5 139; -#X text 157 395 -5 degrees and +5 degrees; -#X text 166 410 139 phantom speakers; -#X text 140 382 arranged on a very small arc between; -#X text 150 422 arranged on an arc between; -#X text 154 436 +7.5 degrees and -7.5 degrees; -#X text 86 558 IEM KUG; -#X text 70 546 musil; -#X text 100 546 @; -#X text 106 546 iem.at; -#X text 69 568 Graz \, Austria; -#X text 21 535 (c) Thomas Musil 2000 - 2006; -#X connect 0 0 13 0; -#X connect 3 0 2 0; -#X connect 4 0 19 0; -#X connect 5 0 19 0; -#X connect 6 0 19 0; -#X connect 7 0 6 0; -#X connect 7 1 5 0; -#X connect 7 2 8 0; -#X connect 8 0 4 0; -#X connect 12 0 19 0; -#X connect 13 0 14 0; -#X connect 13 1 7 0; -#X connect 14 0 15 0; -#X connect 14 1 16 0; -#X connect 15 0 18 0; -#X connect 16 0 17 0; -#X connect 17 0 18 1; -#X connect 18 0 12 0; -#X connect 19 0 3 0; -#X restore 220 600 pd phantom_speaker_example nonsingular; -#X text 537 233 to achieve the identity matrix. This number has to -be; -#X obj 108 391 mtx_print; -#X text 504 463 + n_col = (2*n_ao+1) = number of ambisonic-channels -; -#X text 27 476 3.arg: number of real existing loudspeakers -; -#X text 27 488 4.arg: number of virtual phantom_loudspeakers -; -#X text 493 16 n_re_ls = number of real loudspeakers; -#X text 493 28 n_vi_ls = number of virtual phantom loudspeakers; -#X text 494 78 input: re_ls_index + phi .. 2-dimensional -; -#X text 494 88 input: re_ls_index + theta + phi .. 3-dimensional -; -#X text 494 118 input: vi_ls_index + phi .. 2-dimensional -; -#X text 494 129 input: vi_ls_index + theta + phi .. 3-dimensional -; -#X text 794 29 -90 <= theta <= +90; -#X text 786 5 1 <= re_ls_index <= n_re_ls; -#X text 786 16 1 <= vi_ls_index <= n_vi_ls; -#X text 59 423 initial arguments:; -#X text 334 18 calculates a ambisonic; -#X text 358 29 decoder matrix; -#X text 529 100 encodes the re_ls_index row of a matrix; -#X text 525 141 encodes the (re_ls_index + vi_ls_index) row of a matrix -; -#X text 532 153 we need them to achieve a nonsingular matrix; -#X text 493 328 input: vi_ls_index re_ls_index -; -#X text 811 443 floats :; -#X text 851 503 floats :; -#X text 516 513 n_row = (n_re_ls) = number of real loudspeakers -; -#X text 516 453 n_row = (n_re_ls) = number of real loudspeakers -; -#X text 784 523 ambisonic-channels; -#X text 504 523 + n_col = (n_ao+1)*(nao+1) = number of; -#X text 825 534 decoder matrix; -#X text 504 474 + (2*n_ao + 1) * n_re_ls elements of the; -#X text 504 534 + (n_ao+1)*(n_ao+1) * n_re_ls elements of the -; -#X text 796 474 decoder matrix; -#X text 490 443 output in case of 2d: (n_re_ls*(2*n_ao+1)+2) -; -#X text 490 503 output in case of 3d: (n_re_ls*(n_ao+1)*(n_ao+1)+2) -; -#X text 544 367 this column to the column "re_ls_index" of real speaker -; -#X text 546 341 multiplies the column "vi_ls_index + n_re_ls" of; -#X connect 13 0 55 0; -#X connect 14 0 19 0; -#X connect 15 0 23 0; -#X connect 16 0 23 0; -#X connect 17 0 27 1; -#X connect 18 0 23 0; -#X connect 19 0 24 0; -#X connect 19 1 27 0; -#X connect 19 2 22 0; -#X connect 19 3 25 0; -#X connect 19 4 20 0; -#X connect 19 5 16 0; -#X connect 19 6 17 0; -#X connect 20 0 21 0; -#X connect 21 0 23 0; -#X connect 22 0 23 0; -#X connect 23 0 13 0; -#X connect 24 0 23 0; -#X connect 25 0 18 0; -#X connect 26 0 23 0; -#X connect 27 0 26 0; -#X connect 39 0 23 0; diff --git a/help/ambi_encode-help.pd b/help/ambi_encode-help.pd deleted file mode 100644 index 91f46b3..0000000 --- a/help/ambi_encode-help.pd +++ /dev/null @@ -1,377 +0,0 @@ -#N canvas 61 22 872 684 10; -#X obj 375 244 cnv 15 78 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X obj 374 243 ambi_encode 2; -#X obj 374 288 print; -#X text 478 247 1.arg: 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 102 142 phi; -#X text 21 12 ambi_encode; -#X text 34 291 ambisonic-order = n_ao; -#X text 346 320 -> output: of (2*n_ao+1) ; -#X text 346 331 -> output: of (n_ao+1)*(n_ao+1) ; -#X text 387 356 -> output: + index + (2*n_ao+1) ; -#X text 387 368 -> output: + index + (n_ao+1)*(n_ao+1) -; -#X text 383 394 -> output: + index + (2*n_ao+1) ; -#X text 383 406 -> output: + index + (n_ao+1)*(n_ao+1) -; -#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 464 -180 <= phi <= +180; -#X text 415 439 or for bluring a signal-source-direction; -#X text 31 496 order of ambisonic-channels in 2d-case: W X1 Y1 X2 Y2 -X3 Y3; -#X text 391 496 X4 Y4 X5 Y5 ....; -#X text 167 510 W := 1 \, X-term ... cos(i*phi) \, Y-term ... sin(i*phi) -; -#X text 30 550 order of ambisonic-channels in 3d-case: W Z1X1 Z1Y1 -Z1; -#X text 358 550 Z2X2 Z2Y2 Z2X1 Z2Y1 Z2 Z3X3 Z3Y3 Z3X2 Z3Y2 Z3X1 Z3Y1 -Z3 ...; -#X text 166 564 W := 1 \, X-term ... cos(i*phi) \, Y-term ... sin(i*phi) -\,; -#X text 33 318 input: phi [degree] .. 2-dimensional; -#X text 33 356 input: index + phi [degree] .. 2-dimensional; -#X text 31 395 input: index + phi [degree .. 2-dimensional; -#X text 31 424 input: one mul-factor for each; -#X text 267 482 |0| 1 | 2 | 3 | 4 | 5 |; -#X text 687 539 |; -#X text 263 537 |0| 1 | 2 | 3; -#X floatatom 226 142 5 -180 180 0 - - -; -#X floatatom 177 143 5 -90 90 0 - - -; -#X text 228 123 phi; -#X floatatom 327 139 5 -180 180 0 - - -; -#X floatatom 278 140 5 -90 90 0 - - -; -#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 82 849 "float"-message: azimuth-angle phi [degree] --> two-dimensional ambisonic-system -> output a of (2*n_ao + -1) elements; -#X text 478 850 "list"-message: 1.item elevation-angle delta -[degree] \, 2.item azimuth-angle phi [degree] -> three-dimensional -ambisonic-system -> output a of (n_ao + 1)^2 elements -; -#X text 87 914 "row"-message: row-index of ambisonic-encoder-matrix -\, azimuth-angle phi [degree] -> two-dimensional ambisonic-system --> output a "row"-message + row-index + (2*n_ao + 1) -elements; -#X text 480 919 "row"-message: 1.item elevation-angle delta -[degree] \, 2.item azimuth-angle phi [degree] -> three-dimensional -ambisonic-system -> output a of (n_ao + 1)^2 elements -; -#X text 105 441 1 <= index <= nr_sources; -#X text 120 6 AMBISONIC ENCODING; -#X text 112 32 up to 12.Order 2-dimensional; -#X text 109 20 up to 5.Order 3-dimensional or; -#X text 366 8 calculates a row or column of; -#X text 372 20 a ambisonic-encoder-matrix; -#X obj 539 62 cnv 15 126 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#N canvas 0 0 628 490 3D-5.Order-example 0; -#X obj 83 104 pack 0 0; -#X floatatom 83 62 5 -90 90 0 - - -; -#X floatatom 126 63 5 -180 180 0 - - -; -#X text 49 45 -90 .. +90; -#X text 152 33 phi; -#X text 125 47 -180 .. +180; -#X obj 101 83 t b f; -#X obj 102 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 112 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 122 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 132 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 142 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 152 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 162 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 172 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 182 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 192 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 202 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 212 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 222 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 232 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 242 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 252 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 262 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 272 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 282 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 292 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 302 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 312 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 322 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 332 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 92 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 427 96 ambi_encode 4; -#X floatatom 427 75 5 -180 180 0 - - -; -#X text 439 38 phi; -#X text 412 52 -180 .. +180; -#X obj 147 209 print 3d; -#X obj 427 139 print 2d; -#X obj 83 208 route row; -#X obj 147 187 round_zero 1e-006; -#X floatatom 47 251 5 0 0 0 - - -; -#X obj 83 131 pp row 7; -#X text 18 261 row-index; -#X obj 427 118 round_zero 1e-006; -#X text 453 267 +1; -#X text 453 367 -1; -#X text 456 318 0; -#X obj 83 158 ambi_encode 5; -#X obj 83 229 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 342 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 352 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 362 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 372 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 382 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 392 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 402 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 412 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 422 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 432 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X obj 442 275 vsl 8 101 -1 1 0 0 empty empty empty 0 -8 0 8 -225280 --1109 -1 0 1; -#X msg 265 64 ambi_weight 1 1 1 1 1 1; -#X msg 265 102 ambi_weight 1 1 1 1 0 0; -#X msg 265 121 ambi_weight 1 1 1 0 0 0; -#X msg 265 141 ambi_weight 1 1 0 0 0 0; -#X msg 265 161 ambi_weight 1 0 0 0 0 0; -#X msg 265 83 ambi_weight 1 1 1 1 1 0; -#X text 95 409 IEM KUG; -#X text 79 397 musil; -#X text 109 397 @; -#X text 115 397 iem.at; -#X text 78 419 Graz \, Austria; -#X text 30 386 (c) Thomas Musil 2000 - 2006; -#X text 68 32 theta; -#X connect 0 0 41 0; -#X connect 1 0 0 0; -#X connect 2 0 6 0; -#X connect 6 0 0 0; -#X connect 6 1 0 1; -#X connect 32 0 43 0; -#X connect 33 0 32 0; -#X connect 38 0 48 0; -#X connect 39 0 36 0; -#X connect 41 0 47 0; -#X connect 43 0 37 0; -#X connect 47 0 38 0; -#X connect 47 0 39 0; -#X connect 48 0 40 0; -#X connect 48 1 31 0; -#X connect 48 2 7 0; -#X connect 48 3 8 0; -#X connect 48 4 9 0; -#X connect 48 5 10 0; -#X connect 48 6 11 0; -#X connect 48 7 12 0; -#X connect 48 8 13 0; -#X connect 48 9 14 0; -#X connect 48 10 15 0; -#X connect 48 11 16 0; -#X connect 48 12 17 0; -#X connect 48 13 18 0; -#X connect 48 14 19 0; -#X connect 48 15 20 0; -#X connect 48 16 21 0; -#X connect 48 17 22 0; -#X connect 48 18 23 0; -#X connect 48 19 24 0; -#X connect 48 20 25 0; -#X connect 48 21 26 0; -#X connect 48 22 27 0; -#X connect 48 23 28 0; -#X connect 48 24 29 0; -#X connect 48 25 30 0; -#X connect 48 26 49 0; -#X connect 48 27 50 0; -#X connect 48 28 51 0; -#X connect 48 29 52 0; -#X connect 48 30 53 0; -#X connect 48 31 54 0; -#X connect 48 32 55 0; -#X connect 48 33 56 0; -#X connect 48 34 57 0; -#X connect 48 35 58 0; -#X connect 48 36 59 0; -#X connect 60 0 47 0; -#X connect 61 0 47 0; -#X connect 62 0 47 0; -#X connect 63 0 47 0; -#X connect 64 0 47 0; -#X connect 65 0 47 0; -#X restore 538 61 pd 3D-5.Order-example; -#X text 90 632 IEM KUG; -#X text 74 620 musil; -#X text 104 620 @; -#X text 110 620 iem.at; -#X text 73 642 Graz \, Austria; -#X text 25 609 (c) Thomas Musil 2000 - 2006; -#X text 48 143 theta; -#X text 174 124 theta; -#X text 275 121 theta; -#X text 33 331 input: theta + phi [degree] .. 3-dimensional; -#X text 34 368 input: index theta + phi [degree] .. 3-dimensional -; -#X text 31 407 input: index + theta + phi [degree] .. 3-dimensional -; -#X text 89 452 -90 <= theta <= +90; -#X text 489 564 Z-term ... cos(j*theta)*sin(k*theta); -#X obj 59 72 cnv 15 204 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#N canvas 0 0 620 309 Definition 0; -#X text 173 233 IEM KUG; -#X text 157 221 musil; -#X text 187 221 @; -#X text 193 221 iem.at; -#X text 156 243 Graz \, Austria; -#X text 108 210 (c) Thomas Musil 2000 - 2006; -#X text 108 154 o-; -#X text 116 149 _____; -#X text 108 147 |; -#X text 108 141 |; -#X text 108 135 |; -#X text 108 129 |; -#X text 108 125 ^; -#X text 107 140 +; -#X text 112 140 -; -#X text 104 140 -; -#X text 116 141 -; -#X text 119 140 .; -#X text 120 140 .; -#X text 121 140 .; -#X text 122 141 .; -#X text 123 141 .; -#X text 124 142 .; -#X text 125 143 .; -#X text 126 144 .; -#X text 146 154 > +x; -#X text 104 115 +y; -#X text 96 159 +z; -#X text 127 145 .; -#X text 127 146 .; -#X text 128 147 .; -#X text 128 148 .; -#X text 128 149 .; -#X text 129 150 .; -#X text 129 151 .; -#X text 69 140 +phi <; -#X text 278 154 o-; -#X text 278 129 |; -#X text 278 125 ^; -#X text 290 140 .; -#X text 291 140 .; -#X text 292 141 .; -#X text 293 141 .; -#X text 294 142 .; -#X text 295 143 .; -#X text 296 144 .; -#X text 297 145 .; -#X text 297 146 .; -#X text 298 147 .; -#X text 298 148 .; -#X text 298 149 .; -#X text 299 150 .; -#X text 299 151 .; -#X text 266 159 +x; -#X text 316 154 > +y; -#X text 274 115 +z; -#X text 278 135 |; -#X text 278 141 |; -#X text 278 147 |; -#X text 288 149 _____; -#X text 291 135 _; -#X text 288 143 |; -#X text 295 135 +theta; -#X text 74 55 theta .. elevation \, geodetical pos. orientation; -#X text 75 42 phi .... azimute in math. pos. orientation; -#X text 373 65 theta = -90 on south pole \;; -#X text 373 75 theta = 0 equator ); -#X text 361 55 ( theta = +90 on north pole \;; -#X text 332 42 ( counter clockwise in xy-plane ); -#X text 74 67 radius . is always 1; -#X text 253 23 we use the spherical coordinate system; -#X text 109 23 for ambisonic encoding \,; -#X restore 58 71 pd Definition of Coordinate System; -#X connect 1 0 10 0; -#X connect 5 0 1 0; -#X connect 6 0 1 0; -#X connect 7 0 1 0; -#X connect 8 0 7 0; -#X connect 9 0 8 0; -#X connect 9 1 8 1; -#X connect 10 0 2 0; -#X connect 11 0 58 0; -#X connect 12 0 11 0; -#X connect 12 1 11 1; -#X connect 13 0 16 0; -#X connect 14 0 15 0; -#X connect 15 0 1 0; -#X connect 16 0 15 0; -#X connect 16 1 15 1; -#X connect 27 0 1 0; -#X connect 28 0 1 0; -#X connect 45 0 12 0; -#X connect 46 0 11 0; -#X connect 48 0 9 0; -#X connect 49 0 8 0; -#X connect 51 0 1 0; -#X connect 53 0 6 0; -#X connect 55 0 5 0; -#X connect 58 0 1 0; diff --git a/help/ambi_rot-help.pd b/help/ambi_rot-help.pd deleted file mode 100644 index 597dcd4..0000000 --- a/help/ambi_rot-help.pd +++ /dev/null @@ -1,194 +0,0 @@ -#N canvas 50 9 838 665 10; -#X floatatom 50 76 6 -180 180 0 - - -; -#X obj 27 76 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 --1; -#X floatatom 126 76 6 -180 180 0 - - -; -#X text 127 59 rho_y; -#X text 52 59 rho_z; -#X floatatom 193 76 6 -180 180 0 - - -; -#X text 195 59 rho_x; -#X obj 125 149 pack 0 0 0; -#X obj 193 120 t b f; -#X obj 126 120 t b f; -#X obj 50 93 deg2rad; -#X obj 126 94 deg2rad; -#X obj 193 95 deg2rad; -#X text 14 11 ambi_rot; -#X text 128 8 AMBISONIC ROTATION; -#X text 110 32 up to 12.Order 2-dimensional; -#X text 107 20 up to 4.Order 3-dimensional or; -#X text 615 153 o-; -#X text 623 148 _____; -#X text 653 153 > +y; -#X text 615 146 |; -#X text 615 140 |; -#X text 615 134 |; -#X text 615 128 |; -#X text 615 124 ^; -#X text 611 114 +z; -#X text 603 158 +x; -#X text 614 139 +; -#X text 619 139 -; -#X text 611 139 -; -#X text 623 140 -; -#X text 564 139 +rho_x <; -#X text 626 139 .; -#X text 627 139 .; -#X text 628 139 .; -#X text 629 140 .; -#X text 630 140 .; -#X text 631 141 .; -#X text 632 142 .; -#X text 633 143 .; -#X text 437 148 _____; -#X text 469 140 |; -#X text 469 146 |; -#X text 469 134 |; -#X text 469 128 |; -#X text 469 124 ^; -#X text 465 114 +z; -#X text 468 136 +; -#X text 473 136 -; -#X text 459 136 .; -#X text 463 153 -o; -#X text 412 153 +x <; -#X text 480 136 > +rho_y; -#X text 474 158 +y; -#X text 465 136 -; -#X text 461 137 -; -#X text 458 136 .; -#X text 457 136 .; -#X text 456 137 .; -#X text 455 137 .; -#X text 454 138 .; -#X text 453 139 .; -#X text 452 140 .; -#X text 308 148 _____; -#X text 340 140 |; -#X text 340 146 |; -#X text 340 134 |; -#X text 340 128 |; -#X text 340 124 ^; -#X text 334 153 -o; -#X text 336 114 +x; -#X text 283 153 +y <; -#X text 345 158 +z; -#X text 339 136 +; -#X text 344 136 -; -#X text 336 136 -; -#X text 348 137 -; -#X text 351 136 .; -#X text 352 136 .; -#X text 353 136 .; -#X text 354 137 .; -#X text 355 137 .; -#X text 356 138 .; -#X text 357 139 .; -#X text 358 140 .; -#X text 289 136 +rho_z <; -#X text 300 60 rho_z ... rotation angle resp. z-axe; -#X text 300 71 rho_y ... rotation angle resp. y-axe; -#X text 300 82 rho_x ... rotation angle resp. x-axe; -#X obj 82 250 cnv 15 60 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X obj 151 250 cnv 15 60 15 empty empty empty 20 12 0 14 -260818 -66577 -0; -#X obj 81 299 mtx_mul; -#X obj 150 229 pack 0 0 0; -#X obj 150 189 unpack 0 0 0; -#X obj 150 209 * -1; -#X obj 125 169 t l l; -#X obj 99 320 mtx_mul; -#X obj 117 340 mtx_mul; -#X obj 136 360 mtx_mul; -#X obj 183 209 * -1; -#X obj 217 209 * -1; -#X obj 150 249 ambi_rot 4; -#X obj 81 249 ambi_rot 4; -#X obj 355 476 round_zero 0.0001; -#X obj 355 418 round_zero 0.0001; -#X obj 349 359 round_zero 0.0001; -#X obj 353 299 round_zero 0.0001; -#X symbolatom 473 309 0 0 0 0 - - -; -#X symbolatom 473 344 0 0 0 0 - - -; -#X symbolatom 474 423 0 0 0 0 - - -; -#X symbolatom 474 536 0 0 0 0 - - -; -#X obj 355 496 mergefilename blank; -#X obj 353 321 mergefilename blank; -#X obj 349 380 mergefilename blank; -#X obj 355 438 mergefilename blank; -#X text 380 282 1st order; -#X text 383 341 2nd order; -#X text 378 400 3rd order; -#X text 376 456 4th order; -#X text 325 6 calculates a matrix message; -#X text 329 17 for each ambisonic order; -#X text 233 250 1.arg.: ambisonic order; -#X text 283 190 inlet: rotation angle in degree for 2-D; -#X text 322 204 or a list of 3 floats in degree for 3-D:; -#X text 334 216 1.) rotation angle of z-axe; -#X text 334 236 3.) rotation angle of x-axe; -#X text 334 226 2.) rotation angle of y-axe; -#X obj 709 136 ambi_rot 4; -#X obj 709 46 ambi_rot 1; -#X obj 709 76 ambi_rot 2; -#X obj 709 106 ambi_rot 3; -#X obj 709 166 ambi_rot 5; -#X obj 709 196 ambi_rot 6; -#X obj 709 226 ambi_rot 7; -#X obj 669 256 ambi_rot 12 ________; -#X text 11 437 with "matrix" \, followed by number; -#X text 11 449 of rows and columns and the >float> elements.; -#X text 23 462 1.outlet is the ambisonic rotation matrix; -#X text 12 474 for the components of 1.order ambisonc domain.; -#X text 23 487 2.outlet is the ambisonic rotation matrix; -#X text 12 499 for the components of 2.order ambisonc domain.; -#X text 105 513 aso.; -#X text 10 425 outlets: matrix message beginning; -#X text 79 603 IEM KUG; -#X text 63 591 musil; -#X text 93 591 @; -#X text 99 591 iem.at; -#X text 62 613 Graz \, Austria; -#X text 14 580 (c) Thomas Musil 2000 - 2006; -#X connect 0 0 10 0; -#X connect 1 0 0 0; -#X connect 2 0 11 0; -#X connect 5 0 12 0; -#X connect 7 0 95 0; -#X connect 8 0 7 0; -#X connect 8 1 7 2; -#X connect 9 0 7 0; -#X connect 9 1 7 1; -#X connect 10 0 7 0; -#X connect 11 0 9 0; -#X connect 12 0 8 0; -#X connect 91 0 106 0; -#X connect 92 0 101 0; -#X connect 93 0 94 0; -#X connect 93 1 99 0; -#X connect 93 2 100 0; -#X connect 94 0 92 0; -#X connect 95 0 102 0; -#X connect 95 1 93 0; -#X connect 96 0 105 0; -#X connect 97 0 104 0; -#X connect 98 0 103 0; -#X connect 99 0 92 1; -#X connect 100 0 92 2; -#X connect 101 0 91 1; -#X connect 101 1 96 1; -#X connect 101 2 97 1; -#X connect 101 3 98 1; -#X connect 102 0 91 0; -#X connect 102 1 96 0; -#X connect 102 2 97 0; -#X connect 102 3 98 0; -#X connect 103 0 111 0; -#X connect 104 0 114 0; -#X connect 105 0 113 0; -#X connect 106 0 112 0; -#X connect 111 0 110 0; -#X connect 112 0 107 0; -#X connect 113 0 108 0; -#X connect 114 0 109 0; -- cgit v1.2.1