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.

Advertisements

38 Comments Add yours

  1. Fabs says:

    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. mgallien says:

      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

  2. matheus4551 says:

    MTP sync planned?

    Like

    1. mgallien says:

      Not really. I believe desktop environments have good support for it nowadays.

      Like

  3. Download link? Target KDE Applications release?
    How can we try this out, now?

    This is all very exciting and I applaud the work done here.

    Like

    1. mgallien says:

      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

      1. “from git” – I was kinda looking for links… found them though.
        https://cgit.kde.org/elisa.git/
        https://github.com/KDE/elisa

        Like

  4. kmi says:

    Wondering why a simple “All tracks” view got out of fashion.

    Like

    1. mgallien says:

      I am planning to implement one. Its priority relative to the work I already did was lower.

      Liked by 1 person

  5. Nice! This is exactly what KDE needs. A directory/folder view would be most welcome!

    Like

  6. Thanks for working on that. I’m really in favor to keep it simple but I have one question. Will it support simple music streams (online radio), I do not need any other fancy music stuff :-).

    Like

    1. mgallien says:

      Yes support for that is on the roadmap. Probably not in the first release.

      Like

  7. tumaix says:

    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. mgallien says:

      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. Try Sayonara. Using it now, and has a PPA for easy Buntu-based distro installation and updates. I’ve also used Tomahawk but it lacks a genre filter and the development looks basically dead.

        Like

      2. Charles is right. Listen to him. During the weekend a new version of sayonara will come out. And it will be great!

        Like

      3. mgallien says:

        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

    2. mgallien says:

      Your help will always be welcome.
      Did you eventually compile it ?

      Like

  8. dan says:

    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

  9. Thomas says:

    What about DLNA support so far? Just for accessing media servers or can we finally also control DLNA Media renderer?

    Like

    1. mgallien says:

      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

  10. htietze says:

    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. mgallien says:

      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

  11. lkjlkjlkj says:

    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

  12. Andrew Lake says:

    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

  13. Guo Yunhe says:

    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.

    Like

  14. Linuxhase says:

    When i first open elisa i see this Screen: http://i68.tinypic.com/2d6si81.png and it says that there is no music in my list yet and i can use the left menue, but i can nit see a menu to add some title into the list. This is not intuitive for me 😦

    Like

    1. mgallien says:

      If you understood what I mean, feel free to propose a better wordings as a basic help message for newcomers.

      Like

  15. hook says:

    Excuse my ignorance, but now that it seems there are (again) two actively developed KDE music players – how do Elisa and Babe¹ differ?

    Very happy to Elisa (and Babe) develop so nicely, BTW! 😀

    1 https://babe.kde.org/

    Like

    1. mgallien says:

      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. hook says:

        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

  16. Congrats! It’s a great work, well done, tanks!!

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s