LINUX.ORG.RU

монтируй как исошник, там будет file.wv+cue+covers(опционально), а потом
надо порезать на треки, я всегда делаю Flac
cuebreakpoints file.cue | shntool split -o flac file.wv

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

shntool [split]: warning: failed to read data from input file using format: [wv]

Кодеков, что ли, каких-то не хватает?

shntool -v
shntool 3.0.3

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

Вот детальный лог:

shntool conv -D -o flac 1998.wv
shntool [conv]: debug1: parsing [flac] encoder argument string originating from command line: [flac]
shntool [conv]: debug1: examining version >=4 (1028) Wavpack file: [1998.wv]
shntool [conv]: warning: failed to read data from input file using format: [wv]
shntool [conv]:          + you may not have permission to read file: [1998.wv]
shntool [conv]:          + arguments may be incorrect for decoder: [wvunpack]
shntool [conv]:          + verify that the decoder is installed and in your PATH
shntool [conv]:          + this file may be unsupported, truncated or corrupt

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

А, всё, кажется, допёр. Нужен ещё media-sound/wavpack

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

Порезалось отконвертировалось. Дурацкий вопрос - а метаданные из cue кроме как ручками можно прописать? :)

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

тоже интересует этот вопрос )) я всегда делаю с помощью easytag, но вроде есть вроде metaflac , но я с ним не разбирался.
PS: Никто не знает как исправить кодировку в easytag которую он юзает для freedb, а то русские названия с freedb отображаются кракозябрами ((

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

Да, скрипт пашет. Если влом писать:

#!/bin/bash

(($# > 0)) || { echo "Error: CUE file not specified"; exit 1; }
DIR_NAME=$(dirname "$1")
[ -d "$DIR_NAME" ] || { echo "Error: Dir \"$DIR_NAME\" not found"; exit 2; }
pushd "$DIR_NAME" > /dev/null
CUE_FILE=$(basename "$1")
PRFX_NAME=${CUE_FILE%.[cC][uU][eE]}
FLA_FILE=$(find . -type f -iname "$PRFX_NAME.flac")
APE_FILE=$(find . -type f -iname "$PRFX_NAME.ape")
WAV_FILE=$(find . -type f -iname "$PRFX_NAME.wav")
WV_FILE=$(find . -type f -iname "$PRFX_NAME.wv")
# [ -n "$FLA_FILE" -a -z "$APE_FILE" -a -z "$WAV_FILE" -o -z "$FLA_FILE" -a -n "$APE_FILE" -a -z "$WAV_FILE" -o -z "$FLA_FILE" -a -z "$APE_FILE" -a -n "$WAV_FILE"  -a -n "$WV_FILE" ] || { echo "Error: there is not one of FLAC/APE/WAV/WV input files"; exit 3; }
[ -n "$CUE_FILE" -a -s "$CUE_FILE" ] || { echo "Error: CUE file \"$CUE_FILE\" not found"; exit 4; }
[ -n "$FLA_FILE" -a -s "$FLA_FILE" -o -z "$FLA_FILE" ] || { echo "Error: FLAC file \"$FLA_FILE\" not found"; exit 5; }
[ -n "$APE_FILE" -a -s "$APE_FILE" -o -z "$APE_FILE" ] || { echo "Error: APE file \"$APE_FILE\" not found"; exit 6; }
[ -n "$WAV_FILE" -a -s "$WAV_FILE" -o -z "$WAV_FILE" ] || { echo "Error: WAV file \"$WAV_FILE\" not found"; exit 7; }
[ -n "$WV_FILE" -a -s "$WV_FILE" -o -z "$WV_FILE" ] || { echo "Error: WV file \"$WV_FILE\" not found"; exit 7; }

# prepare CUE to embed into FLAC (optional)
recode 1251..utf8 < "$CUE_FILE" > tmp.cue

# convert [{ape,flac} -> ]wav -> flac, splitting result according to CUE on tracks NN.flac where NN is [0-9]+
if [ -n "$FLA_FILE" ]; then
	cuebreakpoints tmp.cue | shnsplit -O always -i flac -o 'flac flac -V -8 -e -p -o %f -' -t %n "$FLA_FILE"
elif [ -n "$APE_FILE" ]; then
	cuebreakpoints tmp.cue | shnsplit -O always -i ape -o 'flac flac -V -8 -e -p -o %f -' -t %n "$APE_FILE"
elif [ -n "$WAV_FILE" ]; then
	cuebreakpoints tmp.cue | shnsplit -O always -i wav -o 'flac flac -V -8 -e -p -o %f -' -t %n "$WAV_FILE"
elif [ -n "$WV_FILE" ]; then
	cuebreakpoints tmp.cue | shnsplit -O always -i wv -o 'flac flac -V -8 -e -p -o %f -' -t %n "$WV_FILE"
fi

# embed tags into tracks, rename tracks
for (( i=1 ; i <= $(cueprint -d '%N' tmp.cue) ; ++i )) ; do
  NN=$(printf '%02d' $i)
  [ -s "$NN.flac" ] && {
    # prepare track tags, filter out empty tags, embed the rest
    cueprint -n $i -t 'ARRANGER=%A\nCOMPOSER=%C\nGENRE=%G\nMESSAGE=%M\nTRACKNUMBER=%n\nARTIST=%p\nTITL
E=%t\nALBUM=%T\n' tmp.cue |
    egrep -v '=$' |
    metaflac --import-tags-from=- $NN.flac
    # rename NN.flac to "NN - TrackTitle.flac"
    mv $NN.flac "$NN - `cueprint -n $i -t %t tmp.cue`.flac"
  }
done

rm tmp.cue
popd > /dev/null

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