Lyrics screenlet

Conky

Source (link to git-repo or to original if based on someone elses unmodified work): Add the source-code for this project on opencode.net

38
Score 77.1%
Description:

This screenlet downloads and display synchronized lyrics of music files playing in the audio player.

Version 0.7.0 allows to create and upload lyrics to the database (for some time it will be used for testing, but I'll try not to delete anything :P)
Steps to create synchronized lyrics:
[li]find unsynchronized lyrics (later will be implemented by the screenlet itself)[/li]
[li]drag&drop text or file with lyrics to screenlet[/li]
[li]during playing song, use Space key to insert time info[/li]
[li]save or upload lyrics before screenlet switch to another song :)[/li]

Requires:
python-numpy can be needed on Ubuntu and possibly some other distributions in the case of crashing when you move cursor over control buttons
python-chardet for better dealing with different lyrics encoding, but it's optional

Set lyrics offset:
by 0.1s: Shift+Up/Down key
by 0.5s: Up/Down key

Supported players:
Rhythmbox
Exaile
Banshee
Audacious
Amarok
Music Player Daemon based players
Quodlibet - need to install plugin in package
Listen 0.6 and higher
Gmusicbrowser
Xmms - need to install pyxmms
Any other that support MPRIS API (direct or with plugin) - vlc, Songbird ...

Supported lyrics sources: ALSong, minilyrics, lrcdb
Last changelog:

9 years ago

0.7.2
- fixed bug in saving/restoring cairo state in LyricsPanel visible on default theme
- searching lyrics on disk with ignoring case and accent and some bug fixes
- support of "offset" metadata in lyrics files
- added settings option - format of filename for saving/loading lyrics with automatic
conversion between them
- properties window works with newer screenlets package version

0.7.1
- fixed accessing of the song info metadata - doesn't crash on missing metadata
- works with a new gtk version (deprecation warning turned into TypeError)
- fixed bug in saving/restoring cairo context (in Widget and LyricsPanel classes)

0.7.0
- added possibility to upload lyrics to the database and using this database for searching
- reporting a missing lyrics to the database
- creating synchronized lyrics works again

0.6.9
-lyrics align settings: left, center, right
-lyrics translation on/off switch in menu
-update translation settings immediately
-safe minimizing (use when screenlet itself moves on desktop)
-works in gnome 2.30 (bug is in pycairo, not screenlet!)
0.6.8
- lyrics searching bug fix, now it should really works, I promise :D
0.6.7
- update of lyrics engine: ALSong now work again (it stopped to work at all after they changed ip address), minilyrics has better encoding handling
- theme update

older logs in changelog file

chriskin

10 years ago

where can i get the mpris plugin?

Report

C

dencer

10 years ago

Isn't it installed by default? I downloaded exaile from their web page (http://www.launchpad.net/exaile/0.3.0/0.3.0/+download/exaile-0.3.0.tar.gz) and MPRIS plugin was already included.
I am not sure, but without this plugin I probably can't add support, cause I don't know detect in 0.3 version if player is playing or paused.

Report

C

dencer

10 years ago

Ops, I was wrong. It is possible to add support to 0.3 version, now I found what I was looking for. But anyway, MPRIS is a good thing, adding support if player implement MPRIS API is easy now, and in later screenlet releases it probably will be automatic (now it need about 4 lines of code per player :D).

Report

chriskin

10 years ago

there is no mpris on mine, probably i did something wrong

anyway, since you said that you can fix it anyway, i will just wait :)

Report

C

dencer

10 years ago

Exaile started doing troubles on my GNOME system, so I tryed it on KDE and I cannot find MPRIS plugin (and any other) there, really nice. But I was able to finish support. With MPRIS it is a bit better cause Play/Pause are detected immediately, but what to do when plugins love hidding:)

Report

chriskin

10 years ago

it works :)
Thank you so much :)

damn, i was a day without the lyrics screenlet and i missed it :P

Report

chriskin

10 years ago

the 0.5.2 version just doesn't work for me,even though all other versions worked. i'm on ubuntu 9.04 64bit.

can you show me a link of the previous version please?

Report

chriskin

10 years ago

the problem changed after a restart

now it works, but only when there are lyrics to be shown. i get no "no lyrics found" message - i don't care though - the panel is a good idea by the way

Report

C

dencer

10 years ago

But sometimes it works :D

I noticed that when more lyrics are found, some of them haven't text, or it is not shown, maybe for unexpected encoding. If only such lyrics are found, you see nothing but screenlet doesn't think so.

I often rewriting something and not always everything what was working in older version, works in new, so thanks for reporting. For example, in 0.5.2 control panel looks better, but in some cases doesn't render properly, and in 0.4 it was good :(

But nobody comment color adaptation mode yet, did you try it?

Report

chriskin

10 years ago

it didn't work on my end but i haven't tried it too much

i asked for "inverted" and all i got was black like it was before :S

Report

Spox5

10 years ago

This screenlet is compatible with 0.3.0 Exaile? On Ubuntu 9.04 does not work: (

Report

C

dencer

10 years ago

I check it and it doesn't work now, developers made dramatic changes, unfortunately, most in renaming, not in quality :(
In the next screenlet version it can be supported

Report

chriskin

10 years ago

it would be really nice, i plan to move to exaile 3 as soon as the screenlet supports it :) (that being you - as it would be unfair to not give you credit for your work)

Report

iumbs

10 years ago

Awesome screenlet man! Works great!

Just one suggestion... It would be better if the screenlet became invisible when music isn't playing... Anyway I've created a desktop shortcut so I can launch it just when I need it ;)

Report

yehman

10 years ago

Awesome screenlet. Exactly what I was looking for!

I turned off the filter CJK option to view Chinese lyrics, which caused all sorts of conversion problems when downloading from MiniLyrics's server. I suspect it is caused by improperly (non-unicode) encoded lyrics uploaded by users. However, I was able to sidestep it by downloading the .lrc files separately. It's not a full solution, but it's easier than messing with the non-standard compliant encoding nightmare of traditional/simplified Chinese.

The other thing I noticed, which should be an easier fix, is that the screenlet is not able to interpret repeated lyrics with timing on the same line, e.g:

[02:11.49][04:20.35]Blah blah blah

It would be nice to be able to read those formats, so I don't have to hand edit each file. :)

Report

C

dencer

10 years ago

0) thanx

1) it is long time what I let chinese language unfilered, minilirics support wasn't even implemented then. But I know that from their database can come really anything (unsynch lyrics, other lyrics or in different file formats as you wrote).
I can look at this again and maybe some minilyrics filtering will be added.

2) do not edit it manually :D, rather I change lyrics processing, but now I don't know what is (or if there is) exact lrc format.

just don't know when :(

Report

yehman

10 years ago

Ya, I don't think there is a standard format, so it'll be tough to filter all the user uploaded lyrics. For example, I've seen some .lrc files with these fields:

[ti:Title]
[ar:Artist]
[al:Album]
[offset:500]

These are safely ignored by your screenlet, so they are not a problem. However, the multiple timing per line thing does throw it off.

Also, another thing I noticed was that empty lines that are very close in time with lyrics will make the lyrics scroll up too much. For example,

[00:02.00]Lyrics here
[00:02.50]
[00:02.90]Lyrics here will be skipped
[00:03.90]Lyrics here

will cause the timing be off and you can visibly see it skip a few lines.

Report

C

dencer

10 years ago

is it better in new version?

Report

yehman

10 years ago

Ah thanks, it works better now! The skipping problem has been fixed. However, now it no longer displays the blank lines in the lyrics, was this intended behavior?

Also, I noticed that now it removes the timing number from the multiple columns correctly. However, there are two bugs associated with this.

1) It doesn't display the lyrics of the second time, it just removes the numbers from the display.

2) It only removes up to two levels of repeated lyrics. There are some lyrics with more repeats, and they still show up funny.

Finally, when I use the save lyrics button, it will write to file the new timing without the repeats, so I lose the timing on those parts permanently.


Forgive me for posting a long post, but here's what would happen if I use a lyric like this:

[0:00.00]9.雙截棍
[0:05]作詞:方文山 作曲:周杰倫 編曲:鍾興民
[00:27]
[00:29.85]岩燒店煙味彌漫 隔壁是國術館
[00:32.40]店里的媽媽桑 柔道有三段
[00:34.55]教拳腳武術的老板 練鐵砂掌 耍楊家槍
[00:37.09]硬底子功夫最擅長 還會金鐘罩鐵布衫
[00:39.27][01:36.00][02:14.34]他們兒子我習慣 從小就耳濡目染
[00:41.58][01:38.37][02:16.60]什麼刀槍棍棒 我都耍的有模有樣
[00:44.05][01:40.45][02:18.87]什麼兵器最喜歡 雙截棍柔中帶鋼
[00:46.80][01:42.99][02:21.25]想要去河南嵩山 學少林跟武當
[00:49.13][00:51.18][00:53.47][01:07.29][01:10.44][01:12.86]幹什麼 幹什麼
[00:50.16]呼吸吐納心自在
[00:52.44]氣沉丹田手心開
[00:54.66]日行千里系沙袋
[00:56.02]飛檐走壁莫奇怪 去去就來
[00:57.92]一個 馬步向前 一記左鉤拳 右鉤拳
[01:01.22]一句惹毛我的人有危險
[01:03.28]一再重演 一根我不抽的煙
[01:05.36]一放好多年 它一直在身邊
[01:09.63]我打開任督二脈
[01:11.61]東亞病夫的招牌
[01:14.04]已被我一腳踢開
[01:15.52] [01:18.63][01:25.70][01:28.04][01:54.42][01:56.47][02:03.53][02:05.88] [02:41.82][02:44.48][02:32.53][02:34.63]快使用雙截棍 哼哼哈嘿
[01:20.96][01:58.90][02:37.13]習武之人切記 仁者無敵
[01:23.33][02:01.15][02:39.23]是誰在練太極 風生水起
[01:30.41][02:08.20][02:46.15]如果我有輕功 飛檐走壁
[01:32.77][02:10.58][02:49.23]為人耿直不屈 一身正氣
[02:53.89]快使用雙截棍 哼
[02:56.23]我用手刀防禦 哼
[02:58.02]漂亮的回旋踢


after I save it, it now becomes:


[0:0.00]9.雙截棍
[0:5.00]作詞:方文山 作曲:周杰倫 編曲:鍾興民
[0:29.85]岩燒店煙味彌漫 隔壁是國術館
[0:32.40]店里的媽媽桑 柔道有三段
[0:34.55]教拳腳武術的老板 練鐵砂掌 耍楊家槍
[0:37.09]硬底子功夫最擅長 還會金鐘罩鐵布衫
[0:39.27][02:14.34]他們兒子我習慣 從小就耳濡目染
[0:41.58][02:16.60]什麼刀槍棍棒 我都耍的有模有樣
[0:44.05][02:18.87]什麼兵器最喜歡 雙截棍柔中帶鋼
[0:46.80][02:21.25]想要去河南嵩山 學少林跟武當
[0:49.13][00:53.47][01:07.29][01:10.44][01:12.86]幹什麼 幹什麼
[0:50.16]呼吸吐納心自在
[0:52.44]氣沉丹田手心開
[0:54.66]日行千里系沙袋
[0:56.02]飛檐走壁莫奇怪 去去就來
[0:57.92]一個 馬步向前 一記左鉤拳 右鉤拳
[1:1.22]一句惹毛我的人有危險
[1:3.28]一再重演 一根我不抽的煙
[1:5.36]一放好多年 它一直在身邊
[1:9.63]我打開任督二脈
[1:11.61]東亞病夫的招牌
[1:14.04]已被我一腳踢開
[1:15.52] [01:18.63][01:25.70][01:28.04][01:54.42][01:56.47][02:03.53][02:05.88] [02:41.82][02:44.48][02:32.53][02:34.63]快使用雙截棍 哼哼哈嘿
[1:20.96][02:37.13]習武之人切記 仁者無敵
[1:23.33][02:39.23]是誰在練太極 風生水起
[1:30.41][02:46.15]如果我有輕功 飛檐走壁
[1:32.77][02:49.23]為人耿直不屈 一身正氣
[2:53.89]快使用雙截棍 哼
[2:56.23]我用手刀防禦 哼
[2:58.02]漂亮的回旋踢

Report

C

dencer

10 years ago

So this is purpose of multiple timings tags :), I thought that there can be two tags and that they mean "from-to", so I now it only remove "to" tag. Whole lyrics helped me understand what's going on.

Report

yehman

10 years ago

Awesome update! The parser is working perfectly. Now I don't have to edit all these files!

Report

lordmartires

10 years ago

The screenlet doesn't work .... I don't know what happens ... but when I Install it an I check the start/stop box . it runs but doesn't work when I move cursor into it , it disappears ....
sorry for my troublesome English

Report

C

dencer

10 years ago

I think answer is just above your comment. In past there was more reports of this problem and installing of python-numpy solved this. I thinked I removed this dependecy in new 0.5 version, but now it seems that not successfully :(

Report

victorlisboa

10 years ago

Fantastic! Awesome widget! THANK YOU.

For the jaunty users: install python-numpy first.

Report

Naf71

10 years ago

NowPlaying Screenlet doesn/t work in Jaunty and to overcome this problem, I had to remove /usr/lib/python2.6 dist-packages/screenlets/plugins/mpdclient2.py and. Pyc files ... From that moment, the lyrics has stopped working.

Report

9 years ago

0.7.2
- fixed bug in saving/restoring cairo state in LyricsPanel visible on default theme
- searching lyrics on disk with ignoring case and accent and some bug fixes
- support of "offset" metadata in lyrics files
- added settings option - format of filename for saving/loading lyrics with automatic
conversion between them
- properties window works with newer screenlets package version

0.7.1
- fixed accessing of the song info metadata - doesn't crash on missing metadata
- works with a new gtk version (deprecation warning turned into TypeError)
- fixed bug in saving/restoring cairo context (in Widget and LyricsPanel classes)

0.7.0
- added possibility to upload lyrics to the database and using this database for searching
- reporting a missing lyrics to the database
- creating synchronized lyrics works again

0.6.9
-lyrics align settings: left, center, right
-lyrics translation on/off switch in menu
-update translation settings immediately
-safe minimizing (use when screenlet itself moves on desktop)
-works in gnome 2.30 (bug is in pycairo, not screenlet!)
0.6.8
- lyrics searching bug fix, now it should really works, I promise :D
0.6.7
- update of lyrics engine: ALSong now work again (it stopped to work at all after they changed ip address), minilyrics has better encoding handling
- theme update

older logs in changelog file

12345678910
112
product-maker mruchunglv Oct 07 2016 3 bad
product-maker KrakenHimoto Jul 28 2012 9 excellent
product-maker MadeInKobaia Jul 09 2012 9 excellent
product-maker scsimodo Dec 29 2011 9 excellent
product-maker torturedutopian Sep 02 2011 9 excellent
product-maker stratok Jun 19 2011 9 excellent
product-maker dodjob Apr 25 2011 9 excellent
product-maker Ubuntumutu Dec 22 2010 9 excellent
product-maker mystica Nov 30 2010 9 excellent
product-maker olegue Nov 27 2010 9 excellent
product-maker erar123 Nov 20 2010 9 excellent
product-maker aledb Nov 12 2010 9 excellent
product-maker balakrishnan Sep 25 2010 9 excellent
product-maker Base: 4 x 5.0 Ratings
MojoMan
Feb 12 2016
Hellow
Mar 04 2015
atenrok
Dec 05 2012
MadeInKobaia
Jul 09 2012
dodjob
Apr 25 2011
boamaod
Apr 07 2011
y3m3th
Mar 19 2011
marcocolombini
Jan 28 2011
mystica
Nov 30 2010
olegue
Nov 27 2010
milanacow
Oct 20 2010
oemhack
Jun 26 2010
peacewithall
May 29 2010
play3man
May 25 2010
AstroLinux
May 19 2010
sgl
Apr 23 2010
Milena
Apr 12 2010
simunic
Mar 02 2010
erar123
Feb 26 2010
Kreisverkehr
Feb 10 2010
microscopuce
Jan 30 2010
lianimator
Jan 22 2010
Naf71
Jan 22 2010
firecad2006
Jan 21 2010
balakrishnan
Dec 02 2009
Potet
Oct 21 2009
LaGaDesk
Sep 13 2009
chriskin
Sep 12 2009
CLEARview
Sep 11 2009
kaeltas
Sep 04 2009
unformatted
Aug 18 2009
victorlisboa
Aug 04 2009
switzak
Mar 09 2009
naaamo2004
Mar 08 2009
epsyl
Mar 08 2009
PhobosK
Mar 07 2009
4tis
Mar 05 2009
Scnd101
Feb 09 2009
File (click to download) Version Description Downloads Date Filesize DL OCS-Install MD5SUM
*Needs pling-store or ocs-url to install things
Pling
0 Affiliates
Details
license
version
0.7.2
updated Mar 30 2011
added Feb 03 2009
downloads 24h
0
mediaviews 24h 0
pageviews 24h 1