About lrcShow-X
Downlad, dependency, install and run
Features
Working flow
About Setting
Match lrc files
Fast setting bar
Adjust offset
Lrc editor
About display mode
Shortcuts
About encodings
About strategy
About embedded lrc
About lrcShow-X
lrcShow-X is a dynamic lyrics application, which is written by pyqt4, supporting many media players with dbus interface under GNU/Linux environment. It includes three main parts: display dynamic lyrics in window; lrc editor and media player playback control. If you have the experience of TTPlayer, Minilyrics in windows, you could know what lrcShow-X is, just working under GNU/Linux enviroment. This project is developed from Amarok1 script - lrcShow-II. Currently, it could support Amarok2, Audacious, Qmmp, Quodlibet, exaile, vlc and rhythmbox, etc (for mpd and xmms2 support, please read addons/README for more details). lrcShow-X has a special method of locate current line of lyrics, so that it could performance with low cpu usage and high accuracy.
lrcShow-X is published under GPL-v2.0 license
Download, dependency, install and run
Users could download public stable version of lrcShow-X in the homepage of kde-apps or launchpad. Also, users could get the developing version from SVN (svn co http://www.sanfanling.cn/svn/lrcShow-X/branches/2-series/lrcShow-X)
The dependency of lrcShow-X is: >=python-2.4 (not support python3 so far); >=Qt-4.5.0; pyqt4; dbus-python; pygobject. Please ensure your desktop has all of the dependency, so that lrcShow-X could run perfectly.
Since lrcShow-X is written by pyqt4, users do not need install the application. Please uncompress the tar.bz2 package and place the "lrcShow-X" directory in every path which you have writing permission. While the supported player is running, users could run the lrcShow-X application by "./lrcShow-X.py" in console. Also users could specify a parameter as the player that lrcShow-X would work with, just like "./lrcShow-X.py --qmmp", otherwise, lrcShow-X would search all running and supporting players with a fixed order.
Features
1. Supporting more than one local paths as .lrc file search path, and more than 10 internet search engines
2. Supporting normal displayer mode, OSD display mode, full screen display mode, stay on top display mode and transparency display mode (Qt > 4.5.0).
3. Auto search internet search engine(s) when no local lrc file; Supporting auto download or "just this"
4. Supporting lyrics3v2, lyrics3v1, id3v2-uslt, apetag, id3v2-sylt embedded lyrics tag
5. Supporting custom shortcuts
6. Supporting offset
7. Build-in help documents
8. Supporting multi-language
9. Supporting more than 10 players under GNU/Lnux
10. Supporting custom window behavior
11. Supporting proxy
12. Supporting horizontal display
13. build-in full functions lrc editor
14. Supporting system tray icon
15. Supporting custom font and colors
16. Supporting config file upgrading system
17. Supporting strategy system
18. Supporting auto-detect encoding of .lrc file
19. Supporting system tray message
20. Supporting filter function
21. Supporting media player blayback control
22. Low cpu usage and high accuracy (0.001 second)
23. Compatibility of lrc file
24. Supporting multi-search mode
25. Supporting downloading plain lyrics file in lrc editor
26. Supporting "artist - title.lrc" (actually, just the "artist" and "title" information in the lrc file's name) and "media file name.lrc" as the rule of matching lrc file
27. Supporting "artist - title.lrc" or "media file name.lrc" as the method of naming lrc file from internet
28. Supporting drog-in operation (local lrc file or lrc file link)
29. Supporing auto embed lrc into media file
30. Supporing edit lrc file from local, internet and even embedded in media file directly
etc
Working flow
When users run the application the first time, lrcShow-X would create two files (lrcShow-X.conf and lrcShow-X.db) under ~/.lrcShow-X, the .conf file records all configrations and .db file records relationship of strategy. Please notice that the .db file is depend on locale of system. After lrcShow-X launched, application would get the information from dbus interface of player, and search strategy and local .lrc file in specified paths, if search, application would parser the .lrc file and show it in window, otherwise, it would search internet (a specified search engine(s)).
Of course this working flow is not fixed, users could adjust some settings or setting certain track's strategy to change. For example, users set "do not search at all" as current track's strategy, application would do nothing; if users set "Prioritize the lrc in media file", lrcShow-X would try to search the lrc in the media file at the beginnig of searching.
About Setting
lrcShow-X has many and amazing settings, all of them could help users to better the experience of listening music and viewing dynamic lyrics.
Normally, users should set the local search paths and save path at the first time lrcShow-X launched, all of them are set "~/.lrcShow-X/lrc" as default. Users could find other settings in"right click menu - other function - configration"
Match lrc files
So far, there are two method of matching lrc file as normally used: "artist - title.lrc" and "media file's name.lrc". lrcShow-X supports both of them at one time. If there are more than one results, all of the results would be displayed in a dialog as candidates. Users also could choose one of the format as naming the lrc file from internet.
Fast setting bar
For convenience, lrcShow-X provide a fast setting bar in main window for users, just like lrcShow-II. Users could double click the main window interface to show/hide the fast setting bar. The default shortcut is "I". It provides offset adjusting, playback control and lrc editor functions.
Adjust offset
Not all of the lrc files performance well, since the time tag do not match the current line of lyrics. The simpliest way to do is adjust the offset. lrcShow-X provide such function as well. With local lrc file, application also could save the offset into local file, but can not save with the lrc from internet. This function could be found in right click menu or fast setting bar.
Lrc editor
lrcShow-X is not only a application for viewing dynamic lyrics, but also a lrc file editor. lrcShow-X provide a powerful and full functions lrc editor.
This lrc file editor could open the lrc file from local, internet and even in media file's embedded lyrics tag for editing and saving operations. For convenience, lrc editor provide playback control function. "Sync mode" is a special feature of lrc editor, when users lock this option, the lrc content in lrc editor would be changed even the track is changed, otherwise, the lrc editor would auto load current track's lrc.
About display mode
There are six different display mode in lrcShow-X:
The first one is normal display mode, it is default display mode. Under this mode, the window looks like a normal window, with a title bar and could be adjust width freely.
The second one is OSD display mode, under this mode, the window do not have title bar, users have to move the window by draging the interface of window, and the window can not be adjust the width.
The third one is full screen mode. This is a exciting display mode for users, since it shows lyrics in a full screen window.
The fourth one is stay on top display mode. Users only could choose one display mode mentioned above at one time, the stay on top is independent from those.
The fifth one is transparency display mode, it also independent from the first three display mode. Under this mode, the background of the window is transparent, but the text is not. If the version of Qt lower than 4.5.0, this display mode would be auto disabled.
The sixth one is horizontal display mode. From the latest 2 series, single line with horizontal displaying is no longer a special case from "show-line", but a display mode.
Please notice that, lrcShow-X provide a way to launch the application with the display mode as last time, but when the display mode just is full screen, lrcShow-X would run as normal display mode.
Shortcuts
lrcShow-X provide some useful shorcuts, such as "-" (offset: delay), "+" (offset: advanced), "I" (show/hide fast setting bar), "O" (OSD display mode), etc. Users could set them in setting interface, but only single key would be accepted. "Ctrl+Q" also could quit lrcShow-X just as other applications.
About encodings
Since there is no easy way to determine which encoding is used for a certain lrc file, it is a big problem for lrcShow-X team, but now, it would not be, because mozilla has a very usefull project called "chardet". We use "chardet" python module to auto detect the encoding of lrc file. And this is why lrcShow-X ignore the "encoding" tag in lrc file, it's useless for us, and even would confuse application.
There is a only one encoding should be take care, it is the encoding for saving lrc. The default is "UTF-8", normally, users does not need to change this, otherwise, it may cause encode error when application try to write data to local.
About strategy
Strategy is a special relationship system for track and search behaviors. All of the lyrics application under window also provide such one, but it only could record certain track uses certain lrc file, Strategy system also could do this, even could define the search method for certain track. Every track uses "No strategy" as default, and there are four others strategies to choose: "Do not search local", "Do not search web", "Do not search at all". With this system, users could define the rule of searching. For example, there is one lrc file could be searched, but it is not correct, users could define "Do not search local" or "Do not search at all" to skip is. Users could define and cancel the strategy freely from right click menu - track info - strategy.
All of the strategies would be record into ~/.lrcShow-X/lrcShow-X.db. This database file is dependent system locale. If the locale is changed, some non-English users (like CJK users) should know this.
About embedded lrc
lrcShow-X supports five different embedded lyrics tags: apetag, id3v2-uslt, lyrics3v2, lyrics3v1, id3v2-sylt. As I know, there is no lyrics application even under windows, could support five tags, it's unique! When users enable "Prioritize the lrc in media file", application would search lyrics from embedded tag of current track, with a fixed sequence (apetag > id3v2-uslt > lyrics3v2 > lyrics3v1 > id3v2-sylt), if searched, the lyrics would shown in window, otherwise searching local. Since application supports five different tag, users should define one tag as default operating tag. Users could insert lyrics into media, delete embedded lyrics and load lyrics in media file freely by right click menu.
Here, we use "UTF-8 as the encoding to write into media file in almost case, except apetag (unicode) and id3v2-sylt (UTF-16)