Update of /cvsroot/pure-data/externals/iem/iem_ambi/help In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19911/iem/iem_ambi/help
Added Files: help-ambi_decode.pd help-ambi_decode2.pd help-ambi_decode3.pd help-ambi_encode.pd help-ambi_rot.pd test-ambi_rot.pd Log Message: initial version JAN_06 with all sources
--- NEW FILE: help-ambi_decode3.pd --- #N canvas 4 4 856 655 10; #X obj 60 572 print; #X text 513 156 1.arg: <float> ambisonic order; #X obj 60 549 round_zero 1e-006; #X text 348 312 ambisonic-order = n_ao; #X text 536 387 ambisonic-order-group; #X text 324 428 -90 <= delta <= +90; #X text 324 440 -180 <= phi <= +180; #X text 265 387 input: <ambi_weight> 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 265 336 input: <ls> index + phi [degree] .. 2-dimensional; #X text 265 346 input: <ls> index + delta + phi [degree] .. 3-dimensional ; #X text 265 360 input: <phls> index + phi [degree .. 2-dimensional ; #X text 265 371 input: <phls> index + delta + phi [degree] .. 3-dimensional ; #X text 289 518 <float> n_col = (2*n_ao+1) = number of ambisonic-channels ; #X text 277 527 + <float> n_row = (n_ls) = number of loudspeakers; #X text 517 313 number of loudspeakers = n_ls; #X text 280 587 + <float> n_row = (n_ls) = number of loudspeakers; #X text 265 568 output in case of 3d: <matrix> ((n_ao+1)*(n_ao+1)*n_ls+2) ; #X text 263 507 output in case of 2d: <matrix> ((2*n_ao+1)*n_ls+2) ; #X text 610 568 <float> :; #X text 567 506 <float> :; #X text 507 578 number of ambisonic-channels; #X text 292 578 <float> n_col = (n_ao+1)*(n_ao+1) =; #X text 478 597 <float> elements of a matrix; #X text 280 597 + (n_ao + 1) * (n_ao + 1) * n_ls; #X text 277 537 + (2*n_ao + 1) * n_ls <float> elements of a matrix ; #X text 258 460 input: <pinv> calculates the pseudo-inverse of the encoded; #X text 314 471 loudspeaker-positions (+ the phantom-speakers); #X text 328 482 and output a matrix-message; #X text 339 417 1 <= index <= n_ao; #X text 603 268 a regular matrix to inverse it); #X text 426 399 to suppress the side-lobe-phenomena; #X text 526 258 (it is sometimes necessary to add phantom-ls. for achieving ; #X msg 272 130 ambi_weight 1 1 1 0.3904; #X msg 123 129 ambi_weight 1 1 1 1; #X msg 138 106 mirror_weight 0.7; #X obj 94 237 pp pht_ls; #X obj 38 77 t b b b b b b b; #X text 528 174 (1 .. 5 in case of 3 dimensional); #X text 528 165 (1 .. 12 in case of 2 dimensional); #X text 514 196 3.arg: <float> number of independent loudspeakers; #X text 513 184 2.arg: <float> dimension (2 or 3); #X text 513 247 5.arg: <float> number of canceled phantom_loudspeakers ; #X text 514 208 4.arg: <float> number of merged and mirrored loudspeakers ; #X text 560 221 (the merged loudspeakers are at the border of the arc ; #X text 573 233 or the hemisphere , the mirrored loudspeakers are ; #X obj 742 385 pp ind_ls; #X msg 742 362 1 90 0 , 2 45 45 , 3 45 135 , 4 45 225 , 5 45 315 ; #X obj 728 450 pp mrg_ls; #X msg 728 415 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 714 507 pp mir_ls; #X msg 714 472 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 700 553 pp pht_ls; #X msg 700 530 1 -90 0; #X msg 108 155 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 108 190 pp real_ls; #X msg 80 263 begin_pseudo_inverse; #X obj 60 527 ambi_decode3 3 3 13 6; #X msg 30 501 end_pseudo_inverse; #X msg 94 215 1 -45 0 , 2 -45 90 , 3 -45 180 , 4 -45 270 , 6 -90 0; #X msg 47 476 ipht_ireal_muladd $1 $2 $3; #N canvas 337 146 559 509 /SUBPATCH/ 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 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 47 436 pd; #X connect 2 0 0 0; #X connect 10 0 39 0; #X connect 35 0 59 0; #X connect 36 0 59 0; #X connect 37 0 63 1; #X connect 38 0 59 0; #X connect 39 0 60 0; #X connect 39 1 63 0; #X connect 39 2 58 0; #X connect 39 3 61 0; #X connect 39 4 56 0; #X connect 39 5 36 0; #X connect 39 6 37 0; #X connect 49 0 48 0; #X connect 51 0 50 0; #X connect 53 0 52 0; #X connect 55 0 54 0; #X connect 56 0 57 0; #X connect 57 0 59 0; #X connect 58 0 59 0; #X connect 59 0 2 0; #X connect 60 0 59 0; #X connect 61 0 38 0; #X connect 62 0 59 0; #X connect 63 0 62 0;
--- NEW FILE: help-ambi_rot.pd --- #N canvas 44 25 730 500 10; #X text 230 40 phi ... azimut , positiv direction from nose to left ear; #X text 228 18 delta ... elevation , positiv direction from nose to top of the head; #X floatatom 52 76 6 -180 180 0 - - -; #X obj 29 76 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 128 76 6 -180 180 0 - - -; #X text 129 59 rho_y; #X text 54 59 rho_z; #X floatatom 195 76 6 -180 180 0 - - -; #X text 197 59 rho_x; #X obj 127 149 pack 0 0 0; #X obj 195 120 t b f; #X obj 128 120 t b f; #X obj 52 93 deg2rad; #X obj 128 94 deg2rad; #X obj 195 95 deg2rad; #X text 241 6 AMBISONIC Encoder 4.Order 3-Dimensional; #X text 254 73 umkehrung der matrizen multiplikation: funktioniert nicht; #X obj 63 393 print r1; #X obj 174 390 print r2; #X obj 292 389 print r3; #X obj 407 387 print r4; #X obj 63 342 mtx_mul; #X obj 389 275 pack 0 0 0; #X obj 389 214 unpack 0 0 0; #X obj 389 237 * -1; #X obj 126 172 t l l; #X obj 174 341 mtx_mul; #X obj 292 339 mtx_mul; #X obj 407 338 mtx_mul; #X obj 422 238 * -1; #X obj 455 237 * -1; #X obj 389 300 ambi_rot 4; #X obj 63 244 ambi_rot 4; #X text 10 8 ambi_rot; #X obj 407 362 round_zero 0.0001; #X obj 292 365 round_zero 0.0001; #X obj 174 364 round_zero 0.0001; #X obj 63 365 round_zero 0.0001; #X connect 2 0 12 0; #X connect 3 0 2 0; #X connect 4 0 13 0; #X connect 7 0 14 0; #X connect 9 0 25 0; #X connect 10 0 9 0; #X connect 10 1 9 2; #X connect 11 0 9 0; #X connect 11 1 9 1; #X connect 12 0 9 0; #X connect 13 0 11 0; #X connect 14 0 10 0; #X connect 21 0 37 0; #X connect 22 0 31 0; #X connect 23 0 24 0; #X connect 23 1 29 0; #X connect 23 2 30 0; #X connect 24 0 22 0; #X connect 25 0 32 0; #X connect 25 1 23 0; #X connect 26 0 36 0; #X connect 27 0 35 0; #X connect 28 0 34 0; #X connect 29 0 22 1; #X connect 30 0 22 2; #X connect 31 0 21 1; #X connect 31 1 26 1; #X connect 31 2 27 1; #X connect 31 3 28 1; #X connect 32 0 21 0; #X connect 32 1 26 0; #X connect 32 2 27 0; #X connect 32 3 28 0; #X connect 34 0 20 0; #X connect 35 0 19 0; #X connect 36 0 18 0; #X connect 37 0 17 0;
--- NEW FILE: test-ambi_rot.pd --- #N canvas 44 25 726 496 10; #X text 230 40 phi ... azimut , positiv direction from nose to left ear; #X text 228 18 delta ... elevation , positiv direction from nose to top of the head; #X floatatom 52 76 6 -180 180 0 - - -; #X obj 29 76 bng 15 250 50 0 empty empty empty 0 -6 0 8 -262144 -1 -1; #X floatatom 128 76 6 -180 180 0 - - -; #X text 129 59 rho_y; #X text 54 59 rho_z; #X floatatom 195 76 6 -180 180 0 - - -; #X text 197 59 rho_x; #X obj 127 149 pack 0 0 0; #X obj 195 120 t b f; #X obj 128 120 t b f; #X obj 52 93 deg2rad; #X obj 128 94 deg2rad; #X obj 195 95 deg2rad; #X text 241 6 AMBISONIC Encoder 4.Order 3-Dimensional; #X text 254 73 umkehrung der matrizen multiplikation: funktioniert nicht; #X obj 63 393 print r1; #X obj 174 390 print r2; #X obj 292 389 print r3; #X obj 407 387 print r4; #X text 10 8 test-ambi_rot.pd; #X obj 63 342 mtx_mul; #X obj 389 275 pack 0 0 0; #X obj 389 214 unpack 0 0 0; #X obj 389 237 * -1; #X obj 126 172 t l l; #X obj 174 341 mtx_mul; #X obj 292 339 mtx_mul; #X obj 407 338 mtx_mul; #X obj 422 238 * -1; #X obj 455 237 * -1; #X obj 389 300 ambi_rot 4; #X obj 63 244 ambi_rot 4; #X obj 63 365 round_zero 1e-007; #X obj 174 364 round_zero 1e-007; #X obj 292 365 round_zero 1e-007; #X obj 407 362 round_zero 1e-007; #X connect 2 0 12 0; #X connect 3 0 2 0; #X connect 4 0 13 0; #X connect 7 0 14 0; #X connect 9 0 26 0; #X connect 10 0 9 0; #X connect 10 1 9 2; #X connect 11 0 9 0; #X connect 11 1 9 1; #X connect 12 0 9 0; #X connect 13 0 11 0; #X connect 14 0 10 0; #X connect 22 0 34 0; #X connect 23 0 32 0; #X connect 24 0 25 0; #X connect 24 1 30 0; #X connect 24 2 31 0; #X connect 25 0 23 0; #X connect 26 0 33 0; #X connect 26 1 24 0; #X connect 27 0 35 0; #X connect 28 0 36 0; #X connect 29 0 37 0; #X connect 30 0 23 1; #X connect 31 0 23 2; #X connect 32 0 22 1; #X connect 32 1 27 1; #X connect 32 2 28 1; #X connect 32 3 29 1; #X connect 33 0 22 0; #X connect 33 1 27 0; #X connect 33 2 28 0; #X connect 33 3 29 0; #X connect 34 0 17 0; #X connect 35 0 18 0; #X connect 36 0 19 0; #X connect 37 0 20 0;
--- NEW FILE: help-ambi_decode.pd --- #N canvas 117 18 719 674 10; #X obj 47 249 print; #X text 291 171 1.arg: <float> ambisonic order; #X text 306 180 (1 .. 12 for 2 dimensional use); #X obj 47 226 round_zero 1e-006; #X text 117 310 ambisonic-order = n_ao; #X msg 150 170 ambi_weight 1 1 1; #X msg 133 149 ambi_weight 1 1 0.3904; #X text 305 385 ambisonic-order-group; #X text 98 416 -90 <= delta <= +90; #X text 98 428 -180 <= phi <= +180; #X text 34 385 input: <ambi_weight> one mul-factor for each; #X text 21 12 ambi_decode; #X text 105 12 calculates a decoder-matrix; #X obj 47 204 ambi_decode 2 2 5 0; #X text 291 199 2.arg: <float> dimension; #X text 440 199 (2 or 3); #X text 291 211 3.arg: <float> number of real loudspeakers; #X text 305 222 (best results , if n_ls = n_ambi_channels); #X text 316 232 (could be more or less); #X text 292 243 4.arg: <float> number of phantom_loudspeakers; #X text 334 254 (optional , default 0); #X msg 46 116 pinv; #X obj 59 90 t b b; #X obj 59 46 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -42246 -1; #X text 34 334 input: <ls> index + phi [degree] .. 2-dimensional; #X text 34 344 input: <ls> index + delta + phi [degree] .. 3-dimensional ; #X text 34 358 input: <phls> index + phi [degree .. 2-dimensional; #X text 34 369 input: <phls> index + delta + phi [degree] .. 3-dimensional ; #X text 63 525 <float> n_col = (2*n_ao+1) = number of ambisonic-channels ; #X text 51 534 + <float> n_row = (n_ls) = number of loudspeakers; #X text 286 311 number of loudspeakers = n_ls; #X text 51 594 + <float> n_row = (n_ls) = number of loudspeakers; #X text 36 575 output in case of 3d: <matrix> ((n_ao+1)*(n_ao+1)*n_ls+2) ; #X text 37 514 output in case of 2d: <matrix> ((2*n_ao+1)*n_ls+2); #X text 384 575 <float> :; #X text 341 513 <float> :; #X text 281 585 number of ambisonic-channels; #X text 63 585 <float> n_col = (n_ao+1)*(n_ao+1) =; #X text 252 604 <float> elements of a matrix; #X text 51 604 + (n_ao + 1) * (n_ao + 1) * n_ls; #X text 51 544 + (2*n_ao + 1) * n_ls <float> elements of a matrix; #X text 34 458 input: <pinv> calculates the pseudo-inverse of the encoded ; #X text 90 469 loudspeaker-positions (+ the phantom-speakers); #X text 104 480 and output a matrix-message; #X text 306 189 (1 .. 5 for 3 dimensional use); #X msg 95 116 ls 1 0 , ls 2 72 , ls 3 144 , ls 4 216 , ls 5 288 ; #X text 113 405 1 <= index <= n_ao; #X text 340 275 a regular matrix to inverse it); #X text 437 384 to suppress the side-lobe-phenomena; #X text 308 265 (it is sometimes necessary to add phantom-ls. for achieving ; #N canvas 0 0 812 677 phantom_example 0; #X obj 57 631 print; #X obj 57 608 round_zero 1e-006; #X msg 57 94 pinv; #X obj 70 24 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -42246 -1; #X msg 198 72 ls 1 5 , ls 2 2.5 , ls 3 0 , ls 4 -2.5 , ls 5 -5 ; #X msg 92 176 phls 5 -17.5 , phls 6 -20 , phls 7 -22.5 , phls 8 -25; #X msg 92 200 phls 9 -27.5 , phls 10 -30 , phls 11 -32.5 , phls 12 -35; #X msg 92 223 phls 13 -37.5 , phls 14 -40 , phls 15 -42.5 , phls 16 -45; #X msg 92 247 phls 17 -47.5 , phls 18 -50 , phls 19 -52.5 , phls 20 -55; #X msg 92 270 phls 21 -57.5 , phls 22 -60 , phls 23 -62.5 , phls 24 -65; #X msg 92 294 phls 25 -67.5 , phls 26 -70 , phls 27 -72.5 , phls 28 -75; #X msg 92 317 phls 29 -77.5 , phls 30 -80 , phls 31 -82.5 , phls 32 -85; #X msg 92 340 phls 33 -87.5 , phls 34 -90 , phls 35 -92.5 , phls 36 -95; #X msg 92 364 phls 37 -97.5 , phls 38 -100 , phls 39 -102.5 , phls 40 -105; #X msg 92 387 phls 41 -107.5 , phls 42 -110 , phls 43 -112.5 , phls 44 -115; #X msg 92 411 phls 45 -117.5 , phls 46 -120 , phls 47 -122.5 , phls 48 -125; #X msg 92 434 phls 49 -127.5 , phls 50 -130 , phls 51 -132.5 , phls 52 -135; #X msg 92 456 phls 53 -137.5 , phls 54 -140 , phls 55 -142.5 , phls 56 -145; #X msg 92 480 phls 57 -147.5 , phls 58 -150 , phls 59 -152.5 , phls 60 -155; #X msg 92 503 phls 61 -157.5 , phls 62 -160 , phls 63 -162.5 , phls 64 -165; #X msg 92 527 phls 65 -167.5 , phls 66 -170 , phls 67 -172.5 , phls 68 -175; #X msg 92 550 phls 69 -177.5 , phls 70 -180 , phls 71 177.5 , phls 72 175; #X msg 497 228 phls 73 172.5 , phls 74 170 , phls 75 167.5 , phls 76 165; #X msg 497 249 phls 77 162.5 , phls 78 160 , phls 79 157.5 , phls 80 155; #X msg 497 270 phls 81 152.5 , phls 82 150 , phls 83 147.5 , phls 84 145; #X msg 497 290 phls 85 142.5 , phls 86 140 , phls 87 137.5 , phls 88 135; #X msg 497 312 phls 89 132.5 , phls 90 130 , phls 91 127.5 , phls 92 125; #X msg 497 333 phls 93 122.5 , phls 94 120 , phls 95 117.5 , phls 96 115; #X msg 497 354 phls 97 112.5 , phls 98 110 , phls 99 107.5 , phls 100 105; #X msg 497 375 phls 101 102.5 , phls 102 100 , phls 103 97.5 , phls 104 95; #X msg 497 396 phls 105 92.5 , phls 106 90 , phls 107 87.5 , phls 108 85; #X msg 497 418 phls 109 82.5 , phls 110 80 , phls 111 77.5 , phls 112 75; #X msg 497 439 phls 113 72.5 , phls 114 70 , phls 115 67.5 , phls 116 65; #X msg 497 460 phls 117 62.5 , phls 118 60 , phls 119 57.5 , phls 120 55; #X msg 497 481 phls 121 52.5 , phls 122 50 , phls 123 47.5 , phls 124 45; #X msg 497 502 phls 125 42.5 , phls 126 40 , phls 127 37.5 , phls 128 35; #X msg 497 524 phls 129 32.5 , phls 130 30 , phls 131 27.5 , phls 132 25; #X msg 497 545 phls 133 22.5 , phls 134 20 , phls 135 17.5 , phls 136 15; #X msg 497 566 phls 137 12.5 , phls 138 10 , phls 139 7.5; #X obj 70 68 t b b b b; #X obj 92 127 t b; #X obj 497 206 t b; #X obj 57 586 ambi_decode 2 2 5 139; #X msg 92 152 phls 1 -7.5 , phls 2 -10 , phls 3 -12.5 , phls 4 -15 ; #X connect 1 0 0 0; #X connect 2 0 42 0; #X connect 3 0 39 0; #X connect 4 0 42 0; #X connect 5 0 42 0; #X connect 6 0 42 0; #X connect 7 0 42 0; #X connect 8 0 42 0; #X connect 9 0 42 0; #X connect 10 0 42 0; #X connect 11 0 42 0; #X connect 12 0 42 0; #X connect 13 0 42 0; #X connect 14 0 42 0; #X connect 15 0 42 0; #X connect 16 0 42 0; #X connect 17 0 42 0; #X connect 18 0 42 0; #X connect 19 0 42 0; #X connect 20 0 42 0; #X connect 21 0 42 0; #X connect 22 0 42 0; #X connect 23 0 42 0; #X connect 24 0 42 0; #X connect 25 0 42 0; #X connect 26 0 42 0; #X connect 27 0 42 0; #X connect 28 0 42 0; #X connect 29 0 42 0; #X connect 30 0 42 0; #X connect 31 0 42 0; #X connect 32 0 42 0; #X connect 33 0 42 0; #X connect 34 0 42 0; #X connect 35 0 42 0; #X connect 36 0 42 0; #X connect 37 0 42 0; #X connect 38 0 42 0; #X connect 39 0 2 0; #X connect 39 1 41 0; #X connect 39 2 40 0; #X connect 39 3 4 0; #X connect 40 0 43 0; #X connect 40 0 5 0; #X connect 40 0 6 0; #X connect 40 0 7 0; #X connect 40 0 8 0; #X connect 40 0 9 0; #X connect 40 0 10 0; #X connect 40 0 11 0; #X connect 40 0 12 0; #X connect 40 0 13 0; #X connect 40 0 14 0; #X connect 40 0 15 0; #X connect 40 0 16 0; #X connect 40 0 17 0; #X connect 40 0 18 0; #X connect 40 0 19 0; #X connect 40 0 20 0; #X connect 40 0 21 0; #X connect 41 0 22 0; #X connect 41 0 23 0; #X connect 41 0 24 0; #X connect 41 0 25 0; #X connect 41 0 26 0; #X connect 41 0 27 0; #X connect 41 0 28 0; #X connect 41 0 29 0; #X connect 41 0 30 0; #X connect 41 0 31 0; #X connect 41 0 32 0; #X connect 41 0 33 0; #X connect 41 0 34 0; #X connect 41 0 35 0; #X connect 41 0 36 0; #X connect 41 0 37 0; #X connect 41 0 38 0; #X connect 42 0 1 0; #X connect 43 0 42 0; #X restore 421 117 pd phantom_example regular; #N canvas 0 0 814 679 real_example 0; #X obj 58 293 print; #X obj 58 270 round_zero 1e-006; #X msg 57 94 pinv; #X obj 70 24 bng 35 250 50 0 empty empty empty 0 -6 0 8 -24198 -42246 -1; #X msg 103 115 ls 1 5 , ls 2 2.5 , ls 3 0 , ls 4 -2.5 , ls 5 -5 ; #X obj 70 68 t b b; #X obj 58 248 ambi_decode 2 2 5 0; #X connect 1 0 0 0; #X connect 2 0 6 0; #X connect 3 0 5 0; #X connect 4 0 6 0; #X connect 5 0 2 0; #X connect 5 1 4 0; #X connect 6 0 1 0; #X restore 421 90 pd real_example singular; #X connect 3 0 0 0; #X connect 5 0 13 0; #X connect 6 0 13 0; #X connect 13 0 3 0; #X connect 21 0 13 0; #X connect 22 0 21 0; #X connect 22 1 45 0; #X connect 23 0 22 0; #X connect 45 0 13 0;
--- NEW FILE: help-ambi_encode.pd --- #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;
--- NEW FILE: help-ambi_decode2.pd --- #N canvas 82 3 844 643 10; #X obj 38 441 print; #X text 454 156 1.arg: <float> 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: <ambi_weight> 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: <ls> index + phi [degree] .. 2-dimensional; #X text 214 346 input: <ls> index + delta + phi [degree] .. 3-dimensional ; #X text 214 360 input: <phls> index + phi [degree .. 2-dimensional ; #X text 214 371 input: <phls> index + delta + phi [degree] .. 3-dimensional ; #X text 238 518 <float> n_col = (2*n_ao+1) = number of ambisonic-channels ; #X text 226 527 + <float> n_row = (n_ls) = number of loudspeakers; #X text 466 313 number of loudspeakers = n_ls; #X text 229 587 + <float> n_row = (n_ls) = number of loudspeakers; #X text 214 568 output in case of 3d: <matrix> ((n_ao+1)*(n_ao+1)*n_ls+2) ; #X text 212 507 output in case of 2d: <matrix> ((2*n_ao+1)*n_ls+2) ; #X text 559 568 <float> :; #X text 516 506 <float> :; #X text 456 578 number of ambisonic-channels; #X text 241 578 <float> n_col = (n_ao+1)*(n_ao+1) =; #X text 427 597 <float> 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 <float> elements of a matrix ; #X text 207 460 input: <pinv> 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: <float> number of independent loudspeakers; #X text 454 184 2.arg: <float> dimension (2 or 3); #X text 454 247 5.arg: <float> number of canceled phantom_loudspeakers ; #X text 455 208 4.arg: <float> 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;