You are not logged in.

#1 2010-06-08 21:11:47

evilgnome
Member
Registered: 2009-02-20
Posts: 62

Chipmunk: A GTK+ Last.fm Client

sample_playback.png    sample_playback_expanded.png

Hi all. I've been working on this for a bit, and while there's plenty to complain about, I predict someone else out there will find it useful. It's basically a Shell.FM controller, with some added functionality from pyLast. It's written in Python and uses Glade. The interface is inspired by Vagalume, but more awesome.

Source: http://bitbucket.org/EvilGnome/chipmunk … o-current/
PKGBUILD: http://aur.archlinux.org/packages.php?ID=38305

EDIT: None of these "things you should know" apply anymore!

Things you should know before trying this:
- DO NOT have menus open when a song is changing (http://bitbucket.org/EvilGnome/chipmunk … en-on-song)
- It WILL CLOBBER your Shell.FM config if you have one. Sorry.
- After much more testing, bug-fixing and general improvement, it will hopefully reach a stable 0.1 -- at which point I will see about adding it to the AUR. But it's definitely not there yet.

If you do try it, I'd be very interested to hear how it goes. Feedback and code contributions are very welcome.

Last edited by evilgnome (2010-07-19 18:23:52)

Offline

#2 2010-06-09 06:10:18

Square
Member
Registered: 2008-06-11
Posts: 435

Re: Chipmunk: A GTK+ Last.fm Client

Why not make an AUR account and upload your PKGBUILD there?

http://aur.archlinux.org


 

Offline

#3 2010-06-09 06:31:56

evilgnome
Member
Registered: 2009-02-20
Posts: 62

Re: Chipmunk: A GTK+ Last.fm Client

Square wrote:

Why not make an AUR account and upload your PKGBUILD there?

While I have an AUR account, I believe putting Chipmunk in the AUR is premature at this point. It has been through basically no testing by users other than myself, and there is at least one critical bug (linked in the first post). I think it could be considered irresponsible to push forward right away.

I also like to think that even AUR packages have been reviewed to some degree.

I hope this thread will draw some attention to the project and help me address the most pressing issues so that it can be added sometime soon.

Offline

#4 2010-06-16 16:05:35

Berticus
Member
Registered: 2008-06-11
Posts: 731

Re: Chipmunk: A GTK+ Last.fm Client

So, like I said, I'd try it out and post here about results.

Some of the icons seem to be missing, such as genre/station, Library, and Neighbor. I don't know if I'm just missing icons, or if you provide them on your own. It seems certain tags don't show up too.

On a failed login, you should let the user know that it didn't work. I've got multiple passwords, and I wasn't sure if it was just taking a long time or if I put the wrong password in or what. It's just a convenience to have.

I'm not sure how hard this would be, but having the ability to adjust volume would be great too.

I like the lyrics look-up feature. I would've implemented it differently though. Instead of opening in a new tab of browser, I would've had it open in a pane and use lyrics from sing365 or somewhere. Somehow parse it so it only shows the lyrics.

I think notifications of song change should be optional, and thus an optional dependency.

If I have any other thoughts, I'll let you know.

Offline

#5 2010-06-16 19:05:26

evilgnome
Member
Registered: 2009-02-20
Posts: 62

Re: Chipmunk: A GTK+ Last.fm Client

Thanks for trying it out!

Berticus wrote:

Some of the icons seem to be missing, such as genre/station, Library, and Neighbor. It seems certain tags don't show up too.

I'd like to just use icons from the user's theme, but I don't know which ones I can depend on people having. I made guesses based on my current icon theme (buuf). Here are the ones I use - if anyone has replacement suggestions I'll gladly switch them:

appointment-missed - Cancel the Queued Task
appointment-new - Add a Queued Task
audio-input-microphone - Artist Station
audio-volume-high
audio-volume-low
audio-volume-medium
audio-volume-muted
bookmark-new - Bookmark this Station
bottom - Hide Menubar
chipmunk-radio - Main App (should be provided if not present in theme)
contact-new - Befriend User (currently unused)
dialog-password - Login Stuff
document-save - Save this Track to Disk (currently unused)
edit-find - Discovery Mode
emblem-favorite - Love this Track
emblem-shared - Share this Track
emblem-sound - Library/Personal Station
emblem-unreadable - Ban this Track
emblem-web - Launch Generic Website (currently unused)
face-plain - Mini Mode
face-wink - Recommendations Station
gnome-mime-text-x-python - Launch Chipmunk Development Website
go-next - Indicates the Next (Queued) Task
list-add - New Station
list-remove - Remove this Station from Bookmarks
media-optical - Blank Album Cover
media-playback-pause - Pause
media-playback-start - Play
media-playback-stop - Stop After this Track
media-record - Turn Scrobbling on/off
media-skip-forward - Skip this Track
stock_insert-note - Tag this Track (currently unused)
system-users - Group Station, Neighborhood Station
tomboy - Tag Station
user-available - User
view-refresh - Keep Window Shrunk
view-restore - Shrink Window
window-close - Cancel New Station (on toolbar)
Berticus wrote:

On a failed login, you should let the user know that it didn't work.

Yes, I should. I'd like to. I don't know how. I hope to have the login feedback improved eventually, but I'm considering it a low priority for now since it only happens once. If anyone wants to look at this in chipmunk-radio.py, find "def login" - there are a few.

Berticus wrote:

I'm not sure how hard this would be, but having the ability to adjust volume would be great too.

I don't like it when media players have their own volume controls. If I want per-application control, I can use a centralized and consistent method. Currently I use gnome-media-pulse for that purpose, and I'm hoping for docky integration with pulse audio in the future. gnome-volume-control -p "applications" will open directly to the application tab for those interested.

Berticus wrote:

I like the lyrics look-up feature. I would've implemented it differently though. Instead of opening in a new tab of browser, I would've had it open in a pane and use lyrics from sing365 or somewhere.

Yes, this is a quick and easy method for right now, but I plan to fully integrate the lyrics in future versions. I think I'll add an expander between the track info and the playback controls, and probably a set of tabs within that expander to show various parsed info. But that's for after a stable 0.1. If anyone knows of a decent lyrics parsing library already out there, please post here and I'll get on it a little sooner.

Berticus wrote:

I think notifications of song change should be optional, and thus an optional dependency.

That seems reasonable. The only thing that makes me hesitate to do that is that the notifications are also used to clarify some functions, like Stop After Track, Switch After Track, and give some (poor) login feedback. Let me know if you still think it should be optional, and I'll change it.

Thanks again for the feedback, and I hope you enjoy Chipmunk!

Last edited by evilgnome (2010-10-20 23:42:15)

Offline

#6 2010-06-17 00:30:02

evilgnome
Member
Registered: 2009-02-20
Posts: 62

Re: Chipmunk: A GTK+ Last.fm Client

Lyrics integration turned out to be pretty easy, with the help of http://lyricsplugin.com/ and Ryuujin's example here: http://bbs.archlinux.org/viewtopic.php?id=92796

I'm keeping the pkgbuild and Chipmunk versions at 0.0.9 until I have something AUR-worthy, so just get the pkgbuild the same way as described in the first post, reinstall, and enjoy integrated lyrics!

Offline

#7 2010-06-18 21:31:28

Berticus
Member
Registered: 2008-06-11
Posts: 731

Re: Chipmunk: A GTK+ Last.fm Client

I'll check out the source code sometime later.

The lyrics looks much better, but the amount of real estate it gets is pretty small.

Oh, I didn't know about the stop after track and switch after track features. Has this already been implemented? How do I activate it? Or is it a work in progress?

One big thing I noticed is it wasn't notifying my last.fm account of the songs I had listened to. I'm not sure if that was intentional, but I assume you'd want to update your last.fm account of the songs you just listened too. So I would urge you to at least make it an option.

Offline

#8 2010-06-18 22:44:22

evilgnome
Member
Registered: 2009-02-20
Posts: 62

Re: Chipmunk: A GTK+ Last.fm Client

I just added some more integration, but I'm not updating the package with this functionality until I can background the fetching processes -- I'll figure that out soon.

The stop after track and switch after track are already there, and were a major motivation for starting this project in the first place. There is no plain "Stop" button. If you hit the button with the Stop icon while a song is playing, it will queue the action "Stop." If you choose a station while a song is playing, a dialog will ask if you want to wait until the current track finishes before switching.

Berticus wrote:

One big thing I noticed is it wasn't notifying my last.fm account of the songs I had listened to.

Oh no! You're right! This was working before, but now it's not. The scrobbling should be done by shell-fm. I'm installing shell-fm-git now to see if that fixes it...
yes. relief.

OK so I recommend installing shell-fm-git, I guess I'll change the dependency in the pkgbuild next time I repackage (when I background processes correctly). Sorry about the oversight.

Offline

#9 2010-06-19 07:08:07

dcc24
Member
Registered: 2009-10-31
Posts: 732

Re: Chipmunk: A GTK+ Last.fm Client

I think you shouldn't rely on system-wide per-application volume management. Currently, it is provided only by PulseAudio and most people either use ALSA or hate PulseAudio with a passion. Having volume management inside the app satisfies both users smile


It is better to keep your mouth shut and be thought a fool than to open it and remove all doubt. (Mark Twain)

My AUR packages

Offline

#10 2010-06-22 00:31:47

evilgnome
Member
Registered: 2009-02-20
Posts: 62

Re: Chipmunk: A GTK+ Last.fm Client

dcc24 wrote:

I think you shouldn't rely on system-wide per-application volume management. Currently, it is provided only by PulseAudio and most people either use ALSA or hate PulseAudio with a passion.

OSS also provides per-application volume control. I really don't think it should be there, but I'll consider adding it if chipmunk ever has a substantial user base, and the majority of users want it.

I just pushed a very large update. Unfortunately the critical bug remains and I have no idea how to fix it. On the upside, you can now smoothly access lyrics, artist info, track info (if there), and artists' events. The events is a bit slow, and doesn't give the venue name, but that will change. Either I'll figure that out with pylast (which only seems to provide event IDs currently) or I'll replace pylast in this instance with some good old fashioned xml parsing.

Please go ahead and update if you're interested in the project.

Enjoy.

EDIT: Screenshot Gallery: http://picasaweb.google.com/lh/photo/dK … directlink

Last edited by evilgnome (2010-06-22 01:09:36)

Offline

#11 2010-06-22 02:57:16

Berticus
Member
Registered: 2008-06-11
Posts: 731

Re: Chipmunk: A GTK+ Last.fm Client

register your application with last.fm and use its API instead of just providing a sort of front-end to shell-fm. That's the direction I would go in, and it would reduce dependencies. This would also prevent you from clobbering the user's ~/.shell-fm/shell-fm.rc

scrobbling is really just using a url, at least that's how it's done wtih a bash script I found.

Offline

#12 2010-06-22 22:47:39

evilgnome
Member
Registered: 2009-02-20
Posts: 62

Re: Chipmunk: A GTK+ Last.fm Client

On dropping shell-fm,
Chipmunk is registered with last.fm, and uses its own api key for all the pylast calls. Using shell-fm greatly simplifies this project, and I'd rather take advantage of open source code than recreate it. It also makes it easy to configure chipmunk to control playback on an arbitrary server in the future, if that's something people would like. About reducing dependencies, shell-fm takes up 84K on my system, which I think is quite modest considering all the functionality it provides. About clobbering the config -- yeah, I really don't like that. I'm gonna request that shell-fm allow specifying a custom config path at runtime so I can keep a separate copy for chipmunk.

On current status,
I've solved the critical problem mentioned in the first post in my local code. If I can quit clobbering the shell-fm config and get the venues' names it might be ready for the AUR.

I decided that I'll add volume control if I can do it without adding clutter to the interface. Is there a keybinding people would like to use for this? '-' and '='? If so, should a notification be triggered to show the volume change?

Offline

#13 2010-06-23 02:46:54

Berticus
Member
Registered: 2008-06-11
Posts: 731

Re: Chipmunk: A GTK+ Last.fm Client

0 and 9 works for me tongue

Really, just choose keys you like, and people will adapt. Or, you can always allow people to specify their own keybindings in a config if you ever have your own config file.

What notification are you thinking of? Because I thought a simple slider would be great.

Offline

#14 2010-06-23 18:19:32

evilgnome
Member
Registered: 2009-02-20
Posts: 62

Re: Chipmunk: A GTK+ Last.fm Client

Huzzah! http://aur.archlinux.org/packages.php?ID=38305

No volume control yet. I ran into a shell-fm bug, and the keybindings done so far are global, I don't know how to do local ones.

Offline

#15 2010-08-13 09:06:03

arutha1979
Member
Registered: 2010-08-13
Posts: 1

Re: Chipmunk: A GTK+ Last.fm Client

Amazing alternative client. I like it that it also shows lyrics!

But I do miss some functionality. The original last.fm client allows tagging of currently playing songs. And it makes it easy. It shows your own tags and the most popular tags by the last.fm community. Tagging is as easy as clicking the tags you want to give the song or typing a new one if a certain tag does not exist. Could you add this functionality?

Another tag-related feature I really like in the original client is playing personal tag radio. More precisely, only play the songs you yourself tagged, for example, as rock. Is it possible to add such radio? (I don't know whether you have to be a subscriber to listen to personal tag radio)

Finally, a minor GUI related question. Maybe it would be good if the inotify bubble could also show the image of the currently playing song (album cover for example?).

P.S. I don't mind the lack of volume control. I set the volume via a global shortcut in the ubuntu keyboard shortcuts. I almost never touch application volume controls.

Offline

#16 2010-08-13 09:43:32

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: Chipmunk: A GTK+ Last.fm Client

Moved to Community Contributions: now it is official and in AUR...


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#17 2010-08-29 21:55:12

evilgnome
Member
Registered: 2009-02-20
Posts: 62

Re: Chipmunk: A GTK+ Last.fm Client

Hello again!

arutha1979: I'd like to add more tag-related functions. I haven't yet figured out the best way to do so while keeping the interface simple -- I don't tag tracks or use playlists myself, so it's harder for me to determine the best way to deal with those things. I'll take a look at the official client, since you said it was easy there.

In other news, the latest version has volume control! It's just a slider, and it's currently inaccurate due to a bug in shell-fm-git, but it does allow you to lower the volume.

There's also a new minimal view mode. It basically only shows the playback control buttons, as the title and artist are already displayed in the window titlebar.

EDIT: Volume control is fixed now, it WAS NOT shell-fm's fault, it was MY FAULT. Sorry.

Last edited by evilgnome (2010-08-30 09:18:13)

Offline

#18 2010-08-29 22:50:35

evilgnome
Member
Registered: 2009-02-20
Posts: 62

Re: Chipmunk: A GTK+ Last.fm Client

arutha1979 wrote:

Maybe it would be good if the inotify bubble could also show the image of the currently playing song (album cover for example?).

Yeah, that would be nice. In keeping things simple, I don't get any info about upcoming songs, only the currently playing song. So the song starts, then I fetch the cover. If I use the cover image for libnotify, I'd have to delay the bubble till the cover is fetched, rather than display it as soon as possible. This is probably only 1-3 seconds, but the right decision isn't clear to me.

What do you guys think?

Also, in the mini mode, I don't know if I should include the toolbar or not. Please let me know what you think about that as well.

Offline

Board footer

Powered by FluxBB