IPB

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topic
ARCue.exe - Check whole CD rips with AccurateRip, Split from Topic ID: 53583
whitehobbit
post Nov 2 2007, 23:49
Post #1





Group: Members
Posts: 4
Joined: 24-October 07
Member No.: 48142



I have ported ARCue.pl to C++ and it works much faster than the Perl version. You can find an executable Win32 binary - arcue.exe - and the source code (a Visual Studio 2003 project) - arcue.rar. And, yes, I got an approval from Mr Spoon.
Go to the top of the page
+Quote Post
verbajim
post Nov 3 2007, 00:53
Post #2





Group: Members
Posts: 54
Joined: 18-February 07
Member No.: 40710



Thank you whitehobbit! That's definitely an immense speed improvement. Works great so far.
Go to the top of the page
+Quote Post
whitehobbit
post Nov 4 2007, 00:02
Post #3





Group: Members
Posts: 4
Joined: 24-October 07
Member No.: 48142



I have completely forgot to mention that you need MFC71.dll. You can download it from here. Copy it to your C:\windows\system32\ folder and everything should work fine.
Go to the top of the page
+Quote Post
valnar
post Nov 4 2007, 19:56
Post #4





Group: Members
Posts: 100
Joined: 31-December 02
Member No.: 4330



Works great! And much faster.

I'm 60% through all my CD's since I started this Summer and this will help great with the rest. I've been using REACT2 and ARCue. Thanks!

-Robert
Go to the top of the page
+Quote Post
whitehobbit
post Nov 10 2007, 00:06
Post #5





Group: Members
Posts: 4
Joined: 24-October 07
Member No.: 48142



arcue.exe - Win32 binary
arcue.zip - source code

I have fixed a few issues in ARCUE.exe:

- fixed trackConfidence type (sometimes confidence was shown as a negative number);
- now CUE/WAV can be in a folder different from the current one; when you call arcue.exe just speicify whole path to CUE and this path will be used to open WAV too;
- ported from GRETA to PCRE regular expression library. Now you can build it with both VS 2003 and VS 2005 (but release configuration only, debug config has some build problems I was to lazy to fix).

This post has been edited by whitehobbit: Nov 10 2007, 00:07
Go to the top of the page
+Quote Post
verbajim
post Nov 10 2007, 00:33
Post #6





Group: Members
Posts: 54
Joined: 18-February 07
Member No.: 40710



Thank you.

Unfortunately it seems the problem with negative numbers still persists:

CODE
Pink Floyd - Dark Side of the Moon.cue:

Checking AccurateRip database

Track Ripping Status [Disc ID: 000f82ac-700a0f09]

1 Accurately Ripped (confidence -113) [1ba21a87]
2 Accurately Ripped (confidence -117) [76ffd972]
3 Accurately Ripped (confidence -119) [b999e41b]
4 Accurately Ripped (confidence -120) [86fed59c]
5 Accurately Ripped (confidence -118) [296a9c2b]
6 Accurately Ripped (confidence -118) [166151d2]
7 Accurately Ripped (confidence -119) [7745d608]
8 Accurately Ripped (confidence -124) [5b7408c2]
9 Accurately Ripped (confidence -122) [3af089e0]

_______________________

All Tracks Accurately Ripped.


This post has been edited by verbajim: Nov 10 2007, 00:34
Go to the top of the page
+Quote Post
Fandango
post Nov 10 2007, 20:52
Post #7





Group: Members
Posts: 1549
Joined: 13-August 03
Member No.: 8353



@verbajim: I changed line 303 to this:
CODE
unsigned char* arCrcData = sz;

Before that arCrcData was still signed.

Now try it again with the latest version:

Updates
  • fixed wrong confidence error (hopefully for good)
  • arcue exits with an error level if the file is not WAVE now. Before that it attempted to calculate the CRCs regardlessly.
Bin and Src packages can be downloaded from this thread: http://www.hydrogenaudio.org/forums/index....showtopic=59423

PS: You'll need the Microsoft Visual C++ 2005 SP1 Redistributable Package for it to run. Otherwise you'll get the error message "The system cannot execute the specified program."

This post has been edited by Fandango: Dec 2 2007, 18:53
Go to the top of the page
+Quote Post
verbajim
post Nov 10 2007, 22:08
Post #8





Group: Members
Posts: 54
Joined: 18-February 07
Member No.: 40710



Thanks, that did the trick. No negative numbers this time. wink.gif

CODE
Pink Floyd - Dark Side of the Moon.cue:

Checking AccurateRip database

Track Ripping Status [Disc ID: 000f82ac-700a0f09]

1 Accurately Ripped (confidence 143) [1ba21a87]
2 Accurately Ripped (confidence 139) [76ffd972]
3 Accurately Ripped (confidence 137) [b999e41b]
4 Accurately Ripped (confidence 136) [86fed59c]
5 Accurately Ripped (confidence 138) [296a9c2b]
6 Accurately Ripped (confidence 138) [166151d2]
7 Accurately Ripped (confidence 137) [7745d608]
8 Accurately Ripped (confidence 132) [5b7408c2]
9 Accurately Ripped (confidence 134) [3af089e0]

_______________________

All Tracks Accurately Ripped.


This post has been edited by verbajim: Nov 10 2007, 22:08
Go to the top of the page
+Quote Post
Fandango
post Nov 10 2007, 22:13
Post #9





Group: Members
Posts: 1549
Joined: 13-August 03
Member No.: 8353



FYI, previous post was updated while you replied, verbajim. Added exit error code when file is not WAVE, so arcue doesn't attempt to CRC check non-WAVE files anymore...
Go to the top of the page
+Quote Post
bbrabant
post Nov 11 2007, 00:44
Post #10





Group: Members
Posts: 44
Joined: 4-April 07
Member No.: 42201



Hello,

I am unable to run the latest version of Arcue.exe.
Do you need some external dll's? I already have MFC71.dll installed.
Hope you can help me,

greetz ben
Go to the top of the page
+Quote Post
whitehobbit
post Nov 11 2007, 01:34
Post #11





Group: Members
Posts: 4
Joined: 24-October 07
Member No.: 48142



For the latest version of arcue.exe you need MFC80.DLL.
Go to the top of the page
+Quote Post
bbrabant
post Nov 11 2007, 13:16
Post #12





Group: Members
Posts: 44
Joined: 4-April 07
Member No.: 42201



Thank you for your reply.
After I installed MFC80.dll Arcue did not run either.
The solution was to install microsoft Microsoft Visual C++ 2005 SP1 Redistributable.
Now it is working perfectly.
Thank you for this great proggie.

Microsoft Visual C++ 2005 SP1 Redistributable is available at:
http://www.microsoft.com/downloads/details...;DisplayLang=en

greetz Ben
Go to the top of the page
+Quote Post
Fandango
post Nov 11 2007, 15:32
Post #13





Group: Members
Posts: 1549
Joined: 13-August 03
Member No.: 8353



Yep, my latest compile is made with Visual Studio 2005 SP1... wink.gif sorry, I forgot to mention that you need its runtime libraries.
Go to the top of the page
+Quote Post
NightOwl
post Dec 4 2007, 19:49
Post #14





Group: Members
Posts: 61
Joined: 5-October 06
Member No.: 35992



whitehobbit and Fandango: Thank you so much for this program.

In a test I did now, the elapsed time was just over 58 seconds versus almost 3 minutes and 33 seconds with the Perl-based program. As well, my CPU usage is now between 4% and 20% (usually around 10%) versus hovering around 100% all the time with the Perl-based program.

And Fandango, your download post was updated on December 2nd -- my birthday. Thank you so much for such a great birthday present. biggrin.gif
Go to the top of the page
+Quote Post
Fandango
post Dec 5 2007, 16:39
Post #15





Group: Members
Posts: 1549
Joined: 13-August 03
Member No.: 8353



QUOTE (NightOwl @ Dec 4 2007, 19:49) *
In a test I did now, the elapsed time was just over 58 seconds versus almost 3 minutes and 33 seconds with the Perl-based program. As well, my CPU usage is now between 4% and 20% (usually around 10%) versus hovering around 100% all the time with the Perl-based program.

The bandwidth of the hard disc is probably the bottleneck here now. smile.gif
Go to the top of the page
+Quote Post
Rigger-
post Dec 21 2007, 23:52
Post #16





Group: Members
Posts: 2
Joined: 21-June 04
Member No.: 14804



with the C runtimes it smokes here, mear seconds for a verification.
2 gig of mem and fast cpu really help.
tried everything I could read about the pearl and couldn't get it to work and this happens along.
never mind xmas. Thanks
Go to the top of the page
+Quote Post
XPEHOPE3
post Jul 28 2008, 07:38
Post #17





Group: Members
Posts: 4
Joined: 9-July 08
Member No.: 55546



The utility has small but annoying inconvenience, I would even call it a bug.
It doesn't work with cue files formatted not strictly by standard, i.e. if some index position in a file has spaces after the timestamp (i.e. "INDEX 01 05:30:00 ") arcue.exe doesn't work properly (while foobar2000 does).
Most annoying is the fact, that if the cue file has, say, "INDEX 01 31:36:12" at the end, there MUST be a "line feed" after this string or arcue.exe will compute wrong CRCs for at least one track (counting from the end).
You can see this in work here (it's of Sigur ros - Takk...):
On the right we are processing "normal" cue file, on the left the last "character" (CRLF, 0x0D 0x0A in Windows, 0x0A in Unix) of the cue file is deleted.

This happens because of this code:
CODE
while (fgets(str, MAX_STR_SIZE, fh))
{
str[strlen(str)-1 = 0;

So the code "thinks" there is always a character after the last "INDEX 01 ..." string and replaces that character by 0. So if I feed it some
CODE
    INDEX 01 31:36:12<CRLF>
it is transformed to
CODE
    INDEX 01 31:36:12
, which is expected, and if I feed
CODE
    INDEX 01 31:36:12
it returns
CODE
    INDEX 01 31:36:1
which is unexpected - that's why wrong CRCs are computed.

Yes, I know that each and every program-created cue file has a line feed caracter at the end. In notepad you can see an empty line at the end of any cue produced by EAC, CUETools, Foobar plugin, etc. But manual editing of cue files is done quite often. Personally, I've always deleted that annoying empty lines before I found this bug in arcue.exe.

So this inconvenience is eliminated by either of the three ways:
  1. Always check if there is an empty line at the end of the cue file
  2. Insert this code:
    CODE
    if (str[strlen(str)-1]==0x0A) str[strlen(str)-1]=0;
    instead of
    CODE
    str[strlen(str)-1] = 0;
  3. Insert this code:
    CODE
    for(char *pc = str;*pc;)
    {
        if(*++pc == 0x0A)
        {
            *pc = 0x00;
        }
    }
    instead
    CODE
    str[strlen(str)-1] = 0;
Each provided code parts work because function fgets (which is called before these code parts) transforms Windows CRLFs to Unix format.

PS1: I found the bug, but I was not the one who studied the code.
PS2: anyway since there soon will be a good foobar related utility with arcue functionality, the corrections I provided may be left unnoticed =)

This post has been edited by XPEHOPE3: Jul 28 2008, 07:41
Go to the top of the page
+Quote Post
Parsi
post Jul 29 2008, 19:37
Post #18





Group: Members
Posts: 44
Joined: 8-July 08
Member No.: 55516



oh I am sure your efforts will be of deep interest - not only for the makers of arcue.

thanks for the head ups with the endl thing


--------------------
All tracks accurately ripped

End of status report
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:

 



RSS Lo-Fi Version Time is now: 20th October 2014 - 13:38