Last Week Activity in Elisa

Elisa is a music player designed to be simple and nice to use.

I have started again to work on Windows build of the application and a recipe to build Elisa is now integrated in the craft-blueprints-kde repository. It is already quite usable thanks to the portability offered by Qt and KF5 Frameworks and the quality of Craft meta build system.

2017-10-13 14_43_30-Elisa
Snapshot of Elisa on Windows 7

Apart from that, I have integrated the following things:

  • Fix a bug blocking the play when under some conditions asking to enqueue some music and playing immediately would not work ;
  • Fix the display of tracks count in the playlist ;
  • Improve the handling of Elisa application icon such that it is bundled in the executable ;
  • Continue to improve focus handling especially with touch screens ;
  • Add mouse hover effect in the list of view modes (all albums, all artists …).

I am currently working on improvements of error handling when playing music. I also plan to explore using Phonon to have a possibly easier out of the box experience for flatpak and Windows when using the vlc backend. I am getting frustrated by getting missing codec errors from QtMultimedia.

Edit: I added a screenshot of Elisa on Windows 7 as requested.

Advertisements

Last Week Activity in Elisa

Elisa is a music player designed to be simple and nice to use.

Last week, I have worked on focus handling and keyboard navigation. It is now possible to only use the keyboard to do everything possible with a mouse at the exception of filtering by ratings.

A very nice side effect of those modifications is that it is also quite easy to use with a touchscreen like the ones commonly found on laptops.

There are more work to be done in this area but the focus of my work will move to other area in need of love. This is why I have started again fixing bugs already known and described in the phabricator project workboard. I have fixed two bugs:

  • Removal of last track of play list when playing it would block the playlist ;
  • Sometime at start when asking to enqueue and immediately play some tracks, the player would stay paused.

Next week, I will continue to focus my work on finishing what is already started. I do not plan yet to start adding new features.

Last Week Development in Elisa

I have focused on keyboard navigation and correct handling of focus. Some preliminary work is already integrated with more to come. I hope to soon be able to use Elisa only with the keyboard and am starting to enjoy the progress so far. This is quite different from the last two years where only mouse and touch screen were usable to interact with Elisa.

If you think this is an important or useful feature in Elisa, please consider donating to the Randa Meeting fundraising campaign (https://www.kde.org/fundraisers/randameetings2017/). Without it, probably nothing would have happen in Elisa in the keyboard usage area.

The next step will be to give a look to Orca screen reader. I really feel inspired by the work that has been done during last Randa meeting.

Another important thing (at least for me) would be a pleasant usage with the touch screen you usually found on laptops.

Tomaz Canabrava did analyze a runtime error due to using a Qml property not existing in the required version but existing in the version used at runtime (or not). Due to that, Elisa now requires Qt5.9. Thanks a lot.

Burkhard Lück started to fix a few issues with the Elisa documentation.

Last week development in Elisa

This week has been focused on finishing the development of persistent notifications at the top of the music views. They are intended to provide information about what happen with actions the user can take to improve things.

The following items have been pushed:

  • Clean up of dependencies. Now all frameworks come with a description. Some have been downgraded to optional or recommended. Some have been upgraded to recommended ;
  • A new version of persistent notifications.

The new persistent notifications

The player can be in four states:

  • No notifications are active
    Screenshot_20170920_224107
    No notifications

     

  • One notification is activeScreenshot_20170920_224429One notification

     

  • More than one notifications are active. Only one is shown such that vertical space is preserved

    Screenshot_20170920_224700.png
    Multiple notifications with the first visible
  • The notifications area is expanded and several notifications are visible
    Screenshot_20170920_224830.png
    Show multiple notifications

     

If the user choose to act, the buttons are temporarily disabled to provide instant feedback and the notification disappear when the root cause is fixed (like in the example, if music tracks are discovered or Baloo configuration is modified or Baloo music indexer is disabled in Elisa.).

I have tried to provide smooth transitions between each of those states. Some may still be missing. Please do not hesitate to provide feedback on this feature.

I plan to add more notifications of this kind when the software wants to provide feedback to the user and asks him to choose what he prefers.

Next week, I should continue to improve integration with Baloo. I would also like to improve (in fact allow) the keyboard interaction.

Last week development in Elisa

I have decided to try to publish a short or not too short blog post each week some development happen in Elisa Git repository. I am inspired amongst others by the current posts about development of Kube.

I have updated the wiki page bout Elisa to include howto build instructions Elisa. Please have a look and improve them if you can.

The following items have been pushed:

  • A fix for memory leak when modifying the paths to be indexed by the Elisa files indexer ;
  • Do not display the disc number in play list when the track is from an album with a single disc.

I am still working on the notifications and a small progress has been made for the integration of visualizations when playing music.

Elisa, Accessibility and other News

I should be communicating more often about development related to the Elisa music player. Recently Safa Alfulaij added support for right-to-left interface. This is a very good excuse to talk about what happened since my previous post.

Accessibility Improvements

As I said, thanks to Safa Alfulaij Elisa has mostly good support for RTL interface. From my testing as a French native speaker I did notice a problem with icons of ToolButton components that have no way to indicate that they should be mirrored. Apart from that, it should be usable.

Screenshot_20170906_220229
Reversed Album View

This contribution is really important to have Elisa be more accessible to more people. This topic is also the main subject of the next KDE sprint in Randa (Randa Meeting). Please have a look to the contribute page to help fund KDE developer sprints (Make KDE more accessible).

Music Import

After having gotten quite a few feedback about the lack of user interactions during music import, I have started to work to improve this area.

I added two things:

  • A passive area showing the count of imported music track files (before duplicates are ignored) ;
  • An offer to modify configuration when Baloo indexing is disabled or the music is not found in the default music path. This also adds a KCM dedicated to configure the paths where your music collection is located.
Screenshot_20170906_225104
Improvements in user notifications

Platform Support Improvements

I have been improving support for flatpak as a way to allow a faster way to test it and to get feedback for new developments. I also think that this in no way going to replace packaging by Linux distributions. At least for me, there is a lot of comfort to be able to “apt-get install” almost everything I need.

I also have been working on improved Windows support. This is mainly driven by my need to have a good music player usable at my work place. By the way, people working on KDE for Windows are both really helpful and they do a very good job.

Future work

I need to finish my work to have robust support for notifications allowing the user to have a better and more natural interaction with the player especially during music import.

I also need to integrate in the main branch a very nice work by Martin T. H. Sandsmark that adds support for visualizations during play of music. I just needed to learn how to write KCM (especially with an qml UI). I also want to allow the feature to be easily discoverable without bothering people not using it.

 

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.