LameXP - Frequently Asked Questions (FAQ)


Table of contents:


What is LameXP ???

LameXP is a graphical user-interface (front-end) for various of audio encoders: It allows you convert your
audio files from one audio format to another one in the most simple way. Despite its name, LameXP is NOT only
a front-end for the LAME encoder, but supports a wide range of output formats, including MP3, Ogg Vorbis,
AAC/MP4, FLAC, AC-3 and Wave Audio. The number of supported input formats is even bigger! Furthermore LameXP
does NOT only run on Windows XP, but also on Windows Vista, Windows 7 and many other operating systems.

As all the encoders and decoders used by LameXP are already "built-in" (with one exception), you do NOT need
to install any additional software, such as "Codecs", "Filters" or "Plug-ins", on your computer. Everything
works "out of the box"! You can even use LameXP as a "portable" application, e.g. run it from your USB stick.
Moreover LameXP was designed for batch processing. This means that you can convert a huge number of audio
files, e.g. a complete album or even your entire music collection, in a single step. And, as LameXP is able
to process several audio files in parallel, it takes full advantage of modern multi-core processors! However
LameXP is NOT only optimized for speed, it also provides excellent sound quality by using the most
sophisticated encoders available and by giving the user unrestricted control over all encoding parameters.

In addition to that, LameXP provides full support for metadata, including cover art. So when converting your
audio files, LameXP will retain existing meta tags. But there also is an easy-to-use editor for adding or
modifying metadata. LameXP supports Unicode for both, meta tags and filenames, so there won't be any problems
with "foreign" characters. And, thanks to our translators, the user-interface of LameXP is available in
multiple languages. Last but not least, LameXP supports a number of post-processing filters, including sample
rate conversion, normalization (gain), tone adjustment and downmixing of multi-channel sources.



What platforms does LameXP run on?

LameXP is currently being developed on the following platforms:

The following platforms should work too, but aren't tested extensively:

The following "legacy" platforms are NOT supported any longer:

(*) Some people claim that LameXP can run on Windows 98 SE or Millennium Edition with the help of KernelEx.



What output formats (encoders) does LameXP support?

Currently the following output formats are supported by LameXP:


What input formats (decoders) does LameXP support?

Currently the following input formats are supported by LameXP:


My anti-virus program raises an alarm when I try to download, install or launch LameXP. Why is that?

Occasionally your anti-virus program may mistakenly(!) detect malware ("virus", "trojan horse", "worm", etc.)
in LameXP. This is called a "false positive" and the file is actually innocent/clean. It's an error in your
specific anti-virus software. So in case you encounter such problems, please use http://www.virustotal.com/,
http://www.virscan.org/ or a similar online-service to check the file in question with multiple(!) anti-virus
engines. Especially take care with heuristic scan results like "suspicious", "generic" or "packed". Such
results are NOT confirmed malware detections - they are speculative and almost always can be ignored safely!

Apparently anti-virus programs tend to suspect installers or uninstallers created with NSIS. Furthermore some
anti-virus programs blindly suspect ALL "packed" executables of being malware. Obviously that is a stupid
generalization, because "EXE packers" are commonly used by legitimate software (inlcuding a large number of
OpenSource tools), so please ignore these nasty warnings! Last but not least: Always keep in mind that LameXP
is free software. If you don't trust the pre-compiled LameXP binaries that we provide, simply download the
source codes, search the code for "malicious" functions (you won't find any ^^) and compile LameXP yourself!

Another important fact to consider is that for the creator of LameXP, it is impossible to know WHY a specific
anti-virus program is failing on our software. That's because anti-virus programs usually are proprietary
ClosedSource applications, so we cannot know what's going on "behind the scenes". Consequently any attempt to
guess what "aspect" of LameXP the anti-virus software is misinterpreting as malware would be pure speculation
and might even change with the next anti-virus update. Only the developer of the anti-virus program can fix
bugs inside the anti-virus program. So please report these bugs to the developer of your anti-virus program!

Finally, be aware that we are NOT liable for any files (downloads), except for those that are directly linked
on the official LameXP web-site or on one of the official mirros. Other web-sites may be redistributing our
software, but we are NOT affiliated with or funded by any of these web-sites. So while the license of LameXP
allows redistribution, there is absolutely NO guarantee that binaries offered by third parties are genuine!

Conclusion:

Who created LameXP?

LameXP was written from the scratch by LoRd_MuldeR <MuldeR2@GMX.de>. However it has to be noted that LameXP
uses a number of third-party tools, which have been created by the individual authors. Moreover various
people have contributed LameXP translations. Please see the "About" dialog for details! Also please do NOT
send e-mail to LoRd_MuldeR directly, if the problem or suggestion can be discussed in the support forums!

More OpenSource projects by LoRd_MuldeR at http://muldersoft.com/ and http://mulder.googlecode.com/.



What license is LameXP released under?

LameXP is free software. You can redistribute it and/or modify it under the terms of the GNU General Public
License (GPL) as published by the Free Software Foundation; either version 2 of the License, or (at your
option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

The licenses for most software and other practical works are designed to take away your freedom to share and
change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share
and change all versions of a program - to make sure it remains free software for all its users.

Please see the GNU General Public License for more details!



Do I have to pay for LameXP? / How can I donate to the authors of LameXP?

LameXP is free software, so you may use it for free and for any purpose. Moreover the authors of LameXP
currently do NOT accept any donations. Therefore you should NOT pay or donate any money in order to obtain
LameXP! However it was brought to our attention that some dubious third-party web-sites offer "payed"
downloads of LameXP and/or include Adware into the LameXP download. We do NOT cooperate with any of these
sites. So if you pay for the LameXP download, the authors of LameXP will not get a single cent! Instead you
should save your money and download LameXP from the official mirrors (see below), which is 100% free.

If you want to support the development of LameXP, you can do so by contributing translations or code :-)



Why is the thing called "LameXP" although it does so much more?

LameXP was created as a (very simple!) GUI front-end to the LAME MP3 encoder, back in 2004. That version did
NOT support any encoders except for LAME, it did NOT support any input formats other than Wave Audio files,
it did NOT support any audio filters, it did NOT support multi-threading, it did NOT support Unicode file
names and it did NOT handle meta data at all. Because the program really was nothing but (yet another) LAME
front-end for Windows and because at that time Windows XP was the operating system of choice - for many
people it still is nowadays - I decided to call the program "LameXP" (aka "LAME for Windows XP"). Since then
more and more features have been added to LameXP. The program even went through two complete re-writes. Thus
the name "LameXP" may not be the most meaningful one, especially because the program supports a huge number
of encoders and decoders now, but I'm obviosuly lacking the creativity to come up with a better name. Also I
think we already have enough doubious "super-duper everything to everything converter" programs out there...

So to make a long story short: The name has historical reasons and probably isn't going to change ;-)



MP3, AAC/MP4, Vorbis, FLAC or Opus - What is the best audio format?

This question can NOT be answered in general. The best audio format is the format that works best for you!

Having said that, let's have a look at the output formats supported by LameXP: MPEG-1 Audio Layer III, better
known as "MP3", was released in 1993 and probably still is the most widely used and most widely supported
compressed audio format. So if compatibility is your concern, MP3 is a good choice. Also MP3 can retain very
good quality - at higher bitrates. However MP3 does not support multi-channel audio and it does not perform
well at lower bitrates. MP3 also is pretty restrictive with the sampling rates and bitrates that it supports.

Advanced Audio Coding, often abbreviated as "AAC", was introduced as part of the MPEG-2 standard (1997) and
has been adopted by the MPEG-4 standard later (1999). AAC is often considered to be the "successor" of MP3.
Compared to MP3, AAC adds support for multi-channel audio, it support more sampling rates as well as more
flexible bitrates. Two variants of AAC are commonly used: Low-Complexity (LC) and High-Efficiency (HE). While
LC-AAC is intended for medium to high bitrates, LC-AAC works best at low bitrates. At low bitrates, HE-AAC
clearly outperforms MP3 - at higher bitrates the differences aren't that clear. AAC streams are usually, but
not necessarily, encapsulated in an MP4 (MPEG-4 Part 14) container. That's why AAC audio files almost always
have an ".mp4" file extension. Still the audio format is AAC - MP4 is only the container! Be aware that some
applications create audio-only MP4 files with a non-standard (wrong) ".m4a" file extension. AAC is widely
supported too nowadays (especially in "mobile" devices), though not all players fully support the HE variant.

Vorbis, often called "Ogg Vorbis", is a free audio format, developed by the Xiph foundation and released in
2000. In contrast to MP3/AAC, Vorbis is 100% patent-free. Vorbis streams are usually, but not necessarily,
encapsulated in an Ogg container (developed by Xiph too) and thus Vorbis files almost always have an ".ogg"
file extension. Vorbis is known to outperform MP3 at the same bitrate, although the differences are less
apparent at high bitrates. Furthermore HE-AAC has been known to outperform Vorbis at lower bitrates, though
there now is a tuned Vorbis encoder ("aoTuV") which further improves the quality of Vorbis - especially at
the lower bitrates. Hardware support for Ogg Vorbis is worse than for MP3/AAC, but it's constantly improving.

Free Lossless Audio Codec, better known as "FLAC", is a lossless audio format. This means that in contrast to
MP3, AAC and Vorbis, with the FLAC compression there is absolutely no loss in quality. This made FLAC famous
among "audiophile" people. However the lossless nature of FLAC comes at a big disadvantage: The compression
ratio of FLAC files isn't anywhere near the "lossy" audio formats. Or in other words: FLAC files are huge!
They are not as big as uncompressed Wave files, but usually the size cannot be reduced to less than 75%. Just
like Ogg Vorbis, hardware support for FLAC files is worse than for MP3/AAC, but it's constantly improving.

Opus is a new audio format which, at this time (Aug 2012), is still under active development. It is being
developed by engineers from Xiph, Mozilla and Skype/Microsoft. Opus has been accepted as an upcoming Internet
standard by the IETF recently. The Opus format is designed to work for low-latency speech encoding (VoIP) as
well as for high-quality music encoding. Opus is sometimes referred to as the "successor" of both, Vorbis and
Speex (the latter is Xiph's current speech codec). Currently, Opus reaches the quality of 128 kbps MP3 at an
bitrate of 80 kbps. As the development is still in progress, significant improvements are to be expected.


Another resource you might find interesting are Sebastian's Public Listening Tests:
(However be aware that some of the results from these listening tests are not up-to-date anymore)



What is the difference between the CBR, VBR and ABR rate control modes?

CBR means "constant bitrate" and, as the name implies, CBR mode allocates the bits at a constant rate. This
means that each part of the audio will get the same amount of bits, regardless of its content. Obviously this
will waste bits in parts of the audio that are "easy" to compress. At the same time the quality of parts of
the audio that are "hard" to compress will be degraded. Consequently using CBR mode is NOT a very good idea,
unless you really have to enforce a 100% constant bitrate (this is almost NEVER the case). However CBR mode
has the advantage that the final size of the compressed file is perfectly predictable. The resulting file
size is defined simply as "duration × fixed_bitrate". Note: The file size *is* predictable with ABR mode too!

VBR means "variable bitrate" and, in contrast to CBR mode, VBR mode allows the bitrate to vary/fluctuate.
Thus the VBR mode enables the encoder to adapt the bitrate with respect to the content of the audio. Parts of
the audio that are "easy" to compress will get a lower bitrate in order to avoid wasting bits there. At the
same time, parts of the audio that are "hard" to compress will get a higher bitrate in order to avoid quality
degradation. Or in other words: VBR mode "moves" the bits to the locations where they are actually needed!
Therefore the VBR mode achieves a much better compression efficiency than the CBR mode. This means with VBR
mode you can get a better quality at the same file size - or the same quality at a smaller file size. One
disadvantage of the VBR mode, however, is that the final size of the compressed file can NOT be predicted.
The resulting file size now is defined as "duration × average_bitrate", but the average bitrate is NOT
known beforehand. That's because the average bitrate for a specific VBR quality level can vary greatly,
depending solely on the complexity of the individual audio. With VBR mode the encoder uses as many bits as
required to achieve the desired level of quality. That clearly makes VBR the preferred encoding mode.

ABR means "average bitrate". You can think of ABR mode as a compromise between the CBR and VBR mode. With ABR
mode the bitrate is allowed to vary/fluctuate, similar to VBR mode. However the ABR mode doesn't work with a
predefined/fixed quality level, as VBR mode does. Instead in ABR mode the encoder will continuously re-adjust
the quality level in order to hit the target average(!) bitrate. You can also think of ABR mode as a mode
that pre-allocates the bits in a CBR-like fashion and then redistributes the bits within a local neighborhood
as needed. Thus the ABR mode combines advantages of CBR mode (predictability) and VBR mode (higher quality).
The final size of the encoded file is still defined as "duration × average_bitrate", but with ABR mode the
average bitrate *is* known beforehand. So if you need to hit a specific file size, ABR mode is the solution.
Using ABR mode is to be preferred over CBR mode. Nonetheless VBR mode usually provides the best experience.


Hint: The Nero AAC encoder supports a variant of the ABR mode, the so-called "2-Pass" mode. That mode scans
through the entire file once (first pass) before the actual encoding is performed (second pass). This way the
encoder is able to distribute the bits over the entire file and still hit the desired target average bitrate.
It should be obvious that the advantages of the "2-Pass" mode come at the cost of increased encoding time.

Hint: A common mistake done by people comparing rate control modes is choosing a bitrate that is too high. Of
course only files of an identical (average) bitrate can be compared by quality. But if that bitrate is chosen
too high, you won't be able to draw any conclusions from the test. That's because at a certain bitrate even
the CBR mode will retain excellent quality. In that situation VBR mode or ABR mode can't give an even better
quality for obvious reasons. But drawing the conclusion that there is no difference between CBR mode and the
VBR/ABR modes would be very wrong! The differences will become significant when using a reasonable bitrate.
Another mistake is starting with a low-quality source file and concluding that all modes perform equally bad.


SUMMARY ON RATE CONTROL MODES:


How do I enable AAC/MP4/M4A output (encoding) in LameXP?

LameXP uses the Nero AAC Encoder for creating AAC/MP4/M4A files. The Nero AAC Encoder is available as a free
download. However the license doesn't allow redistribution! Therefore we can NOT ship the Nero encoder along
with LameXP. Instead you will have to obtain the Nero encoder as a separate download from the official "Nero
Digital" web-site. Currently you'll find the latest Nero AAC Encoder version at this location:

After you have downloaded the Nero AAC Encoder as a ZIP file, you must "install" the encoder binaries, so
LameXP can use them. Simply unzip the files 'neroAacEnc.exe', 'neroAacDec.exe' as well as 'neroAacTag.exe' to
the same directory where your LameXP executable ('LameXP.exe') is located. For unzipping the ZIP file you can
use any suitable archiver, such as WinRAR or 7-Zip. Once the required Nero encoder binaries are located in
the LameXP directory, the AAC encoding option should be "enabled" on the next startup of LameXP.


QAAC Encoder

Optionally LameXP supports the QAAC encoder, i.e. the AAC encoder used by QuickTime and iTunes. Just like the
Nero AAC encoder, the QAAC encoder can NOT be redistributed along with LameXP. Thus if you want to use the
QAAC encoder, then you have to install QuickTime v7.7.1 (or newer). Alternatively iTunes v10.5 (or newer) can
be installed. Both, QuickTime and iTunes, can be downloaded for free from the official Apple web-site.

In order to enable the QAAC Encoder support you will also need the 'QAAC Encoder Add-in' for LameXP:

Please follow the install instructions that are included with the 'QAAC Encoder Add-in' download package!
Note that you do NOT need to install this Add-in, if you only want to use the Nero AAC Encoder.


FHG AAC Encoder

Optionally LameXP also supports the FHG AAC Encoder now. Just like the Nero encoder, the FHG encoder can NOT
be redistributed along with LameXP. However the FHG AAC Encoder is included with Winamp v5.62, which is
available as a free download (you don't need to buy the "Pro" version!) from the official Winamp web-site at:

In order to enable the FHG AAC Encoder support you will also need the 'FHG AAC Encoder Add-in' for LameXP:

Please follow the install instructions that are included with the 'FHG AAC Encoder Add-in' download package!
Note that you do NOT need to install this Add-in, if you only want to use the Nero AAC Encoder.



Is there a way to output ".m4a" or ".aac" files with LameXP?

LameXP uses the Nero AAC Encoder for AAC encoding. And the Nero encoder always puts the AAC streams into an
MP4 (MPEG-4 Part 14) container - in almost any case that is exactly what you want/need! The one and only
"correct" file extension for MP4 files is '.mp4'. However sometimes the "incorrect" file extension '.m4a' is
used to indicate "audio-only" MP4 files. Even worse: There are some buggy (hardware) players that will
recognize MP4 audio file only with the "incorrect" .m4a extension, but NOT with the "correct" .mp4 extension.
Of course LameXP will save your MP4 files with the "correct" .mp4 extension. But if you need your MP4 files
with an .m4a extension for some reason, you can simply rename(!) these files. Renaming isn't more or less
"incorrect" than saving the files as .m4a directly. After all, an MP4 file remains an MP4 file.

Warning: While renaming .mp4 files to .m4a (or vice versa) is safe, because both file extensions refer to MP4
files, you must NOT rename any .mp4/.m4a files to .aac (or the other way around). That's because the '.aac'
extension is used with "raw" AAC streams (ADTS format), i.e. AAC streams that are explicitly NOT stored in an
MP4 container! Unfortunately the Nero AAC encoder has NO option to output "raw" AAC streams. And usually you
don't need such streams. Still, if you really need to extract the "raw" AAC stream (.aac) from an MP4 file,
you can simply use MP4Box for that purpose. Please note that YAMB is a great MP4Box GUI created by Kurtnoise.



How do I enable WMA input (decoding) in LameXP?

LameXP now uses its "built-in" WMA decoder, thanks to 'wma2wav'. However it has to be noted that the WMA
decoder relies on the Windows Media Format Runtime. All supported versions of Microsoft Windows should have
the Windows Media Format Runtime installed as part of the Windows Media Player. But Wine does not! In case
you encounter problems with the WMA decoder, try installing the Windows Media Format Runtime manually. This
should also work under Wine. The 'N' or 'KN' editions of Windows 7 need the Windows Media Feature Pack.



How can I use LameXP as a "portable" application?

LameXP always is "portable", in the sense that the application works out of the box: LameXP does NOT require
any additional software, such as codecs, encoders, decoders or runtime libraries, and it will NOT install
anything of that kind on your local computer! All the third-party tools used by LameXP are already built-in.
There currently are two notable exceptions: The Nero AAC encoder and the WMA decoder cannot be redistributed
along with LameXP for legal reasons. Therefore these tools have to be obtained as separate downloads.

Having said that, LameXP stores its configuration file in the %LOCALAPPDATA% folder on the local computer.
That's because on a modern multi-user operating this is the only "correct" folder to store user-specific
configuration files. Also it's one of the few folders where an application is guaranteed to get write-access,
even when the application was launched by a "normal" (non-admin) user and did not request elevated rights.
Storing the configuration file in the "install" folder is antiquated and highly error-prone.

Still some users may want to store the configuration file in the same folder as the LameXP executable file,
e.g. when launching LameXP directly from their USB stick on different computers. For this purpose LameXP now
offers a "true" portable mode. You can enable that mode simply by renaming the LameXP executable file to
"LameXP-Portable.exe". But be aware: When running LameXP in the "portable" mode, the user(!) must ensure that
write-access is granted to the directory where the LameXP executable is located.



Is there a way to use custom tools (binaries) with LameXP instead of the "built-in" ones?

LameXP uses a number third-party tools. All of these tools are already "built-in" (with a few exceptions) and
thus it is NOT required to provide separate binaries. Usually it will NOT be necessary to replace any of
the "built-in" tools with a custom (user-provided) binary. If, however, you need to replace/update/downgrade
one of the binaries for a good reason, the recommended method is re-building LameXP from the sources. If you
don't know how to build LameXP from the sources, then you probably shouldn't be trying to replace the binary.

Having said that, there now is a more convenient method for using a custom tool version (binary) instead of
the "built-in" one. This method works WITHOUT re-building LameXP. However note that the following is intended
for testing and debugging purposes only! Also note that LameXP was specifically designed to work with the
"built-in" versions of the tools. It may not work properly or may not work at all with custom tool versions!

In order to replace a "built-in" binary, simply put the user-provided binary to the following location:
<install_folder>\tools\<build_number>\<tool_name>.exe
If, for example, you want to replace 'lame.exe' in Build #666 of LameXP, you would put it to the this path:
C:\Path to your LameXP install folder\tools\666\lame.exe
(It is intended that the '<build_number>' part of the path has to be adjusted with every update of LameXP)



The LameXP startup (splash screen) takes very long on my system. What can I do?

Starting up LameXP shouldn't take longer than approximately 10 seconds. However it was brought to our
attention that badly optimized anti-virus software can slow down the startup procedure a lot! On our test
system (Windows 7 running on an Intel Core2 Q6600 with 4 GB of RAM) starting up LameXP takes about 3 seconds
without an anti-virus software and about 6 seconds with the "real-time protection" of Microsoft Security
Essentials enabled. With other anti-virus software the startup was delayed up to 20 seconds and more!

So if you think that LameXP is starting up too slow on your system, you should temporarily(!) disable or
uninstall your current anti-virus program and try again. Usually it should be sufficient to disable only the
"real-time protection", "file system protection" or "guard" feature of your anti-virus software. If it turns
out that the startup is significantly(!) faster WITHOUT the anti-virus software, please report the problem to
the developer of the anti-virus software. And, if they don't fix the problem, switch to a better product!



Why is there a time limit (expiration) in my version of LameXP?

LameXP is free software, released under the GPL. This means that you may use LameXP for free and without any
restrictions. More specifically, there is NO time limit (expiration) in any "Release" versions of LameXP!
Nonetheless, the "Beta" (pre-release) versions of LameXP will expire 30 days after build date. That's because
these "Beta" versions are intended for testing and evaluation only. They are NOT intended for productive use.
After the 30 days have expired, you will have to update your "Beta" version of LameXP to the latest version.
Usually there will be frequent updates for "Beta" versions though. So, most of the time, a new update will be
available even before the previous build has expired. We highly recommend to install all updates as soon as
possible instead of waiting for the expiration. If you are NOT willing to update LameXP regularly, stick with
the "Release" version. The "Release" versions of LameXP are updated less frequently and they won't expire.

Note: We are well aware that the expiration mechanism implemented in LameXP can be circumvented quite easily,
if you really want to. But implementing a "better" mechanism is pointless for an OpenSource software ;-)



Is there a way to hide/show the LameXP console ("DOS Box") window?

It is common for many people to run an alleged "DOS" program inside Windows, using a so-called "DOS Box".
Everything works fine. But when you try to run such a program in DOS, you get an ugly message "This program
cannot be run in DOS mode". What's wrong? Well, the affected program is NOT a "DOS" one. It is a Windows
Console program. "DOS" is NOT a synonym of Console. And "Windows" is NOT a synonym of GUI (Graphical User
Interface). Both, DOS and Windows programs, can be either Console or GUI. Actually Windows programs can be
Console *and* GUI at the same time, i.e. a Windows GUI program can have a Console attached.

LameXP is a GUI program for Windows. However it can have a "Debug" console attached. The purpose of this
console is providing users an insight into what's happening behind the scenes. While the console is mainly
intended for developers, it may be helpful for "regular" users too. Nonetheless you usually will NOT need the
console, unless something is going wrong. Therefore the LameXP console is disabled by default in all
"release" builds. You can enable the console by passing the "--console" command-line parameter, if required.
At the same time the console is enabled by default in all "beta" (pre-release) builds of LameXP. You can
still disable the console by passing the "--no-console" command-line parameter, if you don't like it.

WARNING: Any attempt to close the LameXP console window will kill the application immediately !!!



Why does application 'xyz' not open the Wave files created by LameXP?

Some of the decoders used in LameXP will insert an additional 'JUNK' chunk into the Wave/RIFF file, right
before the 'fmt' chunk ("Wave header"). There are technical reasons why this 'JUNK' chunk (placeholder) might
be needed at the beginning of the file. The 'JUNK' type is a standard RIFF type and, by definition of the
RIFF file format specification, any reading application must ignore/skip all 'JUNK' chunks it may encounter!
Evidently most reading applications do so and thus will correctly open the Wave file. Unfortunately it was
brought to our attention that there are a few broken(!) applications, which reject Wave/RIFF files with an
additional 'JUNK' chunk in front of the 'fmt' chunk. It seems that these applications make false assumptions
and expect the 'fmt' chunk to be located at a fixed position, rather than parsing the RIFF structure.

While it is evident that applications, which reject the Wave/RIFF file because of the extra 'JUNK' chunk, are
broken with respect to the RIFF specification and should be fixed by the respective author, there is an easy
workaround: Re-saving the Wave/RIFF file with SoX creates a file that even the broken applications seem to
accept, as SoX apparently doesn't insert any 'JUNK' chunks (although it would be free to do so!) Re-saving
your Wave file with SoX does NOT change the actual content at all, as long as no additional filters are used.

You can use a command-line like this:
sox.exe "c:\some path\input.wav" "c:\some path\output.wav"


Why does LameXP run (only) N instances/threads in parallel on my computer?

LameXP is able to run multiple instances of the encoder or decoder in parallel. This is done in order to
maximize the CPU utilization on modern "multi-core" processors, which will significantly speed up the overall
encoding process. However be aware that LameXP uses file-based parallelization. This means that the maximum
number of instances that can run in parallel is limited by the number of files that are processed. If, for
example, you convert only a single file, then NO parallelization will be possible. If, instead, you convert
multiple files at once, then LameXP can run as many instances in parallel as files are being converted.

Within the aforementioned limitations, LameXP will selected the number of parallel instances based on the
number of available processors (CPU cores) on the individual system. However LameXP will NOT use a one-to-one
mapping! Instead a custom-made 'cubic spline' function is used to map the number of CPU cores to the maximum
number of instances. This function has the following properties: On systems with at most four CPU cores, the
maximum number of parallel instances will be identical to the number of CPU cores. On systems with eight CPU
cores, the maximum number of parallel instances is six. On systems with 16 cores, the maximum number of
parallel instances is eight. On systems with 32 cores, the maximum number of parallel instances is eleven.
And on systems with 64 cores, the maximum number of parallel instances is 16. 16 is the upper limit.

thumb

You may wonder why LameXP doesn't always create one instance for each CPU core. In theory, the more instances
we run in parallel, the more CPU cores can be utilized - until all CPU cores are busy and the overall CPU
usage approaches 100%. In reality, however, there are some "shared" resources on each computer. And, the more
instances we run in parallel, the more processes will be competing for these shared resources! Specifically,
the amount of main memory (RAM) is limited. Creating a huge number of instances in parallel can easily use up
all RAM, which will then cause the operating system to make heavy use of the page file. This can result in
HDD thrashing and hence may significantly hurt the overall performance! But even in case there is enough RAM
available on the system, each encoder or decoder instance needs to access the HDD quite frequently, e.g. for
reading from the input file and for writing to the output file. Thus running too many instances will generate
more I/O operations than the HDD can handle, which will result in an I/O bottleneck. In this situation the
processes will spend more and more time waiting for I/O operations to finish - rather then doing useful work.

In other words: There will always be some point at which creating even more instances will actually slow down
the overall process! On systems with many CPU cores, this point might be reached BEFORE all cores are busy.
Even on the Quadcore computer, which is used to develop/test LameXP and which runs "only" four instances in
parallel, we sporadically notice significant drops of the CPU usage, obviously caused by HDD overstressing.
If, however, you think that LameXP's choice of the number of parallel instances is too conservative, you may
overwrite the number of parallel instances on the "Advanced Options" tab - the upper limit is 16 for now.
Finally, note that LameXP only controls the number of instances that will run in parallel, but it does NOT
control how many threads an individual instance will create! Some encoders use "built-in" multi-threading and
thus a single encoder instance may create several threads - LameXP has no control over that.



Why does LameXP try to connect to the web-server at 'xyz.com' secretly?

LameXP does NOT connect to any web-server secretly! Of course the 'Auto Update' feature of LameXP unavoidably
has to connect to one of our update servers. However in no event LameXP will search for updates without your
agreement. Also LameXP will NOT send any personal information to the update server. It won't even send your
program version to the server. Instead the latest version number will be downloaded from the server first and
will then be compared to your current version number on the local computer. Moreover all information obtained
from the update server are protected with a digital signature (GnuPG) in order to prevent spoofing attacks.

Note: As LameXP is a non-profit project, we cannot afford a huge server infrastructure. Therefore the update
server may be overstrained or unavailable once in a while. As we need to be able to distinguish the case in
which our server is failing from the case in which your local internet connection has a problem, LameXP will
run a short connectivity test on your local system first. For this purpose LameXP contains a list of 64 known
hosts, taken (mostly) from the well-known Alexa 'top 500 sites on the web' listing. LameXP will assume that
your internet connection is working properly if a certain minimum number (currently four) of the known hosts
is reachable. That's also the reason why you may notice LameXP is trying to connect to a "random" web-site.



How can I force LameXP to create ID3 version 2 (ID3v2) tags?

The LAME encoder automatically chooses the proper ID3 tag version. By default it will create a version 1 tag,
if possible. Only if the information cannot be embedded into a version 1 tag (ID3v1), e.g. because the string
is too long or the string contains Unicode characters, a version 2 tag (ID3v2) will be added. This behavior
is advisable, because devices that support ID3v2 tags should also be able to read ID3v1 tags - but this
doesn't apply the other way around! Moreover embedding an ID3v1 and an ID3v2 tag at the same time, although
the information would have fit into a single ID3v1 tag, means an unnecessary redundancy!

If, however, you need to enforce the creation of an ID3v2 tag for some reason, you can use the "--add-id3v2"
parameter for that purpose. Simply add the parameter to the "Custom Encoder Parameters" for LAME.

That's what the LAME help says about ID3 tags:
A version 2 tag will NOT be added unless one of the input fields
won't fit in a version 1 tag (e.g. the title string is longer than 30
characters), or the '--add-id3v2' or '--id3v2-only' options are used,
or output is redirected to stdout.


What does the LAME algorithm quality option do exactly?

The sound quality of MP3 files is influenced primarily by the chosen bitrate (ABR/CBR mode) or by the chosen
VBR quality level. These options control the "file size -vs- quality" trade-off. That means, you can get a
better quality at the cost of a bigger file (increased bitrate); or you can get a smaller file at the cost of
reduced sound quality (decreased bitrate). The "algorithm quality" is yet another way to control the quality.

While the chosen bitrate (or VBR level) influences the resulting file size, the algorithm quality does not!
Instead, the algorithm quality controls the "encoding speed -vs- quality" trade-off. That means, you can get
a better sound quality at the cost of increased encoding time (higher algorithm quality); or you can get a
faster encoding speed at the cost of reduced sound quality (lower algorithm quality). Note that while the
algorithm quality does influence the encoding speed, it does NOT influence the decoding speed at all. Also
note, again, that the chosen algorithm quality does NOT influence the resulting file's bitrate at all.

The LAME algorithm quality is an integral value between "0" (best/slowest) and "9" (worst/fastest), but NOT
all of the possible values currently have a distinct effect! More specifically, the following table applies:

For CBR and ARB modes: For (new) VBR mode only:
The "algorithm quality" options available in LameXP will be mapped to "0", "3", "7" and "9", respecitly. Note
that option "0" (best quality) is only very slightly better than "3" (high quality), but significant slower!



Can LameXP be used to convert/extract tracks from an Audio CD?

LameXP can be used to convert audio files that have been extracted from an Audio CD, but it can NOT extract
or read the audio tracks from the Audio CD directly (yet). Consequently you will have to extract ("rip") the
audio tracks first, before you can convert them with LameXP. We recommend using the Exact Audio Copy software
for that purpose. When ripping tracks from an Audio CD you should always save the tracks as uncompressed Wave
files or as lossless FLAC files! This will avoid a quality loss during the extraction/ripping process.

Warning: The Windows operating system will show CDA files (such as "Track01.cda") on an Audio CD. These are
dummy/fake files! Actually an Audio CD does NOT contain a file system and thus there are NO files. There only
are audio tracks on an Audio CD. These audio tracks can be extracted as files (e.g. Wave Audio files) using a
ripping software and then the extracted files can be converted. At the same time any attempt to copy/convert
the '.cda' files directly is destined to fail (as the '.cda' files do NOT actually contain any audio data).



Why is the maximum normalization level limited to -0.5 dB?

When an analogue [audio] signal is converted to the digital domain, the signal is sampled at a fixed rate
(e.g. 44100 samples per second) and each "sample" value is stored with a fixed number of bits (e.g. 16 or 24
bits per sample). Consequently [uncompressed] digital audio is represented as a sequence of binary sample
values. The range of possible sample values is determined by the word size ("bits per sample"). For example
with a word size of 16 bit, the minimum value is −32768 and the maximum value is 32767 - assuming the values
are signed. The range of the sample values corresponds to the voltage range of the electrical input signal.
The maximum digital sample value (i.e. 32767 at 16-Bit) often is referred to as 0dBFS (0dB "full scale").

Performing a Normalization in the digital domain seems straightforward: We simply multiply all sample values
with the same factor. And we choose this factor in such a way that the highest sample value(s) in the track
will become exactly 0dBFS after the normalization has been performed. However one needs to be aware that when
playing back the digital audio track, it needs to be converted back to an analogue signal. The D/A converter
will convert each sample from its binary representation to the corresponding voltage. Then a "reconstruction"
filter will be applied in order to recover a continuous signal from these individual voltages. And for the
reconstructed analogue signal it is possible to have voltages that are higher than the highest digital sample
in the audio track! This is illustrated in the following image (samples are represented as tiny squares):

thumb

Consequently normalizing the sample values to 0dBFS is NOT a very good idea, as this may very well result in
a reconstructed analogue signal which exceeds(!) 0dBFS. And, as the analogue parts of the playback equipment
generally are NOT prepared for +0dBFS voltages, this may cause problems, such as annoying distortions!

The help document of a well-known audio editing software contains the following advice:
If you're planning to put normalized audio on CD, you might want to normalize the waveforms to
no more than 96% [-0.36 dB] as some audio compact disc players have problems accurately reproducing
bits that have been processed to 100% (maximum) amplitude [0dBFS].
For details please refer to the following article:


What do the different 'Equalization' modes do?

The "equalization" modes control how the normalization filter will deal with multi-channel input files, i.e.
everything that is not Mono. The "Peak Level" mode will normalize each channel according to its highest peak
(maximum sample value). This means that channels with a lower maximum sample value will be amplified stronger
than channels with a higher maximum sample value. Still all samples in a channel will be amplified by the
same factor, so dynamic range compression is NOT done. The "RMS Level" mode works similar to the previous
mode, but the channels are amplified according to their peak RMS level (maximum energy), instead of their
maximum sample value. This may be used to correct stereo imbalance caused by an imperfect record turntable
cartridge. Last but not least, the "None" mode will not euqalize the channels at all, i.e. all channles will
by amplified by the same factor. In the last mode, the highest peak of all(!) channels is used as threshold.



Why does my encoded file come out slightly longer than the original?

Because of the way most (lossy) audio compressors work, a number of "silent" samples have to be prepended to
the first input sample. Also a number of silent samples may be appended to the last input sample. Obviously
these additional "padding" samples will make the encoded file longer than the original input. If the decoder
does not compensate for the padding samples that have been added by the encoder, the padding samples at the
beginning of the encoded file will cause a certain delay/shift, compared to the (uncompressed) original file.
Another effect is that there will be a "gap" between the files, when playing multiple files in sequence.

It has to be noted that the padding is an inherent property of the audio compressor that can not be avoided.
But, as mentioned before, the padding samples can be removed by the decoder. In that case, the decoded output
will have the exactly same length (in samples) as the original file. However this can only be done, if the
decoder is able to determine the exact number of padding samples that had been added. While the Vorbis audio
format stores the number of padding samples in the stream and thus any compliant decoder will remove them,
the MP3 and AAC audio formats do NOT define an "official" way to store the the number of padding samples!

Nonetheless, the LAME MP3 encoder, which is used by LameXP, uses its own "non-standard" way to indicate the
exact number of padding samples. This is done by adding a so-called "LAME header" to the MP3 file. Hence MP3
decoders, which recognize the LAME header, will be able to remove the padding samples. This feature often is
referred to as "gapless" decoding/playback. The 'mpg123' decoder, which is used by LameXP, does support the
gapless decoding. This means that if you encode MP3 files with LameXP/LAME, then gapless decoding will be
possible. And if you decode these files with LameXP/mpg123 again, they will come out at the original length.

Still you have to be aware that NOT all MP3 decoders support the LAME header. So if you encode MP3 files with
LameXP and then decode them with an arbitrary MP3 decoder, they may come out at a "wrong" length. And there
is absoloutely nothing that LameXP could do about that! Furthermore, if you decode a MP3 file in LameXP that
has been created with some MP3 decoder which did not add a LAME header, then it is impossible to remove the
padding samples. That's because in this situation there is NO way to know the number of padding samples!

Some more info on this topic can be found here:


Why is the Hibernation option disabled (greyed out) on my system?

In order to use "Hibernation", your system must support the S4 power saving mode (aka "Suspend-to-Disk") and
the hibernation file ("hiberfil.sys") must be enabled. If these conditions are not met, then the Hibernation
option will be disabled in LameXP, for obvious reasons. Note that on older versions of Windows you can enable
or disable the hibernation file in the "Power Options" dialog of the Control Panel (see here). On Windows 7
and probably also on Vista, you have to do this from the Windows command interpreter. First open an elevated
command prompt by typing "cmd" in the Startmenu (not "Run" dialog!) and when "cmd.exe" appears as suggestion,
then right-click on "cmd.exe" and choose "Run as administartor". After that you should see an "Administrator"
command prompt window. Here you can type "powercfg -h on" (without the quotation marks!) and press Enter to
enable the hibernation file. You can disable the hibernation file again by typing "powercfg -h off".

Note: The size of "hiberfil.sys" is equal to your RAM size and it always is located on the system partition!



Why do random files fail with "Not Found!" or "Failed!" status?

If a file fails to convert with "Not Found!" or "Failed!" status, this usually has a reason! In that case you
can double-click on the failed item in order to view the log. The log will give detailed information about
the problem that has occured. In very rare cases, however, the following behavior has been observed by users:
When converting multiple files, some of the failes seem to fail at random. When the same files are converted
again later, some of the files that failed before will now succeed while some of the files that succeeded
before will now fail. This behavior has been tracked down to faultily "anti-virus" software! So in case you
encounter the described behavior and if you use some anti-virus software with "real-time scanner" or "guard"
functionality, then try to uninstall (or at least disable) the anti-virus software. If that resolves the
problem, then you know for sure that the anti-virus software was the cause of the problem. As the developers
of LameXP can NOT fix or workaround problems induced by faultily "anti-virus" software, please report such
problems to the developer (or support team) of your anti-virus software! Or switch to a better a/v product...



Why is "Convert this file with LameXP" missing from the Explorer context menu somtimes?

The entry "Convert this file with LameXP" will be available from the Windows Explorer context menu for all
files supported by LameXP, if (and only if) the LameXP Shell-Integration is enbaleld. You can enable or
disable the LameXP Shell-Integration at any time from the "Tools > Configuration" menu within LameXP at any
time. However be aware that this option will NOT be available, if LameXP is running in portable mode. Also be
aware that if you select multiple files in Explorer, the LameXP context menu entry will only appear, if ALL
files in your selection are supported by LameXP. Last but not least, Windows will NOT show the LameXP context
menu entry, if more than 15 files are selected. That is a limitation of Windows Explorer! It is "by design".

See also:
Context menus are shortened when more than 15 files are selected



Why do I get the error 'Executable doesn't support Windows compatibility mode' on startup?

LameXP was designed to run on all supported platforms natively (except for Linux/Wine). If you see this error
message, that's probably because your system is configured to run LameXP in 'compatibility mode', i.e. your
system will pretend an older OS version than is actually running. In Windows Explorer you can disable(!) the
compatibility mode by right-clicking on the 'LameXP.exe' file, choosing 'Properties' from the context menu,
switching to the 'Compatibility' tab and un-checking the 'Run this program in compatibility mode' option.



Why do I get the error 'Executable requires Windows 2000 or later' on startup?
Why do I get the error 'The procedure entry point <Something> could not be located' on startup?
Why do I get the error 'LameXP.exe is not a valid Win32 application' on startup?

You are trying to run LameXP on a platform that is NOT supported, such as Windows 95, Windows 98, Windows
Millennium Edition, Windows NT 4.0. There is nothing you can do about that, except for updating to a less
antiquated OS. Running an outdated and unsupported OS is a severe security risk anyway!

Note: This error can also occur, if your system has been configured to run LameXP in compatibility mode.



Why do I get the error 'A device attached to the system is not functioning' on startup?

This error message from the Windows operating system is somewhat misleading. It often appears together with
a second error message and it means that Windows was unable to load/execute the program file. There are
various reasons why this error might occur, but usually it indicates that you are trying to run LameXP or the
LameXP setup/update program on a platform that is NOT supported, such as Windows 95, Windows 98, Windows
Millennium Edition, Windows NT 4.0. There is nothing you can do about that, except for updating to a less
antiquated OS. Running an outdated and unsupported OS is a severe security risk anyway!



Why do I get the error 'File ´tool_foobar.exe´ could not be locked!' on startup?

This error indicates that LameXP was unable to open/read a required file - one that it just has extracted
itself. Generally this should never happen, but we have reports that some bogus "anti-vrius" software might
trigger this kind of errors. Of course there is nothing we can do on our side, if the error is induced by
proprietary third-party software (such as faulty "anti-virus" software). So please try to temporarily(!)
uninstall/disable your anti-virus software. If the problem goes away, you can be sure it was caused by the
anti-virus software. In that case report the bug to the support team of your anti-virus software as soon as
possible. Or, if they don't fix the bug (in due time), switch to a better anti-virus product!

See also:
My anti-virus program raises an alarm when I try to download, install or launch LameXP. Why is that?



How can I translate LameXP to my language or improve an existing translation?

Please see the guide for translators at:


Where can I download the latest version of LameXP?

The latest "official" release of LameXP can be found on the following mirrors:


Where can I submit bug reports or feature requests?

The preferred place to report bugs or request new features is the LameXP thread at Doom9's Forum:

Please do NOT send me E-Mail unless you really have to! I receive a LOT of E-Mail and your mail can get lost!



What programming language is LameXP written in?

While LameXP v3.xx and all earlier versions were written in Delphi/Pascal, starting with version 4.xx the
software has been re-written in the C++ programming language. LameXP v4.xx is based on the Qt cross-platform
application framework and offers full Unicode support. For the time being LameXP is Windows-only.



Where can I find the LameXP source code?

LameXP is developed using the Git revision control system. You can access one of the public mirrors:

In case you are new to Git or want to extend your knowledge, have a look at the Pro Git book by Scott Chacon!
For Windows users, we highly recommend using MSYS Git in conjunction with the superb Tortoise Git front-end.



What are the prerequisites to build LameXP from the sources?

LameXP is currently being developed using the following build environment:

Also note the following hints:

In order to use the LameXP deployment scripts you need the following tools:


How do I compile latest Qt as 'static' libraries?

In order to make "fully static" builds of LameXP, i.e. builds that don't depend pn any DLL's except for the
obligatory operating system DLL's, you'll need to compile Qt as 'static' libraries. The following simple
instructions should make it easy to build Qt from the sources and as "static" libraries:


eof