Skip to content

ThijsWithaar/CD-Grab

Repository files navigation

License: GPL v2 Gitub actions Appveyor build status Github all releases

Introduction

Cd-Grab is a copier/archiver for audio-cd's. It checks for errors during reading and re-reads sectors the same data has been seen twice.

Application Screenshot, in all it's Qt + Windows glory

Why ?

Mostly to scratch an itch. Also EAC is not available under Linux. The audio tooling under Linux requires multiple tools, which are not always very user friendly. Cd-Grab starts, and read whatever is in the drive to the (lossless) .cue/.flac format. This can both be played or processed further.

Features

  • Cross-platform (Windows & Linux)
  • Per-sector CRC check: Only re-reads what's absolutely necessary.
  • Only stores what's aboslutely necessary (1 copy per sector).
  • Reads the disc sequentially, this is the most efficient way of reading, This also prevents reading errors coming twice out of the disc cache.
  • CD-Text and freeDB support with local cache, so the resulting files have metadata.
  • Gapless: Output into a single flac+cue image.

Mount Fuji Commands

Cd-Grab uses the SCSI interface, and the underlying Generic Packet Format for most of the non-audio commands. This standard set of commands, the Mt. Fuji or SFF8090i (v5) standard is still implemented on all CD-drives.

It provides a more capable interface than the high level CD-Rom APIS provided by Windows and Linux. Mount Fuji commands allow, for example, getting the table-of-contents, UPC and ISRC codes and CD-Text.

Local CDDB archive

The CDDB supports a local archive of CDDB entries. With a Audio-CD in the drive, an entry can be generated using the cd-discid and cddb-tools:

	cd-discid /dev/cdrom | xargs cddb-tool template > ../xmcd/editMe

The CDDB class scans for a folder 'xmcd' and parses all files in that folder. The entries in this format can be mailed to [email protected]. The subject of the message needs to be "cddb genre disc-id" where genre and disc-id are replaced with the appropriate values for your disc.