Interview With Adam Oslen - Exaile Player Developer

Few weeks ago I reviewed Exaile and have been so impressed with it that it has replaced Amarok as the default music player on my Ubuntu. You can read the review here. So I hunted around a bit to talk to its lead developer - Adam Olsen about Exaile. He promised me that there are some great things to come in future versions. Read on to find out more:


So Adam, tell us something about Exaile.
Exaile is a music manager and player targetted for the GTK+ platform. It's written in Python and uses the Gstreamer media library for playback.

Why and when did you set out to write Exaile, were you dissatisfied with other media players?
I started writing Exaile for a few different reasons. Yes, even though I was using and liked Amarok at the time, and I wasn't aware of any complete alternative. At that time, I was also wanting to learn Python, and I believe that one of the better ways to learn a programming language is to dive right in with a project. Starting my own music player project target to the platform I was using was a natural progression of things, so to speak.I started writing Exaile in March, 2006. It is my second Python project, my first being a simple IRC bot (I think it's pretty much law that everyone's first Python project has to be a bot). I got quite a bit of suggestions from my music enthusiast friends, some during discussions in LUG like meetings at the library.

Who are your other team members?
There are a lot of contributors to Exaile, but the four people with complete access are :
- Adam Olsen (me) - I live in Salt Lake City, Utah, and work full time as a programmer and systems administrator
- Aren Olson - Programmer
- Johannes Sasonkgo - From Brisbane, Australia, also a programmer
- Mathias Brodala - Berlin, Germany, translations manager

Will Exaile forever remain an Amarok wannabe or will you at some point decide that Exaile will develop on its own? Amarok 2.0 is soon coming up, will you change Exaile to mimic it?
I'm not sure, I haven't used Amarok 2.0. If it has some cool features that we're lacking, we might implement them, but that's probably as far as it will go. I stopped using Amarok soon after Exaile played it's first track. Almost everything that mimics Amarok is from what I remember when I was using it back in 2006. The rest of Exaile is just how I think it should work, and implementations of feedback we get from users. Exaile has been it's own project for a long time, and it'll stay that way.

Why isn't there iPod support out of the box? How about video playback for music videos and better visualizations rather than those from Totem?
Earlier versions of Exaile had built in iPod support. Moving it to a plugin made it easier to work on as a separate entity. In the future, it'll still be a plugin, but it'll probably be one that's enabled by default, or at the very least, your iPod will be detected automatically.

Video Playback: This actually wouldn't be that hard to do, however, there have been conflicting discussions about whether or not it should be done. Most people want Exaile to just play music. Time will tell, though. If we get enough requests for it, we'll put it in.

Visualizations: I'd love to get ProjectM (http://projectm.sf.net) working with Exaile, but in order to do that we're going to have to use a different playback engine than Gstreamer, or wait until the libvisual portion of Gstreamer gets OpenGL support. Either way, it may be a while.

Any news on Exaile 0.3?
Right now we're focusing on Exaile 0.3, which is almost a complete rewrite. This will be the second rewrite Exaile has gone through. Some features that we'd like to add in 0.3 are auto detection of devices via HAL, and better and more complete plugin interface. The current artwork is a hodge podge of different artwork I've recieved from different artists. I'd actually like to have all new artwork for 0.3 (I actually really like the current stuff, but it's always good to keep things fresh), but it's hard to find artists that are willing to contribute (yeah, if you're an opensource artist and you're reading this, please contact me!).

Why did you choose Python for developing Exaile?
The very first versions of Exaile were written to use the wxPython toolkit. There were a few show stopping buts in the wxGTK+ port, but the biggest reason that wxPython code is extremely ugly. The bugs only added onto the pile of things I disliked about
wx, so I eventually just rewrote the whole thing using pygtk and glade. Python is my favorite.

What have been users reactions? Any most requested feature?
User reactions have been great. Exaile has gone way beyond my original intentions. Feedback and contributions have been amazing. I consistently get emails that say things like "good job" and "great work". There have also been a few good reviews from leaders in the community.
I'd say the most requested feature right now is album compilation support. It's something I'd like to add, something that Amarok has and we don't, but I haven't really found a way to do it cleanly. Perhaps 0.3 will help us out in that area.

Did you have any other coding experience before Exaile?
I've been a professional web programmer since 1998. Exaile is my third desktop application, the first being JBother - a Jabber client written in Java, which I started in 2003, and the second is GTKJournal - a journal application written in C++ (I believe this can only be found in FreeBSD now, but I still have the source around). Since I started programming in 1998, I've learned about 7 programming languages, and after doing so much work on Exaile, I can honestly say that Python is my favorite.

Which distros have you use?
I've been using Ubuntu since Warty. I also use Debian at work. I started with Redhat 5.2 when I was in highschool. I actually gave up on it pretty quickly. I had no internet connection, and no real good way to learn how to use it. Later on, I used SuSE 7.2 for a while, on my girlfriend's computer.

Is it easier writing a software for Linux than for Windows?
I can't honestly say. I haven't written much software for Windows specifically. I can say, however, that I believe it's much easier to write software *on* Linux, but that may just be my bias. I've been using Linux exclusively long enough now that I don't really know Windows very well anymore.

Which are some of your most favorite softwares for Linux?
On a daily basis, I use Gnome, Firefox 3, vim,Exaile, irssi, ipython, bitlbee.

Any idea when Exaile 1.0 will come out?
No idea. I'll admit, the current version numbering scheme is somewhat
arbitrary.


Which are some other media player for Linux you use apart from Amarok or Exaile?
I don't. I'll fire up Banshee, Rhythmbox, Quodlibet, or Listen occasionaly,
but usually just to answer questions like "I wonder how they've done this" or
to get ideas. Mostly I just use Exaile, though.

As a developer, what according to you are the advantages of being open-source?
There are a lot of advantages. Ease of advertisement. Exaile first got noticed just because I posted about it on the Ubuntu forums (that post can be found here. Ease of getting tools and libraries - because it's an open source licensed project, I can use open source licensed libraries. Because those libraries are open source, it's easy to find other projects that use them, and because those projects are open source, it's easy to read the source for examples. The community nature of the free software world even allows me to directly contact the developers of the tools I use, to ask questions, or to even submit patches. Other obvious advantages are free labor (contributions of source, artwork, and etc from users), free distribution (once a project is mature, it makes it into the various distros and is usually installed directly from their repositories), free hosting (github, sourceforge, launchpad all give away free hosting for opensource projects)... I could go on and on.

What are your views on Open-source?
I think it's great. For me, programming for my job and working on Exaile are two completely different things. One I get paid for, and one I do because I enjoy doing it. Does the coder suffer? Not at all. In fact, if anything, my job benefits from the knowledge and experience I get from working on outside projects. Without the opensource community, project like Exaile couldn't flourish, there would be no way to advertise them, no user feedback, insufficient knowledge to start them in the first place.