-
2007-08-05
在linux中处理ape和cue - [Coding]
ape确实麻烦,虽然说在win下面有不错的foobar,然而linux中确没有合适的播放器(我已经在用xmms2不想再用老旧的xmms或者audacious, 貌似gstreamer中有monkey audio的插件,不晓得怎么样),也没什么播放器支持cue直接播放,看来还是分割开转成flac最实际。flac不但开源,解码速度也快,虽然比ape大一点点,也是不错的。
需要的工具有monkey audio codec ( mac port), cuetools和shntool。由于mac一直都有license问题,所以只能够到作者superMMX的blog上下载(自己私底下用就好了)。 另外为了一劳永逸,我写了个脚本来解决分割后的重命名麻烦问题。
##############
#!/bin/bash
TEMPNAME="track"
if [[ $# -lt 2 ]]; then
echo "Usage : spliter [cuefile] [soundfile]"
exit
fi
#PERFORMER=`grep PERFORMER $1|sed 's/^PERFORMER //'`
EXT=`echo "$2"|awk -F. '{print $NF}'`
echo $EXT
FILELINE=`grep -n ^FILE "$1"|awk -F: '{print $1}'`
FILELINE=`expr $FILELINE + 1`
#split the file
cuebreakpoints "$1"|shnsplit -n "$TEMPNAME" -o $EXT "$2"
#rename the songs
tail -n+$FILELINE "$1"|awk '
/^\ +TRACK/ { COUNTER = $2;}
/^\ +TITLE/ {
FILE="";
for (i=2;i<=NF;i++) {FILE = FILE" "$i; }
FILE=substr(FILE, 3, length(FILE)-4)
printf "mv \"'$TEMPNAME'%s.%s\" \"%s %s.%s\";", COUNTER, "'$EXT'", COUNTER, FILE, "'$EXT'"
}
'|/bin/sh
#############
要注意分清键盘上1旁边那个`和单引号'的区别。其实这个脚本再写复杂点就可以代替cuebreakpoints(因为shnsplit要求的断点格式和cue中的不同,要写不少代码来转换)这个脚本的功能就是读取cue中的歌曲名称来为分割开的声音文件重命名,你也可以根据需要修改成你想要的命名方式。参数1是cue文件名,参数2是要分割的声音文件名,注意声音文件名并不需要和cue文件里定义的一样。
ps: flac编码器支持文件名通配符,还自动转换后序,用 flac --best *.wav 就可以很方便地搞定
一次过把积压的三张碟: Linkin Park的Hybrid Theory和Meteora, 还有Battlestar Galactica Season1 OST处理了,爽
随机文章:
awk中,man不能给予的一些东西 2008-01-29flac2mp3脚本 2007-10-17警惕特殊字符的优先级 2007-09-09bash shell路径处理问题的小体会 2007-08-24写了个xmms2添加歌曲的脚本 2006-12-17
收藏到:Del.icio.us
引用地址:







