[Flac-dev] 32-bit float?

Brian Willoughby brianw at sounds.wa.com
Sun Apr 22 13:48:47 PDT 2007

Hi Ken,

We covered this recently, but I recall it was on the FLAC (user) list.

The FLAC format cannot handle float directly.  It can handle 32-bit  
integer, but no encoder exists.  The maximum you can encode now,  
without writing your own software, is 24-bit integer.

The interesting situation is that we cannot listen to 32-bit float  
directly without converting to 24-bit integer, so FLAC is perfectly  
suited for finished audio works.  You merely need to apply whatever  
32-bit float to 24-bit integer conversion that you would use for  
general listening or commercial distribution, and then use FLAC on  
the 24-bit result.  There are, however, many ways to do this,  
including truncation of fractional bits below the 24-bit integer LSB,  
or dithering.  In addition, 32-bit audio which might later be  
combined into an final audio piece could potentially hold useful  
information which would be lost if converted to 24-bit integer.

I would say that FLAC is ideal for archival of original recordings  
and finished works, since 24-bit integer is the maximum depth handled  
by analog converters.  The only real shortcoming is use on generated  
audio and intermediate mixes, either of which may contain fractional  
bits of potential significance in a final mix.

For your use, I would recommend using FLAC on the raw track input  
audio and your final mixes.  FLAC would not be the best choice for  
intermediate bounces, but those can be regenerated from the raw track  
data anyway.  It might be interesting to write a FLAC front-end for  
Ardour which looks for fractional bits when converting 32-bit float  
to FLAC, and warns you if there will be data loss.

Ogg Vorbis is a different algorithm and format, so it does not have  
the same limitations as the FLAC format.  Ogg-FLAC would not be able  
to handle 32-bit float, and probably won't handle 32-bit integer  
until some new software is written.

Brian Willoughby
Sound Consulting

On Apr 22, 2007, at 12:16, Ken Restivo wrote:

I notice that FLAC can't handle "broadcast" WAV's in IEEE float  
format-- the native file format of Ardour and JACK, among other  
things. It also can't seem to handle 32-bit integer format either.

Right now I have to convert WAV's to 24-bit before FLAC'ing it, then  
when converting it back again I've lost those bits. It'd be more  
"lossless" if I could actually leave it in its native format (float),  
then FLAC it, and then bring it back from FLAC into its original  
format without loss. This'd be especially useful for backing up  
Ardour session directories.

Interestingly, Ogg Vorbis can and does handle IEEE float WAV's and 32- 
bit WAV's without any trouble at all.

- -ken

More information about the Flac-dev mailing list