From: Josh Coalson Date: Wed, 9 Feb 2005 03:37:59 +0000 (+0000) Subject: revamp html to be xhtml 1.0 compliant, also use css X-Git-Tag: 1.2.0~555 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=950e3ca1b489720702eae75e9aac053f42a16bac;p=platform%2Fupstream%2Fflac.git revamp html to be xhtml 1.0 compliant, also use css --- diff --git a/doc/html/Makefile.am b/doc/html/Makefile.am index eb8f453..7af64e7 100644 --- a/doc/html/Makefile.am +++ b/doc/html/Makefile.am @@ -30,6 +30,7 @@ doc_DATA = \ faq.html \ favicon.ico \ features.html \ + flac.css \ format.html \ goals.html \ id.html \ diff --git a/doc/html/changelog.html b/doc/html/changelog.html index 9792ec0..aac77ef 100644 --- a/doc/html/changelog.html +++ b/doc/html/changelog.html @@ -1,407 +1,381 @@ - + - - - FLAC - changelog - + + + + + + + + + FLAC - changelog + - + - - - - -
FLAC Logo
+ -
+
-
+
- - - - -
- - - - - - - - - - - - - - - - -
  home  |  faq  |  news  |  download  |  features  |  goals  |  format  |  id  |  comparison  |  documentation  |  changelog  |  links  |  developers  
-
+ -
+
- - - - -
- - - - - -
  english  |  russian  
-
+
+  english  | +  russian  +
-
+
-
+
-
+
+
+ changelog +
+
+
+ This is an informal changelog, a summary of changes in each release. Particulary important for developers is the precise description of changes to the library interfaces. +

- - -
-
- - -
- changelog -
-
- - -
+ FLAC 1.1.2 -

- This is an informal changelog, a summary of changes in each release. Particulary important for developers is the precise description of changes to the library interfaces. -

+
-

- FLAC 1.1.2 -

-

-

    -
  • - General: -
      -
    • Sped up decoding by a few percent overall.
    • -
    • Sped up encoding when not using LPC (i.e. when using flac options -0, -1, -2, or -l 0).
    • -
    • Fixed a decoding bug that could cause sync errors with some ID3v1-tagged FLAC files.
    • -
    • Added HTML documentation for metaflac.
    • -
    -
  • -
  • - FLAC format: -
      -
    • (none)
    • -
    -
  • -
  • - Ogg FLAC format: -
      -
    • (none)
    • -
    -
  • -
  • - flac: -
      -
    • New option --input-size to manually specify the input size when encoding raw samples from stdin.
    • -
    -
  • -
  • - metaflac: -
      -
    • (none)
    • -
    -
  • -
  • - plugins: -
      -
    • Added support for HTTP streaming in XMMS plugin. NOTE: there is a bug in the XMMS mpg123 plugin that hijacks FLAC streams; to fix it you will need to add the '.flac' extension to the list of exceptions in Input/mpg123/mpg123.c:is_our_file() in the XMMS sources and recompile.
    • -
    -
  • -
  • - build system: -
      -
    • (none)
    • -
    -
  • -
  • - libraries: -
      -
    • libFLAC: Sped up Rice block decoding in the bitbuffer, resulting in decoding speed gains of a few percent.
    • -
    • libFLAC: Sped up encoding when not using LPC (i.e. max_lpc_order == 0).
    • -
    • libFLAC: Trailing NUL characters maintained on Vorbis comment entries so they can be treated like C strings.
    • -
    • libFLAC: More FLAC tag (i.e. Vorbis comment) validation.
    • -
    • libFLAC: Fixed a bug in the logic that determines the frame or sample number in a frame header; the bug could cause sync errors with some ID3v1-tagged FLAC files.
    • -
    • libFLAC, libOggFLAC: Can now be compiled to use only integer instructions, including encoding. The decoder is almost completely integer anyway but there were a couple places that needed a fixed-point replacement. There is no fixed-point version of LPC analysis yet, so if libFLAC is compiled integer-only, the encoder will behave as if the max LPC order is 0 (i.e. used fixed predictors only). LPC decoding is supported in all cases as it always was integer-only.
    • -
    -
  • -
  • - Interface changes: -
      -
    • - libFLAC: -
        -
      • Changed: Metadata object interface now maintains a trailing NUL on Vorbis comment entries for convenience.
      • -
      • Changed: Metadata object interface now validates all Vorbis comment entries on input and returns false if an entry does not conform to the Vorbis comment spec.
      • -
      • Added FLAC__format_vorbiscomment_entry_name_is_legal()
      • -
      • Added FLAC__format_vorbiscomment_entry_value_is_legal()
      • -
      • Added FLAC__format_vorbiscomment_entry_is_legal()
      • -
      • Added FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair()
      • -
      • Added FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair()
      • -
      • Changed the signature of FLAC__metadata_object_vorbiscomment_entry_matches(): the first argument is now FLAC__StreamMetadata_VorbisComment_Entry entry (was const FLAC__StreamMetadata_VorbisComment_Entry *entry), i.e. entry is now pass-by-value.
      • -
      -
    • -
    • - libFLAC++: -
        -
      • Changed: Metadata object interface now maintains a trailing NUL on Vorbis comment values for convenience.
      • -
      • Changed: Metadata object interface now validates all Vorbis comment entries on input and returns false if an entry does not conform to the Vorbis comment spec.
      • -
      • Changed: All Metadata objects' operator=() methods now return a reference to themselves.
      • -
      • Added methods to FLAC::Metadata::VorbisComment::Entry for setting comment values from null-terminated strings: -
          -
        • Entry(const char *field)
        • -
        • Entry(const char *field_name, const char *field_value)
        • -
        • bool set_field(const char *field)
        • -
        • bool set_field_value(const char *field_value)
        • -
        -
      • -
      • Changed the signature of FLAC::Metadata::VorbisComment::get_vendor_string() and FLAC::Metadata::VorbisComment::set_vendor_string() to use a UTF-8, NUL-terminated string const FLAC__byte * for the vendor string instead of FLAC::Metadata::VorbisComment::Entry.
      • -
      • Added FLAC::Metadata::*::assign() to all Metadata objects.
      • -
      • Added bool FLAC::Metadata::get_tags(const char *filename, VorbisComment &tags)
      • -
      -
    • -
    • - libOggFLAC: -
        -
      • (none)
      • -
      -
    • -
    • - libOggFLAC++: -
        -
      • (none)
      • -
      -
    • -
    -
  • -
-

+
    +
  • + General: +
      +
    • Sped up decoding by a few percent overall.
    • +
    • Sped up encoding when not using LPC (i.e. when using flac options -0, -1, -2, or -l 0).
    • +
    • Fixed a decoding bug that could cause sync errors with some ID3v1-tagged FLAC files.
    • +
    • Added HTML documentation for metaflac.
    • +
    +
  • +
  • + FLAC format: +
      +
    • (none)
    • +
    +
  • +
  • + Ogg FLAC format: +
      +
    • (none)
    • +
    +
  • +
  • + flac: +
      +
    • New option --input-size to manually specify the input size when encoding raw samples from stdin.
    • +
    +
  • +
  • + metaflac: +
      +
    • (none)
    • +
    +
  • +
  • + plugins: +
      +
    • Added support for HTTP streaming in XMMS plugin. NOTE: there is a bug in the XMMS mpg123 plugin that hijacks FLAC streams; to fix it you will need to add the '.flac' extension to the list of exceptions in Input/mpg123/mpg123.c:is_our_file() in the XMMS sources and recompile.
    • +
    +
  • +
  • + build system: +
      +
    • (none)
    • +
    +
  • +
  • + libraries: +
      +
    • libFLAC: Sped up Rice block decoding in the bitbuffer, resulting in decoding speed gains of a few percent.
    • +
    • libFLAC: Sped up encoding when not using LPC (i.e. max_lpc_order == 0).
    • +
    • libFLAC: Trailing NUL characters maintained on Vorbis comment entries so they can be treated like C strings.
    • +
    • libFLAC: More FLAC tag (i.e. Vorbis comment) validation.
    • +
    • libFLAC: Fixed a bug in the logic that determines the frame or sample number in a frame header; the bug could cause sync errors with some ID3v1-tagged FLAC files.
    • +
    • libFLAC, libOggFLAC: Can now be compiled to use only integer instructions, including encoding. The decoder is almost completely integer anyway but there were a couple places that needed a fixed-point replacement. There is no fixed-point version of LPC analysis yet, so if libFLAC is compiled integer-only, the encoder will behave as if the max LPC order is 0 (i.e. used fixed predictors only). LPC decoding is supported in all cases as it always was integer-only.
    • +
    +
  • +
  • + Interface changes: +
      +
    • + libFLAC: +
        +
      • Changed: Metadata object interface now maintains a trailing NUL on Vorbis comment entries for convenience.
      • +
      • Changed: Metadata object interface now validates all Vorbis comment entries on input and returns false if an entry does not conform to the Vorbis comment spec.
      • +
      • Added FLAC__format_vorbiscomment_entry_name_is_legal()
      • +
      • Added FLAC__format_vorbiscomment_entry_value_is_legal()
      • +
      • Added FLAC__format_vorbiscomment_entry_is_legal()
      • +
      • Added FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair()
      • +
      • Added FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair()
      • +
      • Changed the signature of FLAC__metadata_object_vorbiscomment_entry_matches(): the first argument is now FLAC__StreamMetadata_VorbisComment_Entry entry (was const FLAC__StreamMetadata_VorbisComment_Entry *entry), i.e. entry is now pass-by-value.
      • +
      +
    • +
    • + libFLAC++: +
        +
      • Changed: Metadata object interface now maintains a trailing NUL on Vorbis comment values for convenience.
      • +
      • Changed: Metadata object interface now validates all Vorbis comment entries on input and returns false if an entry does not conform to the Vorbis comment spec.
      • +
      • Changed: All Metadata objects' operator=() methods now return a reference to themselves.
      • +
      • Added methods to FLAC::Metadata::VorbisComment::Entry for setting comment values from null-terminated strings: +
          +
        • Entry(const char *field)
        • +
        • Entry(const char *field_name, const char *field_value)
        • +
        • bool set_field(const char *field)
        • +
        • bool set_field_value(const char *field_value)
        • +
        +
      • +
      • Changed the signature of FLAC::Metadata::VorbisComment::get_vendor_string() and FLAC::Metadata::VorbisComment::set_vendor_string() to use a UTF-8, NUL-terminated string const FLAC__byte * for the vendor string instead of FLAC::Metadata::VorbisComment::Entry.
      • +
      • Added FLAC::Metadata::*::assign() to all Metadata objects.
      • +
      • Added bool FLAC::Metadata::get_tags(const char *filename, VorbisComment &tags)
      • +
      +
    • +
    • + libOggFLAC: +
        +
      • (none)
      • +
      +
    • +
    • + libOggFLAC++: +
        +
      • (none)
      • +
      +
    • +
    +
  • +
-

- FLAC 1.1.1 -

-

-

    -
  • - General: -
      -
    • Ogg FLAC seeking now works
    • -
    • New optimizations almost double the decoding speed on PowerPC (e.g. Mac G4/G5)
    • -
    • A native OS X release thanks to updated Project Builder and autotools files
    • -
    -
  • -
  • - FLAC format: -
      -
    • Made invalid the metadata block type 127 so that audio frames can always be distinguished from metadata by seeing 0xff as the first byte. (This was also required for the Ogg FLAC mapping.)
    • -
    -
  • -
  • - Ogg FLAC format: -
      -
    • First official FLAC->Ogg bitstream mapping standardized (see new FLAC-to-Ogg mapping specification). See the documentation for the --ogg switch about having to re-encode older Ogg FLAC files.
    • -
    -
  • -
  • - flac: -
      -
    • Print an error when output file already exists instead of automatically overwriting.
    • -
    • New option -f (--force) to force overwriting if the output file already exists.
    • -
    • New option --cue to select a specific section to decode using cuesheet track/index points.
    • -
    • New option --totally-silent to suppress all output.
    • -
    • New (but undocumented) option --apply-replaygain-which-is-not-lossless which applies ReplayGain to the decoded output. See this thread for usage and caveats.
    • -
    • When encoding to Ogg FLAC, use a random serial number (instead of 0 as was done before) when a serial number is not specified.
    • -
    • When encoding multiple Ogg FLAC streams, --serial-number or random serial number sets the first number, which is then incremented for subsequent streams (before, the same serial number was used for all streams).
    • -
    • Decoder no longer exits with an error when writing to stdout and the pipe is broken.
    • -
    • Better explanation of common error messages.
    • -
    • Default extension when writing AIFF files is .aif (before, it was .aiff).
    • -
    • Write more common representation of SANE numbers in AIFF files.
    • -
    • Bug fix: calculating ReplayGain on 48kHz streams.
    • -
    • Bug fix: check for supported block alignments in WAVE files.
    • -
    • Bug fix: "offset" field in AIFF SSND chunk properly handled.
    • -
    • Bug fix: #679166: flac doesn't respect RIFF subchunk padding byte.
    • -
    • Bug fix: #828391: --add-replay-gain segfaults.
    • -
    • Bug fix: #851155: Can't seek to position in flac file.
    • -
    • Bug fix: #851756: flac --skip --until reads entire file.
    • -
    • Bug fix: #877122: problem parsing cuesheet with CATALOG entry.
    • -
    • Bug fix: #896057: parsing ISRC number from cuesheet.
    • -
    -
  • -
  • - metaflac: -
      -
    • Renamed the tag editing options as follows (the ...-vc-... options still work but are deprecated): -
        -
      • --show-vc-vendor becomes --show-vendor-tag
      • -
      • --show-vc-field becomes --show-tag
      • -
      • --remove-vc-all becomes --remove-all-tags
      • -
      • --remove-vc-field becomes --remove-tag
      • -
      • --remove-vc-firstfield becomes --remove-first-tag
      • -
      • --set-vc-field becomes --set-tag
      • -
      • --import-vc-from becomes --import-tags-from
      • -
      • --export-vc-to becomes --export-tags-to
      • -
      -
    • -
    • Better explanation of common error messages.
    • -
    • Bug fix: calculating ReplayGain on 48kHz streams.
    • -
    • Bug fix: incorrect numbers when printing seek points.
    • -
    -
  • -
  • - plugins: -
      -
    • Speed optimization in ReplayGain synthesis.
    • -
    • Speed optimization in XMMS playback.
    • -
    • Support for big-endian architectures in XMMS plugin.
    • -
    • Removed support for ID3 tags.
    • -
    • Bug fix: make hard limiter default to off in XMMS plugin.
    • -
    • Bug fix: stream length calculation bug in XMMS plugin, debian bug #200435; see also.
    • -
    • Bug fix: small memory leak in XMMS plugin.
    • -
    -
  • -
  • - build system: -
      -
    • ordinals.h is now static, not a build-generated file anymore.
    • -
    -
  • -
  • - libraries: -
      -
    • libFLAC: PPC+Altivec optimizations of some decoder routines.
    • -
    • libFLAC: Make stream encoder encode the blocksize and sample rate in the frame header if at all possible (not in STREAMINFO), even if subset encoding was not requested.
    • -
    • libFLAC: Bug fix: fixed seek routine where infinite loop could happen when seeking past end of stream.
    • -
    • libFLAC, libFLAC++: added methods to skip single frames, useful for quickly finding frame boundaries (see interface changes below).
    • -
    • libOggFLAC, libOggFLAC++: New seekable-stream and file encoder and decoder APIs to match native FLAC APIs (see interface changes below).
    • -
    -
  • -
  • - Interface changes: -
      -
    • - libFLAC: -
        -
      • Added FLAC__metadata_get_tags()
      • -
      • Added callback-based versions of metadata editing functions: -
          -
        • FLAC__metadata_chain_read_with_callbacks()
        • -
        • FLAC__metadata_chain_write_with_callbacks()
        • -
        • FLAC__metadata_chain_write_with_callbacks_and_tempfile()
        • -
        • FLAC__metadata_chain_check_if_tempfile_needed()
        • -
        -
      • -
      • Added decoder functions for skipping single frames, also useful for quickly finding frame boundaries: -
          -
        • FLAC__stream_decoder_skip_single_frame()
        • -
        • FLAC__seekable_stream_decoder_skip_single_frame()
        • -
        • FLAC__file_decoder_skip_single_frame()
        • -
        -
      • -
      • Added new required tell callback on seekable stream encoder: -
          -
        • FLAC__SeekableStreamEncoderTellStatus and FLAC__SeekableStreamEncoderTellStatusString[]
        • -
        • FLAC__SeekableStreamEncoderTellCallback
        • -
        • FLAC__seekable_stream_encoder_set_tell_callback()
        • -
        -
      • -
      • Changed FLAC__SeekableStreamEncoderState by adding FLAC__SEEKABLE_STREAM_ENCODER_TELL_ERROR
      • -
      • Changed Tell callback is now required to initialize seekable stream encoder
      • -
      • Deleted erroneous and unimplemented FLAC__file_decoder_process_remaining_frames()
      • -
      -
    • -
    • - libFLAC++: -
        -
      • Added FLAC::Metadata::get_tags()
      • -
      • Added decoder functions for skipping single frames, also useful for quickly finding frame boundaries: -
          -
        • FLAC::Decoder::Stream::skip_single_frame()
        • -
        • FLAC::Decoder::SeekableStream::skip_single_frame()
        • -
        • FLAC::Decoder::File::skip_single_frame()
        • -
        -
      • -
      • Added encoder functions for setting metadata: -
          -
        • FLAC::Encoder::Stream::set_metadata(FLAC::Metadata::Prototype **metadata, unsigned num_blocks)
        • -
        • FLAC::Encoder::SeekableStream::set_metadata(FLAC::Metadata::Prototype **metadata, unsigned num_blocks)
        • -
        • FLAC::Encoder::File::set_metadata(FLAC::Metadata::Prototype **metadata, unsigned num_blocks)
        • -
        -
      • -
      • Added new required tell callback on seekable stream encoder: -
          -
        • pure virtual FLAC::Encoder::SeekableStream::tell_callback()
        • -
        -
      • -
      • Changed Tell callback is now required to initialize seekable stream encoder
      • -
      • Deleted the following methods: -
          -
        • FLAC::Decoder::Stream::State::resolved_as_cstring()
        • -
        • FLAC::Encoder::Stream::State::resolved_as_cstring()
        • -
        -
      • -
      -
    • -
    • - libOggFLAC: -
        -
      • Added OggFLAC__SeekableStreamDecoder interface
      • -
      • Added OggFLAC__FileDecoder interface
      • -
      • Added OggFLAC__SeekableStreamEncoder interface
      • -
      • Added OggFLAC__FileEncoder interface
      • -
      • Added OggFLAC__stream_decoder_get_resolved_state_string()
      • -
      • Added OggFLAC__stream_encoder_get_resolved_state_string()
      • -
      • Added OggFLAC__stream_encoder_set_metadata_callback()
      • -
      • Changed OggFLAC__StreamDecoderState by adding OggFLAC__STREAM_DECODER_END_OF_STREAM
      • -
      -
    • -
    • - libOggFLAC++: -
        -
      • Added OggFLAC::Decoder::SeekableStream interface
      • -
      • Added OggFLAC::Decoder::File interface
      • -
      • Added OggFLAC::Encoder::SeekableStream interface
      • -
      • Added OggFLAC::Encoder::File interface
      • -
      • Added OggFLAC::Decoder::Stream::get_resolved_state_string()
      • -
      • Added OggFLAC::Encoder::Stream::get_resolved_state_string()
      • -
      • Added pure virtual OggFLAC::Encoder::Stream::metadata_callback()
      • -
      -
    • -
    -
  • -
-

+
-
-
-
-
+ FLAC 1.1.1 +
-
+ + + + -

 Copyright (c) 2004,2005 Josh Coalson

+ - - + + diff --git a/doc/html/comparison.html b/doc/html/comparison.html index 69fdea8..44a8153 100644 --- a/doc/html/comparison.html +++ b/doc/html/comparison.html @@ -1,1229 +1,1186 @@ - + - - - FLAC - comparison - + + + + + + + + + FLAC - comparison + - + - - - - -
FLAC Logo
+ -
+
-
+
- - - - -
- - - - - - - - - - - - - - - - -
  home  |  faq  |  news  |  download  |  features  |  goals  |  format  |  id  |  comparison  |  documentation  |  changelog  |  links  |  developers  
-
+ -
+
- - - - -
- - - - - -
  english  |  russian  
-
+
+  english  | +  russian  +
-
+
-
+
-
- - - - -
-
- - -
- comparison -
-
- - -
-

+

+
+ comparison +
+
+
The purpose of the comparison page is not only to show how compression ratios and encoding/decoding times using the flac reference encoder compare to other lossless encoders, but also to compare features (for example, some coders archive only and files must be uncompressed completely before playback can start). Keep a few things in mind: -

-

-

    -
  • - As far as I know, only two of the lossless encoders out there (FLAC and WavPack) are both actively developed and truly free (source code for Shorten and Monkey's Audio is available but the licenses are more restrictive). Most others give out free binaries, but without access to the source, you are leaving your data to the whim of the maintainer for eternity; you have no way to port the program to another OS or fix it if it breaks. This can be a serious drawback unless the format has world-class clout (like MP3). -
  • -
  • - The compression ratios and times for flac are representative only of the reference encoder. They are not indicative of the limits of all FLAC encoders or the FLAC format itself since the format is open and extensible, and anyone is free to write a better FLAC encoder. And it is almost certain that the reference encoder itself will improve. -
  • -
  • - Since FLAC supports streaming, it is at a slight disadvantage to the formats that don't because they don't have the extra overhead of all those frame headers. -
  • -
-

-

- I make an effort to keep this information as accurate as possible, but if any of the data is wrong, let me know and I'll correct it. For another comparison (with graphs) of lossless codecs, see here. -

-

+

    +
  • + As far as I know, only two of the lossless encoders out there (FLAC and WavPack) are both actively developed and truly free (source code for Shorten and Monkey's Audio is available but the licenses are more restrictive). Most others give out free binaries, but without access to the source, you are leaving your data to the whim of the maintainer for eternity; you have no way to port the program to another OS or fix it if it breaks. This can be a serious drawback unless the format has world-class clout (like MP3). +
  • +
  • + The compression ratios and times for flac are representative only of the reference encoder. They are not indicative of the limits of all FLAC encoders or the FLAC format itself since the format is open and extensible, and anyone is free to write a better FLAC encoder. And it is almost certain that the reference encoder itself will improve. +
  • +
  • + Since FLAC supports streaming, it is at a slight disadvantage to the formats that don't because they don't have the extra overhead of all those frame headers. +
  • +
+ I make an effort to keep this information as accurate as possible, but if any of the data is wrong, let me know and I'll correct it. For another comparison (with graphs) of lossless codecs, see here. +

Reviewed encoders (besides flac of course): -

-

-

    -
  • - Apple Lossless - A new proprietary codec by Apple. Not much is known about it. -
  • -
  • - Bonk - An open-source source codec. No player or library support yet. -
  • -
  • - Kexis - An open-source source codec. Development seems to have stopped at the alpha stage. No player or library support yet. -
  • -
  • - La - A closed source symmetric adaptive codec, with Windows and Linux console binaries. Current king of compression ratios but extremely slow. -
  • -
  • - LPAC - A closed source codec. At least it's available for more than just Windows, but there's only a Winamp plugin. -
  • -
  • - Monkey's Audio - A symmetric adaptive codec with good compression. Source is available under a non-OSI license. There are two versions available now, one by the original author Matt Ashland and one by Frank Klemm. The one tested here is from the original author. -
  • -
  • - Ogg Squish - An open source source codec that is no longer maintained. The version I tested, 0.98, was the latest I could find. I don't have Windows timing results but it is among the 'fast' coders, based on UNIX tests. -
  • -
  • - optimFROG - A closed source, Windows/Linux codec, with Winamp and XMMS plugins. Slow but high compression ratios. -
  • -
  • - Pegasus-SPS - A closed source, Windows-only codec. -
  • -
  • - RKAU - A closed source, Windows-only codec. No update in over two years. -
  • -
  • - Shorten - A.J. Robinson's well-known codec; source is available here. -
  • -
  • - WaveZIP - A closed source, Windows-only archiver. Uses the MUSICompress[tm] engine which supposedly has a patent. I used to have a link to the company that makes WaveZIP (GadgetLabs) but apparently they have gone out of business (maybe for trying to sell something that should cost nothing). -
  • -
  • - WavPack - An open-source, (currently) Windows-based codec, released under the BSD license. WavPack has a very good tradeoff between compressed size and compression speed. -
  • -
-

-

+

    +
  • + Apple Lossless - A new proprietary codec by Apple. Not much is known about it. +
  • +
  • + Bonk - An open-source source codec. No player or library support yet. +
  • +
  • + Kexis - An open-source source codec. Development seems to have stopped at the alpha stage. No player or library support yet. +
  • +
  • + La - A closed source symmetric adaptive codec, with Windows and Linux console binaries. Current king of compression ratios but extremely slow. +
  • +
  • + LPAC - A closed source codec. At least it's available for more than just Windows, but there's only a Winamp plugin. +
  • +
  • + Monkey's Audio - A symmetric adaptive codec with good compression. Source is available under a non-OSI license. There are two versions available now, one by the original author Matt Ashland and one by Frank Klemm. The one tested here is from the original author. +
  • +
  • + Ogg Squish - An open source source codec that is no longer maintained. The version I tested, 0.98, was the latest I could find. I don't have Windows timing results but it is among the 'fast' coders, based on UNIX tests. +
  • +
  • + optimFROG - A closed source, Windows/Linux codec, with Winamp and XMMS plugins. Slow but high compression ratios. +
  • +
  • + Pegasus-SPS - A closed source, Windows-only codec. +
  • +
  • + RKAU - A closed source, Windows-only codec. No update in over two years. +
  • +
  • + Shorten - A.J. Robinson's well-known codec; source is available here. +
  • +
  • + WaveZIP - A closed source, Windows-only archiver. Uses the MUSICompress[tm] engine which supposedly has a patent. I used to have a link to the company that makes WaveZIP (GadgetLabs) but apparently they have gone out of business (maybe for trying to sell something that should cost nothing). +
  • +
  • + WavPack - An open-source, (currently) Windows-based codec, released under the BSD license. WavPack has a very good tradeoff between compressed size and compression speed. +
  • +
Encoders I couldn't get a copy of: -

-

-

    -
  • - AudioPak -
  • -
  • - WavARC -
  • -
-

-

+

    +
  • + AudioPak +
  • +
  • + WavARC +
  • +
If you take maximum compression ratio and speed out of the picture (as you will see later, most coders exhibit similar performance), here is a subjective sort based on overall "usefulness". As far as features go, having source code gives you the most freedom since you can add anything you need that is missing; besides, open source projects tend to get better faster than closed source ones. A close second (depending on the user) would be OS support or plugin support. -

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Codec - - Source Available? - - Plugins Available? - - Hardware Support? - - Streamable? - - Seekable? - - Cost - - OS support -
- flac v1.1.1 - - YES (OSI approved license) - - YES (XMMS, AlsaPlayer, Winamp, MacAmp Lite, dBpowerAMP, Foobar2000, QCD, Apollo, more) - - YES (ARQ, PhatBox, Kenwood MusicKeg, Rio Karma, Rio Receiver, Dell Digital Audio Receiver, Roku Soundbridge, Squeezebox, AudioTron) - - YES - - YES - - FREE - - Linux, Windows, Mac OS X, *BSD, Solaris, OS/2, BeOS, others -
- Shorten v3.2 - - YES (non-OSI license) - - YES (Winamp, XMMS) - - no - - no - - YES (v3 only) - - FREE - - Linux, Windows, Mac OS 9, Mac OS X, *BSD, Solaris, others -
- WavPack v3.97a - - YES (OSI approved license) - - YES (Winamp only) - - no - - no - - YES - - FREE - - Windows -
- Monkey's Audio v3.99 - - YES (non-OSI license) - - YES (Winamp, MediaJukebox, dBpowerAMP, more) - - no - - no - - YES - - FREE - - Windows, Linux console source -
- Apple Lossless - - no - - YES (iTunes) - - YES (iPod) - - YES - - YES - - FREE - - Windows, Mac OS X -
- Ogg Squish 0.98 - - YES (OSI approved license) - - no (?) - - no - - YES - - YES - - FREE - - Linux, Windows, other UNIX -
- Bonk 0.5 - - YES (OSI approved license) - - YES (XMMS) - - no - - no - - no - - FREE - - Linux, Windows, other UNIX -
- La 0.3c - - no - - YES (Winamp, XMMS) - - no - - no - - YES - - FREE - - Windows, Linux -
- optimFROG 4.21 - - no - - YES (Winamp, XMMS) - - no - - no - - YES - - FREE - - Windows, Linux -
- LPAC v1.31 (codec 3.0) - - no - - YES (Winamp only) - - no - - no? - - YES - - FREE - - Windows, Linux console, Solaris console -
- RKAU v1.07 - - no - - YES (Winamp only) - - no - - no - - YES - - FREE - - Windows -
- Kexis 0.2.2 - - YES (OSI approved license) - - no - - no - - no - - no - - FREE - - Linux, Windows, other UNIX -
- WaveZIP v2 - - no - - no - - no - - no - - no - - FREE (24-bit costs $) - - Windows -
- Pegasus-SPS - - no - - no - - no - - no - - no - - $39 (free trial) - - Windows -
-
-

-

+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Codec + + Source Available? + + Plugins Available? + + Hardware Support? + + Streamable? + + Seekable? + + Cost + + OS support +
+ flac v1.1.1 + + YES (OSI approved license) + + YES (XMMS, AlsaPlayer, Winamp, MacAmp Lite, dBpowerAMP, Foobar2000, QCD, Apollo, more) + + YES (ARQ, PhatBox, Kenwood MusicKeg, Rio Karma, Rio Receiver, Dell Digital Audio Receiver, Roku Soundbridge, Squeezebox, AudioTron) + + YES + + YES + + FREE + + Linux, Windows, Mac OS X, *BSD, Solaris, OS/2, BeOS, others +
+ Shorten v3.2 + + YES (non-OSI license) + + YES (Winamp, XMMS) + + no + + no + + YES (v3 only) + + FREE + + Linux, Windows, Mac OS 9, Mac OS X, *BSD, Solaris, others +
+ WavPack v3.97a + + YES (OSI approved license) + + YES (Winamp only) + + no + + no + + YES + + FREE + + Windows +
+ Monkey's Audio v3.99 + + YES (non-OSI license) + + YES (Winamp, MediaJukebox, dBpowerAMP, more) + + no + + no + + YES + + FREE + + Windows, Linux console source +
+ Apple Lossless + + no + + YES (iTunes) + + YES (iPod) + + YES + + YES + + FREE + + Windows, Mac OS X +
+ Ogg Squish 0.98 + + YES (OSI approved license) + + no (?) + + no + + YES + + YES + + FREE + + Linux, Windows, other UNIX +
+ Bonk 0.5 + + YES (OSI approved license) + + YES (XMMS) + + no + + no + + no + + FREE + + Linux, Windows, other UNIX +
+ La 0.3c + + no + + YES (Winamp, XMMS) + + no + + no + + YES + + FREE + + Windows, Linux +
+ optimFROG 4.21 + + no + + YES (Winamp, XMMS) + + no + + no + + YES + + FREE + + Windows, Linux +
+ LPAC v1.31 (codec 3.0) + + no + + YES (Winamp only) + + no + + no? + + YES + + FREE + + Windows, Linux console, Solaris console +
+ RKAU v1.07 + + no + + YES (Winamp only) + + no + + no + + YES + + FREE + + Windows +
+ Kexis 0.2.2 + + YES (OSI approved license) + + no + + no + + no + + no + + FREE + + Linux, Windows, other UNIX +
+ WaveZIP v2 + + no + + no + + no + + no + + no + + FREE (24-bit costs $) + + Windows +
+ Pegasus-SPS + + no + + no + + no + + no + + no + + $39 (free trial) + + Windows +
+
+
+ The machine I used for encoding the test files is a PII-333 with 256 megs of RAM, running Windows NT 4.0 SP5. Unfortunately, Windows is the lowest-common-denominator platform for all the encoders. Apple Lossless was tested on a newer machine (P4-2.4GHz Windows 2000); only the overall encoding and decoding times are shown, and the times are scaled to the PII-333 by multiplying by the ratio of flac times on the PII to P4. -

-

+

The input corpus currently consists entirely of CD music tracks. In the future it may include more kinds of input (like speech, other sample rates/resolutions, etc). There are 14 tracks whose genres range from rock to pop to death metal to classical to chant. -

-

+

The first table is a summary of results on all input tracks. The remaining tables show the results of the encoders on each track. The summary table has more modes, whereas the individual tables have just the interesting ones. -

-

+

In the summary table, entries are sorted by average compression ratio, which is the average of the ratios for each track; this keeps long tracks from having more influence than short ones. In the individual tables, this is the same as the straight compression ratio, which is compressed size / uncompressed size. -

-

+

Some interesting things to note: -

    -
  • flac -5 is right in the middle with respect to compression, relatively fast on the encoding range, and one of the fastest decoding. This is about what you would expect; FLAC is designed to put most of the processing on the encoding side, which is only done once, whereas the adaptive codecs take as long to decode as encode. FLAC is more suited in this way for playback on low-power devices and is one of the reasons it is the only lossless codec with any kind of hardware support.
  • -
  • LPAC quality settings are not too stable with -r (which allows seeking during playback) turned on.
  • -
  • RKAU also has a tendency to get bigger in the 'high' mode.
  • -
  • Another ironic fact is that the encoders that are patented or cost money turn out to be the worst by most measures. SPS is so archane and crippled that I gave up trying to put together results for it after one track.
  • -
-

-

+

    +
  • flac -5 is right in the middle with respect to compression, relatively fast on the encoding range, and one of the fastest decoding. This is about what you would expect; FLAC is designed to put most of the processing on the encoding side, which is only done once, whereas the adaptive codecs take as long to decode as encode. FLAC is more suited in this way for playback on low-power devices and is one of the reasons it is the only lossless codec with any kind of hardware support.
  • +
  • LPAC quality settings are not too stable with -r (which allows seeking during playback) turned on.
  • +
  • RKAU also has a tendency to get bigger in the 'high' mode.
  • +
  • Another ironic fact is that the encoders that are patented or cost money turn out to be the worst by most measures. SPS is so archane and crippled that I gave up trying to put together results for it after one track.
  • +
This is a summary table with just the most 'economic' modes (the ones that give the most compression for the least amount of encode/decode time) for each codec. -

-

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Codec - - Encode time - - Decode time - - Compressed
size
-
- Overall
compression
ratio
-
- Average
compression
ratio
-
La 0.3c151:13.16145:49.78375.76 MB0.48140.4986
Monkey's Audio 3.99 (high)15:45.4116:48.03389.83 MB0.49940.5153
optimFROG 4.21 (mode 0 @ 4x)16:34.9617:57.28394.69 MB0.50560.5223
RKAU 1.07 (fast)26:35.3420:13.22399.25 MB0.51150.5262
WavPack 3.97a (high)13:32.0214:39.12399.60 MB0.51190.5278
Monkey's Audio 3.99 (fast)10:32.1111:49.46400.57 MB0.51320.5311
LPAC 1.40 (-r, medium)18:52.7910:43.32403.52 MB0.51700.5319
WavPack 3.97a (normal)6:50.128:13.41409.33 MB0.52440.5424
flac 1.1.1 (-5, default)12:54.197:08.80413.46 MB0.52970.5459
Apple Lossless19:53.2710:01.86414.45 MB0.53100.5496
Bonk 0.536:56.3627:09.35418.65 MB0.53640.5543
flac 1.1.1 (-3)9:51.587:00.92419.29 MB0.53720.5544
Ogg Squish 0.98??431.08 MB0.55220.5714
Shorten 3.2a (-p0 -b256, default)9:44.486:31.74433.56 MB0.55550.5729
Kexis 0.2.217:49.0614:53.90434.33 MB0.55640.5750
WavPack 3.97a (fast)5:20.175:12.38441.88 MB0.56610.5857
WaveZIP8:41.72?452.95 MB0.58020.5986
RIFF WAVE77:19.8977:19.89780.56 MB1.00001.0000
-
-

-

+

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Codec + + Encode time + + Decode time + + Compressed
size
+
+ Overall
compression
ratio
+
+ Average
compression
ratio
+
La 0.3c151:13.16145:49.78375.76 MB0.48140.4986
Monkey's Audio 3.99 (high)15:45.4116:48.03389.83 MB0.49940.5153
optimFROG 4.21 (mode 0 @ 4x)16:34.9617:57.28394.69 MB0.50560.5223
RKAU 1.07 (fast)26:35.3420:13.22399.25 MB0.51150.5262
WavPack 3.97a (high)13:32.0214:39.12399.60 MB0.51190.5278
Monkey's Audio 3.99 (fast)10:32.1111:49.46400.57 MB0.51320.5311
LPAC 1.40 (-r, medium)18:52.7910:43.32403.52 MB0.51700.5319
WavPack 3.97a (normal)6:50.128:13.41409.33 MB0.52440.5424
flac 1.1.1 (-5, default)12:54.197:08.80413.46 MB0.52970.5459
Apple Lossless19:53.2710:01.86414.45 MB0.53100.5496
Bonk 0.536:56.3627:09.35418.65 MB0.53640.5543
flac 1.1.1 (-3)9:51.587:00.92419.29 MB0.53720.5544
Ogg Squish 0.98??431.08 MB0.55220.5714
Shorten 3.2a (-p0 -b256, default)9:44.486:31.74433.56 MB0.55550.5729
Kexis 0.2.217:49.0614:53.90434.33 MB0.55640.5750
WavPack 3.97a (fast)5:20.175:12.38441.88 MB0.56610.5857
WaveZIP8:41.72?452.95 MB0.58020.5986
RIFF WAVE77:19.8977:19.89780.56 MB1.00001.0000
+
+
+ Here are the summary results for all codecs and all modes: -

-

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Codec - - Encode time - - Decode time - - Compressed
size
-
- Overall
compression
ratio
-
- Average
compression
ratio
-
La 0.3c151:13.16145:49.78375.76 MB0.48140.4986
Monkey's Audio 3.99 (insane)130:45.33136:47.14381.79 MB0.48910.5065
Monkey's Audio 3.99 (extra high)28:41.9630:05.38384.55 MB0.49270.5087
optimFROG 4.21 (mode 4 @ 2x)183:05.29184:13.42386.13 MB0.49470.5105
optimFROG 4.21 (mode 4 @ 1x)338:34.96339:23.24386.22 MB0.49480.5105
optimFROG 4.21 (mode 4 @ 4x)105:15.85106:36.23386.21 MB0.49480.5107
optimFROG 4.21 (mode 3 @ 2x)92:48.7993:49.75386.52 MB0.49520.5110
optimFROG 4.21 (mode 3 @ 1x)161:51.00162:10.62386.55 MB0.49520.5110
optimFROG 4.21 (mode 3 @ 4x)58:18.4059:30.51386.71 MB0.49540.5114
optimFROG 4.21 (mode 2 @ 1x)68:22.5869:29.50387.71 MB0.49670.5128
optimFROG 4.21 (mode 2 @ 2x)44:17.5545:31.33387.72 MB0.49670.5129
optimFROG 4.21 (mode 2 @ 4x)32:16.8533:30.92387.93 MB0.49700.5133
optimFROG 4.21 (mode 1 @ 1x)43:00.9144:13.07388.71 MB0.49800.5146
optimFROG 4.21 (mode 1 @ 2x)30:35.0031:50.50388.81 MB0.49810.5147
optimFROG 4.21 (mode 1 @ 4x)24:19.5825:37.44389.04 MB0.49840.5151
Monkey's Audio 3.99 (high)15:45.4116:48.03389.83 MB0.49940.5153
Monkey's Audio 3.99 (normal)13:27.9614:31.90393.17 MB0.50370.5197
optimFROG 4.21 (mode 0 @ 1x)20:51.2122:08.44394.35 MB0.50520.5218
optimFROG 4.21 (mode 0 @ 2x)17:59.8619:20.53394.48 MB0.50540.5220
optimFROG 4.21 (mode 0 @ 4x)16:34.9617:57.28394.69 MB0.50560.5223
RKAU 1.07 (normal)53:46.7423:31.10395.71 MB0.50700.5229
RKAU 1.07 (high)136:56.6227:55.98395.89 MB0.50720.5235
RKAU 1.07 (fast)26:35.3420:13.22399.25 MB0.51150.5262
WavPack 3.97a (high)13:32.0214:39.12399.60 MB0.51190.5278
Monkey's Audio 3.99 (fast)10:32.1111:49.46400.57 MB0.51320.5311
LPAC 1.40 (-r, medium)18:52.7910:43.32403.52 MB0.51700.5319
LPAC 1.40 (-r, extra high)30:30.9312:20.26404.08 MB0.51770.5322
LPAC 1.40 (-r, high)24:56.5611:51.64404.03 MB0.51760.5323
WavPack 3.97a (normal)6:50.128:13.41409.33 MB0.52440.5424
flac 1.1.1 (-8)55:02.387:07.59411.88 MB0.52770.5437
flac 1.1.1 (-5, default)12:54.197:08.80413.46 MB0.52970.5459
Apple Lossless19:53.2710:01.86414.45 MB0.53100.5496
Bonk 0.536:56.3627:09.35418.65 MB0.53640.5543
flac 1.1.1 (-3)9:51.587:00.92419.29 MB0.53720.5544
flac 1.1.1 (-1)8:37.947:15.87432.32 MB0.55390.5706
Ogg Squish 0.98??431.08 MB0.55220.5714
Shorten 3.2a (-p0 -b256, default)9:44.486:31.74433.56 MB0.55550.5729
Kexis 0.2.217:49.0614:53.90434.33 MB0.55640.5750
Shorten 3.2a (-p8 -b2048)12:00.047:25.12438.86 MB0.56220.5810
WavPack 3.97a (fast)5:20.175:12.38441.88 MB0.56610.5857
WaveZIP8:41.72?452.95 MB0.58020.5986
RIFF WAVE77:19.8977:19.89780.56 MB1.00001.0000
-
-

-

+ +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Codec + + Encode time + + Decode time + + Compressed
size
+
+ Overall
compression
ratio
+
+ Average
compression
ratio
+
La 0.3c151:13.16145:49.78375.76 MB0.48140.4986
Monkey's Audio 3.99 (insane)130:45.33136:47.14381.79 MB0.48910.5065
Monkey's Audio 3.99 (extra high)28:41.9630:05.38384.55 MB0.49270.5087
optimFROG 4.21 (mode 4 @ 2x)183:05.29184:13.42386.13 MB0.49470.5105
optimFROG 4.21 (mode 4 @ 1x)338:34.96339:23.24386.22 MB0.49480.5105
optimFROG 4.21 (mode 4 @ 4x)105:15.85106:36.23386.21 MB0.49480.5107
optimFROG 4.21 (mode 3 @ 2x)92:48.7993:49.75386.52 MB0.49520.5110
optimFROG 4.21 (mode 3 @ 1x)161:51.00162:10.62386.55 MB0.49520.5110
optimFROG 4.21 (mode 3 @ 4x)58:18.4059:30.51386.71 MB0.49540.5114
optimFROG 4.21 (mode 2 @ 1x)68:22.5869:29.50387.71 MB0.49670.5128
optimFROG 4.21 (mode 2 @ 2x)44:17.5545:31.33387.72 MB0.49670.5129
optimFROG 4.21 (mode 2 @ 4x)32:16.8533:30.92387.93 MB0.49700.5133
optimFROG 4.21 (mode 1 @ 1x)43:00.9144:13.07388.71 MB0.49800.5146
optimFROG 4.21 (mode 1 @ 2x)30:35.0031:50.50388.81 MB0.49810.5147
optimFROG 4.21 (mode 1 @ 4x)24:19.5825:37.44389.04 MB0.49840.5151
Monkey's Audio 3.99 (high)15:45.4116:48.03389.83 MB0.49940.5153
Monkey's Audio 3.99 (normal)13:27.9614:31.90393.17 MB0.50370.5197
optimFROG 4.21 (mode 0 @ 1x)20:51.2122:08.44394.35 MB0.50520.5218
optimFROG 4.21 (mode 0 @ 2x)17:59.8619:20.53394.48 MB0.50540.5220
optimFROG 4.21 (mode 0 @ 4x)16:34.9617:57.28394.69 MB0.50560.5223
RKAU 1.07 (normal)53:46.7423:31.10395.71 MB0.50700.5229
RKAU 1.07 (high)136:56.6227:55.98395.89 MB0.50720.5235
RKAU 1.07 (fast)26:35.3420:13.22399.25 MB0.51150.5262
WavPack 3.97a (high)13:32.0214:39.12399.60 MB0.51190.5278
Monkey's Audio 3.99 (fast)10:32.1111:49.46400.57 MB0.51320.5311
LPAC 1.40 (-r, medium)18:52.7910:43.32403.52 MB0.51700.5319
LPAC 1.40 (-r, extra high)30:30.9312:20.26404.08 MB0.51770.5322
LPAC 1.40 (-r, high)24:56.5611:51.64404.03 MB0.51760.5323
WavPack 3.97a (normal)6:50.128:13.41409.33 MB0.52440.5424
flac 1.1.1 (-8)55:02.387:07.59411.88 MB0.52770.5437
flac 1.1.1 (-5, default)12:54.197:08.80413.46 MB0.52970.5459
Apple Lossless19:53.2710:01.86414.45 MB0.53100.5496
Bonk 0.536:56.3627:09.35418.65 MB0.53640.5543
flac 1.1.1 (-3)9:51.587:00.92419.29 MB0.53720.5544
flac 1.1.1 (-1)8:37.947:15.87432.32 MB0.55390.5706
Ogg Squish 0.98??431.08 MB0.55220.5714
Shorten 3.2a (-p0 -b256, default)9:44.486:31.74433.56 MB0.55550.5729
Kexis 0.2.217:49.0614:53.90434.33 MB0.55640.5750
Shorten 3.2a (-p8 -b2048)12:00.047:25.12438.86 MB0.56220.5810
WavPack 3.97a (fast)5:20.175:12.38441.88 MB0.56610.5857
WaveZIP8:41.72?452.95 MB0.58020.5986
RIFF WAVE77:19.8977:19.89780.56 MB1.00001.0000
+
+
+ Here are the results for each individual track. -

-

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Track - - Codec - - Encode
time
-
- Decode
time
-
- Compressed
size
-
- Compression
ratio
-
- Dream Theater
6:00 -
La 0.3c11:37.6911:15.3742.72 MB0.7306
Monkey's Audio 3.99 (insane)10:03.3910:29.3742.99 MB0.7352
Monkey's Audio 3.99 (extra high)2:14.702:19.6243.06 MB0.7364
Monkey's Audio 3.99 (high)1:15.911:19.0043.21 MB0.7391
optimFROG 4.21 (mode 1 @ 4x)1:53.282:00.4543.26 MB0.7398
optimFROG 4.21 (mode 4 @ 1x)25:32.4125:38.1543.26 MB0.7398
Monkey's Audio 3.99 (normal)1:05.101:08.5143.30 MB0.7405
optimFROG 4.21 (mode 0 @ 4x)1:17.951:25.6743.42 MB0.7426
WavPack 3.97a (high)1:10.341:08.6143.49 MB0.7438
RKAU 1.07 (normal)1:57.681:33.3843.81 MB0.7493
Monkey's Audio 3.99 (fast)0:51.650:56.1343.86 MB0.7501
LPAC 1.40 (-r, normal)1:27.610:56.1844.12 MB0.7545
flac 1.1.1 (-8)4:18.720:37.2844.33 MB0.7582
WavPack 3.97a (normal)0:40.240:40.7044.34 MB0.7583
Bonk 0.52:56.032:11.5844.35 MB0.7585
flac 1.1.1 (-5, default)1:01.310:37.0144.41 MB0.7595
Apple Lossless??44.74 MB0.7653
Shorten 3.2a (-p8 -b2048)0:58.810:37.6344.75 MB0.7654
flac 1.1.1 (-3)0:49.050:36.4444.78 MB0.7659
Ogg Squish 0.98??45.17 MB0.7725
Pegasus-SPS4:45.00?45.40 MB0.7765
WavPack 3.97a (fast)0:18.660:18.5946.31 MB0.7920
Kexis 0.2.21:24.831:10.9346.52 MB0.7956
flac 1.1.1 (-1)0:44.000:36.9146.65 MB0.7978
Shorten 3.2a (-p0 -b256, default)0:47.750:32.5646.68 MB0.7984
WaveZIP0:38.99?47.22 MB0.8077
RIFF WAVE5:47.565:47.5658.47 MB1.0000
 
- Eddie Warner
Titus -
La 0.3c5:24.565:13.2914.76 MB0.5298
LPAC 1.40 (-r, normal)0:40.760:21.2114.77 MB0.5298
flac 1.1.1 (-8)1:57.870:15.0515.01 MB0.5385
optimFROG 4.21 (mode 1 @ 4x)0:53.390:55.5215.01 MB0.5385
optimFROG 4.21 (mode 4 @ 1x)12:02.5412:03.7615.02 MB0.5390
flac 1.1.1 (-5, default)0:28.170:15.0515.12 MB0.5424
optimFROG 4.21 (mode 0 @ 4x)0:36.810:39.1915.13 MB0.5429
RKAU 1.07 (normal)0:54.820:42.7115.15 MB0.5435
Monkey's Audio 3.99 (extra high)1:03.041:04.5515.15 MB0.5436
Monkey's Audio 3.99 (insane)4:44.064:55.1715.18 MB0.5447
Monkey's Audio 3.99 (high)0:34.330:36.2315.26 MB0.5474
Monkey's Audio 3.99 (normal)0:29.620:31.3815.27 MB0.5479
flac 1.1.1 (-3)0:22.210:14.7215.43 MB0.5538
Monkey's Audio 3.99 (fast)0:23.150:25.4415.55 MB0.5579
WavPack 3.97a (high)0:32.150:31.1815.57 MB0.5585
Shorten 3.2a (-p0 -b256, default)0:21.160:13.5515.78 MB0.5662
WavPack 3.97a (normal)0:18.250:17.6715.86 MB0.5692
Shorten 3.2a (-p8 -b2048)0:26.820:16.7516.21 MB0.5818
Apple Lossless??16.36 MB0.5871
flac 1.1.1 (-1)0:19.750:15.7616.39 MB0.5880
Bonk 0.51:22.011:00.1216.73 MB0.6003
Ogg Squish 0.98??17.03 MB0.6112
Kexis 0.2.20:38.720:32.2517.40 MB0.6242
WavPack 3.97a (fast)0:08.190:08.7917.49 MB0.6275
WaveZIP0:17.55?17.89 MB0.6420
RIFF WAVE2:35.672:35.6727.87 MB1.0000
 
- Tool
Forty-six & 2 -
La 0.3c12:34.9712:09.0837.42 MB0.5824
optimFROG 4.21 (mode 4 @ 1x)27:58.2828:01.8737.96 MB0.5907
Monkey's Audio 3.99 (insane)10:55.3111:24.7638.00 MB0.5914
Monkey's Audio 3.99 (extra high)2:24.022:33.4438.03 MB0.5919
optimFROG 4.21 (mode 1 @ 4x)2:03.432:09.2738.15 MB0.5937
Monkey's Audio 3.99 (high)1:19.071:24.0238.21 MB0.5947
Monkey's Audio 3.99 (normal)1:07.841:12.0038.38 MB0.5973
optimFROG 4.21 (mode 0 @ 4x)1:24.441:30.9738.68 MB0.6020
WavPack 3.97a (high)1:02.471:14.5438.86 MB0.6048
Monkey's Audio 3.99 (fast)0:53.720:58.8939.09 MB0.6084
RKAU 1.07 (normal)2:16.001:41.8439.42 MB0.6135
WavPack 3.97a (normal)0:29.070:42.8739.92 MB0.6213
LPAC 1.40 (-r, normal)1:38.010:57.5640.25 MB0.6263
Apple Lossless??40.75 MB0.6342
flac 1.1.1 (-8)4:35.080:39.4040.89 MB0.6363
Bonk 0.53:07.202:21.2840.98 MB0.6378
flac 1.1.1 (-5, default)1:05.540:39.6541.04 MB0.6388
flac 1.1.1 (-3)0:50.180:38.9241.74 MB0.6496
Ogg Squish 0.98??42.27 MB0.6578
flac 1.1.1 (-1)0:45.830:40.8942.70 MB0.6646
Kexis 0.2.21:30.091:16.2942.75 MB0.6652
Shorten 3.2a (-p8 -b2048)1:02.420:37.8443.06 MB0.6701
Shorten 3.2a (-p0 -b256, default)0:51.290:34.5943.18 MB0.6721
WavPack 3.97a (fast)0:31.260:28.7943.65 MB0.6794
WaveZIP0:42.84?44.52 MB0.6930
RIFF WAVE6:21.926:21.9264.25 MB1.0000
 
- Cannibal Corpse
Mummified In Barbed Wire -
La 0.3c6:35.946:23.5722.69 MB0.6798
Monkey's Audio 3.99 (insane)5:42.635:59.5322.83 MB0.6839
Monkey's Audio 3.99 (extra high)1:15.581:19.3122.85 MB0.6847
optimFROG 4.21 (mode 4 @ 1x)14:34.2814:37.6922.95 MB0.6877
Monkey's Audio 3.99 (high)0:41.910:45.4923.18 MB0.6945
Monkey's Audio 3.99 (normal)0:36.030:38.3423.24 MB0.6963
optimFROG 4.21 (mode 1 @ 4x)1:03.961:08.8523.31 MB0.6984
RKAU 1.07 (normal)1:09.710:56.6623.34 MB0.6993
LPAC 1.40 (-r, normal)1:05.380:36.2023.53 MB0.7050
WavPack 3.97a (high)0:32.990:40.0523.57 MB0.7062
optimFROG 4.21 (mode 0 @ 4x)0:44.140:48.7123.95 MB0.7176
Monkey's Audio 3.99 (fast)0:28.610:31.5324.14 MB0.7234
flac 1.1.1 (-8)2:25.590:20.8524.18 MB0.7245
flac 1.1.1 (-5, default)0:34.660:21.4224.30 MB0.7282
Bonk 0.51:40.381:14.5824.36 MB0.7297
Apple Lossless??24.37 MB0.7301
WavPack 3.97a (normal)0:15.990:23.5024.76 MB0.7418
Shorten 3.2a (-p8 -b2048)0:33.740:22.4725.12 MB0.7526
flac 1.1.1 (-3)0:27.400:20.1125.16 MB0.7539
Ogg Squish 0.98??25.23 MB0.7558
Kexis 0.2.20:47.130:40.6726.03 MB0.7799
flac 1.1.1 (-1)0:24.040:21.6826.10 MB0.7819
WavPack 3.97a (fast)0:16.790:21.6426.17 MB0.7841
Shorten 3.2a (-p0 -b256, default)0:28.200:20.4626.61 MB0.7972
WaveZIP0:22.25?26.89 MB0.8058
RIFF WAVE3:18.363:18.3633.37 MB1.0000
 
- Alanis Morisette
Hand In My Pocket -
La 0.3c7:35.217:20.1920.77 MB0.5312
Monkey's Audio 3.99 (insane)6:36.656:53.3121.22 MB0.5427
optimFROG 4.21 (mode 4 @ 1x)16:51.8216:54.3421.24 MB0.5433
optimFROG 4.21 (mode 1 @ 4x)1:14.291:18.0621.36 MB0.5464
Monkey's Audio 3.99 (extra high)1:26.931:31.7421.40 MB0.5475
Monkey's Audio 3.99 (high)0:47.190:50.4521.66 MB0.5540
Monkey's Audio 3.99 (normal)0:41.570:45.6621.76 MB0.5565
optimFROG 4.21 (mode 0 @ 4x)0:51.390:54.9721.89 MB0.5598
Monkey's Audio 3.99 (fast)0:31.890:35.9222.13 MB0.5660
WavPack 3.97a (high)0:45.070:43.8822.28 MB0.5699
WavPack 3.97a (normal)0:25.400:24.8022.80 MB0.5832
RKAU 1.07 (normal)1:21.181:01.6022.80 MB0.5833
LPAC 1.40 (-r, normal)1:01.110:33.7923.25 MB0.5948
Bonk 0.51:53.411:23.5223.35 MB0.5972
flac 1.1.1 (-8)2:46.090:23.1423.45 MB0.5998
flac 1.1.1 (-5, default)0:39.820:21.8123.56 MB0.6026
Apple Lossless??23.64 MB0.6047
Ogg Squish 0.98??24.11 MB0.6167
flac 1.1.1 (-3)0:30.580:22.0524.32 MB0.6221
Shorten 3.2a (-p8 -b2048)0:37.490:22.9324.72 MB0.6323
Kexis 0.2.20:54.260:45.6424.80 MB0.6345
flac 1.1.1 (-1)0:26.460:22.1424.82 MB0.6348
WavPack 3.97a (fast)0:16.670:17.0224.94 MB0.6381
Shorten 3.2a (-p0 -b256, default)0:29.710:18.9225.34 MB0.6481
WaveZIP0:28.05?25.95 MB0.6638
RIFF WAVE3:52.363:52.3639.09 MB1.0000
 
- Gloria Estefan
Conga -
La 0.3c8:52.938:34.8128.98 MB0.6419
optimFROG 4.21 (mode 4 @ 1x)19:40.5319:44.4729.43 MB0.6517
Monkey's Audio 3.99 (insane)7:41.958:01.9529.48 MB0.6528
Monkey's Audio 3.99 (extra high)1:42.171:46.6229.49 MB0.6530
optimFROG 4.21 (mode 1 @ 4x)1:26.641:32.2329.58 MB0.6550
Monkey's Audio 3.99 (high)0:57.621:00.7429.69 MB0.6576
optimFROG 4.21 (mode 0 @ 4x)0:59.591:05.2929.78 MB0.6595
Monkey's Audio 3.99 (normal)0:48.440:53.2929.83 MB0.6605
WavPack 3.97a (high)0:53.500:51.9029.92 MB0.6625
Monkey's Audio 3.99 (fast)0:38.480:43.9130.20 MB0.6689
WavPack 3.97a (normal)0:29.840:29.9230.28 MB0.6706
RKAU 1.07 (normal)1:37.851:12.1530.34 MB0.6719
Bonk 0.52:13.341:39.4430.64 MB0.6785
flac 1.1.1 (-8)3:16.070:27.5330.76 MB0.6811
LPAC 1.40 (-r, normal)1:14.080:44.6430.81 MB0.6823
flac 1.1.1 (-5, default)0:46.300:26.7430.86 MB0.6834
Apple Lossless??30.91 MB0.6847
Ogg Squish 0.98??31.06 MB0.6879
WavPack 3.97a (fast)0:13.310:14.1531.61 MB0.7000
flac 1.1.1 (-3)0:35.880:27.6531.63 MB0.7006
Shorten 3.2a (-p8 -b2048)0:44.760:27.4831.76 MB0.7034
Kexis 0.2.21:03.910:53.5431.86 MB0.7056
flac 1.1.1 (-1)0:32.510:27.3031.99 MB0.7085
Shorten 3.2a (-p0 -b256, default)0:35.740:23.6432.47 MB0.7191
WaveZIP0:29.42?33.02 MB0.7313
RIFF WAVE4:28.394:28.3945.15 MB1.0000
 
- Cream
White Room -
La 0.3c10:24.0810:03.1633.44 MB0.6309
optimFROG 4.21 (mode 4 @ 1x)22:59.0523:02.9833.93 MB0.6399
Monkey's Audio 3.99 (insane)9:02.779:26.7533.95 MB0.6404
optimFROG 4.21 (mode 1 @ 4x)1:42.281:47.5533.96 MB0.6405
Monkey's Audio 3.99 (extra high)1:59.732:04.4634.00 MB0.6413
Monkey's Audio 3.99 (high)1:05.801:09.3834.11 MB0.6435
Monkey's Audio 3.99 (normal)0:56.670:59.5634.25 MB0.6460
optimFROG 4.21 (mode 0 @ 4x)1:10.301:15.9934.29 MB0.6468
WavPack 3.97a (high)0:51.501:02.7134.55 MB0.6516
RKAU 1.07 (normal)1:50.801:24.9834.60 MB0.6527
LPAC 1.40 (-r, normal)1:25.160:48.6734.84 MB0.6572
Monkey's Audio 3.99 (fast)0:44.600:48.9234.85 MB0.6574
Bonk 0.52:35.361:56.2034.96 MB0.6595
flac 1.1.1 (-8)3:48.730:31.9134.99 MB0.6601
WavPack 3.97a (normal)0:24.430:36.0935.08 MB0.6617
flac 1.1.1 (-5, default)0:54.890:33.8235.16 MB0.6633
flac 1.1.1 (-3)0:41.380:32.0035.36 MB0.6671
Shorten 3.2a (-p8 -b2048)0:51.440:33.0235.40 MB0.6677
Apple Lossless??35.46 MB0.6689
Ogg Squish 0.98??35.74 MB0.6742
WavPack 3.97a (fast)0:26.000:24.8336.32 MB0.6852
Shorten 3.2a (-p0 -b256, default)0:41.140:28.9136.42 MB0.6870
flac 1.1.1 (-1)0:36.870:33.3936.56 MB0.6897
Kexis 0.2.21:13.871:02.9036.64 MB0.6911
WaveZIP0:35.77?37.13 MB0.7004
RIFF WAVE5:15.115:15.1153.01 MB1.0000
 
- Maurice Ravel
Fanfare from "L'eventail de Jeanne" -
La 0.3c3:55.403:47.606.46 MB0.3104
Monkey's Audio 3.99 (extra high)0:42.680:43.986.75 MB0.3243
Monkey's Audio 3.99 (insane)3:10.933:18.536.78 MB0.3256
optimFROG 4.21 (mode 4 @ 1x)8:22.428:23.326.82 MB0.3274
Monkey's Audio 3.99 (high)0:23.090:24.126.98 MB0.3353
optimFROG 4.21 (mode 1 @ 4x)0:36.570:38.267.09 MB0.3406
RKAU 1.07 (normal)0:40.670:28.527.18 MB0.3451
optimFROG 4.21 (mode 0 @ 4x)0:24.980:26.377.21 MB0.3462
Monkey's Audio 3.99 (normal)0:19.780:20.507.28 MB0.3495
LPAC 1.40 (-r, normal)0:29.010:15.117.33 MB0.3520
WavPack 3.97a (high)0:22.630:21.867.45 MB0.3577
Monkey's Audio 3.99 (fast)0:15.600:16.767.50 MB0.3601
flac 1.1.1 (-8)1:20.730:09.517.69 MB0.3692
flac 1.1.1 (-5, default)0:18.950:09.457.71 MB0.3703
flac 1.1.1 (-3)0:14.980:09.197.77 MB0.3734
Apple Lossless??7.82 MB0.3757
WavPack 3.97a (normal)0:12.560:11.957.83 MB0.3760
Bonk 0.50:55.920:40.237.83 MB0.3762
flac 1.1.1 (-1)0:12.970:10.398.12 MB0.3902
Ogg Squish 0.98??8.15 MB0.3914
Shorten 3.2a (-p0 -b256, default)0:13.810:08.888.19 MB0.3932
Shorten 3.2a (-p8 -b2048)0:17.450:10.308.29 MB0.3983
Kexis 0.2.20:26.780:21.908.52 MB0.4091
WaveZIP0:13.11?8.72 MB0.4193
WavPack 3.97a (fast)0:05.350:06.338.87 MB0.4259
RIFF WAVE2:03.762:03.7620.82 MB1.0000
 
- Maurice Ravel
String Quartet (4th movement) -
La 0.3c10:45.8010:21.4419.94 MB0.3550
Monkey's Audio 3.99 (insane)9:17.649:43.0320.17 MB0.3590
Monkey's Audio 3.99 (extra high)2:01.232:06.9720.29 MB0.3611
optimFROG 4.21 (mode 4 @ 1x)24:26.9924:29.3620.62 MB0.3671
Monkey's Audio 3.99 (high)1:06.281:09.5920.68 MB0.3681
optimFROG 4.21 (mode 1 @ 4x)1:42.571:47.4820.93 MB0.3725
Monkey's Audio 3.99 (normal)0:56.221:01.2221.05 MB0.3747
optimFROG 4.21 (mode 0 @ 4x)1:09.171:13.1421.23 MB0.3779
RKAU 1.07 (normal)1:52.651:25.3921.30 MB0.3791
Monkey's Audio 3.99 (fast)0:43.690:49.3121.52 MB0.3830
WavPack 3.97a (high)0:52.481:02.2621.55 MB0.3835
LPAC 1.40 (-r, normal)1:20.840:42.7321.96 MB0.3909
WavPack 3.97a (normal)0:23.290:34.2822.11 MB0.3935
Apple Lossless??22.52 MB0.4008
flac 1.1.1 (-8)3:53.930:28.0222.61 MB0.4025
flac 1.1.1 (-5, default)0:54.340:27.9222.68 MB0.4036
Bonk 0.52:33.531:51.9423.18 MB0.4125
flac 1.1.1 (-3)0:40.000:28.1523.21 MB0.4132
flac 1.1.1 (-1)0:34.990:27.7323.36 MB0.4158
Kexis 0.2.21:15.051:03.8623.42 MB0.4168
Shorten 3.2a (-p0 -b256, default)0:39.960:27.3623.71 MB0.4221
Ogg Squish 0.98??24.12 MB0.4293
WavPack 3.97a (fast)0:24.340:22.1725.08 MB0.4463
Shorten 3.2a (-p8 -b2048)0:49.060:29.9425.59 MB0.4554
WaveZIP0:36.60?25.84 MB0.4600
RIFF WAVE5:33.955:33.9556.18 MB1.0000
 
- Sergei Prokofiev
Piano Concerto No.3 (3rd movement) -
La 0.3c19:11.6118:28.8032.65 MB0.3243
Monkey's Audio 3.99 (insane)16:21.1617:04.4633.34 MB0.3311
optimFROG 4.21 (mode 4 @ 1x)43:21.8843:26.1833.58 MB0.3335
Monkey's Audio 3.99 (extra high)3:34.863:46.8233.60 MB0.3337
optimFROG 4.21 (mode 1 @ 4x)3:00.573:08.1933.83 MB0.3360
optimFROG 4.21 (mode 0 @ 4x)2:00.852:09.5234.14 MB0.3390
Monkey's Audio 3.99 (high)1:56.682:07.2534.16 MB0.3392
Monkey's Audio 3.99 (normal)1:38.961:48.1734.58 MB0.3434
RKAU 1.07 (normal)3:08.702:26.1735.21 MB0.3496
LPAC 1.40 (-r, normal)2:06.211:11.9235.27 MB0.3502
WavPack 3.97a (high)1:32.781:50.7435.35 MB0.3510
Monkey's Audio 3.99 (fast)1:17.001:27.3535.53 MB0.3528
WavPack 3.97a (normal)0:40.681:00.2936.99 MB0.3673
Apple Lossless??37.32 MB0.3706
flac 1.1.1 (-8)6:51.480:49.4738.07 MB0.3781
flac 1.1.1 (-5, default)1:35.220:47.5738.17 MB0.3791
flac 1.1.1 (-3)1:10.670:46.4038.51 MB0.3824
flac 1.1.1 (-1)1:01.440:53.4039.30 MB0.3903
Shorten 3.2a (-p0 -b256, default)1:10.570:50.0039.49 MB0.3921
Kexis 0.2.22:12.391:49.0039.89 MB0.3962
Bonk 0.54:33.713:19.3840.31 MB0.4003
Ogg Squish 0.98??41.86 MB0.4157
WavPack 3.97a (fast)0:43.240:40.1743.03 MB0.4273
WaveZIP1:05.60?43.67 MB0.4337
Shorten 3.2a (-p8 -b2048)1:26.840:53.1945.34 MB0.4502
RIFF WAVE9:58.479:58.47100.68 MB1.0000
 
- Frederic Chopin
Prelude No.24 in d minor -
La 0.3c5:14.835:03.089.84 MB0.3582
Monkey's Audio 3.99 (insane)4:33.424:45.169.96 MB0.3625
Monkey's Audio 3.99 (extra high)0:59.941:01.8710.16 MB0.3699
optimFROG 4.21 (mode 4 @ 1x)11:56.2411:58.7710.34 MB0.3764
Monkey's Audio 3.99 (high)0:32.290:34.4910.40 MB0.3788
optimFROG 4.21 (mode 1 @ 4x)0:50.070:53.4910.41 MB0.3790
Monkey's Audio 3.99 (normal)0:27.350:29.5110.52 MB0.3832
optimFROG 4.21 (mode 0 @ 4x)0:34.060:38.7010.53 MB0.3833
LPAC 1.40 (-r, normal)0:34.910:20.0110.74 MB0.3911
WavPack 3.97a (high)0:31.430:28.9510.76 MB0.3919
RKAU 1.07 (normal)0:54.460:41.5410.88 MB0.3963
Monkey's Audio 3.99 (fast)0:21.100:23.9010.94 MB0.3982
WavPack 3.97a (normal)0:16.900:15.1711.34 MB0.4128
Apple Lossless??11.51 MB0.4191
flac 1.1.1 (-8)1:53.310:13.0611.69 MB0.4256
flac 1.1.1 (-5, default)0:26.050:13.5011.71 MB0.4265
flac 1.1.1 (-3)0:19.820:13.2511.74 MB0.4274
flac 1.1.1 (-1)0:17.610:13.8011.86 MB0.4319
Shorten 3.2a (-p0 -b256, default)0:19.200:11.8912.05 MB0.4386
Kexis 0.2.20:36.700:30.2612.14 MB0.4419
Bonk 0.51:15.450:55.0712.86 MB0.4684
WaveZIP0:18.75?13.08 MB0.4765
Ogg Squish 0.98??13.31 MB0.4845
WavPack 3.97a (fast)0:06.740:08.5113.67 MB0.4978
Shorten 3.2a (-p8 -b2048)0:24.430:14.3214.40 MB0.5242
RIFF WAVE2:43.232:43.2327.46 MB1.0000
 
- Domenico Scarlatti
Sonata K.42 (arr.Yepes for guitar) -
La 0.3c3:09.333:01.826.62 MB0.4036
Monkey's Audio 3.99 (insane)2:46.092:52.526.67 MB0.4068
Monkey's Audio 3.99 (extra high)0:36.210:38.166.74 MB0.4109
optimFROG 4.21 (mode 4 @ 1x)7:08.777:09.526.87 MB0.4190
Monkey's Audio 3.99 (high)0:19.600:20.236.91 MB0.4213
optimFROG 4.21 (mode 1 @ 4x)0:30.470:31.956.98 MB0.4255
Monkey's Audio 3.99 (normal)0:16.730:17.606.99 MB0.4261
RKAU 1.07 (normal)0:37.090:26.567.05 MB0.4297
optimFROG 4.21 (mode 0 @ 4x)0:20.680:22.067.07 MB0.4310
WavPack 3.97a (high)0:15.500:18.317.12 MB0.4340
Monkey's Audio 3.99 (fast)0:12.960:14.287.16 MB0.4369
LPAC 1.40 (-r, normal)0:29.990:14.337.21 MB0.4397
WavPack 3.97a (normal)0:07.010:10.277.31 MB0.4460
flac 1.1.1 (-8)1:08.580:07.997.37 MB0.4498
flac 1.1.1 (-5, default)0:15.900:08.717.40 MB0.4513
flac 1.1.1 (-3)0:11.840:08.267.43 MB0.4530
Apple Lossless??7.44 MB0.4541
Bonk 0.50:45.590:32.637.46 MB0.4548
Shorten 3.2a (-p0 -b256, default)0:11.670:07.177.48 MB0.4564
Kexis 0.2.20:22.060:18.627.50 MB0.4572
flac 1.1.1 (-1)0:10.170:07.857.53 MB0.4591
WavPack 3.97a (fast)0:04.110:06.577.58 MB0.4624
Ogg Squish 0.98??7.74 MB0.4723
WaveZIP0:10.56?7.83 MB0.4781
Shorten 3.2a (-p8 -b2048)0:14.290:09.078.20 MB0.5004
RIFF WAVE1:37.431:37.4316.39 MB1.0000
 
- The Benedictine Monks of
Santo Domingo de Silos
Laetatus sum -
La 0.3c4:40.714:32.2911.94 MB0.4922
Monkey's Audio 3.99 (insane)4:08.234:18.4312.05 MB0.4968
Monkey's Audio 3.99 (extra high)0:54.170:56.8712.09 MB0.4981
optimFROG 4.21 (mode 4 @ 1x)10:34.7510:36.8312.17 MB0.5015
Monkey's Audio 3.99 (high)0:29.820:31.7112.23 MB0.5042
RKAU 1.07 (normal)0:57.640:41.3912.25 MB0.5049
Monkey's Audio 3.99 (normal)0:25.630:27.4112.42 MB0.5118
optimFROG 4.21 (mode 1 @ 4x)0:45.200:48.4512.43 MB0.5121
LPAC 1.40 (-r, normal)0:45.660:23.2912.62 MB0.5200
optimFROG 4.21 (mode 0 @ 4x)0:31.030:33.6912.63 MB0.5207
WavPack 3.97a (high)0:28.010:27.4312.65 MB0.5213
Bonk 0.51:08.180:49.7012.71 MB0.5237
Monkey's Audio 3.99 (fast)0:19.790:21.7812.76 MB0.5260
flac 1.1.1 (-8)1:43.740:13.2312.82 MB0.5286
flac 1.1.1 (-5, default)0:24.120:13.0812.92 MB0.5325
WavPack 3.97a (normal)0:15.610:15.3512.98 MB0.5348
flac 1.1.1 (-3)0:18.800:13.8512.98 MB0.5349
Apple Lossless??13.04 MB0.5377
WavPack 3.97a (fast)0:11.070:10.3813.30 MB0.5481
Kexis 0.2.20:33.430:28.1113.30 MB0.5481
Shorten 3.2a (-p0 -b256, default)0:17.800:11.4613.32 MB0.5489
flac 1.1.1 (-1)0:15.600:12.8213.34 MB0.5500
Ogg Squish 0.98??13.41 MB0.5528
Shorten 3.2a (-p8 -b2048)0:22.300:13.8713.42 MB0.5531
WaveZIP0:16.37?13.72 MB0.5655
RIFF WAVE2:24.212:24.2124.26 MB1.0000
 
- L. Subramaniam
Raga Sivapriya -
La 0.3c41:10.1039:35.2887.51 MB0.4097
Monkey's Audio 3.99 (insane)35:41.1037:34.1789.18 MB0.4175
Monkey's Audio 3.99 (extra high)7:46.708:10.9790.95 MB0.4258
optimFROG 4.21 (mode 4 @ 1x)93:05.0093:16.0092.05 MB0.4310
optimFROG 4.21 (mode 1 @ 4x)6:36.866:57.6992.76 MB0.4343
Monkey's Audio 3.99 (high)4:15.824:35.3393.15 MB0.4361
Monkey's Audio 3.99 (normal)3:38.023:58.7594.32 MB0.4416
optimFROG 4.21 (mode 0 @ 4x)4:29.574:53.0194.74 MB0.4436
RKAU 1.07 (normal)7:16.095:30.3395.91 MB0.4490
WavPack 3.97a (high)3:41.173:56.7096.51 MB0.4518
LPAC 1.40 (-r, normal)4:34.062:37.6896.84 MB0.4534
Monkey's Audio 3.99 (fast)2:49.873:15.3495.34 MB0.4464
WavPack 3.97a (normal)1:50.852:10.5597.75 MB0.4577
flac 1.1.1 (-8)15:02.461:51.1598.02 MB0.4589
flac 1.1.1 (-5, default)3:28.921:53.0798.42 MB0.4608
Apple Lossless??98.57 MB0.4615
Bonk 0.59:56.257:13.6898.94 MB0.4633
flac 1.1.1 (-3)2:38.791:49.9399.22 MB0.4645
Ogg Squish 0.98??101.88 MB0.4770
Shorten 3.2a (-p8 -b2048)3:10.191:56.31102.60 MB0.4804
Shorten 3.2a (-p0 -b256, default)2:36.481:42.35102.84 MB0.4815
Kexis 0.2.24:49.843:59.93103.57 MB0.4849
flac 1.1.1 (-1)2:15.701:51.81103.60 MB0.4851
WavPack 3.97a (fast)1:34.441:24.44103.86 MB0.4863
WaveZIP2:25.86?107.47 MB0.5032
RIFF WAVE21:09.4721:09.47213.56 MB1.0000
-
-

-
-
-
-
+

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Track + + Codec + + Encode
time
+
+ Decode
time
+
+ Compressed
size
+
+ Compression
ratio
+
+ Dream Theater
6:00 +
La 0.3c11:37.6911:15.3742.72 MB0.7306
Monkey's Audio 3.99 (insane)10:03.3910:29.3742.99 MB0.7352
Monkey's Audio 3.99 (extra high)2:14.702:19.6243.06 MB0.7364
Monkey's Audio 3.99 (high)1:15.911:19.0043.21 MB0.7391
optimFROG 4.21 (mode 1 @ 4x)1:53.282:00.4543.26 MB0.7398
optimFROG 4.21 (mode 4 @ 1x)25:32.4125:38.1543.26 MB0.7398
Monkey's Audio 3.99 (normal)1:05.101:08.5143.30 MB0.7405
optimFROG 4.21 (mode 0 @ 4x)1:17.951:25.6743.42 MB0.7426
WavPack 3.97a (high)1:10.341:08.6143.49 MB0.7438
RKAU 1.07 (normal)1:57.681:33.3843.81 MB0.7493
Monkey's Audio 3.99 (fast)0:51.650:56.1343.86 MB0.7501
LPAC 1.40 (-r, normal)1:27.610:56.1844.12 MB0.7545
flac 1.1.1 (-8)4:18.720:37.2844.33 MB0.7582
WavPack 3.97a (normal)0:40.240:40.7044.34 MB0.7583
Bonk 0.52:56.032:11.5844.35 MB0.7585
flac 1.1.1 (-5, default)1:01.310:37.0144.41 MB0.7595
Apple Lossless??44.74 MB0.7653
Shorten 3.2a (-p8 -b2048)0:58.810:37.6344.75 MB0.7654
flac 1.1.1 (-3)0:49.050:36.4444.78 MB0.7659
Ogg Squish 0.98??45.17 MB0.7725
Pegasus-SPS4:45.00?45.40 MB0.7765
WavPack 3.97a (fast)0:18.660:18.5946.31 MB0.7920
Kexis 0.2.21:24.831:10.9346.52 MB0.7956
flac 1.1.1 (-1)0:44.000:36.9146.65 MB0.7978
Shorten 3.2a (-p0 -b256, default)0:47.750:32.5646.68 MB0.7984
WaveZIP0:38.99?47.22 MB0.8077
RIFF WAVE5:47.565:47.5658.47 MB1.0000
 
+ Eddie Warner
Titus +
La 0.3c5:24.565:13.2914.76 MB0.5298
LPAC 1.40 (-r, normal)0:40.760:21.2114.77 MB0.5298
flac 1.1.1 (-8)1:57.870:15.0515.01 MB0.5385
optimFROG 4.21 (mode 1 @ 4x)0:53.390:55.5215.01 MB0.5385
optimFROG 4.21 (mode 4 @ 1x)12:02.5412:03.7615.02 MB0.5390
flac 1.1.1 (-5, default)0:28.170:15.0515.12 MB0.5424
optimFROG 4.21 (mode 0 @ 4x)0:36.810:39.1915.13 MB0.5429
RKAU 1.07 (normal)0:54.820:42.7115.15 MB0.5435
Monkey's Audio 3.99 (extra high)1:03.041:04.5515.15 MB0.5436
Monkey's Audio 3.99 (insane)4:44.064:55.1715.18 MB0.5447
Monkey's Audio 3.99 (high)0:34.330:36.2315.26 MB0.5474
Monkey's Audio 3.99 (normal)0:29.620:31.3815.27 MB0.5479
flac 1.1.1 (-3)0:22.210:14.7215.43 MB0.5538
Monkey's Audio 3.99 (fast)0:23.150:25.4415.55 MB0.5579
WavPack 3.97a (high)0:32.150:31.1815.57 MB0.5585
Shorten 3.2a (-p0 -b256, default)0:21.160:13.5515.78 MB0.5662
WavPack 3.97a (normal)0:18.250:17.6715.86 MB0.5692
Shorten 3.2a (-p8 -b2048)0:26.820:16.7516.21 MB0.5818
Apple Lossless??16.36 MB0.5871
flac 1.1.1 (-1)0:19.750:15.7616.39 MB0.5880
Bonk 0.51:22.011:00.1216.73 MB0.6003
Ogg Squish 0.98??17.03 MB0.6112
Kexis 0.2.20:38.720:32.2517.40 MB0.6242
WavPack 3.97a (fast)0:08.190:08.7917.49 MB0.6275
WaveZIP0:17.55?17.89 MB0.6420
RIFF WAVE2:35.672:35.6727.87 MB1.0000
 
+ Tool
Forty-six & 2 +
La 0.3c12:34.9712:09.0837.42 MB0.5824
optimFROG 4.21 (mode 4 @ 1x)27:58.2828:01.8737.96 MB0.5907
Monkey's Audio 3.99 (insane)10:55.3111:24.7638.00 MB0.5914
Monkey's Audio 3.99 (extra high)2:24.022:33.4438.03 MB0.5919
optimFROG 4.21 (mode 1 @ 4x)2:03.432:09.2738.15 MB0.5937
Monkey's Audio 3.99 (high)1:19.071:24.0238.21 MB0.5947
Monkey's Audio 3.99 (normal)1:07.841:12.0038.38 MB0.5973
optimFROG 4.21 (mode 0 @ 4x)1:24.441:30.9738.68 MB0.6020
WavPack 3.97a (high)1:02.471:14.5438.86 MB0.6048
Monkey's Audio 3.99 (fast)0:53.720:58.8939.09 MB0.6084
RKAU 1.07 (normal)2:16.001:41.8439.42 MB0.6135
WavPack 3.97a (normal)0:29.070:42.8739.92 MB0.6213
LPAC 1.40 (-r, normal)1:38.010:57.5640.25 MB0.6263
Apple Lossless??40.75 MB0.6342
flac 1.1.1 (-8)4:35.080:39.4040.89 MB0.6363
Bonk 0.53:07.202:21.2840.98 MB0.6378
flac 1.1.1 (-5, default)1:05.540:39.6541.04 MB0.6388
flac 1.1.1 (-3)0:50.180:38.9241.74 MB0.6496
Ogg Squish 0.98??42.27 MB0.6578
flac 1.1.1 (-1)0:45.830:40.8942.70 MB0.6646
Kexis 0.2.21:30.091:16.2942.75 MB0.6652
Shorten 3.2a (-p8 -b2048)1:02.420:37.8443.06 MB0.6701
Shorten 3.2a (-p0 -b256, default)0:51.290:34.5943.18 MB0.6721
WavPack 3.97a (fast)0:31.260:28.7943.65 MB0.6794
WaveZIP0:42.84?44.52 MB0.6930
RIFF WAVE6:21.926:21.9264.25 MB1.0000
 
+ Cannibal Corpse
Mummified In Barbed Wire +
La 0.3c6:35.946:23.5722.69 MB0.6798
Monkey's Audio 3.99 (insane)5:42.635:59.5322.83 MB0.6839
Monkey's Audio 3.99 (extra high)1:15.581:19.3122.85 MB0.6847
optimFROG 4.21 (mode 4 @ 1x)14:34.2814:37.6922.95 MB0.6877
Monkey's Audio 3.99 (high)0:41.910:45.4923.18 MB0.6945
Monkey's Audio 3.99 (normal)0:36.030:38.3423.24 MB0.6963
optimFROG 4.21 (mode 1 @ 4x)1:03.961:08.8523.31 MB0.6984
RKAU 1.07 (normal)1:09.710:56.6623.34 MB0.6993
LPAC 1.40 (-r, normal)1:05.380:36.2023.53 MB0.7050
WavPack 3.97a (high)0:32.990:40.0523.57 MB0.7062
optimFROG 4.21 (mode 0 @ 4x)0:44.140:48.7123.95 MB0.7176
Monkey's Audio 3.99 (fast)0:28.610:31.5324.14 MB0.7234
flac 1.1.1 (-8)2:25.590:20.8524.18 MB0.7245
flac 1.1.1 (-5, default)0:34.660:21.4224.30 MB0.7282
Bonk 0.51:40.381:14.5824.36 MB0.7297
Apple Lossless??24.37 MB0.7301
WavPack 3.97a (normal)0:15.990:23.5024.76 MB0.7418
Shorten 3.2a (-p8 -b2048)0:33.740:22.4725.12 MB0.7526
flac 1.1.1 (-3)0:27.400:20.1125.16 MB0.7539
Ogg Squish 0.98??25.23 MB0.7558
Kexis 0.2.20:47.130:40.6726.03 MB0.7799
flac 1.1.1 (-1)0:24.040:21.6826.10 MB0.7819
WavPack 3.97a (fast)0:16.790:21.6426.17 MB0.7841
Shorten 3.2a (-p0 -b256, default)0:28.200:20.4626.61 MB0.7972
WaveZIP0:22.25?26.89 MB0.8058
RIFF WAVE3:18.363:18.3633.37 MB1.0000
 
+ Alanis Morisette
Hand In My Pocket +
La 0.3c7:35.217:20.1920.77 MB0.5312
Monkey's Audio 3.99 (insane)6:36.656:53.3121.22 MB0.5427
optimFROG 4.21 (mode 4 @ 1x)16:51.8216:54.3421.24 MB0.5433
optimFROG 4.21 (mode 1 @ 4x)1:14.291:18.0621.36 MB0.5464
Monkey's Audio 3.99 (extra high)1:26.931:31.7421.40 MB0.5475
Monkey's Audio 3.99 (high)0:47.190:50.4521.66 MB0.5540
Monkey's Audio 3.99 (normal)0:41.570:45.6621.76 MB0.5565
optimFROG 4.21 (mode 0 @ 4x)0:51.390:54.9721.89 MB0.5598
Monkey's Audio 3.99 (fast)0:31.890:35.9222.13 MB0.5660
WavPack 3.97a (high)0:45.070:43.8822.28 MB0.5699
WavPack 3.97a (normal)0:25.400:24.8022.80 MB0.5832
RKAU 1.07 (normal)1:21.181:01.6022.80 MB0.5833
LPAC 1.40 (-r, normal)1:01.110:33.7923.25 MB0.5948
Bonk 0.51:53.411:23.5223.35 MB0.5972
flac 1.1.1 (-8)2:46.090:23.1423.45 MB0.5998
flac 1.1.1 (-5, default)0:39.820:21.8123.56 MB0.6026
Apple Lossless??23.64 MB0.6047
Ogg Squish 0.98??24.11 MB0.6167
flac 1.1.1 (-3)0:30.580:22.0524.32 MB0.6221
Shorten 3.2a (-p8 -b2048)0:37.490:22.9324.72 MB0.6323
Kexis 0.2.20:54.260:45.6424.80 MB0.6345
flac 1.1.1 (-1)0:26.460:22.1424.82 MB0.6348
WavPack 3.97a (fast)0:16.670:17.0224.94 MB0.6381
Shorten 3.2a (-p0 -b256, default)0:29.710:18.9225.34 MB0.6481
WaveZIP0:28.05?25.95 MB0.6638
RIFF WAVE3:52.363:52.3639.09 MB1.0000
 
+ Gloria Estefan
Conga +
La 0.3c8:52.938:34.8128.98 MB0.6419
optimFROG 4.21 (mode 4 @ 1x)19:40.5319:44.4729.43 MB0.6517
Monkey's Audio 3.99 (insane)7:41.958:01.9529.48 MB0.6528
Monkey's Audio 3.99 (extra high)1:42.171:46.6229.49 MB0.6530
optimFROG 4.21 (mode 1 @ 4x)1:26.641:32.2329.58 MB0.6550
Monkey's Audio 3.99 (high)0:57.621:00.7429.69 MB0.6576
optimFROG 4.21 (mode 0 @ 4x)0:59.591:05.2929.78 MB0.6595
Monkey's Audio 3.99 (normal)0:48.440:53.2929.83 MB0.6605
WavPack 3.97a (high)0:53.500:51.9029.92 MB0.6625
Monkey's Audio 3.99 (fast)0:38.480:43.9130.20 MB0.6689
WavPack 3.97a (normal)0:29.840:29.9230.28 MB0.6706
RKAU 1.07 (normal)1:37.851:12.1530.34 MB0.6719
Bonk 0.52:13.341:39.4430.64 MB0.6785
flac 1.1.1 (-8)3:16.070:27.5330.76 MB0.6811
LPAC 1.40 (-r, normal)1:14.080:44.6430.81 MB0.6823
flac 1.1.1 (-5, default)0:46.300:26.7430.86 MB0.6834
Apple Lossless??30.91 MB0.6847
Ogg Squish 0.98??31.06 MB0.6879
WavPack 3.97a (fast)0:13.310:14.1531.61 MB0.7000
flac 1.1.1 (-3)0:35.880:27.6531.63 MB0.7006
Shorten 3.2a (-p8 -b2048)0:44.760:27.4831.76 MB0.7034
Kexis 0.2.21:03.910:53.5431.86 MB0.7056
flac 1.1.1 (-1)0:32.510:27.3031.99 MB0.7085
Shorten 3.2a (-p0 -b256, default)0:35.740:23.6432.47 MB0.7191
WaveZIP0:29.42?33.02 MB0.7313
RIFF WAVE4:28.394:28.3945.15 MB1.0000
 
+ Cream
White Room +
La 0.3c10:24.0810:03.1633.44 MB0.6309
optimFROG 4.21 (mode 4 @ 1x)22:59.0523:02.9833.93 MB0.6399
Monkey's Audio 3.99 (insane)9:02.779:26.7533.95 MB0.6404
optimFROG 4.21 (mode 1 @ 4x)1:42.281:47.5533.96 MB0.6405
Monkey's Audio 3.99 (extra high)1:59.732:04.4634.00 MB0.6413
Monkey's Audio 3.99 (high)1:05.801:09.3834.11 MB0.6435
Monkey's Audio 3.99 (normal)0:56.670:59.5634.25 MB0.6460
optimFROG 4.21 (mode 0 @ 4x)1:10.301:15.9934.29 MB0.6468
WavPack 3.97a (high)0:51.501:02.7134.55 MB0.6516
RKAU 1.07 (normal)1:50.801:24.9834.60 MB0.6527
LPAC 1.40 (-r, normal)1:25.160:48.6734.84 MB0.6572
Monkey's Audio 3.99 (fast)0:44.600:48.9234.85 MB0.6574
Bonk 0.52:35.361:56.2034.96 MB0.6595
flac 1.1.1 (-8)3:48.730:31.9134.99 MB0.6601
WavPack 3.97a (normal)0:24.430:36.0935.08 MB0.6617
flac 1.1.1 (-5, default)0:54.890:33.8235.16 MB0.6633
flac 1.1.1 (-3)0:41.380:32.0035.36 MB0.6671
Shorten 3.2a (-p8 -b2048)0:51.440:33.0235.40 MB0.6677
Apple Lossless??35.46 MB0.6689
Ogg Squish 0.98??35.74 MB0.6742
WavPack 3.97a (fast)0:26.000:24.8336.32 MB0.6852
Shorten 3.2a (-p0 -b256, default)0:41.140:28.9136.42 MB0.6870
flac 1.1.1 (-1)0:36.870:33.3936.56 MB0.6897
Kexis 0.2.21:13.871:02.9036.64 MB0.6911
WaveZIP0:35.77?37.13 MB0.7004
RIFF WAVE5:15.115:15.1153.01 MB1.0000
 
+ Maurice Ravel
Fanfare from "L'eventail de Jeanne" +
La 0.3c3:55.403:47.606.46 MB0.3104
Monkey's Audio 3.99 (extra high)0:42.680:43.986.75 MB0.3243
Monkey's Audio 3.99 (insane)3:10.933:18.536.78 MB0.3256
optimFROG 4.21 (mode 4 @ 1x)8:22.428:23.326.82 MB0.3274
Monkey's Audio 3.99 (high)0:23.090:24.126.98 MB0.3353
optimFROG 4.21 (mode 1 @ 4x)0:36.570:38.267.09 MB0.3406
RKAU 1.07 (normal)0:40.670:28.527.18 MB0.3451
optimFROG 4.21 (mode 0 @ 4x)0:24.980:26.377.21 MB0.3462
Monkey's Audio 3.99 (normal)0:19.780:20.507.28 MB0.3495
LPAC 1.40 (-r, normal)0:29.010:15.117.33 MB0.3520
WavPack 3.97a (high)0:22.630:21.867.45 MB0.3577
Monkey's Audio 3.99 (fast)0:15.600:16.767.50 MB0.3601
flac 1.1.1 (-8)1:20.730:09.517.69 MB0.3692
flac 1.1.1 (-5, default)0:18.950:09.457.71 MB0.3703
flac 1.1.1 (-3)0:14.980:09.197.77 MB0.3734
Apple Lossless??7.82 MB0.3757
WavPack 3.97a (normal)0:12.560:11.957.83 MB0.3760
Bonk 0.50:55.920:40.237.83 MB0.3762
flac 1.1.1 (-1)0:12.970:10.398.12 MB0.3902
Ogg Squish 0.98??8.15 MB0.3914
Shorten 3.2a (-p0 -b256, default)0:13.810:08.888.19 MB0.3932
Shorten 3.2a (-p8 -b2048)0:17.450:10.308.29 MB0.3983
Kexis 0.2.20:26.780:21.908.52 MB0.4091
WaveZIP0:13.11?8.72 MB0.4193
WavPack 3.97a (fast)0:05.350:06.338.87 MB0.4259
RIFF WAVE2:03.762:03.7620.82 MB1.0000
 
+ Maurice Ravel
String Quartet (4th movement) +
La 0.3c10:45.8010:21.4419.94 MB0.3550
Monkey's Audio 3.99 (insane)9:17.649:43.0320.17 MB0.3590
Monkey's Audio 3.99 (extra high)2:01.232:06.9720.29 MB0.3611
optimFROG 4.21 (mode 4 @ 1x)24:26.9924:29.3620.62 MB0.3671
Monkey's Audio 3.99 (high)1:06.281:09.5920.68 MB0.3681
optimFROG 4.21 (mode 1 @ 4x)1:42.571:47.4820.93 MB0.3725
Monkey's Audio 3.99 (normal)0:56.221:01.2221.05 MB0.3747
optimFROG 4.21 (mode 0 @ 4x)1:09.171:13.1421.23 MB0.3779
RKAU 1.07 (normal)1:52.651:25.3921.30 MB0.3791
Monkey's Audio 3.99 (fast)0:43.690:49.3121.52 MB0.3830
WavPack 3.97a (high)0:52.481:02.2621.55 MB0.3835
LPAC 1.40 (-r, normal)1:20.840:42.7321.96 MB0.3909
WavPack 3.97a (normal)0:23.290:34.2822.11 MB0.3935
Apple Lossless??22.52 MB0.4008
flac 1.1.1 (-8)3:53.930:28.0222.61 MB0.4025
flac 1.1.1 (-5, default)0:54.340:27.9222.68 MB0.4036
Bonk 0.52:33.531:51.9423.18 MB0.4125
flac 1.1.1 (-3)0:40.000:28.1523.21 MB0.4132
flac 1.1.1 (-1)0:34.990:27.7323.36 MB0.4158
Kexis 0.2.21:15.051:03.8623.42 MB0.4168
Shorten 3.2a (-p0 -b256, default)0:39.960:27.3623.71 MB0.4221
Ogg Squish 0.98??24.12 MB0.4293
WavPack 3.97a (fast)0:24.340:22.1725.08 MB0.4463
Shorten 3.2a (-p8 -b2048)0:49.060:29.9425.59 MB0.4554
WaveZIP0:36.60?25.84 MB0.4600
RIFF WAVE5:33.955:33.9556.18 MB1.0000
 
+ Sergei Prokofiev
Piano Concerto No.3 (3rd movement) +
La 0.3c19:11.6118:28.8032.65 MB0.3243
Monkey's Audio 3.99 (insane)16:21.1617:04.4633.34 MB0.3311
optimFROG 4.21 (mode 4 @ 1x)43:21.8843:26.1833.58 MB0.3335
Monkey's Audio 3.99 (extra high)3:34.863:46.8233.60 MB0.3337
optimFROG 4.21 (mode 1 @ 4x)3:00.573:08.1933.83 MB0.3360
optimFROG 4.21 (mode 0 @ 4x)2:00.852:09.5234.14 MB0.3390
Monkey's Audio 3.99 (high)1:56.682:07.2534.16 MB0.3392
Monkey's Audio 3.99 (normal)1:38.961:48.1734.58 MB0.3434
RKAU 1.07 (normal)3:08.702:26.1735.21 MB0.3496
LPAC 1.40 (-r, normal)2:06.211:11.9235.27 MB0.3502
WavPack 3.97a (high)1:32.781:50.7435.35 MB0.3510
Monkey's Audio 3.99 (fast)1:17.001:27.3535.53 MB0.3528
WavPack 3.97a (normal)0:40.681:00.2936.99 MB0.3673
Apple Lossless??37.32 MB0.3706
flac 1.1.1 (-8)6:51.480:49.4738.07 MB0.3781
flac 1.1.1 (-5, default)1:35.220:47.5738.17 MB0.3791
flac 1.1.1 (-3)1:10.670:46.4038.51 MB0.3824
flac 1.1.1 (-1)1:01.440:53.4039.30 MB0.3903
Shorten 3.2a (-p0 -b256, default)1:10.570:50.0039.49 MB0.3921
Kexis 0.2.22:12.391:49.0039.89 MB0.3962
Bonk 0.54:33.713:19.3840.31 MB0.4003
Ogg Squish 0.98??41.86 MB0.4157
WavPack 3.97a (fast)0:43.240:40.1743.03 MB0.4273
WaveZIP1:05.60?43.67 MB0.4337
Shorten 3.2a (-p8 -b2048)1:26.840:53.1945.34 MB0.4502
RIFF WAVE9:58.479:58.47100.68 MB1.0000
 
+ Frederic Chopin
Prelude No.24 in d minor +
La 0.3c5:14.835:03.089.84 MB0.3582
Monkey's Audio 3.99 (insane)4:33.424:45.169.96 MB0.3625
Monkey's Audio 3.99 (extra high)0:59.941:01.8710.16 MB0.3699
optimFROG 4.21 (mode 4 @ 1x)11:56.2411:58.7710.34 MB0.3764
Monkey's Audio 3.99 (high)0:32.290:34.4910.40 MB0.3788
optimFROG 4.21 (mode 1 @ 4x)0:50.070:53.4910.41 MB0.3790
Monkey's Audio 3.99 (normal)0:27.350:29.5110.52 MB0.3832
optimFROG 4.21 (mode 0 @ 4x)0:34.060:38.7010.53 MB0.3833
LPAC 1.40 (-r, normal)0:34.910:20.0110.74 MB0.3911
WavPack 3.97a (high)0:31.430:28.9510.76 MB0.3919
RKAU 1.07 (normal)0:54.460:41.5410.88 MB0.3963
Monkey's Audio 3.99 (fast)0:21.100:23.9010.94 MB0.3982
WavPack 3.97a (normal)0:16.900:15.1711.34 MB0.4128
Apple Lossless??11.51 MB0.4191
flac 1.1.1 (-8)1:53.310:13.0611.69 MB0.4256
flac 1.1.1 (-5, default)0:26.050:13.5011.71 MB0.4265
flac 1.1.1 (-3)0:19.820:13.2511.74 MB0.4274
flac 1.1.1 (-1)0:17.610:13.8011.86 MB0.4319
Shorten 3.2a (-p0 -b256, default)0:19.200:11.8912.05 MB0.4386
Kexis 0.2.20:36.700:30.2612.14 MB0.4419
Bonk 0.51:15.450:55.0712.86 MB0.4684
WaveZIP0:18.75?13.08 MB0.4765
Ogg Squish 0.98??13.31 MB0.4845
WavPack 3.97a (fast)0:06.740:08.5113.67 MB0.4978
Shorten 3.2a (-p8 -b2048)0:24.430:14.3214.40 MB0.5242
RIFF WAVE2:43.232:43.2327.46 MB1.0000
 
+ Domenico Scarlatti
Sonata K.42 (arr.Yepes for guitar) +
La 0.3c3:09.333:01.826.62 MB0.4036
Monkey's Audio 3.99 (insane)2:46.092:52.526.67 MB0.4068
Monkey's Audio 3.99 (extra high)0:36.210:38.166.74 MB0.4109
optimFROG 4.21 (mode 4 @ 1x)7:08.777:09.526.87 MB0.4190
Monkey's Audio 3.99 (high)0:19.600:20.236.91 MB0.4213
optimFROG 4.21 (mode 1 @ 4x)0:30.470:31.956.98 MB0.4255
Monkey's Audio 3.99 (normal)0:16.730:17.606.99 MB0.4261
RKAU 1.07 (normal)0:37.090:26.567.05 MB0.4297
optimFROG 4.21 (mode 0 @ 4x)0:20.680:22.067.07 MB0.4310
WavPack 3.97a (high)0:15.500:18.317.12 MB0.4340
Monkey's Audio 3.99 (fast)0:12.960:14.287.16 MB0.4369
LPAC 1.40 (-r, normal)0:29.990:14.337.21 MB0.4397
WavPack 3.97a (normal)0:07.010:10.277.31 MB0.4460
flac 1.1.1 (-8)1:08.580:07.997.37 MB0.4498
flac 1.1.1 (-5, default)0:15.900:08.717.40 MB0.4513
flac 1.1.1 (-3)0:11.840:08.267.43 MB0.4530
Apple Lossless??7.44 MB0.4541
Bonk 0.50:45.590:32.637.46 MB0.4548
Shorten 3.2a (-p0 -b256, default)0:11.670:07.177.48 MB0.4564
Kexis 0.2.20:22.060:18.627.50 MB0.4572
flac 1.1.1 (-1)0:10.170:07.857.53 MB0.4591
WavPack 3.97a (fast)0:04.110:06.577.58 MB0.4624
Ogg Squish 0.98??7.74 MB0.4723
WaveZIP0:10.56?7.83 MB0.4781
Shorten 3.2a (-p8 -b2048)0:14.290:09.078.20 MB0.5004
RIFF WAVE1:37.431:37.4316.39 MB1.0000
 
+ The Benedictine Monks of
Santo Domingo de Silos
Laetatus sum +
La 0.3c4:40.714:32.2911.94 MB0.4922
Monkey's Audio 3.99 (insane)4:08.234:18.4312.05 MB0.4968
Monkey's Audio 3.99 (extra high)0:54.170:56.8712.09 MB0.4981
optimFROG 4.21 (mode 4 @ 1x)10:34.7510:36.8312.17 MB0.5015
Monkey's Audio 3.99 (high)0:29.820:31.7112.23 MB0.5042
RKAU 1.07 (normal)0:57.640:41.3912.25 MB0.5049
Monkey's Audio 3.99 (normal)0:25.630:27.4112.42 MB0.5118
optimFROG 4.21 (mode 1 @ 4x)0:45.200:48.4512.43 MB0.5121
LPAC 1.40 (-r, normal)0:45.660:23.2912.62 MB0.5200
optimFROG 4.21 (mode 0 @ 4x)0:31.030:33.6912.63 MB0.5207
WavPack 3.97a (high)0:28.010:27.4312.65 MB0.5213
Bonk 0.51:08.180:49.7012.71 MB0.5237
Monkey's Audio 3.99 (fast)0:19.790:21.7812.76 MB0.5260
flac 1.1.1 (-8)1:43.740:13.2312.82 MB0.5286
flac 1.1.1 (-5, default)0:24.120:13.0812.92 MB0.5325
WavPack 3.97a (normal)0:15.610:15.3512.98 MB0.5348
flac 1.1.1 (-3)0:18.800:13.8512.98 MB0.5349
Apple Lossless??13.04 MB0.5377
WavPack 3.97a (fast)0:11.070:10.3813.30 MB0.5481
Kexis 0.2.20:33.430:28.1113.30 MB0.5481
Shorten 3.2a (-p0 -b256, default)0:17.800:11.4613.32 MB0.5489
flac 1.1.1 (-1)0:15.600:12.8213.34 MB0.5500
Ogg Squish 0.98??13.41 MB0.5528
Shorten 3.2a (-p8 -b2048)0:22.300:13.8713.42 MB0.5531
WaveZIP0:16.37?13.72 MB0.5655
RIFF WAVE2:24.212:24.2124.26 MB1.0000
 
+ L. Subramaniam
Raga Sivapriya +
La 0.3c41:10.1039:35.2887.51 MB0.4097
Monkey's Audio 3.99 (insane)35:41.1037:34.1789.18 MB0.4175
Monkey's Audio 3.99 (extra high)7:46.708:10.9790.95 MB0.4258
optimFROG 4.21 (mode 4 @ 1x)93:05.0093:16.0092.05 MB0.4310
optimFROG 4.21 (mode 1 @ 4x)6:36.866:57.6992.76 MB0.4343
Monkey's Audio 3.99 (high)4:15.824:35.3393.15 MB0.4361
Monkey's Audio 3.99 (normal)3:38.023:58.7594.32 MB0.4416
optimFROG 4.21 (mode 0 @ 4x)4:29.574:53.0194.74 MB0.4436
RKAU 1.07 (normal)7:16.095:30.3395.91 MB0.4490
WavPack 3.97a (high)3:41.173:56.7096.51 MB0.4518
LPAC 1.40 (-r, normal)4:34.062:37.6896.84 MB0.4534
Monkey's Audio 3.99 (fast)2:49.873:15.3495.34 MB0.4464
WavPack 3.97a (normal)1:50.852:10.5597.75 MB0.4577
flac 1.1.1 (-8)15:02.461:51.1598.02 MB0.4589
flac 1.1.1 (-5, default)3:28.921:53.0798.42 MB0.4608
Apple Lossless??98.57 MB0.4615
Bonk 0.59:56.257:13.6898.94 MB0.4633
flac 1.1.1 (-3)2:38.791:49.9399.22 MB0.4645
Ogg Squish 0.98??101.88 MB0.4770
Shorten 3.2a (-p8 -b2048)3:10.191:56.31102.60 MB0.4804
Shorten 3.2a (-p0 -b256, default)2:36.481:42.35102.84 MB0.4815
Kexis 0.2.24:49.843:59.93103.57 MB0.4849
flac 1.1.1 (-1)2:15.701:51.81103.60 MB0.4851
WavPack 3.97a (fast)1:34.441:24.44103.86 MB0.4863
WaveZIP2:25.86?107.47 MB0.5032
RIFF WAVE21:09.4721:09.47213.56 MB1.0000
+
+ + + + -
-

 Copyright (c) 2000,2001,2002,2003,2004,2005 Josh Coalson

+ - - + + diff --git a/doc/html/developers.html b/doc/html/developers.html index 0dc9c38..65ac65b 100644 --- a/doc/html/developers.html +++ b/doc/html/developers.html @@ -1,159 +1,114 @@ - + - - - FLAC - developers - - - - - - - - -
FLAC Logo
- -
- -
- - - - - -
- - - - - - - - - - - - - - - - -
  home  |  faq  |  news  |  download  |  features  |  goals  |  format  |  id  |  comparison  |  documentation  |  changelog  |  links  |  developers  
-
- -
- - - - - -
- - - - - -
  english  |  russian  
-
- -
- -
- -
- - - - -
-
- - -
- FLAC developers -
-
- - -
-

- FLAC is an open source project and we are happy to enlist the help of anyone who wants to contribute. The preferred method for transmitting improvements is patch files (in "diff -c" format) sent to the developer mailing list, but zipped up sources are OK. Make sure to read the FLAC goals first; there are some thing the we don't want added to FLAC, like copy protection and lossy compression. -

-

+ + + + + + + + + FLAC - developers + + + + +

+ +
+ +
+ + + +
+ +
+  english  | +  russian  +
+ +
+ +
+ +
+
+ FLAC developers +
+
+
+ FLAC is an open source project and we are happy to enlist the help of anyone who wants to contribute. The preferred method for transmitting improvements is patch files (in "diff -c" format) sent to the developer mailing list, but zipped up sources are OK. Make sure to read the FLAC goals first; there are some thing the we don't want added to FLAC, like copy protection and lossy compression. +

High priority items are: -

-

-

    -
  • - Support in the plugins for using the CUESHEET metadata block. The plugin should be able to see a CUESHEET in a FLAC file and present the individual tracks in the player, and fetch metadata from CDDB or CDindex by computing the hash from the CUESHEET and looking up either in a local database or over the net. -
  • -
-

-

+

    +
  • + Support in the plugins for using the CUESHEET metadata block. The plugin should be able to see a CUESHEET in a FLAC file and present the individual tracks in the player, and fetch metadata from CDDB or CDindex by computing the hash from the CUESHEET and looking up either in a local database or over the net. +
  • +
Some other "nice-to-haves": -

-

-

    -
  • - FLAC module for Audiofile. -
  • -
  • - JMF plugin. -
  • -
  • - Streaming support in the Winamp plugin. -
  • -
-

-

- See also the FLAC project page on Sourceforge.net. -

-
-
-
-
- - - - -
-
- - -
- third-party developers -
-
- - -
-

+

    +
  • + FLAC module for Audiofile. +
  • +
  • + JMF plugin. +
  • +
  • + Streaming support in the Winamp plugin. +
  • +
+ See also the FLAC project page on Sourceforge.net. + + + + +
+ +
+
+ third-party developers +
+
+
FLAC is open to third-party developers who want to add support for FLAC into their programs. All the necessary functionality is contained the lib*FLAC libraries which are licensed under Xiph.org's BSD license. The relevant documentation here is: - -

-

- There also are several examples in the FLAC code base of API usage that may also be helpful. Visit the download page for instructions on how to get the source. -

-
-
-
-
- - -
- -

 Copyright (c) 2000,2001,2002,2003,2004,2005 Josh Coalson

- - - + + There also are several examples in the FLAC code base of API usage that may also be helpful. Visit the download page for instructions on how to get the source. + + + + + + + + + diff --git a/doc/html/documentation.html b/doc/html/documentation.html index 89c3128..a80d475 100644 --- a/doc/html/documentation.html +++ b/doc/html/documentation.html @@ -1,1543 +1,1407 @@ - + - - - FLAC - documentation - + + + + + + + + + FLAC - documentation + - + - - - - -
FLAC Logo
+ -
+
-
+
- - - - -
- - - - - - - - - - - - - - - - -
  home  |  faq  |  news  |  download  |  features  |  goals  |  format  |  id  |  comparison  |  documentation  |  changelog  |  links  |  developers  
-
+ -
+
- - - - -
- - - - - -
  english  |  russian  
-
+
+  english  | +  russian  +
-
+
-
+
-
- - - - -
-
- - -
- documentation -
-
- - -
-

+

+
+ documentation +
+
+
This page is broken up into the following sections: - -

-

+

Keep in mind that the online version of this document will always apply to the latest release. For older releases, check the documentation included with the release package. -

-
-
-
-
+ + + +
- - -
-
- - -
- format -
-
- - -
-

- flac has been tuned so that the default options yield a good speed vs. compression tradeoff for many kinds of input. However, if you are looking to maximize the compression rate or speed, or want to use the full power of FLAC's metadata system, this section is for you. If not, just skip to the next section. -

-

+

+
+ format +
+
+
+ flac has been tuned so that the default options yield a good speed vs. compression tradeoff for many kinds of input. However, if you are looking to maximize the compression rate or speed, or want to use the full power of FLAC's metadata system, this section is for you. If not, just skip to the next section. +

The basic structure of a FLAC stream is: -
    -
  • The four byte string "fLaC"
  • -
  • The STREAMINFO metadata block
  • -
  • Zero or more other metadata blocks
  • -
  • One or more audio frames
  • -
-

-

+

    +
  • The four byte string "fLaC"
  • +
  • The STREAMINFO metadata block
  • +
  • Zero or more other metadata blocks
  • +
  • One or more audio frames
  • +
The first four bytes are to identify the FLAC stream. The metadata that follows contains all the information about the stream except for the audio data itself. After the metadata comes the encoded audio data. -

-

- METADATA -

-

- FLAC defines several types of metadata blocks (see the format page for the complete list). Metadata blocks can be any length and new ones can be defined. A decoder is allowed to skip any metadata types it does not understand. Only one is mandatory: the STREAMINFO block. This block has information like the sample rate, number of channels, etc., and data that can help the decoder manage its buffers, like the minimum and maximum data rate and minimum and maximum block size. Also included in the STREAMINFO block is the MD5 signature of the unencoded audio data. This is useful for checking an entire stream for transmission errors. -

-

- Other blocks allow for padding, seek tables, tags, cuesheets, and application-specific data. You can see flac options below for adding PADDING blocks or specifying seek points. FLAC does not require seek points for seeking but they can speed up seeks, or be used for cueing in editing applications. -

-

- Also, if you have a need of a custom metadata block, you can define your own and request an ID here. Then you can reserve a PADDING block of the correct size when encoding, and overwrite the padding block with your APPLICATION block after encoding. The resulting stream will be FLAC compatible; decoders that are aware of your metadata can use it and the rest will safely ignore it. -

-

- AUDIO DATA -

-

+

+ METADATA +

+ FLAC defines several types of metadata blocks (see the format page for the complete list). Metadata blocks can be any length and new ones can be defined. A decoder is allowed to skip any metadata types it does not understand. Only one is mandatory: the STREAMINFO block. This block has information like the sample rate, number of channels, etc., and data that can help the decoder manage its buffers, like the minimum and maximum data rate and minimum and maximum block size. Also included in the STREAMINFO block is the MD5 signature of the unencoded audio data. This is useful for checking an entire stream for transmission errors. +

+ Other blocks allow for padding, seek tables, tags, cuesheets, and application-specific data. You can see flac options below for adding PADDING blocks or specifying seek points. FLAC does not require seek points for seeking but they can speed up seeks, or be used for cueing in editing applications. +

+ Also, if you have a need of a custom metadata block, you can define your own and request an ID here. Then you can reserve a PADDING block of the correct size when encoding, and overwrite the padding block with your APPLICATION block after encoding. The resulting stream will be FLAC compatible; decoders that are aware of your metadata can use it and the rest will safely ignore it. +

+ AUDIO DATA +

After the metadata comes the encoded audio data. Audio data and metadata are not interleaved. Like most audio codecs, FLAC splits the unencoded audio data into blocks, and encodes each block separately. The encoded block is packed into a frame and appended to the stream. The reference encoder uses a single block size for the whole stream but the FLAC format does not require it. -

-

- BLOCKING -

-

- The block size is an important parameter to encoding. If it is too small, the frame overhead will lower the compression. If it is too large, the modeling stage of the compressor will not be able to generate an efficient model. Understanding FLAC's modeling will help you to improve compression for some kinds of input by varying the block size. In the most general case, using linear prediction on 44.1kHz audio, the optimal block size will be between 2-6 ksamples. flac defaults to a block size of 4608 in this case. Using the fast fixed predictors, a smaller block size is usually preferable because of the smaller frame header. -

-

- INTER-CHANNEL DECORRELATION -

-

- In the case of stereo input, once the data is blocked it is optionally passed through an inter-channel decorrelation stage. The left and right channels are converted to center and side channels through the following transformation: mid = (left + right) / 2, side = left - right. This is a lossless process, unlike joint stereo. For normal CD audio this can result in significant extra compression. flac has two options for this: -m always compresses both the left-right and mid-side versions of the block and takes the smallest frame, and -M, which adaptively switches between left-right and mid-side. -

-

- MODELING -

-

- In the next stage, the encoder tries to approximate the signal with a function in such a way that when the approximation is subracted, the result (called the residual, residue, or error) requires fewer bits-per-sample to encode. The function's parameters also have to be transmitted so they should not be so complex as to eat up the savings. FLAC has two methods of forming approximations: 1) fitting a simple polynomial to the signal; and 2) general linear predictive coding (LPC). I will not go into the details here, only some generalities that involve the encoding options. -

-

- First, fixed polynomial prediction (specified with -l 0) is much faster, but less accurate than LPC. The higher the maximum LPC order, the slower, but more accurate, the model will be. However, there are diminishing returns with increasing orders. Also, at some point (usually around order 9) the part of the encoder that guesses what is the best order to use will start to get it wrong and the compression will actually decrease slightly; at that point you will have to you will have to use the exhaustive search option -e to overcome this, which is significantly slower. -

-

+

+ BLOCKING +

+ The block size is an important parameter to encoding. If it is too small, the frame overhead will lower the compression. If it is too large, the modeling stage of the compressor will not be able to generate an efficient model. Understanding FLAC's modeling will help you to improve compression for some kinds of input by varying the block size. In the most general case, using linear prediction on 44.1kHz audio, the optimal block size will be between 2-6 ksamples. flac defaults to a block size of 4608 in this case. Using the fast fixed predictors, a smaller block size is usually preferable because of the smaller frame header. +

+ INTER-CHANNEL DECORRELATION +

+ In the case of stereo input, once the data is blocked it is optionally passed through an inter-channel decorrelation stage. The left and right channels are converted to center and side channels through the following transformation: mid = (left + right) / 2, side = left - right. This is a lossless process, unlike joint stereo. For normal CD audio this can result in significant extra compression. flac has two options for this: -m always compresses both the left-right and mid-side versions of the block and takes the smallest frame, and -M, which adaptively switches between left-right and mid-side. +

+ MODELING +

+ In the next stage, the encoder tries to approximate the signal with a function in such a way that when the approximation is subracted, the result (called the residual, residue, or error) requires fewer bits-per-sample to encode. The function's parameters also have to be transmitted so they should not be so complex as to eat up the savings. FLAC has two methods of forming approximations: 1) fitting a simple polynomial to the signal; and 2) general linear predictive coding (LPC). I will not go into the details here, only some generalities that involve the encoding options. +

+ First, fixed polynomial prediction (specified with -l 0) is much faster, but less accurate than LPC. The higher the maximum LPC order, the slower, but more accurate, the model will be. However, there are diminishing returns with increasing orders. Also, at some point (usually around order 9) the part of the encoder that guesses what is the best order to use will start to get it wrong and the compression will actually decrease slightly; at that point you will have to you will have to use the exhaustive search option -e to overcome this, which is significantly slower. +

Second, the parameters for the fixed predictors can be transmitted in 3 bits whereas the parameters for the LPC model depend on the bits-per-sample and LPC order. This means the frame header length varies depending on the method and order you choose and can affect the optimal block size. -

-

- RESIDUAL CODING -

-

+

+ RESIDUAL CODING +

Once the model is generated, the encoder subracts the approximation from the original signal to get the residual (error) signal. The error signal is then losslessly coded. To do this, FLAC takes advantage of the fact that the error signal generally has a Laplacian (two-sided geometric) distribution, and that there are a set of special Huffman codes called Rice codes that can be used to efficiently encode these kind of signals quickly and without needing a dictionary. -

-

- Rice coding involves finding a single parameter that matches a signal's distribution, then using that parameter to generate the codes. As the distribution changes, the optimal parameter changes, so FLAC supports a method that allows the parameter to change as needed. The residual can be broken into several contexts or partitions, each with it's own Rice parameter. flac allows you to specify how the partitioning is done with the -r option. The residual can be broken into 2^n partitions, by using the option -r n,n. The parameter n is called the partition order. Furthermore, the encoder can be made to search through m to n partition orders, taking the best one, by specifying -r m,n. Generally, the choice of n does not affect encoding speed but m,n does. The larger the difference between m and n, the more time it will take the encoder to search for the best order. The block size will also affect the optimal order. -

-

- FRAMING -

-

+

+ Rice coding involves finding a single parameter that matches a signal's distribution, then using that parameter to generate the codes. As the distribution changes, the optimal parameter changes, so FLAC supports a method that allows the parameter to change as needed. The residual can be broken into several contexts or partitions, each with it's own Rice parameter. flac allows you to specify how the partitioning is done with the -r option. The residual can be broken into 2^n partitions, by using the option -r n,n. The parameter n is called the partition order. Furthermore, the encoder can be made to search through m to n partition orders, taking the best one, by specifying -r m,n. Generally, the choice of n does not affect encoding speed but m,n does. The larger the difference between m and n, the more time it will take the encoder to search for the best order. The block size will also affect the optimal order. +

+ FRAMING +

An audio frame is preceded by a frame header and trailed by a frame footer. The header starts with a sync code, and contains the minimum information necessary for a decoder to play the stream, like sample rate, bits per sample, etc. It also contains the block or sample number and an 8-bit CRC of the frame header. The sync code, frame header CRC, and block/sample number allow resynchronization and seeking even in the absence of seek points. The frame footer contains a 16-bit CRC of the entire encoded frame for error detection. If the reference decoder detects a CRC error it will generate a silent block. -

-

- MISCELLANEOUS -

-

- As a convenience, the reference decoder knows how to skip ID3v1 and ID3v2 tags. Note however that the FLAC specification does not require compliant implementations to support ID3 in any form and their use is discouraged. -

-

- flac has a verify option -V that verifies the output while encoding. With this option, a decoder is run in parallel to the encoder and its output is compared against the original input. If a difference is found flac will stop with an error. -

-
-
-
-
+

+ MISCELLANEOUS +

+ As a convenience, the reference decoder knows how to skip ID3v1 and ID3v2 tags. Note however that the FLAC specification does not require compliant implementations to support ID3 in any form and their use is discouraged. +

+ flac has a verify option -V that verifies the output while encoding. With this option, a decoder is run in parallel to the encoder and its output is compared against the original input. If a difference is found flac will stop with an error. + + + +
- - -
-
- - -
- flac -
-
- - -
-

- flac is the command-line file encoder/decoder. The input to the encoder and the output to the decoder must either be RIFF WAVE format, AIFF, or raw interleaved sample data. flac only supports linear PCM samples (in other words, no A-LAW, uLAW, etc.). Another restriction (hopefully short-term) is that the input must be 8, 16, or 24 bits per sample. This is not a limitation of the FLAC format, just the reference encoder/decoder. -

-

- flac assumes that files ending in ".wav" or that have the RIFF WAVE header present are WAVE files, and files ending in ".aif" or ".aiff" or have the AIFF header present are in AIFF files. This may be overridden with a command-line option. It also assumes that files ending in ".ogg" are Ogg FLAC files. Other than this, flac makes no assumptions about file extensions, though the convention is that FLAC files have the extension ".flac" (or ".fla" on ancient file systems like FAT-16). -

-

- Before going into the full command-line description, a few other things help to sort it out: 1) flac encodes by default, so you must use -d to decode; 2) the options -0 .. -8 (or --fast and --best) that control the compression level actually are just synonyms for different groups of specific encoding options (described later) and you can get the same effect by using the same options; 3) flac behaves similarly to gzip in the way it handles input and output files. -

-

- flac will be invoked one of four ways, depending on whether you are encoding, decoding, testing, or analyzing: -

-

-

- In any case, if no inputfile is specified, stdin is assumed. If only one inputfile is specified, it may be "-" for stdin. When stdin is used as input, flac will write to stdout. Otherwise flac will perform the desired operation on each input file to similarly named output files (meaning for encoding, the extension will be replaced with ".flac", or appended with ".flac" if the input file has no extension, and for decoding, the extension will be ".wav" for WAVE output and ".raw" for raw output). The original file is not deleted unless --delete-input-file is specified. -

-

+

+
+ flac +
+
+
+ flac is the command-line file encoder/decoder. The input to the encoder and the output to the decoder must either be RIFF WAVE format, AIFF, or raw interleaved sample data. flac only supports linear PCM samples (in other words, no A-LAW, uLAW, etc.). Another restriction (hopefully short-term) is that the input must be 8, 16, or 24 bits per sample. This is not a limitation of the FLAC format, just the reference encoder/decoder. +

+ flac assumes that files ending in ".wav" or that have the RIFF WAVE header present are WAVE files, and files ending in ".aif" or ".aiff" or have the AIFF header present are in AIFF files. This may be overridden with a command-line option. It also assumes that files ending in ".ogg" are Ogg FLAC files. Other than this, flac makes no assumptions about file extensions, though the convention is that FLAC files have the extension ".flac" (or ".fla" on ancient file systems like FAT-16). +

+ Before going into the full command-line description, a few other things help to sort it out: 1) flac encodes by default, so you must use -d to decode; 2) the options -0 .. -8 (or --fast and --best) that control the compression level actually are just synonyms for different groups of specific encoding options (described later) and you can get the same effect by using the same options; 3) flac behaves similarly to gzip in the way it handles input and output files. +

+ flac will be invoked one of four ways, depending on whether you are encoding, decoding, testing, or analyzing: + + In any case, if no inputfile is specified, stdin is assumed. If only one inputfile is specified, it may be "-" for stdin. When stdin is used as input, flac will write to stdout. Otherwise flac will perform the desired operation on each input file to similarly named output files (meaning for encoding, the extension will be replaced with ".flac", or appended with ".flac" if the input file has no extension, and for decoding, the extension will be ".wav" for WAVE output and ".raw" for raw output). The original file is not deleted unless --delete-input-file is specified. +

If you are encoding/decoding from stdin to a file, you should use the -o option like so: -
    -
  • - flac [options] -o outputfile -
  • -
  • - flac -d [options] -o outputfile -
  • -
- which are better than: -
    -
  • - flac [options] > outputfile -
  • -
  • - flac -d [options] > outputfile -
  • -
- since the former allows flac to seek backwards to write the STREAMINFO or RIFF WAVE header contents when necessary. -

-

- Also, you can force output data to go to stdout using -c. -

-

- To encode or decode files that start with a dash, use -- to signal the end of options, to keep the filenames themselves from being treated as options: -

    -
  • - flac -V -- -01-filename.wav -
  • -
-

-

The encoding options affect the compression ratio and encoding speed. The format options are used to tell flac the arrangement of samples if the input file (or output file when decoding) is a raw file. If it is a RIFF WAVE or AIFF file the format options are not needed since they are read from the AIFF/WAVE header. -

-

- In test mode, flac acts just like in decode mode, except no output file is written. Both decode and test modes detect errors in the stream, but they also detect when the MD5 signature of the decoded audio does not match the stored MD5 signature, even when the bitstream is valid. -

-

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- General Options -
- - -v, --version - - Show the flac version number. -
- - -h, --help - - Show basic usage and a list of all options. Running flac without arguments shows the short help screen by default. -
- - -H, --explain - - Show detailed explanation of usage and all options. Running flac without arguments shows the short help screen by default. -
- - -d, --decode - - Decode (flac encodes by default). flac will exit with an exit code of 1 (and print a message, even in silent mode) if there were any errors during decoding, including when the MD5 checksum does not match the decoded output. Otherwise the exit code will be 0. -
- - -t, --test - - Test (same as -d except no decoded file is written). The exit codes are the same as in decode mode. -
- - -a, --analyze - - Analyze (same as -d except an analysis file is written). The exit codes are the same as in decode mode. This option is mainly for developers; the output will be a text file that has data about each frame and subframe. -
- - -c, --stdout - - Write output to stdout. -
- - -s, --silent - - Silent: do not show encoding/decoding statistics. -
- - --totally-silent - - Do not print anything of any kind, including warnings or errors. The exit code will be the only way to determine successful completion. -
- - -f, --force - - Force overwriting of output files. By default, flac warns that the output file already exists and continues to the next file. -
- - -o filename,
--output-name=filename -
- Force the output file name (usually flac just changes the extension). May only be used when encoding a single file. May not be used in conjunction with --output-prefix. -
- - --output-prefix=string - - Prefix each output file name with the given string. This can be useful for encoding/decoding files to a different directory. Make sure if your string is a path name that it ends with a trailing '/' slash. -
- - --delete-input-file - - Automatically delete the input file after a successful encode or decode. If there was an error (including a verify error) the input file is left intact. -
- - --skip={#|mm:ss.ss} - - Skip over the first # of samples of the input. This works for both encoding and decoding, but not testing. The alternative form mm:ss.ss can be used to specify minutes, seconds, and fractions of a second.

- Examples:

- --skip=123 : skip the first 123 samples of the input

- --skip=1:23.45 : skip the first 1 minute and 23.45 seconds of the input -

- - --until={#|[+|-]mm:ss.ss} - - Stop at the given sample number for each input file. This works for both encoding and decoding, but not testing. The given sample number is not included in the decoded output. The alternative form mm:ss.ss can be used to specify minutes, seconds, and fractions of a second. If a + sign is at the beginning, the --until point is relative to the --skip point. If a - sign is at the beginning, the --until point is relative to end of the audio.

- Examples:

- --until=123 : decode only the first 123 samples of the input (samples 0-122, stopping at 123)

- --until=1:23.45 : decode only the first 1 minute and 23.45 seconds of the input

- --skip=1:00 --until=+1:23.45 : decode 1:00.00 to 2:23.45

- --until=-1:23.45 : decode everything except the last 1 minute and 23.45 seconds

- --until=-0:00 : decode until the end of the input (the same as not specifying --until) -

- - --ogg - - When encoding, generate Ogg FLAC output instead of native FLAC. Ogg FLAC streams are FLAC streams wrapped in an Ogg transport layer. The resulting file should have an '.ogg' extension and will still be decodable by flac.

- When decoding, force the input to be treated as Ogg FLAC. This is useful when piping input from stdin or when the filename does not end in '.ogg'.

- NOTE: Ogg FLAC files created prior to flac 1.1.1 used an ad-hoc mapping and do not support seeking. They should be decoded and re-encoded with flac 1.1.1 or later. -

- - --serial-number=# - - When used with --ogg, specifies the serial number to use for the first Ogg FLAC stream, which is then incremented for each additional stream. When encoding and no serial number is given, flac uses a random number for the first stream, then increments it for each additional stream. When decoding and no number is given, flac uses the serial number of the first page. -
-
-

-

-
- - - - - - - - - - - - -
- Analysis Options -
- - --residual-text - - Includes the residual signal in the analysis file. This will make the file very big, much larger than even the decoded file. -
- - --residual-gnuplot - - Generates a gnuplot file for every subframe; each file will contain the residual distribution of the subframe. This will create a lot of files. -
-
-

-

-
- - - - - - - - - - - - - -
- Decoding Options -
- - --cue=[#.#][-[#.#]] - - Set the beginning and ending cuepoints to decode. The optional first #.# is the track and index point at which decoding will start; the default is the beginning of the stream. The optional second #.# is the track and index point at which decoding will end; the default is the end of the stream. If the cuepoint does not exist, the closest one before it (for the start point) or after it (for the end point) will be used. If those don't exist, the start of the stream (for the start point) or end of the stream (for the end point) will be used. The cuepoints are merely translated into sample numbers then used as --skip and --until.

- Examples:

- --cue=- : decode the entire stream

- --cue=4.1 : decode from track 4, index 1 to the end of the stream

- --cue=4.1- : decode from track 4, index 1 to the end of the stream

- --cue=-4.1 : decode from the beginning of the stream up to, but not including, track 4, index 1

- --cue=2.1-2.4 : decode from track 2, index 1, up to, but not including, track 2, index 4

-

- - -F,
--decode-through-errors -
- By default flac stops decoding with an error and removes the partially decoded file if it encounters a bitstream error. With -F, errors are still printed but flac will continue decoding to completion. Note that errors may cause the decoded audio to be missing some samples or have silent sections. -
-
-

-

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Encoding Options -
- - -V, --verify - - Verify the encoding process. With this option, flac will create a parallel decoder that decodes the output of the encoder and compares the result against the original. It will abort immediately with an error if a mismatch occurs. -V increases the total encoding time but is guaranteed to catch any unforseen bug in the encoding process. -
- - --lax - - Allow encoder to generate non-Subset files. The resulting FLAC file may not be streamable or might have trouble being played in all players (especially hardware devices), so you should only use this option in combination with custom encoding options meant for archival. -
- - --replay-gain - - Calculate ReplayGain values and store in FLAC tags, similar to VorbisGain. Title gains/peaks will be computed for each input file, and an album gain/peak will be computed for all files. All input files must have the same resolution, sample rate, and number of channels. Only mono and stereo files are allowed, and the sample rate must be one of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, or 48 kHz. Also note that this option may leave a few extra bytes in a PADDING block as the exact size of the tags is not known until all files are processed.

- Note that this option cannot be used when encoding to standard output (stdout). -

- - --cuesheet=FILENAME - - Import the given cuesheet file and store it in a CUESHEET metadata block. This option may only be used when encoding a single file. A seekpoint will be added for each index point in the cuesheet to the SEEKTABLE unless --no-cued-seekpoints is specified.

- The cuesheet file must be of the sort written by CDRwin, CDRcue, EAC, et al. -

- - --sector-align - - Align encoding of multiple CD format WAVE files on sector boundaries. This option is only allowed when encoding WAVE files, all of which have a 44.1kHz sample rate and 2 channels. With --sector-align, the encoder will align the resulting .flac streams so that their lengths are even multiples of a CD sector (1/75th of a second, or 588 samples). It does this by carrying over any partial sector at the end of each WAVE file to the next stream. The last stream will be padded to alignment with zeroes.

- This option will have no effect if the files are already aligned (as is the normally the case with WAVE files ripped from a CD). flac can only align a set of files given in one invocation of flac.

- WARNING: The ordering of files is important! If you give a command like 'flac --sector-align *.wav' the shell may not expand the wildcard to the order you expect. To be safe you should 'echo *.wav' first to confirm the order, or be explicit like 'flac --sector-align 8.wav 9.wav 10.wav'. -

- - -S {#|X|#x|#s},
--seekpoint={#|X|#x|#s} -
- Include a point or points in a SEEKTABLE:
-
    -
  • - : a specific sample number for a seek point -
  • -
  • - : a placeholder point (always goes at the end of the SEEKTABLE) -
  • -
  • - #x : # evenly spaced seekpoints, the first being at sample 0 -
  • -
  • - #s : a seekpoint every # seconds; # does not have to be a whole number, it can be, for example, 9.5, meaning a seekpoint every 9.5 seconds -
  • -
- You may use many -S options; the resulting SEEKTABLE will be the unique-ified union of all such values.
- With no -S options, flac defaults to '-S 10s'. Use --no-seektable for no SEEKTABLE.
- NOTE: -S #x and -S #s will not work if the encoder can't determine the input size before starting.
- NOTE: if you use -S # and # is >= samples in the input, there will be either no seek point entered (if the input size is determinable before encoding starts) or a placeholder point (if input size is not determinable).
-
- - -P #, --padding=# - - Tell the encoder to write a PADDING metadata block of the given length (in bytes) after the STREAMINFO block. This is useful if you plan to tag the file later with an APPLICATION block; instead of having to rewrite the entire file later just to insert your block, you can write directly over the PADDING block. Note that the total length of the PADDING block will be 4 bytes longer than the length given because of the 4 metadata block header bytes. You can force no PADDING block at all to be written with --no-padding. The encoder writes a PADDING block of 4096 bytes by default. -
- - -T FIELD=VALUE, --tag=FIELD=VALUE - - Add a FLAC tag. The comment must adhere to the Vorbis comment spec (which FLAC tags implement), i.e. the FIELD must contain only legal characters, terminated by an 'equals' sign. Make sure to quote the comment if necessary. This option may appear more than once to add several comments. NOTE: all tags will be added to all encoded files. -
- - -b #, --blocksize=# - - Specify the block size in samples. The default is 1152 for -l 0, otherwise 4608. Subset streams must use one of 192/576/1152/2304/4608/256/512/1024/2048/4096/8192/16384/32768. The reference encoder uses the same block size for the entire stream. -
- - -m, --mid-side - - Enable mid-side coding (only for stereo streams). Tends to increase compression by a few percent on average. For each block both the stereo pair and mid-side versions of the block will be encoded, and smallest resulting frame will be stored. -
- - -M, --adaptive-mid-side - - Enable adaptive mid-side coding (only for stereo streams). Like -m but the encoder adaptively switches between independent and mid-side coding, which is faster but yields less compression than -m (which does an exhaustive search). -
- - -0 .. -8 - - Fastest compression .. highest compression. The default is -5. -
- - -0, --compression-level-0 - - Synonymous with -l 0 -b 1152 -r 2,2 -
- - -1, --compression-level-1 - - Synonymous with -l 0 -b 1152 -M -r 2,2 -
- - -2, --compression-level-2 - - Synonymous with -l 0 -b 1152 -m -r 3 -
- - -3, --compression-level-3 - - Synonymous with -l 6 -b 4608 -r 3,3 -
- - -4, --compression-level-4 - - Synonymous with -l 8 -b 4608 -M -r 3,3 -
- - -5, --compression-level-5 - - Synonymous with -l 8 -b 4608 -m -r 3,3 -
- - -6, --compression-level-6 - - Synonymous with -l 8 -b 4608 -m -r 4 -
- - -7, --compression-level-7 - - Synonymous with -l 8 -b 4608 -m -e -r 6 -
- - -8, --compression-level-8 - - Synonymous with -l 12 -b 4608 -m -e -r 6 -
- - --fast - - Fastest compression. Currently synonymous with -0 -
- - --best - - Highest compression. Currently synonymous with -8 -
- - -e,
--exhaustive-model-search -
- Exhaustive model search (expensive!). Normally the encoder estimates the best model to use and encodes once based on the estimate. With an exhaustive model search, the encoder will generate subframes for every order and use the smallest. If the max LPC order is high this can significantly increase the encode time but can shave off another 0.5%. -
- - -l #, --max-lpc-order=# - - Specifies the maximum LPC order. This number must be <= 32. If 0, the encoder will not attempt generic linear prediction, and use only fixed predictors. Using fixed predictors is faster but usually results in files being 5-10% larger. -
- - -q #,
--qlp-coeff-precision=# -
- Specifies the precision of the quantized LP coefficients, in bits. The default is -q 0, which means let the encoder decide based on the signal. Unless you really know your input file it's best to leave this up to the encoder. -
- - -p,
--qlp-coeff-precision-search -
- Do exhaustive LP coefficient quantization optimization. This option overrides any -q option. It is expensive and typically will only improve the compression a tiny fraction of a percent. -q has no effect when -l 0 is used. -
- - -r [#,]#,
--rice-partition-order=[#,]# -
- Set the [min,]max residual partition order. The min value defaults to 0 if unspecified.

- By default the encoder uses a single Rice parameter for the subframe's entire residual. With this option, the residual is iteratively partitioned into 2^min# .. 2^max# pieces, each with its own Rice parameter. Higher values of max# yield diminishing returns. The most bang for the buck is usually with -r 2,2 (more for higher block sizes). This usually shaves off about 1.5%. The technique tends to peak out about when blocksize/(2^n)=128. Use -r 0,16 to force the highest degree of optimization. -

-
-

-

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Format Options -
- - --endian={big|little} - - Specify big-endian or little-endian byte order in the raw file. -
- - --channels=# - - Specify the number of channels in the raw file. -
- - --bps=# - - Specify the number of bits per sample in the raw file. -
- - --sample-rate=# - - Specify the sample rate of the raw file. -
- - --sign={signed|unsigned} - - Specify that the samples in the raw file are signed or unsigned (the default is signed). -
- - --input-size=# - - Specify the size of the raw input in bytes. If you are encoding raw samples from stdin, you must set this option in order to be able to use --skip, --until, --cue-sheet, or other options that need to know the size of the input beforehand. If the size given is greater than what is found in the input stream, the encoder will complain about an unexpected end-of-file. If the size given is less, samples will be truncated. -
- - --force-aiff-format - - Force the decoder to output AIFF format. This option is not needed if the output filename (as set by -o) ends with .aiff. Also, this option has no effect when encoding since input AIFF is auto-detected. -
- - --force-raw-format - - Treat the input file (or output file if decoding) as a raw file, regardless of the extension. -
-
-

-

-
- - - - - - - - -
- Negative Options -
- --no-adaptive-mid-side
- --no-decode-through-errors
- --no-delete-input-file
- --no-escape-coding
- --no-exhaustive-model-search
- --no-lax
- --no-mid-side
- --no-ogg
- --no-padding
- --no-qlp-coeff-precision-search
- --no-residual-gnuplot
- --no-residual-text
- --no-sector-align
- --no-seektable
- --no-silent
- --no-verify -
- can all be used to turn off a particular option. -
-
-

-
-
-
-
+ + which are better than: + + since the former allows flac to seek backwards to write the STREAMINFO or RIFF WAVE header contents when necessary. +

+ Also, you can force output data to go to stdout using -c. +

+ To encode or decode files that start with a dash, use -- to signal the end of options, to keep the filenames themselves from being treated as options: + + The encoding options affect the compression ratio and encoding speed. The format options are used to tell flac the arrangement of samples if the input file (or output file when decoding) is a raw file. If it is a RIFF WAVE or AIFF file the format options are not needed since they are read from the AIFF/WAVE header. +

+ In test mode, flac acts just like in decode mode, except no output file is written. Both decode and test modes detect errors in the stream, but they also detect when the MD5 signature of the decoded audio does not match the stored MD5 signature, even when the bitstream is valid. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ General Options +
+ + -v, --version + + Show the flac version number. +
+ + -h, --help + + Show basic usage and a list of all options. Running flac without arguments shows the short help screen by default. +
+ + -H, --explain + + Show detailed explanation of usage and all options. Running flac without arguments shows the short help screen by default. +
+ + -d, --decode + + Decode flac encodes by flac will exit with an exit code of 1 (and print a message, even in silent mode) if there were any errors during decoding, including when the MD5 checksum does not match the decoded output. Otherwise the exit code will be 0. +
+ + -t, --test + + Test (same as -d except no decoded file is written). The exit codes are the same as in decode mode. +
+ + -a, --analyze + + Analyze (same as -d except an analysis file is written). The exit codes are the same as in decode mode. This option is mainly for developers; the output will be a text file that has data about each frame and subframe. +
+ + -c, --stdout + + Write output to stdout. +
+ + -s, --silent + + Silent: do not show encoding/decoding statistics. +
+ + --totally-silent + + Do not print anything of any kind, including warnings or errors. The exit code will be the only way to determine successful completion. +
+ + -f, --force + + Force overwriting of output files. By default, flac warns that the output file already exists and continues to the next file. +
+ + -o filename,
--output-name=filename +
+ Force the output file name (usually flac just changes the extension). May only be used when encoding a single file. May not be used in conjunction with --output-prefix. +
+ + --output-prefix=string + + Prefix each output file name with the given string. This can be useful for encoding/decoding files to a different directory. Make sure if your string is a path name that it ends with a trailing '/' slash. +
+ + --delete-input-file + + Automatically delete the input file after a successful encode or decode. If there was an error (including a verify error) the input file is left intact. +
+ + --skip={#|mm:ss.ss} + + Skip over the first # of samples of the input. This works for both encoding and decoding, but not testing. The alternative form mm:ss.ss can be used to specify minutes, seconds, and fractions of a second.

+ Examples:

+ --skip=123 : skip the first 123 samples of the input
+ --skip=1:23.45 : skip the first 1 minute and 23.45 seconds of the input +
+ + --until={#|[+|-]mm:ss.ss} + + Stop at the given sample number for each input file. This works for both encoding and decoding, but not testing. The given sample number is not included in the decoded output. The alternative form mm:ss.ss can be used to specify minutes, seconds, and fractions of a second. If a + sign is at the beginning, the --until point is relative to the --skip point. If a - sign is at the beginning, the --until point is relative to end of the audio.

+ Examples:

+ --until=123 : decode only the first 123 samples of the input (samples 0-122, stopping at 123)
+ --until=1:23.45 : decode only the first 1 minute and 23.45 seconds of the input
+ --skip=1:00 --until=+1:23.45 : decode 1:00.00 to 2:23.45
+ --until=-1:23.45 : decode everything except the last 1 minute and 23.45 seconds
+ --until=-0:00 : decode until the end of the input (the same as not specifying --until) +
+ + --ogg + + When encoding, generate Ogg FLAC output instead of native FLAC. Ogg FLAC streams are FLAC streams wrapped in an Ogg transport layer. The resulting file should have an '.ogg' extension and will still be decodable by flac.

+ When decoding, force the input to be treated as Ogg FLAC. This is useful when piping input from stdin or when the filename does not end in '.ogg'.

+ NOTE: Ogg FLAC files created prior to flac 1.1.1 used an ad-hoc mapping and do not support seeking. They should be decoded and re-encoded with flac 1.1.1 or later. +
+ + --serial-number=# + + When used with --ogg, specifies the serial number to use for the first Ogg FLAC stream, which is then incremented for each additional stream. When encoding and no serial number is given, flac uses a random number for the first stream, then increments it for each additional stream. When decoding and no number is given, flac uses the serial number of the first page. +
+
+ +
+ +
+ + + + + + + + + + + + +
+ Analysis Options +
+ + --residual-text + + Includes the residual signal in the analysis file. This will make the file very big, much larger than even the decoded file. +
+ + --residual-gnuplot + + Generates a gnuplot file for every subframe; each file will contain the residual distribution of the subframe. This will create a lot of files. +
+
+ +
+ +
+ + + + + + + + + + + + + +
+ Decoding Options +
+ + --cue=[#.#][-[#.#]] + + Set the beginning and ending cuepoints to decode. The optional first #.# is the track and index point at which decoding will start; the default is the beginning of the stream. The optional second #.# is the track and index point at which decoding will end; the default is the end of the stream. If the cuepoint does not exist, the closest one before it (for the start point) or after it (for the end point) will be used. If those don't exist, the start of the stream (for the start point) or end of the stream (for the end point) will be used. The cuepoints are merely translated into sample numbers then used as --skip and --until.

+ Examples:

+ --cue=- : decode the entire stream
+ --cue=4.1 : decode from track 4, index 1 to the end of the stream
+ --cue=4.1- : decode from track 4, index 1 to the end of the stream
+ --cue=-4.1 : decode from the beginning of the stream up to, but not including, track 4, index 1
+ --cue=2.1-2.4 : decode from track 2, index 1, up to, but not including, track 2, index 4 +
+ + -F,
--decode-through-errors +
+ By default flac stops decoding with an error and removes the partially decoded file if it encounters a bitstream error. With -F, errors are still printed but flac will continue decoding to completion. Note that errors may cause the decoded audio to be missing some samples or have silent sections. +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Encoding Options +
+ + -V, --verify + + Verify the encoding process. With this option, flac will create a parallel decoder that decodes the output of the encoder and compares the result against the original. It will abort immediately with an error if a mismatch occurs. -V increases the total encoding time but is guaranteed to catch any unforseen bug in the encoding process. +
+ + --lax + + Allow encoder to generate non-Subset files. The resulting FLAC file may not be streamable or might have trouble being played in all players (especially hardware devices), so you should only use this option in combination with custom encoding options meant for archival. +
+ + --replay-gain + + Calculate ReplayGain values and store in FLAC tags, similar to VorbisGain. Title gains/peaks will be computed for each input file, and an album gain/peak will be computed for all files. All input files must have the same resolution, sample rate, and number of channels. Only mono and stereo files are allowed, and the sample rate must be one of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, or 48 kHz. Also note that this option may leave a few extra bytes in a PADDING block as the exact size of the tags is not known until all files are processed.

+ Note that this option cannot be used when encoding to standard output (stdout). +
+ + --cuesheet=FILENAME + + Import the given cuesheet file and store it in a CUESHEET metadata block. This option may only be used when encoding a single file. A seekpoint will be added for each index point in the cuesheet to the SEEKTABLE unless --no-cued-seekpoints is specified.

+ The cuesheet file must be of the sort written by CDRwin, CDRcue, EAC, et al. +
+ + --sector-align + + Align encoding of multiple CD format WAVE files on sector boundaries. This option is only allowed when encoding WAVE files, all of which have a 44.1kHz sample rate and 2 channels. With --sector-align, the encoder will align the resulting .flac streams so that their lengths are even multiples of a CD sector (1/75th of a second, or 588 samples). It does this by carrying over any partial sector at the end of each WAVE file to the next stream. The last stream will be padded to alignment with zeroes.

+ This option will have no effect if the files are already aligned (as is the normally the case with WAVE files ripped from a CD). flac can only align a set of files given in one invocation of flac.

+ WARNING: The ordering of files is important! If you give a command like 'flac --sector-align *.wav' the shell may not expand the wildcard to the order you expect. To be safe you should 'echo *.wav' first to confirm the order, or be explicit like 'flac --sector-align 8.wav 9.wav 10.wav'. +
+ + -S {#|X|#x|#s},
--seekpoint={#|X|#x|#s} +
+ Include a point or points in a SEEKTABLE:
+
    +
  • + : a specific sample number for a seek point +
  • +
  • + : a placeholder point (always goes at the end of the SEEKTABLE) +
  • +
  • + #x : # evenly spaced seekpoints, the first being at sample 0 +
  • +
  • + #s : a seekpoint every # seconds; # does not have to be a whole number, it can be, for example, 9.5, meaning a seekpoint every 9.5 seconds +
  • +
+ You may use many -S options; the resulting SEEKTABLE will be the unique-ified union of all such values.
+ With no -S options, flac defaults to '-S 10s'. Use --no-seektable for no SEEKTABLE.
+ NOTE: -S #x and -S #s will not work if the encoder can't determine the input size before starting.
+ NOTE: if you use -S # and # is >= samples in the input, there will be either no seek point entered (if the input size is determinable before encoding starts) or a placeholder point (if input size is not determinable).
+
+ + -P #, --padding=# + + Tell the encoder to write a PADDING metadata block of the given length (in bytes) after the STREAMINFO block. This is useful if you plan to tag the file later with an APPLICATION block; instead of having to rewrite the entire file later just to insert your block, you can write directly over the PADDING block. Note that the total length of the PADDING block will be 4 bytes longer than the length given because of the 4 metadata block header bytes. You can force no PADDING block at all to be written with --no-padding. The encoder writes a PADDING block of 4096 bytes by default. +
+ + -T FIELD=VALUE,
--tag=FIELD=VALUE +
+ Add a FLAC tag. The comment must adhere to the Vorbis comment spec (which FLAC tags implement), i.e. the FIELD must contain only legal characters, terminated by an 'equals' sign. Make sure to quote the comment if necessary. This option may appear more than once to add several comments. NOTE: all tags will be added to all encoded files. +
+ + -b #, --blocksize=# + + Specify the block size in samples. The default is 1152 for -l 0, otherwise 4608. Subset streams must use one of 192/576/1152/2304/4608/256/512/1024/2048/4096/8192/16384/32768. The reference encoder uses the same block size for the entire stream. +
+ + -m, --mid-side + + Enable mid-side coding (only for stereo streams). Tends to increase compression by a few percent on average. For each block both the stereo pair and mid-side versions of the block will be encoded, and smallest resulting frame will be stored. +
+ + -M, --adaptive-mid-side + + Enable adaptive mid-side coding (only for stereo streams). Like -m but the encoder adaptively switches between independent and mid-side coding, which is faster but yields less compression than -m (which does an exhaustive search). +
+ + -0 .. -8 + + Fastest compression .. highest compression. The default is -5. +
+ + -0, --compression-level-0 + + Synonymous with -l 0 -b 1152 -r 2,2 +
+ + -1, --compression-level-1 + + Synonymous with -l 0 -b 1152 -M -r 2,2 +
+ + -2, --compression-level-2 + + Synonymous with -l 0 -b 1152 -m -r 3 +
+ + -3, --compression-level-3 + + Synonymous with -l 6 -b 4608 -r 3,3 +
+ + -4, --compression-level-4 + + Synonymous with -l 8 -b 4608 -M -r 3,3 +
+ + -5, --compression-level-5 + + Synonymous with -l 8 -b 4608 -m -r 3,3 +
+ + -6, --compression-level-6 + + Synonymous with -l 8 -b 4608 -m -r 4 +
+ + -7, --compression-level-7 + + Synonymous with -l 8 -b 4608 -m -e -r 6 +
+ + -8, --compression-level-8 + + Synonymous with -l 12 -b 4608 -m -e -r 6 +
+ + --fast + + Fastest compression. Currently synonymous with -0 +
+ + --best + + Highest compression. Currently synonymous with -8 +
+ + -e,
--exhaustive-model-search +
+ Exhaustive model search (expensive!). Normally the encoder estimates the best model to use and encodes once based on the estimate. With an exhaustive model search, the encoder will generate subframes for every order and use the smallest. If the max LPC order is high this can significantly increase the encode time but can shave off another 0.5%. +
+ + -l #, --max-lpc-order=# + + Specifies the maximum LPC order. This number must be <= 32. If 0, the encoder will not attempt generic linear prediction, and use only fixed predictors. Using fixed predictors is faster but usually results in files being 5-10% larger. +
+ + -q #,
--qlp-coeff-precision=# +
+ Specifies the precision of the quantized LP coefficients, in bits. The default is -q 0, which means let the encoder decide based on the signal. Unless you really know your input file it's best to leave this up to the encoder. +
+ + -p,
--qlp-coeff-precision-search +
+ Do exhaustive LP coefficient quantization optimization. This option overrides any -q option. It is expensive and typically will only improve the compression a tiny fraction of a percent. -q has no effect when -l 0 is used. +
+ + -r [#,]#,
--rice-partition-order=[#,]# +
+ Set the [min,]max residual partition order. The min value defaults to 0 if unspecified.

+ By default the encoder uses a single Rice parameter for the subframe's entire residual. With this option, the residual is iteratively partitioned into 2^min# .. 2^max# pieces, each with its own Rice parameter. Higher values of max# yield diminishing returns. The most bang for the buck is usually with -r 2,2 (more for higher block sizes). This usually shaves off about 1.5%. The technique tends to peak out about when blocksize/(2^n)=128. Use -r 0,16 to force the highest degree of optimization. +
+
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Format Options +
+ + --endian={big|little} + + Specify big-endian or little-endian byte order in the raw file. +
+ + --channels=# + + Specify the number of channels in the raw file. +
+ + --bps=# + + Specify the number of bits per sample in the raw file. +
+ + --sample-rate=# + + Specify the sample rate of the raw file. +
+ + --sign={signed|unsigned} + + Specify that the samples in the raw file are signed or unsigned (the default is signed). +
+ + --input-size=# + + Specify the size of the raw input in bytes. If you are encoding raw samples from stdin, you must set this option in order to be able to use --skip, --until, --cue-sheet, or other options that need to know the size of the input beforehand. If the size given is greater than what is found in the input stream, the encoder will complain about an unexpected end-of-file. If the size given is less, samples will be truncated. +
+ + --force-aiff-format + + Force the decoder to output AIFF format. This option is not needed if the output filename (as set by -o) ends with .aiff. Also, this option has no effect when encoding since input AIFF is auto-detected. +
+ + --force-raw-format + + Treat the input file (or output file if decoding) as a raw file, regardless of the extension. +
+
+
- -
-
- - -
- metaflac -
-
- - + + + + + + + + + + + + + + + + + +
-

- metaflac is the command-line .flac file metadata editor. You can use it to list the contents of metadata blocks, edit, delete or insert blocks, and manage padding. -

-

- metaflac takes a set of "options" (though some are not optional) and a set of FLAC files to operate on. There are three kinds of "options": -

    -
  • +
    + + + + + + + + +
    + Negative Options +
    + --no-adaptive-mid-side
    + --no-decode-through-errors
    + --no-delete-input-file
    + --no-escape-coding
    + --no-exhaustive-model-search
    + --no-lax
    + --no-mid-side
    + --no-ogg
    + --no-padding
    + --no-qlp-coeff-precision-search
    + --no-residual-gnuplot
    + --no-residual-text
    + --no-sector-align
    + --no-seektable
    + --no-silent
    + --no-verify +
    + Can all be used to turn off a particular option. +
    +
    + + + + + +
    + +
    +
    + metaflac +
    +
    +
    + metaflac is the command-line .flac file metadata editor. You can use it to list the contents of metadata blocks, edit, delete or insert blocks, and manage padding. +

    + metaflac takes a set of "options" (though some are not optional) and a set of FLAC files to operate on. There are three kinds of "options": +
      +
    • Major operations, which specify a mode of operation like listing blocks, removing blocks, etc. These will have sub-operations describing exactly what is to be done. -
    • -
    • - Shorthand operations, which are convenient synonyms for major operations. For example, there is a shorthand operation --show-sample-rate that shows just the sample rate field from the STREAMINFO metadata block. -
    • -
    • +
    • +
    • + Shorthand operations, which are convenient synonyms for major operations. For example, there is a shorthand operation --show-sample-rate that shows just the sample rate field from the STREAMINFO metadata block. +
    • +
    • Global options, which affect all the operations. -
    • -
    -

    -

    +

  • +
All of these are described in the tables below. At least one shorthand or major operation must be supplied. You can use multiple shorthand operations to do more than one thing to a file or set of files. Most of the common things to do to metadata have shorthand operations. As an example, here is how to show the MD5 signatures for a set of three FLAC files: -

-

- metaflac --show-md5sum file1.flac file2.flac file3.flac -

-

- Another example; this removes all DESCRIPTION and COMMENT tags in a set of FLAC files, and uses the --preserve-modtime global option to keep the FLAC file modification times the same (usually when files are edited the modification time is set to the current time): -

-

- metaflac --preserve-modtime --remove-tag=DESCRIPTION --remove-tag=COMMENT file1.flac file2.flac file3.flac -

-

-
- - - - - - - - - - - - - - - - - - - - - - - - -
- Global Options -
- - --preserve-modtime - - Preserve the original modification time in spite of edits. -
- - --with-filename - - Prefix each output line with the FLAC file name (the default if more than one FLAC file is specified). -
- - --no-filename - - Do not prefix each output line with the FLAC file name (the default if only one FLAC file is specified) -
- - --no-utf8-convert - - Do not convert tags from UTF-8 to local charset, or vice versa. This is useful for scripts. -
- - --dont-use-padding - - By default metaflac tries to use padding where possible to avoid rewriting the entire file if the metadata size changes. Use this option to tell metaflac to not take advantage of padding this way. -
-
-

-

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Shorthand Operations -
- - --show-md5sum - - Show the MD5 signature from the STREAMINFO block. -
- - --show-min-blocksize - - Show the minimum block size from the STREAMINFO block. -
- - --show-max-blocksize - - Show the maximum block size from the STREAMINFO block. -
- - --show-min-framesize - - Show the minimum frame size from the STREAMINFO block. -
- - --show-max-framesize - - Show the maximum frame size from the STREAMINFO block. -
- - --show-sample-rate - - Show the sample rate from the STREAMINFO block. -
- - --show-channels - - Show the number of channels from the STREAMINFO block. -
- - --show-bps - - Show the # of bits per sample from the STREAMINFO block. -
- - --show-total-samples - - Show the total # of samples from the STREAMINFO block. -
- - --show-vendor-tag - - Show the vendor string from the VORBIS_COMMENT block. -
- - --show-tag=NAME - - Show all tags where the the field name matches NAME. -
- - --remove-tag=NAME - - Remove all tags whose field name is NAME. -
- - --remove-first-tag=NAME - - Remove first tag whose field name is NAME. -
- - --remove-all-tags - - Remove all tags, leaving only the vendor string. -
- - --set-tag=FIELD - - Add a tag. The FIELD must comply with the Vorbis comment spec, of the form NAME=VALUE. If there is currently no tag block, one will be created. -
- - --import-tags-from=FILE - - Import tags from a file. Use '-' for stdin. Each line should be of the form NAME=VALUE. Multi-line comments are currently not supported. Specify --remove-all-tags and/or --no-utf8-convert before --import-tags-from if necessary. -
- - --export-tags-to=FILE - - Export tags to a file. Use '-' for stdin. Each line will be of the form NAME=VALUE. Specify --no-utf8-convert if necessary. -
- - --import-cuesheet-from=FILE - - Import a cuesheet from a file. Use '-' for stdin. Only one FLAC file may be specified. A seekpoint will be added for each index point in the cuesheet to the SEEKTABLE unless --no-cued-seekpoints is specified. -
- - --export-cuesheet-to=FILE - - Export CUESHEET block to a cuesheet file, suitable for use by CD authoring software. Use '-' for stdout. Only one FLAC file may be specified on the command line. -
- - --add-replay-gain - - Calculates the title and album gains/peaks of the given FLAC files as if all the files were part of one album, then stores them in the VORBIS_COMMENT block. The tags are the same as those used by vorbisgain. Existing ReplayGain tags will be replaced. If only one FLAC file is given, the album and title gains will be the same. Since this operation requires two passes, it is always executed last, after all other operations have been completed and written to disk. All FLAC files specified must have the same resolution, sample rate, and number of channels. The sample rate must be one of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, or 48 kHz. -
- - --add-seekpoint={#|X|#x|#s} - - Add seek points to a SEEKTABLE block:
-
    -
  • - : a specific sample number for a seek point -
  • -
  • - : a placeholder point (always goes at the end of the SEEKTABLE) -
  • -
  • - #x : # evenly spaced seekpoints, the first being at sample 0 -
  • -
  • - #s : a seekpoint every # seconds; # does not have to be a whole number, it can be, for example, 9.5, meaning a seekpoint every 9.5 seconds -
  • -
- If no SEEKTABLE block exists, one will be created. If one already exists, points will be added to the existing table, and any duplicates will be turned into placeholder points.
- You may use many --add-seekpoint options; the resulting SEEKTABLE will be the unique-ified union of all such values. Example: --add-seekpoint=100x --add-seekpoint=3.5s will add 100 evenly spaced seekpoints and a seekpoint every 3.5 seconds.
-
- - --add-padding=# - - Add a padding block of the given length (in bytes). The overall length of the new block will be 4 + length; the extra 4 bytes is for the metadata block header. -
-
-

-

- -
- - - - - - - - - - - -
- Major Operations -
- - --version - - Show the metaflac version number. -
- - --list - - List the contents of one or more metadata blocks to stdout. By default, all metadata blocks are listed in text format. Use the following options to change this behavior:

+

+ metaflac --show-md5sum file1.flac file2.flac file3.flac +

+ Another example; this removes all DESCRIPTION and COMMENT tags in a set of FLAC files, and uses the --preserve-modtime global option to keep the FLAC file modification times the same (usually when files are edited the modification time is set to the current time): +

+ metaflac --preserve-modtime --remove-tag=DESCRIPTION --remove-tag=COMMENT file1.flac file2.flac file3.flac +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+ Global Options +
+ + --preserve-modtime + + Preserve the original modification time in spite of edits. +
+ + --with-filename + + Prefix each output line with the FLAC file name (the default if more than one FLAC file is specified). +
+ + --no-filename + + Do not prefix each output line with the FLAC file name (the default if only one FLAC file is specified) +
+ + --no-utf8-convert + + Do not convert tags from UTF-8 to local charset, or vice versa. This is useful for scripts. +
+ + --dont-use-padding + + By default metaflac tries to use padding where possible to avoid rewriting the entire file if the metadata size changes. Use this option to tell metaflac to not take advantage of padding this way. +
+
+ +
- --block-number=#[,#[...]]
- An optional comma-separated list of block numbers to display. The first block, the STREAMINFO block, is block 0.

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Shorthand Operations +
+ + --show-md5sum + + Show the MD5 signature from the STREAMINFO block. +
+ + --show-min-blocksize + + Show the minimum block size from the STREAMINFO block. +
+ + --show-max-blocksize + + Show the maximum block size from the STREAMINFO block. +
+ + --show-min-framesize + + Show the minimum frame size from the STREAMINFO block. +
+ + --show-max-framesize + + Show the maximum frame size from the STREAMINFO block. +
+ + --show-sample-rate + + Show the sample rate from the STREAMINFO block. +
+ + --show-channels + + Show the number of channels from the STREAMINFO block. +
+ + --show-bps + + Show the # of bits per sample from the STREAMINFO block. +
+ + --show-total-samples + + Show the total # of samples from the STREAMINFO block. +
+ + --show-vendor-tag + + Show the vendor string from the VORBIS_COMMENT block. +
+ + --show-tag=NAME + + Show all tags where the the field name matches NAME. +
+ + --remove-tag=NAME + + Remove all tags whose field name is NAME. +
+ + --remove-first-tag=NAME + + Remove first tag whose field name is NAME. +
+ + --remove-all-tags + + Remove all tags, leaving only the vendor string. +
+ + --set-tag=FIELD + + Add a tag. The FIELD must comply with the Vorbis comment spec, of the form NAME=VALUE. If there is currently no tag block, one will be created. +
+ + --import-tags-from=FILE + + Import tags from a file. Use '-' for stdin. Each line should be of the form NAME=VALUE. Multi-line comments are currently not supported. Specify --remove-all-tags and/or --no-utf8-convert before --import-tags-from if necessary. +
+ + --export-tags-to=FILE + + Export tags to a file. Use '-' for stdin. Each line will be of the form NAME=VALUE. Specify --no-utf8-convert if necessary. +
+ + --import-cuesheet-from=FILE + + Import a cuesheet from a file. Use '-' for stdin. Only one FLAC file may be specified. A seekpoint will be added for each index point in the cuesheet to the SEEKTABLE unless --no-cued-seekpoints is specified. +
+ + --export-cuesheet-to=FILE + + Export CUESHEET block to a cuesheet file, suitable for use by CD authoring software. Use '-' for stdout. Only one FLAC file may be specified on the command line. +
+ + --add-replay-gain + + Calculates the title and album gains/peaks of the given FLAC files as if all the files were part of one album, then stores them in the VORBIS_COMMENT block. The tags are the same as those used by vorbisgain. Existing ReplayGain tags will be replaced. If only one FLAC file is given, the album and title gains will be the same. Since this operation requires two passes, it is always executed last, after all other operations have been completed and written to disk. All FLAC files specified must have the same resolution, sample rate, and number of channels. The sample rate must be one of 8, 11.025, 12, 16, 22.05, 24, 32, 44.1, or 48 kHz. +
+ + --add-seekpoint={#|X|#x|#s} + + Add seek points to a SEEKTABLE block:
+
    +
  • + : a specific sample number for a seek point +
  • +
  • + : a placeholder point (always goes at the end of the SEEKTABLE) +
  • +
  • + #x : # evenly spaced seekpoints, the first being at sample 0 +
  • +
  • + #s : a seekpoint every # seconds; # does not have to be a whole number, it can be, for example, 9.5, meaning a seekpoint every 9.5 seconds +
  • +
+ If no SEEKTABLE block exists, one will be created. If one already exists, points will be added to the existing table, and any duplicates will be turned into placeholder points.
+ You may use many --add-seekpoint options; the resulting SEEKTABLE will be the unique-ified union of all such values. Example: --add-seekpoint=100x --add-seekpoint=3.5s will add 100 evenly spaced seekpoints and a seekpoint every 3.5 seconds.
+
+ + --add-padding=# + + Add a padding block of the given length (in bytes). The overall length of the new block will be 4 + length; the extra 4 bytes is for the metadata block header. +
+
- --block-type=type[,type[...]]
- --except-block-type=type[,type[...]]
- An optional comma-separated list of block types to be included or ignored with this option. Use only one of --block-type or --except-block-type. The valid block types are: STREAMINFO, PADDING, APPLICATION, SEEKTABLE, VORBIS_COMMENT. You may narrow down the types of APPLICATION blocks displayed as follows:
- - - - - -
APPLICATION:abcdThe APPLICATION block(s) whose textual representation of the 4-byte ID is "abcd" -
APPLICATION:0xXXXXXXXXThe APPLICATION block(s) whose hexadecimal big- endian representation of the 4-byte ID is "0xXXXXXXXX". For the example "abcd" above the hexadecimal equivalalent is 0x61626364 -
-

+
- NOTE: if both --block-number and --[except-]block-type are specified, the result is the logical AND of both arguments.

+
+ + + + + + + + + + + - - - - - - - - - - - - - - - - - -
+ Major Operations +
+ + --version + + Show the metaflac version number. +
+ + --list + + List the contents of one or more metadata blocks to stdout. By default, all metadata blocks are listed in text format. Use the following options to change this behavior:

- --application-data-format=hexdump|text
- If the application block you are displaying contains binary data but your --data-format=text, you can display a hex dump of the application data contents instead using --application-data-format=hexdump. -
- - --remove - - Remove one or more metadata blocks from the metadata. Unless --dont-use-padding is specified, the blocks will be replaced with padding. You may not remove the STREAMINFO block.

+ --block-number=#[,#[...]]
+ An optional comma-separated list of block numbers to display. The first block, the STREAMINFO block, is block 0.

- --block-number=#[,#[...]]
- --block-type=type[,type[...]]
- --except-block-type=type[,type[...]]
- See --list above for usage.

+ --block-type=type[,type[...]]
+ --except-block-type=type[,type[...]]
+ An optional comma-separated list of block types to be included or ignored with this option. Use only one of --block-type or --except-block-type. The valid block types are: STREAMINFO, PADDING, APPLICATION, SEEKTABLE, VORBIS_COMMENT. You may narrow down the types of APPLICATION blocks displayed as follows:
+ + + + + + + + + +
APPLICATION:abcdThe APPLICATION block(s) whose textual representation of the 4-byte ID is "abcd"
APPLICATION:0xXXXXXXXXThe APPLICATION block(s) whose hexadecimal big- endian representation of the 4-byte ID is "0xXXXXXXXX". For the example "abcd" above the hexadecimal equivalalent is 0x61626364
+
- NOTE: if both --block-number and --[except-]block-type are specified, the result is the logical AND of both arguments. -

- - --remove-all - - Remove all metadata blocks (except the STREAMINFO block) from the metadata. Unless --dont-use-padding is specified, the blocks will be replaced with padding. -
- - --merge-padding - - Merge adjacent PADDING blocks into single blocks. -
- - --sort-padding - - Move all PADDING blocks to the end of the metadata and merge them into a single block. -
-
-

- -
-
-
+ NOTE: if both --block-number and --[except-]block-type are specified, the result is the logical AND of both arguments.

+ --application-data-format=hexdump|text
+ If the application block you are displaying contains binary data but your --data-format=text, you can display a hex dump of the application data contents instead using --application-data-format=hexdump. +

+ + --remove + + Remove one or more metadata blocks from the metadata. Unless --dont-use-padding is specified, the blocks will be replaced with padding. You may not remove the STREAMINFO block.

- - - -
-
- - -
- xmms plugin -
-
- - -
-

- All that is necessary is to copy libxmms-flac.so to the directory where XMMS looks for input plugins (usually /usr/lib/xmms/Input). There is nothing else to configure. Make sure to restart XMMS before trying to play any .flac files. -

-
-
-
-
+ --block-number=#[,#[...]]
+ --block-type=type[,type[...]]
+ --except-block-type=type[,type[...]]
+ See --list above for usage.

+ NOTE: if both --block-number and --[except-]block-type are specified, the result is the logical AND of both arguments. +
+ + --remove-all + + Remove all metadata blocks (except the STREAMINFO block) from the metadata. Unless --dont-use-padding is specified, the blocks will be replaced with padding. +
+ + --merge-padding + + Merge adjacent PADDING blocks into single blocks. +
+ + --sort-padding + + Move all PADDING blocks to the end of the metadata and merge them into a single block. +
+
- - -
-
- - -
- winamp2 plugin -
-
- - -
-

- The Winamp plugin should work for both Winamp2 and Winamp5. If you are using Winamp 2.x, all that is necessary is to copy in_flac.dll to the Plugins/ directory of your Winamp installation. There is nothing else to configure. Make sure to restart Winamp before trying to play any .flac files. -

-
-
-
-
+ + + +
- - -
-
- - -
- known bugs -
-
- - -
-

- Bug tracking is done on the Sourceforge project page here. If you submit a bug, make sure and provide an email contact or use the Monitor feature. -

-

+

+ +
+
+ All that is necessary is to copy libxmms-flac.so to the directory where XMMS looks for input plugins (usually /usr/lib/xmms/Input or $HOME/.xmms/Input). There is nothing else to configure. Make sure to restart XMMS before trying to play any .flac files. +
+ +
+ +
+ +
+ +
+
+ The Winamp plugin should work for both Winamp2 and Winamp5. If you are using Winamp 2.x, all that is necessary is to copy in_flac.dll to the Plugins/ directory of your Winamp installation. There is nothing else to configure. Make sure to restart Winamp before trying to play any .flac files. +
+ +
+ +
+ +
+ +
+
+ Bug tracking is done on the Sourceforge project page here. If you submit a bug, make sure and provide an email contact or use the Monitor feature. +

The following are major known bugs in the current (1.1.2) release: -

-

-

    -
  • +
      +
    • (none) -
    • -
    -

    -

    +

  • +
The following are major known bugs in the 1.1.0 release: -

-

-

    -
  • +
      +
    • If you change the FLAC configuration options in the XMMS plugin while a FLAC file is playing, it can cause a crash or other bad things to happen. -
    • -
    -

    -

    +

  • +
The following are major known bugs in the 1.0.4 release: -

-

-

    -
  • - All decoders prior to and including 1.0.4 have a bug that prevents them from skipping unknown metadata blocks properly. A FLAC file created by flac 1.1.0 containing a CUESHEET metadata block will not decode in 1.0.x decoders. -
  • -
  • - metaflac has a bug where, if --import-vc-from is used on a FLAC file that has no Vorbis comment block, the FLAC file can be corrupted. All FLAC files generated by 1.0.4 have a Vorbis comment block added automatically but files from 1.0.3 and before do not. This is fixed in CVS. -
  • -
  • - There is an odd bug in metaflac such that you must always use the --dont-use-padding option with --add-padding or the padding block won't be written. This is fixed in CVS. -
  • -
-

-
-
-
-
+ + + + +
- - -
-
- - -
- monkey -
-
- - -
-

+

+
+ monkey +
+
+
Monkey's Audio comes with a nice GUI that many people are familiar with. It supports some external encoders, but not FLAC. However, the FLAC Windows distribution comes with a utility that allows you to replace one the of the supported lossless external codecs with FLAC. Here's how: -
    -
  • Copy flac.exe and flac_ren.exe to the External/ directory of the Monkey's Audio installation.
  • -
  • +
      +
    • Copy flac.exe and flac_ren.exe to the External/ directory of the Monkey's Audio installation.
    • +
    • Choose a supported encoder to replace: -
        -
      • Shorten - copy flac_mac.exe on top of External/shortn32.exe
      • -
      • WavPack - copy flac_mac.exe on top of both External/wavpack.exe and External/wvunpack.exe
      • -
      • RKAU - copy flac_mac.exe on top of External/rkau.exe
      • -
      +
        +
      • Shorten - copy flac_mac.exe on top of External/shortn32.exe
      • +
      • WavPack - copy flac_mac.exe on top of both External/wavpack.exe and External/wvunpack.exe
      • +
      • RKAU - copy flac_mac.exe on top of External/rkau.exe
      • +
      If you choose WavPack you will also be able to use the WavPack Configuration menu to add flac options. -
    • -
    • Now you can encode FLAC files as if you were using the replaced encoder. The renamed flac_mac.exe utility will call flac.exe and afterwards, flac_ren.exe will rename the resulting file to have the .flac extension.
    • -
    -

    -

    - Other front-ends may be wedged in the same way; if you have one in mind, post it to the flac-dev mailing list. -

    -
    -
-
-
- + +
  • Now you can encode FLAC files as if you were using the replaced encoder. The renamed flac_mac.exe utility will call flac.exe and afterwards, flac_ren.exe will rename the resulting file to have the .flac extension.
  • + + Other front-ends may be wedged in the same way; if you have one in mind, post it to the flac-dev mailing list. + + + -
    -

     Copyright (c) 2000,2001,2002,2003,2004,2005 Josh Coalson

    + - - + + diff --git a/doc/html/download.html b/doc/html/download.html index 3baf2fc..2075e45 100644 --- a/doc/html/download.html +++ b/doc/html/download.html @@ -1,261 +1,213 @@ - + - - - FLAC - download - - - - - - - - -
    FLAC Logo
    - -
    - -
    - - - - - -
    - - - - - - - - - - - - - - - - -
      home  |  faq  |  news  |  download  |  features  |  goals  |  format  |  id  |  comparison  |  documentation  |  changelog  |  links  |  developers  
    -
    - -
    - - - - - -
    - - - - - -
      english  |  russian  
    -
    - -
    - -
    - -
    - - - - -
    -
    - - -
    - download -
    -
    - - -
    -

    - All source code and binaries are freely available and distributed under Open Source licenses. The codec libraries are distributed under Xiph.org's BSD license, and the plugins and command-line utilites (flac and metaflac) are distributed under the GPL. If you would like to redistribute parts or all of FLAC under different terms, contact Josh Coalson. (For more information, see the license page.) -

    -

    -

    -

    -
    -
    -
    -
    - - - - - -
    -
    - - -
    - extras -
    -
    - - -
    -

    - NOTE: these extras are not part of the FLAC project. They are all freely available but distributed under their authors' own terms. -

    -

    - NOTE: don't forget to check out the links page for a list of other useful open-source software supporting FLAC. -

    -

    - GUI encoding/decoding front-ends: -

    -
      -
    • - Windows -
        -
      • dBpowerAMP, a swiss army knife that can convert and play many formats, including FLAC.
      • -
      • Flacattack: an all-in-one tool that works with ExactAudioCopy to encode a CD image to FLAC, embed the cuesheet, add ReplayGain, create lossy files, etc. all in a customizable directory structure.
      • -
      • FLACdrop, an Oggdrop-like frontend for Windows, or the even more versatile oggdropXPd.
      • -
      • FLAC frontend, a Windows GUI, or the even more versatile Multi frontend.
      • -
      • Frontah, a new frontend to many codecs, including FLAC. Still in beta but has good reviews.
      • -
      • MAREO is a "virtual" encoder that can be used with ExactAudioCopy to encode to multiple formats (including FLAC) at once while ripping.
      • -
      • Monkey's Audio can be fooled into supporting FLAC as an external encoder; here's how.
      • -
      • UniversalFront, an encoding/decoding/transcoding GUI that is also scriptable.
      • -
      -
    • -
    • - Unix -
        -
      • Grip is a great ripping and encoding front end and can be easily configured to use flac. See this message on how to configure Grip for FLAC.
      • -
      • xmcd is a CD ripper with CDDB support as well as a player.
      • -
      -
    • -
    • - Mac OS X -
        -
      • MacFLAC, a FLAC distribution which also includes nice graphical front-end.
      • -
      • RipBeak is a nice GUI encoding frond-end that supports FLAC as well as Vorbis and MP3.
      • -
      • xACT, another FLAC distribution with a graphical front-end to FLAC and other formats.
      • -
      -
    • -
    -

    - -

    - CD burning: -

    -

      -
    • - Windows -
        -
      • burnatonce, a CD burning GUI that wraps around cdrdao and mkisofs.
      • -
      • Burrrn supports burning CDs from cuesheets directly from many formats, including FLAC, and supports most tag formats.
      • -
      • CD Wave, a CD authoring tool that can read and write FLAC.
      • -
      -
    • -
    • - Unix -
        -
      • Arson, a front-end to various CD burning and ripping tools.
      • -
      -
    • -
    -

    - -

    - Third-party plugins: -

    -

    -

    - -
    -
    -
    -
    - - -
    - -

     Copyright (c) 2000,2001,2002,2003,2004,2005 Josh Coalson

    - - - + + + + + + + + + FLAC - download + + + + +
    + +
    + +
    + + + +
    + +
    +  english  | +  russian  +
    + +
    + +
    + +
    +
    + download +
    +
    +
    + All source code and binaries are freely available and distributed under Open Source licenses. The codec libraries are distributed under Xiph.org's BSD license, and the plugins and command-line utilites (flac and metaflac) are distributed under the GPL. If you would like to redistribute parts or all of FLAC under different terms, contact Josh Coalson. (For more information, see the license page.) + +
    + +
    + +
    + + +
    +
    + extras +
    +
    +
    + NOTE: these extras are not part of the FLAC project. They are all freely available but distributed under their authors' own terms. +

    + NOTE: don't forget to check out the
    links page for a list of other useful open-source software supporting FLAC. +

    + GUI encoding/decoding front-ends: +
      +
    • + Windows +
        +
      • dBpowerAMP, a swiss army knife that can convert and play many formats, including FLAC.
      • +
      • Flacattack: an all-in-one tool that works with ExactAudioCopy to encode a CD image to FLAC, embed the cuesheet, add ReplayGain, create lossy files, etc. all in a customizable directory structure.
      • +
      • FLACdrop, an Oggdrop-like frontend for Windows, or the even more versatile oggdropXPd.
      • +
      • FLAC frontend, a Windows GUI, or the even more versatile Multi frontend.
      • +
      • Frontah, a new frontend to many codecs, including FLAC. Still in beta but has good reviews.
      • +
      • MAREO is a "virtual" encoder that can be used with ExactAudioCopy to encode to multiple formats (including FLAC) at once while ripping.
      • +
      • Monkey's Audio can be fooled into supporting FLAC as an external encoder; here's how.
      • +
      • UniversalFront, an encoding/decoding/transcoding GUI that is also scriptable.
      • +
      +
    • +
    • + Unix +
        +
      • Grip is a great ripping and encoding front end and can be easily configured to use flac. See this message on how to configure Grip for FLAC.
      • +
      • xmcd is a CD ripper with CDDB support as well as a player.
      • +
      +
    • +
    • + Mac OS X +
        +
      • MacFLAC, a FLAC distribution which also includes nice graphical front-end.
      • +
      • RipBeak is a nice GUI encoding frond-end that supports FLAC as well as Vorbis and MP3.
      • +
      • xACT, another FLAC distribution with a graphical front-end to FLAC and other formats.
      • +
      +
    • +
    + CD burning: +
      +
    • + Windows +
        +
      • burnatonce, a CD burning GUI that wraps around cdrdao and mkisofs.
      • +
      • Burrrn supports burning CDs from cuesheets directly from many formats, including FLAC, and supports most tag formats.
      • +
      • CD Wave, a CD authoring tool that can read and write FLAC.
      • +
      +
    • +
    • + Unix +
        +
      • Arson, a front-end to various CD burning and ripping tools.
      • +
      +
    • +
    + Third-party plugins: + +
    + +
    + + + + + + diff --git a/doc/html/faq.html b/doc/html/faq.html index ddec412..3c8f462 100644 --- a/doc/html/faq.html +++ b/doc/html/faq.html @@ -1,426 +1,317 @@ - + - - - FLAC - faq - + + + + + + + + + FLAC - faq + - + - - - - -
    FLAC Logo
    + -
    +
    -
    +
    - - - - -
    - - - - - - - - - - - - - - - - -
      home  |  faq  |  news  |  download  |  features  |  goals  |  format  |  id  |  comparison  |  documentation  |  changelog  |  links  |  developers  
    -
    + -
    +
    - - - - -
    - - - - - -
      english  |  russian  
    -
    +
    +  english  | +  russian  +
    -
    +
    -
    +
    -
    +
    +
    + faq +
    +
    +
    + General + + Tools + + API + + Project + +

    + General +

    - - -
    -
    - - -
    - faq -
    -
    - - -
    - -

    - General -
    -

    -

    - -

    - Tools -
    -

    -

    - -

    - API -
    -

    -

    + What licensing applies to the FLAC format and software?
    +
    + See the license page.
    +
    + What kinds of tags does FLAC support?
    +
    + FLAC has it's own native tagging system which is identical to that of Vorbis. They are called alternately "FLAC tags" and "Vorbis comments". It is the only tagging system required and guaranteed to be supported by FLAC implementations.
    +
    + Out of convenience, the reference decoder knows how to skip ID3 tags so that they don't interfere with decoding. But you should not expect any tags beside FLAC tags to be supported in applications; some implementations may not even be able to decode a FLAC file with ID3 tags.
    +
    + What software support FLAC?
    +
    + This list is so large now it is difficult to maintain and keep up-to-date. For a partial list of open-source software that supports FLAC, see the software section of the links page. For a partial list of the most popular software used to encode, decode, play, tag, and rip FLAC files, see the download page.
    +
    + What hardware products support FLAC?
    +
    + See the hardware section of the links page.
    +
    + What is the difference between (native) FLAC and Ogg FLAC?
    +
    + You can think of an audio codec as having two layers. The inside layer is the raw compressed data, and the outside layer is the "container" or "transport layer" that splits and arranges the compressed data in pieces so it can be seeked through, edited, etc.
    +
    + "Native" FLAC is the compressed FLAC data stored in a very minimalist container, designed to be very efficient at storing single audio streams.
    +
    + Ogg FLAC is the compressed FLAC data stored in an Ogg container. Ogg is a much more powerful transport layer that enables mixing several kinds of different streams (audio, data, metadata, etc). The overhead is slightly higher than with native FLAC.
    +
    + In either case, the compressed FLAC data is the same and one can be converted to the other without re-encoding.
    +
    + Which should I use, (native) FLAC or Ogg FLAC?
    +
    + The short answer right now is probably "native FLAC". If all you are doing is compressing audio to be played back later, native FLAC will do everything you need, is more widely supported, and will yield smaller files. If you plan to edit the compressed audio, or want to multiplex the audio with video later in an Ogg container, Ogg FLAC is a better choice.
    +
    + Why aren't PERFORMER/TITLE/etc tags stored in the FLAC CUESHEET block?
    +
    + This has turned out to be a pretty polarizing issue and requires a long explanation.
    +
    + The original purpose of a cue sheet in CD authoring software was to lay out the disc, essentially specifying how the audio will be organized on the disc; some of the information ends up as the CD table of contents: the track numbers and locations, and the index points. Later CD-TEXT was added. But CD-TEXT is a very complex spec, and actually goes in the CD subcode data. It is internationalized, not through Unicode, but with several different character sets, some of them multi-byte. It even allows for graphics. In cue sheets, the TITLE/PERFORMER/etc tags are just a limited shorthand for authoring CD-TEXT, but when you rip, you almost never parse the CD-TEXT, you get it from another database, and it doesn't really belong in the FLAC CUESHEET block.
    +
    + For FLAC the intention is that applications can calculate the CDDB or CDindex ID from the CUESHEET block and look it up in an online or local database just like CD rippers and players do. But if you really want it in the file itself, the track metadata should be stored separate from the CUESHEET, and already can be because of FLAC's metadata system. There just isn't a method specified yet because as soon as it is, people will say that it's not flexible enough. From experience (and you can see this come up time and time again in many lists), anyone who is going to the trouble of keeping a lossless collection in the first place will already be picky about metadata, and it is hard to come up with a standard that will please even the majority. That is the big problem with metadata and is why Xiph has deferred on it, waiting for someone to come up with a good metadata spec that can me multiplexed together with data.
    +
    + Some players (for example Foobar2000) allow you to store the CDDB data as FLAC tags and can parse that.
    +
    + Why doesn't FLAC store all WAVE metadata?
    +
    + FLAC is a general-purpose audio format, not just a compressed WAVE file format. There's a subtle difference. WAVE is a complicated standard; many kinds of data besides audio data can be put in it. FLAC's purpose is not to reproduce a WAVE file, including all the non-audio data that is in it, it is to losslessly compress the audio.
    +
    + People have asked for that in FLAC, but if it were added, then what about similar formats like AIFF? flac can extract and compress audio data in an AIFF file also. AIFF is widely used on the Mac. AIFF users have asked that all AIFF metadata be stored for the same reasons. And it doesn't end there, other uncompressed formats exist.
    +
    + Also, it would add a lot of complexity to FLAC because non-audio data has to go in the metadata section which is at the beginning of the FLAC file. But in WAVE and AIFF it can go before or after the audio, so the encoding would have to make multiple passes and also store the chunk hierarchy to be able to reproduce it.
    +
    + Why do the encoder settings have a big effect on the encoding time but not the decoding time?
    +
    + It's hard to explain without going into the codec design, but to oversimplify, the encoder is looking for functions that approximate the signal. Higher settings make the encoder search more to find better approximations. The functions are themselves encoded in the FLAC file. Decoding only requires computing the one chosen function, and the complexity of the function is very stable. This is by design, to make decoding easier, and is one of the things that makes FLAC easy to implement in hardware.
    +
    + Why use FLAC instead of other codecs that compress more?
    +
    + For most users, a small difference in filesize is usually far outweighed by FLAC's advantages: open patent free codec, portable open source (BSD) reference implementation, documented API, multi-platform support, hardware support, multi-channel support, etc. Improving FLAC to get a little more compression is not worth making it more complex and more compute-intensive to decode, and hence, less likely to be supported in hardware.
    +
    + Why can't you make FLAC encode faster?
    +
    + FLAC already encodes pretty fast. It is faster than real-time even on weak systems and is not much slower than even the fastest codecs. And it is faster than the CD ripping process with which it is usually paired, meaning even if it went faster, it would not speed up the ripping-encoding process anyway.
    +
    + Part of the reason is that FLAC is asymmetric (see also). That means that it is optimized for decoding speed at the expense of encoding speed, because it makes it easier to decode on low-powered hardware, and because you only encode once but you decode many times.
    +
    + How can I be sure FLAC is lossless?
    + How much testing has been done on FLAC?
    +
    + First, FLAC is probably the only lossless compressor that has a published and comprehensive test suite. With the others you rely on the author's personal testing or the longevity of the program. But with FLAC you can download the whole test suite and run it on any version you like, or alter it to test your own data. The test suite checks every function in the API, as well as running many thousands of streams through an encode-decode-verify process, to test every nook and cranny of the system. Even on a fast machine the full test suite takes hours. The full test suite must pass on several platforms before a release is made.
    +
    + Second, you can always use the -V option with flac (also supported by most GUI frontends) to verify while encoding. With this option, a decoder is run in parallel to the encoder and its output is compared against the original input. If a difference is found flac will stop with an error.
    +
    + Finally, FLAC is used by many people and has been judged stable enough by many software and hardware makers to be incorporated into their products.
    +
    + What is the lowest bitrate (or highest compression) achievable with FLAC?
    +
    + With FLAC you do not specify a bitrate like with some lossy codecs. It's more like specifying a quality with Vorbis or MPC, except with FLAC the quality is always "lossless" and the resulting bitrate is roughly proportional to the amount of information in the original signal. You cannot control the bitrate much and the result can be from around 100% of the input rate (if you are encoding noise), down to almost 0 (encoding silence).
    +
    + How many channels does FLAC support?
    +
    + FLAC supports from 1 to 8 channels per stream. Channels are only grouped in FLAC to take advantage of interchannel correlation and to define common channel assignments (like stereo L/R, 5.1 surround, et cetera). When encoding a large number of independent channels it is expected that they are coded separately and if required, multiplexed together in a suitable container like Ogg or Matroska.
    +
    + What kind of audio samples does FLAC support?
    +
    + FLAC supports linear PCM samples with a resolution between 4 and 32 bits per sample. FLAC does not support floating point samples. In some cases it is possible to losslessly transform samples from an incompatible range to a FLAC-compatible range before encoding.
    +
    + FLAC supports linear sample rates from 1Hz - 655350Hz in 1Hz increments. -

    - Project -
    -

    -

    +

    + Tools +

    -

    - General -

    -

    - What licensing applies to the FLAC format and software? -

    -

    - See the license page. -

    -

    - What kinds of tags does FLAC support? -

    -

    - FLAC has it's own native tagging system which is identical to that of Vorbis. They are called alternately "FLAC tags" and "Vorbis comments". It is the only tagging system required and guaranteed to be supported by FLAC implementations. -

    -

    - Out of convenience, the reference decoder knows how to skip ID3 tags so that they don't interfere with decoding. But you should not expect any tags beside FLAC tags to be supported in applications; some implementations may not even be able to decode a FLAC file with ID3 tags. -

    -

    - What software support FLAC? -

    -

    - This list is so large now it is difficult to maintain and keep up-to-date. For a partial list of open-source software that supports FLAC, see the software section of the links page. For a partial list of the most popular software used to encode, decode, play, tag, and rip FLAC files, see the download page. -

    -

    - What hardware products support FLAC? -

    -

    - See the hardware section of the links page. -

    -

    - What is the difference between (native) FLAC and Ogg FLAC? -

    -

    - You can think of an audio codec as having two layers. The inside layer is the raw compressed data, and the outside layer is the "container" or "transport layer" that splits and arranges the compressed data in pieces so it can be seeked through, edited, etc. -

    -

    - "Native" FLAC is the compressed FLAC data stored in a very minimalist container, designed to be very efficient at storing single audio streams. -

    -

    - Ogg FLAC is the compressed FLAC data stored in an Ogg container. Ogg is a much more powerful transport layer that enables mixing several kinds of different streams (audio, data, metadata, etc). The overhead is slightly higher than with native FLAC. -

    -

    - In either case, the compressed FLAC data is the same and one can be converted to the other without re-encoding. -

    -

    - Which should I use, (native) FLAC or Ogg FLAC? -

    -

    - The short answer right now is probably "native FLAC". If all you are doing is compressing audio to be played back later, native FLAC will do everything you need, is more widely supported, and will yield smaller files. If you plan to edit the compressed audio, or want to multiplex the audio with video later in an Ogg container, Ogg FLAC is a better choice. -

    -

    - Why aren't PERFORMER/TITLE/etc tags stored in the FLAC CUESHEET block? -

    -

    - This has turned out to be a pretty polarizing issue and requires a long explanation. -

    -

    - The original purpose of a cue sheet in CD authoring software was to lay out the disc, essentially specifying how the audio will be organized on the disc; some of the information ends up as the CD table of contents: the track numbers and locations, and the index points. Later CD-TEXT was added. But CD-TEXT is a very complex spec, and actually goes in the CD subcode data. It is internationalized, not through Unicode, but with several different character sets, some of them multi-byte. It even allows for graphics. In cue sheets, the TITLE/PERFORMER/etc tags are just a limited shorthand for authoring CD-TEXT, but when you rip, you almost never parse the CD-TEXT, you get it from another database, and it doesn't really belong in the FLAC CUESHEET block. -

    -

    - For FLAC the intention is that applications can calculate the CDDB or CDindex ID from the CUESHEET block and look it up in an online or local database just like CD rippers and players do. But if you really want it in the file itself, the track metadata should be stored separate from the CUESHEET, and already can be because of FLAC's metadata system. There just isn't a method specified yet because as soon as it is, people will say that it's not flexible enough. From experience (and you can see this come up time and time again in many lists), anyone who is going to the trouble of keeping a lossless collection in the first place will already be picky about metadata, and it is hard to come up with a standard that will please even the majority. That is the big problem with metadata and is why Xiph has deferred on it, waiting for someone to come up with a good metadata spec that can me multiplexed together with data. -

    -

    - Some players (for example Foobar2000) allow you to store the CDDB data as FLAC tags and can parse that. -

    -

    - Why doesn't FLAC store all WAVE metadata? -

    -

    - FLAC is a general-purpose audio format, not just a compressed WAVE file format. There's a subtle difference. WAVE is a complicated standard; many kinds of data besides audio data can be put in it. FLAC's purpose is not to reproduce a WAVE file, including all the non-audio data that is in it, it is to losslessly compress the audio. -

    -

    - People have asked for that in FLAC, but if it were added, then what about similar formats like AIFF? flac can extract and compress audio data in an AIFF file also. AIFF is widely used on the Mac. AIFF users have asked that all AIFF metadata be stored for the same reasons. And it doesn't end there, other uncompressed formats exist. -

    -

    - Also, it would add a lot of complexity to FLAC because non-audio data has to go in the metadata section which is at the beginning of the FLAC file. But in WAVE and AIFF it can go before or after the audio, so the encoding would have to make multiple passes and also store the chunk hierarchy to be able to reproduce it. -

    -

    - Why do the encoder settings have a big effect on the encoding time but not the decoding time? -

    -

    - It's hard to explain without going into the codec design, but to oversimplify, the encoder is looking for functions that approximate the signal. Higher settings make the encoder search more to find better approximations. The functions are themselves encoded in the FLAC file. Decoding only requires computing the one chosen function, and the complexity of the function is very stable. This is by design, to make decoding easier, and is one of the things that makes FLAC easy to implement in hardware. -

    -

    - Why use FLAC instead of other codecs that compress more? -

    -

    - For most users, a small difference in filesize is usually far outweighed by FLAC's advantages: open patent free codec, portable open source (BSD) reference implementation, documented API, multi-platform support, hardware support, multi-channel support, etc. Improving FLAC to get a little more compression is not worth making it more complex and more compute-intensive to decode, and hence, less likely to be supported in hardware. -

    -

    - Why can't you make FLAC encode faster? -

    -

    - FLAC already encodes pretty fast. It is faster than real-time even on weak systems and is not much slower than even the fastest codecs. And it is faster than the CD ripping process with which it is usually paired, meaning even if it went faster, it would not speed up the ripping-encoding process anyway. -

    -

    - Part of the reason is that FLAC is asymmetric (see also). That means that it is optimized for decoding speed at the expense of encoding speed, because it makes it easier to decode on low-powered hardware, and because you only encode once but you decode many times. -

    -

    - How can I be sure FLAC is lossless? -
    - How much testing has been done on FLAC? -

    -

    - First, FLAC is probably the only lossless compressor that has a published and comprehensive test suite. With the others you rely on the author's personal testing or the longevity of the program. But with FLAC you can download the whole test suite and run it on any version you like, or alter it to test your own data. The test suite checks every function in the API, as well as running many thousands of streams through an encode-decode-verify process, to test every nook and cranny of the system. Even on a fast machine the full test suite takes hours. The full test suite must pass on several platforms before a release is made. -

    -

    - Second, you can always use the -V option with flac (also supported by most GUI frontends) to verify while encoding. With this option, a decoder is run in parallel to the encoder and its output is compared against the original input. If a difference is found flac will stop with an error. -

    -

    - Finally, FLAC is used by many people and has been judged stable enough by many software and hardware makers to be incorporated into their products. -

    -

    - What is the lowest bitrate (or highest compression) achievable with FLAC? -

    -

    - With FLAC you do not specify a bitrate like with some lossy codecs. It's more like specifying a quality with Vorbis or MPC, except with FLAC the quality is always "lossless" and the resulting bitrate is roughly proportional to the amount of information in the original signal. You cannot control the bitrate much and the result can be from around 100% of the input rate (if you are encoding noise), down to almost 0 (encoding silence). -

    -

    - How many channels does FLAC support? -

    -

    - FLAC supports from 1 to 8 channels per stream. Channels are only grouped in FLAC to take advantage of interchannel correlation and to define common channel assignments (like stereo L/R, 5.1 surround, et cetera). When encoding a large number of independent channels it is expected that they are coded separately and if required, multiplexed together in a suitable container like Ogg or Matroska. -

    -

    - What kind of audio samples does FLAC support? -

    -

    - FLAC supports linear PCM samples with a resolution between 4 and 32 bits per sample. FLAC does not support floating point samples. In some cases it is possible to losslessly transform samples from an incompatible range to a FLAC-compatible range before encoding. -

    -

    - FLAC supports linear sample rates from 1Hz - 655350Hz in 1Hz increments. -

    + How do I set up EAC to rip directly to FLAC?
    +
    + See Case's excellent EAC configuration page. Or use MAREO to rip to multiple formats at once.
    +
    + How do I encode a file that starts with a dash?
    +
    + When using flac to encode on the command-line, a file that starts with a dash will be treated as an option, but there is a simple workaround. Use -- to signal the end of options and the beginning of filenames, like so:
    +
    + flac -V -- -01-name.wav
    +
    + Why does it take so long to edit some FLAC files with metaflac?
    +
    + Since metadata is stored at the beginning of a FLAC file, changing the length of it can sometimes cause the whole file to be rewritten. You can avoid this by adding padding with flac when you encode, or with metaflac after encoding. By default, flac adds 4k of padding; you can change this amount if you need more or less.
    +
    + I compressed a file to FLAC with verify on, and flac said "Verify FAILED!" Why?
    +
    + Every single report of this has turned out to be caused by a hardware problem, usually aggressive over-clocking or bad RAM. The best indicator of this is that the verify failure does not always happen in the same place for the same file. First, read the comments in this bug report. Then, if you have a file that fails verification in the same place every time, submit a new bug, uploading a sample according to the instructions found at the bottom of this bug report.
    +
    + I compressed a WAVE file to FLAC, then decompressed to WAVE, and the two weren't identical. Why?
    + I compressed a WAVE file to FLAC and it said "warning: skipping unknown sub-chunk LIST". Why?
    +
    + WAVE is a complicated standard; many kinds of data besides audio data can be put in it. Most likely what has happened is that the application that created the original WAVE file also added some extra information for it's own use, which FLAC does not store or recreate (see also). But the audio data in the two WAVE files will be identical. There are other tools to compare just the audio content of two WAVE files; ExactAudioCopy has such a feature.
    +
    + For the more technically inclined, FLAC only stores what is in the 'fmt ' and 'data' sub-chunks of a WAVE file.
    +
    + (see also)
    +
    + I decoded a FLAC file and the WAVE is 2 bytes shorter than the original. Why?
    +
    + The difference is probably that between an 18-byte 'fmt ' subchunk in the original WAVE vs. a 16-byte one in the decoded WAVE. With WAVE there is more than one way to write identical formatting information, but FLAC always writes the most common form. (see also)
    +
    + Why did I get "ERROR initializing encoder, state = 14:FLAC__STREAM_ENCODER_NOT_STREAMABLE"?
    +
    + You specified encoding options that are outside the Streamable subset. If that is what you really wanted, you must also use flac --lax. -

    - Tools -

    -

    - How do I set up EAC to rip directly to FLAC? -

    -

    - See Case's excellent EAC configuration page. Or use MAREO to rip to multiple formats at once. -

    -

    - How do I encode a file that starts with a dash? -

    -

    - When using flac to encode on the command-line, a file that starts with a dash will be treated as an option, but there is a simple workaround. Use -- to signal the end of options and the beginning of filenames, like so: -

    -

    - flac -V -- -01-name.wav -

    -

    - Why does it take so long to edit some FLAC files with metaflac? -

    -

    - Since metadata is stored at the beginning of a FLAC file, changing the length of it can sometimes cause the whole file to be rewritten. You can avoid this by adding padding with flac when you encode, or with metaflac after encoding. By default, flac adds 4k of padding; you can change this amount if you need more or less. -

    -

    - I compressed a file to FLAC with verify on, and flac said "Verify FAILED!" Why? -

    -

    - Every single report of this has turned out to be caused by a hardware problem, usually aggressive over-clocking or bad RAM. The best indicator of this is that the verify failure does not always happen in the same place for the same file. First, read the comments in this bug report. Then, if you have a file that fails verification in the same place every time, submit a new bug, uploading a sample according to the instructions found at the bottom of this bug report. -

    -

    - I compressed a WAVE file to FLAC, then decompressed to WAVE, and the two weren't identical. Why? -
    - I compressed a WAVE file to FLAC and it said "warning: skipping unknown sub-chunk LIST". Why? -

    -

    - WAVE is a complicated standard; many kinds of data besides audio data can be put in it. Most likely what has happened is that the application that created the original WAVE file also added some extra information for it's own use, which FLAC does not store or recreate (see also). But the audio data in the two WAVE files will be identical. There are other tools to compare just the audio content of two WAVE files; ExactAudioCopy has such a feature. -

    -

    - For the more technically inclined, FLAC only stores what is in the 'fmt ' and 'data' sub-chunks of a WAVE file. -

    -

    - (see also) -

    -

    - I decoded a FLAC file and the WAVE is 2 bytes shorter than the original. Why? -

    -

    - The difference is probably that between an 18-byte 'fmt ' subchunk in the original WAVE vs. a 16-byte one in the decoded WAVE. With WAVE there is more than one way to write identical formatting information, but FLAC always writes the most common form. (see also) -

    -

    - Why did I get "ERROR initializing encoder, state = 14:FLAC__STREAM_ENCODER_NOT_STREAMABLE"? -

    -

    - You specified encoding options that are outside the Streamable subset. If that is what you really wanted, you must also use flac --lax. -

    +

    + API +

    -

    - API -

    -

    - How can I determine the encoded frame length? -

    -

    - With native FLAC, it is not possible to determine the frame length without decoding. Probably if I had it all to do again I would have constrained the possible block sizes, which would have made it more practical to put the frame length in the frame header. For an example of how to find the frame boundaries in a stream, see the source code to metaflac, in the functionality that adds seek points. -

    -

    + How can I determine the encoded frame length?
    +
    + With native FLAC, it is not possible to determine the frame length without decoding. Probably if I had it all to do again I would have constrained the possible block sizes, which would have made it more practical to put the frame length in the frame header. For an example of how to find the frame boundaries in a stream, see the source code to metaflac, in the functionality that adds seek points.
    +
    With Ogg FLAC, it can be calculated from the Ogg page header. -

    - -

    - Project -

    -

    - Where are the mailing lists, forums, discussion areas, etc.? -

    -

    - There are a few places. The main discussions happen on the official FLAC mailing lists. Eventually we will be transitioning over to the lists on Xiph.org. Also, there is a lot of discussion relating to FLAC on Hydrogen Audio. -

    -

    - How do I submit a bug report? -

    -

    - First, visit the bug tracking page and do a little searching of both open and closed bugs to see if yours is already there. If you have something truly new, submit a new bug. Make sure to monitor the bug or include your email address in the description. Include as much information as possible: the version of FLAC that you are running, the name and version of any frontend you are running, your operating system and version, your CPU type and speed, the amount of memory you have, where you downloaded FLAC from, the exact error message (if any) copied from the console, and anything else you may think will help. -

    -
    -
    -
    -
    +

    + Project +

    + Where are the mailing lists, forums, discussion areas, etc.?
    +
    + There are a few places. The main discussions happen on the official FLAC mailing lists. Eventually we will be transitioning over to the lists on Xiph.org. Also, there is a lot of discussion relating to FLAC on Hydrogen Audio.
    +
    + How do I submit a bug report?
    +
    + First, visit the bug tracking page and do a little searching of both open and closed bugs to see if yours is already there. If you have something truly new, submit a new bug. Make sure to monitor the bug or include your email address in the description. Include as much information as possible: the version of FLAC that you are running, the name and version of any frontend you are running, your operating system and version, your CPU type and speed, the amount of memory you have, where you downloaded FLAC from, the exact error message (if any) copied from the console, and anything else you may think will help. +
    + +
    -
    -

     Copyright (c) 2000,2001,2002,2003,2004,2005 Josh Coalson

    + - - + + diff --git a/doc/html/features.html b/doc/html/features.html index 0b0f7a8..3bf703a 100644 --- a/doc/html/features.html +++ b/doc/html/features.html @@ -1,159 +1,125 @@ - + - - - FLAC - features - - - - - - - - -
    FLAC Logo
    - -
    - -
    - - - - - -
    - - - - - - - - - - - - - - - - -
      home  |  faq  |  news  |  download  |  features  |  goals  |  format  |  id  |  comparison  |  documentation  |  changelog  |  links  |  developers  
    -
    - -
    - - - - - -
    - - - - - -
      english  |  russian  
    -
    - -
    - -
    - -
    - - - - -
    -
    - - -
    - features -
    -
    - - -
    -

    - FLAC stands for Free Lossless Audio Codec. Grossly oversimplified, FLAC is similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, see supported devices) just like you would an MP3 file. -

    -

    - FLAC is freely available and supported on most operating systems, including Windows, "unix" (Linux, *BSD, Solaris, OS X, IRIX), BeOS, OS/2, and Amiga. There are build systems for autotools, MSVC, Watcom C, and Project Builder. -

    -

    + + + + + + + + + FLAC - features + + + + +

    + +
    + +
    + + + +
    + +
    +  english  | +  russian  +
    + +
    + +
    + +
    +
    + features +
    +
    +
    + FLAC stands for Free Lossless Audio Codec. Grossly oversimplified, FLAC is similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. This is similar to how Zip works, except with FLAC you will get much better compression because it is designed specifically for audio, and you can play back compressed FLAC files in your favorite player (or your car or home stereo, see supported devices) just like you would an MP3 file.
    +
    + FLAC is freely available and supported on most operating systems, including Windows, "unix" (Linux, *BSD, Solaris, OS X, IRIX), BeOS, OS/2, and Amiga. There are build systems for autotools, MSVC, Watcom C, and Project Builder.
    +
    The FLAC project consists of: -

    -

    -

      -
    • the stream format
    • -
    • reference encoders and decoders in library form
    • -
    • flac, a command-line program to encode and decode FLAC files
    • -
    • metaflac, a command-line metadata editor for FLAC files
    • -
    • input plugins for various music players
    • -
    -

    -

    - When we say that FLAC is "Free" it means more than just that it is available at no cost. It means that the specification of the format is fully open to the public to be used for any purpose (the FLAC project reserves the right to set the FLAC specification and certify compliance), and that neither the FLAC format nor any of the implemented encoding/decoding methods are covered by any known patent. It also means that all the source code is available under open-source licenses. It is the first truly open and free lossless audio format. (For more information, see the license page.) -

    -

    +

      +
    • the stream format
    • +
    • reference encoders and decoders in library form
    • +
    • flac, a command-line program to encode and decode FLAC files
    • +
    • metaflac, a command-line metadata editor for FLAC files
    • +
    • input plugins for various music players
    • +
    + When we say that FLAC is "Free" it means more than just that it is available at no cost. It means that the specification of the format is fully open to the public to be used for any purpose (the FLAC project reserves the right to set the FLAC specification and certify compliance), and that neither the FLAC format nor any of the implemented encoding/decoding methods are covered by any known patent. It also means that all the source code is available under open-source licenses. It is the first truly open and free lossless audio format. (For more information, see the license page.)
    +
    Notable features of FLAC: -

    -
      -

    • - Lossless: The encoding of audio (PCM) data incurs no loss of information, and the decoded audio is bit-for-bit identical to what went into the encoder. Each frame contains a 16-bit CRC of the frame data for detecting transmission errors. The integrity of the audio data is further insured by storing an MD5 signature of the original unencoded audio data in the file header, which can be compared against later during decoding or testing. -
    • -

    • - Fast: FLAC is asymmetric in favor of decode speed. Decoding requires only integer arithmetic, and is much less compute-intensive than for most perceptual codecs. Real-time decode performance is easily achievable on even modest hardware. -
    • -

    • - Hardware support: Because of FLAC's free reference implementation and low decoding complexity, FLAC is currently the only lossless codec that has any kind of hardware support. -
    • -

    • - Streamable: Each FLAC frame contains enough data to decode that frame. FLAC does not even rely on previous or following frames. FLAC uses sync codes and CRCs (similar to MPEG and other formats), which, along with framing, allow decoders to pick up in the middle of a stream with a minimum of delay. -
    • -

    • - Seekable: FLAC supports fast sample-accurate seeking. Not only is this useful for playback, it makes FLAC files suitable for use in editing applications. -
    • -

    • - Flexible metadata: New metadata blocks can be defined and implemented in future versions of FLAC without breaking older streams or decoders. Currently there are metadata types for tags, cue sheets, and seek tables. Applications can write their own APPLICATION metadata once they register an ID -
    • -

    • - Suitable for archiving: FLAC is an open format, and there is no generation loss if you need to convert your data to another format in the future. In addition to the frame CRCs and MD5 signature, flac has a verify option that decodes the encoded stream in parallel with the encoding process and compares the result to the original, aborting with an error if there is a mismatch. -
    • -

    • - Convenient CD archiving: FLAC has a "cue sheet" metadata block for storing a CD table of contents and all track and index points. For instance, you can rip a CD to a single file, then import the CD's extracted cue sheet while encoding to yield a single file representation of the entire CD. If your original CD is damaged, the cue sheet can be exported later in order to burn an exact copy. -
    • -

    • - Error resistant: Because of FLAC's framing, stream errors limit the damage to the frame in which the error occurred, typically a small fraction of a second worth of data. Contrast this with some other lossless codecs, in which a single error destroys the remainder of the stream. -
    • -
    -

    - What FLAC is not: -

    -
      -

    • - Lossy. FLAC is intended for lossless compression only, as there are many good lossy formats already, such as Vorbis, MPC, and MP3 (see LAME for an excellent open-source implementation). -
    • -

    • - SDMI compliant, et cetera. There is no intention to support any methods of copy protection, which are, for all practical purposes, a complete waste of bits. (Another way to look at it is that since copy protection is futile, it really carries no information, so you might say FLAC already losslessly compresses all possible copy protection information down to zero bits!) Of course, we can't stop what some misguided person does with proprietary metadata blocks, but then again, non-proprietary decoders will skip them anyway. -
    • -
    -
    -
    -
    -
    - - -
    - -

     Copyright (c) 2000,2001,2002,2003,2004,2005 Josh Coalson

    - - - + + What FLAC is not: + + + + + + + + + + diff --git a/doc/html/flac.css b/doc/html/flac.css new file mode 100644 index 0000000..cce84bc --- /dev/null +++ b/doc/html/flac.css @@ -0,0 +1,197 @@ +/* + * Copyright (c) 2005 Josh Coalson + * Permission is granted to copy, distribute and/or modify this document + * under the terms of the GNU Free Documentation License, Version 1.1 + * or any later version published by the Free Software Foundation; + * with no invariant sections. + * A copy of the license can be found at http://www.gnu.org/copyleft/fdl.html + */ + +body +{ + background-color: #99CC99; + color: black; + margin: 0px; + padding: 0px; +} + +div +{ + background-color: #99CC99; + margin: 0px; + padding: 0px; +} + +div.logo +{ + background-color: black; + padding: 1px; + text-align: center; +} + +div.navbar +{ + background-color: #D3D4C5; + padding: 3px; + text-align: center; +} + +div.langbar +{ + background-color: #EEEED4; + padding: 3px; + text-align: center; +} + +div.above_nav +{ + height: 25px; +} + +div.below_nav +{ + height: 25px; +} + +div.body_with_sidebar +{ +/* text-align: left; */ +} + +div.box +{ + text-align: left; + margin: 0px 8px 0px 8px; + background-color: #EEEED4; +} + +div.box_title +{ + border-width: 1px 0px 0px 0px; + border-style: solid; + border-color: black; + background-color: #D3D4C5; + padding: 3px; + font-family: lucida, verdana, helvetica, arial, sans-serif; + font-weight: bold; + font-size: 150%; +} + +div.box_header +{ + border-width: 1px 0px 0px 0px; + border-style: solid; + border-color: black; + background-color: #EEEED4; + padding: 3px; +} + +div.box_footer +{ + border-width: 0px 0px 1px 0px; + border-style: solid; + border-color: black; + background-color: #EEEED4; + padding: 3px; +} + +div.box_body +{ + background-color: #EEEED4; + padding: 0px 3px 0px 3px; + font-family: lucida, verdana, helvetica, arial, sans-serif; + font-weight: normal; + font-size: 100%; +} + +div.smallbox +{ + text-align: left; + margin: 0px 8px 0px 0px; + background-color: #EEEED4; +} + +div.smallbox_title +{ + text-align: center; + border-width: 1px 0px 0px 0px; + border-style: solid; + border-color: black; + background-color: #D3D4C5; + padding: 3px; + font-family: lucida, verdana, helvetica, arial, sans-serif; + font-weight: bold; + font-size: 100%; +} + +div.smallbox_header +{ + border-width: 1px 0px 0px 0px; + border-style: solid; + border-color: black; + background-color: #EEEED4; + padding: 3px; +} + +div.smallbox_footer +{ + border-width: 0px 0px 1px 0px; + border-style: solid; + border-color: black; + background-color: #EEEED4; + padding: 3px; +} + +div.smallbox_body +{ + background-color: #EEEED4; + padding: 0px 3px 0px 3px; + font-family: lucida, verdana, helvetica, arial, sans-serif; + font-weight: normal; + font-size: 80%; +} + +div.copyright +{ + text-align: left; + margin: 10px; +} + +div.separator +{ + background-color: black; + height: 1px; +} + +div.separator2 +{ + background-color: black; + height: 2px; +} + +span.commandname +{ + font-family: monospace; + font-weight: bold; +} + +span.command +{ + font-family: monospace; + font-weight: bold; +} + +span.argument +{ + font-family: monospace; +} + +span.code +{ + font-family: monospace; +} + +a:link {color:#336699; background-color:transparent} +a:visited {color:#336699; background-color:transparent} +a:active {color:#336699; background-color:transparent} +a:hover {color:#336699; background-color:transparent} diff --git a/doc/html/format.html b/doc/html/format.html index 311cb8c..6f0b97a 100644 --- a/doc/html/format.html +++ b/doc/html/format.html @@ -1,1605 +1,1590 @@ - + - - - FLAC - format - - - - - - - - -
    FLAC Logo
    - -
    - -
    - - - - - -
    - - - - - - - - - - - - - - - - -
      home  |  faq  |  news  |  download  |  features  |  goals  |  format  |  id  |  comparison  |  documentation  |  changelog  |  links  |  developers  
    -
    - -
    - - - - - -
    - - - - - -
      english  |  russian  
    -
    - -
    - -
    - -
    - - - -
    -
    - - -
    - format -
    -
    - - -
    -

    - This is a detailed description of the FLAC format. There is also a companion document that describes FLAC-to-Ogg mapping. -

    -

    - Table of Contents -

    -

    -

    -

    -

    - Acknowledgments -

    -

    + + + + + + + + + FLAC - format + + + + +

    + +
    + +
    + + + +
    + +
    +  english  | +  russian  +
    + +
    + +
    + +
    +
    + format +
    +
    +
    + This is a detailed description of the FLAC format. There is also a companion document that describes FLAC-to-Ogg mapping.
    +
    + Table of Contents + + Acknowledgments +

    FLAC owes much to the many people who have advanced the audio compression field so freely. For instance: -

    -

    -

      -
    • - A. J. Robinson for his work on Shorten; his paper is a good starting point on some of the basic methods used by FLAC. FLAC trivially extends and improves the fixed predictors, LPC coefficient quantization, and Rice coding used in Shorten. -
    • -
    • - S. W. Golomb and Robert F. Rice; their universal codes are used by FLAC's entropy coder. -
    • -
    • - N. Levinson and J. Durbin; the reference encoder uses an algorithm developed and refined by them for determining the LPC coefficients from the autocorrelation coefficients. -
    • -
    • - And of course, Claude Shannon -
    • -
    -

    -

    - Scope -

    -

    - It is a known fact that no algorithm can losslessly compress all possible input, so most compressors restrict themselves to a useful domain and try to work as well as possible within that domain. FLAC's domain is audio data. Though it can losslessly code any input, only certain kinds of input will get smaller. FLAC exploits the fact that audio data typically has a high degree of sample-to-sample correlation. -

    -

    +

      +
    • + A. J. Robinson for his work on Shorten; his paper is a good starting point on some of the basic methods used by FLAC. FLAC trivially extends and improves the fixed predictors, LPC coefficient quantization, and Rice coding used in Shorten. +
    • +
    • + S. W. Golomb and Robert F. Rice; their universal codes are used by FLAC's entropy coder. +
    • +
    • + N. Levinson and J. Durbin; the reference encoder uses an algorithm developed and refined by them for determining the LPC coefficients from the autocorrelation coefficients. +
    • +
    • + And of course, Claude Shannon +
    • +
    + Scope +

    + It is a known fact that no algorithm can losslessly compress all possible input, so most compressors restrict themselves to a useful domain and try to work as well as possible within that domain. FLAC's domain is audio data. Though it can losslessly code any input, only certain kinds of input will get smaller. FLAC exploits the fact that audio data typically has a high degree of sample-to-sample correlation. +

    Within the audio domain, there are many possible subdomains. For example: low bitrate speech, high-bitrate multi-channel music, etc. FLAC itself does not target a specific subdomain but many of the default parameters of the reference encoder are tuned to CD-quality music data (i.e. 44.1kHz, 2 channel, 16 bits per sample). The effect of the encoding parameters on different kinds of audio data will be examined later. -

    -

    - Architecture -

    -

    +

    + Architecture +

    Similar to many audio coders, a FLAC encoder has the following stages: -

    -
      -

    • - Blocking. The input is broken up into many contiguous blocks. With FLAC, the blocks may vary in size. The optimal size of the block is usually affected by many factors, including the sample rate, spectral characteristics over time, etc. Though FLAC allows the block size to vary within a stream, the reference encoder uses a fixed block size. -
    • -

    • - Interchannel Decorrelation. In the case of stereo streams, the encoder will create mid and side signals based on the average and difference (respectively) of the left and right channels. The encoder will then pass the best form of the signal to the next stage. -
    • -

    • - Prediction. The block is passed through a prediction stage where the encoder tries to find a mathematical description (usually an approximate one) of the signal. This description is typically much smaller than the raw signal itself. Since the methods of prediction are known to both the encoder and decoder, only the parameters of the predictor need be included in the compressed stream. FLAC currently uses four different classes of predictors (described in the prediction section), but the format has reserved space for additional methods. FLAC allows the class of predictor to change from block to block, or even within the channels of a block. -
    • -
    • - Residual coding. If the predictor does not describe the signal exactly, the difference between the original signal and the predicted signal (called the error or residual signal) must be coded losslessy. If the predictor is effective, the residual signal will require fewer bits per sample than the original signal. FLAC currently uses only one method for encoding the residual (see the Residual coding section), but the format has reserved space for additional methods. FLAC allows the residual coding method to change from block to block, or even within the channels of a block. -

    • -
    -

    +

      +
    • + Blocking. The input is broken up into many contiguous blocks. With FLAC, the blocks may vary in size. The optimal size of the block is usually affected by many factors, including the sample rate, spectral characteristics over time, etc. Though FLAC allows the block size to vary within a stream, the reference encoder uses a fixed block size. +
    • +
    • + Interchannel Decorrelation. In the case of stereo streams, the encoder will create mid and side signals based on the average and difference (respectively) of the left and right channels. The encoder will then pass the best form of the signal to the next stage. +
    • +
    • + Prediction. The block is passed through a prediction stage where the encoder tries to find a mathematical description (usually an approximate one) of the signal. This description is typically much smaller than the raw signal itself. Since the methods of prediction are known to both the encoder and decoder, only the parameters of the predictor need be included in the compressed stream. FLAC currently uses four different classes of predictors (described in the prediction section), but the format has reserved space for additional methods. FLAC allows the class of predictor to change from block to block, or even within the channels of a block. +
    • +
    • + Residual coding. If the predictor does not describe the signal exactly, the difference between the original signal and the predicted signal (called the error or residual signal) must be coded losslessy. If the predictor is effective, the residual signal will require fewer bits per sample than the original signal. FLAC currently uses only one method for encoding the residual (see the Residual coding section), but the format has reserved space for additional methods. FLAC allows the residual coding method to change from block to block, or even within the channels of a block. +
    • +
    In addition, FLAC specifies a metadata system, which allows arbitrary information about the stream to be included at the beginning of the stream. -

    -

    - Definitions -

    -

    +

    + Definitions +

    Many terms like "block" and "frame" are used to mean different things in differenct encoding schemes. For example, a frame in MP3 corresponds to many samples across several channels, whereas an S/PDIF frame represents just one sample for each channel. The definitions we use for FLAC follow. Note that when we talk about blocks and subblocks we are refering to the raw unencoded audio data that is the input to the encoder, and when we talk about frames and subframes, we are refering to the FLAC-encoded data. -

    -
      -

    • - Block: One or more audio samples that span several channels. -
    • -

    • - Subblock: One or more audio samples within a channel. So a block contains one subblock for each channel, and all subblocks contain the same number of samples. -
    • -

    • - Blocksize: The number of samples in any of a block's subblocks. For example, a one second block sampled at 44.1KHz has a blocksize of 44100, regardless of the number of channels. -
    • -

    • - Frame: A frame header plus one or more subframes. -
    • -

    • - Subframe: A subframe header plus one or more encoded samples from a given channel. All subframes within a frame will contain the same number of samples. -
    • -
    -

    - Blocking -

    -

    +

      +
    • + Block: One or more audio samples that span several channels. +
    • +
    • + Subblock: One or more audio samples within a channel. So a block contains one subblock for each channel, and all subblocks contain the same number of samples. +
    • +
    • + Blocksize: The number of samples in any of a block's subblocks. For example, a one second block sampled at 44.1KHz has a blocksize of 44100, regardless of the number of channels. +
    • +
    • + Frame: A frame header plus one or more subframes. +
    • +
    • + Subframe: A subframe header plus one or more encoded samples from a given channel. All subframes within a frame will contain the same number of samples. +
    • +
    + Blocking +

    The size used for blocking the audio data has a direct effect on the compression ratio. If the block size is too small, the resulting large number of frames mean that excess bits will be wasted on frame headers. If the block size is too large, the characteristics of the signal may vary so much that the encoder will be unable to find a good predictor. In order to simplify encoder/decoder design, FLAC imposes a minimum block size of 16 samples, and a maximum block size of 65535 samples. This range covers the optimal size for all of the audio data FLAC supports. -

    -

    +

    Currently the reference encoder uses a fixed block size, optimized on the sample rate of the input. Future versions may vary the block size depending on the characteristics of the signal. -

    -

    +

    Blocked data is passed to the predictor stage one subblock (channel) at a time. Each subblock is independently coded into a subframe, and the subframes are concatenated into a frame. Because each channel is coded separately, it means that one channel of a stereo frame may be encoded as a constant subframe, and the other an LPC subframe. -

    -

    - Interchannel Decorrelation -

    -

    +

    + Interchannel Decorrelation +

    In stereo streams, in many cases there is an exploitable amount of correlation between the left and right channels. FLAC allows the frames of stereo streams to have different channel assignments, and an encoder may choose to use the best representation on a frame-by-frame basis. -

    -
      -

    • - Independent. The left and right channels are coded independently. -
    • -

    • - Mid-side. The left and right channels are transformed into mid and side channels. The mid channel is the midpoint (average) of the left and right signals, and the side is the difference signal (left minus right). -
    • -

    • - Left-side. The left channel and side channel are coded. -
    • -

    • - Right-side. The right channel and side channel are coded -
    • -
    -

    +

      +
    • + Independent. The left and right channels are coded independently. +
    • +
    • + Mid-side. The left and right channels are transformed into mid and side channels. The mid channel is the midpoint (average) of the left and right signals, and the side is the difference signal (left minus right). +
    • +
    • + Left-side. The left channel and side channel are coded. +
    • +
    • + Right-side. The right channel and side channel are coded +
    • +
    Surprisingly, the left-side and right-side forms can be the most efficient in many frames, even though the raw number of bits per sample needed for the original signal is slightly more than that needed for independent or mid-side coding. -

    -

    - Prediction -

    -

    +

    + Prediction +

    FLAC uses four methods for modeling the input signal: -

    -
      -

    • - Verbatim. This is essentially a zero-order predictor of the signal. The predicted signal is zero, meaning the residual is the signal itself, and the compression is zero. This is the baseline against which the other predictors are measured. If you feed random data to the encoder, the verbatim predictor will probably be used for every subblock. Since the raw signal is not actually passed through the residual coding stage (it is added to the stream 'verbatim'), the encoding results will not be the same as a zero-order linear predictor. -
    • -

    • - Constant. This predictor is used whenever the subblock is pure DC ("digital silence"), i.e. a constant value throughout. The signal is run-length encoded and added to the stream. -
    • -

    • - Fixed linear predictor. FLAC uses a class of computationally-efficient fixed linear predictors (for a good description, see audiopak and shorten). FLAC adds a fourth-order predictor to the zero-to-third-order predictors used by Shorten. Since the predictors are fixed, the predictor order is the only parameter that needs to be stored in the compressed stream. The error signal is then passed to the residual coder. -
    • -

    • - FIR Linear prediction. For more accurate modeling (at a cost of slower encoding), FLAC supports up to 32nd order FIR linear prediction (again, for info on linear prediction, see audiopak and shorten). The reference encoder uses the Levinson-Durbin method for calculating the LPC coefficients from the autocorrelation coefficients, and the coefficients are quantized before computing the residual. Whereas encoders such as Shorten used a fixed quantization for the entire input, FLAC allows the quantized coefficient precision to vary from subframe to subframe. The FLAC reference encoder estimates the optimal precision to use based on the block size and dynamic range of the original signal. -
    • -
    -

    - Residual Coding -

    -

    +

      +
    • + Verbatim. This is essentially a zero-order predictor of the signal. The predicted signal is zero, meaning the residual is the signal itself, and the compression is zero. This is the baseline against which the other predictors are measured. If you feed random data to the encoder, the verbatim predictor will probably be used for every subblock. Since the raw signal is not actually passed through the residual coding stage (it is added to the stream 'verbatim'), the encoding results will not be the same as a zero-order linear predictor. +
    • +
    • + Constant. This predictor is used whenever the subblock is pure DC ("digital silence"), i.e. a constant value throughout. The signal is run-length encoded and added to the stream. +
    • +
    • + Fixed linear predictor. FLAC uses a class of computationally-efficient fixed linear predictors (for a good description, see audiopak and shorten). FLAC adds a fourth-order predictor to the zero-to-third-order predictors used by Shorten. Since the predictors are fixed, the predictor order is the only parameter that needs to be stored in the compressed stream. The error signal is then passed to the residual coder. +
    • +
    • + FIR Linear prediction. For more accurate modeling (at a cost of slower encoding), FLAC supports up to 32nd order FIR linear prediction (again, for info on linear prediction, see audiopak and shorten). The reference encoder uses the Levinson-Durbin method for calculating the LPC coefficients from the autocorrelation coefficients, and the coefficients are quantized before computing the residual. Whereas encoders such as Shorten used a fixed quantization for the entire input, FLAC allows the quantized coefficient precision to vary from subframe to subframe. The FLAC reference encoder estimates the optimal precision to use based on the block size and dynamic range of the original signal. +
    • +
    + Residual Coding +

    FLAC currently defines two similar methods for the coding of the error signal from the prediction stage. The error signal is coded using Rice codes in one of two ways: 1) the encoder estimates a single rice parameter based on the variance of the residual and Rice codes the entire residual using this parameter; 2) the residual is partitioned into several equal-length regions of contiguous samples, and each region is coded with its own Rice parameter based on the region's mean. (Note that the first method is a special case of the second method with one partition, except the Rice parameter is based on the residual variance instead of the mean.) -

    -

    - The FLAC format has reserved space for other coding methods. Some possiblities for volunteers would be to explore better context-modeling of the Rice parameter, or Huffman coding. See LOCO-I and pucrunch for descriptions of several universal codes. -

    -

    - Format -

    -

    +

    + The FLAC format has reserved space for other coding methods. Some possiblities for volunteers would be to explore better context-modeling of the Rice parameter, or Huffman coding. See
    LOCO-I and pucrunch for descriptions of several universal codes. +

    + Format +

    This section specifies the FLAC bitstream format. FLAC has no format version information, but it does contain reserved space in several places. Future versions of the format may use this reserved space safely without breaking the format of older streams. Older decoders may choose to abort decoding or skip data encoded with newer methods. Apart from reserved patterns, in places the format specifies invalid patterns, meaning that the patterns may never appear in any valid bitstream, in any prior, present, or future versions of the format. These invalid patterns are usually used to make the synchronization mechanism more robust. -

    -

    +

    All numbers used in a FLAC bitstream are integers; there are no floating-point representations. All numbers are big-endian coded. All numbers are unsigned unless otherwise specified. -

    -

    +

    Before the formal description of the stream, an overview might be helpful. -

    - - -

    - The following tables constitute a formal description of the FLAC format. Numbers in angle brackets indicate how many bits are used for a given field. -

    - -
    -
    -
    - -

    - + +
    - - - - - - -
    - STREAM -
    + + + The following tables constitute a formal description of the FLAC format. Numbers in angle brackets indicate how many bits are used for a given field.
    + + + + +
    + +
    +
    + + + + + + - + - - - - + + + + - - - - + + + + - - - - + + + + - -
    + STREAM +
    <32> - + "fLaC", the FLAC stream marker in ASCII, meaning byte 0 of the stream is 0x66, followed by 0x4C 0x61 0x43 -
    - METADATA_BLOCK - +
    + METADATA_BLOCK + This is the mandatory STREAMINFO metadata block that has the basic properties of the stream -
    - METADATA_BLOCK* - +
    + METADATA_BLOCK* + Zero or more metadata blocks -
    - FRAME+ - +
    + FRAME+ + One or more audio frames -
    -
    -

    - -

    -
    - - - - - - - + +
    - METADATA_BLOCK -
    - METADATA_BLOCK_HEADER - +
    +
    +

    + +
    + +
    +
    + + + + + + + - - - - + + + + - -
    + METADATA_BLOCK +
    + METADATA_BLOCK_HEADER + A block header that specifies the type and size of the metadata block data. -
    - METADATA_BLOCK_DATA - +
    + METADATA_BLOCK_DATA +   -
    -
    -

    - -

    -
    - - - - - - + +
    - METADATA_BLOCK_HEADER -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - + - - - + + + - - - - + + + + - + - -
    + METADATA_BLOCK_HEADER +
    <1> - + Last-metadata-block flag: '1' if this block is the last metadata block before the audio blocks, '0' otherwise. -
    +
    <7> - - BLOCK_TYPE
    -
      -
    • - 0 : STREAMINFO -
    • -
    • - 1 : PADDING -
    • -
    • - 2 : APPLICATION -
    • -
    • - 3 : SEEKTABLE -
    • -
    • - 4 : VORBIS_COMMENT -
    • -
    • - 5 : CUESHEET -
    • -
    • - 6-126 : reserved -
    • -
    • - 127 : invalid, to avoid confusion with a frame sync code -
    • -
    -
    + + BLOCK_TYPE
    +
      +
    • + 0 : STREAMINFO +
    • +
    • + 1 : PADDING +
    • +
    • + 2 : APPLICATION +
    • +
    • + 3 : SEEKTABLE +
    • +
    • + 4 : VORBIS_COMMENT +
    • +
    • + 5 : CUESHEET +
    • +
    • + 6-126 : reserved +
    • +
    • + 127 : invalid, to avoid confusion with a frame sync code +
    • +
    +
    <24> - + Length (in bytes) of metadata to follow (does not include the size of the METADATA_BLOCK_HEADER) -
    -
    -

    - -

    -
    - - - - - - - + +
    - METADATA_BLOCK_DATA -
    - METADATA_BLOCK_STREAMINFO
    - || METADATA_BLOCK_PADDING
    - || METADATA_BLOCK_APPLICATION
    - || METADATA_BLOCK_SEEKTABLE
    - || METADATA_BLOCK_VORBIS_COMMENT
    - || METADATA_BLOCK_CUESHEET -
    +
    +
    +

    + +
    + +
    +
    + + + + + + + - -
    + METADATA_BLOCK_DATA +
    + METADATA_BLOCK_STREAMINFO
    + || METADATA_BLOCK_PADDING
    + || METADATA_BLOCK_APPLICATION
    + || METADATA_BLOCK_SEEKTABLE
    + || METADATA_BLOCK_VORBIS_COMMENT
    + || METADATA_BLOCK_CUESHEET +
    The block data must match the block type in the block header. -
    -
    -

    - -

    -
    - - - - - - + +
    - METADATA_BLOCK_STREAMINFO -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - - + + + + - -
    + METADATA_BLOCK_STREAMINFO +
    <16> - + The minimum block size (in samples) used in the stream. -
    +
    <16> - + The maximum block size (in samples) used in the stream. (Minimum blocksize == maximum blocksize) implies a fixed-blocksize stream. -
    +
    <24> - + The minimum frame size (in bytes) used in the stream. May be 0 to imply the value is not known. -
    +
    <24> - + The maximum frame size (in bytes) used in the stream. May be 0 to imply the value is not known. -
    +
    <20> - + Sample rate in Hz. Though 20 bits are available, the maximum sample rate is limited by the structure of frame headers to 1048570Hz. Also, a value of 0 is invalid. -
    +
    <3> - + (number of channels)-1. FLAC supports from 1 to 8 channels -
    +
    <5> - + (bits per sample)-1. FLAC supports from 4 to 32 bits per sample. Currently the reference encoder and decoders only support up to 24 bits per sample. -
    +
    <36> - + Total samples in stream. 'Samples' means inter-channel sample, i.e. one second of 44.1Khz audio will have 44100 samples regardless of the number of channels. A value of zero here means the number of total samples is unknown. -
    +
    <128> - + MD5 signature of the unencoded audio data. This allows the decoder to determine if an error exists in the audio data even when the error does not result in an invalid bitstream. -
    - - NOTES
    -
      -
    • +
    + + NOTES
    +
      +
    • FLAC specifies a minimum block size of 16 and a maximum block size of 65535, meaning the bit patterns corresponding to the numbers 0-15 in the minimum blocksize and maximum blocksize fields are invalid. -
    • -
    -
    -
    -

    - -

    -
    - - - - - - + +
    - METADATA_BLOCK_PADDING -
    + + +
    +
    +

    + +
    + +
    +
    + + + + + + - + - -
    + METADATA_BLOCK_PADDING +
    <n> - + n '0' bits (n must be a multiple of 8) -
    -
    -

    - -

    -
    - - - - - - + +
    - METADATA_BLOCK_APPLICATION -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - - - - + + + + - + - -
    + METADATA_BLOCK_APPLICATION +
    <32> - - Registered application ID. (Visit the registration page to register an ID with FLAC.) -
    + + Registered application ID. (Visit the registration page to register an ID with FLAC.) +
    <n> - + Application data (n must be a multiple of 8) -
    -
    -

    - -

    -
    - - - - - - - + +
    - METADATA_BLOCK_SEEKTABLE -
    - SEEKPOINT+ - +
    +
    +

    + +
    + +
    +
    + + + + + + + - - - - + + + + - -
    + METADATA_BLOCK_SEEKTABLE +
    + SEEKPOINT+ + One or more seek points. -
    - - NOTE
    -
      -
    • +
    + + NOTE
    +
      +
    • The number of seek points is implied by the metadata header 'length' field, i.e. equal to length / 18. -
    • -
    -
    -
    -

    - -

    -
    - - - - - - + +
    - SEEKPOINT -
    + + +
    +
    +

    + +
    + +
    +
    + + + + + + - + - - - + + + - + - - - + + + - + - - - - + + + + - -
    + SEEKPOINT +
    <64> - + Sample number of first sample in the target frame, or 0xFFFFFFFFFFFFFFFF for a placeholder point. -
    +
    <64> - + Offset (in bytes) from the first byte of the first frame header to the first byte of the target frame's header. -
    +
    <16> - + Number of samples in the target frame. -
    - - NOTES
    -
      -
    • +
    + + NOTES
    +
      +
    • For placeholder points, the second and third field values are undefined. -
    • -
    • +
    • +
    • Seek points within a table must be sorted in ascending order by sample number. -
    • -
    • +
    • +
    • Seek points within a table must be unique by sample number, with the exception of placeholder points. -
    • -
    • +
    • +
    • The previous two notes imply that there may be any number of placeholder points, but they must all occur at the end of the table. -
    • -
    -
    -
    -

    - -

    -
    - - - - - - + +
    - METADATA_BLOCK_VORBIS_COMMENT -
    + + +
    +
    +

    + +
    + +
    +
    + + + + + + - - -
    + METADATA_BLOCK_VORBIS_COMMENT +
    <n> - - The contents of a vorbis comment packet as specified here, including the vendor string. Note that the vorbis comment spec allows for on the order of 2 ^ 64 bytes of data where as the FLAC metadata block is limited to 2 ^ 24 bytes. Given the stated purpose of vorbis comments, i.e. human-readable textual information, this limit is unlikely to be restrictive. Also note that the 32-bit field lengths are little-endian coded according to the vorbis spec, as opposed to the usual big-endian coding of fixed-length integers in the rest of FLAC. -
    -
    -

    - -

    -
    - - - - - - + + +
    - METADATA_BLOCK_CUESHEET -
    + + The contents of a vorbis comment packet as specified here, including the vendor string. Note that the vorbis comment spec allows for on the order of 2 ^ 64 bytes of data where as the FLAC metadata block is limited to 2 ^ 24 bytes. Given the stated purpose of vorbis comments, i.e. human-readable textual information, this limit is unlikely to be restrictive. Also note that the 32-bit field lengths are little-endian coded according to the vorbis spec, as opposed to the usual big-endian coding of fixed-length integers in the rest of FLAC. +
    +
    +

    + +
    + +
    +
    + + + + + + - + - - - + + + - + - - - + + + - - - - + + + + - + - - - + + + - + - - - - + + + + - -
    + METADATA_BLOCK_CUESHEET +
    <128*8> - + Media catalog number, in ASCII printable characters 0x20-0x7e. In general, the media catalog number may be 0 to 128 bytes long; any unused characters should be right-padded with NUL characters. For CD-DA, this is a thirteen digit number, followed by 115 NUL bytes. -
    +
    <64> - + The number of lead-in samples. This field has meaning only for CD-DA cuesheets; for other uses it should be 0. For CD-DA, the lead-in is the TRACK 00 area where the table of contents is stored; more precisely, it is the number of samples from the first sample of the media to the first sample of the first index point of the first track. According to the Red Book, the lead-in must be silence and CD grabbing software does not usually store it; additionally, the lead-in must be at least two seconds but may be longer. For these reasons the lead-in length is stored here so that the absolute position of the first track can be computed. Note that the lead-in stored here is the number of samples up to the first index point of the first track, not necessarily to INDEX 01 of the first track; even the first track may have INDEX 00 data. -
    +
    <1> - - 1 if the CUESHEET corresponds to a Compact Disc, else 0. -
    + + 1 if the CUESHEET corresponds to a Compact Disc, else 0. +
    <7+258*8> - + Reserved. All bits must be set to zero. -
    +
    <8> - + The number of tracks. For CD-DA, this number must be no more than 100 (99 regular tracks and one leadout track). -
    - CUESHEET_TRACK+ - +
    + CUESHEET_TRACK+ + One or more tracks. A CUESHEET block is required to have a lead-out track; it is always the last track in the CUESHEET. For CD-DA, the lead-out track number must be 170 as specified by the Red Book. -
    -
    -

    - -

    -
    - - - - - - + +
    - CUESHEET_TRACK -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - + - - - + + + - + - - - + + + - - - - + + + + - + - - - + + + - - - - + + + + - + - - - + + + - + - - - - + + + + - -
    + CUESHEET_TRACK +
    <64> - + Track offset in samples, relative to the beginning of the FLAC audio stream. It is the offset to the first index point of the track. (Note how this differs from CD-DA, where the track's offset in the TOC is that of the track's INDEX 01 even if there is an INDEX 00.) For CD-DA, the offset must be evenly divisible by 588 samples (588 samples = 44100 samples/sec * 1/75th of a sec). -
    +
    <8> - + Track number. A track number of 0 is not allowed to avoid conflicting with the CD-DA spec, which reserves this for the lead-in. For CD-DA the number must be 1-99, or 170 for the lead-out. It is not required but encouraged to start with track 1 and increase sequentially. Track numbers must be unique within a CUESHEET. -
    +
    <12*8> - - Track ISRC. This is a 12-digit alphanumeric code; see here and here. A value of 12 ASCII NUL characters may be used to denote absence of an ISRC. -
    + + Track ISRC. This is a 12-digit alphanumeric code; see here and here. A value of 12 ASCII NUL characters may be used to denote absence of an ISRC. +
    <1> - + The track type: 0 for audio, 1 for non-audio. This corresponds to the CD-DA Q-channel control bit 3. -
    +
    <1> - - The pre-emphasis flag: 0 for no pre-emphasis, 1 for pre-emphasis. This corresponds to the CD-DA Q-channel control bit 5; see here. -
    + + The pre-emphasis flag: 0 for no pre-emphasis, 1 for pre-emphasis. This corresponds to the CD-DA Q-channel control bit 5; see here. +
    <6+13*8> - + Reserved. All bits must be set to zero. -
    +
    <8> - + The number of track index points. There must be at least one index in every track in a CUESHEET except for the lead-out track, which must have zero. For CD-DA, this number may be no more than 100. -
    - CUESHEET_TRACK_INDEX+ - +
    + CUESHEET_TRACK_INDEX+ + For all tracks except the lead-out track, one or more track index points. -
    -
    -

    - -

    -
    - - - - - - + +
    - CUESHEET_TRACK_INDEX -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - + - - - + + + - + - - - + + + - + - -
    + CUESHEET_TRACK_INDEX +
    <64> - + Offset in samples, relative to the track offset, of the index point. For CD-DA, the offset must be evenly divisible by 588 samples (588 samples = 44100 samples/sec * 1/75th of a sec). Note that the offset is from the beginning of the track, not the beginning of the audio data. -
    +
    <8> - + The index point number. For CD-DA, an index number of 0 corresponds to the track pre-gap. The first index in a track must have a number of 0 or 1, and subsequently, index numbers must increase by 1. Index numbers must be unique within a track. -
    +
    <3*8> - + Reserved. All bits must be set to zero. -
    -
    -

    - -

    -
    - - - - - - - + +
    - FRAME -
    - FRAME_HEADER - +
    +
    +

    + +
    + +
    +
    + + + + + + + - - - - + + + + - - - + + + - + - - - - + + + + - -
    + FRAME +
    + FRAME_HEADER +   -
    - SUBFRAME+ - +
    + SUBFRAME+ + One SUBFRAME per channel. -
    +
    <?> - + Zero-padding to byte alignment. -
    - FRAME_FOOTER - +
    + FRAME_FOOTER +   -
    -
    -

    - -

    -
    - - - - - - + +
    - FRAME_HEADER -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - + - - - + + + - - - - + + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - - + + + + - -
    + FRAME_HEADER +
    <14> - - Sync code '11111111111110' -
    + + Sync code '11111111111110' +
    <2> - - Reserved:
    -
      -
    • - 00 : mandatory value -
    • -
    • - 01-11 : reserved for future use -
    • -
    -
    + + Reserved:
    +
      +
    • + 00 : mandatory value +
    • +
    • + 01-11 : reserved for future use +
    • +
    +
    <4> - - Block size in inter-channel samples:
    -
      -
    • - 0000 : get from STREAMINFO metadata block -
    • -
    • - 0001 : 192 samples -
    • -
    • - 0010-0101 : 576 * (2^(n-2)) samples, i.e. 576/1152/2304/4608 -
    • -
    • - 0110 : get 8 bit (blocksize-1) from end of header -
    • -
    • - 0111 : get 16 bit (blocksize-1) from end of header -
    • -
    • - 1000-1111 : 256 * (2^(n-8)) samples, i.e. 256/512/1024/2048/4096/8192/16384/32768 -
    • -
    -
    + + Block size in inter-channel samples:
    +
      +
    • + 0000 : get from STREAMINFO metadata block +
    • +
    • + 0001 : 192 samples +
    • +
    • + 0010-0101 : 576 * (2^(n-2)) samples, i.e. 576/1152/2304/4608 +
    • +
    • + 0110 : get 8 bit (blocksize-1) from end of header +
    • +
    • + 0111 : get 16 bit (blocksize-1) from end of header +
    • +
    • + 1000-1111 : 256 * (2^(n-8)) samples, i.e. 256/512/1024/2048/4096/8192/16384/32768 +
    • +
    +
    <4> - - Sample rate:
    -
      -
    • - 0000 : get from STREAMINFO metadata block -
    • -
    • - 0001-0011 : reserved -
    • -
    • - 0100 : 8kHz -
    • -
    • - 0101 : 16kHz -
    • -
    • - 0110 : 22.05kHz -
    • -
    • - 0111 : 24kHz -
    • -
    • - 1000 : 32kHz -
    • -
    • - 1001 : 44.1kHz -
    • -
    • - 1010 : 48kHz -
    • -
    • - 1011 : 96kHz -
    • -
    • - 1100 : get 8 bit sample rate (in kHz) from end of header -
    • -
    • - 1101 : get 16 bit sample rate (in Hz) from end of header -
    • -
    • - 1110 : get 16 bit sample rate (in tens of Hz) from end of header -
    • -
    • - 1111 : invalid, to prevent sync-fooling string of 1s -
    • -
    -
    + + Sample rate:
    +
      +
    • + 0000 : get from STREAMINFO metadata block +
    • +
    • + 0001-0011 : reserved +
    • +
    • + 0100 : 8kHz +
    • +
    • + 0101 : 16kHz +
    • +
    • + 0110 : 22.05kHz +
    • +
    • + 0111 : 24kHz +
    • +
    • + 1000 : 32kHz +
    • +
    • + 1001 : 44.1kHz +
    • +
    • + 1010 : 48kHz +
    • +
    • + 1011 : 96kHz +
    • +
    • + 1100 : get 8 bit sample rate (in kHz) from end of header +
    • +
    • + 1101 : get 16 bit sample rate (in Hz) from end of header +
    • +
    • + 1110 : get 16 bit sample rate (in tens of Hz) from end of header +
    • +
    • + 1111 : invalid, to prevent sync-fooling string of 1s +
    • +
    +
    <4> - + Channel assignment -
      -
    • - 0000-0111 : (number of independent channels)-1. when == 0001, channel 0 is the left channel and channel 1 is the right -
    • -
    • - 1000 : left/side stereo: channel 0 is the left channel, channel 1 is the side(difference) channel -
    • -
    • - 1001 : right/side stereo: channel 0 is the side(difference) channel, channel 1 is the right channel -
    • -
    • - 1010 : mid/side stereo: channel 0 is the mid(average) channel, channel 1 is the side(difference) channel -
    • -
    • - 1011-1111 : reserved -
    • -
    -
    +
      +
    • + 0000-0111 : (number of independent channels)-1. when == 0001, channel 0 is the left channel and channel 1 is the right +
    • +
    • + 1000 : left/side stereo: channel 0 is the left channel, channel 1 is the side(difference) channel +
    • +
    • + 1001 : right/side stereo: channel 0 is the side(difference) channel, channel 1 is the right channel +
    • +
    • + 1010 : mid/side stereo: channel 0 is the mid(average) channel, channel 1 is the side(difference) channel +
    • +
    • + 1011-1111 : reserved +
    • +
    +
    <3> - - Sample size in bits:
    -
      -
    • - 000 : get from STREAMINFO metadata block -
    • -
    • - 001 : 8 bits per sample -
    • -
    • - 010 : 12 bits per sample -
    • -
    • - 011 : reserved -
    • -
    • - 100 : 16 bits per sample -
    • -
    • - 101 : 20 bits per sample -
    • -
    • - 110 : 24 bits per sample -
    • -
    • - 111 : reserved -
    • -
    -
    + + Sample size in bits:
    +
      +
    • + 000 : get from STREAMINFO metadata block +
    • +
    • + 001 : 8 bits per sample +
    • +
    • + 010 : 12 bits per sample +
    • +
    • + 011 : reserved +
    • +
    • + 100 : 16 bits per sample +
    • +
    • + 101 : 20 bits per sample +
    • +
    • + 110 : 24 bits per sample +
    • +
    • + 111 : reserved +
    • +
    +
    <1> - + Zero bit padding, to prevent sync-fooling string of 1s -
    +
    <?> - - if(variable blocksize)
    -    <8-56>:"UTF-8" coded sample number (decoded number is 36 bits)
    - else
    +
    + if(variable blocksize)
    +    <8-56>:"UTF-8" coded sample number (decoded number is 36 bits)
    + else
       <8-48>:"UTF-8" coded frame number (decoded number is 31 bits) -
    +
    <?> - - if(blocksize bits == 011x)
    +
    + if(blocksize bits == 011x)
       8/16 bit (blocksize-1) -
    +
    <?> - - if(sample rate bits == 11xx)
    +
    + if(sample rate bits == 11xx)
       8/16 bit sample rate -
    +
    <8> - + CRC-8 (polynomial = x^8 + x^2 + x^1 + x^0, initialized with 0) of everything before the crc, including the sync code -
    - - NOTES
    -
      -
    • +
    + + NOTES
    +
      +
    • The blocksize bits 0000-0101 and 1000-1111 may only be used if the blocksize is fixed throughout the entire stream. Blocksize bits 0110-0111 may be used in any case but the decoder will have to pessimistically guess that it is a variable-blocksize stream unless it has STREAMINFO metadata and the min_blocksize and max_blocksize values in it match. There is only one special case: the encoder may use blocksize bits 0110-0111 on the last frame of a fixed-blocksize stream, as long as the blocksize is not greater than the stream blocksize. -
    • -
    • +
    • +
    • The "UTF-8" coding used for the sample/frame number is the same variable length code used to store compressed UCS-2, extended to handle larger input. -
    • -
    -
    -
    -

    - -

    -
    - - - - - - + +
    - FRAME_FOOTER -
    + + +
    +
    +

    + +
    + +
    +
    + + + + + + - + - -
    + FRAME_FOOTER +
    <16> - + CRC-16 (polynomial = x^16 + x^15 + x^2 + x^0, initialized with 0) of everything before the crc, back to and including the frame header sync code -
    -
    -

    - -

    -
    - - - - - - - + +
    - SUBFRAME -
    - SUBFRAME_HEADER - +
    +
    +

    + +
    + +
    +
    + + + + + + + - - - - + + + + - -
    + SUBFRAME +
    + SUBFRAME_HEADER +   -
    - SUBFRAME_CONSTANT
    || SUBFRAME_FIXED
    || SUBFRAME_LPC
    || SUBFRAME_VERBATIM -
    +
    + SUBFRAME_CONSTANT
    || SUBFRAME_FIXED
    || SUBFRAME_LPC
    || SUBFRAME_VERBATIM +
    The SUBFRAME_HEADER specifies which one. -
    -
    -

    - -

    -
    - - - - - - + +
    - SUBFRAME_HEADER -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - + - - - + + + - + - - - + + + - + - -
    + SUBFRAME_HEADER +
    <1> - + Zero bit padding, to prevent sync-fooling string of 1s -
    +
    <6> - + Subframe type: - -
    + +
    <1+k> - + 'Wasted bits-per-sample' flag: -
      -
    • - 0 : no wasted bits-per-sample in source subblock, k=0 -
    • -
    • - 1 : k wasted bits-per-sample in source subblock, k-1 follows, unary coded; e.g. k=3 => 001 follows, k=7 => 0000001 follows. -
    • -
    -
    -

    - -

    -
    - - - - - - + +
    - SUBFRAME_CONSTANT -
    +
      +
    • + 0 : no wasted bits-per-sample in source subblock, k=0 +
    • +
    • + 1 : k wasted bits-per-sample in source subblock, k-1 follows, unary coded; e.g. k=3 => 001 follows, k=7 => 0000001 follows. +
    • +
    +
    +
    +

    + +
    + +
    +
    + + + + + + - + - -
    + SUBFRAME_CONSTANT +
    <n> - + Unencoded constant value of the subblock, n = frame's bits-per-sample. -
    -
    -

    - -

    -
    - - - - - - + +
    - SUBFRAME_FIXED -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - + - - - - + + + + - -
    + SUBFRAME_FIXED +
    <n> - + Unencoded warm-up samples (n = frame's bits-per-sample * predictor order). -
    - RESIDUAL - +
    + RESIDUAL + Encoded residual -
    -
    -

    - -

    -
    - - - - - - + +
    - SUBFRAME_LPC -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - + - - - + + + - + - - - + + + - + - - - + + + - + - - - - + + + + - -
    + SUBFRAME_LPC +
    <n> - + Unencoded warm-up samples (n = frame's bits-per-sample * lpc order). -
    +
    <4> - + (Quantized linear predictor coefficients' precision in bits)-1 (1111 = invalid). -
    +
    <5> - + Quantized linear predictor coefficient shift needed in bits (NOTE: this number is signed two's-complement). -
    +
    <n> - + Unencoded predictor coefficients (n = qlp coeff precision * lpc order) (NOTE: the coefficients are signed two's-complement). -
    - RESIDUAL - +
    + RESIDUAL + Encoded residual -
    -
    -

    - -

    -
    - - - - - - + +
    - SUBFRAME_VERBATIM -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - + - -
    + SUBFRAME_VERBATIM +
    <n*i> - + Unencoded subblock; n = frame's bits-per-sample, i = frame's blocksize. -
    -
    -

    - -

    -
    - - - - - - + +
    - RESIDUAL -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - - - - - + + + + + - - - - + + + + - -
    + RESIDUAL +
    <2> - - Residual coding method:
    -
      -
    • - 00 : partitioned rice coding -
    • -
    • - 01-11 : reserved -
    • -
    -
    - RESIDUAL_CODING_METHOD_PARTITIONED_RICE - + + Residual coding method:
    +
      +
    • + 00 : partitioned rice coding +
    • +
    • + 01-11 : reserved +
    • +
    +
    + RESIDUAL_CODING_METHOD_PARTITIONED_RICE +   -
    - - NOTES
    -
      -
    • +
    + + NOTES
    +
      +
    • Currently, FLAC specifies only one entropy coding method. -
    • -
    -
    -
    -

    - -

    -
    - - - - - - + +
    - RESIDUAL_CODING_METHOD_PARTITIONED_RICE -
    + + +
    +
    +

    + +
    + +
    +
    + + + + + + - + - - - - + + + + - -
    + RESIDUAL_CODING_METHOD_PARTITIONED_RICE +
    <4> - + Partition order. -
    - RICE_PARTITION+ - +
    + RICE_PARTITION+ + There will be 2^order partitions. -
    -
    -

    - -

    -
    - - - - - - + +
    - RICE_PARTITION -
    +
    +
    +

    + +
    + +
    +
    + + + + + + - - - - + + + + - + - -
    + RICE_PARTITION +
    <4(+5)> - - Encoding parameter:
    -
      -
    • - 0000-1110 : Rice parameter. -
    • -
    • - 1111 : Escape code, meaning the partition is in unencoded binary form using n bits per sample; n follows as a 5-bit number. -
    • -
    -
    + + Encoding parameter:
    +
      +
    • + 0000-1110 : Rice parameter. +
    • +
    • + 1111 : Escape code, meaning the partition is in unencoded binary form using n bits per sample; n follows as a 5-bit number. +
    • +
    +
    <?> - - Encoded residual. The number of samples (n) in the partition is determined as follows:
    -
      -
    • +
    + Encoded residual. The number of samples (n) in the partition is determined as follows:
    +
      +
    • if the partition order is zero, n = frame's blocksize - predictor order -
    • -
    • +
    • +
    • else if this is not the first partition of the subframe, n = (frame's blocksize / (2^partition order)) -
    • -
    • +
    • +
    • else n = (frame's blocksize / (2^partition order)) - predictor order -
    • -
    -
    -
    -

    - -
    - + + +
    +

    + -
    -

     Copyright (c) 2000,2001,2002,2003,2004,2005 Josh Coalson

    + - - + + diff --git a/doc/html/goals.html b/doc/html/goals.html index c15fd29..e3bfd97 100644 --- a/doc/html/goals.html +++ b/doc/html/goals.html @@ -1,139 +1,107 @@ - + - - - FLAC - goals - - - - - - - - -
    FLAC Logo
    - -
    - -
    - - - - - -
    - - - - - - - - - - - - - - - - -
      home  |  faq  |  news  |  download  |  features  |  goals  |  format  |  id  |  comparison  |  documentation  |  changelog  |  links  |  developers  
    -
    - -
    - - - - - -
    - - - - - -
      english  |  russian  
    -
    - -
    - -
    - -
    - - - - -
    -
    - - -
    - goals -
    -
    - - -
    -

    - Since FLAC is an open-source project, it's important to have a set of goals that everyone works to. They may change slightly from time to time but they're a good guideline. Changes should be in line with the goals and should not attempt to embrace any of the anti-goals! -

    -

    - Goals -

    -

    -

      -
    • - FLAC should be and stay an open format with an open-source reference implementation. -
    • -
    • - FLAC should be lossless. This seems obvious but lossy compression seems to creep into every audio codec. This goal also means that flac should stay archival quality and be truly lossless for all input. Testing of releases should be thorough. -
    • -
    • - FLAC should yield respectable compression, on par or better than other lossless codecs. -
    • -
    • - FLAC should allow at least realtime decoding on even modest hardware. -
    • -
    • - FLAC should support fast sample-accurate seeking. -
    • -
    • - FLAC should allow gapless playback of consecutive streams. This follows from the lossless goal. -
    • -
    • - The FLAC project owes a lot to the many people who have advanced the audio compression field so freely, and aims also to contribute through the open-source development of new ideas. -
    • -
    -

    -

    - Anti-goals -

    -

    -

      -
    • - Lossy compression. There are already many suitable lossy formats (Ogg Vorbis, MP3, etc.). -
    • -
    • - Copy prevention of any kind. -
    • -
    -

    -
    -
    -
    -
    - - -
    - -

     Copyright (c) 2000,2001,2002,2003,2004,2005 Josh Coalson

    - - - + + + + + + + + + FLAC - goals + + + + + + +
    + +
    + + + +
    + +
    +  english  | +  russian  +
    + +
    + +
    + +
    +
    + goals +
    +
    +
    + Since FLAC is an open-source project, it's important to have a set of goals that everyone works to. They may change slightly from time to time but they're a good guideline. Changes should be in line with the goals and should not attempt to embrace any of the anti-goals!
    +
    + Goals +
      +
    • + FLAC should be and stay an open format with an open-source reference implementation. +
    • +
    • + FLAC should be lossless. This seems obvious but lossy compression seems to creep into every audio codec. This goal also means that flac should stay archival quality and be truly lossless for all input. Testing of releases should be thorough. +
    • +
    • + FLAC should yield respectable compression, on par or better than other lossless codecs. +
    • +
    • + FLAC should allow at least realtime decoding on even modest hardware. +
    • +
    • + FLAC should support fast sample-accurate seeking. +
    • +
    • + FLAC should allow gapless playback of consecutive streams. This follows from the lossless goal. +
    • +
    • + The FLAC project owes a lot to the many people who have advanced the audio compression field so freely, and aims also to contribute through the open-source development of new ideas. +
    • +
    + Anti-goals
    +
      +
    • + Lossy compression. There are already many suitable lossy formats (Ogg Vorbis, MP3, etc.). +
    • +
    • + Copy prevention of any kind. +
    • +
    +
    + +
    + + + + + + diff --git a/doc/html/id.html b/doc/html/id.html index 58292e7..7e6d9b7 100644 --- a/doc/html/id.html +++ b/doc/html/id.html @@ -1,226 +1,187 @@ - + - - - FLAC - id - - - - - - - - -
    FLAC Logo
    - -
    - -
    - - - - - -
    - - - - - - - - - - - - - - - - -
      home  |  faq  |  news  |  download  |  features  |  goals  |  format  |  id  |  comparison  |  documentation  |  changelog  |  links  |  developers  
    -
    - -
    - - - - - -
    - - - - - -
      english  |  russian  
    -
    - -
    - -
    - -
    - - - - -
    -
    - - -
    - register -
    -
    - - -
    -

    - FLAC allows third-party applications to register an ID for use with FLAC APPLICATION metadata blocks. Use the following form to request an ID, or to submit a change to an existing ID. -

    -

    -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - -
    * Application ID:
    * Application name:
    * Contact e-mail:
    Application URL:
    Specification URL:
    Comment:
    (* = mandatory)
    -
    -

    - The ID request should be 8 hexadecimal digits and not conflict with any existing IDs (see the table below for all currently registered IDs). This 32-bit number will be stored big-endian in the block. -

    -

    - Information about your application (but not your e-mail address) will show up on this page in the ID directory. You can also provide a URL to your application and a URL reference to the specification of your application's APPLICATION block. -

    -

    - You will be notified via e-mail about your submission. -

    -
    -
    -

    -
    -
    -
    -
    - - - - -
    -
    - - -
    - id directory -
    -
    - - -
    -

    - Here is a list of all registered IDs and their applications: -

    -

    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - ID - - Application -
    - 43756573 - "Cues" - - GoldWave cue points (specification) -
    - 46746F6C - "Ftol" - - flac-tools -
    - 5346464C - "SFFL" - - Sound Font FLAC -
    - 7065656D - "peem" - - Parseable Embedded Extensible Metadata (specification) -
    - 786D6364 - "xmcd" - - xmcd -
    -
    -

    -
    -
    -
    -
    - - -
    - -

     Copyright (c) 2000,2001,2002,2003,2004,2005 Josh Coalson

    - - - + + + + + + + + + FLAC - id + + + + + + +
    + +
    + + + +
    + +
    +  english  | +  russian  +
    + +
    + +
    + +
    +
    + register +
    +
    +
    + FLAC allows third-party applications to register an ID for use with FLAC APPLICATION metadata blocks. Use the following form to request an ID, or to submit a change to an existing ID.
    +
    +
    +
    + + + + + + + + + + + + + + + + + + + + +
    * Application ID:
    * Application name:
    * Contact e-mail:
    Application URL:
    Specification URL:
    Comment: