sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1
zakinit 81, 1 ; zak space with the 11 channels of the B-format
#include "ambisonics_udos.txt"
opcode ambi3D_enc_dist1, k, aikkk
asnd,iorder,kaz,kel,kdist xin
kaz = $M_PI*kaz/180
kel = $M_PI*kel/180
kaz = (kdist < 0 ? kaz + $M_PI : kaz)
kel = (kdist < 0 ? -kel : kel)
kdist = abs(kdist)+0.00001
kgainW = taninv(kdist*1.5708) / (kdist*1.5708)
kgainHO = (1 - exp(-kdist)) ;*kgainW
outvalue "kgainHO", kgainHO
outvalue "kgainW", kgainW
kcos_el = cos(kel)
ksin_el = sin(kel)
kcos_az = cos(kaz)
ksin_az = sin(kaz)
asnd = kgainW*asnd
zawm asnd,0 ; W
asnd = kgainHO*asnd
zawm kcos_el*ksin_az*asnd,1 ; Y = Y(1,-1)
zawm ksin_el*asnd,2 ; Z = Y(1,0)
zawm kcos_el*kcos_az*asnd,3 ; X = Y(1,1)
if iorder < 2 goto end
/*
...
*/
end:
xout 0
endop
instr 1
asnd init 1
kaz invalue "az"
kel invalue "el"
kdist invalue "dist"
k0 ambi_enc_dist asnd,5,kaz,kel,kdist
ao1,ao2,ao3,ao4 ambi_decode 5,17
outvalue "sp1", downsamp(ao1)
outvalue "sp2", downsamp(ao2)
outvalue "sp3", downsamp(ao3)
outvalue "sp4", downsamp(ao4)
outc 0*ao1,0*ao2;,2*ao3,2*ao4
zacl 0,80
endin
f17 0 64 -2 0 0 0 90 0 180 0 0 90 0 0 0 0
i1 0 100
;example by martin neukom
0
0
193
419
true
234
255
246
sp1
38
190
80
25
{0c3f6178-d1bd-41dc-9f51-57c883f6f8c7}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
border
1
1
sp2
38
222
80
25
{dd2be361-4337-46cd-973f-53c4608caddb}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
border
1
1
sp3
39
256
80
25
{fde91979-2a53-4cbc-a522-aad0371b14d0}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
border
1
1
kgainHO
107
363
80
25
{20a93d99-e6cd-45e2-b7ba-2040ddf699c0}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
border
1
1
kgainW
23
364
80
25
{8f18b5ee-c58b-4da6-8c93-2281826a29e5}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
border
1
1
sp4
39
291
80
25
{d6966651-1350-4b80-a1d9-98242fd79a17}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
border
1
1
15
71
60
39
{d09a3525-7c6e-4ab5-8db4-9e46cc64a3ef}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1
79
71
60
38
{8a133d27-7225-4049-9a1d-9592e941184b}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1
143
71
59
26
{5cccfd60-ffe2-443c-8866-002a38becf70}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1
dist
143
44
58
24
{313c2dae-02e9-4f0b-b296-56530434b021}
true
0
0
left
Arial
10
0
0
0
255
255
255
1.00400000
0.01000000
-999999999999.00000000
999999999999.00000000
border
1
1
false
el
79
43
58
24
{694f9a84-3504-4189-89ce-e043d04d39cf}
true
0
0
left
Arial
10
0
0
0
255
255
255
91.14400000
1.00000000
-999999999999.00000000
999999999999.00000000
border
1
1
false
az
16
43
58
24
{e2c257e7-bf28-4f95-bbf0-0838a8345464}
true
0
0
left
Arial
10
0
0
0
255
255
255
180.13400000
1.00000000
-999999999999.00000000
999999999999.00000000
border
1
1
false
122
190
50
24
{336c2aea-0a19-4aa7-8d75-191ccfacc6bc}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1
122
223
50
24
{80454d5c-b343-4bcf-b4dd-382bfbd14f8d}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1
123
256
50
24
{774e6d16-2d1a-48cf-8ed1-38a0650a9fb9}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1
124
292
50
24
{78ba90b6-70f3-4da2-9c7e-f74d4c6e1c33}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1
38
397
51
27
{e179f64c-5653-43bc-b4ee-f8b7aafcb20b}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1
121
397
55
27
{caf3cb55-c8a7-4527-8a88-a34651291785}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1
247
52
60
38
{b43c81a9-2024-4e06-8faa-aa75b1203a05}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1
245
226
60
38
{dffd1e37-0544-4eeb-9b0f-9f55fd57da84}
true
0
0
left
Arial
10
3
0
0
0
255
255
255
noborder
1
1