Introduction and Elisa Music Player

Hello Planet KDE, I am Matthieu Gallien. I am a software developer mainly working with C++ and PHP. I am passionate about free software in general and KDE in particular.

Elisa Music Player

I have been working on a music player for some time. I have decided to try to implement a design made by KDE VDG and especially Andrew Lake (Design for a Music Player). I had this idea after I saw this article from Thomas Pfeiffer (Phoronix offers some criticism of KDE software, and this is how KDE deals with it).

I would like to thank them for being a source of inspiration and the high quality of their work.

Elisa is using Baloo indexer in order to get all music indexed by it without needing any configuration by the user. This also means that support for other indexers or platforms is not yet done.

Goals

Elisa is a simple music player aiming to provide a nice experience for its users.
More precisely I am trying to reach the following goals:
  • being easy to setup (ideally, one would not setup anything before being able to use it) ;
  • being fully usable off-line (or in privacy mode) ;
  • being open to leverage on-line services but not a development priority (the experience should not be degraded when you are off-line) ;
  • being focused on satisfying users’ goals ;
  • being focused on music player (managing your music collection is not a development priority). This means that it is not a direct fulfillment for people needing that. This seems that a dedicated application would be more appropriate ;
  • being as much as possible bug free (meaning stability has higher priority than feature development) ;
  • targets Linux Plasma Workspace, other Linux desktop environments, Android and Windows ;
  • being able to leverage UPnP DLNA.

In addition, KDE VDG have done a lot of design work that I am trying to follow (KDE Visual Design Group/Music Player).

Current State

Screenshot_20170404_210323

You can browse music by albums or by artists. More navigation possibilities will be added latter (Genre, All tracks, …).

The playlist is always shown to allow feedback when inserting tracks in it. You can also display it maximized. In this case, extra information will be shown related to the currently playing track.

Screenshot_20170404_211734

It is already usable but I still need to do a first release. There is at least one problem that need to be fixed before a release. If you move tracks inside directories indexed by Baloo, they will disappear from Elisa until you restart the application.

It is using some KDE Frameworks 5 libraries (Baloo, KFileMetaData, …), Qt Quick Controls 1 and QtMultimedia. Writing a music player on top of those foundations have been a real pleasure.

Some design points are still open:

  • trying to combine an interface to be used with the mouse and with the touchscreen commonly found on laptops ;
  • how to decide what is done by single click, double click or single long click.

I welcome all kind of feedback on it. Especially any bug reports would be much appreciated.

My available time being limited, any help would be also very much appreciated.

Development is happening in KDE infrastructure and can be followed from the workboard in KDE’s Phabricator (Elisa Workboard).

I would also like to thank the KDE community and especially all those that have helped me during the development of Elisa.