Edit: I've just had a quick test, and a quick skim of of the tutorial, and it doesn't seem that "-" is used as a special character in SED. I guess instead of "a-z" you have to do "[abcdefghijklmnopqrstuvwxyz]". Anyway, that's good news for simplifying the commands. I can't test now, but I guess the line could be changed to:
ECHO s/FILE "@basename@\.wav"/FILE "%TrackName%\.flac"/>>sedlist.txt
That makes things look a lot less complicated, and a hell of a lot more portable. Thanks for highlighting that for me.
Tested, and works just great. Using %TrackName% means it will work for VA albums also (tested).
Here's my current test config:
@ECHO OFF
REM CHCP 1252
TITLE @track@/@numtracks@ - "@album@"
REM Copyright © Tycho, 2006
REM
REM ** Create compressed audio tracks from ripped .wav tracks.
REM **
REM ** You may consider using image mode (F10)
REM ** as it supports creating tracks via acdir.exe,
REM ** and post-processing will always work (see below).
REM **
REM ** Flac requires flac.exe/metaflac.exe (v1.1.3)
REM ** NeroAac requires NeroAacEnc.exe/NeroAacTag.exe/AacGain.exe.
REM ** OggEnc2 requires OggEnc2.exe/VorbisGain.exe.
REM **
REM ** I prefer applying album gain 92dB to get a reasonable
REM ** volume for my DAP. The RG tags are still relative
REM ** to 89dB SPL, i.e. album gain will be about -3.0dB.
REM ============== Begin Main Script ==================
IF @Debug@==1 ECHO ON
SET TrackDir_Flac="@TrackDir_Flac@"
SET TrackDir_Wavpack="@TrackDir_Wavpack@"
SET TrackDir_MP3="@TrackDir_MP3@"
SET TrackDir_AAC="@TrackDir_AAC@"
SET TrackDir_OGG="@TrackDir_OGG@"
IF @various@==0 SET TrackName=@TrackName_SA@
IF @various@==1 SET TrackName=@TrackName_VA@
SET have_cover=0
SET embed_cover=0
IF EXIST "@cover@" (
SET have_cover=1
SET embed_cover=@EmbedCover@
)
REM ---- Track ----
IF NOT @Flac@==1 GOTO end_flac_tracks
IF NOT EXIST %TrackDir_Flac% MKDIR %TrackDir_Flac%
PUSHD %TrackDir_Flac%
IF @various@==1 SET VA_tag=-T "album artist=@VA@"
IF %embed_cover%==1 SET Cover_tag=--picture="|image/jpeg|||@cover@"
ECHO ON
@tools@\flac.exe @Opt_Flac@ %Cover_tag% %VA_tag% -T artist="@artist@" -T album="@album@" -T tracknumber="@track@/@numtracks@" -T title="@title@" -T date="@year@" -T genre="@genre@" -T comment="@comment@" -T encoded-by="%USERNAME%" -T encoding="Flac @Ver_Flac@ @Opt_Flac@" "@source@" -o "%TrackName%.flac"
@ECHO OFF
IF %have_cover%==1 IF NOT EXIST folder.jpg COPY "@cover@" folder.jpg
POPD
:end_flac_tracks
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
IF %have_cover%==1 IF NOT EXIST folder.jpg COPY "@cover@" folder.jpg
TITLE @track@/@numtracks@ - "@album@"
POPD
:end_wavpack_tracks
IF NOT @LameMP3@==1 GOTO end_lame_tracks
IF NOT EXIST %TrackDir_MP3% MKDIR %TrackDir_MP3%
PUSHD %TrackDir_MP3%
IF @various@==1 SET VA_tag=--user-text "[album artist]@VA@" --frame "TPE2:@VA@"
IF %embed_cover%==1 SET Cover_tag=--pict "{3}@cover@"
ECHO ON
@tools@\lame.exe @Opt_LameMP3@ "@source@" "%TrackName%.mp3"
@tools@\metamp3.exe %Cover_tag% %VA_tag% --artist "@artist@" --album "@album@" --track @track@/@numtracks@ --title "@title@" --year "@year@" --genre "@genre@" --comment "@comment@" --frame TENC:"%USERNAME%" --frame TSSE:"LAME @Ver_LameMP3@ @Opt_LameMP3@" "%TrackName%.mp3"
ECHO s/FILE "@basename@\.wav"/FILE "%TrackName%\.mp3"/>>sedlist.txt
@ECHO OFF
IF %have_cover%==1 IF NOT EXIST folder.jpg COPY "@cover@" folder.jpg
POPD
:end_lame_tracks
IF NOT @iTunesAac@==1 GOTO end_itunes_aac_tracks
IF NOT EXIST %TrackDir_AAC% MKDIR %TrackDir_AAC%
PUSHD %TrackDir_AAC%
IF %embed_cover%==1 SET Cover_tag=-r "@cover@"
ECHO ON
@tools@\iTunesEncode.exe @Opt_iTunesAac@ -e "AAC Encoder" %Cover_tag% -x @various@ -a "@artist@" -l "@album@" -n "@track@" -m "@numtracks@" -t "@title@" -y "@year@" -g "@genre@" -c "@comment@" -i "@source@" -o "%TrackName%.m4a"
@ECHO OFF
IF %have_cover%==1 IF NOT EXIST folder.jpg COPY "@cover@" folder.jpg
POPD
GOTO end_nero_aac_tracks
:end_itunes_aac_tracks
IF NOT @NeroAac@==1 GOTO end_nero_aac_tracks
IF NOT EXIST %TrackDir_AAC% MKDIR %TrackDir_AAC%
PUSHD %TrackDir_AAC%
IF @various@==1 SET VA_tag=--albumArtist "@VA@" --compilation true
IF %embed_cover%==1 SET Cover_tag=--artwork "@cover@"
ECHO ON
@tools@\neroAacEnc.exe @Opt_NeroAac@ -if "@source@" -of "%TrackName%.m4a"
@tools@\AtomicParsley.exe "%TrackName%.m4a" -o REACT_tmp.m4a %Cover_tag% %VA_tag% --artist "@artist@" --album "@album@" --tracknum "@track@/@numtracks@" --title "@title@" --year "@year@" --genre "@genre@" --comment "@comment@" --encodingTool "neroAacEnc @Ver_NeroAac@ @Opt_NeroAac@"
@ECHO OFF
MOVE /Y REACT_tmp.m4a "%TrackName%.m4a"
IF %have_cover%==1 IF NOT EXIST folder.jpg COPY "@cover@" folder.jpg
POPD
:end_nero_aac_tracks
IF NOT @OggEnc2@==1 GOTO end_oggenc_tracks
IF NOT EXIST %TrackDir_OGG% MKDIR %TrackDir_OGG%
PUSHD %TrackDir_OGG%
IF @various@==1 SET VA_tag=-c "album artist=@VA@"
ECHO ON
@tools@\oggenc2.exe @Opt_OggEnc2@ %VA_tag% -c artist="@artist@" -c album="@album@" -c tracknumber="@track@/@numtracks@" -c title="@title@" -c date="@year@" -c genre="@genre@" -c comment="@comment@" -c encoded-by="%USERNAME%" -c encoding="OggEnc @Ver_OggEnc2@ @Opt_OggEnc2@" "@source@" -o "%TrackName%.ogg"
@ECHO OFF
IF %have_cover%==1 IF NOT EXIST folder.jpg COPY "@cover@" folder.jpg
POPD
:end_oggenc_tracks
REM ** Delete the source .wav
DEL "@source@"
REM ---- Post-processing ----
rem ** Scan and compute ReplayGain and add cover picture for supported formats.
rem ** NB: The following will only work if at least the last track is selected,
rem ** and it is a regular audio track.
IF NOT @track@==@numtracks@ GOTO end_post_process
SET add_rg=@ReplayGain@
SET aac_enc=@NeroAac@
IF @iTunesAac@==1 SET aac_enc=1
IF NOT @ReplayGain@==1 GOTO end_RG
SET RG_MetaFlac=--add-replay-gain
SET RG_MetaMP3=--replay-gain
:end_RG
IF NOT @ApplyAlbumGain@==1 GOTO end_apply_AG
SET RG_MetaMP3=--apply-gain album@AdjustAlbumGain_dB@
SET RG_AacGain=/a /o /c /d @AdjustAlbumGain_dB@
SET add_rg=1
:end_apply_AG
REM ** Audio Formats:
IF @Flac@==1 (
PUSHD %TrackDir_Flac%
IF %add_rg%==1 @tools@\Glob.exe -v -c @tools@\metaflac.exe %RG_MetaFlac% *.flac
REM COPY /Y "@eaclog@" "EAClog.txt"
POPD
)
IF @Wavpack@==1 (
PUSHD %TrackDir_Wavpack%
IF %add_rg%==1 @tools@\wvgain.exe -a *.wv
REM COPY /Y "@eaclog@" "EAClog.txt"
POPD
)
IF @LameMP3@==1 (
PUSHD %TrackDir_MP3%
IF %add_rg%==1 @tools@\metamp3.exe %RG_MetaMP3% *.mp3
COPY /Y "@eaclog@" "EAClog.txt"
@tools@\SED -f sedlist.txt <"@albumfile@.[mg].cue" >"$cdartist$ - $album$.cue"
DEL sedlist.txt
POPD
)
IF %aac_enc%==1 (
PUSHD %TrackDir_AAC%
IF %add_rg%==1 @tools@\aacgain.exe %RG_AacGain% *.m4a > "gainlog.txt"
REM COPY /Y "@eaclog@" "EAClog.txt"
POPD
)
IF @OggEnc2@==1 (
PUSHD %TrackDir_OGG%
IF %add_rg%==1 @tools@\vorbisgain.exe -a *.ogg
REM COPY /Y "@eaclog@" "EAClog.txt"
POPD
)
REM ** Cleanup
DEL "@eaclog@"
DEL "@albumfile@.[*].cue"
DEL "@cover@"
:end_post_process
REM ================ End Main Script ===================
IF @Debug@==1 (
PAUSE
EXIT
)
REM ** Delete this .bat file:
DEL %0
My other issue was copying the accuraterip details to the clipboard and having these be inserted into the logfile.
I came up with this suite including winclip:
http://www.dmst.aueb.gr/dds/sw/outwit/
My idea is to clear the clipboard (so you dont accidentally paste the details from the previous rip! paranoia I know), ask the user to grab the accrip log and then output it to a file (winclip -p file.txt) before appending this file to the EAClog. There is even scope for checking that the clipboard contains accrip data I guess and looping until it does (might be problems here if the window has been closed, easy to do!)
Cool, I have no idea what you are talking about, but I'll try to take a look.
NB: To append file.txt to the logfile you could use:
TYPE file.txt >> "@eaclog@"
... or if you wanted a few carriage returns, etc.:
ECHO.>>"@eaclog@"
ECHO.>>"@eaclog@"
ECHO Accuraterip data:>>"@eaclog@"
ECHO.>>"@eaclog@"
TYPE file.txt >> "@eaclog@"
When I try to explain the problems with the cuesheet and the fine details of the naming conventions her eyes glaze over. Still at least there have been no arguments.