Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: REACT 2 Released (Read 1288747 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

REACT 2 Released

Reply #300
Batch file scripting isn't nice.  I'm more used to VB/VBScript, and now PHP.  I always feel like I'm having to work around things in batch files.

I did have a check on the first track to ensure sedlist.txt was clear:

Code: [Select]
IF [@track@] EQU [1] (
    REM Delete the SED commands file, if left over
    DEL sedlist.txt
)
... but decided it was unnecessary.

Putting the clipboard clear in there makes a lot of sense.  It also makes a lot of sense to check whether the data is there before stopping the process.  I did think about that earlier, but I knew that you were concerned about the data being the previous disc's.  I guess clearing the clipboard at track 1 solves this.  Nice thinking.
I'm on a horse.

REACT 2 Released

Reply #301
I need to have a think about how I want it.  If you start ripping another CD, the clipboard may be cleared before the encoding gets to that point.  Anyhow these are details, it is working nicely at the moment.

I just noticed I am using EAC0.95b3, am I OK here before I get going?  From the website it looked like b4 removed some features?

REACT 2 Released

Reply #302
Personally I would move to the latest version, but if it's working for you now then I guess there's really no need.  I've never missed the dropped features, as I never used them.  I have no idea what the difference is between the two versions to be honest.

I just think it makes it easier for people to help if you are on the latest versions, as most people here will be.  It saves confusion.
I'm on a horse.

REACT 2 Released

Reply #303
To bring up something from earlier:

React was tagging flac TRACKNUMBER like this: "1/15"  Foobar wouldn't pad this so I changed it to insert only "1" and put "15" in TOTALTRACKS (I think, I am away from my machine ATM).  Foobar pads this fine.  Any potential problems here?  Using 1/15 seemed weird to me anyway when there is a field for the total.  Could I have problems in other apps?

REACT 2 Released

Reply #304
I have no idea about other apps.  I doubt it would ever cause problems.

I think using TRACKNUMBER and TOTALTRACKS makes most sense.  It also gives you the option to move to a 'nn/mm' format at a later date if need be.

I'm not sure why 'nn/mm' was used as the default.  Maybe someone who has used tracks for a while can enlighten us.
I'm on a horse.

REACT 2 Released

Reply #305
That was the conclusion I arrived at.  Any other opinions most welcome!

edit; it appears it is stored in the ID3 tag as 1/15 anyway looking at this:
http://wiki.hydrogenaudio.org/index.php?ti...ID3_Tag_Mapping
I dont really get the foobar tag to id3 tag differences

 

REACT 2 Released

Reply #306
Yes, I had that problem with foobar also.  Does anyone know an easy way to mass convert track numbers from the 1/15, 2/15 format to 01,02 etc.  Lipidicman, you are smart for working this out prior to ripping.

REACT 2 Released

Reply #307
Does anyone know an easy way to mass convert track numbers from the 1/15, 2/15 format to 01,02 etc.
http://www.hydrogenaudio.org/forums/index....showtopic=50739

Edit: That actually looks a little convoluted (and slightly restrictive).  I'd use this:

TOTALTRACKS
Code: [Select]
$num($substr(%tracknumber%,$add($strchr(%tracknumber%,/),1),$len(%tracknumber%)),1)

TRACKNUMBER
Code: [Select]
$num($left(%tracknumber%,$sub($strchr(%tracknumber%,/),1)),1)


Edit 2: I've added a little more code to check the current format, and uploaded the masstagger script here.  Now, if there is no '/' found TOTALTRACKS won't be set, but if TRACKNUMBER exists it will be converted to an integer (09 -> 9).  Therefore:

Code: [Select]
CURRENT    TRACKNUMBER    TOTALTRACKS
=====================================

4          4
09         9
15         15
04/08      4              8
1/20       1              20
15/100     15             100


Edit 3: I guess I should point out, just in case, that if you create a script yourself you must action the TOTALTRACKS code first.  If you action the TRACKNUMBER code first you'll lose the TOTALTRACKS info before you can copy it over.
I'm on a horse.

REACT 2 Released

Reply #308
Synthetic soul,
You are truly awesome.  I am always amazed by the time you spend helping others here.  Many thanks....again.

REACT 2 Released

Reply #309
Yes, I had that problem with foobar also.  Does anyone know an easy way to mass convert track numbers from the 1/15, 2/15 format to 01,02 etc.  Lipidicman, you are smart for working this out prior to ripping.


Yeah, I chucked my files into foobar and thought "hang on.....".  I am surprised that REACT has this setting (which ia why I am asking here whether I have done something wrong)

SS, where would you use that script, is it for foobar?

REACT 2 Released

Reply #310
SS, where would you use that script, is it for foobar?
Yeah, foobar.

Select the files, choose "Tagging" > "Manage Scripts" from the context menu, then "Load from file..." on the dialogue.

Edit: You could then optionally save it to your local config by providing a name in the dropdown combo and clicking "Save".
I'm on a horse.

REACT 2 Released

Reply #311
Right, foobar clearly has a few more tricks I need to learn

REACT 2 Released

Reply #312
Just popping back in to tweak my React script.  I am being paranoid about preserving my flacs.  I have added "ATTRIB +R *.*" in the flac postprocessing (after the RG command).  This will prevent most other unwanted changes when using foobar for playback and conversion to mp3 etc

I am keen to have a verification method.  With flac I think I understand md5 is not necessary (and clumsy as a tag change will change the md5 anyway).  Should I use a 'fingerprint' as in the flac frontend.  Can this be written from the command line and later verified?.  I cannot see how flac.exe does this, but SHNtool hash generates the same checksums.

Or is running a 'test' on the flacs all that is needed (ie is the fingerprint held internally and tested against)?

edit: just been reading here http://wiki.etree.org/index.php?page=FlacFingerprint
seems people like to argue about it, but I feel better now about the flacs.  I like that the ffp is the md5 of the raw audio data.  I have this command:
metaflac --show-md5sum flac_file_names > ffp.txt
so I am off to test this against SHNTOOL.


Looks like what I need is to write a script to run a test on my FLAC file tree against the internally held md5.  Flac in test mode in recursive mode should do this right?  If flac finds an error does it report it per file, or at the end?  Again I will run some tests, but any input is welcome!

REACT 2 Released

Reply #313
Right another question.  When I rip a single what should I do.  I am happy to tweak foobar later to read the tags but does putting the Album Title as 'Alive (single)' allow me to do this later?  I do not want to have to RETAG later unless I can test for '(single)' and use a script

I would really like to have seperate trees for albums and singles (in foobar, I guess this can be done) or to choose to group the singles in a subtree under each artist
eg
Code: [Select]
PEARL JAM
>1992 Ten
>2000 Riot Act
>Singles
  >1992 Jeremy
  >1992 Oceans


So please do not misunderstand, this is not a foobar question (I will learn more later) it is a 'how to get my use of EAC and REACT correct in preparation' question

REACT 2 Released

Reply #314
Great track BTW. 

Hmm.. this kind of reminds me of some tests I did with the REACT code a while back.  My idea was that you could use tags in fields that could then be used as per the usually available tags.

For example, you could use "Alive <type>single</type>" as the album name, thus creating @album@ = "Alive" and @type@ = "single".

My thought was that you could use "Sandinista! <disc>1</disc>" or "Stadium Arcadium <discname>Jupiter</discname>".

I probably still have the code around, although it was not quite there.  It was just before v2 came out so I dropped the idea.

Anyway, that aside, given the fields available to you, I can only think that you use "(single)" and then use foobar to re-tag and re-name all those matching or perhaps use the comment field (Compression Options > Offset tab) and check the value of @comment@ in your CFG and act accordingly.
I'm on a horse.

REACT 2 Released

Reply #315
Thanks again

"Alive <type>single</type>"

so you would type that into EAC and have REACT interpret it as two variables.  That seems like the neatest idea.  My girlfriend will *HATE* it though.  So far I have used (single) and what I was looking for was reassurance that down the line I will be able to use this standard notation to tweak my library the way I want it.  Nothing like forward planning to save yourself a big headache

Still, if the code works I might be able to persuade her to comply.  So if you have something that is easy to tweak and get going with I am interested

Any ideas on an easy way to test an entire directory tree of flacs?

By 'great track' you were referring to Alive?  So true, and they have made so many great tracks.  I have tickets to their first UK gig for seven years (the last time I saw them).  Cannot wait!

REACT 2 Released

Reply #316
I don't have the code working from within REACT v2 (I did in v1) and I'm not comfortable releasing a modded version of REACT really.  I was just wibbling, as I'd forgotten that I'd done that.  I could see it being useful in various situations (I'd definately like it for creating the DISC tag).  Maybe tycho might see this and show his interest..

If you'd rather not use the @comment@ idea then I would say that you could quite easily re-tag and re-name the files in foobar.  Off the top of my head I would say that, if all the files are in your foobar Media Library, you could search for the existence of "(single)", create a playlist of all those files, retag "<single name> (single)" to "<single name>", and move all files to a "%artist%\Singles\%date% %album%" folder structure.  That shouldn't be much effort.

On the other hand, using the @comment@ tag would allow you to do it as and when, and not have to make amends in batches. Although, it would require some CFG amends, and remembering to add and remove the comment... which isn't quite as easy to do as add " (single)" to the 'album' name.
I'm on a horse.

REACT 2 Released

Reply #317
First, I just want to say that REACT2 is such a great tool.  Thanks for all the work & support on this.  AFter extensive reading, I am planning on ripping my entire CD collection to WavPack images and LameMP3 tracks, using EAC with REACT2.  I have done some test ripping and played with the REACT ini & image-cfg files, and have a few questions.

1) Can I embed the cover (album art) in the WavPack (wv) file? 

2) The comment tag on the MP3 files contains my comment twice (example: "REACT2/EAC; REACT2/EAC").  The comment tag is correct on the WavPack files.  Any idea what would cause this?

3) How do I get ReplayGain track values written into the MP3 files?  I want both the album and track gain values written to the MP3 files, but without applying the gain to the files (no scaling).  I have played around with the files to use wavegain, wvgain, and both (without copying values), but only ever get the album gain values written to the files.  I read here that you get both album and track gain values written into tracks, but maybe that is only in track (not image) mode.  If so, is it possible to do this with MP3 tracks from the wavPack image file through REACT?

4) Is there a difference between using wavegain and wvgain to calculate the ReplayGain values, or ar e they just different implementations of the same algorithm?

5) Is there a way to have the Ipod use the ReplayGain tags.  I thought I read somewhere that there was a program to do this, but that it was only available for Macs.  Any way to do this using a PC?

6) If I let iTunes get the album art for the MP3's, will it embed it into the files so that it can be seen elsewhere, or does it only store it encoded for its own use?

And one suggestion for REACT2: I would frequently get an error from the WavPack executeable because the EAClog was not written yet when the executable was called.  I do not think it was written until I clicked "OK" on the EAC riping report, so if you do not use WaveGain, then WavPack was called too fast.  I added this line just before the call to the WavPack executable in the image section of the image-cfg file, and since then it has always worked fine, and it only stops if it needs to:

IF NOT EXIST "@eaclog@" PAUSE


Thanks in advance for all the great answers and assistance I'm sure to get from this extremely helpful forum!

REACT 2 Released

Reply #318
I have had issues with the log being late also; however, as far as I am aware the wait is generally only for a second or so, and therefore having to pause your automated script for user input may be overkill.

I used the following code, which should check for the existence of the log, and wait for two seconds before trying again, if it is not found:

Code: [Select]
REM ---- Image ----

REM Ensure that the EAC log is available
:CheckForLog
IF NOT EXIST "@eaclog@" GOTO Pause

Code: [Select]
GOTO :EOF

REM Pause for 2000 milliseconds and return to :CheckForLog
:Pause
@ECHO Waiting for EAC log file...
PING 1.1.1.1 -n 1 -w 2000 >NUL
GOTO CheckForLog

Thes first snippet goes under the existing "REM ---- Image ----" line.  The second should be added to the very end of the batch file.

I'm afraid I'm not up on album art and replay gain so I'll leave those for the others.
I'm on a horse.

REACT 2 Released

Reply #319
Please Note:

I have created a REACT category in the wiki, for the purpose of grouping guides, tips and tricks together.

To start the process, I have documented two recent tips, "Amending Cuesheet File References" and "Pausing For The Logfile".

I hope that other contributors will find time to document useful tips they they have provided in this thread (I'm looking at you Martin H  ).

If anyone can think of anything else useful that I have contributed in this thread, which they feel should be recorded in the wiki, then please feel free to PM me with the details and I'll try to add it as soon as I have the time.

If you do add pages to this category, please note two formatting requirements:
  • The pages I have created are named "REACT:Amending_Cuesheet_File_References" and "REACT:Pausing_For_The_Logfile".  Prefixing the page name with the category ensures that the pages are neatly categorised and contexualised.
  • At the bottom of the page create a new line with the text "[[Category:REACT]]".  This will add the category link as per the current pages.
Edit: Actually, if you use "[[Category:REACT|<page name>]]" the page will be indexed correctly, e.g.: "[[Category:REACT|Pausing For The Logfile]]" is now indexed under "P", not "R".
I'm on a horse.

REACT 2 Released

Reply #320
Please Note:

I have created a REACT category in the wiki, for the purpose of grouping guides, tips and tricks together.

To start the process, I have documented two recent tips, "Amending Cuesheet File References" and "Pausing For The Logfile".


Thanks SS.
I hope it will save us time not having to search through the posts, when looking for help how to achieve certain features/scenarios.

REACT 2 Released

Reply #321
I have created a REACT category in the wiki, for the purpose of grouping guides, tips and tricks together.


Nice job.  and thank you for acknowledging my (meagre) input!  I got a PM from someone today who was frustrated by this limitation and hadn't read this thread fully so I pointed him at our posts

On the sorting singles issue.  I am keen to leave the cd directory structure but achieve the seperation of singles using the Album tree in foobar (easy to change your mind this way and I dont browse the folders much).  I am trying to write code to detect '(single)' in the album tag and add an extra level to the tree as described above.  I am going to study the foobar syntax later and have a bash at it

REACT 2 Released

Reply #322
Code: [Select]
ECHO s/FILE "@basename@\.wav" WAVE/FILE "%TrackName%\.mp3" MP3/>>sedlist.txt

Valid values for the file type are "WAVE", "MP3" and "AIFF", so if you use FLAC, Wavpack, Monkey's Audio, etc. it's fine/recommended to just leave "WAVE" as "WAVE", but for MP3 you need "MP3".

I have tested these lines in image mode for flac:
Code: [Select]
IF NOT @Flac@==1 GOTO end_flac_tracks
    SET dest="@TrackDir_Flac@"
    IF NOT EXIST %dest% MKDIR %dest%
    PUSHD %dest%
        IF @various@==1 SET VA_tag=-T $qalbum artist=@VA@$q
        IF %embed_cover%==1 SET Cover_tag=--picture=$#x
        @tools@\acdir.exe --overwrite --output "%TrackName%.flac" --extra-opt "|image/jpeg|||@cover@" --pipe "TITLE $n/$N flac $#T & @tools@\flac.exe @Opt_Flac@ %Cover_tag% %VA_tag% -T artist=$#a -T album=$#T -T title=$#t -T tracknumber=$n/$N -T date=$q@year@$q -T genre=$q@genre@$q -T comment=$q@comment@$q -T encoding=$qFlac @Ver_Flac@ @Opt_Flac@$q - -o $#o" "@sourcecuesheet@"
        IF %add_rg%==1 @tools@\Glob.exe -v -c @tools@\metaflac.exe %RG_MetaFlac% *.flac
        COPY /Y "@eaclog@" "EAClog.txt"
        IF %have_cover%==1 COPY /Y "@cover@" "folder.jpg"
        IF EXIST "@albumfile@.[mg].cue" COPY /Y "@albumfile@.[mg].cue" .
        ECHO s/\.wav"/\.flac"/>>sedlist.txt
        ECHO s/FILE "@cdartist@ - @album@ - /FILE "/>>sedlist.txt
        @tools@\SED -f sedlist.txt <"@albumfile@.[mg].cue" >"$cdartist$ - $album$.cue"
        DEL "sedlist.txt"
        DEL "@albumfile@.[mg].cue"
    POPD
:end_flac_tracks

They seem to work and I prefer image mode since it works even if the last track is a data track. The trade-off is that the sed-commands are more "wildcardish".

REACT 2 Released

Reply #323
Code: [Select]
ECHO s/\.wav"/\.flac"/>>sedlist.txt
ECHO s/FILE "@cdartist@ - @album@ - /FILE "/>>sedlist.txt
@tools@\SED -f sedlist.txt <"@albumfile@.[mg].cue" >"$cdartist$ - $album$.cue"
DEL "sedlist.txt"

I only used the external command list (sedlist.txt) as I needed to run multiple commands.  Instead of the above, you could just use (untested):

Code: [Select]
@tools@\SED "s/$cdartist$ - $album$ - \(.*\)\.wav/\1\.flac/" <"@albumfile@.[mg].cue" >"$cdartist$ - $album$.cue"

.. but as discussed previously yours does the job and is absolutely fine.  One point though: you are using the non-filename-friendly tokens.  You need to change to:

Code: [Select]
ECHO s/FILE "$cdartist$ - $album$ - /FILE "/>>sedlist.txt


They seem to work and I prefer image mode since it works even if the last track is a data track. The trade-off is that the sed-commands are more "wildcardish".
If this turned out to be an issue you could stick with the syntax you have, but add the line to write the SED command to sedlist.txt as part of the ACDIR run.

I.e.:  ACDIR is already setting the console title and running FLAC for each track (2 separate commands).  You could just append "& <my command line>" to the end of the ACDIR call and the command would execute for each track (<set title> & <run FLAC> & <write to sedlist>).

I don't think this should ever be necessary though.  Just for interests sake.
I'm on a horse.

REACT 2 Released

Reply #324
Code: [Select]
@tools@\SED "s/$cdartist$ - $album$ - \(.*\)\.wav/\1\.flac/" <"@albumfile@.[mg].cue" >"$cdartist$ - $album$.cue"

Have just tried this: Great! 

They seem to work and I prefer image mode since it works even if the last track is a data track. The trade-off is that the sed-commands are more "wildcardish".
If this turned out to be an issue you could stick with the syntax you have, but add the line to write the SED command to sedlist.txt as part of the ACDIR run.

I.e.:  ACDIR is already setting the console title and running FLAC for each track (2 separate commands).  You could just append "& <my command line>" to the end of the ACDIR call and the command would execute for each track (<set title> & <run FLAC> & <write to sedlist>).

Will try this later...