[dot] The Road to KDE 4: Amarok 2 Development is Underway
Dot Stories
stories at kdenews.org
Tue Mar 13 05:59:20 CET 2007
URL: http://dot.kde.org/1173761811/
From: Troy Unrau <troy.unrau at gmail.com>
Dept: rediscovering-how-to-rediscover-your-music
Date: Monday 12/Mar/2007, @21:56
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 [http://amarok.kde.org/] 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)
[http://phonon.kde.org/], 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
[http://dot.kde.org/1170773239/]. 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 reimplement 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.
[http://static.kdenews.org/content/the-road-to-kde-4/vol12_4x_mac.png]
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
multicolumn playlist that displays information from tags contained
within the media files. Now, these multicolumn 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 [http://developer.kde.org/~wheeler/juk.html] 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.
[http://static.kdenews.org/content/the-road-to-kde-4/vol12_mockup.png]
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.
[http://static.kdenews.org/content/the-road-to-kde-4/vol12_356_amarok.png]
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 one single month, and work is still ongoing.
[http://static.kdenews.org/content/the-road-to-kde-4/vol12_4x_amarok.png]
One of the most promising of Amarok's features is Magnatune
[http://magnatune.com/] 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 withfriends.
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
[http://musicsojourn.com/Cat/Streams/index.htm] 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:
[http://static.kdenews.org/content/the-road-to-kde-4/vol12_4x_services.png]
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 forusing SVN available at the KDE techbase website
[http://developernew.kde.org/Getting_Started/Build/Unstable_Version], or
use the kdesvn-build [http://kdesvn-build.kde.org/] 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 [http://ljubomir.simin.googlepages.com/awn] published by
Ljubomir Simin. Special thanks for his contributions to this article.
It's my first experience co-authoring, and it went very smoothly. :)
More information about the dot-stories
mailing list