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
7.7
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:
find unsynchronized lyrics (later will be implemented by the screenlet itself)
drag&drop text or file with lyrics to screenlet
during playing song, use Space key to insert time info
save or upload lyrics before screenlet switch to another song :)

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

switzak

11 years ago

Awesome screenlet!

I have an aesthetic suggestion. It would be great if after showing the "no lyrics found" message and closing the music player, the text would disappear after a few sec. This would make it possible to have the screenlet totally invisible when it isn't serving it's purpose.

Keep up the good work!

Report

legion1978

11 years ago

Excellent!! i dunno what u did to the lyrics search but now it gets a lot more of my "obscure" music taste hehehe

uuhh if i could only reduce the lyrics output to a single line, so it woould be on top of window title only... :D

thanx --this thingy is great

Report

legion1978

11 years ago

nevermind.. i found the window resize icon :D
dark theme + 3 am = not so good for the eyesight :P

Report

C

dencer

11 years ago

Better searching is also thanks to you, for lrcshow script project link, which was very inspiratory :D

Second way to make one-line showing is setting font color of normal text to invisible. My first version (private, never released) was showing only one line, I didn't like it much :P

Report

Scnd101

11 years ago

You think it would be possible to add supprt for MPD-based players, like sonata?

Report

C

dencer

11 years ago

finally I make mpd working on my machine and it look promising with adding support. Only it will take some time, cause now I haven't much of free time.

Report

naaamo2004

11 years ago

yeah thats a great screenlet :)
but my favorite player is not included...quodlibet... :(
i tryed to include it, but i gave up, cause im too bad in python ;)
i would be happy if there will be released a version which includes quodlibet too :D

Report

C

dencer

11 years ago

sooo quodlibet...
there is a one problem, I can't get filename of playing song throught dbus. And there are possible solutions:
1. nicely ask developers to change it
2. make plugin to give screenlet what it want
3. let it be and reduce functions with quodlibet player
4. combination 1. and 2.
5. ?? I don't know what, but something may exist

I today played with plugin alternative and it's allmost done. I can do this, but then I need a little pause of this project and do on school project, so other requirements and bugs must wait :)

Report

naaamo2004

11 years ago

i have a player.py -plugin for quodlibet in nowplaying screenlet. as far as i can see it works with dbus, but how i said, my python knowledge is very limited.
but it gets artist, song, album to show in nowplaying.
i´ve tried to implement it in your great screenlet, but i´m not good enough :(
i don´t know, where i got this player-plugin, but i can send you the quodlibet.py if you want

Report

C

dencer

11 years ago

I finished support for Quodlibet player with plugin, try download it from http://lyrics-screenlet.googlecode.com/files/Lyrics_with_quodlibet_plugin.tar.gz

If this version will worked for you and I make more changes to current version, then I upload it here.

Report

naaamo2004

11 years ago

hmmm i´m sad, but it doesn´t work :(
in terminal, it says:
self.closeb = self.gtk_icon_theme.load_icon ("gtk-close", 16, 0)
Traceback (most recent call last):
File "/home/narf/.screenlets/Lyrics/LyricsScreenlet.py", line 290, in check_players
print player.getCurrentFile()
File "/home/narf/.screenlets/Lyrics/QuodlibetPlayer.py", line 56, in getCurrentFile
uri = self.pluginAPI.currentSong()
File "/var/lib/python-support/python2.6/dbus/proxies.py", line 68, in __call__
return self._proxy_method(*args, **keywords)
File "/var/lib/python-support/python2.6/dbus/proxies.py", line 140, in __call__
**keywords)
File "/var/lib/python-support/python2.6/dbus/connection.py", line 622, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "currentSong" with signature "" on interface "org.LyricsScreenlet" doesn't exist

Report

C

dencer

11 years ago

Did you installed plugin as I wrote in README file, taht is to copy LyricsScreenletInformator.py to $HOME/.quodlibet/plugins/events/ ? I get such Exception only when plugin isn't installed. Also you must first enable plugin in Quodlibet plugins settings. Thats what I forgot to write :P

Report

naaamo2004

11 years ago

uh i forgot a "s" in folders name...now it works fine...great work :D
R.E.S.P.E.C.T. ;)

Report

PhobosK

11 years ago

Version 0.21 is not working on Ubuntu Intrepid (it is not shown at all on the desktop).
Here is the console output:

python LyricsScreenlet.py
CachingBackend: Loading instances from cache
CachingBackend: Loading <Lyrics1>
Creating new entry for LyricsScreenlet in /tmp/screenlets/screenlets.user.running
Loading instances in: /home/user/.config/Screenlets/Lyrics/default/
File: Lyrics1.ini
/home/user/.config/Screenlets//default/Lyrics1
LOAD NEW THEME: default
FOUND: /home/user/.screenlets/Lyrics/themes/default
theme.conf found! Loading option-overrides.
theme.conf loaded:
Name: dark
Author: Marcel Dancak
Version: 0.1
Info: Dark theme
Override: font
Override: text_scale
Override: color_normal
Override: color_highlight
Set options in Lyric
LOAD NEW THEME: default
FOUND: /home/user/.screenlets/Lyrics/themes/default
theme.conf found! Loading option-overrides.
theme.conf loaded:
Name: dark
Author: Marcel Dancak
Version: 0.1
Info: Dark theme
Override: font
Override: text_scale
Override: color_normal
Override: color_highlight
Screenlet has been initialized.
Restored instances from session 'default' ...
Find active player: Exaile API
OK
25.97
25.97

etc... No output at all when Exaile is playing.
Screenlets: version 0.1.2
Exaile: version 0.2.14
Lyrics1.ini:

text_scale=1.5
theme_name=default
is_sticky=True
keep_below=False
is_widget=False
y=24
keep_above=True
lock_position=False
color_normal=1.0,1.0,1.0,0.5
color_highlight=1.0,1.0,1.0,1.0
draw_buttons=True
x=0
skip_taskbar=True
font=comic sans MS 9
is_dragged=False

Another problem is that when trying to install it, the screenlets core says that the screenlet packer was not used for packing and asks to continue or to abort....

Report

C

dencer

11 years ago

Ohh what a black day :D

Your output from terminal look good, versions of programs too. Installation throught Screenlet Manager I try for the first time just after your comment, and it go as you write, but it install successful and it worked for me.

Have you problem only with 0.21 version, or it's the first you try ?
Has there anybody better experience on Ubuntu ? Please, no one ?

If it don't show even background and other screenlets work without problem, I have no idea cause it not use any speci library. But I try to find where's the problem

Report

PhobosK

11 years ago

Ok I found the problem.
It is in compiz/composite.
I do not use it, so the widget is not shown :(
When I turn compiz on it all works as charm....
But I have some problems with compiz and my ATI card, so i cannot use it on a regular bases... so i will not be able to use this very handy screenlet.
Maybe it is good to have a version independent on transperency and other stuff that needs composite?

Report

C

dencer

11 years ago

Today i try some window managers and under metacity it was working only with a little problem with hiding control buttons. You could try it.

If I will have some time I can do such version without transparency. Thanks for detection this problem.

Report

PhobosK

11 years ago

0.21 is the first version i try.
All other screenlets i have work with no problem.
I will try to debug it when i have time... I just reported it so you know...

Report

epsyl

11 years ago

i always say that "minilyrics" was THE program that I miss on my linux (ubuntu).

this screenlet is a great idea ! and let me thank you for all the job you did :D !

even if i don't know yet how to make it work ! i triyed with rithmbox - banshee .. and then drag/drop the mp3 into Lyrics ! Could you please help me with that ?

I am also wondering if it would be possible to use .lrc files that minilyrics downloaded.

thanx in advance. ^^

Report

C

dencer

11 years ago

I updated to 0.21 version, so try it now. There was a bug and it didn't have to work by some conditions, as Mauricio wrote at the comment before.
To .lrc support, the screenlet actualy search for .lrc file with the same name as mp3 in it's directory. Thanks to piratis.
To drag&drop function, this is now more for testing, cause I think it's better to have possibility to easy make lyrics then waiting, when somebody else make them and upload on some server. Now it very simple and you can only save lyrics for you, but want add upload ability. So you must find such unsynchronized lyrics on web and drag text to screenlet.
Let me know if this helps :D

Report

epsyl

11 years ago

waw thanx for the fast response !
and it works ! it's really amazing. Does it read the lrc in the metatags ? because i was saving lrc in metatags with minilyrics and now the lyrics screenlet find every lrc in my library !


you would probably add -in the next version- a "go down" "go up" buttons when the lrc are not well synchronized.

thanx again for the update :D

Report

C

dencer

11 years ago

Can you send me on my e-mail: dancakm@gmail.com some mp3 with such lyrics in metatags ? I didn't find any.

Report

epsyl

11 years ago

sorry for the lateness...

i'm having problems with my dual boot with vista. i'll send you some mp3 when I fix them ... :/

Report

CLEARview

11 years ago

It does not work for me in openSUSE 11.1 using Exaile, i have no idea about why. It just does not show me anything.

Report

C

dencer

11 years ago

Start it from terminal (python LyricsScreenlet.py from installation directory) and send me result. Also you can attach info about versions of Exaile and Screenlet core package, or any new facts. It may be too long, so you can send it to my e-mail: dancakm@gmail.com

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
Be the first to comment
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 7