27 октября 2009 г.

Разрезаем lossless-аудио (ape, flac, wv, wav) по файлу cue

Понимаю, что теме этого поста наверняка написано огромное количество статей, мануалов и прочих ЧаВо. Но каждый раз искать лень, проще один раз сделать узелок на память в блоге.

(Это перевод англоязычной заметки. См. также описание более простого способа.)

Итак, задача такова: дана пара файлов, предположим sample.cue и sample.flac, с каким-либо альбомом. Требуется получить треки альбома в отдельных flac-файлах.Если у вас linux, то делается это в два счёта. Ниже следует перевод одной довольно неплохой статьи с решением проблемы.


Файлы с lossless-аудио могут быть разрезаны по cue-файлу при помощи утилиты «shnsplit» (входит в пакет «shntool»). Также потребуется утилита «cuebreakpoints» (из пакета «cuetools»). Чтобы установить их, откройте терминал и введите следующее (эти пакеты есть в Ubuntu и Debian):
sudo apt-get install cuetools shntool

Кроме этого потребуются приложения для работы с выбранным форматом. Для Monkey’s Audio нужна будет утилита «mac» (в Debian есть пакет «monkeys-audio»). Для FLAC и WavePack потребуется установить соответственно «flac» и «wavpack»:
sudo apt-get install flac wavpack

Утилите shnsplit требуется для работы список точек, в которых нужно делить звуковой файл. Очень кстати тут оказывается утилита cuebreakpoints, которая печатает список таких точек по cue- или toc-файлу в формате, используемом в shnsplit. Можно создать конвейер между cuebreakpoints и shnsplit следующим образом:
cuebreakpoints sample.cue | shnsplit -o flac sample.flac

В этом примере flac-файл с именем «sample.flac» разрезается по точкам, содержащимся в «sample.cue» и результат выводится в формате FLAC.

Выходной формат задаётся параметром «-o». Если не указать формат, то файлы будут сохрняться в формате по умолчанию, то есть в виде wav-файлов.

Чтобы разрезать файл в формате Monkey’s Audio и сохраниеть результаты в формате FLAC, нужно выполнить следующую команду:
cuebreakpoints sample.cue | shnsplit -o flac sample.ape

По умолчанию для выходных файлов используется префикс «split-track» (то есть по умолчанию файлы будут иметь имена: split-track01, split-track02, split-track03,…). Можно задать собственный префикс при помощи опции «-a».

Чтобы посмотреть список всех параметров наберите «shntool split -h» или «shnsplit -h».

В звуковые файлах, полученных с помощью shnsplit не будут записаны данные об исполнителе, альбоме и так далее. Однако, можно воспользоваться скриптом cuetag (также входящим в пакет cuetools) для того, чтобы перенести данные из cue-файла в отдельные дорожки. Можно указать отдельные файлы, соответствующие дорожкам, содержащимся в cue-файле:
cuetag sample.cue split-track01.flac split-track02.flac split-track03.flac split-track04.flac

Эта команда перенесёт теги, содержащиеся в файле «sample.cue» в файлы с дорожками: «split-track01.flac», «split-track02.flac», «split-track03.flac» and «split-track04.flac».
Можно записать теги сразу во все полученные файлы:
cuetag sample.cue split-track*.flac

Утилита cuetag работает с форматами FLAC, Ogg и mp3.

Источник

4 комментария:

  1. к вышесказанному можно добавить lltag - для переименования файлов согласно тегам, ну и как бы вот такое вот есть
    http://www.gtk-apps.org/content/show.php/gCue2tracks?content=80703

    ОтветитьУдалить
  2. EasyTag тоже умеет переименовывать, но про lltag не знал, спасибо.

    ОтветитьУдалить
  3. shntool split -f "Flac.cue" -o flac "music.flac" -t %p_%a_%n_%t
    Называет файлы в соответствии с тегом

    ОтветитьУдалить