Перенос рипа диска с музыкой в свою библиотеку

Всем изестный факт: оптические диски ввиду своей долговечности тоже изнашиваются. Поэтому умелые товарищи просто делают копию диска на свой жеский диск и слушают ввиде файлов. Так удобнее, поскольку можно строить различные плейлисты из треков разных дисков. Понятно, что если у нас много дисков и нужно из них сделать рип, то хотелось бы чтобы всё было как-то автоматизировано. Такой софт есть и много. Порой у нас возникает желание сделать наиболее точную копию диска с максимальным сохранением качества. Тогда программы вроде ExactAudioCopy настраиваются на риппинг диска целиком, сохраняя рядом CUE-файл - список треков на нём. Слушать конечно можно, если плеер поддерживает разбор CUE-sheet. Но если нужно перекинуть какой-то трек на плеер, то это явно неудобно. Но если рип уже сделан в один файл проще его просто разбить на части.

В интернетах выкладываются пиратские копии лицензионных диков имеено в таком варианте - большой аудиофайл и CUE-sheet. Данная статья к этому никакого отношения не имеет. Она просто рассматривает вопрос как разбить такой рип на треки. Где вы возьмете сам рип - ваши проблемы. Главное помнить о том, что если Вам нравится творчество некоего исполнителя и Вы хотите, чтобы он продолжал творить, то поддержите его материально - купите лицензионную запись.

Итак допустим у нас есть lossless-рип диска в формате FLAC+CUE. Впрочем аудиоформат может быть другим, но никто не мешает его закодировать во FLAC. Сразу стоит заметить, что цель - получение потрекового рипа во FLAC. Почему FLAC? А почему бы и нет? Размеры норм, качество - безпотерьное, формат бесплатен и свободен, на Linux поддержка 100%. Впрочем нас всё устраивает.

Собственно понадобятся такие пакеты (работаем на Archlinux):

  • cuetools
  • shntool

Разбивка рипа FLAC+CUE на треки.

Итак имеем файл FLAC с полным содержанием диска и прилагающийся к нему CUE-sheet. Первое, на что нужно обратить внимание - это кодировка CUE. Если рип снимался при помощи ExactAudioCopy, то вероятность того, что кодировка CP1251 составляет 98%. Нам же нужно всё в UTF-8. Кстати для дисков, в которых названия треков происаны латинницей разница не принципиальна. Разница есть для случаев когда это не так - в частности русский исполнитель и русские песни. Самый простой способ узнать кодировку, имея графический интерфейс - запустить gedit открыть им файл и посмотреть что он определит.

gedit-encoding

Далее мы просто конвертируем кодировку, для чего используем iconv.

$ iconv -f CP1251 -t UTF8 album.cue > album.utf8.cue

Итого мы получили CUE-sheet в кодировке UTF-8. Далее разбиваем, сначала определим метки времени:

$ cuebreakpoints album.utf8.cue

Должны получить список меток времени, по которым будет идти разделение. Нам не принципиально какие именно метки мы получим, важен тот факт, что мы их получили. Используя shnsplit и полученные метки времени делаем разбивку на треки:

$ cuebreakpoints album.utf8.cue | shnsplit -o flac album.flac

Получим набор треков с названием split-trackXX.flac, где XX - номер трека. Остаётся навесить на треки теги, указанные в CUE-sheet. Делаем с помощью скрипта cuetag:

$ cuetag.sh album.utf8.cue split-track*.flac

Теперь теги добавлены в файлы. Конечно записанные теги могут не совсем соответствовать тем, которые приняты в вашей музыкальной библоитеке. На такой случай пригодятся руки и программа easytag.

Вот впринципе и всё по поводу разбивки FLAC+CUE на FLAC-треки.