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 v0.990 released (Read 15657 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

REACT v0.990 released

This release has better preconfigured setups, so that you can use it without much manual editing of the INI files. Editing the INI-files are still not for the faint of heart, but you should be able to edit the setting of 'destdir1=...' and 'dest1=...' variable for specifying the destination files.

See thread: http://www.hydrogenaudio.org/forums/index....ndpost&p=319638

REACT v0.990 comes with five predefined configurations:

FLAC, WAVPACK, APE, LAME and OGG.

Each has an image and a track mode. E.g, if you want to rip to WAVPACK tracks, you should hit Alt-F2 and edit and set the 'Config' key right at the top of the file to 'WAVPACK' (default FLAC), then close notepad. A traytip should now show that you have selected config WAVPACK. Hit Shift-F5 (or hotkey F4) to start ripping and create the tracks.

Why use REACT? Well, it does the lot. For each configuration it automatically:

Ripping to image:
  • auto-closes 'Extracting Audio Data' dialog so that EAC saves status log.
  • encodes
  • adds complete set of tags
  • embeds cuesheet file and EAC log file
  • computes and adds RG album gain tags
  • moves the image (and optionally the cuesheet and EAC log) to a desired folder.
Ripping to tracks:
  • auto-closes 'Extracting Audio Data' dialog so that EAC saves status log.
  • encodes to a folder associated with each configuration.
  • adds complete set of tags
  • computes and adds both RG track and album gain tags.
Note especially:
- FLAC image: adds cuesheet *with* CDText info. Works well with fb2k.
- LAME tracks: encodes gapless (using --nogap) after all tracks are ripped.
- LAME and OGG: Because these formats are often used for DAP playback,        replaygain values are applied to the stream (using --scale, mp3gain, or vorbisgain) rather than added as tags.

Package: REACT now comes bundled with a selection of tools. Two special made are included:
- WaveGain.exe v1.2.5.E3  - adds additional post execution of a command (see WaveGain thread).
- Glob.exe - a tool that can run commands and expand wildcard files. Useful for e.g. flac.exe, metaflac.exe, and lame.exe --nogap

Some News:
  • You can define the @musicdir@ for the root of where to store the music files
  • You can define the @encdir@ for your encoders and tools are stored.
  • You can set 'Debug=1' to avoid that the encoding window closes - for debugging.
  • You can set the CodePage (default to 1252) that the command window shall use.
  • A Traytip on startup shows the active configuration.

REACT v0.990 released

Reply #1
Quote
- LAME tracks: encodes gapless (using --nogap) after all tracks are ripped.
Out of curiosity: I've read somewhere that this switch is not recommneded at all for gapless playback ... so correct me If I'm wrong...
Sorry for my poor English, I'm trying to get better... ;)
"The greatest trick the Devil ever pulled, was convincing the world he didn't exist."

REACT v0.990 released

Reply #2
Quote
Quote
- LAME tracks: encodes gapless (using --nogap) after all tracks are ripped.
Out of curiosity: I've read somewhere that this switch is not recommneded at all for gapless playback ... so correct me If I'm wrong...
[a href="index.php?act=findpost&pid=335525"][{POST_SNAPBACK}][/a]

Yes, and I really don't know the status of this as of yet. I thought that --nogap would do no harm, but has limited usefulness because it is currently only foobar that uses the extra information stored in the lame tags for doing gapless playback. Btw, can foobar save the gapless mp3 stream back to an mp3 image file? (I doubt it).

Ps. First post is updated.

REACT v0.990 released

Reply #3
Nice work tycho.

I was having problems with the previous version, but this one seems to work as expected, and the closing of the dialogue to add the log is the icing on the cake.

Thank you for persisting with this tool - it's a beaut.

Edit: after me playing around with REACT for a while it seems to have lost its link to EAC again.  That is, when I start REACT it does not start EAC, which it did do after installing.    The previous version I had installed had lost this link also.

Any idea what might be breaking this link and how I might get it back?

WinXP SP2, EAC 0.95b3.

Thanks.

Edit2: Re-installation does not help, and neither does deleting the ini file.  If I right-click on the system tray icon "Script Paused" is ticked - but there doesn't seem to be a way to untick that anyway.
I'm on a horse.

REACT v0.990 released

Reply #4
Ha!  I just got it as I was writing my findings...

You are using Opt("WinTitleMatchMode", 2).

Therefore, if I have Explorer open at the folder "C:\Program Files\Exact Audio Copy" a match is made and WinExists($g_eacTitle) returns true.

I can only suggest using 1 instead of 2 - but you know better than me whether that is truely feasible or not.
I'm on a horse.

REACT v0.990 released

Reply #5
Ops! Good find. Well, the match mode 2 is requred for the other calls, but I can specify a second "text" argument to WinExists(). I'll make an update.

By the way:
1) For mp3's, id3v1 and ape2 tags are added - no id3v2. Note that when using Tag.exe, you must specify Tag.exe --force id3v1 --force ape2 ... in that particular sequence, so that the ape2 tags are written before the id3v1 tags (strangely enough) - otherwise the id3v1 tags will nolonger be at the end of the file, which is vital. I guess this could be easily fixed in the code.

2) I have updated the wapet source as well (I have it somewhere), so that it makes sure that any existing id3v1 tag is retained and put at the end of the file as well. It also removes an existing ape2 tag block before adding the new one. If you're interested, I can PM you the wapet.c file when I find it - it's small changes only.

REACT v0.990 released

Reply #6
Quote
2) I have updated the wapet source as well (I have it somewhere), so that it makes sure that any existing id3v1 tag is retained and put at the end of the file as well. It also removes an existing ape2 tag block before adding the new one. If you're interested, I can PM you the wapet.c file when I find it - it's small changes only.

I would certainly be interested to see the source, thank you.

The ID3v1 retain sounds like a sensible action.  There seems no reason why Wapet should destroy any information, when its sole purpose is to add APEv2.

I'm not so sure about the APEv2/APEv2 bit.  I would expect Wapet to add tags to existing tags, rather than to remove them.

Thanks again for REACT.  I'm almost there with getting it to do everything my batch files do.  I just need to do the work to add the disc/rip info to a CSV log.
I'm on a horse.

REACT v0.990 released

Reply #7
I understand you reservation for removing existing APE2 tags. Here's how an mp3 file looks like with id3v1, id3v2 and APE2 tags:

[id3v2 tag]
[audio data]
[apetag header]
[apetag item]
[apetag item]
...
[apetag footer]
[id3v1 tag]

Now, the current wapet will simply add a full apetag with new tag items in it, and not care about that any existing tags. Most applications only look for one APE tag (block), namely the one at the end of the file, or just before the id3v1 tag. Ideally wapet should read the entire existing ape tag (block) and update it, but wapet can't do that right now. However, my addition seeks to the apetag header and starts writing the new tag there, effectively removing the old. Then it writes the id3v1 tags if was there. It also truncates the file if the new apetag was shorter than the old.

REACT v0.990 released

Reply #8
Thanks for the info.

That makes a lot of sense.  You've sold me.

I guess Wapet is generally used on files that it is encoding, so there will not normally be any tags present anyway.

In those circumstances where this is not the case, your logic sounds indisputable to me.
I'm on a horse.

REACT v0.990 released

Reply #9
I've uploaded a small update: REACT v0.991.
- Avoid conflict with other windows named "Exact Audio Copy" (e.g. Explorer).

REACT v0.990 released

Reply #10
I've been using REACT v0.991 for the last hour for some bulk ripping.

It seems that that REACT randomly exits after ripping a few discs for me, EAC is still open but the systray icon is gone.

The F10 key stops working for ripping my images and it doesn't close the the window after ripping the disc, which results in the cuesheet not getting embedded in the flac. So i have to close EAC and reopen it via the REACT link.

i have a feeling this has something to do with the window dectection, may be it thinks the EAC has exited and closes itself. I'm browsing webpages and ripping a dvd whilst ripping with EAC so EAC isn't always the window on top of the others.

i seems pretty random, when it happens, but it has happened to me alot in the last hour.
Who are you and how did you get in here ?
I'm a locksmith, I'm a locksmith.

REACT v0.990 released

Reply #11
I've got a few newbie questions re: EAC with REACT (sorry!):

1)

If I start REACT I get an EAC icon showing in the system tray but nothing happens. If I double-click that system tray icon it starts to alternate between an EAC icon and a red X, seeming to indicate that a script is paused.

For now I have created a section called [do-tracks] which does all my file conversion (lossy Lame and lossless WavPack), and I hardcode the selection of "do" by specifying

  do %o %s %d "%a" "%g" "%t" "%n" "%x" "%y" "%m" "%e" "%f" "%b" %r

in EAC's "Additional command line options". This allows me to start EAC and use "Action | Copy Selected Tracks | Compressed..." and the REACT processing takes place just fine. I'm able to do my "stuff" but I'm missing much of the REACT functionality this way.

REACT.exe is in the C:\Program Files\Exact Audio Copy directory, along with REACT.ini and REACT_log.txt.

REACT_log.txt doesn't show anything if I start REACT by itselt. It does get populated when I use EAC to copy as compressed.

What silly thing am I doing/assuming?

2)

Previously when using EAC with LAME_ENC.DLL I'd been using the EAC save dialog to manually create a directory for the artist, then a directory for CD title, then let EAC place all the "# trackTitle" files into that directory. Now I'm using REACT and letting it create the directories for me. It's quite nice! But of course we each have our own particular quirks about directory structure. When I rip a
  • Various CD I'd like a slightly different file organization from a single-artist CD.

    Currently I'm using:

      <my music path path>\$artist$\$album$\@track@ $title$.mp3

    When Various is checked I'd prefer REACT to use:

      <my music path path>\Various\$album$\$artist$\@track@ $title$.mp3

    How would I do this automatically with EAC and REACT? I realize I could (once I can get REACT.exe to run properly) create a new section in the ini with a different dest1 value and then simply choose that section from REACT, but it would be nice if this action could take place automatically for me.

    3)

    I've seen the REACT announcement posts that indicate that I can set the value of various variables ("You can define the @musicdir@ for the root of where to store the music files"). Where do I add the variable = value settings for those variables? Somewhere in the ini I would suppose? (Hey, it's 5something in the morning here in Rhode Island, there are a lot of things that aren't clear to me right now!  )

    Thanks all!
    Bill

REACT v0.990 released

Reply #12
I've solved my question (1). It was the same issue that Synthetic Soul experienced with an open explorer window. Downloading the latest version of REACT solved that problem.

Edit: Now that I've viewed the sample INI that comes with the latest version, I now have the answer to question (3) as well.

D'oh! If I figure out the answer to (2) in the next 5 minutes I think I'll just slither away.

REACT v0.990 released

Reply #13
Quote
Currently I'm using:

   <my music path path>\$artist$\$album$\@track@ $title$.mp3

When Various is checked I'd prefer REACT to use:

   <my music path path>\Various\$album$\$artist$\@track@ $title$.mp3

How would I do this automatically with EAC and REACT? I realize I could (once I can get REACT.exe to run properly) create a new section in the ini with a different dest1 value and then simply choose that section from REACT, but it would be nice if this action could take place automatically for me.

That's a nice idea.  REACT could pick up the state of the Various Artists checkbox and somehow change the path accordingly.

Maybe the user could set dest1 as normal and set destVarious differently, then REACT would swap dest1 with destVarious if the Various Artists checkbox was ticked?  Something like that...
I'm on a horse.

 

REACT v0.990 released

Reply #14
I'm trying the idea of copying my regular section to [do-various-tracks]. When the various box is selected the @artist@ and @title@ values are flipped. I had to modify dest and encoder tags accordingly in my -various- section.

lame.exe --ta "@title@" --tt "@artist@"

Is a bit strange/interesting.

I wonder if the order of those values depends on how the "various" information was entered into freedb? That could make the automation process a bit difficult.

Bill

REACT v0.990 released

Reply #15
Are you sure that the freedb values are correct?  I seem to remember having some poorly set up VA albums when I made my archive.

EAC appears to expect the title to be "<artist>/<title>" format for VA albums.
I'm on a horse.

REACT v0.990 released

Reply #16
Quote
Are you sure that the freedb values are correct?  I seem to remember having some poorly set up VA albums when I made my archive.

EAC appears to expect the title to be "<artist>/<title>" format for VA albums.
[a href="index.php?act=findpost&pid=335920"][{POST_SNAPBACK}][/a]


For the CD "Billboard Top Hits - 1988" EAC displays the freedb information in the Title column as "<title> / <artist>". For example:

Wishing Well / Terence Trent D'Arby

Bill

REACT v0.990 released

Reply #17
If you go to "Action > Create CUE Sheet > Current Gap Settings..." and create a cuesheet for the album you should see from the cuesheet that the TITLE and PERFORMER values are swapped.

I.e.: I don't think it's REACT, I think it's EAC or that freeDB entry.

For testing I amended my titles to use a "<artist>/<title>" format and my cuesheet is as expected.

Edit:

Quote
DTITLE: Technically, this may consist of any data, but by convention contains
   the artist and disc title (in that order) separated by a "/"
with a
   single space on either side to separate it from the text. There may be
   other "/" characters in the DTITLE, but not with space on both sides,
   as that character sequence is exclusively reserved as delimiter of
   artist and disc title! If the "/" is absent, it is implied that the
   artist and disc title are the same, although in this case the name
   should rather be specified twice, separated by the delimiter.
   If the disc is a sampler containing titles of various artists, the disc
   artist should be set to "Various" (without the quotes).
It's that freeDB entry.

NB: with regard to the space either side, EAC (wrongly?) seems to deal with either a space or no space.  If a space is present it is trimmed.  I suppose it's not so wrong as it has the checkbox double check - so it is expecting a VA format.
I'm on a horse.

REACT v0.990 released

Reply #18
Confirmed. There's a bad freedb entry.

I did a "Database | Get CD information from | Remote freedb". There are actually two freedb entries. One is right, one is wrong (flipped over the /). I had ripped this CD once before (older version of Lame) so EAC was still pointing to the wrong one. Thanks for the tip. Looks like special Various processing is still possible, but that folks need to be on the lookout for flipped entries.

The oil burner technician is here to perform a tune-up on my home heating system so I've got to go.

Thanks,
Bill

REACT v0.990 released

Reply #19
Released v0.992.

- Added variable @cdartist@.
- When defining 'Various-dest1=..', it sets @dest1@ to this when a 'Various artists' CD is ripped.
- Restores EAC if it was minimized when encoding, in order to make sure EAC log gets saved.
- Tried to avoid unintentional closing (before EAC). I  haven't had this problem myself, though.
- Added REACT info on EAC title line instead of TrayTip. (found it a little annoying).


I haven't got time to work on this for a while, so hopefully it works as expected.
Have fun.

REACT v0.990 released

Reply #20
Hi,

I have started to try this application out today. I have a couple of questions. Is it possible to calculate REPLAYGAIN_TRACK_GAIN and REPLAYGAIN_TRACK_PEAK on the individual tracks inside a FLAC with embedded cuesheet and have these calculated values in the cue that is stored in the vorbis comment?

Also, is there a way to make it so that spaces are replaced by underscores? I have this checked off in EAC but there appears to be no effect.

Thanks!!

REACT v0.990 released

Reply #21
Quote
Released v0.992.

- Added variable @cdartist@.
- When defining 'Various-dest1=..', it sets @dest1@ to this when a 'Various artists' CD is ripped.
- Restores EAC if it was minimized when encoding, in order to make sure EAC log gets saved.
- Tried to avoid unintentional closing (before EAC). I  haven't had this problem myself, though.
- Added REACT info on EAC title line instead of TrayTip. (found it a little annoying).


I haven't got time to work on this for a while, so hopefully it works as expected.
Have fun.
[a href="index.php?act=findpost&pid=336033"][{POST_SNAPBACK}][/a]


Hrm. I just tried it out. Sorry, but there seems to be an issue. (Could be my stupidity.)

I've got:

[bill-tracks]

destdir1=F:\Music\CDs - Personal Rips - Lame 3.97b1 V2
dest1=@destdir1@\$artist$\$album$\@track@ $title$
various-dest1=@destdir1@\Various\$album$\$artist$\@track@ $title$

destdir2=F:\Music\CDs - Personal Rips - WavPack 4.22 Lossless
dest2=@destdir2@\$artist$\$album$\@track@ $title$
various-dest2=@destdir2@\Various\$album$\$artist$\@track@ $title$

1=>@encdir@\lame.exe -V2 --vbr-new --nohist --add-id3v2 --pad-id3v2 --ta "@artist@" --tt "@title@" --tl "@album@" --ty "@year@" --tn "@track@" --ignore-tag-errors --tg "@genre@" "@source@" "@dest1@.mp3"
2=>if errorlevel 1 pause
3=>@encdir@\wavpack.exe -hmy -w "ARTIST=@artist@" -w "ALBUM=@album@" -w "TITLE=@title@" -w "TRACK=@track@" -w "YEAR=@year@" -w "GENRE=@genre@" "@source@" "@dest2@.wv"
4=>if errorlevel 1 pause
5=>del "@source@"

When I tried ripping a "various CD" the @destdir1@ and @destdir2@ variables didn't get set so @destdir1@\Various\... was actually passed to the encoders:

C:\Program Files\REACT>C:\PROGRA~1\REACT\Encoders\lame.exe -V2 --vbr-new --nohist --add-id3v2 --pad-id3v2 --ta "Gloria Estefan & Miami Sound Machine" --tt "Anything For You" --tl "Billboard Top Hits 1988" --ty "1988" --tn "05" --ignore-tag-
errors --tg "Eighties" "E:\Temp\Vtmp842(2.wav" "@destdir1@\Various\Billboard Top
Hits 1988\Gloria Estefan & Miami Sound Machine\05 Anything For You.mp3"

I removed the various-destN lines and tried ripping the various CD again. This time @dest1@ didn't get replaced so it was passed to the encoders:

C:\Program Files\REACT>C:\PROGRA~1\REACT\Encoders\lame.exe -V2 --vbr-new --nohist --add-id3v2 --pad-id3v2 --ta "Expose" --tt "Seasons Change" --tl "Billboard Top Hits 1988" --ty "1988" --tn "03" --ignore-tag-errors --tg "Eighties" "E:\Temp\
Vtmp8)58-.wav" "@dest1@.mp3"

Perhaps the dest1 value is not being created when a various CD is ripped and there is no various-dest1= line?

Edit: The REACT.ini Version value was not updated to 0.992 when I told REACT to update the config.

Edit: When the value of dest1 changes for each track, the logic in the sample REACT.ini that loops thorugh all tracks from a CD (in a single directory) will probably not work correctly.

I'm reverting to 0.991 for now.

REACT v0.990 released

Reply #22
Quote
have started to try this application out today. I have a couple of questions. Is it possible to calculate REPLAYGAIN_TRACK_GAIN and REPLAYGAIN_TRACK_PEAK on the individual tracks inside a FLAC with embedded cuesheet and have these calculated values in the cue that is stored in the vorbis comment?

Foobar does that in its own special way, by adding a number of tags to the image.
Quote
Also, is there a way to make it so that spaces are replaced by underscores? I have this checked off in EAC but there appears to be no effect.

No sorry. I should have added space as one of the replacement characters in the 'Sla_Bks_Col_Qst_Bar_Quo_Ast_Lt_Gt=-|-|-||!|'|#|[|] ' key. Maybe in the future.

@Bill02888.
You must specify a Various-destdir1=.. as well. 

Note 1: Only one of 'destdir1' and 'Various-destdir1' is expanded to @destdir1@. However, my intention was that when Various-destdir1 isn't defined, it should have falled back to the regular destdir1, but due to a small bug it didn't. So your setup should have worked!  Will be fixed in the next update.

Note 2: You don't have to define destdir1 or Various-destdir1 at all, but dest1 and Various-dest1 must then be self-contained paths.

Quote
Edit: The REACT.ini Version value was not updated to 0.992 when I told REACT to update the config.

Yes, you must move away the INI-file, and a new one will be created.
Quote
Edit: When the value of dest1 changes for each track, the logic in the sample REACT.ini that loops thorugh all tracks from a CD (in a single directory) will probably not work correctly.

Yes, but this is nolonger a problem in v0992, because Various-destdir1 (by default, at least) defines a path which puts all tracks in one directory.

Sorry, this is all quite complicated, but allowing all this flexibility makes it so.

REACT v0.990 released

Reply #23
does enclosing destdir1 in quotes make any difference? as in:

destdir1="F:\Music\CDs - Personal Rips - Lame 3.97b1 V2"

edit: never mind. didn't see tycho's post.

@tycho: thanks for including the @cdartist@ parameter.
WavPack 4.31 / LAME 3.98 alpha 3 -V9 -vbr-new

REACT v0.990 released

Reply #24
kindofblue: you're welcome.
I've uploaded v0.993. Should fix the problems above.

bluestat: you may have spaces replaced by underscores by append |_ to  the replacement key:
Code: [Select]
Sla_Bks_Col_Qst_Bar_Quo_Ast_Lt_Gt=Sla_Bks_Col_Qst_Bar_Quo_Ast_Lt_Gt=-|-|-||!|'|#|[|]|_