B-Format to A-format conversion

bassik's icon

Hello all again,

still on my struggle to make ambisonics in Max good for me.

Does anyone has ever done a patch to convert B-format to A-format and then A-format to B-format again?

I need to put an idea for an FX in the middle.

I do not need any complex filtering for mic as this is a signal coming out of the Ambiencode of ICST tools so it will be pure B-format signal (or this is my guess).

Thank you very much

Bassik

bassik's icon

BUMP!!

Sorry but I cannot believe no one knows the answer to this...Anyway stil waiting on the river bank...:OP

Thank you for your support..

Anthony Palomba's icon

I am very interested in ambisonics as well. But have found very
few people on this forum use it much.

I have found the Surround Mailing List at Virginia Tech to be
a better resource. You need to visit...
https://mail.music.vt.edu/mailman/private/sursound/

If you join the list and post your question, you
will probably get a better response.

My guess is most likely you would need to find some source code
that does ambisonic encode/decode and port it to Max.

bassik's icon

Hello Anthony,

thank you very much for the link.
I am actually subscribed already but I haven't thought about it as a resource for max...

BTW, I have been using your mixer sometime ago...thanks for sharing!!! :)

I will follow your advice.

Thank you

Bassik

Owen Green's icon

Rumsey, Spatial Audio (Focal Press,2001), p114 gives A->B as

W = 0.5((LF + LB + RF + RB))
X = 0.5((LF - LB) + (RF - RB))
Y = 0.5((LF - RB) - (RF - LB))
Z = 0.5((LF - LB) + (RB - RF))

with LB = left back, LF = left front, etc., LF and RB point up

so I make it that (with no warranty whatsoever...):
LF = 0.5(W + X + Y + Z)
RF = 0.5((W + X) - (Y - Z))
LB = 0.5((W - X) - (Y - Z))
RB = 0.5((W - X) - (Y + Z))

Augustine Bannatyne - Leudar's icon

It depends how you encoded the B format .I designed a b format encoder for a 6 capsule ambisonic microphone. The encoding went like this :

Left + phase inverted right = x
Front + phase inverted back = y
Top + phase inverted bottom = z
All summed * 0.257 = w

in other words the left phase positive was added to the right phase invertered
the front poitive added to the bottom phase inverted
the top phase positive added to the bottom phase inverted. Pluse the W signal which is all summed * 0.257 (W might be a different value for different setups)
- it does depend on the mic, sound sources etc
Adding the one positive to the one phjase inverted signal givess you the difference between the two (the signal that are the same cancel each other out due to the phae inversion).
I had to do this due to using two outward facing one sided mic capsules instead of one fig 8 capsule (if one two sided microphone capsule is used then the phase cancellation is automatic - the difram cant go in two directions at the same time).
Basically the XYZ give you the difference between the two sides of the fig8 pattern and the W tells you which side is in phasse with it so you can tell which half of he fig 8 the signal is on.
Either way all you have to do is work out a way of getting the original values by de phase inverting and adding the signal - its probably W + y , W - y to get two signals from Y or something like that same for X and Z

Come to think of it jut removing the W signal - tell you what Ill ask the guy who writes the decoders next door and get back o you next week ..

bassik's icon

Hello,

Owen thank you for remainding me about spatial audio eq by Ramsey; I have a feeling that simple math would not work in this case.
Also I have to convert B to A format of a 3rd order signal.

Augustine thank you for sharing your idea but in my case I am not processing a microphone input but an ambisonics encoder output in B format and I need to convert this to A format.
SO probably the equations can be simplified?
I am using ICST tools.
If you can ask to your colleague who design decoders that would be much appreciated!!!

Does anyone have the equation for B format to A format or can confirm that just linear math would work as shown by Owen??

Thank you

Bassik

bassik's icon

Hello,

for everyone interested, I have just got an answer from Dave Malham from University of York on sursound mailing-list (thanks Augustine to remind me about its existence).

Basically he says that there are times in which you have to convert B-Format to A-format but usually it can only be done by applying the delay lines to each component of the B-format signal and then rotate to create interesting effects.

Also a typical send/return fx circuit can be used no problem with summing up the delayed element with the dry part of the signal.

A similar thing is included in the Lamb software by Dylan Menzies (who did a PhD thesis at York) : http://www.tech.dmu.ac.uk/~dylan/z/dylan/project/holog/index.html

Hope this helps

Sero