REACT:Amending Cuesheet File References: Difference between revisions
mNo edit summary |
(Added GSAR section) |
||
Line 12: | Line 12: | ||
The multi-file cuesheets will reference the tracks using the filename format set in [[EAC]], which should be "$cdartist$ - $album$ - $track$ - $title$" for standard albums, and specifying a ".wav" extension. However, this is unlikely to be the format that your track files are actually in, which means that the cuesheet will need to be amended in order to be useful. | The multi-file cuesheets will reference the tracks using the filename format set in [[EAC]], which should be "$cdartist$ - $album$ - $track$ - $title$" for standard albums, and specifying a ".wav" extension. However, this is unlikely to be the format that your track files are actually in, which means that the cuesheet will need to be amended in order to be useful. | ||
Below, you will find example code for two solutions, using two different tools. '''You are recommended to use [http://gnuwin32.sourceforge.net/packages/gsar.htm GSAR] for this purpose''', as certain special characters, e.g.: the ampersand, if used in your filenames, may cause problems when using [http://gnuwin32.sourceforge.net/packages/sed.htm SED]. | |||
==Using GSAR== | |||
The additional config code below uses the GNU tool [http://gnuwin32.sourceforge.net/packages/gsar.htm GSAR] to parse the cuesheet created by [[EAC]], and create a new cuesheet referencing the correctly-named files. This is achieved in the following way: | |||
# When the first track is processed the cuesheet will be copied to a new cuesheet file named "$cdartist$ - $album$.cue". | |||
# Every time a track is processed a GSAR command, to replace that track's filename, is written to a temporary batch file called "update-cuesheet.bat". | |||
# When the last track is processed this batch file is executed, executing a GSAR command for each track. | |||
# The file "update-cuesheet.bat" is deleted. | |||
'''Creating the GSAR commands for each track''' | |||
The following lines need to be added to the code which is run for the format you are using for each track: | |||
<pre>SET trackCueFile="$cdartist$ - $album$.cue" | |||
IF NOT EXIST %trackCueFile% COPY "@albumfile@.[mg].cue" %trackCueFile% | |||
ECHO @tools@\GSAR.EXE "-s@basename@.wav" "-r%TrackName%.wv" -o %trackCueFile%>>update-cuesheet.bat</pre> | |||
Here it is in the WavPack section: | |||
<pre> | |||
IF NOT @Wavpack@==1 GOTO end_wavpack_tracks | |||
IF NOT EXIST %TrackDir_Wavpack% MKDIR %TrackDir_Wavpack% | |||
PUSHD %TrackDir_Wavpack% | |||
IF @various@==1 SET VA_tag=-w "album artist=@VA@" | |||
ECHO ON | |||
@tools@\wavpack.exe @Opt_Wavpack@ %VA_tag% -w artist="@artist@" -w album="@album@" -w track="@track@/@numtracks@" -w title="@title@" -w year="@year@" -w genre="@genre@" -w comment="@comment@" -w encodedby="%USERNAME%" -w encodersettings="Wavpack @Ver_Wavpack@ @Opt_Wavpack@" "@source@" "%TrackName%.wv" | |||
@ECHO OFF | |||
SET trackCueFile="$cdartist$ - $album$.cue" | |||
IF NOT EXIST %trackCueFile% COPY "@albumfile@.[mg].cue" %trackCueFile% | |||
ECHO @tools@\GSAR.EXE "-s@basename@.wav" "-r%TrackName%.wv" -o %trackCueFile%>>update-cuesheet.bat | |||
IF %have_cover%==1 IF NOT EXIST folder.jpg COPY "@cover@" folder.jpg | |||
TITLE @track@/@numtracks@ - "@album@" | |||
POPD | |||
:end_wavpack_tracks | |||
</pre> | |||
Note that the extension ("wv") will need to be changed depending on the format that you are using. Additionally, if you are using MP3, you will need to use the following line instead, which correctly changes the file type to MP3 from WAVE: | |||
<pre>ECHO @tools@\GSAR.EXE "-s@basename@.wav""" WAVE" "-r%TrackName%.mp3""" MP3" -o %trackCueFile%>>update-cuesheet.bat</pre> | |||
Also, note that the example uses the "multiple WAVE files with gaps (non-compliant)" cuesheet as its source. This is the cuesheet that most users would require; however you can replace "@albumfile@.[mg].cue" with "@albumfile@.[m].cue" or "@albumfile@.[mc].cue" if you wish. | |||
'''Executing the batch file''' | |||
The following lines need to be added to the code which is run for the format you are using at the end of the config: | |||
<pre> | |||
CALL update-cuesheet.bat | |||
DEL update-cuesheet.bat | |||
</pre> | |||
Here they are in the WavPack section: | |||
<pre> | |||
IF @Wavpack@==1 ( | |||
PUSHD %TrackDir_Wavpack% | |||
IF %add_rg%==1 @tools@\wvgain.exe -a *.wv | |||
REM COPY /Y "@eaclog@" "EAClog.txt" | |||
CALL update-cuesheet.bat | |||
DEL update-cuesheet.bat | |||
POPD | |||
) | |||
</pre> | |||
These two lines are universal, and can be added to any format's section with no need for change. | |||
===Requirements=== | |||
You will need to download the Windows version of [http://gnuwin32.sourceforge.net/packages/gsar.htm GSAR], and put the executable in your [[REACT]] tools directory. | |||
==Using SED== | |||
The additional config code below uses the GNU tool [http://gnuwin32.sourceforge.net/packages/sed.htm SED] to parse the cuesheet created by [[EAC]], and create a new cuesheet referencing the correctly-named files. This is achieved in the following way: | The additional config code below uses the GNU tool [http://gnuwin32.sourceforge.net/packages/sed.htm SED] to parse the cuesheet created by [[EAC]], and create a new cuesheet referencing the correctly-named files. This is achieved in the following way: | ||
Line 73: | Line 151: | ||
==Requirements== | ===Requirements=== | ||
You will need to download the Windows version of [http://gnuwin32.sourceforge.net/packages/sed.htm SED], including its dependencies ("libintl3.dll" and "libiconv2.dll"), and put all three files in your [[REACT]] tools directory. | You will need to download the Windows version of [http://gnuwin32.sourceforge.net/packages/sed.htm SED], including its dependencies ("libintl3.dll" and "libiconv2.dll"), and put all three files in your [[REACT]] tools directory. | ||
Revision as of 14:42, 16 January 2008
When using REACT to rip to individual tracks you can request all cuesheets to be created, by specifying the following in REACT.ini:
CreateAllCuesheets=1
This will create the following files in the working directory:
- "@albumfile@.[s].cue" (Single WAVE file)
- "@albumfile@.[mg].cue" (Multiple WAVE files with gaps (non-compliant))
- "@albumfile@.[m].cue" (Multiple WAVE files with gaps left out)
- "@albumfile@.[mc].cue" (Multiple WAVE files with corrected gaps)
The multi-file cuesheets will reference the tracks using the filename format set in EAC, which should be "$cdartist$ - $album$ - $track$ - $title$" for standard albums, and specifying a ".wav" extension. However, this is unlikely to be the format that your track files are actually in, which means that the cuesheet will need to be amended in order to be useful.
Below, you will find example code for two solutions, using two different tools. You are recommended to use GSAR for this purpose, as certain special characters, e.g.: the ampersand, if used in your filenames, may cause problems when using SED.
Using GSAR
The additional config code below uses the GNU tool GSAR to parse the cuesheet created by EAC, and create a new cuesheet referencing the correctly-named files. This is achieved in the following way:
- When the first track is processed the cuesheet will be copied to a new cuesheet file named "$cdartist$ - $album$.cue".
- Every time a track is processed a GSAR command, to replace that track's filename, is written to a temporary batch file called "update-cuesheet.bat".
- When the last track is processed this batch file is executed, executing a GSAR command for each track.
- The file "update-cuesheet.bat" is deleted.
Creating the GSAR commands for each track
The following lines need to be added to the code which is run for the format you are using for each track:
SET trackCueFile="$cdartist$ - $album$.cue" IF NOT EXIST %trackCueFile% COPY "@albumfile@.[mg].cue" %trackCueFile% ECHO @tools@\GSAR.EXE "-s@basename@.wav" "-r%TrackName%.wv" -o %trackCueFile%>>update-cuesheet.bat
Here it is in the WavPack section:
IF NOT @Wavpack@==1 GOTO end_wavpack_tracks IF NOT EXIST %TrackDir_Wavpack% MKDIR %TrackDir_Wavpack% PUSHD %TrackDir_Wavpack% IF @various@==1 SET VA_tag=-w "album artist=@VA@" ECHO ON @tools@\wavpack.exe @Opt_Wavpack@ %VA_tag% -w artist="@artist@" -w album="@album@" -w track="@track@/@numtracks@" -w title="@title@" -w year="@year@" -w genre="@genre@" -w comment="@comment@" -w encodedby="%USERNAME%" -w encodersettings="Wavpack @Ver_Wavpack@ @Opt_Wavpack@" "@source@" "%TrackName%.wv" @ECHO OFF SET trackCueFile="$cdartist$ - $album$.cue" IF NOT EXIST %trackCueFile% COPY "@albumfile@.[mg].cue" %trackCueFile% ECHO @tools@\GSAR.EXE "-s@basename@.wav" "-r%TrackName%.wv" -o %trackCueFile%>>update-cuesheet.bat IF %have_cover%==1 IF NOT EXIST folder.jpg COPY "@cover@" folder.jpg TITLE @track@/@numtracks@ - "@album@" POPD :end_wavpack_tracks
Note that the extension ("wv") will need to be changed depending on the format that you are using. Additionally, if you are using MP3, you will need to use the following line instead, which correctly changes the file type to MP3 from WAVE:
ECHO @tools@\GSAR.EXE "-s@basename@.wav""" WAVE" "-r%TrackName%.mp3""" MP3" -o %trackCueFile%>>update-cuesheet.bat
Also, note that the example uses the "multiple WAVE files with gaps (non-compliant)" cuesheet as its source. This is the cuesheet that most users would require; however you can replace "@albumfile@.[mg].cue" with "@albumfile@.[m].cue" or "@albumfile@.[mc].cue" if you wish.
Executing the batch file
The following lines need to be added to the code which is run for the format you are using at the end of the config:
CALL update-cuesheet.bat DEL update-cuesheet.bat
Here they are in the WavPack section:
IF @Wavpack@==1 ( PUSHD %TrackDir_Wavpack% IF %add_rg%==1 @tools@\wvgain.exe -a *.wv REM COPY /Y "@eaclog@" "EAClog.txt" CALL update-cuesheet.bat DEL update-cuesheet.bat POPD )
These two lines are universal, and can be added to any format's section with no need for change.
Requirements
You will need to download the Windows version of GSAR, and put the executable in your REACT tools directory.
Using SED
The additional config code below uses the GNU tool SED to parse the cuesheet created by EAC, and create a new cuesheet referencing the correctly-named files. This is achieved in the following way:
- Every time a track is processed a SED command, to replace that track's filename, is written to a temporary text file called "sedlist.txt".
- When the last track is processed this file is passed to SED which executes each command on the cuesheet text, and writes the new text to a new cuesheet file named "$cdartist$ - $album$.cue".
- The file "sedlist.txt" is deleted.
Writing the SED commands for each track
The following line needs to be added to the code which is run for the format you are using for each track:
ECHO s/FILE "@basename@\.wav"/FILE "%TrackName%\.wv"/>>sedlist.txt
Here it is in the WavPack section:
IF NOT @Wavpack@==1 GOTO end_wavpack_tracks IF NOT EXIST %TrackDir_Wavpack% MKDIR %TrackDir_Wavpack% PUSHD %TrackDir_Wavpack% IF @various@==1 SET VA_tag=-w "album artist=@VA@" ECHO ON @tools@\wavpack.exe @Opt_Wavpack@ %VA_tag% -w artist="@artist@" -w album="@album@" -w track="@track@/@numtracks@" -w title="@title@" -w year="@year@" -w genre="@genre@" -w comment="@comment@" -w encodedby="%USERNAME%" -w encodersettings="Wavpack @Ver_Wavpack@ @Opt_Wavpack@" "@source@" "%TrackName%.wv" ECHO s/FILE "@basename@\.wav"/FILE "%TrackName%\.wv"/>>sedlist.txt @ECHO OFF IF %have_cover%==1 IF NOT EXIST folder.jpg COPY "@cover@" folder.jpg TITLE @track@/@numtracks@ - "@album@" POPD :end_wavpack_tracks
Note that the extension ("wv") will need to be changed depending on the format that you are using. Additionally, if you are using MP3, you will need to use the following line instead, which correctly changes the file type to MP3 from WAVE:
ECHO s/FILE "@basename@\.wav" WAVE/FILE "%TrackName%\.mp3" MP3/>>sedlist.txt
Executing SED
The following lines need to be added to the code which is run for the format you are using at the end of the config:
@tools@\SED -f sedlist.txt <"@albumfile@.[mg].cue" >"$cdartist$ - $album$.cue" DEL sedlist.txt
Here they are in the WavPack section:
IF @Wavpack@==1 ( PUSHD %TrackDir_Wavpack% IF %add_rg%==1 @tools@\wvgain.exe -a *.wv REM COPY /Y "@eaclog@" "EAClog.txt" @tools@\SED -f sedlist.txt <"@albumfile@.[mg].cue" >"$cdartist$ - $album$.cue" DEL sedlist.txt POPD )
These two lines are universal, and can be added to any format's section with no need for change. Note though, that the example uses the "multiple WAVE files with gaps (non-compliant)" cuesheet as its source. This is the cuesheet that most users would require; however you can replace "@albumfile@.[mg].cue" with "@albumfile@.[m].cue" or "@albumfile@.[mc].cue" if you wish.
Requirements
You will need to download the Windows version of SED, including its dependencies ("libintl3.dll" and "libiconv2.dll"), and put all three files in your REACT tools directory.
Related Thread
This tip is a result of a string of posts between lipidicman and Synthetic Soul in the REACT 2 thread beginning with this post.