[Flac-dev] Code for Ambisonics
brianw at sounds.wa.com
Fri Mar 23 01:45:12 PDT 2007
Thanks for the clarification. I've been curious about ambisonic
recording, and am surprised that I did not recognize your name from
materials I downloaded last month.
I suggest that it would be simple to devise some application-specific
metadata for FLAC, using the METADATA_BLOCK_APPLICATION described at
You can register an application ID such as 'Ambi' and then devise a
few subtypes. A "peak" metadata type should probably be added to
FLAC independently of any Ambisonic extensions, simply because that
metadata would certainly be useful outside of ambisonics. Basically,
FLAC is just as extensible as WAVE-EX, so all is needed is to devise
a good standard to get things started. Ogg FLAC embeds the FLAC
metadata, so it should work similarly.
I am willing to review any proposals. In fact, I would be very
interested to be involved in this. I suppose Josh may have some
comments. I'm not sure how much the application-specific metadata
extensions have been taken advantage of for FLAC, so Josh may want to
set some guidelines, as this may be a first.
P.S. Personally, I think it would be better to extend FLAC with a
little channelization metadata, rather than extend RIFF/WAVE to
contain FLAC-compressed data. RIFF/WAVE has several shortcomings
that AIFF does not suffer. Further, FLAC has already been contained
within Ogg, which I believe has met with minimal usage. It's
probably easier to use FLAC for Ambisonic, even if the new metadata
is missing, than to use RIFF/WAVE for FLAC-compressed audio. Sorry
if this is stating the obvious.
On Mar 22, 2007, at 22:12, Martin Leese wrote:
I wasn't looking for any particular support, but
just to see what support was there (if any).
B-Format is not a set of speaker feeds, and
needs to be routed to a decoder in your living
room. It would therefore be useful to have a
flag identifying the file as B-Format. For example,
the ".amb" format (based on WAVE-EX) uses
unique GUIDs for this.
UHJ format is stereo compatible, but can also
be decoded back into surround sound. Again,
a flag identifying the file as UHJ would be useful
to give a player the opportunity to do this. The
".uhj" format (based on WAVE and WAVE-EX)
uses a chunk for this.
G-Format files can contain coefficients to allow
the B-Format channels to be recovered. These
can then be decoded to a speaker layout
different from the one assumed when the
G-Format file was created. This can only
happen if there is some way of identifying the
file as G-Format, and some way of incorporating
the coefficients into it.
In each case there is no need to change the
audio data, but in each case there is a need
for identifying flags.
Hope this helps.
Martin J Leese
E-mail: martin.leese at stanfordalumni.org
More information about the Flac-dev