EAC Compression Options (Legacy)

From Hydrogenaudio Knowledgebase

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 MP3 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.

This article was recently updated to reflect changes introduced in EAC v1.0b2; however, the instructions for prior versions were retained for reference.

Waveform

Example settings 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.

All options are greyed out here if Use external program for compression in the External Compression tab is ticked. When using an external compressor, you of course cannot use an internal codec.

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 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
(Default: .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: High quality (slow), Recommended: High quality (slow))

Some 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).

When using a User defined encoder, you can demarcate any portion of your custom command line as being for low- (delimit the chosen parameters with %l) and high-quality (similar but with %h) modes only and use this option to choose between the two.

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

External compression

Recommended settings 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 has to be enabled; otherwise, all the options here are greyed out.


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. This may be an .exe or a .dll file (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.

For EAC 1.0 beta 2 and newer
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.

For EAC 1.0 beta 1 and older
placeholder meaning
%s Source filename
%d Destination filename
%h...%h Text "..." only when High quality selected
%l...%l Text "..." only when Low quality selected
%c...%c Text "..." only when CRC checksum selected
%r Bitrate ("32".."320") as chosen in the Bit rate option
%a CD artist
%g CD title
%t Track title
%y Year
%n Track number
%m MP3 music genre
%o Original filename (without temporary renaming)
%e Comment (as selected in EAC)
%b CRC of extracted track
%f freedb ID
%x Number of tracks on album

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

-V 0 --vbr-new --ta "%a" --tt "%t" --tl "%g" --tg "%m" --ty "%y" --tn "%n" --tc "%e" %s %d

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. %a, %t, etc.) to control LAME only by this command-line.


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% (formerly %r) 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% (formerly %h…%h) and %islow%…%islow% (formerly %l…%l) 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% (formerly %h) and %islow% (formerly %l), 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%   (formerly  %h-V0%h%l-V5%l --vbr-new %s %d)

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% (formerly %c...%c) 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.

Offset

Recommended settings EAC compression options, Offset tab

This tab offers options regarding offset correction during encoding/decoding and the ID3 tag comment field.

Note: The offset mentioned here has nothing to do with a drive offset and therefore should not be mistaken for the latter. In addition, most popular encoders now have their own built-in compensation for encoding offsets, and certain decoders can use this to eliminate any unwanted gaps; in such cases, these options are unnecessary.


Use Offset Correction for encoding and decoding
(Default: disabled, Recommended: disabled)

Some encoders will have an offset when encoding. This means that at the beginning of a track they often add some silence, whereas a few samples could be missing at the end. When decoding again, this could result in some unwanted gaps. This options offers now the opportunity to correct this encoding/decoding offset so that the original file can be reconstructed (at least concerning correct beginning/end of a track; with lossy formats the original file can not be reconstructed completely). The point behind this option is that is possible that there is such an offset between the codec which is used for encoding (the actual codec) and the other one used for decoding (default installed codec). An example would be using LAME for MP3 encoding and the Fraunhofer codec for decoding. In this case, this option would be useful.

So, if you decode your encoded files and experience some unwanted gaps in the decoded files, then you should try to enable this option and configure it accordingly (see below). In all other cases, leave this option disabled—especially when you encode and decode with the same encoder or, as noted above, programs that themselves account for encoding/decoding delay.


Sample offset
(Default: 0)

When enabling the option Use Offset Correction for encoding and decoding, a sample offset has to be entered here. With a click on the button Detect Offset... the correct offset can be recognized automatically.


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

This option is usually greyed out. To make it available, a LAME executable (lame.exe) has to be placed in the EAC directory. This has to be done manually.

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.


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 EAC is not used to tag compressed files and tagging is completely done via command-line parameters, this setting specifies the contents of the "%e" placeholder, which can then be included in the command line of each newly encoded file. The following options are available:

  • Write "Track <tracknumber>" into ID3 tag comment field (Default: enabled): track number is written into the comment field.
  • Write CRC checksums into ID3 tag comment field: a 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

Recommended settings 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 all these settings to have an effect.


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.


Additionally write ID3v2 tags, using a padding of X kB
(Default: enabled/4, Recommended: enabled/4)

With this option enabled, EAC writes ID3v2 (ID3v2.3) tags to the encoded files, in addition to the ID3v1 tags. Because ID3v2 tags have a lot advantages over ID3v1 tags (e.g. Unicode] support) and are supported by most 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.


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.


Construction of filenames from ID3 tags
(Default: %T - %A)

This option specifies how file names are constructed from ID3 tags when using the rename feature of EAC (Tools -> Rename From ID3 Tags...). You can use placeholder to build up the filename.

External links