Making UHJ


The Simple Way

When I first wrote this page, there was no software available to generate UHJ directly.  This has changed; there are now VST plugins to do the job from Blue Ripple (paid for), and included in the Ambisonics ToolKit; there is also a UHJ decoder in Daniel Courville's suite of plugins for the Mac.  

The availability of these plugins means that there is no reason to use the method described below any longer.  However, I leave it in place for interest.


Generating UHJ Files

Making a UHJ file from an ambisonic recording is not entirely trivial - however, I am not concerned with the theory here.  Practical methods have been worked out and described by Angelo Farina, and you can read his description here.  I have used his method in AudioMulch; but that can only do the job in real time, so for this task it is more convenient to use Plogue Bidule, which can be set to work "offline".

Angelo's scheme is based on convolving the three input channels (W, X, Y) with impulses defining the required output on each of the stereo channels; six impulses in all.  These are conveniently handled and processed as three pairs, as if stereo.  The impulses can be downloaded from this page on Angelo's site; I have taken them on trust, but the programs that generated them are also there for inspection.  Below is the process as I run it, defined as a graph in Bidule:

Note that I have used the 4-channel file player, even though the input .AMB file has only three channels.  The player handles this perfectly smoothly.  Using three players for separate channel files with the play buttons linked is not recommended at the present; I have found that under some circumstances, linking the play buttons of the players does not achieve a sample-accurate simultaneous start for the three channels, and have not yet sussed the reason.

The settings for SIR are shown below.  This is a more recent version of SIR than is illustrated on Angelo's page, and has a couple of extra settings.  I think the gain structure must have been changed to provide extra headroom, because the output is very low if the new +12dB button is not pressed.  In addition, I have added a gain component in the graph above, which can be set to between +0dB and +9dB to bring the output file nearer to full modulation if desired - some experimentation may be needed to get this right for any particular input file. 

Remember to use the right set of impulses for the sample rate of the file being converted - and remember to set Bidule to run at that same rate.

The last refinement is to tell Bidule to link the play and record buttons.  By doing this, the recording is started when the playback of the input file is started, and stopped when it ends.  To do the job offline (about six times faster than real time on my AMD Athlon 2800+ processor) select "offline processing" from the edit menu. Here is the screen linking recording to playback:

Of course, this whole process ends up with a UHJ file having the same sample rate as the original surround recording.  If this was not 44.1kHz, it will need to be converted to 44.1kHz for use on a CD.  There may well be some advantage in doing this before the UHJ conversion, so that there is no process following that might distort the phase relationships that are part of the UHJ encoding - but it's simpler to convert the stereo file, and I doubt that this will cause a serious problem in practice.  However, if DTS encoded G-format is required as well, then it may in any case be most efficient to convert the B-format signals to 44.1kHz first.

At present I make my recordings at 44.1kHz to avoid this problem; I may change to using 48kHz if I start writing DVDs.

Ambisonic Info header