APR
14
2017

Introducing Babe - History

https://babe.kde.org/

This is my very first post for KDE blogs and it is also my very first application. So when I sit down to think about what to write about I thought I would like to tell you all about how and why I wanted to start coding and then why I decided to create a (yet another (i know)) music player, specially made for KDE/Plasma.

So here comes the story:

I've been using Linux/GNU for almost ten years now, that was when I was still in high school, I always thought Linux based distros looked so cool and kind of mysterious, so then I decided to wipe off my Windows XP installation and move to Ubuntu, since then I have not looked back and I'm glad because not only i found a great OS but also a great group of communities behind it. I first got involved with the community by making GTK/CSS themes and small icon sets.

Let's say I always found the visual part the most interesting, so I tried all the available desktop environments, visual appealing applications and themes. Among those apps, I always liked to check out the default music players of each distro and their set of multimedia applications.
I can say I've pretty much tested almost all of the Linux music players that have appeared in the wild. Some looked cool, others boring, and they worked... some others were buggy as hell... and many others were a very nice and complete tool to manage your local music collection but didn't look that great or well integrated.

Anyway, I finished high school and then went to University to the Arts program. Two years ago I also started the Computer Science bachelor program and then began to start developing small console apps. By then I was using elementary OS, because it looked nice and polish, and then was went I first wanted to create my very own music player to satisfied my own needs and also to learn a new graphic toolkit (GTK3)


I wanted to have a simple tiny music player that resembled a playlist where I could keep my favorite (Babes) music at the moment, I didn't care much about managing the whole music collection, as I didn't have much local music files anyway.

I did what I wanted and then I stopped developing it. By the time I tried Plasma once again and I liked it very much, the new Breeze theme looked awesome and the tools were much more advanced than the ones from elementaryOS and then I decided to stay. :)

I kept on using my small and kind of broken music player, but then I found myself using a lot the youtube-dl to get my music, given that most of the music I listen to is music that I've found/discovered while watching another (YouTube) music videos. That's when I decided to once again go back to Babe and make it fetch my favorite YouTube music videos. But by then I was using KDE/Plasma instead of a GTK based D.E. So i started learning about the Qt framework because I wanted Babe to look good and well integrated in the Plasma desktop.


My plans for Babe-Qt were simple: fetch my favorite music and then play it in a tiny interface. But, oh well, my music collection started to grow and then I decided i could make use of a collection manager integrated when needed, to be able to create another playlists besides from my favorites (Babes)... and then I implemented a full collection view, artist, albums, playlists and info view.

The "info" view then became really important: I wanted to be able to get as much information of a track besides the basic metadata information, I wanted to know about the lyrics, the artwork, the artist and the album. And even eventually I wanted to be able to find similar songs... and that is what Babe is now trying to aim at, but that's something I will tell you in a next blog post... I want to introduce a contextual music collection manager.

That's it for now, but I will be writing to you all back soon, and letting you know about:
-Current state of Babe
-Planned features
-The future
-Conceptual ideas

;)

Comments

Is there a chance that Babe will use baloo in future releases to share metadata and maybe even taggings/ratings with the rest of plasma as well as to get music to the collection?


By Fabs at Sat, 04/15/2017 - 12:16

yes. the future of Babe is to have a very strong KDE/Plasma integration so I will be looking into all the posible areas where Babe can become one with Plasma :)


By camiloh at Sat, 04/15/2017 - 22:04

I'm not a developer. Just a Kde enthusiast. My music collection is large (80k+ tracks). I've used Amarok for years with no complaints. Lately, bits and pieces have stopped working. The most noticeable is no update to use https to connect to Wikipedia. And it is ungodly slow with a large collection.

Just so you know, I wasn't kidding about alpha/beta testing.


By Tim at Sat, 04/15/2017 - 17:26

yeah, would be great to have someone to test it with a big local collection. I'm still on the process of correctly designing the database model, but some tests to what i have so far would be amazing. So this is the repo: https://phabricator.kde.org/source/babe/

clone it and you can use qmake or cmake. depending on which distro you are using you might have to install the dependencies:

taglib - knotification lib - ki18n lib - qt 5.8 libs:

Buildtime:

qt5-qmake or ( cmake extra-cmake-modules python )
qtbase5-dev
qtmultimedia5-dev
libkf5i18n-dev
libkf5notifications-dev
libtag1-dev
Runtime:

libtag1v5
Runtime Qt:

libqt5core5a
libqt5dbus5
libqt5gui5
libqt5multimedia5
libqt5network5
libqt5sql5
libqt5widgets5
libqt5xml5
Runtime KF5:

libkf5notifications5
libkf5i18n5
Install:

qmake or cmake . -DCMAKE_BUILD_TYPE=Release
make
cmake supports make DESTDIR="" install


By camiloh at Sat, 04/15/2017 - 22:03

Sorry for taking so long to get back to you. I'll try following your instructions maybe later today or tomorrow. I want to be sure I have plenty time, in case something doesn't go as planned.

FWIW, have you thought about releasing a snap package?

tim


By Tim at Sun, 04/23/2017 - 16:42

I followed your directions. When I get to this:

qmake

I get this error message:

Project MESSAGE: Warning: unknown QT: KConfigCore
Project MESSAGE: Warning: unknown QT: KNotifications
Project MESSAGE: Warning: unknown QT: KI18n

With cmake . -DCMAKE_BUILD_TYPE=Release

I get this message:

CMake Error at CMakeLists.txt:5 (find_package):
Could not find a package configuration file provided by "ECM" (requested
version 5.24.0) with any of the following names:

ECMConfig.cmake
ecm-config.cmake

Add the installation prefix of "ECM" to CMAKE_PREFIX_PATH or set "ECM_DIR"
to a directory containing one of the above files. If "ECM" provides a
separate development package or SDK, be sure it has been installed.

Help would be appreciated. I don't compile from source very often, but I can follow directions.

tim


By Timothy Hamilton at Sun, 05/07/2017 - 14:39

Hi there. I have a large music collection, too, about 89k+ songs.
I will make an Arch linux package in the coming weeks so installing it will be a little easier.

My current music manager is quite crash-happy, and I am looking for a replacement.
Thanks for the build instructions and dependency list
-Evert-


By Evert Vorster at Sat, 07/08/2017 - 06:10

I wish it had Google play music support like tomahawk.


By darksurf at Sat, 04/15/2017 - 23:36

Hi,

The project looks very well !! Thanks for the work.
I actually use DeadBeef as my music player, because I care music Sound quality, and DeadBeef give me the option to output the sound via Alsa instead of Pulseaudio. (I would have preferred Amarok, but there is no option to use ALSA).

Is it possible for you to add ALSA as an output option ?

So, I really hope to make Babe the replacement of Amarok for KDE (DeadBeef, has great options and sound, but is not a good music library manager, and not so good integrated to KDE).

Thank you :)


By mathojojo at Sun, 04/16/2017 - 14:31

Late reply, but it is possible to use ALSA with Phonon (which is what Amarok uses for its output).

Save the following as something like phonon.sh in your ~/.config/plasma-workspace/env/ directory:

#!/bin/sh
export PHONON_PULSEAUDIO_DISABLE=1
#export PHONON_BACKEND=phonon_gst
#export PHONON_GST_AUDIOSINK=alsasink

Make the file executable. After logging out and back in, all applications which use Phonon (including Amarok) should play through ALSA.

(the commented lines may or may not be necessary).


By KDE User at Mon, 08/13/2018 - 14:54

Pages