Monday, 11 June 2012

Amarok StatSyncing GSoC: week 3

Hi, in case you forgot, I'm working on my GSoC project about statictics synchronization in Amarok. Previous report was rather early, this one is a bit late. The main success this week is that the synchronization actually works (best tested with iPods), hooray!
Progress on the Synchronize Statistics dialogue. You can see conflict resolution, updated fields would be in bold, but the are none.
What I've done this week:
  • Implemented ability to compute synchronized value for each field, this is shown in UI. Fields that are going to be updated are in bold.
  • Improve the UI to be able to sort, filter-as-you type and filter based on synchronization status (updated, not touched, having conflict).
  • Made the synchronization smart so that it for example doesn't want to update labels of an iPod track, which doesn't support labels at all.
  • Changed core Amarok classes so that first, last played time and play count can be written back to tracks.
  • Implemented actual synchronization worker on top of all this. The worker runs in a thread and is abort-able.
Problems I've faced:
  • There is currently no way to determine what statistics fields are supported by given Amarok collection. I had to use some heuristics as a temporary solution.
  • Setting some track fields is inconsistent in core Amarok classes. For example setRating() and setScore() are in Meta::Track while I really think they should be in a specialized class called EditCapability.
  • No other collection than the main one supports track labels currently (AFAIK), so I cannot really test this feature.
What's next:
  • I've already done much of the agenda for the next week, so:
  • I'll work on polishing the synchronization UI and behaviour a bit more to remove some corner-cases that currently exist.
  • I'll improve handling of rating conflicts: I plan the "Take ratings from..." button to mass-resolve unresolved rating conflicts.
You can test my work by pulling and building gsoc branch of my Amarok git repository clone, it already works! I also publish weekly diffs with more technical details on KDE's review board which may be a more convenient way to review my code and to comment on it: week 1 week 2 week 3


  1. Great stuff. My hope is that syncing will make Amarok less of an isolated island from which all my nice ratings and statistics are difficult to move to another place (like mobile devices on which I do not want to miss them). Btw, is there anything like a mobile amarok?

  2. I just stumbled on your page from amarok, because i was comparing it with banshee my current ipod sync utility on Ubunto 12.04.
    The title drove me here ipod sync, and well first, awesome job. im very excited to get hom and try it out.
    Here are the issues i've had the most trouble with when i sync my ipod
    1) Podcasts !
    ok so it is one issue but it is the thing that frustrates me the most, Banshee always copies the empty podcasts in my library even if i havent downloaded them, it doesnt fill up any space but it does copy the information over and makes browsing through my podcast list very frustrating and time consuming to sync as well.
    My comparison is based on what i had in itunes, if i downloaded it would sync, if i listened to it then it would delete.
    so that is basically it, auto sync has been disapointing on banshee, and i will give amarok a try later on and let you know if i face any issues
    good luck with your project

  3. Unfortunately, podcasts is the only major think left unimplemented for Amarok iPod support, maybe for Amarok 2.7.

  4. Yes, there are plans for Amarok mobile, but nothing specific. Certainly no real work has been done yet.

  5. Your post had offered me with another point of view on this
    subject. I had limited knowledge that things can work in this manner as well.
    Thank you for sharing your knowledge.

    It is usefull to them because all of that discord enables
    them to focus on their own real agenda without anyone noticing it amid the din
    of the culture war.

    Tile Supply UK

  6. I admire the valuable information you offer in your
    articles. I will bookmark your blog and have my children check up here often. I
    am quite sure they will learn lots of new stuff here than anybody else!
    Finally,an issue that I am passionate about. I have looked for information of this
    caliber for the last several hours. Ditra