关于lrcShow-X
下载、依赖、安装和运行
主要特性
工作流程
关于设置
关于歌词匹配
快速设置栏
提前和延迟lrc歌词
lrc歌词编辑器
关于显示模式
快捷键
关于编码
关于歌词策略
关于嵌入歌词
关于lrcShow-X
lrcShow-X是采用pyqt4编写、支持多播放器的动态歌词应用套件,主体程序包括三个部分:歌词显示、歌词编辑和简单的播放器回放控制。如果您在windows系统下使用过迷你歌词、千千静听的歌词秀以及乐辞等的话,那么会很快明白这个程序的用途。该项目是Amarok1时期的lrcShow-II脚本的延伸,目前,该程序能够支持Amarok2、Audacious、Qmmp、Quodlibet、exaile、vlc和rhythmbox等具备dbus接口的播放器(对mpd和xmms2的支持,请阅读addons/README获取详细信息)。lrcShow-X采用了qt4的诸多优秀特性,并且在歌词定位和滚动上使用了特殊的预处理方式,使得和其它类似软件相比,很好的解决了歌词匹配精确度和cpu使用量上的矛盾,给用户以全新的歌词欣赏体验。
lrcShow-X采用GPL-v2.0协议发布,欢迎修改、打包、重新发布等GPL协议下允许的行为。具体可参阅协议的具体细节内容。
下载、依赖、安装和运行
用户可以在kde-apps和launchpad的项目主页上获取最新稳定版本,也可以通过“svn co http://www.sanfanling.cn/svn/lrcShow-X/branches/2-series/lrcShow-X”获取最新的开发版本。
lrcShow-X的依赖关系为:>=python-2.4(目前不支持python3);>=Qt-4.5.0;pyqt4;dbus-python;pygobject。在运行该程序前,请一定保证lrcShow-X的依赖关系。
由于该软件采用了python语言编写,因此用户在使用前无需安装即可运行。用户可以将下载的压缩包解压,放置于任何拥有权限的目录下,在播放器正在运行的前提下在终端中执行“./lrcShow-X.py”即可。用户也可以通过参数指定lrcShow-X支持的播放器,如“./lrcShow-X.py --amarok”,如不指定,程序会自动检测当前正在运行的、并能够获得支持的播放器。
主要特性
1. 支持多本地目录搜索本地歌词,超过10个歌词搜索引擎——独创的多搜索引擎
2. 支持全屏、OSD、普通窗口、置顶等显示模式(qt>4.5.0支持背景透明显示模式)
3. 无本地歌词时,实现自动搜索网络,可选是否下载到本地,或“仅当前”——临时下载也是独创的
4. 支持5种内嵌歌词标签:lyrics3v2、lyrics3v1、id3v2-uslt、apetag、id3v2-sylt——此领域,windows下的同类软件亦无出其右
5. 支持自定义快捷键
6. 支持歌词offset实时微调功能
7. 内建帮助浏览器
8. 多语言支持 (简体中文、繁体中文、英语、意大利语、乌克兰语、俄罗斯语、马来西亚语、克罗地亚语、西班牙语)
9. 支持13种linux音频播放器
10. 自定义窗口行为
11. 网络代理支持
12. 支持横向或纵向显示——linux下第一款实现横向显示的歌词软件
13. 内建全功能lrc歌词编辑器
14. 支持系统托盘
15. 支持自定义字体和调色
16. 配置文件自动升级系统
17. 独创的自定义歌词策略系统——比windows下同类软件使用的“关联”要强大
18. 歌词编码自动探测功能——独创使用chardet实现歌词编码的自动探测
19. 弹出信息功能(需启用系统托盘)
20. 歌词过滤功能,支持正则表达式——仿“乐辞”同类功能
21. 媒体播放器回放控制
22. 低cpu使用率,高精确度(理论上达到0.001秒)
23. lrc歌词的超强纠错性
24. 支持多搜索引擎流水式搜索——独创
25. 支持歌词编辑器下载普通歌词用以创建lrc歌词——独创
26. 同时支持“artist - title.lrc”(实际上只需要lrc文件名中含歌手和歌名信息即可,比较宽松,能够显著提高匹配成功率)和“音频文件名.lrc”两种匹配规则
27. 可选下载lrc歌词文件的命名方式(即“artist - title.lrc”或“音频文件名.lrc”)
28. 支持本地lrc歌词文件或lrc文件网络链接的拖拽操作(svn198开始)
29. lrc歌词自动嵌入音频文件功能
30. 歌词编辑器直接支持编辑包括本地歌词、内嵌歌词和网络歌词
等
工作流程
当用户第一次运行该程序后,它会在~/.lrcShow-X目录下生成两个文件:lrcShow-X.conf和lrcShow-X.db。其中前者是程序的配置文件(用户不需要手动修改配置文件),后者是用于记录音频文件和歌词文件相互关联信息以及各种行为的数据库文件,需要注意的是,数据库文件采用用户的locale进行写入,因此当用户改变系统locale后,可能会无法使用。当lrcShow-X运行后,它会通过dbus通讯机制获得播放器当前播放音轨的歌手和歌名信息,并立刻在用户指定的本地目录中搜索(默认是~/.lrcShow-X/lrc),如果程序没有在本地搜索到相匹配的歌词文件,那么会通过用户指定的搜索引擎搜索网络(默认是ttplayer引擎,目前lrcShow-X支持多达9个不同的搜索引擎)。无论是本地还是网络的歌词,一旦被搜索到,那么用户就会在主窗口中看到歌词随音频的播放而滚动,否则,在主窗口中会有相关信息显示。
当然,这个工作流程也并不是绝对的,用户可以通过某些设置项或者策略功能来改变默认的工作流程。比如,当用户开启“优先使用内嵌歌词”后,lrcShow-X就会在搜索本地之前先查看当前的音频文件中是否有内嵌歌词;同样,当用户针对某音频文件设置了非默认的策略,那么固有的工作流程也会被打破。
关于设置
lrcShow-X拥有丰富的设置项和美妙的各种功能,绝对是一款值得把玩的歌词软件,其目的就是希望能够改善用户在Linux系统下音乐欣赏体验。
一般情况下,用户必须设置本地lrc歌词文件所在目录和网络歌词文件的本地存储目录(两者默认情况下都是~/.lrcShow-X/lrc)。其它设置项可以通过主程序窗口的“右键菜单-其它功能 - 参数设置”中找到,并作出相应的调整。
关于歌词匹配
从目前的状况来看,有两种比较普遍的歌词匹配模式,即“artist - title.lrc”或“音频文件名.lrc”。lrcShow-X同时支持这两种匹配模式,并在匹配到多个结果后通过对话框的形式让用户选择。用户也可以根据自己的习惯选择这两者之一作为歌词文件的命名方式。
快速设置栏
为了方便用户,lrcShow-X提供了和lrcShow-II同样设计的快速设置栏,用户可以通过双击主窗口显示/隐藏,它的默认快捷键是“I”。在快速设置栏中,为用户提供了歌词提前/滞后功能、保存offset功能、打开lrc编辑器功能以及播放器控制功能。当然这些都可以在主窗口的右键菜单中找到。
提前和延迟lrc歌词
使用过lrc歌词文件的朋友应该都会知道,lrc歌词文件的质量参差不齐,尤其是从网络上下载的,其主要问题往往并不是在文字内容上,而是与音频文件的同步上,因此,一款好的歌词秀软件必须要具备歌词的提前和滞后功能。在lrcShow-X中,用户可以通过快速设置栏或者右键菜单进行相关调整,并且支持将调整后的offset保存到本地文件中。而对于非本地歌词,用户可以进行提前/滞后的临时操作,但是不能保存至文件。
lrc歌词编辑器
lrcShow-X不仅仅是一款用于欣赏歌词的软件,同时也提供了强大的、全功能的lrc歌词编辑器。
该编辑器可以打开正在使用的本地歌词、网络歌词,甚至内嵌歌词,并支持修改、保存等操作;lrcShow-X歌词编辑器同时还提供了播放器控制功能,用于方便用户在编辑歌词中对播放器的简单控制;另外它还独创性的引入了“同步音轨模式”,当用户锁定该模式后,无论音轨是否切换,歌词编辑器都将保留开启时的歌词文件用于编辑,而取消锁定后,歌词编辑器中的内容将随音轨的切换而变化。
非常荣幸的是,著名的多媒体平台XBMC,在其WIKI介绍页中,就是采用了lrcShow-II的lrc编辑器作为linux下编辑、创建歌词的推荐工具,非常感谢。
关于显示模式
目前lrcShow-X支持以下六种不同的显示模式:
作为默认的第一种普通模式,lrcShow-X的主窗口和其它普通的对话框没有什么不同,提供了标题栏,用户可以通过拖拽标题栏移动窗口(当然,lrcShow-X本身支持拖拽窗口的任何一点进行移动),可以自由的改变窗口宽度(允许的范围内)。
第二种显示模式是全屏模式,应该说这是一种非常过瘾的显示方式。
第三种是OSD模式,该模式下,没有提供标题栏,用户仅能通过拖拽窗口内部来移动,并且不能自由的改变窗口宽度。
第四种显示模式是置顶模式。以上三种显示模式是互相独立的,而置顶模式可以和以上三种显示模式之一配合使用。
第五种显示模式是透明模式。该模同样独立于前三种显示模式。透明模式可以将歌词显示窗口的背景透明而文字不透明。该模式需要用户的qt库大于4.5.0版本,否则将被自动禁用。
第六种显示模式是单行横向模式。在2系列版本中,单行横向滚动从一种特殊的显示行数特例,彻底剥离为一种显示模式。
需要提醒用户的是,参数设置中提供了用于记住上次显示模式的功能,这样的话,下次启动lrcShow-X时,就会自动使用上次的显示模式,但如果上次用户是从全屏模式退出的话,则会以普通模式启动窗口。
快捷键
lrcShow-X提供了一些非常有用的快捷键,如“-”用于歌词的滞后,“+”用于歌词的提前,“I”可以显示/隐藏快速设置栏,“E”用户开启lrc歌词编辑器等等。用户可以在参数设置界面的快捷键页中找到所有的快捷键,并提供了修改、复位功能。有一点需要特别指出,目前所有的快捷键只接受单键,而类似“Ctrl+I”的组合键虽然没有彻底阻止,但实际上是不被支持的。lrcShow-X的退出也可以通过组合键Ctrl+Q实现。
关于编码
由于来自网络的歌词文件使用了不同的编码方式,以及用户本地locale的不同,原本编码是一个非常棘手的问题,在经历了多次更新后的lrcShow-II以及目前的lrcShow-X仅存在一个有实际意义的编码,那就是本地保存歌词文件时所采用的编码。在这里,默认采用了utf8编码,没有特殊需求的话,可以不需要变动。从目前情况看,多数来自网络的歌词文件可以顺利的用utf8和gb系列进行编码,使用其他的编码方式可能会出现问题,不建议使用。
可能用户会担心lrcShow-X是否能够识别采用不同编码方式编码的歌词文件,这里需要解释的是,本软件率先于linux下同类软件,使用了mozilla的“chardet”项目,从而最大限度的实现了自动探测编码的能力。lrcShow-X会忽略歌词文件中的encoding标签。
关于歌词策略
lrcShow-X独创性的引入了“歌词策略”功能,简单的说,类似的windows歌词软件往往提供了“关联”功能,而这个功能只能指定哪个音频文件使用哪个本地歌词文件,而策略功能除此之外,还可以关联一些相关的搜索行为。目前支持的策略有:“不是用策略”、“不搜索本地”、“不搜索网络”、“不搜索”和“记住歌词”。默认情况下,每个音频文件的策略都是“不是用策略”,用户可以通过右键菜单中的“音轨信息”菜单项下的“策略”标签进行策略设置和取消策略的功能。
所有的策略都会被记录到上面提到的~/.lrcShow-X/lrcShow-X.db数据库文件中去。该数据库记录的数据与本地locale相关。
关于嵌入歌词
lrcShow-X支持对多种格式的内嵌歌词的读取、写入、删除操作。目前已经能够比较出色的支持id3v2标签(包括id3v2-uslt和id3v2-sylt)、apetag标签、lyrics3v2标签和 lyrics3v1标签。当用户选择“优先使用内嵌歌词”后,lrcShow-X会自动从以上支持的标签中寻找lrc歌词,如果找到就会自动显示在主窗口中,期间搜索次序为apetag > id3v2-uslt > lyrics3v2 > lyrics3v1 > id3v2-sylt。由于支持多达5种内嵌歌词标签(又是一个无出其右的特色),所以需要用户选择一种标签最为默认的操作对象。
考虑到尽量简化而避免编码上的问题,所有的内嵌歌词在写操作上一律使用utf8编码,除了apetag(该规范限定了只能使用unicode),和id3v2-sylt(只有少数编码允许写到该标签中,因此这里统一使用utf16写入)。
通常来说,lyrics3v2、id3v2-uslt或者apetag,都可以和ttplayer或者foobar互相通用;迷你歌词特有的id3v2-sylt也没有问题。目前情况来说,还不能确定lyrics3v1这个标签是否有存在的必要,不过在记忆中,好像日韩所产的便携mp3播放器是采用使用lyrics3v1(也有可能是lyrics3v2)作为读取内嵌歌词的标签的。