Это старая версия документа.


В наше время всё ещё популярны обычные Audio-CD с музыкой. У них есть одна особенность: они фактически не содержат никаких файлов и просто скопировать их из файлового менеджера нельзя. Мало того, их формат таков, что при чтении вполне могут возникать ошибки, которые вы даже не заметите при обычном проигрывании музыки, но которые нежелательны при снятии рипа.

Если вы не гоняетесь за абсолютным качеством и точным соответствием снятого рипа исходному диску, а просто хотите сохранить музыку на компьютер, то вам подойдёт любая из десятков программ, обладающих нужным функционалом. Например:

  • k3b
  • RubyRipper
  • linuxrip
  • … многие другие

В этом случае просто сохраните музыку в ogg или mp3 с нужными вам настройками качества и можете дальше не читать эту статью.

Однако часто хочется иметь точную копию того самого любимого диска. В этом случае вам во первых не подойдёт обычная программа чтения, а во вторых придётся использовать так называемый lossless формат хранения музыки.

Подробности про то, что такое lossless, про всякие тонкости формата Audio-CD и прочие теоретические аспекты можете почитать на соответствующих тематических ресурсах. В этой же статье хочется собрать максимально подробную практическую информацию по снятию аудио рипов.

Снятие рипа

В Linux существует множество хороших программ для снятия рипов с дисков. Но познавательный факт заключается в том, что все они используют для этих целей одну и ту же утилиту командной строки - cdparanoia.

Поэтому лучше всего всегда использовать именно её для снятия рипов, благо по качеству она не уступает ни одной другой существующей программе, включая широко известный EAC.

Итак, я для снятия рипов использую команду

cdparanoia -vzl -O +6 [::]- CDImage.wav

Самым важным тут является так называемый оффсет, без правильного указания которого вы никогда не получите точный рип. Для моего привода он равен +6. Узнать оффсет можно из базы данных accuraterip.com, узнать модель вашего привода можно командой

sudo lshw -c disk
Если вы можете подробно и технически грамотно расписать параметры cdparanoia, то смело правьте эту статью и добавляйте как можно больше информации!

Рекомендуется снимать рип несколько раз подряд, а потом проверить идентичность полученных файлов вычислением md5-суммы для них. Например, если вся работа происходит в одной папке, это можно сделать так:

md5sum -b *.wav

Все суммы должны совпадать. Если диск слишком повреждён - то совпадать они возможно не будут. В этом случае есть несколько вариантов для получения таки правильного и точного рипа:

  1. Снимать рип до тех пор, пока не получите несколько совпадающих файлов.
  2. Более сложный, но при этом правильный вариант - выбрать некий небольшой размер для блока, разбить каждый wav файл на такие блоки, посчитать md5 сумму для каждого блока и затем собрать выходной файл из блоков, совпадающих в наибольшем количестве файлов. Этот вариант требует хорошего знания скриптования (или готового скрипта), но он позволяет при желании добиться максимального качества, недоступного даже для EAC и считать даже сильно порченные диски.

Технических подробностей реализации этих механизмов сказать не могу, если вы можете - то добавьте их в статью. Можно избрать для себя и другой алгоритм.

Обратите, кстати, внимание на смайлы состояния процесса чтения cdparanoia. Посмотреть их можно набрав

man cdparanoia

Или же на странице проекта: http://xiph.org/paranoia/manual.html

Получение CUE

После получения точного рипа необходимо снять с диска информацию о разметке дорожек и сохранить её в файл cue. Сделать это можно разными способами. Самый простой - утилита mkcue:

mkcue > disk.cue

Но она не пишет никакой дополнительной информации. Поэтому лучше использовать для считывания информации о дорожках с диска программу cdrdao. Она записывает всю информацию в файл toc, получить который можно командой:

cdrdao read-toc disk.toc

Дальше полученный файл можно конвертировать в cue с помощью утилиты cueconvert из пакета cuetools:

cueconvert -i toc disk.toc disk.cue

В любом случае вам скорее всего придётся вручную редактировать полученный cue файл, добавляя в него необходимую информацию. Подробней о синтаксисе cue файлов можно почитать тут: http://digitalx.org/cuesheetsyntax.php

Дальнейшая обработка

Хранить музыку в wav файлах - не лучший выход, если у вас конечно нет под рукой датацентра с неограниченным дисковым пространством. Обычно файлы сжимают. И тут есть два принципиально различных подхода - сжимать можно обратимо без потери качества или же необратимо.

В первом случае лучше всего использовать кодек FLAC, который поддерживается большинством устройств и плееров, во втором - OGG Vorbis, показывающий лучшие параметры по отношению качество/размер.

В любом случае исходный wav файл придётся разрезать на треки исходя из информации из cue файла, а затем полученные отдельные композиции закодировать нужным вам кодеком. После чего прописать правильные теги в полученные файлы.

Есть и ещё один весьма странный подход: кодировать целиком диск в один файл и прикладывать к нему заполненный дополнительной информацией cue файл. Очевидных минусов у такого подхода два:

  1. Во-первых cue - это файл физической разметки, он никогда не был предназначен для хранения расширенной информации о композициях и совершенно для этого не подходит.
  2. Во-вторых из диска, сохранённого в виде одного файла, никаким образом не достать одну песню.

На самом деле разрезать можно как до сжатия выбранным кодеком, так и после.