On Aug 14, 2009, at 14:24, Paul Davis wrote: > On Fri, Aug 14, 2009 at 5:05 PM, Josh Coalson<[email protected]> wrote: >> it's unlikely flac will ever support floating-point samples >> natively. the main application for it is audio engineering, which >> demands easy editing and very high speed for both encoding and >> decoding above everything else. > > thats not why floating point is used. > > the highest current feasible bit resolution for digital audio samples > is 24 bits. most converters don't even fully provide that. 32 bit > floating bit allows bit-for-bit storage of all 24 bits of the original > sample as the mantissa, along with more bits available in the > exponent. this provides astronomical "headroom" for use when summing > multiple samples. if you only use 24 bits and add two values very > close to the maximum 24 bit value, you will overflow. even if you use > 32 bits, its not imposible to construct workflow scenarios where you > would overflow. if you do this in float format, you lose a little > precision in the answer, but you cannot overflow. > > this is why floating point is used.
You have successfully described why the music production industry has settled on float for processing, but this has nothing to do with storage formats for analog-to-digital audio recording and playback. Programs like Logic Pro will transparently convert from 24-bit source files to 32-bit float internally, to avoid the headroom issues you speak of. There is no requirement that the files be stored as 32-bit float because you can still do all processing in 32-bit float even with 24-bit file sources. When the ADC source and the DAC destination are both limited to 24- bit fixed point integers, it makes absolutely no sense to store recordings or final mixes in 32-bit floating point representation. The headroom you speak of is completely unavailable when storing the output of an ADC into a file. Likewise, headroom is wasted when playing back a fully mastered piece of audio to a 24-bit DAC. Headroom is only an issue when you want to work on the audio and change it, which is something that 99% of audio consumers do not bother with or even understand. >> flac is designed as a consumer audio format. it trades ease of >> editing for a featureful, robust transport layer more suited for >> playback, and encoding speed for more compression and faster >> decompression. > > flac seems more popular at present among high end audiophiles than > mere consumers. its very regrettable that it doesn't support floating > point natively. many of our users (http://ardour.org/) have asked > about using FLAC as an option for recording format, but we have to > explain that its not viable because of the lack of floating point > support. and yes, that is audio engineering :) Audiophiles are still consumers, in that they do not produce music, they merely consume it. You are correct that audiophiles tend to live in the gray area between typical consumers and professionals, but they still don't need 32-bit float. Users of Ardour are beyond audiophiles, because they're actually producing music. There would be two different sets of needs for storage formats. For final mixes and delivery of finished audio, 24- bit file formats like FLAC are perfect. These files are in a format ready to send to a 24-bit DAC for listening. Any headroom beyond 24- bit is pointless for a delivery format. For one thing, a 32-bit file, compressed or not, would need to be dithered before playing on a 24-bit DAC. Ardour users would have a different set of needs for intermediate mix files such as stems and "frozen" tracks. These would indeed be best as 32-bit float, and an optimized format like FLAC would be inappropriate. It would be quite interesting if someone were to create a lossless format which can handle 32-bit float, but I don't believe it has been done yet. In most respects, this would mostly be a tradeoff between storage space and processing power, since processing a compressed file is usually too expensive for most DAW software, and so they always uncompress source files before using their data. Thus, even a space-saving format like FLAC would be pointless for Ardour, since you'd still need to take up disk space for an uncompressed copy of the data (like Ableton Live, which supports FLAC). About the only positive use for lossless compression of 32-bit float would be sending stems from digital mixing houses to digital mastering houses, while saving on disk space. Generally, saving space is not critical at that professional level, since there's usually enough of a budget to cover the cost of increased storage space. I suggest that you tell your users to select FLAC only for final mix bounces, and direct them to another format for intermediate storage of audio which will be processed further. Brian Willoughby Sound Consulting _______________________________________________ Flac-dev mailing list [email protected] http://lists.xiph.org/mailman/listinfo/flac-dev
