Secure ripping

From Hydrogenaudio Knowledgebase
Revision as of 23:28, 29 July 2010 by Jan (Talk | contribs)

Jump to: navigation, search

Secure Ripping

What is Secure Ripping?

Secure ripping is the process of making sure there were no errors during the extraction of audio from a CD.

The basic function of ripping software is to get the CD's table of contents (an index of track start positions), and then for each track to be ripped, it tells the CD drive to go to the beginning of each of the track's data blocks and read them in, one at a time. On an ordinary audio CD, each block is 2352 bytes and corresponds to 1/75th of a second of sound. The software saves that incoming data into an audio file (WAV or AIFF format, usually, as those formats are almost identical to the data coming in from the drive), or the software streams the data into another audio encoder "on the fly", so the user doesn't have to convert it to another format like MP3 in a separate step.

This sounds simple, but it becomes complicated when parts of the CD can't be read accurately, for example due to scratches. And there's actually a lot of variation in whether each drive can reliably and accurately go to the spot it's told to read, and in the way it detects, reports, and handles errors, such as those caused by scratches. That is, every CD drive will give the ripping software 2352 bytes of data for each block the drive is told to read, but that data might be different each time, due to physical problems with the disc or limitations of the drive's hardware. Or the data might be the same each time, but is different when obtained from a different drive.

Ripping software that claims to have "secure ripping" will take into account the capabilities and limitations of the drive, and will make the drive read each sector multiple times. Then it will use various methods of analysis and re-reading to ensure that the data was read as correctly as possible. A bit-perfect rip may not always be possible, and so these programs will report on any errors that could not be corrected, allowing you to examine or attempt to correct the problems, such as by generating a log of suspicious positions or doing some kind of automatic "glitch removal".

The term "secure ripping" is usually used in opposition to "burst mode", which implies the drive is simply told to read a range of blocks just once, and the incoming data is accepted without any extra error detection or correction by the software. Since it doesn't involve re-reading of data (other than what the drive might always do automatically), burst mode is naturally faster than secure ripping.

Secure Ripping Comparison

Definitions

Accurate Stream

Accurate Stream is a CD drive's ability to avoid "jitter". A CD drive, when told to go to a particular point on an audio disc, will usually go to a certain number of samples ahead or behind that point, and all the data blocks it reads will be relative to that starting point. If your CD drive supports 'Accurate Stream', this offset will be a constant value, and should be the same for each particular make and model of drive. Usually the offset is not very large (around 1/250th of a second or less). Secure ripping software can take into account whether the drive has Accurate Stream, in order to know whether extra analysis needs to be done to compensate for jitter. It's still possible to do secure ripping without Accurate Stream; it's just easier and faster when it's supported.

Caching

Caching is the ability of the CD-ROM drive to hold a certain amount of samples in a buffer. Every CD-ROM cache can be "flushed". Caching affects secure ripping because when the drive is told to re-read something, it might just send the cached data instead of actually re-reading the disc. A secure ripper will make sure the cache is flushed so the disc is re-read.

C2 error pointers (software)

CD-ROMs have differing levels of error recognition and correction built-in. C2 is a standard error detection & reporting scheme for certain types of audio CD read errors. When a drive with C2 support detects a read error, it does its own re-reading of the affected portion of the disc and attempts to fix the data itself as best it can. When the drive is feeding this data to the ripping software, it sends C2 error pointers so the software knows that an error occurred and whether it was successfully fixed by the drive. Some copy-protected CDs fool the drive's firmware into thinking there were C2 errors.

The process of C2 error pointer support is complicated, but can be reduced to the drive/firmware/ripping software combination. This category only discusses whether the secure ripping software can detect and utilize C2 error pointers if the drive sends them. Which drives support C2 is a separate topic; see AccurateRip or another drive capability database for that.

AccurateRip

AccurateRip is a database that allows you to find out if your CD rips are the same as other people's; if they were, then it's likely the rips are truly error-free. The database stores disc IDs and checksums for ripped tracks, and it contains info for thousands of drives. This drive info makes it possible to reliably compare the track checksums, and includes each drive's make & model, read offset, AccurateStream capability, audio data cache ability, and use of C2 error pointers. All data about drives and ripped tracks is user-submitted, but is managed through the ripping software.

Windows

EAC and dBPowerAMP

EAC and dbPowerAMP both feature powerful correction mechanisms that works with your CD-ROM drive. Some of these features include AccurateStream, Caching, C2 error pointers, and AccurateRip. For a description of the Exraction techology used on each of these consult their respective wiki pages above.

Accurate Stream

Question: Do EAC and dbPowerAMP work on drives that don't have AccurateStream?
Yes: EAC and dbPowerAMP work on drives that don't have AccurateStream

Caching

Question: Do EAC and dbPowerAMP work on drives that support caching?
Yes: EAC and dbPowerAMP work on drives that support caching

C2 Error pointers

Question: Do EAC and dbPowerAMP work on drives that utilize C2 error pointers?
Yes: EAC and dbPowerAMP work on drives that support C2 error pointers

Log file

Question: Does the current existing secure ripper print out a log file?
Yes: EAC and dbPowerAMP current existing libraries do print out a log file

AccurateRip

EAC and dbPowerAMP support AccurateRip.

Ripping Modes

dbPowerAMP and EAC have two additional modes that can be configured. One is known as "Secure Mode" and the other is known as "Burst Mode". Secure Mode is the recommended mode to use as it goes through the pain staking process of over-anaylzing CD's that may have scratches on them and correcting any bad sectors of audio data. Burst Mode is used for CD's that either have "copy protection" on them or are extremely scratched. It's considered a last ditch effort to recover the audio data from your CD's.

  • Secure Mode
  • Burst Mode

dbPowerAMP offers an additional mode, known as "Defective by Design", specifically designed to rip discs with intentional errors, such as those found on many discs with "copy protection"

  • Defective by Design

CDex

CDex externally uses the cdparanoia libraries. It is a bit different than most other CD-DA extration tools. It contains few-to-no extra features ("Too many features spoil the broth"), concentrating only on the ripping process and knowing as much as possible about the hardware performing it. cdparanoia will read correct, rock-solid audio data from inexpensive drives prone to misalignment, frame jitter, and loss of streaming during atomic reads. cdparanoia will also read and repair data from CDs that have been damaged in some way using interpolation and padding sectors with silence or 0 bytes.

Accurate Stream

Question: Does cdparanoia work on drives that don't have AccurateStream?
Yes: cdparanoia works on drives that don't have AccurateStream

Caching

Question: Does cdparanoia work on drives that support caching?
Yes/No: cdparanoia works best on drives that don't support caching, although recent libraries do work on drives that support caching.

C2 error pointers

Question: Does cdparanoia work on drives that utilize C2 error pointers?
No: The current existing philosophy in CDex is that not all drives support C2 error pointers so therefore the libraries do not support C2 error pointers.

Log file

Question: Does the current existing secure ripper print out a log file?
No: CDex current existing libraries do not print out a log file


Ripping Modes

There are several modes in cdparanoia that can be controlled by the user in CDex. These modes include:

  • Full, Paranoia
  • Overlap
  • No Verify
  • No Sratch Detection

It is best to use Full, Paranoia mode unless otherwise specified (this is the default mode). Overlap and No Verify will just check read boundaries of a buffer and are therefore not recommended. No Scratch detection skips any error correcting and interpolation (compensation for missing gaps in the audio data) and should therefore be used on CD's that are brand new or have minimal scratches.

Mac OS/X

XLD

XLD (X lossless Decoder) version 20080812 uses newest cdparanoia 10.2 libraries for secure ripping and error correcting, which includes AccurateStream and caching. In addition it's the only application for Mac OS/X that utilizes AccurateRip database used by both EAC and dbPowerAMP.

Accurate Stream

Question: Does XLD work on drives that don't have AccurateStream?
Yes: XLD works on drive that don't have AccurateStream

Caching

Question: Does XLD work on drives that support caching?
Yes: XLD works on drives that support caching

C2 error pointers

Question: Does XLD work on drives that utilize C2 error pointers?
Yes: XLD does work on drives that support C2 error pointers.

Log file

Question: Does the current existing secure ripper print out a log file?
Yes: XLD current existing libraries print out a log file

AccurateRip

XLD supports AccurateRip technology utilized by both EAC and dbPowerAMP.

Max

Max externally uses the cdparanoia libraries in conjunction with it's own secure ripping algorithm. Max correction mechanism is quite similiar to Rubyripper. The algorithm uses a comparison feature in order to determine how many times Max should rip and compare sections (maximum retries). It is done on a sector-by-sector basis, rather then byte-by-byte basis. Max can additionally generate a SHA-256 checksum for each additional section in order to more accuratly determine dissimiliarities in a rip. Max differs in that it does not have a direct reliance on cdparanoia for extraction, but instead uses C2 error pointers very similiar to EAC.

Accurate Stream

Question: Does Max work on drives that don't have AccurateStream?
Yes: Max works on drives that don't have AccurateStream

Caching

Question: Does Max work on drives that support caching?
No: Max works on drives that don't support caching

C2 error pointers

Question: Does Max work on drives that utilize C2 error pointers?
Yes: Max current existing libraries support C2 error pointers

Log file

Question: Does the current existing secure ripper print out a log file?
No: Max current existing libraries do not print out a log file

Linux

Rubyripper

Rubyripper externally uses the cdparanoia libraries in conjunction with it's own secure ripping algorithm. Rubyripper correction mechanism goes beyond that of cdparanoia. Every track gets ripped at least twice and is byte compared with the Ruby cmp feature. If any differences are found, each of the 1,000 bytes of the two files is compared. The next trial run looks to see if differing positions or a match can be found. (1,000 bytes is about 0.006 seconds).

Rubyripper won't guarantee a constant MD5-sum on tracks that needed correction. However it will repair any files so that it's impossible to successfully blind-test with the original. The log file will report any position that needed more than 3 trials, so you can check the position yourself.


Accurate Stream

Question: Does Rubyripper work on drives that don't have AccurateStream?
Yes: Rubyripper works on drives that don't have AccurateStream

Caching

Question: Does Rubyripper work on drives that support caching?
No: Rubyripper works best on drives that don't support caching.

C2 error pointers

Question: Does Rubyripper work on drives that utilize C2 error pointers?
No: Rubyripper and the current existing libraries do not support C2 error pointers

Log file

Question: Does the current existing secure ripper print out a log file?
Yes: Rubyripper current existing libraries do print out a log file if specified

Secure Ripping Recommendations

Hydrogenaudio User Recommendations

The general consensus at Hydrogenaudio is that everyone taste's are different. One Secure ripper that works for one person might not be the right match for another, depending upon the users expectations and what features their CD-ROM drives have. It best to first determine what features your CD-ROM drives have before you proceed to decide, which ripper you may be considering using (see external links below). Linux users desiring EAC or dbPowerAMP might be hard pressed to find out that that the application cannot be ported to Linux, but can be run under Wine an abstraction layer that allows you to run Win32 applications on Linux. Linux users seeking an alternative who cannot run EAC or dbPowerAMP under Wine may want to consider Rubyripper. One of the more popular rippers at Hydrogenaudio is EAC in which there are countless guides for. The only drawback is that it nightmare to configure for a new user inexperienced with secure CD ripping. Users desiring something simpler on Windows may want to try dbPowerAMP, which less painlful to configure and can provide the same secure rip's with extra features like better use of C2 error pointers and improved PefectMeta. Some who desire a secure alternative on Mac OS/X to the ITunes Ripper may want to go with Max or XLD. Ultimately what the decision comes down to is what one's drive features and expectations are.


Note: Any rippers not listed on this page are not considered "secure" and are therefore not recommended by the Hydrogenaudio community (i.e example such the Itunes Ripper). It is best to proceed with caution if one decides to use these, unless they are "frontends" for instance Grip is a cdparanoia frontend for Linux or they are considered "secure", but are not as popular and aren't listed on this wiki page.

External links