User: Password:
Subscribe / Log in / New account

LAME ain't lame no more

This article brought to you by LWN subscribers

Subscribers to made this article — and everything that surrounds it — possible. If you appreciate our content, please buy a subscription and make the next set of articles possible.

By Forrest Cook
September 30, 2008

LAME (Lame Ain't an MP3 Encoder) is a long running open-source MP3 encoder project. From the About LAME document: "...LAME is the source code for a fully LGPL'd MP3 encoder, with speed and quality to rival and often surpass all commercial competitors. LAME is an educational tool to be used for learning about MP3 encoding. The goal of the LAME project is to use the open source model to improve the psycho acoustics, noise shaping and speed of MP3. LAME is not for everyone - it is distributed as source code only and requires the ability to use a C compiler. However, many popular ripping and encoding programs include the LAME encoding engine..."

The LAME project has announced the first release in several years: "After rough[ly] two years of development, the LAME project has released a new version (3.98.2) of the best-known Open Source MP3 encoder. All users are encouraged to use it, see new improvements regarding the previous releases and send feedback for the project."

LAME has a long and interesting development history. From the LAME home page: "LAME development started around mid-1998. Mike Cheng started it as a patch against the 8hz-MP3 encoder sources. After some quality concerns raised by others, he decided to start from scratch based on the dist10 sources. His goal was only to speed up the dist10 sources, and leave its quality untouched. That branch (a patch against the reference sources) became Lame 2.0, and only on Lame 3.81 did we replaced of all dist10 code, making LAME no more only a patch. The project quickly became a team project. Mike Cheng eventually left leadership and started working on tooLame, an MP2 encoder. Mark Taylor became leader and started pursuing increased quality in addition to better speed. He can be considered the initiator of the LAME project in its current form. He released version 3.0 featuring gpsycho, a new psychoacoustic model he developed. In early 2003 Mark left project leadership, and since then the project has been lead through the cooperation of the active developers (currently 4 individuals)." Numerous additional developers have contributed to the project.

[LAME logo]

The slightly out of date project version history documents the changes to the code since September 1998. Improvements added to version 3.98 (started in May, 2007) include:

  • Numerous bug fixes were implemented.
  • A lot of code cleanup was done.
  • Support was added for newer versions of various libraries.
  • Many build system improvements were done.
  • The RPM specification was updated.
  • Numerous changes were made to the lame front end switches.
  • New VBR code, derived from the NSPSY psymodel, was added.
  • There were changes to the new VBR psymodel.
  • The out of bits strategy for the newer VBR code was overhauled.
  • PCM WAVE_FORMAT_EXTENSIBLE support was added.
  • Support for ID3v2 total track count was added.
  • ID3v2 TLEN support was added.
  • The ATH adjustment was improved for low volume cases.
  • A new SSE version of the FFT code was used.
  • A flush option was added for flushing the output stream in lame.exe.
  • The FFTSSE and FFT3DNOW assembler code was back ported from the Lame4 branch.

Building the newest version of LAME on an Ubuntu 8.04.1 LTS (Hardy Heron) i386 system was straightforward. An older Ubuntu package of LAME was first removed from the system using the Synaptic package manager. The LAME version 3.98.2 source code was downloaded, unzipped and untared. The configure script was run, no missing dependencies were found. The usual make and make install steps were done. A few test case .wav files were encoded with the command lame file.wav file.mp3 and the files were played with the SoX play command as well as the closed-source RealPlayer application. Everything worked as expected, and sounded as good as one can expect for an MP3 file.

Overall, the latest changes to LAME fall into the category of maintenance or the addition of mostly user-transparent features. It is good news that this important piece of software is going into another phase of active development.

(Log in to post comments)

LAME ain't lame no more

Posted Oct 9, 2008 11:06 UTC (Thu) by gw666 (guest, #12326) [Link]

Why do you users always install new versions from source instead of rebuilding a package with the new version? By uninstalling the distribution package you'll remove all packages that depend on lame, a reinstallation might overwrite your own installed version.

I don't know about Debian packages, but it is no rocket science to update a rpm to a newer version.

Copyright © 2008, Eklektix, Inc.
This article may be redistributed under the terms of the Creative Commons CC BY-SA 4.0 license
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds