Собственно понадобятся такие пакеты (работаем на Archlinux):
cuetools
shntool
Далее собственно скрипт, который мы сохраняем и выполняем командой # sh script_name.sh :
# Далее мы просто конвертируем кодировку, для чего используем iconv.
iconv -f CP1251 -t UTF8 *.cue > album.utf8.cue
# Итого мы получили CUE-sheet в кодировке UTF-8. Далее разбиваем, сначала
# определим метки времени:
cuebreakpoints album.utf8.cue
#Должны получить список меток времени, по которым будет идти разделение.
#Нам не принципиально какие именно метки мы получим, важен тот факт, что
#мы их получили. Используя shnsplit и полученные метки времени делаем
#разбивку на треки:
cuebreakpoints album.utf8.cue | shnsplit -o flac -f album.utf8.cue -t «%n — %t» *.flac
# Получим набор треков с названием split-trackXX.flac, где XX — номер
# трека. Остаётся навесить на треки теги, указанные в CUE-sheet. Делаем с
# помощью скрипта cuetag:
rm *pregap.flac
cuetag.sh album.utf8.cue «%n — %t» *.flac
# Теперь теги добавлены в файлы. Конечно записанные теги могут не совсем
# соответствовать тем, которые приняты в вашей музыкальной библоитеке. На
# такой случай пригодятся руки и программа easytag.
# Вот впринципе и всё по поводу разбивки FLAC+CUE на FLAC-треки.
rm album.utf8.cue
Интересно, что shnsplit конвертирует FLAC во FLAC с промежуточным WAV. То есть он его не «пилит» на части, а именно конвертирует. Не знаю, сказывается ли это на качестве. Я поднимал эту тему на ЛОРе ещё в 2012-м, но похоже что всех всё устраивает, потому что за это время всё осталось по-прежнему.
Тоже интересует. Чтобы перемешивать треки в плейлисте. А резать нельзя - файлы на раздаче, а пару терабайт места терять не хочется. Сейчас к каждому cue держу рядом edl в формате mpv для каждого трека.
Мне просто интересно, если сконвертировать FLAC в WAV и обратно во FLAC, сойдётся ли он побайтово? Если да - тогда вопросов нет. Если нет - а если 100500 раз повторить, станет ли хоть немного хуже?
С cue разобрался. Для libcue и cuetools лучше убрать BOM из UTF файлов. И в конце файла обязательно должен быть перевод строки. Ещё стоит проследить за символом '\'.
mpd. Но хандлить cue нормально, насколько я помню, умеют не все клиенты, чтобы они корректно добавлялись в очередь (mpd сам по себе умеет работать с cue).