I think the question might be more simpler than this. For 1st order (with 4 
microphones) the very first A to B equations are (for example):
W' = FLU+FRD+BLD+BRU
X' = FLU+FRD-BLD-BRU
Y' = FLU-FRD+BLD-BRU
Z' = FLU-FRD-BLD+BRU

What would the equations be for 8 microphones?
W' = FLU+FRD+BLD+BRU+FRU+FLD+BLU+BRD
X' = FLU+FRU+FRD+FLD-BLD-BRU-BLU-BRD
Y' = FLU+FLD+BLD+BLU-FRU-FRD-BRD-BRU
Z' = FLU+BRU+FRU+BLU-FLD-BLD-FRD-BRD
But what about R’,S’,T’,U’ ??

S
From: Fons Adriaensen
Sent: 25 March 2019 04:42
To: sursound@music.vt.edu
Subject: Re: [Sursound] 2nd order A-format to B-format equations

On Sun, Mar 24, 2019 at 08:38:45PM +0100, Jörn Nettingsmeier wrote:
> On 3/24/19 1:25 PM, Martin Dupras wrote:
> > Hi,
> > 
> > Could anyone point me in the direction of a resource that shows the
> > equations for converting a 2nd order A-format recording into B-format? I
> > would like to convert in realtime from a Core Octomic in software (e.g. PD,
> > Max, SuperCollider) without the use of a plugin.
> 
> In case vendors are reluctant to share their precise decoding steps, you can
> always make it work for one particular microphone by measuring the impulse
> responses of each A-format channel into all the B-format channels, which
> will give you an 8x9 convolution matrix. It might be a dense matrix, but
> probably with very short impulse responses, so likely light on CPU.

The IRs could be longer than you'd expect as they will include the
highpass filters as well as some LF EQ.

> On Linux, my tools of choice are Fons' aliki to measure IRs and edit them
> for convolution, and jconvolver to apply them in a very efficient way. The
> joy is that you would be reverse-engineering Fons' octoproc (which might
> even be GPL'd, I don't know).

A file in/out processor for the octomic has been on my website for at
least nine months. It is GPL3 licensed. A real-time version will follow
when I find the time...

The actual A/B process is no mystery:

1. Highpass filter (user configurable)
2. LF EQ
3. 8 * 8 convolution matrix (the 'R' channel is silent).
4. Gain corrections (SN3D/N3D/FUMA) and upside-down channel mapping.

Data for 2. and 3. are read from the preset file for your mic.

> I know tetraproc is GPL'd, but Len has chosen to obfuscate the custom
> decoding parameters to protect his secret sauce.

No, that isn't true. The actual parameters in the preset files are not
obfuscated at all, and both tetraproc and octofile contain the code to
read the preset files (which are just binary OSC).

*I* have chosen to keep the way the presets are computed confidential.
That protects both my and Len's work. While the A/B processing for
Octomic is not complicated at all, deriving the required IRs from the
calibration data (256 measured IR's) is not that simple. It took me
several months to refine the procedure to the point it would give results
that I could trust.

> Fair enough. I guess the
> same holds for the Octomic. Facing the choice of understanding C++ DSP code
> which has been through Fons' brain optimizer or measuring a few IRs, I'd
> choose measuring any day :-D

Lazy, lazy,... :-)

Ciao,

-- 
FA


_______________________________________________
Sursound mailing list
Sursound@music.vt.edu
https://mail.music.vt.edu/mailman/listinfo/sursound - unsubscribe here, edit 
account or options, view archives and so on.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<https://mail.music.vt.edu/mailman/private/sursound/attachments/20190327/5e24acea/attachment.html>
_______________________________________________
Sursound mailing list
Sursound@music.vt.edu
https://mail.music.vt.edu/mailman/listinfo/sursound - unsubscribe here, edit 
account or options, view archives and so on.

Reply via email to