Monkey’s Audio, take 5; FLAC, take 1

20:50 | 08-08-2006 | Hardware, HOWTO, 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
  

3 Responses to “Monkey’s Audio, take 5; FLAC, take 1”

  1. EKrava says:

    подозреваю я что еще можно оптимизировать скриптец, потому как shntool позволяет не только нарезать в wav, но сразу переобжать в flac

  2. s says:

    может быть — на момент “написания” под рукой не было ни мака, ни shntool, так что углубляться было некуда. а в дальнейшем так и не пользовался.

  3. EKrava says:

    все равно спасибо, я например пользуюсь постоянно, пережимаю single flac+cue и .ape .cue, в flac потрековый, причем shntool умеет не только в flac кодить но и делать это сразу из .ape т.е. этап mac -d можно вообще пропустить.

Leave a Reply