A good friend pointed me to FLAC, which stands for Free Lossless Audio Codec and I decided it warranted a review for my streaming media class. The goal of FLAC is to compress audio files without reducing the quality of the audio stream unlike mp3’s, a noble goal to be sure. At least it is a noble goal for all the audiophiles like my friend who can actually hear the difference. My problem with reviewing the effectiveness of FLAC is twofold:
1. I’m loath to admit this in public but the truth is I can’t hear the difference between the audio on my CD’s and the MP3’s I encoded at 128K. Good for me since it means I can store more songs on my iPod, bad for my friend if he wants to listen to my music as well.
2. I wouldn’t want you to take my word for it (refer to #1above), so to properly review this codec, I will have to ask another friend, one that has a nuanced and trained ear for music, to help me by listening and comparing a single track, uncompressed and compressed using FLAC and MP3. This only becomes a problem when it is time for him to describe the differences. The man doesn’t know how to ‘briefly sum up’… but I mean that with the utmost respect.
The FLAC website is chock full of technical details, some I understand and some I don’t. (refer to #1 above) I can however touch on some of the highlights. The following is borrowed verbatim from the FLAC website, I give them full credit:
- 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: FLAC is supported by dozens of consumer electronic devices, from portable players, to home stereo equipment, to car stereo.
- Flexible metadata: FLAC’s metadata system supports tags, cover art, seek tables, and cue sheets. Applications can write their own APPLICATION metadata once they register an ID. New metadata blocks can be defined and implemented in future versions of FLAC without breaking older streams or decoders.
- Seekable: FLAC supports fast sample-accurate seeking. Not only is this useful for playback, it makes FLAC files suitable for use in editing applications.
- 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.
- 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.
For me this info is interesting but it really doesn’t help me form an opinion. Maybe you are like myself and would rather just hear the comparison and see the differences in files sizes. Below I offer you a comparison:
Here is the WAV file(31MB):
Here is an MP3 encoded at 320Kbps(7.1MB):
Here is an MP3 encoded at 128Kbps(2.8MB)
And finally, since WordPress doesn’t support FLAC files here is a link to the FLAC version of this song(20MB)
My conclusion… Well I think you already know my conclusion (Refer to #1 Above). As for my friend… He didn’t hear any difference either. Of course he admitted that he was listening to everything with 50 year old ears and maybe someone with youth on their side should give a listen. If space is the issue, it seems to me to stick with the MP3. I haven’t experimented with archiving yet, but since the FLAC file only reduced the original by 1/3 it doesn’t look like I will find it very useful. I’m eager to hear other opinions, so I encourage you all to give a listen .
BTW the song is:
Midnight Sun by The Strawbs
Maury