Revised Proposal: Playlist and Collection Synchronization

Rashad Tatum tatum.rashad at gmail.com
Sat Mar 28 22:22:32 UTC 2009


Abstract:   Currently, Amarok users have to manually add items to their
media device(s). Additionally, other media players such lack the
functionality for the user to back-sync items from their device to their
local collection. My goal is to solve both problems with this project.
 Content:



*Name:*

Rashad Tatum



*Email Address:*

tatum.rashad at gmail.com



*Freenode IRC Nick:*

progmanos



*Location (City, Country and/or Time Zone):*

Marietta, Ga, USA UTC/GMT -5 hours (Daylight Saving Offset, +1 hour)



*Proposal Name:*

Playlist and Collection Synchronization



*Motivation for Proposal / Goal:*

I own an iPod and would love to have this feature.

*Implementation Details:*

Definition: Synchronization will keep copies of selected items from the
Collection and/or Playlists on the a particular media device.

All items will be checked to see if they already exist on the device.

Improve device support in Amarok 2.

Items that can be synchronized:

   - All (Parent group of all items)
   - Synchronizes all items from the collection, playlists, and podcasts.
      - Items on the device not in the collection, playlists, or podcasts
      will be removed or added to collection, playlist, or podcasts.
   - Collection (Parent group of Artist, Genre, Composer, and Year)
   - Synchronizes all items from the collection
      - Music on the device not in the collection will be removed or added
      to collection.
   - Artist
      - Synchronizes all items in collection by select artist(s)
      - Items by select artist(s) on the device not in the collection will
      be removed or added to collection.
   - Genre
      - Synchronizes all items in collection of select genre(s)
      - Items by select genre(s) on the device not in the collection will be
      removed or added to collection.
   - Composer
      - Synchronizes all items in collection by composer(s)
      - Items by select composer(s) on the device not in the collection will
      be removed or added to collection.
   - Year
      - Synchronizes all items in collection by year(s) of track(s)
      - Items of select year(s) on the device not in the collection will be
      removed or added to collection.
   - Playlists
   - Synchronizes all playlists or select playlist(s)
      - Select playlist(s) on the device not in the local list of playlists
      will be removed or added to collection.
   - Podcast
      - Synchronizes all podcasts or select podcasts
      - Select podcast(s) on the device not in the local list of podcasts
      will be removed or added to podcasts.

Any combination of subgroups may be selected.  In that case the union of the
selected items will be synchronized.

The graphical visualization could be displayed as a widget.

*Tentative Timeline:*

Community Bonding Period: Study Amarok code base (which I have already
started doing) to get an idea of what I classes to use to implement the
project idea.  Become more familiar with development environment.  Develop
algorithm and test cases.  Includes learning documentation standards.

May 23: Refine algorithm.  Ensure it covers all desired features
(communicate with community and developers).  Begin prototyping (define
classes and functions).

May 30: Finish prototype of classes and design basic gui configuration.

July 6: Test prototype for midterm

July 13: Midterm deadline.

Interim Period: Optimize algorithm and implementation. Continue refining gui
configuration and algorithm implementation.  Mentor assists with project.
Fix bugs and finalize test cases. Ensure GUI meets standards.  Write
documentation.

August 10: Suggested Pencils Down.  Finalize documentation.

August 17: Firm Pencils Down.  Submit evaluation to Google.

August 24: Evalutation deadline.

August 25: Final Results Announced!  Begin coding my next idea (non-GSoC)
for the Amarok project.

September 3: Submit required code samples to Google.



*Do you have other obligations from late May to early August (school, work,
etc.)?*:

I am planning on taking two courses for a total of 6 credit hours during a
10-week summer semester.



*About Me (let us know who you are!):*

I am a Computer Science/Mathematics student at Southern Polytechnic State
University <http://www.spsu.edu/> .  I am a 23 yr. old male from LaGrange,
Ga.  I have taken the following Computer Science Courses: CS 1 & 2 and Data
Structures.  I am currently taking the following CS courses: Database
Systems, Digital Design, Algorithm Analysis, and Objective-C and Cocoa.  I
enjoy learning new algorithms and programming languages.  I intend on
pursuing graduate studies in Algorithms, Combinatorics, and Optimization or
Computational Science at Georgia Tech.

I recently began developing for the Amarok project this year.  I implemented
the backend of the auto-download of podcasts feature with the guidance of
Bart Carneels and Mark Kretschmann (who helped me get my development
environment running).  I worked through the introductory Qt tutorials last
summer.  I started using KDE and GNU/Linux in 2001.  I started using Amarok
in 2004.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/amarok/attachments/20090328/86a08d9a/attachment.html>


More information about the Amarok mailing list