[KDE Dot News]
 faq
 flatforty
 contribute
 subscribe
 configure
 search
 rdf

 main


  Amarok 2.0 Interview: Jeff Mitchell
Interviews Posted by Amara Emerson on Thursday 14/Jun/2007, @02:09
from the manchester-united-teaparty dept.
In the lead-up to KDE 4, Amarok will be undergoing a number of large changes both under the hood, and cosmetically with the user interface. I managed to interview a developer, Jeff Mitchell, to talk about the things changing in Amarok from the 1.4 stable branch to version 2.0, including the playlist redesign, the context view and the new web services framework. Read on for the interview.

Amara Emerson: Amarok is the flagship audio player for KDE and Linux. What in your opinion sets it apart from other similar players?

Jeff Mitchell: I think there are a few things that set us apart. One was the concept of functional "browsers" which provided one of the early unique characteristics of the program, and still sets it apart in many ways today. Rather than try to define an all-in-one interface that could handle more and more and more features, they were separated into logical browsers that excelled at providing specific functionality: playlist access, music context, collection browsing, etc. Because you could easily replace an entire part of the UI with a totally new portion that provided new functionality, it kept things neat and organized. Plus, your music was always viewable, since the playlist was always shown.

Another thing that sets us apart is innovation. We've looked at what's bugged us about other players, and have pioneered some concepts that in some cases have been imitated and in other cases are still unique. To name a few, Last.fm radio was a first on Amarok. We'd supported MP3 streams for a long time, and we'd supported Scrobbling songs for a long time, so when Last.fm was born it was a natural fit. Dynamic Collection is (so far as I know) still Amarok exclusive, and it's a godsend for mobile users that have music on a laptop that is sometimes connected to other storage pools and sometimes not. Before Dynamic Collection, you'd have to rescan these other storage pools every time you reconnected; now, Amarok simply knows that that filesystem isn't mounted, and keeps the information for when it is. File tracking was also a first on Amarok (although it's been imitated in other players), and it's integrated heavily into many parts of Amarok, and it works well.

Finally, we have a real focus on our users and our community, and we're very responsive to them. Every idea brought forth by our users to enhance the program is considered, and most of them are implemented if we agree that they're good ideas and they wouldn't involve massive, destructive code changes. We try to balance this responsiveness with feature creap/option bloat so that our application stays accessible to newcomers but becomes more and more powerful for longtime fans and music lovers.

Amara Emerson: There are lots of changes in moving from Qt3 to Qt4, what do you think requires the most effort and time; implementing new features/new UI or porting existing Qt3 code?

Jeff Mitchell: I'd say overall implementing new features is more of a time sink. Qt has some backwards-compatibility classes that work as a stopgap until code is ported, so getting Amarok running on Qt4 didn't take too long initially. Many of the remaining unported parts have not been touched because those subsystems are being replaced by new ones. So new features and components is really where our time is going, and that's good, because we have big ideas and big plans.

Amara Emerson: How much do scripting languages like Ruby play a role in Amarok stable? Will they take a smaller or larger role in 2.0?

Jeff Mitchell: In Amarok stable, scripting languages were used for a few functions. The first was for plugins. We don't allow third-party binary plugins, but we expose a huge number of functions via DCOP, which is what plugin scripts use in Amarok stable to perform functions; the Amarok Script Manager would start these running and interact with them when necessary.

The other main function was for proxy behavior. For various services there does not exist a good way to get data we need; Last.fm for instance had a Ruby script acting as a proxy to handle the web interfacing, which would then pass data to the engine to play. I know that due to changes in Last.fm's API this is no longer necessary in Amarok 2.0. DAAP is also another service that Amarok supports that uses some Ruby scripting to handle interfacing with other clients, as scripting languages make speaking HTTP quite a bit easier than coding it all up in C++.

For Amarok 2.0, plugin scripts will still use scripting languages, although they'll now be using DBus instead of DCOP. I'm not entirely sure in what ways scripting languages will end up being used for other purposes.

Amara Emerson: Briefly, what major changes/features are going to be made in 2.0?

Jeff Mitchell: 2.0 is going to see a major change in the Playlist. Amarok's never been designed for extremely large playlists; the idea was always to browse and explore your music through suggestions or through dynamic playlists, but at the same time the playlist was a big listview that showed many tracks at once and lent itself quite well to long playlists. As a result, we see complaints from some users that it slows to a crawl, only to discover that they've queued up 6,000 tracks. At the same time, you had a limited amount of horizontal space to put all the relevant information in. So Amarok 2.0's Playlist is being designed to better show information about the current and upcoming tracks while discouraging huge long playlists.

Smart playlists work quite well right now, but Dynamic playlists, which use Smart playlists as sources, only allow randomization of tracks; these will probably be revamped to better fit the model of the new Playlist. In other Playlist news, I believe queueing tracks will be cut. Although queueing tracks is nice, some people find it counterintuitive to have tracks on the Playlist play in order, except for those that are queued, which will first play in order...we think the new Playlist design won't require the use of a separate queue anyways.

Other big changes include the Context View. No longer just a browser, it's planned to take front-and-center stage and contain widgets instead of rendered HTML, which ended up being severely limiting in terms of what we could show and maintainability. Our web services are getting a major kick -- we're desinging an entire framework to make it easy to add arbitrary web services later, be they music stores, lyrics, guitar tabs, concert information, etc. There is major work being done on the collection system. The meta information that is passed around to various parts of Amarok is being streamlined and abstracted; as a result, we're going to support many Collections of arbitrary types -- Internet storage services like MP3Tunes, portable music players, SQL collections (of local files) -- you'll be able to queue up and play music from all or any of these seamlessesly.

Finally, portable device handling is being handled by Solid. We've been doing work behind the scenes with library developers and HAL developers to ensure that when a device is plugged in (perhaps with the necessary device library installed), Amarok can detect it and just work with it. I can't think of a device that this won't end up just working for -- on Linux, at least.

Oh, did I mention native Mac and Windows ports?

Amara Emerson: Amarok 1.x is dependent on kdelibs. Will this dependency still be there for 2?

Jeff Mitchell: Yes, we still depend on kdelibs. We thought about going Qt-only, mainly for a possible Windows and Mac port, but now that kdelibs is actively being ported to those platforms we didn't see much benefit in losing the features and consistency that the KDE libraries often provide for us. And kdelibs, while large in terms of disk space, is pretty well self-contained; it's not *that* much to ask for those that generally prefer Gnome or another environment.

Amara Emerson: Well you touched on the framework for web services earlier. I guess the framework allows you to add new stores like Magnatune, can you expand on that?

Jeff Mitchell: Since we added Magnatune support, we've had a number of various independent online music retailers approach us wanting to provide similar support. One of our developers and a SoC (Summer of Code) student are actually looking at trying to formalize a standard API for online music stores, to ensure that all can be supported equally. These stores are good for us, as if tracks are purchased through Amarok we get a small cut of the money, all of which goes back into our project to pay for various costs (and not into any developer's pocket). Even if such a common API does not happen, the web services framework is becoming quite full-featured, and if I'm correct it, along with the new meta-information/collection infrastructure, are already supporting more than just stores - Jamendo (free music posted by authors) and MP3Tunes' Oboe (online music storage locker) already both have basic support. And adding new and arbitrary information or music sources should continue to get easier as it matures. Other information we're currently looking at providing, (besides of course lyrics and Wikipedia), are guitar tablature and concert information.



<  |  >

 

  Related Links
 ·   Articles on Interviews
 ·   Also by Amara Emerson
 ·   Contact author

Thread Threshold:

The Fine Print: The following comments are owned by whomever posted them.
( Reply )

Over 40 comments listed. Printing out index only.
Oboe Support
by Anonymous Coward on Thursday 14/Jun/2007, @03:04
I'm very excited to see oboe-support coming. Keep up, good work!
[ Reply To This | View ]
look n feel
by Teddy on Thursday 14/Jun/2007, @04:27
Gooood wooooork!!!!, hope next Amarok release have nice GUI and look n feel, so not only have good functionality, but also the nice GUI design.
[ Reply To This | View ]
Sound enhancer plugins
by larsivi on Thursday 14/Jun/2007, @04:34
I tend to plug Amarok whenever I can, but some complains about not having the ability to enhance the sound, or at least not easily. Especially mentioned as an example, is WinAmp's Enhancer plugin.

Supporting this would probably pull over the last few that still haven't seen the light ;)
[ Reply To This | View ]
Don't cut queueing!
by Rudd-O on Thursday 14/Jun/2007, @04:52
Guys, please DO NOT CUT queueing. I use it all the time! Besides, all my friends I've introduced to Amarok have loved it and one of the reasons that they love it is that they can queue lots of tracks without having to alter their playlist!
[ Reply To This | View ]
Discourage long play lists?
by Diederik van der Boor on Thursday 14/Jun/2007, @05:13
> ..only to discover that they've queued up 6,000 tracks. (..) So Amarok 2.0's Playlist is being designed to better show
> information about the current and upcoming tracks while discouraging huge long playlists.

I'm not sure about this idea. It sounds good to try other usability concepts, but I hope it won't become an excuse to ignore a particular use-case. That's playing the whole list. I have to admit, nowadays I generally let Amarok build a nice short play list because long lists have lot's of crap. For example a random one, or a specific genre (that browser just rocks, also to cut the number of genre-misspellings).

But one thing strikes me: before the user discovers these abilities, they'll try to dump their whole list in Amarok, and let it play it. If they can't do that, will they like Amarok as music player..? Will they still try to look further in the program to learn about short-lists?

Either these usability enhancements potentially make such short-lists usage more obvious, or there will be complaints about "not having a full overview (=full list)" :-/. I love to hear more about the dev teams thoughts here!
[ Reply To This | View ]
large playlists
by peter on Thursday 14/Jun/2007, @05:26
I use Amarok all the time an really love it.

I'm very grateful for Dynamic Collection support, but It is true: "Amarok's never been designed for extremely large playlists". Whenever I connect an external usb disk with a collection of > 20.000 mp3 files, I would like to be able to easily play random songs (and once in a while skip one). The most intuitive way is to load 'all collection' as a playlist, which as you say isn't really smooth on a modest laptop :). Is there a better way to play random songs from a collection this size? I'd rather not make a selection myself based on artist/album/... but would like to let the collection surprise me.
[ Reply To This | View ]
ReplayGain
by Sepp on Thursday 14/Jun/2007, @06:09
Are there any plans for native ReplayGain support? Or a way to use a ReplayGain script AND volume control?
http://bugs.kde.org/show_bug.cgi?id=81661
[ Reply To This | View ]
Long playlists
by Jan Braunisch on Thursday 14/Jun/2007, @06:23
Amarok not being designed for large playlists is pure nonsense! For example we have the filter function which is great for huge playlists but not necessary for small ones. The queue function is another example, if you have a small playlist you can easily drag the track in the order you want, but that gets very inconvenient if you have a large one.

Without a large playlist, I don't understand how I could listen to all the music I like (which is about 2000 tracks) without actively changing the playlist all the time. That would become a PITA after a while. I'ts much easier to drag the music you like to the playlist once and for all and then just turning on random... And if I once in a while want to listen to an album I can just enqueue it and rely on amarok starting to choose tracks randomly after the album is finished.

You should work on improving every reasonably normal way of using amarok, not on discouraging those ways you don't like.
[ Reply To This | View ]
Hierarchical playlists
by hmmm on Thursday 14/Jun/2007, @07:04
I love the hierarchical playlists KPlayer has. I wish Amarok2 will have something like that.

KPlayer lets me see the entire hierarchy or any part of it on the right side of the library, and will only show the informational fields that the expanded folders have.

Another thing I love about it is you can queue files or entire directories at once, and it will keep directories as folders on the playlist. I think every player should work that way.
[ Reply To This | View ]
playlist feature
by bas on Thursday 14/Jun/2007, @07:38
I have a collection of 15000 songs, with different playlists according to my mood. The biggest one has 6500 songs. I would like to continue to use this usage pattern, including queuing.
[ Reply To This | View ]
Dynamic load of storage pools
by José on Thursday 14/Jun/2007, @07:41
> Before Dynamic Collection, you'd have to rescan these other storage pools every time
> you reconnected; now, Amarok simply knows that that filesystem isn't mounted, and
> keeps the information for when it is.

I currently have to store the collection.db to prevent it to be zeroed when my external USB drive is off. If the function you described exists, I couldn't find it....
[ Reply To This | View ]
A lot of this seems like a step backwards...
by Des on Thursday 14/Jun/2007, @12:25
ack. I can't say I like the direction I see Amarok 2.0 taking. I'm going to be a bit harsh, and I apologize for that, but I keep reading these articles and getting increasingly frustrated with what I'm seeing.

> As a result, we see complaints from some users that it slows to a crawl,
> only to discover that they've queued up 6,000 tracks.
...
> So Amarok 2.0's Playlist is being designed to better show information about
> the current and upcoming tracks while discouraging huge long playlists.

This should tell you something. People want long playlists. Rather than changing the interface to make them *even more* painful in an attempt to "discourage" users from doing that, why not fix the actual problem?

> In other Playlist news, I believe queueing tracks will be cut.

Please don't do this. I use queueing all the time. There are some things (e.g. in dynamic playlists) you just can't do without it.

> Although queueing tracks is nice, some people find it counterintuitive ...

Then those people don't have to use it. Please don't cut a feature just because it's "too hard" for Grandma to use. There are much better ways of dealing with that -- improve the feature itself to make it more understandable, or move it out of the way so non-power-users don't see it unless they're looking for it.

> Other big changes include the Context View. No longer just a browser, it's
> planned to take front-and-center stage ...

Most of the time, I don't care about the context view. I don't *want* it on center stage. I want my collection and my playlist on center stage. I want the context browser to be in a sidebar, where I can ignore it until I need it.

(Yes, I realize others will have different preferences. My point is more that there should be an option, otherwise people like me will get really annoyed. ;) )

> ... we're going to support many Collections of arbitrary types -- Internet
> storage services like MP3Tunes, portable music players, SQL collections (of
> local files) -- you'll be able to queue up and play music from all or any of
> these seamlessesly.

This sounds really nifty. I can't wait to see how it'll work.
[ Reply To This | View ]
Old View?
by Timothy Carr on Thursday 14/Jun/2007, @14:31
Personally, I am looking forward to Amarok 2, but for those who don't think they will like it perhaps you could have a "Classic View" or some other way to customize it so it resembles the current style.
[ Reply To This | View ]
Please don't cut xmms-visualisation support
by Phil on Thursday 14/Jun/2007, @14:58
I've heard somewhere about xmms-visualisation support to be cut, if this is true - please reconsider. True, i don't use the visualisation plugins on a day-per-day basis, but sure often enough to miss them if they wouldn't be there at all...

By the way, it would be great if you could include once more "iris 3D", it's still very cool and configurable, and with libvisual 0.4 it wasn't supported anymore. One of the reasons i still have to use xmms from time to time. Please please please... the vis stuff isn't the crucial part about a Player, but sometimes it's fun to have it.
[ Reply To This | View ]
Youtube intergration?
by KoRnholio8 on Thursday 14/Jun/2007, @15:04
I like what I'm hearing about AmaroK 2.0!!! Can't wait!

I just had an idea pop into my head: what if in the contex menu there was an option to look for the video on Youtube? (of course amarok would then stop the track playing and searh for the vid)
[ Reply To This | View ]
sound devices
by Richard Neill on Thursday 14/Jun/2007, @18:17
Any chance of some slightly saner sound-device support? There are two bugs here:

1)If you need to use /dev/dsp1 rather than /dev/dsp (in my case, the former is the big hi-fi; the latter is the LCD monitor's speakers), there's no easy way to do it. Amarok only allows you to choose /dev/dsp, /dev/sound/dsp, or (something else I don't recall). My solution: create a symlink: /dev/sound/dsp -> /dev/dsp1.

2)When something goes wrong in Amarok (eg the sound device breaking), it very unhelpfully reverts to the defaults. This makes twice the work: first I have to fix the problem, then I have to un-break amarok, and force it to go back to the setting I wanted.

3)When I click the Window-close button, I *really* mean "Exit the program". If Amarok wants to go to the system tray, it may do so using the *minimise* button.
[ Reply To This | View ]
A reason for long playlists
by Arne Babenhauserheide on Thursday 14/Jun/2007, @22:02
Hi,

My reason for having many tracks in the main playlist isn't that I need all of them in there, but that management of the non-smart playlists isn't that nice and I want to be able to reorganice my playlists.

For example I'd love to see the option to show a playlist in the main window, so i can work on it. Or to have them in a format, where I can better work with them, especially with long ones.

And the option to generate a dynamic playlist for a static playlist on the fly...

And besides: I queue up tracks quite often, for example when chaning the dynamic playlist:

"I want to listen to political songs, but before that I want to hear those three songs from my filk-collection" is then simply: "Queue up the three songs and switch the dynamic playlist."

But most important: Thank you for Amarok! It is great!
[ Reply To This | View ]
A few clarifications
by Nikolaj Hald Nielsen on Thursday 14/Jun/2007, @23:21
>> if I'm correct it, along with the new meta-information/collection infrastructure, are already supporting more than just stores - Jamendo (free music posted by authors) and MP3Tunes' Oboe (online music storage locker) already both have basic support. And adding new and arbitrary information or music sources should continue to get easier as it matures. <<


Jamendo support is coming along very well (It is the service I have been using a s a testbed for the new service framework). Claiming that we have basic support for Oboe locker might be stretching it a little at this point, but it is definately one of the things I will be looking into, right after the Magnatune store has been brought back to life in the new framework.... :-)

Also, some more interesting (and often requested) features might make its way into the Magnatune store, see http://amarok.kde.org/blog/archives/411-Meeting-up-with-Magnatune.html . All I need is some more free time!!! :-)
[ Reply To This | View ]
Headless Collection Scanner
by Christian on Thursday 14/Jun/2007, @23:28
This is Unix and a headless/command line collection scanner with
the ability to feed the database is needed.

Many people use fileservers and the server itself is the natural
machine to run the collection scanner. Nowadays you have to launch X11
in order to be able to do that.

A headless collection scanner would take away a lot of pain.

Otherwise, a very nice player.

Christian
[ Reply To This | View ]
New GUI suggestion
by Mootjes on Friday 15/Jun/2007, @04:03
From what I'm reading, I have the impression Amarok developers are currently trying to optimise the GUI in an innovative way. Personally, I'm not entirely keen on the disencouragement of long playlists, or the abolishment of the queue-function (ok, apparently it wasn't meant this way). But I'd like to suggest a new GUI-approach.

It is the combination of 2 main frames:
- One frame including the entire database (or a part of it) of your music (left or up)
- a 2nd frame which is the current playlist (right or down)

You can click the 'random' button on the first frame to listen to random tracks from your entire database, then in the 2nd frame an entry 'random - collection' appears

Or you can select songs from your 1st frame, and add them to the playlist(2nd frame).

What do you guys think?
[ Reply To This | View ]
Playlists
by michael on Friday 15/Jun/2007, @05:11
I think the big problem with palylists is that we are mixing two different things:

1. the last x, the currently playing and the next y songs
2. a potentially large list of songs that can easily be modified and stored

I think the two need a different UI. It should then be possible to use 2. as a source for 1., manual and/or automatic (random/sequence).
[ Reply To This | View ]
But I *Liked* queuing tracks!
by dthacker on Friday 15/Jun/2007, @12:59
I'm not quite sure if I understood Jeff correctly but I think one of my favorite features is going to disappear. I usually run the library on random favoring least recently played, but sometimes when one of favorites comes up, I want to hear a couple more tracks. So I queue up 2 or 3 by that artist and then let it go back to random. I'm hoping I can still do that.

dthacker (who will scrobble his 10,000th play to last.fm this month. Thanks Amarok devs!)
[ Reply To This | View ]
a lot of people prefer a Qt4-only version
by anonymous on Saturday 16/Jun/2007, @17:43
because they want to install another Filemanager if bash, MC, Thunar, Rox.. is enough in a Window Manager only system with GTK and Qt installed?

We prefer even Gnome-less programs. Why should we install another VFS (KIO, Gnome-VFS) if we have Fuse?

Please remove KDE-libs from Amarok 2.0. Hopefully, K3b goes the same way. Even better: structure the code to compile a non-KDE system and everyone will be happy! A lot of people doesn't need KDE integration.

Thanks a lot!
[ Reply To This | View ]
Please add soundtouch integration
by Robert Bill on Sunday 17/Jun/2007, @07:56
I've suggested to integrate soundtouch functions (pitch-independent song stretch) into Amarok but this has been refused because of it becoming possible only with Phonon. Now in Amarok 2 there should be Phonon so I would wish to have soundtouch integration.
[ Reply To This | View ]
less context, more collection please
by viktor on Sunday 17/Jun/2007, @10:42
<personal opinion>
actually i never really understood the meaning of the contextbrowser. I think amarok is a music player and browser. I'm not interested in what amarok thinks are my favourite tracks or how many times i have played them. I'm not saying such features shouldn't be there, but i just cant understand why they should be prioritzed over playing and organizing my music, which again is what i think amarok is for.

I would love for the collection to take center stage more. For example using the new klistview.
</personal opinion>
[ Reply To This | View ]
Features I'd love
by Jesvin on Monday 18/Jun/2007, @00:07
Hi

Just some features I would love to see integrated:

1 A lot of my mp3 files are boosted: ie on the viz the lower freqs go over the roof but other freqs barely get up the floor. This is a problem for those who use lo-end speakers. Img as example:
http://img2.freeimagehosting.net/image.php?7676096e3a.png
I would love a default feature to identify the songs and correct the gain.


2 An equilizer that sets itself to the genre of the song WITH ability to set presets to genres ( such as setting RnB->full bass+treble and pop->party.

3 The append to playlist should position to play the song Immediately After the current item.

4 a components list whether features (musicbrainz-mp3, songalizer, ipodlib) are installed.

5 An export feature for amarok information like rating and such. Right now i always cross my fingers before pasting back .amarok during a new install

6 Ability to rate /problability-favor(in random mode) /set INITIAL score by looking up the songs in last.fm. Useful for those who have discographies of unfamiliar artists (like me :-) ).

7 Cached album art/ lyrics should be copied to their folder/ file by default.

8 A kicker applet with ability to set ratings, scroll, album-art and vizulizations. Something on the lines of kirocker:
http://www.kde-apps.org/content/show.php/Kirocker+Music+Display?content=52869
Hey windows media player has one already :-)

9 Fade in/out on pause. allow this to be set fade time separately from start/stop fade. Also There is the annoyace that plays the fade out of the prevois song even though I JUST Started.

10 Themable mouseover tooltips. Yellow is a bore. And dont get it to display ALL the tags on the window. And it has a top-heavy look not acceptable for somthing that jumps out of a panel ;-)

11. "score-84% star-4 stars". Can we have graphical representation for the same in OSD and tooltip?

12 Sync info between 2 amaroks between 2 computers or even 2 OSes on the same computer from an online source and ability to check if other computers have acknowledged the the change. (AAAAAAHHHH-MUST-STOP-IMAGINING-UP-A-KDELIVE!-WEBSITE-phew!!!).

13 Since last.fm requires 15 songs from differnt artistes it would be nice for amarok to set the playlists itself. Im not sure if this is violates last.fm TOS

So this is my lucky 13 ;-) im not sure if some of them are being implemanted yet but i felt i have to post them. Thanks
[ Reply To This | View ]
dynamic collection?
by rednow on Monday 18/Jun/2007, @22:26
I don't understand point about dynamic collection. About 70% of my collection (as defined in settings > collection) is on auto mounted NFS drives all over my network. If starting amarok and even one of those nodes is down, amarok takes half an hour to load, and any action (or attempt of action) after painfull startup freezes amarok or even crashes it.

BTW there are very similar simptoms if my machine, that holds the actual SQL collection data, is down. Can't there be some kind of exception, let it stop trying after a N seconds/minutes (in both cases), warn the user and simply continue to run, and run *stable*.


This is my first writing here, I just want to say thank you. I've been using this great player from the start, and with all it's quirks and gotchas it's stil by far the best music player around no matter of what OS or platform we're talking about.
[ Reply To This | View ]
The Fine Print: The previous comments are owned by whomever posted them.
( Reply )

  "Karate is the ideal counterpart to programming and really great to get your head cleared." -- Michael Brade
KDE®, "K Desktop Environment", "KDE Dot News", "got the dot?" and the KDE Logo® are trademarks or registered trademarks of KDE e.V. in the European Union, the United States and other countries. All other trademarks and copyrights on this page are owned by their respective owners. Comments are owned by the poster. The rest: Copyright © 2000-2008 KDE e.V. for The KDE Project. For further information or comments on this site, please contact the Webmaster.
[ home | post article | flat forty | subscribe | search | rdf ]