Jump to content

Amarok/Archives/CoverBling overview

From KDE Community Wiki

Everyone loves iCandy! Our loyal Amarok users are no exception to this rule, so we're trying to make Amarok 2.0 especially pretty. Since the day Apple released a new version of their iTunes with the CoverFlow feature, users have been asking us to implement a similar feature in Amarok. Being a bit of a graphics nerd, I had been toying with the idea for some time. Two weeks ago I decided to give it a try, and although I hadn't been coding graphics stuff for a few years, the initial results were encouraging enough to sparkle my motivation.

Starting with a simple textured rectangle zooming around, I've quickly added reflection effects, proper perspective projection and the ability to show multiple cover images and move them in interesting ways. We're using multisampling (full screen anti-aliasing) by default, which a creates very pleasant image quality without jaggies. Yesterday I've implemented object selection, which means that we can detect over which image the mouse cursor hovers, and react accordingly. Then I had a brainstorming session with Seb Ruiz about the design and mechanisms of CoverBling (that's the working title I have chosen for this feature). We definitely do not want to simply copy CoverFlow, as I think that would be really lame, and potentially also trademark infringing. Instead we want to come up with something cool (or ideally even cooler) on our own. So far we've had some interesting ideas, and I've started to implement one of Seb's ideas, and we'll see how that pans out. If you have some good ideas, we'll be very happy to hear them.

In other Amarok related news, we have been considering to move to Plasma for the context view (the big display in the middle) in Amarok. This move was initiated by Leo Franchi, who is working on the context view as his SoC project. Leo started an experimental branch in SVN for the Plasm'ification, and I'm extremely looking forward to see the results. On the downside, the move to Plasma means that we have to trash most of the existing code for the context view; almost a complete rewrite is required. On the positive side though there are the great possibilities that Plasma offers us: Ability to include scriptable Plasmoids, fancy SVG rendering, and theming. Also we don't have to reinvent the wheel (or "invent a bike", as we like to say), but we can combine our efforts with the Plasma dudes. The move is technically not without problems though; Libplasma requires a few modifications to be useful for Amarok. Leo has prepared a patch for Libplasma, and we would be happy to get this patch in. At this point I'm calling out to Aaron: Please contact us, we've been trying to get hold of you ;)

To sum it up, I think there are some very exciting times ahead for Amarok 2.0. And the best thing for me is that the OpenGL hacking has really brought back my motivation to hack on new features. In the end it's all about motivation, isn't it? :)