In Reply to: No - you didn't read my post carefully posted by Christine Tham on July 30, 2006 at 18:17:02:
The command I am sending to the drive is a "Digital Audio Extraction" command (which results in audio data being transferred as fast as the drive can extract it). A "C2" error is flagged if the data contains errors, allowing the read command to be retried.This is essentially the same principle as the "Exact Audio Copy" (EAC) program, and as for EAC it's important to choose a drive that does not cache audio data (otherwise the drive might get lazy during rereads and simply spit out the same errorneous data).
The DAC is driven directly off a clock with no intervening PLL stages. There is another buffer in front of the DAC, and audio samples are extracted from this buffer at exactly the same rate as the DAC in order to feed the DAC with minimal jitter.
Choosing buffer sizes is quite important, as well as avoiding memory access contention (between the transport buffer trying to fill the DAC buffer, and the data being extracted from the DAC buffer).
Because the data is read from the drive at faster than normal speed, it potentially allows me to do clever things like variable speed playback (ie. fast forward will timestretch and pitch shift the data) but I haven't bothered implementing those features yet.
But cross fades during track skips would be nice (you get an uninterrupted flow of music even when skipping tracks).
This post is made possible by the generous support of people like you and our sponsors:
Follow Ups
- A little more information - Christine Tham 18:41:14 07/30/06 (0)