First of all big thanks. I've started using AccurateRip only recently (and already have ripped lots of CDs). I wanted to write something like this myself but didn't want to go through the hassle and apply for 3rd party access.
I'm on *nix. To parse the file correctly, I need to convert the .cue files to UNIX format and use '/' as path seperator. (No big problem)
edit: Hmm, seems like it only works with a single wave file, not with multiple wavs.
edit 2: I finally got it to work. There were strange errors that didn't happen using ActivePerl. As far as I can tell the default data types seem to be different and so I got integer overflows here (perl v5.8.8 on FreeBSD).
Disclaimer: I've never done anything in perl, so this is probably not the right fix, but at least it works for me and should give a hint what's wrong.
--- ARCue.pl.orig Tue Mar 27 17:18:37 2007
+++ ARCue.pl Tue Mar 27 17:12:24 2007
@@ -140,7 +140,7 @@
my $chunkTrackCount = unpack("c",substr($arCrcData,$ptr,1));
my $chunkDiscId1 = unpack("l",substr($arCrcData,$ptr+1,4));
my $chunkDiscId2 = unpack("l",substr($arCrcData,$ptr+5,4));
- my $chunkCddbDiscId = unpack("l",substr($arCrcData,$ptr+9,4));
+ my $chunkCddbDiscId = unpack("I",substr($arCrcData,$ptr+9,4));
$ptr +=13;
if ( $chunkTrackCount != $trackCount
@@ -154,7 +154,7 @@
# How if it flagged that a track is not in the database?
for (my $track = 0; $track < $trackCount; $track++) {
my $trackConfidence = unpack("c",substr($arCrcData,$ptr,1));
- my $trackCrc = unpack("l",substr($arCrcData,$ptr+1,4));
+ my $trackCrc = unpack("I",substr($arCrcData,$ptr+1,4));
$ptr += 9;
if ($arCrcCount == 0){