CUE Splitter в Linux: разбиваем аудиообраз на отдельные треки

Образ аудиодиска в виде одного большого файла FLAC или APE с приложенным CUE-листом неудобен для плеера: переключать треки нельзя, а скробблинг и теги работают некорректно. Решение — разрезать образ на отдельные файлы по меткам из CUE, и в Linux для этого есть несколько проверенных инструментов, работающих без перекодирования и потери качества.

В этой статье разберём, чем отличаются shntool, cuetools и графическая утилита Flacon, как их установить в популярных дистрибутивах и что делать, если после разрезания в именах треков появились «кракозябры» — самая частая проблема при работе с CUE-файлами, созданными в Windows.

Что такое CUE-файл и зачем резать образ

CUE sheet — это обычный текстовый файл с разметкой: в нём перечислены названия треков, исполнители и точные временные позиции начала каждого трека внутри большого аудиофайла. Плееры умеют читать CUE «на лету», но далеко не все — особенно на портативных устройствах и в автомагнитолах.

Разрезание образа решает сразу несколько задач:

  • 🎵 Каждый трек становится отдельным файлом — удобно для плейлистов и переноса на телефон.
  • 🏷️ Метаданные из CUE (исполнитель, альбом, названия) можно автоматически прописать в теги.
  • 💾 Разрезание без перекодирования сохраняет исходное качество lossless-формата бит-в-бит.
  • 📂 Отдельные файлы проще архивировать, синхронизировать и проверять контрольными суммами.
⚠️ Внимание: перед любыми операциями сделайте резервную копию исходного образа и CUE-файла. Если в разметке обнаружится ошибка или вы укажете неверные параметры, восстановить оригинал без копии будет невозможно.

Обзор инструментов: консоль и графический интерфейс

Выбор инструмента зависит от ваших привычек: консольные утилиты удобны для пакетной обработки и скриптов, а графические — для разового использования. Ниже сравнение основных вариантов, доступных в репозиториях популярных дистрибутивов.

ИнструментИнтерфейсФорматыОсобенности
shntoolКонсольWAV, FLAC, APE и др.Только режет, теги не прописывает
cuetoolsКонсольЗависит от кодековРазметка, теги, переименование
FlaconГрафический (Qt)FLAC, APE, WAV, TTA и др.Простой выбор папки, профили кодирования
mp3spltКонсольMP3, OGGРезка без перекодирования для lossy

На практике чаще всего используют связку shntool + cuetools: первая утилита режет файл, вторая накладывает теги из CUE. Тем, кто предпочитает мышь терминалу, подойдёт Flacon — он объединяет оба шага в одном окне.

📊 Какой способ разбиения CUE-образа вам ближе?
Только консоль (shntool/cuetools)
Графическая программа (Flacon)
Использую и то, и другое
Ещё не пробовал, только выбираю

Установка shntool и cuetools

Обе утилиты есть в стандартных репозиториях большинства дистрибутивов. Для систем на базе Debian и Ubuntu установка выполняется одной командой:

sudo apt install shntool cuetools flac

Пакет flac нужен как кодировщик: shntool сам по себе работает с WAV-подобным потоком, а сжатие во FLAC выполняет внешний кодировщик. Если образ в формате APE (Monkey's Audio), дополнительно потребуется пакет mac — проверьте его наличие в репозитории вашего дистрибутива, так как в некоторых он отсутствует или вынесен в non-free секции.

Для Fedora команда будет выглядеть иначе — используется менеджер пакетов dnf:

sudo dnf install shntool cuetools flac

В Arch Linux и производных пакеты ставятся через pacman -S shntool cuetools flac. Если какого-то пакета нет в официальных репозиториях, поищите его в AUR или используйте Flacon как альтернативу.

Разбиение образа через консоль: пошаговая инструкция

Классическая схема состоит из двух команд. Первая разрезает образ по меткам из CUE, вторая прописывает теги. Перейдите в папку с файлами и выполните:

cuebreakpoints disk.cue | shnsplit -o flac disk.flac

cuetag disk.cue split-track*.flac

Разберём, что здесь происходит. Утилита cuebreakpoints извлекает из CUE-файла временные метки, а shnsplit режет образ по этим точкам и кодирует результат во FLAC. Команда cuetag (в некоторых версиях — cuetag.sh) читает тот же CUE и записывает названия треков, исполнителя и номера в метаданные полученных файлов.

☑️ Проверка перед разбиением

Выполнено: 0 / 5

Если образ называется иначе или лежит в другой папке, скорректируйте пути. Обратите внимание: внутри CUE-файла в строке FILE указано имя аудиофайла — оно должно точно совпадать с реальным именем файла, включая регистр букв, иначе утилиты не найдут источник. Откройте CUE в текстовом редакторе и при необходимости исправьте путь.

⚠️ Внимание: не запускайте shnsplit в папке, где уже есть файлы с именами вида split-track* — они могут быть перезаписаны. Работайте в отдельном каталоге или сначала убедитесь, что таких файлов нет.

Графический способ: Flacon

Flacon — пожалуй, самый удобный вариант для тех, кто не хочет работать в терминале. Программа автоматически находит CUE-файл, показывает список треков и позволяет выбрать выходной формат: FLAC, MP3, OGG, Opus и другие, если соответствующие кодировщики установлены в системе.

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

Установка в Ubuntu и Debian выполняется командой sudo apt install flacon. Если пакета нет в репозитории вашей версии дистрибутива, программа доступна и в формате Flatpak — этот вариант независим от версии системы.

Проблема с кодировкой: «кракозябры» в именах треков

Самая частая неприятность при разбиении русскоязычных релизов — битые названия треков. Причина почти всегда одна: CUE-файл создан в Windows и сохранён в кодировке CP1251, а Linux-утилиты по умолчанию ожидают UTF-8.

Решение — перекодировать CUE перед разбиением. Это делается утилитой iconv, которая входит в состав системы:

iconv -f CP1251 -t UTF-8 disk.cue -o disk_utf8.cue

После этого используйте в командах новый файл disk_utf8.cue. Как понять, что проблема именно в кодировке: откройте CUE в текстовом редакторе — если кириллица отображается нечитаемыми символами, файл не в UTF-8. Некоторые редакторы (например, Kate или Gedit) показывают определённую кодировку в строке состояния.

А если CUE в другой кодировке?

Вместо CP1251 подставьте нужную: для японских релизов это может быть SHIFT-JIS, для западноевропейских — ISO-8859-1. Список поддерживаемых кодировок смотрите командой iconv -l.

Типичные ошибки и их решение

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

  • 🔍 «file not found» — имя файла в строке FILE внутри CUE не совпадает с реальным; проверьте регистр букв и расширение.
  • 🧩 shnsplit сообщает о неподдерживаемом формате — не установлен нужный кодировщик (flac, mac для APE) или формат образа экзотический.
  • ⏱️ Треки режутся со смещением — возможная причина в pregap-разметке CUE; попробуйте вариант с cuebreakpoints и сравните результат.
  • 🏷️ Теги не прописались — убедитесь, что cuetag применён именно к созданным файлам и маска split-track* им соответствует.

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

Часто задаваемые вопросы

Теряется ли качество при разбиении FLAC по CUE?

Нет. Разрезание lossless-образа происходит без перекодирования аудиопотока — данные просто делятся по границам треков. Итоговые FLAC-файлы идентичны по качеству исходному образу.

Чем разрезать образ в формате APE (Monkey's Audio)?

Потребуется декодер Monkey's Audio — пакет mac, если он есть в репозитории вашего дистрибутива. Альтернатива — Flacon, который умеет работать с APE при наличии соответствующего декодера в системе, либо предварительная конвертация APE в FLAC без потерь с последующим разбиением.

Можно ли разрезать MP3 по CUE без потери качества?

Да, для этого подходит утилита mp3splt — она режет MP3 и OGG без перекодирования, разделяя поток по временным меткам. Учтите, что точность разрезания lossy-форматов ограничена границами фреймов, поэтому для архивного хранения предпочтительнее lossless-источники.

Почему после разбиения треки называются split-track01, split-track02?

Это стандартный шаблон имён shnsplit. Теги с настоящими названиями прописываются отдельно командой cuetag, а переименовать файлы по тегам можно любым массовым переименовщиком, например через EasyTAG или встроенные средства Flacon.

Работает ли этот способ с многодисковыми изданиями?

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