EAC secure mode test proposal
Reply #18 – 2003-05-06 11:44:26
Test part 2 trying to take into account the amount of data re-read if an error is detected To simulate the fact that EAC not only re-reads detected wrong samples themselves, but also a range arround these samples, I did this: 1. Take detected_errors.wav, add (mix paste -> overlap) two copies of itself, one of them with 1 sample of silence added in the beginning, the other with one sample cut before. Now in the resulting file detected_errors_0003.wav every "wrong" sample is replaced by 3 wrong samples in a row, with the originally wrong sample in the middle. 2. Now Step 7.2.2 is done again, resulting in undetected_errors_0003.wav7.2.2.: multiply wrong_samples.wav with detected_errors.wav (Mix Paste Modulate) and substract the result from detected_errors.wav, resulting in the corrected undetected_errors.wav. 3. This whole thing (1.-2.) is repeated multiple times, but everytime the number of samples added/cut in step one before is multiplied by 3, resulting in detected_errors_0009.wav with 9 wrong samples in a row, detected_m_0027.wav with 27 wrong samples in a row .... To illustrate this here an example (mono; _= correct, -=wrong) ___________-_-____-___-_-_-_____-___-_______ : wrong : 8 errors ___________-_-________-_-___________-_______ : detected : 5 errors __________________-_______-_____-___________ : undetected : 3 undetected errors __________-----______-----________---_______ : detected_0003 __________________-_______-_____-___________ : undetected_0003 : 3 undetected errors _______----------------------__---------____ : detected_0009 ____________________________________________ : undetected_0009 : 0 undetected errors Results with Track 2:range additionally Remaining re-read re-read undetected if an samples be- errors error fore/after a occurs detected error 1 -> 0 : 895 wrong 3 -> 1 : 848 wrong 9 -> 4 : 543 wrong 27 -> 13 : 299 wrong 81 -> 40 : 160 wrong 243 -> 121 : 70 wrong 729 -> 364 : 6 wrong; all in 1 "pattern" [/font] Having a look at this remaining 1 pattern manually shows this: beginning: 6175422; end: 6175475 next detected errors before: 6175056; after: 6192877 6175475-6175056 = 419 In this case it would be enough to re-read a range of 419 samples before and after every detected error would be enough to cover all undetected errors. Assuming that EAC always reads whole blocks (588 samples) it would be enough to re-read 3 blocks: the block containing the detected error + one block before and after. As this is based on guesswork, I won't continue testing unless I have facts what EAC really does - it'd be pointless somehow.