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.

50 thoughts on “Introduction and Elisa Music Player

  1. I really have to say THANK YOU only for using Baloo. While it’s a great “tool”, it’s so in need of a real world application that it uses it to iron out things and pushes development effort to it.

    Other than that I’m very excited for Elisa (I dont like that name because of an Ex-girlfriend tho xD). Thanks for that work.

    and now I wish a happy

    pacaur -Sy elisa-git

    to everyone (:

    Like

    1. In the case of Baloo, I am not sure the needs of a music player are necessarily the same than other applications. Anyway, Baloo is integrated in the Plasma Desktop and this the main reason for using it as the first supported indexer.
      For sure, a tool is always better when used by more people.
      There have also been a great work done on a bridge between Baloo client APIs and Tracker ( https://cgit.kde.org/clones/baloo/cullmann/tbaloo.git/ ). I have not yet been able to test it but this is definitely planned.

      Like

    1. In its current state, I am using it as my main audio player on Plasma. I am not yet using it on Windows. There are still blocking bugs for a release.
      It is available from an AUR archive as far as I know. You can also get it from git. There are not yet binary packages for it.

      Like

  2. Thanks. We miss a good music player in Qt5, I’m currently using Clementine, but development seems to have stalled. Also, I tried to use tomahawk, but development also stalled. There wasBangarang, but development also stalled, and Amarok also stalled.
    I’m not sure what happened with all of the nice music players for the linux word, but I hope yours fills the gap.

    I’m downloading it and if I managed to, I’ll try to iron some bugs too.

    Like

    1. I know a few people invested time on bringing new life to Amarok. You could ask them.
      I am using Tomahawk on Windows and tried it on Android. Not sure what is its current status.

      Like

      1. I am happy for you that you are a sayonara user. I do not see how this is related to my blog though. Please try to stay on topic. I am not comparing different music player.

        Like

  3. Firstly, thank you for your efforts. As a dev (embeded industrial stuff) I always appreciate the thought and work that goes into these projects. Also note I’m a long term fan and user of KDE/Plasma.
    Can I throw my £.02 into the mix? For ME music player usability peaked with KDE3’s noatun, simple playlist on, player interface “off”. Just a simple playlist to drag files into. No on-line ability at all (important), no album cover dispaly or discovery, no dancing visualiser. No wasted screen space, bandwidth, or cycles….even though I lack none of these. No metadata driven database collection, which may or may not be complete/correct/consistant.
    I fully realise this is as welcome in “modern” interfaces as a lumpy fart is in a bath, but this is a post about music player design ;-).
    Does anyone know for such an animal? I’ve been looking but EVERYTHING seems to want to do and reveal too much via external services.
    😉

    Like

    1. DLNA support at this moment is broken.
      In a first time, I will bring back browsing.
      In a second time, I want to have control of external media renderer such that I can use it for that purpose.

      Like

  4. Appreciate very much the VDG-conform design. Though personally I’m not attracted to the workflow as I like to play files from a directory (Qmmp is my player). No idea how many users like me would be happy about a default KDE player “Elisa” that offers an additional minimal design without MTP/Baloo or other indexing. Great work anyway!

    Like

    1. It started almost like that but for UPnP DLNA shares.
      I may revive this code and look at the possibility to allow browsing local folders also.

      Still, I am not sure if a dedicated UI would not be better. I may experiment with the idea integrated in Elisa. I fear the users comfortable with file system hierarchies are not necessarily the same liking the current UI.

      Thanks

      Like

  5. Let’s hope it’s not another Amarok and Clementine. I am very discomforted when we create a new project when old ones are already bleeding.

    I wish you good luck.

    Like

  6. Congrats on the accomplishment! It is certainly a welcome sight. While my efforts on Bangarang necessarily came to an end, I’m grateful you had the motivation and skill to step up to the plate and deliver something for this new generation of Plasma and KDE applications. For what little it is worth, you’ve got my complete support for this project. Keep on keeping on. 🙂

    Like

  7. I also plan to make a simple music player for KDE, but focus on metadata and lyrics. It should be:

    1. Download album cover picture automatically if it is missing. And write to audio file.
    2. Download lyrics from internet, prefer those with time stamps.
    3. Complete metadata from Brainz and other online services.
    4. Reduce those music management functions and online stream supports. Just play.
    5. Can be use in a very small window.

    I hope I can make something really simple, like Dragon Player replaced Kaffine. Use it out of box. Just do what it should do.

    Liked by 1 person

    1. We have exchanged some mails with Camilo. Some of our goals are definitely not the same.
      For example, I will work on support for Windows and Android (I have an Android phone and am using Windows at work).
      As far as I have understood this is not a goal for Babe and Camilo.
      Anyway, I really hope Babe and Elisa provide good options for people to use with a Plasma desktop.

      Like

      1. It’s great to hear that you’re in touch with each other.

        I don’t see any problem of having two KDE music players, as long as they serve different use-cases and don’t cannibalise each other’s development resources. As was pointed out before, we used to have Noatun, Juk and Amarok co-exist already.

        It would be great to see a comparison of goals between the two.

        Like

    1. Hello, the Android version will mainly be the same c++ code with a dedicated user interface. Some native platform integration code will require some java code. The quantity will probably be quite small.

      Like

Leave a comment