Many transmission media (LP, FM radio, CD) are two-channel and, unfortunately, it is impossible to obtain reasonable surround sound using only two of the B-Format signals. To overcome this, two-channel UHJ matrix encoding was developed. Not only can two-channel UHJ be decoded back into horizontal surround sound, but it is also mono and stereo compatible.
An official file format for downloadable two-channel UHJ files has been defined to allow easy exchange of audio files. The file format is in the public domain for anybody to use.
The format includes a soundfile information chunk that is added to two-channel WAVE-EX and WAVE soundfiles to indicate the soundfile is UHJ encoded. WAVE-EX is the preferred format. As unrecognized chunks are always skipped, use of this chunk maintains stereo compatibility.
The AMBU chunk has the following structure:
typedef struct { char ID[4]; /* 'AMBU' */ unsignedInt32 dataSize; /* the size of the chunk */ unsignedInt32 version; /* version of the AMBU chunk */ } AMBUchunk;
The file extension is ".uhj". This is to allow the operating system to route UHJ files to an Ambisonic decoder. Note that when creating files, software must use this file extension. However, when reading files, software should peek inside any WAVE or WAVE-EX file, irrespective of its extension, to see if it contains the AMBU chunk. (This is an example of the robustness principle, "Be liberal in what you read, and conservative in what you write".)
SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT; // Stereo = 0x00000003and the channel order is Left, Right as is normal for stereo files.
Many people already offer plug-ins and other Ambisonic software. Such people are encouraged to support the above format (in addition to other formats).
When two-channel UHJ is played in stereo, the front- and side-stage material is reproduced with sharply defined images. The rear-stage material is reproduced, but given a less focused, more "recessed" quality. This helps to provide an audible distinction between front and rear sounds when played in stereo.
When two-channel UHJ is played in mono, sounds from all directions, including due back, are reproduced in the single speaker at a level within 5 dB of one another.
Two-channel UHJ is produced from first-order horizontal B-Format using the following equations (where j is a +90 degree phase shift):
W' = W*sqrt(2)
S = 0.9396926*W' + 0.1855740*X
D = j(-0.3420201*W' + 0.5098604*X) + 0.6554516*Y
Left = (S + D)/2.0
Right = (S - D)/2.0
UHJ is a hierarchy of stereo compatible standards for 2, 2.5, 3 and 4 transmission channels, termed BHJ, SHJ, THJ and PHJ, respectively. The extra channels are used to augment the two base channels to give improved horizontal surround sound and, for four-channel UHJ, full-sphere surround sound.
Unfortunately, files containing more than two channels do not play on stereo systems. Further, on multi-channel systems, the audio device renders the extra channels to output ports not in use. This can happen even when the extra channels are masked off. Therefore, such files can not be made stereo compatible. As the only advantage of UHJ over B-Format is stereo compatibility, it is suggested that three- and four-channel UHJ material be converted to B-Format in the ".amb" file format.
2.5 channel UHJ (where the .5 is a third channel band limited to 5 kHz) cannot be converted to B-Format. However, as no material is known to exist in this format that does not also exist in B-Format, this is not a problem.