EAC Compression Options

From Hydrogenaudio Knowledgebase
Revision as of 22:03, 21 June 2011 by Mjb (Talk | contribs)

Jump to: navigation, search

In the compression options dialog in EAC (shortcut: F11) all options can be found regarding the compression of music files. Here EAC's behavior when clicking on the MP3 Button in the main window or items in the Action menu (and then starting a compressed action) are specified.

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

Used EAC version: 1.0 beta 2


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, although the options do allow for writing other formats.

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

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 a few such codecs installed already. These aren't programs you run directly; they're just converters invoked from within another program, like 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 what 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 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 (just like what's on a CD), what actually makes an audio file a WAV is not the format of the audio data itself, but the presence of a WAV header at the beginning of the file. The header says what data chunks 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 have this option enabled, then you'll generate an MP3 file the begins with a WAV header, and the filename will end in .wav. Sometimes people generate these files and then rename them later to end in .mp3.wav so that it's more obvious that it's not an ordinary CD-quality PCM-containing WAV, but rather an MP3 "in a WAV container".

Additional resource: WAV specification

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

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 because often no clear recommendations can be given.

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.

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 in this tab are greyed out.

Parameter passing scheme

EAC comes with a few presets concerning external compressors and the required parameter passing scheme which 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 use the Additional command-line options for additional parameter passing. 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 chosen the entry User Defined Encoder on the setting Parameter passing scheme, a file extension has to be specified here. This should be the extension of the encoded file type (e.g. ".flac" when using a FLAC encoder).

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 following placeholders (taken from the EAC FAQ):

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 command-line could look like this (LAME):

-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 %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 %h...%h and %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). So when you opt for the best possible quality when using another Parameter passing scheme then User Defined Encoder, make sure High quality is selected.

As already mentioned above, with this setting it is also possible to configure the Additional command-line option even further: With the placeholders %h...%h and %l...%l you can specify two different settings for the external compressor which can be controlled by this option. The following example (simplified) shows how to use this feature (again with LAME):

%h-V0%h%l-V5%l --vbr-new %s %d

In this case, if the High quality option is chosen, then then LAME will encode with -V 0, otherwise with -V 5 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 %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. But note that when this option is enabled, these tagging instructions via command-line do not have any effect, because EAC just overrides 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 is recommended to enable this option to notice any errors the encoder returns.


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.

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 when 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 anyway).

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 be used in the command-line then. The following options are available:

  • Write "Track <tracknumber>" into ID3 tag comment field (Default: enabled): Tracknumbers are written into the comment fields.
  • Write CRC checksums into ID3 tag comment field: CRC checksums are written into the comment fields.
  • Write freedb ID into ID3 tag comment field: freedb IDs are written into the comment fields.
  • Write following text into ID3 tag comment field: A user defined text is written into the comment fields.

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 ID3v1.1 and ID3v1.0 is that the former can additionally store a track number. Because most players are capable of 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 encoding). But there seems to be a bug in EAC that no ID3v2.4 can be written. Actually, when this option is enabled, EAC does not write any ID3v2 tags at all (not even ID3v2.3). Therefore it is recommended to leave this option disabled.

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 filenames 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