De ontwikkelaars van de Lame hebben een nieuwe versie van de mp3-encoder uitgebracht. Het gaat om de stabiele versie van de 3.98-tak, die door te klikken op deze link als tarball gedownload kan worden. Binary's voor Windows zijn op deze site te vinden. Lame, dat een afkortingen van 'Lame Ain't an MP3 Encoder' is, is een platformonafhankelijke encoder die geluidsbestanden in het mp3-formaat kan omzetten. Het programma wordt in een groot aantal muziek- en mediaspelers gebruikt voor het encoderen van muziek. Ook bestaan er ook verschillende frontends die Lame via een grafische interface kunnen aansturen.
De nieuwe stabiele 3.98-versie van Lame wordt geleverd met een waslijst aan veranderingen. Zo is de vbr-afhandeling onder handen genomen, worden id3-tags correct weggeschreven en zijn er diverse geheugenlekken gedicht. Het volledige changelog sinds Lame 3.97 ziet er als volgt uit:
LAME 3.98 beta 8
- Frontend DirectShow: enabling LAME dshow filter to connect to "File Writer Filter".
- Updates to the Debian Packaging
- Fixes to the abx tool for Unix systems (so that more people can evaluate LAME's compression against the original files)
- explicitely link the math lib to the lame lib
- add switch to disable the use of the compaq optimized math lib
LAME 3.98 beta 7
- LAME now accepts a floating point value in the range [0,...,10[ as VBR quality setting, like -V5.678
- Found and fixed some suspicious code in additive masking calculation for VBR-NEW
- bug-fix:experimental code was defaulted by accident for VBR-NEW
- fix for some endianess problem on big-endian machines
LAME 3.98 beta 6
- libmp3lame API: allow frontends to separately retrieve LAME/Xing and ID3 data, because the old library automatism makes it impossible to make fully buffered encodes.
- libmp3lame API: added some experimental unicode ID3 tagging code.
- frontends: write itself final ID3 tags and LAME/Xing header frame
- lame_enc.dll: writes itself final LAME/Xing header frame
- Latest changes to the new VBR psymodel:
- uses a different spreading function
- bug-fix for out-of-bounds array access (program stack corruption possible)>
LAME 3.98 beta 5
- Feature request [ 1811483 ] WAVE_FORMAT_EXTENSIBLE support (PCM)
- Fix for some rare scalefactor selection issue the newer vbr code had at low compression levels
- Fix for Bugtracker item[ 1813496 ] AIFF parsing bug
- Latest changes to the new VBR code:
- it now has its own psy model, a derivation from NSPSY.
- some more tuning has been done for this new psy model. Many thanks to Horst Albrecht and Myles Thaiss.
- the "out-of-bits" strategy is reworked
- It was possible, that the "interchannel masking effects feature" was used by the dual-channel-mode for bi-lingual encodings too. It was meant to work on stereo L/R channels only.
LAME 3.98 beta 4
- Bug tracker items: [ 1590693 ] ID3v2 tag not writing, [ 1636267 ] ID3v2 tags overwritten If the output file is opened 'write-only', then LAME can't update the LAME tag. In this case LAME silently overwrote the first bytes of the file and an optional ID3v2 tag disappeared. Now an error message will be printed and no data is written in this case.
- Fix for Bugtracker item [ 1719593 ] Track numbers > 255 not allowed even with --id3v2-only
- Fix for Bugtracker item [ 1742623 ] fail(lame --mp3input -m m -b 128 --resample 8 *.mp3 **.mp3) The problem here was, the input files are MPEG-1 Layer2 files named as MP3s. Even if you leave out the --mp3input switch LAME tried to decode the input files as Layer3 files because of the file name extension and because it found some valid looking Layer3 synchronization header. The fixed LAME version does not assume the file name extension is always correct and treats the files depending on the first found MPEG sync word. The files in question are now correctly detected as Layer2 files and transcoding does succeed.
- Fix for Bugtracker item [ 1445175 ] Input being stdin fails in Windows on WAV files The problem here was, seeking on pipes shows some different behaviour depending on C-Library implementations. The workaround tries to detect it's working on a pipe and doing some reading instead of seeking in that case.
- Fixing some memory leak in the 'lame_enc.dll'.
- Fix for Bugtracker items [ 1160757, 1160741 ] --little-endian / --big-endian not working These switches where originally intended to be used together with Libsndfile only.
- Fix for Bugtracker item [ 1746336 ] Incorrect Bitrate with ABR und --resample, LAME 3.98b4 Some earlier bug-fix had some typo. As a result, when adding a '--resample 123' switch, the average bitrate rised upto maximum bitrate.
LAME 3.98 beta 3
- Added support for total track count (id3v2) in the frontend
- Ability to set user-defined ID3v2.3 frame
- Ability to include albumArt in ID3v2.3 tag
- Bugfix: the "play length in ms", which is stored in the ID3v2 tag TLEN, was not correctly computed. Some hardware and software players were confused by this garbage data.
- Out of bits strategy for the newer VBR code overhauled
- LAME API: the ID3 tag functions do not store the pointers passed anymore, they do make deep copies of strings passed as parameters.
- Changes in LAME frontend switches regarding ID3 tags:
--tg "MyGenre" will route unknown ID3v1 genres to "Other" for ID3v1 tags and will be stored as plain text "MyGenre" for ID3v2 tags. Genres given by known ID3v1 numbers will be stored as its corresponding text in ID3v2 tags. --tn "02/02" will store the track number specified as plain text as-is for ID3v2 tags.
LAME 3.98 beta 2
- Fixes regarding max number of bits limitation
LAME 3.98 beta 1
- Bug tracker item: [ 1693461 ]; Fixed memory leaks in ACM codec
- Fixed encoding of non-standard sampling rates in CBR
- Improved VBR strategy when running out of bits
- Add TLEN (ID3v2) support (Submitted by: Linus Walleij).
- Add number of total tracks per album (ID3v2) support (Submitted by: Kyle VanderBeek).
- Some seatbelts for overflowing arrays in the ID3v2 support.
- Update the RPM spec (Submitted by: Kyle VanderBeek).
- Fix some mem-leaks in the error case.
- Update to newer autotools versions.
- Update to use a recent libsndfile (submitted by libsndfile author).
- Intrinsics support enabled for gcc
- The newer VBR code is now LAME's default VBR routine
- Fixed: in case of not enough bits the new vbr code incorrectly used old vbr routine
- Improved ATH adjustment in low volume cases
- Fixed (PSY model): mapping from convolution bands to partition bands was broken since we replaced tables by own calculation several years ago
- Fixed (PSY model): loss of fraction in equal loudness weighting
- Fixed (PSY model): in NSPSY highpass filter, out of bounds access in fircoef
- Known problem samples for the new VBR code: many of them are at an acceptable quality level now; with a big 'Thank You' to Francis Niechcial
- Modified VBR strategy to handle out of bits cases
- Restricted bitreservoir size for 320 kbps frames to the size used for sideinfo, because of decoding problems with FhG decoders installed on almost every Windows system
- LAME aborts on unsupported input files or unrecognized parameter options passed more often now
- Bug tracker item: [ 1596306 ] "fatal error during initialization"; an invalid MPEG samplerate was returned by optimum_samplefreq function
- Bug tracker item: [ 1585942 ] lame not --silent when TERM not set; in case LAME was build with TERMCAP defined and no TERM environment is defined, now we do not issue an error message and silently fallback to the default behaviour as if LAME was compiled without TERMCAP defined.
- Bug tracker item: [ 1711980 ] LAME writes invalid Xing header when ID3 tags exist; LAME was sometimes writing an invalid Xing/Info header
- Feature request: [ 1588283 ] Flushing output stream in lame.exe; 'flush' option added
- Added FFTSSE and FFT3DNOW assembler code from Lame4 branch
- Changes in lame frontend switches: -k removed, add lowpass and highpass switches if you need to change them; --short/noshort/allshort - degraded into DEVELOPER ONLY switches normal users shouldn't use them; -X -Z degraded to DEVELOPER ONLY switches, -X is too tough to communicate to end users and -Z isn't used actualy
- Fixed some console printing problems
- Windows: ACM code now uses LAME library API only, all references to private include files are removed
- Windows: DirectShow code now uses LAME library API only, all references to private include files are removed
- Windows: disabled code that resets processor affinity, because this doesn't belong to LAME, but seems to work around some problems the parent process has (in most cases EAC)
- Fixed mp2 and mp3 decoding: For mp3 and mp2 decoding, this now yields the same output as foobar2000 but the error checking remains unchanged
- VC8 project files
- Added support for x64 under VC8
- Restricted MPEG 2.5 to 64kbps frames
- SSE version of FFT