[LAD] ambisonics UHJ encoder

Jörn Nettingsmeier nettings at folkwang-hochschule.de
Tue Feb 23 21:58:54 UTC 2010

hi alex, fons!

On 02/23/2010 02:37 PM, alex stone wrote:
> Jorn, Fons, i'm looking for a ladspa UHJ encoder, and can't seem to
> find one. Any idea if such a beast exists? Or if there's a standalone
> instance or ambdec preset i can use, and route in and out of?

as fons said, jconv does a nice job of it, and i'm using it exclusively
now. i did my first experiments with farina's method, described here:
it's essentially the same, only that farina provides one IR per
input/output pair, where fons does the same more elegantly with a single
hilbert transform (they do the 90° phase shift indicated by the "j"
coefficient as you find them on farina's page), and a couple of delays.

the huge delay is a problem for me, because i like to A/B between UHJ
and first or second order ambi - but it's easily fixed by inserting a
ladspa delay plugin in the other channels. the "simple delay with cubic
interpolation" works fine for me (part of the swh set iirc). the nice
thing about ardour is that a mono plugin will automagically be
replicated n-times in an n-channel bus.

> Jorn ,i've had several browses over your web examples of using AMB
> plugins with Ardour, and have reflected the setup where possible in
> Non-Mixer.
> I'm using samples (ala LSampler) for noise, but i'll ask here, what's
> the function of using the tetraproc mike plugin over something else?
> I'm lost in your explanation.

then my explanation probably sucks :(

to clarify: tetraproc, a stand-alone jack application, is first and
foremost an A->B converter, i.e. only useful if you have to deal with
the output of a tetrahedral microphone directly. in addition, it has a
virtual microphone processor that can derive any coincident stereo pair
from a b-format.

if you want to do just the latter, and you already have a b-format, it's
easier to use the vmic plugin which is part of fons' AMB plugins - it
does the same job, but is simpler to use (no jack patching).

if you have a b-format and want to produce stereo, these are the two
options you have:

1. use UHJ to fold it down automatically (including extra surround
information that allows the consumer to blow it up to horizontal
surround again, with a few compromises). but since uhj basically moves
the rear sound stage to the front, it can sound slightly over-ambient
(not as extreme as blumlein stereo, though).

2. use a virtual stereo mike to pick out a stereo perspective. it allows
for more control, is a lot easier to produce, and it's probably the
safer option if you want your mix to be reliable on consumer gear...

i'm experimenting with uhj, but i've found that the sound stage can vary
wildly between different playback systems. it's superior to my ears when
all goes well, but difficult to control.
and "controlling" here means to tweak your surround mix and anticipate
what it will do to the UHJ. weird way of working.
if on the other hand you never listen in surround and only mix for UHJ,
the b-format will likely not make much sense when played back ambisonically.

> I'm still getting my feet wet in ambisonics, and making plenty of
> errors along the way, but progress seems imminent. (as it always does
> i guess, for the optimistic among us.)

:) same here. i may have two years of a head-start, but fons has endured
extremely dumb questions on the way... so i'm happy to be of assistance
to others now!

> Should i then stay "faithful" to that signal chain, and up to a UHJ
> encode to stereo (which i hope is in ladspa existence) maintain the 4
> port stream to stay compliant with WXYZ?

there is no ladspa UHJ encoder yet.

> The intent with this is provide ambisonic positioning, and convolver
> tail, right up until downsizing to stereo as the last part of the
> signal chain.

i would definitely go that way, to be able to easily provide a b-format

since you are dealing with artificial sources anyways, why stick to
first order? do your panning in higher order instead. the use of
resources is minimal (although it will create an insane amount of jack
ports, so use -P2048). it won't make any difference to your UHJ, since
it only ever sees WXY, but it would enable you to produce really crisp
n.1 or HOA decodes without any extra work.

> Feel free to point out obvious errors, or alternative (meaning
> smarter) suggestions.

just one, totally unrelated, but smart(-ass) nonetheless: could you
please edit your replies to quote only the part you are directly
referring to? i'm usually very curious about things you have to say on
the list, but my mouse wheel finger is getting RSI...



More information about the Linux-audio-dev mailing list