GSoC proposal: Enhanced Amarok UI

Leonardo Franchi lfranchi at kde.org
Wed Apr 1 13:08:09 UTC 2009


On Wednesday 01 April 2009 05:33:31 Enrico Ros wrote:
> Hello Everybody!! Here is my proposal for the Summer of Code.
> Anybody willing to mentor me??
>

Hi Enrico! thanks for submitting a draft. following are some comments.


> ------  ------  ------  ------
> # Motivation for Proposal / Goal:
>   Improve the look & feel of Amarok User Interface, taking advantage of the
> latest Qt Software technology. Essentially I want to make the UI pluggable
> in a way that each component (the 'player bar', the 'context browser', the
> 'playlist', the 'analyzers', etc.) can be mixed and layouted by the user or
> automatically.
>   In the meanwhile I hope to raise the performance of the UI, accelerate
> graphics where available, and loosen implementation constraints to give
> designers more freedom (see [1]).
>   In the remaining time I'll implement some fancy components for the pure
> pleasure of the eye ;-)
> # Implementation Details:
>   The first step will be to abstract the MainWindow class to allow it to be
> reimplemented in other ways. This is important in 2 ways: 1. the ui<-
>
> >functionality decoupling that is brought in, 2. I'll be allowed to work on
>
> the “pluggable container ui” side-by-side with the actual MainWindow, that
> will remain the default.
>   Then I'll define what a “Component” is, and the related concepts. Here is
> are some key points:
>  - the user interface may react to some variables (user input, user habits,
> music type, tags, beats, time of the day)
>  - the ui won't get in the way of the user
>  - Amarok must work even with an empty ui
>  - different component aggregations are called “presets” (mini player,
> compact player, [1], are presets)
>  - the current MainWindow look will be the default “preset” of the ui
>   Then the work on the Container will begin. I'll support the layouting
> logic of the components and Drag & Drop component reordering. This is the
> point where Qt Software's Kinetic and StateMachine frameworks will be used.
> OpenGL acceleration will also be used on the container. This will even
> allow for pure-OpenGL components (Amarok's CoverFlow-like component will be
> resumed at this point, and will allow for effects like [2]).

i'll be honest, two concerns come to mind:

1) this is a radical change, and i'm not sure I agree with what i think it is 
you're advocating. turn Amarok into a canvas on which you can arrange any 
number of separate components sounds nifty, but i'm not sure how usable in 
practice. we're not trying to become another foobar2000, with an infinitely 
configurable and endlessly confusing interface :D in any case, I think 
something this different needs some significant discussion.
2) i am a bit doubtful of the project due to the amount of work it entails. 
ust the componentry part (including acceleration, qtkinetic/statemachine stuff) 
plus the "reacting to variables" is a lot of work.

(btw, as qtkinetic will be part of qt4.6 and a solution until then, we also 
need to think about if we want to depend on a qtsolution)

>   Then I'll develop additional components (analyzers mainly, and cpu cycles
> wasting eye candy components). For the analyzers I'll coordinate with the
> students working on the related Phonon SOC project (at this point Amarok's
> interface should already be present), or I'll provide a dummy interface for
> later binding if that project is not on the way.

just to be clear, the phonon SoC idea is not guaranteed to actually be 
accepted (and we don't even have a proposal for it yet, so there isn't 
anything that *can* be accepted :) we would really like to have it happen, but 
we'll see. 

>   The development will probably be done on a git repository that tracks the
> SVN trunk, to allow for an easy merge of the work, provided that it will
> prove good.

most amarok devs already use git-svn for their development work. also, we 
prefer to have people develop directly in trunk so as to expose the changes to 
the wider development community. if all the development happens in a separate 
branch there is less testing and review, and can lead to more issues when the 
time comes to merge (not code issues, functionality issues)

>   In the early design phase I'll try to make sure that the most interesting
> ui ideas by designers, usability experts, users and developers will be
> doable (I already have lots).
>
> # Tentative Timeline:
>  - may: integrate all the feedback from designers, artists, developers and
> create the architecture
>  - june: do the ui decoupling, that allow for different MainWindows to be
> built - july: implement the “components” ui, with layouting and live
> editing - august: implement some components for a new, to be decided as we
> go, design (I hope :-)

it would be great if you could provide a bit more of a detailed timeline :) if 
you can break down the summer into one- or two- week chunks it'll help in 
defining concrete goals. 

> # About Me:
> I study Electronics Engineering at the Universiy of Padua (Italy). I like
> open source and have been involved in the kde community before (fixing
> performance, working on okular, on the themed kdm and amarok). I'm really
> passionate about graphics, 3D acceleration, HMI and saving cpu cycles for a
> greener world ;-)

do you have any other summer commitments? how much time do you think  you'll 
be able to spend on Amarok for the duration of the program?

thanks for the proposal---please don't let me scare you off! i'm excited that 
someone wants to work on the amarok UI as we all agree it could use some love. 

leo

 
-----
lfranchi at kde.org		Tufts  University 2010
leonardo.franchi at tufts.edu                The KDE Project



More information about the Amarok mailing list