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
