Такая проблемка возникла. На работе у меня CD-ROM LG CRD-8522B, для которого в базе данных accuraterip.com приводится значение Read offset correction : -491, хорошо повторяющееся в большом количестве рапортов. Поскольку оказалось, что никаких CD, пригодных для самостоятельного определения offset correction, у меня нет, я решил, что вполне кошерно использовать это взятое из интернета значение. В ссылочке (OFFSETS), помещенной в статье про технические основы копирования, говорится, что, имея один дисковод с известным смещением, можно определить смещение для другого. Вот я и решил этим методом определить смещение для дисководов на домашнем компьютере: ASUS CD-S500/A4 (в базах данных отсутствует, в интернете встречается значение offset correction для CD-S500/A, равное 1858, скорее всего, взятое из базы данных, но для похожих дисководов S480/A и S520/A - у них смещения одинаковы) и NEC CDRW/DVD CB1100A. Попытки найти данные по смещению у этого комбика привели меня в замешательство, поскольку приводят значения вообще разного знака: offset: 48 bytes / 12 samples (
fcenter.ru) или -96 bytes / -24 samples (
techlabs.ru). И вроде в обоих случаях речь идет именно о смещении, а не о коррекции, которая должна иметь противоположный знак.
И так, в соответствии с упомянутой ссылочкой, нужно с помощью CD-ROM с известным смещением (выставив правильную коррекцию в ЕАС) скопировать какой-нибудь трек (по идее, с самого начала альбома), а потом сравнить с тем, как этот трек будет скопирован другими драйвами. В идеале, содержание будет тем же самым, но только сдвинутым по времени. По этому смещению можно найти коррекцию. Выглядит достаточно просто.
И так, практическое выполнение задуманного. На "эталонном" сидюке LG CRD-8522B рипаем маленькую песенку в начале альбома Supertramp одноименной группы. Затем запускаем это дело на NEC CB1100A (с коррекцией = 0) и сравниваем в ЕАС полученные WAV-файлы. Результат ошарашивает:
они идентичны!! В общем, на этом основании вроде можно считать, что для NEC CB1100A значение offset correction равно нулю. Но не стоит спешить с выводами, посмотрим дальше.
Далее. Копируем то же самое на ASUS CD-S500/A4. Сравниваем в ЕАС, получаем: различаются сэмплы 0:00:00.349 - 0:00:31.493 (там вся песня на 31 секунду с хвостиком). Значит, сдвиг по фазе относительно "эталона" у нас 0.349 с, но неизвестно даже, в какую сторону. И сколько эти 0.349 с будут в сэмплах? На последний вопрос есть ответ в той самой ссылочке OFFSETS: надо умножить на частоту сэмплирования 44100. Умножаем, получаем... 15390.9 - не многовато ли будет?
Хорошо. Открываем эти WAV-файлы с помощью WinHex. Содержание вроде бы похожее, только разное количество пустых байтов в начале (не считая заголовка файла), ну и в конце различия. Смотрим, где начинается собственно инфа про музыку: у "эталонного" WAV LG начало в позиции 61622, у WAV от ASUS начало по адресу 71078 (это в HEX-кодах). Вычитаем одно из другого, получаем FA56, что равно 64086 в десятичном исчислении. Адреса в HEX-редакторе увеличиваются через 2 байта, 1 сэмпл занимает 4 байта. Так что имеем сдвиг... -32043 сэмпла!!! (минус - поскольку начинает читать раньше времени). Кто больше?! У NEC CB1100A музыка начинается с позиции 63998, сдвиг от "эталона" равен 2376 (HEX) = 9078 (десятичные), что вроде бы соответствует смещению -4539 сэмпла.
Недоуменно чешем в затылке и пробуем еще раз, но по-другому. Открываем эти WAV-файлы в звуковом редакторе Audacity и определяем положение первого максимума на второй дорожке (просто он отдельный и хорошо виден). Получаем: LG - 0:00.463763, NEC - 0:00.477239, ASUS - 0:00.517386. Принимая LG за эталон, получаем для NEC смещение 0.013476 с = -594 сэмпла, а для ASUS оно будет 0.053623 с = -2365 сэмпла. Уже намного лучше и почти правдоподобно. Но - почему не сработали предыдущие способы? Или я чего-то не так понимаю, или не так делаю. Кто подскажет?
Далее. Предположим такой совсем скверный вариант: значение offset correction = -491, взятое для LG CRD-8522B, не соответствует истине. Прошивка другая, другая партия, мало ли что. Тогда опираемся на полученные только что взаимные смещения и на величину offset для ASUS CD-S500/A, равную -1858. И получается, что выбранная нами шкала сбита на 507 сэмплов. Тогда смещение для NEC CB1100A будет всего -87 сэмплов, а для LG надо брать offset correction = +16. Тоже весьма правдоподобно выглядит. И что теперь вот с этим делать?