The Road to KDE 4: Amarok 2 Development is Underway

This week we'll take a brief look at some of the many features that are making their way into Amarok 2, which is the development branch for Amarok in KDE 4. The features discussed are all in-progress features which have reached varying stages of completion. Read on for information about Amarok's engines (including Phonon), UI changes, changes to the Magnatune music store, OS X support, and more.

A few weeks ago, The Road to KDE 4 featured an article on Phonon. When that article was published, work on Amarok 2 had not yet started, but the Phonon developers were keeping Amarok very much in mind as they designed the Phonon libraries.

You see, in Amarok 1.x, the developers had to maintain separate playback engines for xine, gstreamer, aKode, etc. This was somewhat of a hassle to keep all of these engines up to date, and in some cases, they were very much a moving target, forcing them to focus on only a single engine, xine. And other programs, like Noatun had to re-implement these backends so there was much duplication of efforts. For KDE 4, the Phonon interface is designed so that programs like Amarok don't have to worry so much about the backends anymore and can concentrate on the other parts of the application. According to the Amarok developers, implementing a Phonon backend took all of 90 minutes before it was usable, and a few extra hours before it was fully implemented. When using Phonon, applications can playfiles over network protocols thanks to KIO, so we'll see what happens as the Amarok team explores this feature in more detail.

So Phonon is now working in Amarok 2. The old engines were also ported over, and in particular, the old xine engine is still being actively developed and they haven't decided to drop their old engines. Since Amarok 2 has only been in development for a few weeks, it is too early to decide to drop their existing engines such as xine, which has served Amarok very well in the past.

One of the side effects of using Phonon is that Amarok can access the video playback functions of the underlying engines where they exist, such as in the phonon-xine engine. They have added rudimentary support for video playback in Amarok, but it's designed to complement audio playback, rather than supplant more involved video players like Kaffeine. The idea is that if you have a music video in your collection, and want to use Amarok to play music from that video, then the video stream would be considered as a Visualization for that music. Having video support will in no way hinder your Amarok audio experience in version 2. According to Dan Meltzer, adding initial video support was a whole seven lines of code using Phonon.

Of course, thanks to KDE 4's newfound portability, Amarok is able to run on other platforms, not just Unix/X11. The development version has already made its first appearance on OS X thanks to the work of Benjamin Reed. Porting to Windows as well is underway, although I don't have a screenshot of that progress.

I personally think that having Amarok on these platforms will single-handedly do more for awareness of KDE as a multi-OS development platform than any other application that currently exists for KDE, since the program is head and shoulders above so many other media players out there.

But they wouldn't have a good reason to call it 2.0 unless there were some really big changes happening, and there are.

Amarok is in many ways inspired by XMMS, which in turn bears a lot of resemblance to Winamp. Basically, it's a music player with a multi-column playlist that displays information from tags contained within the media files. Now, these multi-column playlists have not really changed much over the last decade, except that different applications have added interesting ways to sort, filter, and edit tags. Amarok is particularly good at sorting and filtering, and half decent at tag editing (see JuK as an example of a player with an amazing tag editor). But none of these functions really require Amarok to present its playlist in a rigid column format, except for traditional reasons. So as part of the UI reworking for Amarok 2, the playlist is seeing a rebirth of sorts. While it still lists Tracks, Titles, and other tags, it will no longer be constrained by the old fashioned playlist column format.

This requires a picture to properly describe, so here is a mockup showing the concept in action.

You may first wonder "Where is the playlist?" as I and a few of my peers on IRC initially wondered, but if you look closely, the list on the right is actually the playlist, only it's broken free from its old format. So now, when your file is missing some tags, the playlist will simply adjust around those missing tags, smartly displaying what information it does have.

Also featured prominently in this screenshot is the middle pane. This pane is the focus of Amarok 2, as they try to give you more information about your current track, and allowing you to "Rediscover Your Music" as their motto goes. The leftmost column will function much as it used to, except with the "Context" information moved to the centre. Of course, as is KDE tradition, much of this will be configurable.

Here is a shot of Amarok 1.4.5 showing its current layout for comparison as well as a shot of the development branch of Amarok showing off some of the progress they've made in moving user interface elements around. The mockup above is the targeted UI they wish to achieve, but there will be bumps and changes along the way as they find what does and does not work well.

And now another screen the Amarok 2.0 development version, this time on Linux. Keep in mind that Amarok 2 has only been in development for a single month, and work is still ongoing.

One of the most promising of Amarok's features is Magnatune store integration. According to Wikipedia: Magnatune is an independent record label which aims at treating both its musicians and its customers fairly. Users can stream and download music in MP3 format without charge before making a decision whether tobuy or not. Music files sold by Magnatune do not use any form of Digital Rights Management to prevent customers from making copies of music files they have purchased; and actually encourage buyers to share up to three copies with friends.

Amarok debuted with Magnatune support (for both audio streaming and purchase) in version 1.4.4. Since then, the team has received many emails from other stores interested in being added to Amarok as well. But in Amarok 1.4, the developers have been busy polishing up Magnatune support and had no manpower to start bigger tasks. With Amarok 1.4.5, the second version of the Magnatune store was released and developers are really pleased with that version. It works well, and generates a small but growing number of sales for Magnatune.

So it is time to move on. Nikolaj Hald Nielsen, the main developer of Magnatune store, is planning to move things up a higher level by providing a service framework for all streaming music sources. This service framework could, and is in part intended to, be used as a starting point for adding other stores, and will provide a large amount of basic functionality with regards to adding previews to the playlist, displaying data about selected items, and similar "read only" functionality. As a prof of concept, a service that can be controlled using scripts have been implemented on top of this framework. Currently there is no intent to make a framework for the more store specific functionality (purchasing, parsing of info from websites), simply because each store has their own unique way of handling these things. Nevertheless, it's a great step forward for unified streamed music support in Amarok, and in fact, the CoolStreams service has been already ported to this new framework (as a rubyscript), and a Shoutcast browser is coming along.

Now, with the Magnatune store well received and with the possibility of using the service framework, it might be time to contact some of these interested music stores again.

Here is a screenshot showing the experimental "Cool Streams" ruby script running on top of the scriptable service:

If you'd like to get involved in the Amarok 2 development process, you will need to set up a KDE 4 development environment. There are instructions for using SVN available at the KDE TechBase website, or use the kdesvn-build program to automate the whole thing. The Amarok developers accept patches, and will hook you up with SVN access if you require it. They also need help from artists, testers, and people to offer user support via the #amarok IRC channel on the freenode network.

Ladies and Gentlemen, Amarok 2 is progressing very rapidly. To quote Mark Kretschmann, Amarok's lead developer: "If development continues at this pace, we'll be done with Amarok 3 by the time KDE 4 is out ;)" Be prepared for something awesome, as you've come to expect from the Amarok team.

To stay up to date with Amarok news, check out the Amarok Newsletter published by Ljubomir Simin. Special thanks for his contributions to this article. It's my first experience co-authoring, and it went very smoothly. :)

Comments

by Fri13 (not verified)

http://static.kdenews.org/content/the-road-to-kde-4/vol12_4x_amarok.png On this GUI, i think there is wrong direction.

User likes to search music what they have and add it to playlist. And then reads more info about artist or lyrics if s/he has time. Most time user just listen music and does other things same time.

That's why it should be easy to search music and add it to playlist and possible save them or add them to mediaplayer etc etc...

-On this new gui, user needs first search music from left side and then if using drag, drag it over whole application to right side panel to get it added.

-Position slider is still way too small and it should be more like kaffeine has, using whole space what can have.

-Playlist search bar should be more closer it and collection search bar

-I dont like to use that "graphic" list when something is playing and bars go up/down etc. I would suggest that if user takes it away, it will disapear. And it position could be much better.

-Play/Pause, Stop, next, etc. Buttons are on left upper corner when playlist is on right side and it most control buttons are under it. What about making playlist + action buttons more as player by moving play/stop... buttons to over playlist if you like to have three panel view?

-Playlist save, undo, redo etc, looks good

-It's nice that Collection and Information panel now can be seen together. That info panel should not take so much space, user likes to see own collection and have playlist infos like name, artist, album, time and someone likes have rating too.

-How about possibility to remove that status bar from down from taking space? Now there is info about playlist playtime and position slider.

-Volyme slider could be near play/stop... buttons and i would like to see theme about that too...

-More configuration options for user about panels, like usually KDE apps have. Right click > Edit toolbars etc... and option to move them...

Just my opinions... (ps. sorry about bad english)

by Dan (not verified)

Hello.

First off, The context pane is going to see some gigantic enhancements in 2.0--We have big plans for it.

"-On this new gui, user needs first search music from left side and then if using drag, drag it over whole application to right side panel to get it added."

This is a problem we have been trying to figure out the best solution to--rest assured we know that it is a problem and are planning on doing something, its just a matter of testing out possibilities until we see what works best.

"-Position slider is still way too small and it should be more like kaffeine has, using whole space what can have."
I don't really agree with this. We are planning on moving the position slider, but I don't think that it should take up the entire horizontal space--Would a jump to dialog work for more precise seeking instead?

"-Playlist search bar should be more closer it and collection search bar"
I think its obvious that that search belongs to the playlist but maybe I'm wrong :)

"-I dont like to use that "graphic" list when something is playing and bars go up/down etc. I would suggest that if user takes it away, it will disapear. And it position could be much better."

The plan is for all of the toolbars to be fully configurable as they were in 1.x

"-Play/Pause, Stop, next, etc. Buttons are on left upper corner when playlist is on right side and it most control buttons are under it. What about making playlist + action buttons more as player by moving play/stop... buttons to over playlist if you like to have three panel view?"

The top left corner is a fairly important corner of the app--it tends to grab attention and be the one where important things go. For us that is playback control. Don't forget we have keyboard shortcuts for power users :)

"-Playlist save, undo, redo etc, looks good"
Great!

"-It's nice that Collection and Information panel now can be seen together. That info panel should not take so much space, user likes to see own collection and have playlist infos like name, artist, album, time and someone likes have rating too."

It may look bad now, but we are planning on making the information panel much much cooler!

"-How about possibility to remove that status bar from down from taking space? Now there is info about playlist playtime and position slider."

Its on my todo list :) I want it to go away, its just a matter of finding a home for the information it still holds.

"-Volyme slider could be near play/stop... buttons and i would like to see theme about that too..."

Switching volume/analyzer might not be a bad idea.. i'll try it and see how it looks.

"-More configuration options for user about panels, like usually KDE apps have. Right click > Edit toolbars etc... and option to move them..."

We have decided that we would rather not make everything configurable--The toolbars will allow you to decide what are on them, but as for repositioning parts of the app, its probably not going to happen.

by djouallah mimoune (not verified)

" Amarok on these platforms will single-handedly do more for awareness of KDE as a multi-OS development platform than any other application "

i am a happy guy now, i am less concerned about the future of kde project, if if gnome win, kde is always a very wonderful tool to make multi platform software.

it is really funy now to see that the only part of kde which is linux specific is kdebase/workspace

great keep the good job

by Mark Hannessen (not verified)

gnome can't "win", because both desktop attract different people with different ideals. :)

by Coward (not verified)

The best approach is to take the nice things about the mock up gui and integrate them into the old ui or modify aspects of it. The particularly annoying feature is that to add specific songs from specific albums is a serious mouse moving and clicking exercise. What I would like is integration of a video manager whose collection can be maintained separately but whose contents can be added to any playlist with e.g music. Implementing this with the new phonon et al stuff is more than enough to justify a 2.0 however if you would like to go over the top you can add support for jack plugins whenever the underlying backends provide access to jack. Now you don't have to reinvent the wheel and you can actually produce a product that can be simple for the casual user, yet powerful with even per song or per album effects and filters. Come to thing of it I have not seen anything like it unless I run a menagerie of applications that require constant attention. Now tack on my linux-input-layer rf remote and my computer can do what no known affordable multimedia equipment dare tackle :)

by R J (not verified)

Unfortantly no matter what those building this do, there will always be people who hate it, or like it. Frankly I don't care what it looks like as long as it plays my music.

Thanks for the work all do on amarok.

by Git (not verified)

I think, as other people said, that it may be good to focus on collection management.

I suggest to allow user to manage collection overriding tags. For example, I have a lot of single songs from different artists and albums on a directory that I call "various". So, I would like to have all those songs in the collection udner a "Various" section (I could edit all tags from those files ant put "Various" as artist, but I'll loose artis real information).

I also have a large directory with albums and songs that I haven't listened yet, or I want to examine with more detail until decide to keep them or drop. It would be nice to be able to tag all thos files (or just a directory) with a "testing" label or something like that. Sometimes I want to hear new music, and that directory is the best place, but I can't recognize those files in the collection view.

It may be useful to be able to treat albums as songs in, for example, aleatory playback o suggested playback. Amarok would suggest to the user a whole album, instead single songs. Sometimes I want to hear a complete album, without the dinamic changes that I feel when playlist is jumping over different songs and music styles.

And, of ocurse, a tag system for taggins songs and albums, wich could be used to generate user playlists.

Thanks for this great audio player (also video player soon), it's really outstanding.

by Hannes Hauswedell (not verified)

what about juk?

will there be new versions? i don't need an online store, wikipedia stories, cover art, lyrics are any of that other stuff.

i just want a kde-media-player with good playlist handling and a powerul tag editor. the last versions of juk already sucked very much (the cover art stuff, broken engines, high memory usage...).
it seems juk has been completely neglected since the amarok hype :(

by Jeroi (not verified)

I like a lot when it comes song controls. amaroks 1.* had controls below the playlist, but I am glad that they moves to top, as my eyes look controls always from top of the programs.

What I hope:

I use only the playlist. So I need configuration to amarok 2 that can hide those 2 panels on the left and middle. It is simple as this: I just listen music amarok hided. When I open it, I'll just change a song in 10 000 song playlist and add some priority to some songs and close amarok again to continue work.

What I dont like:

Mostly that the new look feels like WMP, thats why I used winamp in windows. Winamp offers just the playlist, with needed funcionality arround playlist.
This is more the reason why I dont like itunes. I dont like that information about song just explodes to my eyes when I open the program.

by Raven (not verified)

Some people are so afraid of change it's scary.

I like then new look thus far.

It's interesting, unique, and fresh. My only suggestion would be to work on the playlist more...make it easier to navigate through. Just keep in mind, the playlist is very important, and users need to be able to use it and work with it simply. It also needs to be flexible.

I like the progression though. Good work.

by axis (not verified)

IMO, it's too cluttered. 3 columns takes up way too much space. What I love about the current interface is that the one column to the left houses so many sections. So you have space for your playlist while still being given a ton of features. Look at how scrunched the playlist is (you can't even read the column names!) I like to have, title, artist, time, album and genre displayed, how would I fit all of this without it looking hideous? I know this is far from a final design, but it was posted in order to receive feedback, and I have to say I don't like it much.

But I trust the Amarok devs will come up with something inventive and user-friendly in the end, they are a great bunch.

choose Amarok or not. I want a simple overlook of my music where I in one glance can see title, artist, rating, genre and own comments on a list of songs. Not at one song at a time. It is the overlook that helps me like for example when I am in charge playing music at a party. I then need to see as many songs as possible in a simple list. Don´t have time to click on every other song when planing. I also need to be able to have a column with my own comments about like pace, good for dancing etc etc.

If I get the above and if Amarok comes for Windows, then it will be easier for me to change to Linux one day, which I for sure want to. I see no future in a monopolistic Windows.

by adredz (not verified)

i don't like the mock up. the central pane is irrelevant. it only only degrades its usability...

keep it up!

by andykriss (not verified)

Amarok is sweet to use... but are u all afraid to really redesign the GUI??
i dont see much difference between the two.... all i see is just windows and tabs being re-arranged. if u going to make remake Amarok why not make a new and easy to use GUI.. that would be great and it would compliment KDE4