I'm trying to rip the raw subchannel data from a CD+G disk to a file,
but the subchannel data in the bin file doesn't seem to be correct. Does
anyone know if the bin file should be arranged as follows:
[2352b Audio] [96b Subch] [2352b Audio] [96b Subch] ...
I'm ripping using:
cdrdao read-cd --driver generic-mmc --device /dev/cdrom --read-subchan
I've written a script to parse data.bin, seeking past every 2352 bytes
and then storing the next 96 bytes to an output file.
Unfortunately this does not get me the real subchannel data, although
some values are correct. I'm comparing the data against a rip of the
same CD using a Windows CDG ripper (also using the same CD drive). Some
of the bytes are correct (every 8th byte is the same as the Windows
rip), but the rest of the bytes are either incorrect or wildly scattered.
It looks like for every 96 byte block, bytes 0, 8, 16 etc are in the
correct place, but bytes 1, 9 and 17 etc are at 67, 75 and 83 etc. i.e.
a lot of the byte values found in any 96 byte block of the Windows rip
can be found somewhere nearby in the cdrdao rip but it's not a simple
byte-reordering thing as the bytes seem to be scattered right throughout
the 96 byte block, and not all byte values in the Windows rip are
present in the cdrdao rip.
I haven't seen anything in the MMC READ CD command structure that would
result in subchannel data like this, so I'm wondering if this is down to
the READ CD command returning bum data or if the subchannel data is not
stored in a 96 byte block in cdrdao bin files.