EAC Compression Options

From Hydrogenaudio Knowledgebase
Revision as of 14:58, 21 August 2021 by Korth (talk | contribs) (added 'Locked' template; minor edit)

This article was updated to reflect compression options in EAC v1.0b2 and later. For information about prior versions see [EAC Compression Options (pre-v1.0b2)].

In Exact Audio Copy’s compression options dialog (keyboard shortcut: F11) are found all options regarding the creating of compressed audio files. Here the user specifies how EAC is to behave when they press the CMP Button in the main window or select compressed items under the Action menu.

Note: many options are dependent on the codec or external compressor (encoder). So, often no clear recommendation can be given. It is important that the user has a general understanding of what these settings do and how they possibly change the behavior of EAC and/or the codec/external compressor.


EAC compression options, Waveform tab

This tab allows you to select and choose the options for an internal codec. After audio data is read from the CD, EAC will pass it to the codec, and will write the codec's output to a file. Generally speaking, EAC’s internal codec support is for writing unusual WAV files (e.g. containing audio in the ADPCM format or as a rare way of storing MP3 data), although the options do allow for writing other formats.

An internal codec is a CBR (constant bit rate) audio converter library managed through the Windows Audio Compression Manager (ACM) legacy interface, and it typically has a filename ending in .acm. Windows comes with a few such codecs installed already. These aren’t programs you run directly; they’re just converters invoked from within another program, e.g. EAC.

Today, most people ripping music CDs don't use internal codecs; they use an external compressor, which is configured in the External Compression tab. An external compressor is a separate program that can be run directly from a command shell with various arguments telling it which file to compress, what tags to add, the output filename, etc.

Wave format

In this drop down box, all codecs installed on your system are listed. When new codecs are installed, they should show up in this list. The codec to choose depends on what should be achieved with the compression (sample format, compression ratio, etc.).

Sample format

With this option, different combinations of parameters for the compression and output format can be chosen, such as sample rate, resolution, mono/stereo. Which options are available here depends on the codec selected at the Wave format option (e.g. some codecs only support 4 bit resolution).

If you were to choose Microsoft PCM Converter as the codec, and 44,100 Hz, 16 Bit, Stereo as the output format, it would be the same as doing an uncompressed CD rip.

Add ID3 tag
Default: disabled
Recommended: enabled

Some formats (e.g. MP3) support ID3 tags. When this option is enabled, EAC will add these tags to the compressed files (only if the internal codec file format supports ID3 tags).

Do not write WAV header to file
Default: disabled

The codec only converts the audio data. EAC writes it to a file. This parameter determines whether to include a WAV header in the file.

Although it has become a de facto standard that WAV files contain 16 bit, 44.1 kHz stereo PCM audio data (as on audio CDs), what actually makes an audio file a WAV file is not the format of the audio data itself but the presence of a WAV header at its beginning. The header specifies which data chunk(s) are in the file (normally there's just a single chunk consisting of all the audio), info about what format it’s in, and possibly some other rudimentary metadata. When such a header is present, EAC will ensure the output filename ends with .wav.

If you have chosen a codec that outputs PCM data, then you probably do want a WAV header and filename ending in .wav, so this option should be enabled. But if you have chosen a codec that outputs MP3 or Ogg Vorbis data, then the WAV header is optional, and in fact is probably not what you want, unless you have a specific need to put the compressed audio into a WAV file.

For example, if you choose an MP3 codec, and you have this option disabled, then you'll generate an ordinary MP3 file, and therefore you should enter .mp3 in the next box (file extension for headerless files) to make sure it has a helpful filename. But if you choose an MP3 codec and you have this option enabled, then you'll generate an MP3 file that begins with a WAV header, and the filename will end in .wav, and is likely to be confusing.

File extension for header files
Recommended: .raw

When the Do not write WAV header to file option is enabled, a filename extension for the output files can be specified here (e.g. .mp3 for MP3 files). If the above option is disabled, this setting gets greyed out automatically.

Quality setting
Default: Low quality (fast)
Recommended: High quality (slow)

Some internal codecs support a quality setting to choose between a higher quality of the output files or faster encoding speed. If quality is the only matter, leave this option at the default, which is High quality (slow).

Note: EAC offers this choice of quality settings even if the selected codec doesn't use it.

External Compression

EAC compression options, External Compression tab

In this tab, all options for external compressors can be configured. As all settings are highly dependent on the particular compressor, most settings are only described here in general terms because often no specific recommendations can be given; but see the many EAC guides (also linked below) written by Hydrogenaudio users for in-depth advice on topics including configuring various external encoders.

General recommendation: To avoid unwanted side effects and to be able to configure the encoding process in every detail, User Defined Encoder should be used as Parameter passing scheme and all options should be specified via the Additional command-line options only.

"Side effects" basically means that it is a little complex what options have which effect when another Parameter passing scheme is specified (e.g. some settings are ignored completely). These side effects are explained in the following parameters, but specifying User Defined Encoder and using the command-line options only is a lot more convenient.

As mentioned above, there are also a few articles with details about how to configure EAC to use particular encoders:

Use external program for compression
Default: disabled
Recommended: enabled

To use an external compressor, this setting needs to be enabled.

Parameter passing scheme

EAC comes with a few presets concerning external compressors and the required parameter passing scheme; they can be selected with this option (e.g. the Bit rate box will show all available options after a particular compressor was chosen here). But in general, the capabilities of EAC in passing parameters to external compressors are limited. In order to overcome some of these limitations, you can and should use the Additional command-line options for to pass parameters. The usual approach is setting the Parameter passing scheme to User Defined Encoder and using the Additional command-line options to specify all the encoding options.

Use file extension

When using a User Defined Encoder as above, a file extension must be specified here. This should be the extension of the encoded file type (e.g. .flac when using a FLAC encoder and .mp3 when encoding to MP3).

Program, including path, used for compression

The absolute path to the program used for compression (e.g. C:\Program Files\LAME\lame.exe). By clicking on the Browse... button, this path can be chosen by a file dialog.

Additional command-line options

Here additional parameters for the external compressor can be specified. To configure the additional command-line options, you can use the placeholders listed below (taken from the EAC FAQ. For a comprehensive overview and by-version comparison of command-line placeholders, as well as those for Naming the output file, please see the dedicated page about EAC placeholders.

placeholder meaning
%source% Source filename
%dest% Destination filename
%original% Original filename (without temporary renaming)
%ishigh%…%ishigh% Text “…” only when “High quality” selected
%islow%…%islow% Text “…” only when “Low quality” selected
%haslyrics%…%haslyrics% Text “…” only when lyrics exist
%hascover%…%hascover% Text “…” only when storing cd cover is enabled and cover exists
%crcenabled%…%crcenabled% Text “…” only when “CRC checksum” selected
%title% Track title
%genre% MP3 music genre
%year% Year
%cddbid% freedb ID
%artist% Track artist
%lyrics% Lyrics
%lyricsfile% Filename of lyrics text file (ANSI)
%bitrate% Bitrate (“32?..”320?)
%comment% Comment (as selected in EAC)
%tracknr% Track number
%totalcds% Total number of CDs in the given CD set
%cdnumber% Number of the CD
%composer% Track performer
%trackcrc% CRC of extracted track
%coverfile% Filename of CD cover image
%numtracks% Number of tracks on album
%albumtitle% CD title
%albumartist% CD artist
%albumcomposer% CD composer
%albuminterpret% CD performer
%% The ‘%’ character

So, an exemplary EAC 1.0b2 or newer command-line for the LAME MP3 encoder could look like this :

-V 0 --vbr-new --ta "%artist%" --tt "%title%" --tl "%albumtitle%" --tg "%genre%" --ty "%year%" --tn "%tracknr%" --tc "%comment%" %source% %dest%

As you can see, the command-line options of LAME (e.g. -V 0, --ta, --tt, etc.) are used in conjunction with the EAC placeholders (e.g. %artist%, %title%, etc.) to control LAME using this command-line.

More examples are given in the article EAC and LAME, which -by the way- recommends enabling the Add ID3 tag option (in contrast to what is said below). In this case using the command-line parameters have no effect because EAC immediately overwrites the tags written by the encoder.

Bit rate

What is shown in this drop-down box depends on the Parameter passing scheme selected and specifies the bit rate/quality settings of the external compressor. This setting is also used to calculate the approximate size of the compressed tracks shown in EAC's main window.

In the case that User Defined Encoder is selected as the Parameter passing scheme, this setting does not have an effect unless the %bitrate% parameter is specified in the Additional command-line options.

Quality setting
Default: High quality
Recommended: High quality

Many encoders offer the choice between better quality or faster encoding speed. This option is designated to choose between these two settings, but the precise behavior depends on what is selected on the Parameter passing scheme:

If User Defined Encoder is chosen, this option does not have an effect unless the %ishigh%…%ishigh% and %islow%…%islow% parameters are used in the Additional command-line options (see below).

When any other Parameter passing scheme is used, this setting is reflected on the particular encoder. When using LAME for instance, High quality corresponds to the -h switch, whereas Low quality uses the -f switch (in this case, these switches specify the "Noise shaping and psycho acoustic algorithms", means choice between quality and encoding speed). This is another reason that it is advisable to use a completely custom User defined encoder; but if you do use another scheme, you will probably want to ensure that High quality is selected.

As already mentioned above, with this setting it is also possible to configure the Additional command-line option even further: by delimiting chosen portions of your command line with the placeholders %ishigh% and %islow%, you can specify two alternate settings for the external compressor to use depending on this option. The following example (simplified) shows how to use this feature (again with LAME):

%ishigh%-V0%ishigh% %islow%-V5%islow% --vbr-new %source% %dest%

In this case, if the High quality option is chosen, LAME will encode with -V0; whereas it will encode at -V5 when Low quality is selected.

Delete WAV after compression
Default: enabled
Recommended: enabled

If this setting is enabled, EAC automatically deletes the extracted WAV file after compression. If you do not need these files (of course the compressed files are kept) after extraction/compression, leave this option enabled.

Use CRC check
Default: enabled
Recommended: disabled

Some encoders have the ability to store a CRC checksum (cyclic redundancy check) in the resulting (compressed) file. This might be used then to check the consistency of this file during playback. But enabling this CRC check has two major drawbacks: First, this will add 16 bits (the CRC value) on every frame of the encoded file and will possibly increase the file size considerably. Second, many encoders do not support this feature very well because of calculating wrong CRC checksums. So usually players will simply ignore this information. This option also has no effect at all when selected User Defined Encoder at the Parameter passing scheme. Thus having more disadvantages, it is generally recommended to disable this option regardless of the encoder used.

When User Defined Encoder is chosen, this setting allows additional parameters to take effect using the %crcenabled%…%crcenabled% placeholder, otherwise it has no effect.

Add ID3 tag

When this option is enabled, EAC writes ID3 tags to the compressed files. Make sure only to use this setting with mp3 files. Formats such as flac, TAK, WavPack, Monkey's Audio and Ogg Vorbis were not intended to use ID3 tags and adding such tags may cause problems.

Another possibility to include ID3 tagging is to use the external compressor itself to tag the resulting files. This would be done via the Additional command-line options. Indeed, it is recommended to use this where available, as seen in the above example command lines for LAME. (If this option is enabled and tagging instructions are included in the command line, the latter have no effect because EAC immediately overwrites the tags written by the encoder.

Check for external programs return code
Default: disabled
Recommended: enabled

When this setting is enabled, EAC checks the return code of an external compressor. When the external compressor returns an error code (e.g. because of a wrong command-line parameter was used), EAC shows this error message in a dialog box. So, it’s recommended to enable this option in order to diagnose any errors.

Additional External Compression

EAC compression options, Additional External Compression tab

The option to use a second external compressor was introduced in EAC v1.4.

Use an additional external program for compression
Default: disabled

To use the additional external compressor, this setting needs to be enabled.

All options for the additional external compressor are similar to (yet independent of) the external compressor options (except for the Delete WAV after compression option, which only needs to be enabled once for both external compressors).

see the External Compression tab for additional information.


EAC compression options, Comment tab

This tab offers options regarding the ID3 tag comment field and/or the contents of the %comment% placeholder.

Use LAME command-line encoder/decoder for decoding MP3 files
(Default: disabled)

If this option is enabled then, LAME is used automatically to decode MP3 files (Tools -> Decompress...). This overrides EAC's behavior which uses the Fraunhofer codec for MP3 decoding by default. If the Fraunhofer codec is not available for some reason, the LAME decoder will be used automatically (if found in the EAC directory).

Construction of the ID3 tag comment field on extraction

When the option Add ID3 tag in the External Compression tab is enabled, this setting specifies what information should be stored in the comment field.


When the option Add ID3 tag is NOT enabled and tagging is completely done via command-line parameters, this setting specifies the contents of the "%comment%" placeholder, which can then be included in the command line of each newly encoded file. The "%comment%" placeholder can be used for any type of tag (not just ID3).

The following options are available:
  • Write the comment text of the CD into ID3 tag comment field (Default: enabled): The text entered in the main window's "Comment" textbox is written into the comment field.
  • Write “Track <tracknumber>” into ID3 tag comment field: Track number is written into the comment field.
  • Write CRC checksum into ID3 tag comment field: A track’s CRC checksum is written into the comment field.
  • Write freedb ID into ID3 tag comment field: A freedb ID is written into the comment field.
  • Write following text into ID3 tag comment field: Text of your own choice is written into the comment field.

ID3 Tag

EAC compression options, ID3 Tag tab

This tab offers some options regarding the ID3 tagging capabilities of EAC. Note that the option Add ID3 tag in the External Compression tab has to be enabled for MOST of these settings to have an effect (the exception being the cover image settings).

In the first two settings you choose if you want ID3v1 tags, ID3v2 tags or both!

Write ID3v1 tags
Default: enabled

ID3v1 tags are stored in a 128 byte block at the end of the file, are limited in size and fields but a legacy standard for older players. Some modern players (e.g. itunes) will ignore this tag.

Write ID3v2 tags, using a padding of n kB
Default: enabled / 4
Recommended: enabled / 4

With this option enabled, EAC writes ID3v2 (ID3v2.3) tags to the encoded files. Because ID3v2 tags have a lot advantages over ID3v1 tags (e.g. Unicode support) and are supported by modern players, it is recommended to enable this option.

As ID3v2 tags are usually placed in front of a file, there may be a problem with altering or adding tags once the file is written. If tags are added or existing tags are becoming bigger, the ID3 chunk in a file will need some more space. In the worst case, the whole audio file has to be rewritten, which may be time consuming.

This is where padding comes into play. When using padding, some additional space is added to the file while encoding to store such added or growing tags. In this case, the file does not have to be rewrittten completely, only this additional padding space is used when tags are added or altered. This makes adding/altering tags a lot more convenient and faster. The only disadvantage of padding is that the encoded files are a little bigger. EAC suggests a padding size of 4 kB. This means that every encoded file will be 4 kB bigger in size compared to a file which does not use padding. So if it is likely that you change or add some tags after the file has been created, then you should leave this option at 4 kB (or fit it your needs). If saving space (e.g. for mobile usage) is more important for you, then you can set this setting to 0 kB.

Several of the following settings are dependent on other settings you enabled above. The recommendations below are based on the ISO-8859-1 (Latin 1) character set, which is widely supported by hardware/software. Depending on what your hardware and/or software supports and what language(s) you need, you may need to change a few of the settings to suit your needs.

Use ID3v1.1 tags instead of ID3v1.0 tags
Default: enabled
Recommended: enabled

When this option is enabled, ID3v1.1 tags are used instead of ID3v1.0 tags. The only difference between the two is that the former can additionally store a track number. Because most players are capable of reading ID3v1.1 tags, it is recommended to enable this option.

Use ID3v2.4.0 tags instead of ID3v2.3.0 tags
Default: disabled
Recommended: disabled

ID3v2.4 is the latest development of this standard and has a few advantages over ID3v2.3 (e.g. allows usage of UTF-8 character encoding). However, support for ID3v2.4 has not historically been very universal. If you have a need for ID3v2.4 tags and your hardware and software supports it then feel free to enable this option.

Use track format xx/xx in ID3v2 tags (e.g. 01/16)
Default: enabled
Recommended: enabled

ID3v1 is only able to store the track number itself (e.g. "05"). With ID3v2 it is possible to store also the number of total tracks (e.g. "05/15"). If you wish to keep this information with your files, leave this option enabled.

Use unsyncronization scheme on ID3V2 tags
Default: disabled
Recommended: disabled

MP3 audio data is identified by a sync signal at the beginning of the MP3 frame. Most modern players will ignore a similar pattern when found in the ID3v2 tag but some [older] players may mistake the pattern as a valid sync signal and attempt to play the tag.

The unsynchronization scheme inserts one zeroed byte after the first false sync byte in the ID3v2 tag (if found). The first bit in 'ID3 flags' is set to indicate that a false sync pattern was corrected in the ID3v2 tag by the 'unsynchronization scheme'.

Enabling this sounds like a good idea but some modern players (e.g. WMP9) that do not adhere to the complete ID3v2 standard cannot understand the corrections made by this setting.

Write ID3V2 tags using UTF16
Default: disabled
Recommended: disabled

ID3V2.3 tags only allow ISO-8859-1 characters. If you want other languages with specific character sets (and your player supports ID3v2.3 with Unicode characters), you can try enabling this setting.

The next settings handle the CD cover image (if one exists).

Add cover image to ID3V2 tag
Default: enabled
Recommended: enabled

When a CD cover image exists and

the option Write ID3v2 tags... above is enabled and
the option Add ID3 tag in the External Compression tab is enabled

this setting will embed the cover image in the ID3V2 tag.


When the option Add ID3 tag is NOT enabled and

tagging is completely done via command-line parameters

this setting enables the %coverfile% placeholder, which can be used with any type of tag that supports a cover image (not just ID3v2).

The placeholder should be used in conjunction with %hascover%...%hascover% conditional enclosures to prevent a 'file not found' error when no CD cover image exists (e.g. to add the cover image to LAME tag via command-line parameters: %hascover%--ti "%coverfile%"%hascover%).

Write cover image into extraction folder
Default: enabled
Recommended: enabled

When this option is enabled and a CD cover image exists, the file will be saved to the extraction folder using the Naming scheme below.

Naming scheme:
Default: %albumartist% - %albumtitle%

This is similar to the filename naming scheme for audio files. You can use placeholders or a fixed name (e.g. folder or cover). The file extension (e.g. .jpg or .gif) will be added automatically.

Cover Filename Placeholders
placeholder meaning
%numtracks% Number of tracks on album
%albumtitle% CD title
%albumartist% CD artist
%albuminterpret% CD performer
%albumcomposer% CD composer
%year% Year
%genre% MP3 music genre
%cddbtype% freedb type (genre)
%cddbid% freedb ID
%comment% Comment (as selected in EAC)
%totalcds% Total number of CDs in the given CD set
%cdnumber% Number of the CD
%% The ‘%’ character


EAC compression options, LAME DLL tab

If this tab is visible, EAC detected lame_enc.dll in the Program Folder.

The options on this tab are used when the LAME encoder is selected under Wave format on the Waveform tab and External Compression is not enabled.

Issues noted in the EAC News.rtf file:

  LAME DLL produces defective, stuttering MP3s (bug exists since 1.0 beta 1!). 
  By the way, it seems that only LAME.DLL (VC6 compiled) is compatible with EAC...
Recommended: Do not use lame_enc.dll in EAC v1.0 (and above)

External links