maemo.org - Talk

maemo.org - Talk (https://talk.maemo.org/index.php)
-   Development (https://talk.maemo.org/forumdisplay.php?f=13)
-   -   footify alpha, a Spotify client based on despotify (https://talk.maemo.org/showthread.php?t=52917)

Joorin 2010-06-12 15:34

Re: footify alpha, a Spotify client based on despotify
 
Version 0.0.8-1 has been uploaded to the repository and the Garage page.

New functionality:
+ Album search for the currently playing song.
+ Artist search for the currently playing song. This search is limited to 200 songs.

Changes:
* Compiled for speed.

To think about:
Sometimes the artist search crashes. I have no idea what causes this. As far as I know, this might very well be the result of some albums not having tracks connected to them or something similar to this. I'm investigating this.

To not clutter the UI more than needed, the new search buttons are located in the application menu. Keep in mind that getting all the albums for a productive artist will take time on a slow connection.

Play around with this and give feedback on how it works and how it's designed. As have been suggested, being able to start a new search directly from a search result might be interesting but I'm not sure it would be easy to implement in a clean way, UI wise.

EDIT:
I just noticed that I forgot to bump the version number in the binary. This new version will, falsely, identify itself as 0.0.7-2. I will not make a new release to fix this.

mornage 2010-06-12 21:12

Re: footify alpha, a Spotify client based on despotify
 
First impressions of the new version are good. I can now search for an artist and listen to an album which is quite often how I use spotify.

As for doing this after searching, prehaps a long press could be impimented? I.e, search for an artist, find a song on the album you want to listen to and long press to get an menu to either choose search album or artist?

Joorin 2010-06-12 21:25

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by mornage (Post 712488)
First impressions of the new version are good. I can now search for an artist and listen to an album which is quite often how I use spotify.

The typical use case for me is to do a search and start from the top. Searching for an album is most stable at the moment.

If you search for an artist, all tracks are concatenated into one long playlist. This makes the most sense to me and lets me listen to a whole lot of songs without having to search again or interact with the client.

Quote:

As for doing this after searching, prehaps a long press could be impimented? I.e, search for an artist, find a song on the album you want to listen to and long press to get an menu to either choose search album or artist?
I'm thinking about discriminating by looking at which column has been picked when double tapping on a row. Double tap on artist name and an artist search is done. Double tap on the album name and an album search is done.

The biggest problem with this approach is screen estate. Sometimes very little of the album name is displayed and if I compress the columns any more, it might look odd. That and not having users getting very confused by doing a search when they wanted to listen to a song...

Long press and a pop up menu makes the most sense. I'll look into that.

mornage 2010-06-12 21:40

Re: footify alpha, a Spotify client based on despotify
 
Quote:

If you search for an artist, all tracks are concatenated into one long playlist. This makes the most sense to me and lets me listen to a whole lot of songs without having to search again or interact with the client.
Only problem with that approach is that I quite often end up with the same song several times in the list. such as when an artsist has a couple of live albums, a best of or two and songs on a soudtrack.

Quote:

I'm thinking about discriminating by looking at which column has been picked when double tapping on a row. Double tap on artist name and an artist search is done. Double tap on the album name and an album search is done.

The biggest problem with this approach is screen estate. Sometimes very little of the album name is displayed and if I compress the columns any more, it might look odd. That and not having users getting very confused by doing a search when they wanted to listen to a song...
That would work for me, and would make it more like the way spotify works. I think you wouldn't really need to adjust the columns either as there tends to be enough of the album name to realise which album it is. The biggest problem would be for new users wanting to listen to a song and ending up searching the artist.

Quote:

Long press and a pop up menu makes the most sense. I'll look into that.
Another idea - a sort function that could be implemted into the application menu. That way after you search you could organse by artist or album then start you playback from the desired point? Of course, knowing nothing about coding I have no idea how easy anything is to implement so I'll leave it to you work out the best way. :D

Joorin 2010-06-13 14:51

Re: footify alpha, a Spotify client based on despotify
 
Version 0.0.8-2 has been uploaded to the repository and the Garage page. Regard this as a bug hunt release to make album and artist search work properly.

Changes:
* A pop up menu has been added when tapping and holding on a search result row. The menu offers searching for album or artist for the currently selected row.
* The search buttons in the app menu now behaves differently if they are clicked while in the search view or not. When in the search view, search is done based on the currently selected row. When not in the search view they behave as before.

To think about:
The client has now gotten another layer of complexity since the search result view is used for more things. This in turn requires more internal states to behave in good ways offering more ways to fsck things up when they don't.

I've noticed that it's not too hard to make the client crash by doing a few different searches in a row and I'm assuming this is on account of me having added more ways to update the search view.

If you want to help with testing and debugging, please take care to note the order of things you do when making the client crash.

The pop up menu opens up in a bad place, being covered by my finger if I'm using my right hand, but works as intended when using the stylus. This is the reason I made the buttons in the application menu act like they do now. This makes finger navigation much friendlier.

Joorin 2010-06-13 16:21

Re: footify alpha, a Spotify client based on despotify
 
One bug found and fixed:
Do ordinary search.
Search for an album or artist in that search result.
Do another ordinary search.

=> Crash!

This fix will be included in next release.

EDIT:
Another, related, bug found and fixed:
Do album search.
Do another album search.

=> Crash!

Same for artist search.

EDIT 2:
There seems to be a bug in despotify that gets triggered by:
Do an album search.
Do another album search (which, as a side effect, deallocates the last album search result).
Do an artist search.

=> Crash!

I'm guessing the search results are interdependant in some way. I'll have a look in the despotify code.

Joorin 2010-06-13 16:30

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by mornage (Post 712534)
...

Another idea - a sort function that could be implemted into the application menu. That way after you search you could organse by artist or album then start you playback from the desired point? Of course, knowing nothing about coding I have no idea how easy anything is to implement so I'll leave it to you work out the best way. :D

Sorting in this context is especially tricky. First level of tricky is how it's handled in GTK+-2.0 with GtkTreeViews. Second level of tricky is to build a new playlist after sorting is done.

Assuming the sorting has been done, rebuilding the playlist would entitle iterating through all entries in the list and concatenating as we go (which, now that I think about it) wouldn't be that hard.

I'll look into some kind of sorting for search results and playlists as soon as album and artist search feels a bit more stable.

Dave999 2010-06-13 17:34

Re: footify alpha, a Spotify client based on despotify
 
Hey, great work joorin. Howerver. I have a problem. I can only use footify if I start it from terminal. Otherwise footify crach when I start my first track. Strange

Joorin 2010-06-13 18:01

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by Dave999 (Post 713418)
Hey, great work joorin. Howerver. I have a problem. I can only use footify if I start it from terminal. Otherwise footify crach when I start my first track. Strange

That is indeed strange. How many times have you tried?

And have you updated to the latest version?

Dave999 2010-06-13 18:03

Re: footify alpha, a Spotify client based on despotify
 
yes, uninstalled and installed again. 10-15 times

Joorin 2010-06-13 18:24

Re: footify alpha, a Spotify client based on despotify
 
Version 0.0.8-3 has been uploaded to the repository and the Garage page. This is a bugfix release to take care of some of the bugs that have been found.

Fixes:
Clearing of variables after deallocation.
Thread issue when starting the first song from search or playlist. This might solve some problems with slow connections and long timeouts.

Dave999 2010-06-13 18:47

Re: footify alpha, a Spotify client based on despotify
 
Much faster now :) and no crash anymore :)
Thx

Joorin 2010-06-13 18:52

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by Dave999 (Post 713486)
Much faster now :) and no crash anymore :)
Thx

Great!

The thread issue was introduced when I did the work to separate starting of new songs and reading of music data. Without this separation, it was real easy to make the client crash but I also introduced this problem with a long timeout when starting the first song.

Bleh, fix one bug only to introduce another. :)

wcborstel 2010-06-14 18:12

Re: footify alpha, a Spotify client based on despotify
 
Hi Joorin, first of all many thanks for making this! Unfortunately I find it to be in an unusuable state. No matter what I do I get a segmentation fault. I can start the client and I can get a key authentication failure but doing anything else than that (even pressing the play button or searching while not logged in) results in an instant segmentation fault. Also a successful login will cause a segmentation fault for me. I have installed the latest version from the extras-devel and I don't have libdespotify or any other spotify client installed. Any idea or anything else I can help with? Would love to get it up and running!

Also I have PTR 1.2 if that's of any help.

Joorin 2010-06-14 18:32

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by wcborstel (Post 714847)
Hi Joorin, first of all many thanks for making this! Unfortunately I find it to be in an unusuable state. No matter what I do I get a segmentation fault.

That sounds really bad!

Quote:

I can start the client and I can get a key authentication failure
If you get a key authentication error, you're not using the right libdespotify.

How did you install footify? Using the application manager or a .deb file? How do you start it?

Quote:

but doing anything else than that (even pressing the play button or searching while not logged in) results in an instant segmentation fault.
Trying to search or play while not logged in might result in anything. These buttons will, in some future UI clean-up version, be inactivated until you are logged in.

Quote:

Also a successful login will cause a segmentation fault for me. I have installed the latest version from the extras-devel and I don't have libdespotify or any other spotify client installed. Any idea or anything else I can help with? Would love to get it up and running!

Also I have PTR 1.2 if that's of any help.
Getting a successful login shouldn't be possible if you get key authentication error. This suggests that you start the application in some special way.

As far as I know, footify should work on both PR1.1.1 and PR1.2 but since I haven't upgraded yet, this is just me guessing since no-one with PR1.2 has reported any specific error that might suggest that it shouldn't work.

Could you please supply the output of the following, using the XTerminal:
Code:

ldd /home/opt/footify/usr/bin/footify

wcborstel 2010-06-14 18:44

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by Joorin (Post 714885)
That sounds really bad!


If you get a key authentication error, you're not using the right libdespotify.

Ah sorry, I should have been more clear. I am getting those errors when deliberately entering incorrect information. I am getting a segmention fault as soon as I enter my own account's credentials.

Quote:

How did you install footify? Using the application manager or a .deb file? How do you start it?
From the app manager. Or more specifically with ap-get install footify, but that does the same thing anyway.

Quote:

Getting a successful login shouldn't be possible if you get key authentication error. This suggests that you start the application in some special way.
All I do as a normal user is type in "footify" from the xterm.

Quote:

Could you please supply the output of the following, using the XTerminal:
Code:

ldd /home/opt/footify/usr/bin/footify


This results in the following:
Code:

        libc.so.6 => /lib/libc.so.6 (0x4002e000)
        libhildon-1.so.0 => /usr/lib/libhildon-1.so.0 (0x40153000)
        libdespotify.so.0 => not found
        libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x401c6000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x401d5000)
        libpulse-simple.so.0 => /usr/lib/libpulse-simple.so.0 (0x401ee000)
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x42050000)
        libgtk-x11-2.0.so.0 => /usr/lib/libgtk-x11-2.0.so.0 (0x401f8000)
        libgdk-x11-2.0.so.0 => /usr/lib/libgdk-x11-2.0.so.0 (0x40573000)
        libgdk_pixbuf-2.0.so.0 => /usr/lib/libgdk_pixbuf-2.0.so.0 (0x40601000)
        libgconf-2.so.4 => /usr/lib/libgconf-2.so.4 (0x40620000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x40644000)
        libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0x40664000)
        libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0x406a5000)
        libpulse.so.0 => /usr/lib/libpulse.so.0 (0x40781000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x407a9000)
        /lib/ld-linux.so.3 (0x40000000)
        libatk-1.0.so.0 => /usr/lib/libatk-1.0.so.0 (0x41f30000)
        libgio-2.0.so.0 => /usr/lib/libgio-2.0.so.0 (0x407bb000)
        libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0x40825000)
        libpangocairo-1.0.so.0 => /usr/lib/libpangocairo-1.0.so.0 (0x40853000)
        libcairo.so.2 => /usr/lib/libcairo.so.2 (0x40864000)
        libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0x408cd000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x41750000)
        libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0x417c8000)
        libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0x40914000)
        libdbus-glib-1.so.2 => /usr/lib/libdbus-glib-1.so.2 (0x4091f000)
        libdbus-1.so.3 => /usr/lib/libdbus-1.so.3 (0x40942000)
        libcanberra.so.0 => /usr/lib/libcanberra.so.0 (0x4097f000)
        libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x40995000)
        libogg.so.0 => /usr/lib/libogg.so.0 (0x409c5000)
        libpulsecommon-0.9.15.so => /usr/lib/libpulsecommon-0.9.15.so (0x409d1000)
        libgdbm.so.3 => /usr/lib/libgdbm.so.3 (0x42710000)
        librt.so.1 => /lib/librt.so.1 (0x40a01000)
        libdl.so.2 => /lib/libdl.so.2 (0x40a10000)
        libm.so.6 => /lib/libm.so.6 (0x40a1b000)
        libz.so.1 => /usr/lib/libz.so.1 (0x413d0000)
        libX11.so.6 => /usr/lib/libX11.so.6 (0x40a91000)
        libXtst.so.6 => /usr/lib/libXtst.so.6 (0x41ad8000)
        libXcomposite.so.1 => /usr/lib/libXcomposite.so.1 (0x41b90000)
        libXdamage.so.1 => /usr/lib/libXdamage.so.1 (0x41ba0000)
        libXfixes.so.3 => /usr/lib/libXfixes.so.3 (0x41ac8000)
        libXext.so.6 => /usr/lib/libXext.so.6 (0x41968000)
        libXrender.so.1 => /usr/lib/libXrender.so.1 (0x41988000)
        libXi.so.6 => /usr/lib/libXi.so.6 (0x41a10000)
        libXrandr.so.2 => /usr/lib/libXrandr.so.2 (0x41b78000)
        libXcursor.so.1 => /usr/lib/libXcursor.so.1 (0x41a98000)
        libpixman-1.so.0 => /usr/lib/libpixman-1.so.0 (0x40b82000)
        libpng12.so.0 => /usr/lib/libpng12.so.0 (0x41938000)
        libexpat.so.1 => /usr/lib/libexpat.so.1 (0x414b8000)
        libltdl.so.7 => /usr/lib/libltdl.so.7 (0x41f88000)
        libXau.so.6 => /usr/lib/libXau.so.6 (0x414e0000)
        libXdmcp.so.6 => /usr/lib/libXdmcp.so.6 (0x414f0000)

Seems that I'm missing libdespotify but I thought I didn't need it? Since you're compiling your code against a newer version of libdespotify?

florian 2010-06-14 18:48

Re: footify alpha, a Spotify client based on despotify
 
This might be a stupid question, but do you have Spotify Premium?

wcborstel 2010-06-14 18:55

Re: footify alpha, a Spotify client based on despotify
 
Yep I do have a Spotify Premium account :)

Joorin 2010-06-14 19:20

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by wcborstel (Post 714905)
Ah sorry, I should have been more clear. I am getting those errors when deliberately entering incorrect information. I am getting a segmention fault as soon as I enter my own account's credentials.

As far as I know, entering wrong username or password will result in an error message stating this and not something about key authentication.

Quote:

From the app manager. Or more specifically with ap-get install footify, but that does the same thing anyway.
The app manager removes the downloaded .deb package after installation which apt-get doesn't but apart from that they do the same thing, yes. Which version was installed?

Quote:

All I do as a normal user is type in "footify" from the xterm.
Ah, good, could you then please supply any output that is written to the terminal?

Quote:

This results in the following:
Code:

        libc.so.6 => /lib/libc.so.6 (0x4002e000)
        libhildon-1.so.0 => /usr/lib/libhildon-1.so.0 (0x40153000)
        libdespotify.so.0 => not found
        libvorbisfile.so.3 => /usr/lib/libvorbisfile.so.3 (0x401c6000)
...

Seems that I'm missing libdespotify but I thought I didn't need it? Since you're compiling your code against a newer version of libdespotify?
The libdespotify that is used is located in /home/opt/footify/usr/lib and is used via the LD_LIBRARY_PATH environment variable which is set in the /home/opt/footify/usr/bin/footify.sh script that should be the file that is linked to from /usr/bin/footify .

So, no need for you to install libdespotify.

wcborstel 2010-06-14 19:24

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by Joorin (Post 714965)
As far as I know, entering wrong username or password will result in an error message stating this and not something about key authentication.

I have double checked and it really says "key exchange failed". I am connected with wifi and have a working internet connection as well.


Quote:

The app manager removes the downloaded .deb package after installation which apt-get doesn't but apart from that they do the same thing, yes. Which version was installed?
0.0.8-3

Quote:

Ah, good, could you then please supply any output that is written to the terminal?
With normal attempting to login (and thus resulting in a segmentation fault):
Code:

footify-0.0.8-3
  init client, high_bitrate=0, use_cache=0
segmentation fault

Quote:

The libdespotify that is used is located in /home/opt/footify/usr/lib and is used via the LD_LIBRARY_PATH environment variable which is set in the /home/opt/footify/usr/bin/footify.sh script that should be the file that is linked to from /usr/bin/footify .

So, no need for you to install libdespotify.
Ah yes makes sense, thanks for that. Didn't know the LD_LIBRARY_PATH was used somewhere.

Joorin 2010-06-14 19:56

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by wcborstel (Post 714971)
I have double checked and it really says "key exchange failed". I am connected with wifi and have a working internet connection as well.

Just for completeness, could you perhaps supply that output too? I'm looking in the source code for libdespotify and I see no possibility for this error to appear with wrong username/password so now I'm getting really curious. I must have overlooked something.

Wild guesses: Do you have many playlists? Are you logged into Spotify from another client at the same time? Is your premium account very fresh?

I really can't think of any real source for your problem. The trace you supply suggests that it crashes somewhere after login but before populating the list of playlists so I'll look closely there and see if I can find something.

Suurorca 2010-06-14 20:03

Re: footify alpha, a Spotify client based on despotify
 
First of all, thanks for an excellent 'app'.

I would ask that you consider adding some features:

1) Status display:

I have a lot of large playlists, so logging in takes more than a minute, even on wifi. On 3G it takes usually 2-3 minutes, and some times it just seems to fail log in altogether, even if I wait longer. I suppose that's due to network latency. Some sort of status message à la "Connecting... network failure" or "Connecting... log in successful... updating playlists..." would be very nice. Also, similar messages while waiting for the next song to start to play would help. Right now, there's just no way to know if the application hanged up, or it's just taking time to buffer.

Edit: Enabling cache certainly eases the situation. Still seems to hang up occasionally if 3G reception is poor, though.

As a side note, I notice there was some talk about some songs just not starting to play. This seems to happen a lot with the official client also, so maybe it's not despotify's problem this time? :)

2) Configurable buffering:

I see that this has already been discussed a lot, but if you decide to implement an audio buffer, I'd like it to be adjustable. Say, "play only after entire song is buffered", or buffer n-percent before starting playback.

3) Menu shortcut to FM-transmitter:

I use this a lot while driving. FM-transmitter works perfectly, but at the moment I need to go via phone settings to enable it. Both the default media player and Mediabox have their own menu shortcuts, which is quite handy. Perhaps you could duplicate this?

All in all, I enjoy using footify a lot. Keep up the good work!

wcborstel 2010-06-14 20:06

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by Joorin (Post 715021)
Just for completeness, could you perhaps supply that output too? I'm looking in the source code for libdespotify and I see no possibility for this error to appear with wrong username/password so now I'm getting really curious. I must have overlooked something.

That's unfortunately the only thing I can find so far. Do you have any debug logging which I can enable to help you troubleshoot further?

Quote:

Wild guesses: Do you have many playlists? Are you logged into Spotify from another client at the same time? Is your premium account very fresh?
To come to your wild guesses: 1) I have 0 playlists. 2) I was but that makes no difference - still getting the same segmentation fault 3) Yes, I have activated it today. I can see in the normal spotify client that I have a premium account though

Quote:

I really can't think of any real source for your problem. The trace you supply suggests that it crashes somewhere after login but before populating the list of playlists so I'll look closely there and see if I can find something.
Maybe because I don't have any playlists it's crashing?

wcborstel 2010-06-14 20:08

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by wcborstel (Post 715046)
Maybe because I don't have any playlists it's crashing?

To quote myself: Yes, this is the bug. After adding a playlist I can successfully login and I can play a song from the playlist.

Joorin 2010-06-14 20:18

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by wcborstel (Post 715053)
To quote myself: Yes, this is the bug. After adding a playlist I can successfully login and I can play a song from the playlist.

Oh, I actually spent some time looking at exactly this part of the code and it looks as if it will handle this case. I will investigate further.

Thank you for the feedback and help with debugging! This kind of bug is typical of just testing the path through the code where things go as intended, as in "Who'd use the client without playlists? Pff, no-one! I'm sure it works...". :)

Joorin 2010-06-14 20:33

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by Suurorca (Post 715041)
First of all, thanks for an excellent 'app'.

I would ask that you consider adding some features:

1) Status display:

I have a lot of large playlists, so logging in takes more than a minute, even on wifi. On 3G it takes usually 2-3 minutes, and some times it just seems to fail log in altogether, even if I wait longer. I suppose that's due to network latency. Some sort of status message à la "Connecting... network failure" or "Connecting... log in successful... updating playlists..." would be very nice. Also, similar messages while waiting for the next song to start to play would help. Right now, there's just no way to know if the application hanged up, or it's just taking time to buffer.

Edit: Enabling cache certainly eases the situation. Still seems to hang up occasionally if 3G reception is poor, though.

There are two parts to this: how calls to libdespotify are done and cache handling.

As things are implemented now, calls to libdespotify are done using the same thread that updates the application UI, which is the GTK main thread. Typically, doing things that way is bad, since updates might be delayed if the call takes a while to finish.

To fix this, and I think I mentioned this a few posts back, I need to decouple the call to libdespotify from the GTK main thread and deliver the result in an asynchronous manner. This would increase the complexity of the application a bit so I'm putting this off until the "basic functionality" is stable. So, it's on my TODO list.

Until then, things might seem a bit opaque (not knowing what's going on) but I hope the benefits of getting things more stable first outweighs this.

Secondly, cache handling of playlists is done atomically. Meaning that as long as you don't change anything, in any playlist, the local copy can be used and then even very big playlists shouldn't take more than a couple of hundred milliseconds to load. But, if you change anything, libdespotify will re-download the whole thing.

Quote:

As a side note, I notice there was some talk about some songs just not starting to play. This seems to happen a lot with the official client also, so maybe it's not despotify's problem this time? :)
Yes, there are some confirmed bugs relating to the Spotify service when it comes to songs not starting. I hope it will be fixed by Spotify soon.

Quote:

2) Configurable buffering:

I see that this has already been discussed a lot, but if you decide to implement an audio buffer, I'd like it to be adjustable. Say, "play only after entire song is buffered", or buffer n-percent before starting playback.
Good suggestions. I'll keep this in mind.

Quote:

3) Menu shortcut to FM-transmitter:

I use this a lot while driving. FM-transmitter works perfectly, but at the moment I need to go via phone settings to enable it. Both the default media player and Mediabox have their own menu shortcuts, which is quite handy. Perhaps you could duplicate this?

All in all, I enjoy using footify a lot. Keep up the good work!
I'll look into this. I'm guessing the FM transmitter registers on the DBUS and can be started that way.

Thank you for the feedback and suggestions. I'm glad you like it.

Joorin 2010-06-15 06:23

Re: footify alpha, a Spotify client based on despotify
 
Version 0.0.8-4 has been uploaded to the repositories and the Garage page.

New functionality:
+ Album and artist search now also works for playlists.

Changes:
* Some refactoring of the code.

Please note:
The bug in libdespotify that makes the application crash when searching for an artist after having searched for an album is still not fixed.

wcborstel 2010-06-15 17:43

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by Joorin (Post 715069)
Thank you for the feedback and help with debugging! This kind of bug is typical of just testing the path through the code where things go as intended, as in "Who'd use the client without playlists? Pff, no-one! I'm sure it works...". :)

And thanks for your support! Glad to have it working now. And you know what they say ... assumption is the mother of all f*ckups ;)

Anyway, one other thing I did notice. The 3G network of a specific provider here in the Netherlands is rather poor. Often I find myself with an useless 3G connection. However it seems that footify doesn't always recover from a lack of internet connection when it's playing a song (specifically when the connection is not responding for over a minute or so). Also the entire interface is not responding as soon as the 3G connection drops (it only continues to respond when the connection is re-established). Maybe it's possible to make this non-blocking so footify is actually still usable? At least so you can still properly close the app without Maemo saying that footify is not responding asking for a forced shutdown.

Joorin 2010-06-15 21:19

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by wcborstel (Post 716396)
And thanks for your support! Glad to have it working now. And you know what they say ... assumption is the mother of all f*ckups ;)

Indeed. ;)

Quote:

Anyway, one other thing I did notice. The 3G network of a specific provider here in the Netherlands is rather poor. Often I find myself with an useless 3G connection. However it seems that footify doesn't always recover from a lack of internet connection when it's playing a song (specifically when the connection is not responding for over a minute or so). Also the entire interface is not responding as soon as the 3G connection drops (it only continues to respond when the connection is re-established). Maybe it's possible to make this non-blocking so footify is actually still usable? At least so you can still properly close the app without Maemo saying that footify is not responding asking for a forced shutdown.
This is very much connected to my previous post: there are calls done using the GUI thread, this is bad and might make things hang.

This will, hopefully, not happen when I've decoupled the GUI thread from calls to libdespotify.

So, known issue that's on my TODO list. And pretty close to the top.

wcborstel 2010-06-17 06:26

Re: footify alpha, a Spotify client based on despotify
 
Ah right, makes sense now. Thanks.

Just one more thing while I'n at it (may as well tell you everything eh?), when I have selected a playlist there is no (obvious) way to go back and select another playlist. maybe I have missed that button somewhere but I can't find any way to do that.

All in all I am really pleased with it so far, thanks very much for your hard work on it!

Joorin 2010-06-17 07:33

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by wcborstel (Post 718757)
Just one more thing while I'n at it (may as well tell you everything eh?), when I have selected a playlist there is no (obvious) way to go back and select another playlist. maybe I have missed that button somewhere but I can't find any way to do that.

Swipe across the screen from right to left (or left to right). Not obvious but it saves space on the screen to not have a button for it.

And it looks cool.

Quote:

All in all I am really pleased with it so far, thanks very much for your hard work on it!
I'm glad you like it. I'm having fun too so it's a win-win situation. :)

nastro 2010-06-18 19:55

Re: footify alpha, a Spotify client based on despotify
 
You seem to have really got something here, Joorin, and it's come on really quickly too.

Seeing your comments on 'screen estate' I had an idea for representing 'popularity' without using space: could you signify 'popularity' by the colour of the text (perhaps from a 'hot' red tone to a 'cold' blue)?

Having said that, the ability to sort by column makes spotify work so well - including sorting by popularity, (handy when you're checking out hitherto unknown artists) - so assuming you plan to add the column-sort functionality at some point, maybe my idea wouldn't work - but hey just thinking aloud.

Thanks again for a great piece of work

Joorin 2010-06-19 07:23

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by nastro (Post 720915)
You seem to have really got something here, Joorin, and it's come on really quickly too.

Seeing your comments on 'screen estate' I had an idea for representing 'popularity' without using space: could you signify 'popularity' by the colour of the text (perhaps from a 'hot' red tone to a 'cold' blue)?

That's not a bad suggestion but I think it might be a bit distracting. And especially if the list is not sorted by popularity.

Quote:

Having said that, the ability to sort by column makes spotify work so well - including sorting by popularity, (handy when you're checking out hitherto unknown artists) - so assuming you plan to add the column-sort functionality at some point, maybe my idea wouldn't work - but hey just thinking aloud.
After reading your suggestion, I started thinking about adding a sort option in the tap-and-hold popup menu. The only problem with that is that I'm not sure if you can find out which column was picked. I'll look into that.

Double tapping on a row, as you do to start a song, keeps track of which column was picked but would need some other mechanics to separate sorting from playing. Perhaps a button in the application menu would work well enough.

Quote:

Thanks again for a great piece of work
Thank you for your feedback and suggestions. I'm glad you like it.

Joorin 2010-06-20 15:20

Re: footify alpha, a Spotify client based on despotify
 
I've been playing around with sorting a bit. As it stands now, I've added sorting by album and artist in the search view. I've added stubs for sorting by popularity.

This leads me to two things I've been thinking about: sorting by popularity and playing songs in a sorted list.

First, popularity. When a search is done, the result comes, as far as I know, sorted by popularity from the Spotify servers. But, as soon as you sort by, say, artist this ordering is gone. Is there really a need for sorting by popularity?

Second, playing songs in a sorted list. With the current implementation, the playlist isn't changed after sorting has been done. This means that if you start a song from a sorted playlist, let it play to the end and the next song is started, this will be the next song from the initial playlist and not from the sorted playlist.

The data structures in libdespotify aren't really made for this kind of manipulation so I'd have to come up with ways to handle it. Including special cases when the sorted playlist is to be re-assembled according to the new sort order.

So, would this be a problem? I'm not too keen on spending time solving a problem that won't bother anyone...

Joorin 2010-06-20 20:16

Re: footify alpha, a Spotify client based on despotify
 
Version 0.0.9-1 has been uploaded to the repository and the Garage page.

New functionality:
+ Sorting by album, artist and popularity in search view.
+ Sorting by artist in playlist view.
+ Buttons to perform sorting has been added to the application menu.

To keep in mind:
- The playlists are not changed by sorting. This goes for the search view as well.

Feedback regarding sorting is very welcome.

orcocan 2010-06-20 22:01

Re: footify alpha, a Spotify client based on despotify
 
joorin thanks for your all good work on this. I've been using footify for a couple of weeks now and it's very good.

One of the things I'm missing I think is the name of the artist in the playlist view? Was that by design/on purpose?

Joorin 2010-06-20 22:31

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by orcocan (Post 723038)
One of the things I'm missing I think is the name of the artist in the playlist view? Was that by design/on purpose?

As far as I know, the third column is the name of the artist while in playlist view. At least it looks that way when I run the client on my device and I wrote the code to work like that.

If you have a playlist where the name of the artist is not showing, could you perhaps supply a screen shot?

orcocan 2010-06-20 22:49

Re: footify alpha, a Spotify client based on despotify
 
http://img199.imageshack.us/img199/8...reenshot00.png

am i doing anything wrong perhaps?

Joorin 2010-06-20 23:15

Re: footify alpha, a Spotify client based on despotify
 
Quote:

Originally Posted by orcocan (Post 723071)

I'm sure you're doing nothing wrong.

If you scroll around in that playlist, what is the longest song title you can find? If there is a really long title, it will push the other columns out to the right where they can't be seen.

I've added a limit to song titles in the playlist view now. It will be included in the next release.

Joorin 2010-06-22 20:00

Re: footify alpha, a Spotify client based on despotify
 
I'm running a bit low on things to fix now, which tells me that it's almost time to push something to Extras-testing to try to reach the Extras repository.

With this in mind, I ask you guys to try to come up with suggestions for fixes or features that you think need to be taken care of or added. Just keep in mind that I'm aiming for a small and fast client.

To start this off I'll make a list of things that I'm either working on or thinking about fixing/adding before pushing anything to Extras-testing:
- Asynchronous handling of as many events as possible (not blocking the GUI thread any more)
- Making buttons behave a little better in different situations (where possible, for example no new searches while a search is pending)
- FM transmitter support (I'm still not sure about how this should be done, I'm inclined to just adding a switch for on/off and not settings for frequency)
- Artist information (not really sure if this adds anything to the client and the support from libdespotify is very limited)


All times are GMT. The time now is 06:10.

vBulletin® Version 3.8.8