Monkey’s Audio, take 5; FLAC, take 1
8 August 2006 | HOWTO, Hardware, Software | 3 Comments
между тем, случайно выяснилось, что дела с прекрасным APE ничуть не лучше и под линуксом, хотя уж тут-то я даже и не сомневался в повсеместном счастье.
так оно, впрочем, и бывает — разбираться, то есть, конечно можно: почему, например, только один-единственный GStreamer понимает Monkey’s Audio? и почему он это делает плохо? и прочая-прочая еще — выяснять, конечно, можно, но очень уж скучно… да и без дрязг идеологических там не обошлось.
поэтому лучше, во-первых, слушать APE с помощью wxMusik, который GStreamer не использует, или, во-вторых, перекодировать во FLAC, который тоже сжимает без потерь, да и вообще ничем не хуже, а наоборот — и вовсе превосходен: это и межплатформенная поддержка различными программными плеерами, и всевозможными домашними стерео-системами, и car-audio, и другими portables, которые, понятно, наиболее важны — так, среди них и моя неразделенная любовь Rio Karma, и вполне даже самые популярные iRivers или iPods (с альтернативной прошивкой, которая вдобавок умеет еще и gapless playback вместе с customizable crossfading).
так же, кодировать во FLAC ничуть не страшась можно даже Super Audio CD, поскольку FLAC умеет multi-channel — в отличии, скажем, от.
и только ситуация с iTunes по-прежнему плоха: воз, конечно, с места сдвинуть пытались, но (как всегда) очень недолго, отчего и по сей момент он все там же — как бы там ни было, однако, но под Mac OS X слушать FLAC можно с помощью Cog, и уж значительно спокойней себя при этом чувствовать — для чего ниже и расположен скрипт, посвященный как раз такой (APE -> потрековый FLAC) трансформации:
#!/bin/bash
#
# no parameters required
#
# by default filenames consist of track numbers only (i.e., 01.flac, 02.flac, etc)
# you can use 'rename' option to rename files according to titles in a .cue-file
#set main values
APEFILE=$(find . -iname "*.ape")
CUEFILE=$(find . -iname "*.cue")
TITLES=$(cueprint -t %n.%t= $CUEFILE)
#convert to wav (shnsplit not always cat split .ape)
mac $APEFILE $APEFILE.wav -d
#split wav file
cuebreakpoints $CUEFILE | shnsplit $APEFILE.wav
#change files names (depending on request)
((i=1))
IFS="="
for waves in $TITLES
do
if (( i < 10 ))
then zz="00" && z="0"
fi
if ((i >= 10 && i < 100 ))
then zz="0" && z=""
fi
if ((i >= 100 && i < 1000 ))
then zz="" && z=""
fi
if [ "$1" = "rename" ]
then mv split-track$zz$i.wav $z$waves.wav
else mv split-track$zz$i.wav $z$i.wav
fi
((i++))
done
#rm big .wave/.ape files
rm $APEFILE.wav
rm $APEFILE
#encode & verify rest .waves to .flacs
find . -iname "*.wav" -exec flac {} \;
#rm rest .waves
rm *wav
#rm .cue
rm *.cue
#exclude '.wav' from resulting filenames
#(if needed -- i do not remember :))
for f in *.wav.flac; do
newname=${f%.wav.flac}.flac
mv -i "$f" "$newname"
done
подозреваю я что еще можно оптимизировать скриптец, потому как shntool позволяет не только нарезать в wav, но сразу переобжать в flac
может быть — на момент “написания” под рукой не было ни мака, ни shntool, так что углубляться было некуда. а в дальнейшем так и не пользовался.
все равно спасибо, я например пользуюсь постоянно, пережимаю single flac+cue и .ape .cue, в flac потрековый,
причем shntool умеет не только в flac кодить но и делать это сразу из .ape
т.е. этап mac -d можно вообще пропустить.