发一个制作CUE文件的小程序,比比FOOBAR2000的cuesheet_creator.dll好用
大家应该也会像我一样,有很多专辑没有CUE文件,只能把文件一个一个拉进去,导致FOOBAR2000显示的专辑名和艺术家名都是空,甚至用cuesheet_creator.dll生成CUE文件,曲名也都是数字而已。现我发一个能根据对"flac", ".ape", ".wav", ".dts", ".mp3", ".wma"生成CUE文件的小程序,懂编程的人还能再进行改善。这个程序主要是来自网上,我再加了点小功能。用了它,方便快捷。
使用说明:双击CreateCue_pub.vbs,然后把音乐文件所在的目录输入,点确定,程序就会把音乐文件所在文件夹名当成是专辑名和专辑艺术家名,而遇到是音乐文件属性里有写明艺术家的,程序还能列出来,方便mp3之类的音乐文件。只要不断地运行此程序,并把目录输入,就可以很快捷地把没有CUE文件的音乐文件都变成有CUE文件的专辑,方便FOOBAR2000播放与自己查找。
举例:L:\music\群星.-.[中国民歌集锦].专辑.(MP3)下的MP3:
PERFORMER "群星.-.[中国民歌集锦].专辑.(MP3)"
TITLE "群星.-.[中国民歌集锦].专辑.(MP3)"
FILE "01.采蘑菇的小姑娘.mp3" WAVE
TRACK 1 AUDIO
TITLE "01.采蘑菇的小姑娘"
PERFORMER "靳小才"
INDEX 01 00:00:00
FILE "02.歌唱农村新面貌.mp3" WAVE
TRACK 2 AUDIO
TITLE "02.歌唱农村新面貌"
PERFORMER "罗天婵"
INDEX 01 00:00:00
程序可能有些杀软会报毒,本身没事的。程序如下:
'名称:cue(索引)文件生成脚本
'功能:为分轨flac、ape、wav、dts、mp3、wma生成分轨专用cue(索引)文件
'作者:朱鹏东&钟文创
'此脚本可自由转播,但须保留以上信息。
'
'-------------------------
'Function area
Function testProfix(ByVal str1)
Dim prefix
prefix = Array("flac", ".ape", ".wav", ".dts", ".mp3", ".wma")
testProfix = False
For Each pfix In prefix
If LCase(Right(str1, 4)) = pfix Then
testProfix = True
Exit For
End If
Next
End Function
Function getFileName(ByVal file)
getFileName = Left(file, Len(file) - InStr(StrReverse(file), "."))
End Function
Function createItem(ByVal folder,ByVal file, ByVal PERFORMER, ByVal i)
createItem = "FILE """ & file & """ WAVE" & vbCrLf
createItem = createItem & "TRACK " & i & " AUDIO" & vbCrLf
createItem = createItem & " TITLE """ & getFileName(file) & """" & vbCrLf
Set oShell = CreateObject("Shell.Application")
Set oDir = oShell.NameSpace(folder+"\")
Set oFile = oDir.ParseName(file)
PERFORMER2 =oDir.GetDetailsOf(oFile,13)
If PERFORMER2 <> "" then
createItem =createItem & " PERFORMER """ & PERFORMER2 & """" & vbCrLf
End if
Set oFile = Nothing
Set oDir = Nothing
Set oShell = Nothing
'createItem = createItem & " PERFORMER """ & PERFORMER & """" & vbCrLf
createItem = createItem & " INDEX 01 00:00:00"
End Function
'--------------------------
Set fs = CreateObject("scripting.filesystemobject")
Dim PERFORMER, cueFile, Response
cueFile = "\CDImage.cue"
folder = InputBox("请输入目录,默认为当前目录", "输入目录")
If folder = "" Then
systemfolder = fs.GetFolder(CreateObject("wscript.shell").currentdirectory)
folder =systemfolder
arrFolderPath = Split(systemfolder, "\")
TITLEandPERFORMER = arrFolderPath(UBound(arrFolderPath))
Else
arrFolderPath = Split(folder, "\")
TITLEandPERFORMER = arrFolderPath(UBound(arrFolderPath))
End If
If fs.FileExists(folder & cueFile) Then
Response = MsgBox("文件" & folder & cueFile & "已经存在,按确定后退出!", vbOKOnly + vbExclamation, "错误")
Wscript.Quit
End If
Set tf = fs.opentextfile(folder & cueFile, 8, True)
strInput = TITLEandPERFORMER '去掉此句时,下面两句要启用
'strInput = InputBox("请输入艺术家,默认为文件夹名", "输入艺术家")
'If strInput = "" Then strInput = TITLEandPERFORMER
PERFORMER = strInput
tf.Writeline "PERFORMER """ & strInput & """"
strInput = TITLEandPERFORMER'去掉此句时,下面两句要启用
'strInput = InputBox("请输入专辑名称,默认为文件夹名", "输入专辑名称")
'If strInput = "" Then strInput = TITLEandPERFORMER
tf.Writeline "TITLE """ & strInput & """"
Set fd = fs.GetFolder(folder)
Set fc = fd.Files
Dim position
position = 1
For Each f1 In fc
If testProfix(f1.Name) Then
tf.Writeline createItem(folder,f1.Name, PERFORMER, position)
position = position + 1
End If
Next
'Response = MsgBox("完成生成索引文件", vbOKOnly, "完成")
程序在此: 在哪里?看不见难道在浮云里? 不错,已试用了:victory: 下载一个试用,先谢谢楼主~! 下载一个,谢了 我之前本想对没有CUE文件的专辑一个一个用FOOBAR2000的cuesheet_creator.dll来生成CUE文件,结果发现得花费十多分钟,而一想到我有九十多个专辑,要22个小时,我差点晕倒。后来改了这个程序,总共才花了一个多小时就搞定了那九十多个专辑,不过我为这个程序加上一个读取艺术家的功能,却花了我三个小时,那天搞定这个程序,都凌晨五点了:( 楼主积了德了!!!以前都是靠手动生成和修改,用了这个真方便,愿好人一生平安!!! 下来试试,谢谢楼主! 有用,谢谢楼主分享! 该软件对于一张专辑每首音乐分成一个文件的很是有用。但是对于一张专辑只是一个APE文件的,生成的CUE文件也只是一首曲子,和播放该ape文件的效果一致。用文本打开CUE文件内容如下:
PERFORMER "感受穿越时空Cabeiri - Inner Thoughts 2011"
TITLE "感受穿越时空Cabeiri - Inner Thoughts 2011"
FILE "Cabeiri - Inner Thoughts.flac" WAVE
TRACK 1 AUDIO
TITLE "Cabeiri - Inner Thoughts"
INDEX 01 00:00:00
能够正常使用的CUE文件的内容如下:
REM GENRE Ambient
REM DATE 2011
REM DISCID 7910A708
REM COMMENT "ExactAudioCopy v0.99pb5"
PERFORMER "Cabeiri"
TITLE "Inner Thoughts"
FILE "Cabeiri - Inner Thoughts.flac" WAVE
TRACK 01 AUDIO
TITLE "Rise Up"
PERFORMER "Cabeiri"
INDEX 01 00:00:00
TRACK 02 AUDIO
TITLE "Hot Liquid"
PERFORMER "Cabeiri"
INDEX 01 07:38:51
TRACK 03 AUDIO
TITLE "Adorable View"
PERFORMER "Cabeiri"
INDEX 01 16:45:27
TRACK 04 AUDIO
TITLE "Innermost Call"
PERFORMER "Cabeiri"
INDEX 01 27:14:52
TRACK 05 AUDIO
TITLE "Voices"
PERFORMER "Cabeiri"
INDEX 01 36:04:53
TRACK 06 AUDIO
TITLE "New Land"
PERFORMER "Cabeiri"
INDEX 00 44:54:67
INDEX 01 44:56:67
TRACK 07 AUDIO
TITLE "Hidden Secrets"
PERFORMER "Cabeiri"
INDEX 01 53:14:27
TRACK 08 AUDIO
TITLE "Voyager"
PERFORMER "Cabeiri"
INDEX 01 63:15:24
忘楼主改进。 回复 11# hjs
该软件对于一张专辑每首音乐分成一个文件的很是有用。但是对于一张专辑只是一个APE文件的,生成的CUE文件也只是一首曲子,和播放该ape文件的效果一致。
你的这个要求,得靠手动。就算是EAC分析出来的CUE,也是得手动不断修改的。 本帖最后由 scstar 于 2011-5-22 10:34 编辑
确实灰常好用哈,CUE代入了曲目信息,自动保存在专辑夹子里。。谢谢! 确实灰常好用哈,CUE代入了曲目信息,自动保存在专辑夹子里。。谢谢!
scstar 发表于 2011-5-22 10:31 http://bbs.hifidiy.net/images/common/back.gif
老兄总结了两个优点,说得好 :victory: 下来试试,谢谢楼主! 这个程序可不是一般的好,简直棒极了!
整轨转分轨的cue能弄一个吗? 回复 17# yzb55
要对整轨的做一个CUE?这个得靠自己找曲目了。
如果已经有分轨,但没有曲目,而且分轨名称是简单的序列号,也只能自己一个一个改了。 绝了!我佩服!真是太棒了! 这个很实用,谢过楼主~~
页:
[1]
2