[Flac-dev] Code for Ambisonics

Brian Willoughby brianw at sounds.wa.com
Fri Mar 23 01:45:12 PDT 2007

Hi Martin,

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.

Brian Willoughby
Sound Consulting

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
Web: http://members.tripod.com/martin_leese/

More information about the Flac-dev mailing list