This is a snapshot of my work on "GXLame." GXLame is an MP3 encoder based off of LAME v3.98.4 and v3.99b0 which has been heavily optimized for high-quality, low-bitrate VBR encoding. It is similar in concept to other popular encoders at these bitrates such as some AAC codecs, Vorbis mods, and so forth at bitrates down to 56kbps. This codec does not rely on aggressive lowpassing or resampling to acheive these low bitrates, and the quality aims to be acceptable at much lower bitrates than have come to be expected of the standard. Here's a rough idea of what to expect:
On a continuous scale from V 0 (lowest bitrate) to V 100 (highest quality), with V20 as the default:
V0: 64kbps (actually 56kbps @ 32KHz; auto resampling to 32Khz takes place at V5 and below)
The range 0-35 is where the most tuning took place. The codec accepts input from stdin and can be used in foobar2000 (and many other audio rippers/managers/converters) by following any of the guides for LAME, but with a different commandline. For instance, one can easily import CD audio into foobar2000 and convert the tracks with the simple commandline: GXLame-t5.3 -S - %d
For greatly increased encoding speed, add "-f". To target a different quality level, add "-Vx" ('x' here means a number like 30, which would produce average bitrates somewhat close to 96kbps according to the above table).
GXLame 32bits version GXLame-t5 (9 Aug 2011)
This version contains debugging options.
usage: GXLame [options] <infile> [outfile]
<infile> and/or <outfile> can be "-", which means stdin/stdout.
GXLame input.wav output.mp3
-b bitrate (Not recommended) set the bitrate, default 85 kbps
-h highest quality, but slower (not recommended).
-f fast mode, slightly lower quality (but still very good)
-V n quality setting for VBR. default n = 20 (near 85 kbps)
100 = highest quality, biggest files. 0 = smallest files
--preset type type must be "medium", "standard", "extreme", "insane",
or a value for an average desired bitrate and depending
on the value specified, appropriate quality settings will
"--preset help" gives more info on these
--priority type sets the process priority
0,1 = Low priority
2 = normal priority
3,4 = High priority
--longhelp full list of options
--license print License information
This is an early test release. Although some great progress is being made, it is not completely tuned, stable, or optimized. Then again, codecs never are and probably never will be. I want to gather user feedback, so use this puppy to compress whatever audio you will. Please note that lossy transcoding is an especially bad idea with GXLame. It relies so heavily on the psymodel and noise shaping that any artifacts present in the original--even inaudible ones in a transparent encode--may rebound here with a great vengeance. Particular culprits are transient smearing and additional high frequency distortion. If you must transcode, at least resample to a different frequency first (for instance, add "--resample 48" to the commandline when re-compressing/transcoding standard CD audio).
Grab a look at the changelog and older versions in the uploads thread here. Be sure to provide your opinions, discussions, impressions, test results, and whatever other witty banter you might deem applicable in this thread!
Right now, go forth and test it on your music, soundtracks, speech tracks (for speech, I recommend GXLame -V0 -mm --resample 16) -- I'm looking for tests for any regressions that might have been introduced in t5.3 since t5.2.