From Hydrogenaudio Knowledgebase
Revision as of 23:27, 27 April 2011 by Akkurat (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

REACT (Run EAC Tasks) can be used in conjunction with Exact Audio Copy (EAC), as an external compressor.

It is, however, not an encoder, but an interim application that provides a scripting facility to call multiple encoders or pre-/post-encoding applications to process the WAVE files created by EAC, or the files created by the script itself. In short, REACT allows you to run multiple tasks on the audio extracted, instead of only one.

REACT is designed to work only with whole album extraction/ripping.

REACT integrates with Exact Audio Copy, adding some hotkeys combinations to access often used functions more quickly. It will also alter the default name for image files according to your INI settings, and close the extraction dialogue in order for the logfile to be created and used from within your script. It can auto-configure EAC, updating the external compression options so that EAC is ready to run REACT immediately. This feature is extremely useful for novice users.

REACT is configured using an INI file and config files. The commands used within the config files are command line/DOS commands, with the addition of numerous variables which REACT makes available. For example, any instance of @artist@ in the script will be replaced by the freedb artist name, while $artist$ will be replaced with a filename-friendly version of the artist name (with illegal characters replaced according to your requirements).

From REACT v2.0 Final, most configuration can be done by editing the INI file only. Only advanced users should edit the .cfg files.

REACT v2.0 as published does not currently work with EAC 0.99 prebeta 1-4 due to a naming scheme mismatch between old and new EAC versions. This has been solved in Synthetic Soul's Mod or Akkurat's Mod of REACT. Using EAC 0.99 prebeta 5 is only supported by Akkurat's Mod. The mods have also fixed a number of known bugs and introduced new features. Before using a mod, install the original REACT 2.0 (download links at the bottom of this page).


REACT adds a few useful hotkeys to EAC:

Key Function
F1 Wiki page for EAC.
Alt-F1 Wiki page for REACT (this page).
Ctrl-F2 Configure EAC to be used with REACT.
Alt-F2 Edit REACT.ini in notepad.
Alt-F3 Edit REACT-image.cfg in notepad.
F4 Activates Shift-F5 in EAC (Copy selected tracks - Compressed). Optionally, it also starts CoverDownloader\albumart. You may edit REACT.ini and set TracksHotVal=+{F6} if you want to do Test & Copy instead of Copy only. If the INI key CreateAllCuesheets=1, all four cuesheet types are saved as different files as well.
F10 Shortcut to menu "Action - Copy Image and Save CUE Sheet - Compressed...". REACT will fill in the image name, as defined in the ImageNaming INI key (template). REACT will also close the Save Wavform dialog automatically if you have configured EAC to extract to a fixed directory.

Configuration Files

There are three configuration files in total; The INI file, one CFG file for copying to audio track files, and one for copying to an audio image with cuesheet. The config files are stored in the REACT folder, and are named:

File Description
REACT.ini Regular INI file with key=values pairs. Defines variables used by the CFG files.
REACT-tracks.cfg - Used for "Copy Selected Tracks Compressed", default shortcut : F4
REACT-image.cfg - Used for "Copy Image & Create CUE Sheet Compressed", default shortcut : F10


There are four sections in the REACT.ini file. The first [Settings] section has global definitions that REACT uses. The next three [User...] sections have keys that are simply passed through to the .cfg configurations files. I.e. any KEY=VALUE defines a variable @KEY@ which gets expanded to VALUE in the .cfg files.

Note that you may add arbitrary keys to the [User...] sections, and they will expand to their values when used as variables in the .cfg files.

Settings Section

The first section in the INI file sets some global keys, which can be used in any or all encoder configs. These variables refer to high level settings, like the path to EAC, rather than encoder-specific settings. Here is an example:

ImageNaming=$artist$ - [$year$] $album$
VA=Various Artists
CoverDownloader=C:\Program Files\REACT2\coverdownloader\albumart.exe
EAC=C:\Program Files\Exact Audio Copy\EAC.exe

Some of the keys are obvious, and some you really don't need to bother with unless you are a REACT Ninja, but here's a few to watch out for:

Variable Description
ImageExt Copy Image mode only (F10). The format extension for the compressed image file + cuefile. E.g. flac, wv, or mp3. Set to wav when no compressed image is desired.
ImageNaming This variable detirmines how image files, and their cuesheets, will be named when REACT is used in copy image mode. Variables available are: $album$; $artist$; $year$; $genre$; and $freedb$. These are populated from the values of EAC's textboxes, and therefore do not strictly relate to the extended variables available within your config.
Please note: Your scheme must begin "$artist$ -" in order for Various Artists discs to be recognised properly.
VA Default set to 'Various Artists'. The variable @va@ holds this string. See @cdartist@ below for further details.
CreateAllCuesheets If set to 1, all four availabe types of cuesheets will be saved to the extraction directory, which must be preconfigured in EAC. The cuesheet base name can be accessed using the @albumfile@ variable.
RunCoverDownloader If set to 1, run the albumart.exe application. Simply double click the cover you want (select close after save in settings in albumart). In Copy Tracks mode, albumart will wait until it is closed before starting copying. You may set RunCoverDownloader=2 to make it wait in both modes, 3 to wait only in Image Copy mode, or 4 to never wait.
Sla_Bks_Col_Qst_Bar_Quo_Ast_Lt_Gt Some characters cannot be used in file or folder names. This variable allows you to specify what these characters should be replaced with. Slash; Backslash; Colon; Question Mark; Bar (Pipe); Quotes; Asterisk; Less Than; Greater Than. It is also possible to convert Space to e.g. _ by appending a Bar and a _ (after the Gt convert character).

UserTrackFormat Section

This section enables/disables output audio formats to be created.

UserOutputNames Section

Here the track names and the output paths are defined for the different output audio formats. OutRoot is the common directory used under many file naming schemes. Individual directories and naming schemes for each format are set with respective ImageDir_Flac, TrackDir_AAC, etc. When saving formats to different drives OutRoot must be replaced with address spelled out.
Different naming schemes are available for Various Artist CDs. see variable options under METADATA
TrackName_NA - file naming for single artist
TrackName_VA - file naming for various artist
TrackName_SA_acdir=$n - $~t - ACDIR is used when ripping an image and splitting it into tracks. It will be passing EAC variables directly through. The tilde replaces illegal filename characters with a space.

File naming schemes are largely up to personal usage and preference but some examples are
example 1 example 2 example 3

UserSettings Section

Set various variables for more detailed configuration.

Variable Description
Debug If you are having problems with your config file setup, set this value to 1. REACT will then pause before exiting, so you can examine the console output to attempt to determine where your process fell down.
Comment Override the default @comment@ variable (taken from EAC)
EmbedCover Select if you want your cover pictures embeded into the audio files, or only copied to the target directory as 'folder.jpg'.
ReplayGain Enable/Disable ReplayGain calculation and tagging.
ApplyAlbumGain Apply the album gain to the files, so they are played back with a consistent volume across the albums on every player.
AdjustAlbumGain_dB If you want to adjust the album gain from 89.0 dB when applying to the audio, set adjustment in dB here.
AddCuesheetAG Add Album gain/Album peak values to the cuesheet as REM lines. This implies that WaveGain is ran.
UseWaveGainAG Instruct to use WaveGain to calculate AlbumGain values on the wav image file. The values will be transferred to the various compressed formats, rather than calculating them via other tools. If ApplyAlbumGain=1, LAME and OggEnc2 will use the --scale option to apply the album gain scale factor calculated by WaveGain.
Opt_... Variables that defines options for each encoder used.
Ver_... Variables that defines the version number for each encoder used.

Editing the CFG files (advanced)

Because most of the configuration settings are moved to the INI file, it is seldom required to modify the .cfg files. Only advanced users that knows DOS scripting well should attempt to make significant changes. Following are the replacement variables available (excluding those defined in the [User...] sections of the INI file):

Variable Description
@reactdir@ The path to the directory in which REACT resides
@tools@ The path to the directory in which the encoders reside. Set within the INI file
@mymusic@ The path to your 'My Music' folder
@sourcedir@ The path to the folder in which the copied source files are located (WAV/LOG/CUE)
@basename@ The name of the file being created, excluding folders and extension
@source@ The path to the temporary source WAVE file
@image@ The path to the final image file, when used in Copy Image mode
@imageext@ The extension of the compressed target image, e.g. flac
@sourcecuesheet@ The path to the (temporary) source cuesheet, when used in Copy Image mode
@cuesheet@ The path to the final cuesheet, when used in Copy Image mode
@eaclog@ The path to the log file created by EAC
@cover@ The path to the cover/album art picture file, dowloaded with CoverDownloader.
@albumfile@ The base path to the cuesheet files without extension, created when CreateAllCuesheets=1 in the INI file. E.g, "@albumfile@.[mg].cue" is the multiple wav files cuesheet with gaps.
@cdartist@ The name of the CD artist. If @various@=1 @cdartist@ equals the variable @va@, otherwise @artist@. Use $cdartist$ in file paths
@artist@ The name of the track artist. Use $artist$ in paths
@album@ The name of the album. Use $album$ in paths
@title@ The song title. Use $title$ in paths
@track@ The track number. Use $track$ to zero-pad the track number, i.e.: turn 9 into 09
@numtracks@ The total number of tracks. Use $numtracks$ to zero-pad the number
@genre@ The album genre. Use $genre$ in paths
@year@ The album year
@comment@ The comment. Use $comment$ in paths
@freedbid@ The freedb ID
@various@ Is 1 if the EAC 'Various' checkbox was checked. Otherwise 0
@va@ The name of VariousArtist. Default 'Various Artists'.
@crc@ The CRC of the file
@bitrate@ The value of the Bitrate dropdown on EAC's External Compressor dialogue
@curdate@ The current date


Ask REACT questions in this thread :

Download REACT from this thread :

Download Synthetic Soul's or Akkurat's mod (for EAC 0.99 support and more) from this page : REACT:Mods