On Fri, Nov 26, 2010 at 09:23:06AM +1100, e deleflie wrote:

> > You can include an extra gain factor to ensure all signals remain
> > in the +/- 1 range, but that would depend on the order (it would
> > be the inverse of the highest Zmm conversion factor).
> 
> yes, that's what I'm after ... I think it would be impractical to
> offer conversion factors which do not ensure that signals do not get
> clipped. .... argh ... there's always hidden levels of complexity with
> ambisonics.
> 
> So I need to provide a different gain depending on the order.... ok,
> will include that into the document.

You could write the conversion as:
W0  = g * W * sqrt(2)
X1  = g * X * sqrt(3)
Y1  = g * Y * sqrt(3)
Z1  = g * Z * sqrt(3)
X20 = g * U * sqrt(15/4)
etc.

where 'g' depends on 

- the order
- horizontal only or full periphonic,

and list the required 'g' values for the signal sets you support.

> Can you convince me to use the ACN scheme?

Probably not if you define the order of the samples in the
file as something different from ACN, e.g. the 'Gerzon' order.

There are in fact three orders to consider (excluding FuMa, 
since you support 4th order):

ACN:     increasing l, for each l increasing m.
Gerzon:  increasing l, for each l decreasing abs(m), cosines first
???:     increasing l, for each l increasing abs(m), cosines first

ACN:     W   Y Z X   V T R S U   Q O M K L N P
Gerzon:  W   X Y Z   U V S T R   P Q N O L M K
???:     W   Z X Y   R S T U V   K L M N O P Q

FuMa is actually a mix of 'Gerzon' (1st degree) and '???' (2nd and
3rd degrees).

The 'Gerzon' one puts the horizontal components before the others
for each degree. But why would you want to do that ? If the format
is horizontal only it doesn't make a difference. For periphonic,
why should the horizontal ones come first ? They are not more or
less important than the others.

I kind of like the '???' one, it makes sense if you see each 
(cosine, sine) pair as a complex value.

> Is there a better naming scheme based on l and m?

Anything that uses l,m or l,abs(m) but not some derived
values such as l-abs(m).

You can make the 'm' value signed, or use 'C' (cosine) for
m >= 0 and 'S' (sine) for m < 0, or X,Y instead of C,S.

For example, using the 'Gerzon' order:

FuMA       l m      l m      lm
---------------------------------
W          0+0      0C0     X00
X          1+1      1C1     X11
Y          1-1      1S1     Y11
Z          1+0      1C0     X10 
U          2+2      2C2     X22
V          2-2      2S2     Y22
S          2+1      2C1     X21
T          2-1      2S1     Y21
R          2+0      2C0     X20
etc.

The last column is essentially your scheme, but using m instead
of l-abs(m), and replacing the 'Z' form with X*0 (mathematically
correct as cosine(0) = 1).

Putting the sign or character between the two numbers also works
for orders > 9.

Ambdec (and my other tools) will use something combining ACN and
the second column above. Where it matters (e.g. when listing a row
of matrix coefficients) the implied order is ACN. Unless someone 
convinces me to use the '???' scheme - I'm still tempted by it.
It seems more 'human friendly' than ACN, and it matches FuMa for
the 2nd and 3rd degrees.

OTOH, the main consideration for choosing ACN was that these things
will in most cases be handled by tools and code rather than by humans.

-- 
FA

There are three of them, and Alleline.

_______________________________________________
Sursound mailing list
[email protected]
https://mail.music.vt.edu/mailman/listinfo/sursound

Reply via email to