<B>FLAC goes hardware!</B> <AHREF="http://www.phatnoise.com/">Phatnoise</A> has become the first commercial hardware platform to support FLAC. Firmware is now available for the Phatbox player to play FLAC files. See <AHREF="http://phatbox.sixpak.org/">here</A> for details.
<B>FLAC 1.0.2 released</B> This release is only to fix a bug that was causing some of the plugins to crash sporadically. It can also affect <B><TT>libFLAC</B></TT> users that reuse one file decoder instance for multiple files; see <AHREF="http://www.geocrawler.com/lists/3/SourceForge/7206/0/7231340">here</A> for more.
<B>FLAC 1.0.1 released</B> The core codec is unchanged but there have been some features added and some bugs fixed:
<P>
New features for users:
<UL>
<LI>Support for Ogg-FLAC, i.e. <B><TT>flac</TT></B> can now read and write FLAC streams using Ogg as the transport layer.</LI>
<LI>New Winamp 3 plugin based on the Wasabi Beta 1 SDK.</LI>
<LI>New utilities for adding FLAC support to the Monkey's Audio GUI (see <AHREF="documentation.html#monkey">how</A>).</LI>
<LI>Mac OS X support. The download area now contains an OS X binary release.</LI>
<LI>Mingw32 support.</LI>
<LI>Better handling of MS-specific 'fmt' chunks in WAVE files.</LI>
</UL>
<P>
New features for developers:
<UL>
<LI>Added a SeekableStreamDecoder layer between StreamDecoder and FileDecoder. This makes it easier to use libFLAC in situations where files have been abstracted away. See the latest <AHREF="documentation.html#libflac">documentation</A> for more. The interface for the StreamDecoder and FileDecoder remain the same and are still binary-compatible with libFLAC 1.0.</LI>
<LI>Drastically reduced the stack requirements of the encoder.</LI>
</UL>
<P>
Bug fixes:
<UL>
<LI>Fixed a serious bug with <B><TT>flac</TT></B> and raw input where the encoder was trying to rewind when it shouldn't, which would add 12 junk samples to the encoded file. This was not present in WAVE encoding.</LI>
<LI>Fixed a minor bug in <B><TT>libFLAC</TT></B> with setting the file name to stdin on a file decoder.</LI>
<LI>Fixed a minor bug in <B><TT>libFLAC</TT></B> where multiple calls to setting the file name on a file decoder caused leaked memory.</LI>
<LI>Fixed a minor bug in <B><TT>metaflac</TT></B>, now correctly skips an id3v2 tag if present.</LI>
<LI>Fixed a minor bug in <B><TT>metaflac</TT></B>, now correctly skips long metadata blocks.</LI>
<B>FLAC 1.0 is out!</B> It's finally here. There are a few new features but mostly it is minor bug fixes since 0.10:
<UL>
<LI>New '--sector-align' option to <B><TT>flac</TT></B> which aligns a group of encoded files on CD audio sector boundaries.</LI>
<LI>New '--output-prefix' option to <B><TT>flac</TT></B> to allow the user to prepend a prefix to all output filenames (useful, for example, for encoding/decoding to a different directory).</LI>
<LI>Better WAVE autodetection (doesn't rely on ungetc() anymore).</LI>
<B>FLAC 0.10 released.</B> This is probably the final beta. There have been many improvements in the last two months:
<UL>
<LI>Both the encoder and decoder have been significantly sped up. Aside from C improvements, the code base now has an assembly infrastructure that allows assembly routines for different architectures to be easily integrated. Many key routines have now have faster IA-32 implementations (thanks to Miroslav).</LI>
<LI>A new metadata block <AHREF="format.html#def_SEEKTABLE">SEEKTABLE</A> has been defined to hold an arbitrary number of seek points, which speeds up seeking within a stream.</LI>
<LI><B><TT>flac</TT></B> now has a command-line usage similar to 'gzip'; make sure to see the latest <AHREF="documentation.html">documentation</A> for the new usage. It also attempts to preserve the input file's timestamp and permissions.</LI>
<B>FLAC 0.9 released.</B> There were some format changes that broke backwards compatibility but these should be the last (see below). Also, there have been several bug fixes and some new features:
<LI>FLAC's sync code has been lengthened to 14 bits from 9 bits. This should enable a faster and more robust synchronization mechanism.</LI>
<LI>Two reserved bits were added to the frame header.</LI>
<LI>A CRC-16 was added to the FLAC frame footer, and the decoder now does frame integrity checking based on the CRC.</LI>
<LI>The format now includes a new subframe field to indicate when a subblock has one or more 0 LSBs for all samples. This increases compression on some kinds of data.</LI>
<LI>Added two options to the analysis mode, one for including the residual signal in the analysis file, and one for generating gnuplot files of each subframe's residual distribution with some statistics. See the latest <AHREF="documentation.html#analysis_options">documentation</A>.</LI>
<LI>Fixed a bug in the Winamp2 plugin where the audio sounded garbled.</LI>
<LI>Fixed a bug in the Winamp2 plugin where Winamp would hang sporadically at the end of a track (c.f. <AHREF="http://sourceforge.net/tracker/index.php?func=detail&aid=231197&group_id=13478&atid=113478">bug #231197</A>).</LI>
</UL>
FLAC is on track for an official 1.0 release soon.
<B>FLAC 0.8 released.</B> This release is a result of extensive testing and fixes several bugs encountered when pushing the encoder to the limit. I'm pretty confident in the stability of the encoder/decoder now for all kinds of input. There have also been several features added. Here is a complete list of the changes since 0.7:
<UL>
<LI>Created a new utility called <B><TT>metaflac</TT></B>. It is a metadata editor for .flac files. Right now it just lists the contents of the metadata blocks but eventually it will allow update/insertion/deletion.</LI>
<LI>Added two new metadata blocks: PADDING which has an obvious function, and APPLICATION, which is meant to be open to third party applications. See the <AHREF="format.html#def_APPLICATION">latest format docs</A> for more info, or the new <AHREF="id.html">id registration page</A>.</LI>
<LI>Greatly expanded the test suite, adding more streams (24-bit streams, noise streams, non-audio streams, more patterns) and more option combinations to the encoder. The test suite runs about 30 streams and over 5000 encodings now.</LI>
<LI>Fixed a bug in <B><TT>libFLAC</B></TT> that happened when using an exhaustive LPC coefficient quantization search with 8 bps input.</LI>
<LI>Fixed a bug in <B><TT>libFLAC</B></TT> where the error estimation in the fixed predictor could overflow.</LI>
<LI>Fixed a bug in <B><TT>libFLAC</B></TT> where LPC was attempted even when the autocorrelation coefficients implied it wouldn't help.</LI>
<LI>Reworked the LPC coefficient quantizer, which also fixed another bug that might occur in rare cases.</LI>
<LI>Fixed a bug in <B><TT>flac</B></TT> related to the decode buffer sizing.</LI>
</UL>
FLAC is very close to being ready for an official release. The only known problems left are with the Winamp plugins, which should be fixed soon, and pipes with MSVC.
<LI>Fixed a bug with -p (c.f. <AHREF="http://sourceforge.net/tracker/?group_id=13478&atid=113478&aid=230992&func=detail">bug #230992</A>).</LI>
<LI>Fixed a bug that happened when using large (>32K) blocksizes and -V (c.f. <AHREF="http://sourceforge.net/tracker/?group_id=13478&atid=113478&aid=231976&func=detail">bug #231976</A>).</LI>
<B>FLAC 0.6 released.</B> The encoder is now much faster. The -m option has been sped up by 4x and -r improved, meaning that in the default compression mode (-6), encoding should be at least 3 times faster. Other changes:
<UL>
<LI>Some bugs related to <B><TT>flac</TT></B> and pipes were fixed (see <AHREF="http://www.geocrawler.com/lists/3/SourceForge/7206/0/5013495/">here</A> for the discussion).</LI>
<LI>A "loose mid-side" (<TT>-M</TT>) option to the encoder has been added, which adaptively switches between independent and mid-side coding, instead of the exhaustive search that <TT>-m</TT> does.
<LI>An analyze mode (<B><TT>-a</TT></B>) has been added to <B><TT>flac</TT></B>. This is useful mainly for developers; currently it will dump info about each frame and subframe to a file. It's a text file in a format that can be easily processed by scripts; a separate analysis program is in the works.</LI>
<B>FLAC 0.5 released.</B> This is the first beta version of FLAC. Being beta, there will be no changes to the format that will break older streams, unless a serious bug involving the format is found. What this means is that, barring such a bug, streams created with 0.5 will be decodable by future versions. This version also includes some new features:
<LI>An <AHREF="http://userpages.umbc.edu/~mabzug1/cs/md5/md5.html">MD5 signature</A> of the unencoded audio is computed during encoding, and stored in the Encoding metadata block in the stream header. When decoding, <B><TT>flac</TT></B> will now compute the MD5 signature of the decoded data and compare it against the signature in the stream header.</LI>
<LI><B>FLAC 0.4 released.</B> This version fixes a bug in the constant subframe detection. More importantly, a verify option (-V) has been added to <B><TT>flac</TT></B> that verifies the encoding process. With this option turned on, <B><TT>flac</TT></B> will create a parallel decoder while encoding to make sure that the encoded output decodes to exactly match the original input. In this way, any unknown bug in the encoder will be caught and <B><TT>flac</TT></B> will abort with an error message.</LI>
<LI><B>FLAC debuts on SourceForge.</B> The FLAC project is now being hosted on SourceForge. Visit the <AHREF="http://www.sourceforge.net/projects/flac/">FLAC project page</A> to join the mailing list or sign up as a developer.</LI>