Didelių ape, flac ir kitų garso bylų karpymas pagal cue sąrašus
Turinys
Trumpai
Neretai atsitinka taip, kad gaunamas vienas didelis audio įrašas su cue byla (dažniausiai tai būna pilni audio CD) pagal, kurią grotuvas turi atsirinkti, koks kūrinys yra grojamas toje didelės audio bylos vietoje. Tai yra labai nepatogu, nes neretas grotuvas to aplamai nepalaiko ir jeigu naudojamos muzikos bibliotekos, tai tokios didelės bylos netinka tvarkymui, nes mes norime tvarkyti kažkokias jų dalis (atitinkamus kūrinius), bet ne tą visą didelę bylą. Tokiu atveju yra naudinga tą bylą suskaidyti į kelias mažesnes.
Pasiruošimas
Jums reikės cuetools shntool flac wavpack paketų ir cuetag įrankio (ubuntu sistemoje jis jau yra su cuetools paketu). Įdiegimas su Ubuntu sistemoje:
sudo apt-get install cuetools shntool flac wavpack
Gentoo sistemoje:
emerge -a cuetools shntool flac wavpack
cutetag
Taip pat sukurkite /usr/bin/cuetag bylą, jeigu jos nėra jūsų sistemoje, su turiniu:
#! /bin/sh
# cuetag.sh - tag files based on cue/toc file information
# uses cueprint output
# usage: cuetag.sh <cuefile|tocfile> [file]...
CUEPRINT=cueprint
cue_file=""
usage()
{
echo "usage: cuetag.sh <cuefile|tocfile> [file]..."
}
# Vorbis Comments
# for FLAC and Ogg Vorbis files
vorbis()
{
# FLAC tagging
# --remove-vc-all overwrites existing comments
METAFLAC="metaflac --remove-all-tags --import-tags-from=-"
# Ogg Vorbis tagging
# -w overwrites existing comments
# -a appends to existing comments
VORBISCOMMENT="vorbiscomment -w -c -"
case "$2" in
*.[Ff][Ll][Aa][Cc])
VORBISTAG=$METAFLAC
;;
*.[Oo][Gg][Gg])
VORBISTAG=$VORBISCOMMENT
;;
esac
# space seperated list of recomended stardard field names
# see http://www.xiph.org/ogg/vorbis/doc/v-comment.html
# TRACKTOTAL is not in the Xiph recomendation, but is in common use
fields='TITLE VERSION ALBUM TRACKNUMBER TRACKTOTAL ARTIST PERFORMER COPYRIGHT LICENSE ORGANIZATION DESCRIPTION GENRE DATE LOCATION CONTACT ISRC'
# fields' corresponding cueprint conversion characters
# seperate alternates with a space
TITLE='%t'
VERSION=''
ALBUM='%T'
TRACKNUMBER='%n'
TRACKTOTAL='%N'
ARTIST='%c %p'
PERFORMER='%p'
COPYRIGHT=''
LICENSE=''
ORGANIZATION=''
DESCRIPTION='%m'
GENRE='%g'
DATE=''
LOCATION=''
CONTACT=''
ISRC='%i %u'
(for field in $fields; do
value=""
for conv in `eval echo \\$$field`; do
value=`$CUEPRINT -n $1 -t "$conv\n" $cue_file`
if [ -n "$value" ]; then
echo "$field=$value"
break
fi
done
done) | $VORBISTAG "$2"
}
id3()
{
MP3INFO=mp3info
# space seperated list of ID3 v1.1 tags
# see http://id3lib.sourceforge.net/id3/idev1.html
fields="TITLE ALBUM ARTIST YEAR COMMENT GENRE TRACKNUMBER"
# fields' corresponding cueprint conversion characters
# seperate alternates with a space
TITLE='%t'
ALBUM='%T'
ARTIST='%p'
YEAR=''
COMMENT='%c'
GENRE='%g'
TRACKNUMBER='%n'
for field in $fields; do
value=""
for conv in `eval echo \\$$field`; do
value=`$CUEPRINT -n $1 -t "$conv\n" $cue_file`
if [ -n "$value" ]; then
break
fi
done
if [ -n "$value" ]; then
case $field in
TITLE)
$MP3INFO -t "$value" "$2"
;;
ALBUM)
$MP3INFO -l "$value" "$2"
;;
ARTIST)
$MP3INFO -a "$value" "$2"
;;
YEAR)
$MP3INFO -y "$value" "$2"
;;
COMMENT)
$MP3INFO -c "$value" "$2"
;;
GENRE)
$MP3INFO -g "$value" "$2"
;;
TRACKNUMBER)
$MP3INFO -n "$value" "$2"
;;
esac
fi
done
}
main()
{
if [ $# -lt 1 ]; then
usage
exit
fi
cue_file=$1
shift
ntrack=`cueprint -d '%N' $cue_file`
trackno=1
if [ $# -ne $ntrack ]; then
echo "warning: number of files does not match number of tracks"
fi
for file in $@; do
case $file in
*.[Ff][Ll][Aa][Cc])
vorbis $trackno "$file"
;;
*.[Oo][Gg][Gg])
vorbis $trackno "$file"
;;
*.[Mm][Pp]3)
id3 $trackno "$file"
;;
*)
echo "$file: uknown file type"
;;
esac
trackno=$(($trackno + 1))
done
}
main "$@"Jau paruošta byla: cuetag
Arba tiesiog:
wget -c http://atviras.lt/Straipsniai/DideliųGarsoBylųKarpymasPagalCue?action=AttachFile&do=get&target=cuetag cp cuetag /usr/bin
Bei nepamirškite uždėti vykdymo teises:
chmod u+x /usr/bin/cuetag
mac
Šį įrankį įdiegsime taip:
wget -c http://darkstar.ist.utl.pt/slackware/addon/slacky/slackware-11.0/multimedia/mac/3.99-u4-b5/src/mac-3.99-u4-b5.tar.gz tar -xzf mac-3.99-u4-b5.tar.gz cd mac-3.99-u4-b5 ./configure --prefix=/usr make make install #tam reikės root vartotojo teisių
Taip pat mac įrankis yra prieinamas pas mus:
Bylų skaidymas
Tokias bylas skaidysime su komanda:
cuebreakpoints cueByla.cue | shnsplit -o flac garsoByla.flac
Su cuebreakpoints komanda yra išvedama skirtingų dalių intervalai, o išvestis yra nukreipiama į shnsplit komandą, kuri ir vykdo patį bylo skaidymą. -o nuostata nurodo, koks turi būti bylų formatas po išvesties. Naujos bylos turės split-track prierašą. Jį galima pakeisti -a nuostata. Taip pačiai galima skaidyti ir ape bylas, tik joms jau reikės anskčiau paruošto mac įrankio:
cuebreakpoints cueByla.cue | shnsplit -o flac garsoByla.ape
Kadangi ape bylos yra suspaustos be garso nuostolių, jas patartina perkoduoti tokio pačio tipo formatu - tai būtų flac (skirtumas tik tas, kad atviras formatas). Taip pat galima nurodyti wav formatą, kurį bus galima lengvai perkoduoti į ogg ar mp3.
Antraščių perrašymas
Naujai sukurtos audio bylos neturės jokios informacijos savo antraštėse (tag'uose). Tačiau visą šią informaciją galima lengvai įrašyti iš cue bylos cuetag įrankio pagalba:
cuetag cueByla.cue split-track*.flac
Reikėtų pastebėti, kad šis įrankis nepalaiko tarpų bylų varduose, tad reikėtų pasirūpinti, kad bylos būtų be jų.
Pabaiga
Dabar jūs galite patogiai naudotis suskaidytomis bylomis. Galėsite patinkančius kūrinius įsidėti į savo grotuvą ir nereikės kelti tos visos didelės bylos.
Daugiau
Nuorodos
http://aidanjm.wordpress.com/2007/01/26/using-monkeys-audio-ape-files-in-ubuntu/
http://aidanjm.wordpress.com/2007/02/15/split-lossless-audio-ape-flac-wv-wav-by-cue-file/
http://onubuntu.blogspot.com/2007/06/splitting-cueflac-files.html
http://gimpel.gi.funpic.de/wiki/index.php?title=Howto:convert_ape_to_wav/mp3/ogg_on_Linux