LINUX.ORG.RU

Разрезать CUE на FLAC


2

3

К сожалению, некоторые альбомы некоторых исполнителей у меня не получается найти в виде нормальных отдельных FLAC-файлов (а lossless послушать таки хочется), а телефон жрать cue отказывается, да и вообще я считаю, что такой формат зло. Чем под Linux можно качественно порезать flac на отдельные треки?

И кто вообще придумал этот cue?

★★★★★

И кто вообще придумал этот cue?

Ценители отсутствия микросекундных неточностей между треками альбома.

Применяй shnsplit, затем cuetag.

PolarFox ★★★★★ ()
cuebreakpoints "$name.cue" | shnsplit -o flac "$name.flac"
cuetag.sh "$name.cue" split-track*.flac
rename "split-track" "$name - " *flac

Нужны пакеты cuetools и shntool

redgremlin ★★★★★ ()

У меня такой sh:

#!/bin/sh
FLAC=«$1»
CUE=«$2»
cuebreakpoints «$CUE» | shnsplit -o flac «$FLAC»

iconv -f CP1251 -t UTF-8 «$CUE» > tmp
mv -f tmp «$CUE»

cuetag «$CUE» split-track*.flac

cinyflo ★★★★★ ()

можно так:

#!/bin/bash

# Split one-file rips with cue into tracks

for dir in $*; do
    echo "Processing directory $dir"
    shntool split -f $dir/*.cue -o flac $dir/*.flac
    echo "Adding tags..."
    cuetag *.cue $dir/split-track*.flac
done

Необходимые пакеты в дебиане: shntool, cuetools

lu4nik ★★★ ()

И кто вообще придумал этот cue?

The cue sheet format was invented by Jeff Arnold of GoldenHawk Technology for use with his DAO (Disc At Once) and CDRWIN applications. The format has since been adopted as the de facto standard, and is used by various other applications, including foobar2000. The official cue sheet specification is widely accepted to be Appendix A of the CDRWIN User's Guide.

The name is taken from the SEND CUE SHEET command (as defined in the SCSI-3 Multimedia Commands specification), used for sending a binary-format cue sheet describing the disc layout to the drive before writing starts in SAO (Session-At-Once) write mode. The drive writes to the disc, using the cue sheet information to generate the P and Q subchannel data, and to retrieve the format and block size of the data transferred with the WRITE command.

The DAO and CDRWIN software was developed for use on MS-DOS and early Windows systems, when it was common to refer to types of files by their file name extensions, in all-caps: TXT for text, DOC for Word document, and so on. Early references to cue sheets likewise referred to CUE files. This convention continues to the present day, but the cue in the term cue sheet is not an acronym and need not be capitalized.

redgremlin ★★★★★ ()

Добавляешь в DeaDBeeF и конвертируешь во flac.

darktic ★★ ()
Ответ на: комментарий от bhfq

Удваиваю. Правда некоторые файлы в кривой кодировке в тегах превращаются в тыкву, но это проблема кривых кодировок.

Akamanah ★★★★★ ()
Ответ на: комментарий от PolarFox

А что мешает правильному плееру начинать буферизовать следующий трек за пару секунд до конца текущего? Так что не аргумент.

А за программу спасибо

KivApple ★★★★★ ()
Последнее исправление: KivApple (всего исправлений: 1)
Ответ на: комментарий от cinyflo

Сделал. А как теперь дать файлам вменяемые имена?

KivApple ★★★★★ ()
Ответ на: комментарий от prischeyadro

А что-нибудь консольное для пакетной обработки?

KivApple ★★★★★ ()
Ответ на: комментарий от KivApple

Разрезать через split2flac. Там есть шаблон для выходных файлов (「@artist/{@year - }@album/@track - @title.@ext」). КО.

aidan ★★★★ ()
Ответ на: комментарий от redgremlin

cuebreakpoints «$name.cue» | shnsplit -o flac «$name.flac»

А нафига так делают, если можно просто shnsplit -f куй.cue -o flac "$name.flac"

anonymous ()
Ответ на: комментарий от KivApple

Я не осилил ничего линуксового для этого, у меня специально виртуалбокс с виндой стоит для аимповского редактора тегов.

cinyflo ★★★★★ ()

Чего тут думать, всё придумано давно.

#!/bin/sh

# frontend for:            cuetools, shntool, mp3splt
# optional dependencies:    flac, mac, wavpack, ttaenc
# v1.3 sen


SDIR=`pwd`

if [ "$1" = "" ]
  then
    DIR=$SDIR
else
    case $1 in
        -h | --help )
            echo "Usage: cuesplit [Path]"
            echo "       The default path is the current directory."
            exit
            ;;
        * )
        DIR=$1
    esac
fi

echo -e "\

Directory: $DIR
________________________________________
"
cd "$DIR"
TYPE=`ls -t1`

case $TYPE in
    *.ape*)
        mkdir split
        shnsplit -d split -f *.cue -o "flac flac -V --best -o %f -" *.ape -t "%n %p - %t"
        rm -f split/00*pregap*
        cuetag *.cue split/*.flac
        exit
        ;;

    *.flac*)
        mkdir split
        shnsplit -d split -f *.cue -o "flac flac -V --best -o %f -" *.flac -t "%n %p - %t"
        rm -f split/00*pregap*
        cuetag *.cue split/*.flac
        exit
        ;;

    *.mp3*)
        mp3splt -no "@n @p - @t (split)" -c *.cue *.mp3
        cuetag *.cue *split\).mp3
        exit
        ;;

    *.ogg*)
        mp3splt -no "@n @p - @t (split)" -c *.cue *.ogg
        cuetag *.cue *split\).ogg
        exit
        ;;

    *.tta*)
        mkdir split
        shnsplit -d split -f *.cue -o "flac flac -V --best -o %f -" *.tta -t "%n %p - %t"
        rm -f split/00*pregap*
        cuetag *.cue split/*.flac
        exit
        ;;

    *.wv*)
        mkdir split
        shnsplit -d split -f *.cue -o "flac flac -V --best -o %f -" *.wv -t "%n %p - %t"
        rm -f split/00*pregap*
        cuetag *.cue split/*.flac
        exit
        ;;

    *.wav*)
        mkdir split
        shnsplit -d split -f *.cue -o "flac flac -V --best -o %f -" *.wav -t "%n %p - %t"
        rm -f split/00*pregap*
        cuetag *.cue split/*.flac
        exit
        ;;

    * )
    echo "Error: Found no files to split!"
    echo "       --> APE, FLAC, MP3, OGG, TTA, WV, WAV"
esac
exit

#!/bin/bash
# Конвертируем из m4a в WAV:
ls -1 | while read i
do
alac-decoder -f "${i%.m4a}.wav" "$i"
done 
# Удалить файлы *.m4a из папки
find . -maxdepth 1 -name "*.m4a" -delete

# Далее из WAV вo FLAC:
ls -1 *.wav | while read i
do
flac --best *.wav
done 

# Удалить файлы *.wav из папки
find . -maxdepth 1 -name "*.wav" -delete  
# Скрипт удалит после конвертирования удалит себя
#find . -maxdepth 1 -name convertor-m4a-wav-flac.sh -delete
cue2tracks -RC -c flac -o "%N. %P - %t" *cue
# Разрезать flac на треки
cuebreakpoints "$music.cue" | shnsplit -o flac "$music.flac"

# Конвертация тегов
iconv --from-code=CP1251 --to-code=UTF-8 --output=utf8.cue "$music.cue"

# Запись тегов
cuetag utf8.cue split-track*.flac

# Удалить временный файл с тегами
rm utf8.cue  
windusjatnik ()
Ответ на: комментарий от cinyflo

С помощью EasyTag получилось, так что виртуалбокс можешь сносить.

KivApple ★★★★★ ()

1. распарсь cue
1.1 забей всю инфу в переменные
1.2 преврати flac в wav
1.3 разрежь его по трекам
2. конвертируй в mp3

как-то так выглядит на powershell

TGZ ★★★★ ()
Ответ на: комментарий от KivApple

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

cinyflo ★★★★★ ()
Ответ на: комментарий от cinyflo

Тогда еще проще. Но зачем коцать флак? Может плеер не держит cue?

TGZ ★★★★ ()
Ответ на: комментарий от anonymous

А в вашем линуксе проще? Один фиг будешь использовать сторонние утилиты, flac, schntool, lame, sed, awk, grep, cut и т.д.

Вопрос на один раз. Написал и пользуйся.

TGZ ★★★★ ()
Ответ на: комментарий от spichka

зачем нужен «образ муз. диска» одним файлом?

Я на самом деле тоже против cue. Но в тоже время люблю слушать не выборочно, а целиком весь альбом, по порядку, мне кажется, что это реализует саму идею альбома, заложенную авторами. Правда случается, что один трек стоит всего альбома, тогда конечно возникает вопрос, а зачем мне весь диск в одном файле? Но тут уж выбирать самому.

TGZ ★★★★ ()
Ответ на: комментарий от KivApple

А что мешает правильному плееру начинать буферизовать следующий трек за пару секунд до конца текущего? Так что не аргумент.

Неумение разработчика плеера делать аудиоплееры. Большинство поделок-плееров являются всего лишь GUI к какому нибудь бакенду.

Gicdillah ()
Ответ на: комментарий от KivApple

А что-нибудь консольное для пакетной обработки?

У меня такой скрипт, но он заточен под конвертацию в ogg.

#!/bin/bash

# usage:   cue2ogg.sh <path/to/album.cue> <input format> <ogg quality>
# example: cue2ogg.sh artist/album/album_title.cue flac 5

## http://www.linux.org.ru/forum/multimedia/9989119

SplDir="$(dirname "$1")/split"

mkdir "$SplDir"

File="$(grep 'FILE' "$1" | sed 's/\r//g' | ssed -R 's/FILE\s"(.+?)"\sWAVE/\1/' | sed "s/\.wav/.$2/")"
shnsplit -d "$SplDir" -f "$1" -t "%n  %t" "$(dirname "$1")/$File"

rm -f "$SplDir/"00*pregap*

for X in "$SplDir"/*.wav
  do
    O="$(basename "$X"|sed 's/\.wav/.ogg/')"
    oggenc -q $3 -o "/dev/shm/$O" "$X"
    mv "/dev/shm/$O" "$SplDir/../$O"
  done

cuetag "$1" "$(dirname "$1")/"*.ogg

rm -rf "$SplDir"

Пакетную обработку я делаю командой find ./music -type f -iname "*.cue" -exec cue2ogg.sh flac 7 {} \;

Gicdillah ()

я наверно представляю меньшинство, но считаю что резать по cue не нужно. его должен поддерживать плеер.

punya ★★ ()
Ответ на: комментарий от punya

Помимо необходимости искать нужный плеер (а тот, что не поддерживает cue, может оказаться лучше по удобству, качеству звука и т. д.) такой формат также заставляет меня копировать на не очень то большую память телефона альбомы целиком. А что если мне нравится 1-2 песни из альбома?

KivApple ★★★★★ ()
Ответ на: комментарий от cinyflo

Аимповский конвертер великолепно работает в вине, а последняя версия ещё и многопоточная. Так что можешь сносить вб.

Panic_At_The_Kernel ()
Ответ на: комментарий от Panic_At_The_Kernel

Дык я спецально чтобы вино не ставить, не знаю почему, но мне с вб удобне. [шутка]Да и трезвенник я.[/шутка]

cinyflo ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.