MAR
15
2018

"Babe" beta

Here's "Babe" beta, but before let me talk to you about what's going on with "Babe" right now.

**********
if you're a student like me and want to start learning new things and work on a exciting open source project the following are some ways you could get involve.

If you feel like contributing and getting involve there are a lot of things you could start with:

BabeIt Platform:
UI design: designing the interface, icons, illustrations, assets , the look and brand of it...
UX design: planning the features, how things will work, helping design the features interactions etc...
Data analysis: working with Python on NLP of music information, web crawling by getting information and storing it. python, javascript, nodejs, mongodb. Also working on signal analysis on sound waves that would involve the Babe application and the BabeIt platform

Babe:
UI design
UX design
Creating plugins in form of QML, JavaScript and JSON to extend Babe utilities and features
Developing on the background with modern C++ and the KDE frameworks to have a great performance and tight system integration
Developing on the front with QML, JavaScript and making use of Kirigami
Developing Network features like audio streaming on local networks
Helping to better integrate Babe into Android by making use Java and the Android API
Testing Babe on Plasma Mobile and other platform to make the app cross-platform: on Windows, IOS, MAC OS X... etc

Pulpo:
Integrating more services to allow a much more wide network of information: making use of APIs from music information services and others like Twitter, FaceBook, Instagram, MusixMatch, deezer... etc and web crawling to find contextual information (making use of genetic algorithms and any other AI techniques)

Contact info:
We are on telegram as Babe
and my email is chiguitar@unal.edu.co

**********

Babe was previously released as a qwidgets application, and since a couple months back I've been working on porting the app to make use of QQC2 and also make use of the Kirigami framework, the porting is done and right now I'm adding new features and polishing things at the same time, working between the BabeIt platfrom and the Pulpo MIR system

Before I continue let me let you know that Babe is looking for a new name. There are a few suggestions but nothing definitive as of now, so you're welcome to suggest a new name, but before you jump in with ideas I'll tell you a little about what Babe is aiming to become.


The idea behind Babe is to become something more than just you regular music player, yes, it is a music player as a base, but the idea is to have a place for the music, that meaning: a place to share music with friends and other users, a place to get information about music and to manage your collection and let you discover new music, to stream between devices and so much more than just a regular music player. Babe wants to be a music platform and how is it doing it...?

BabeIt: (also looking for a new name)
Is a web platform in form of an API that will allow to share music information between users, and later on perform data analysis tasks on the metadata and the music lyrics by making use of NLP(natural language processing) techniques and web crawling to find relevant semantic and contextual information about the music. The platform is now up and running thanks to the KDE community at:
https://babeit.kde.org/

Babe will be the first app to make use of the API and hopefully some other music players or apps will find it useful and use it too.

Think of BabeIt as a mix of LastFm/Genius/SoundCloud, and who knows maybe a free open-source Spotify alternative. I will write another blog post about BabeIt later on to tell you what it would offer.

Pulpo:
is the engine that finds metadata and other music information on the internet for your music collection, in order to generate semantic suggestions. It collects music lyrics, artwork, tags, stats, metadata, wikis etc...

Mobile ready:
Babe right now works on desktops and on Android and will work on your Plama Mobile device , fitting-in flawlessly thanks to the work of the Kirigami team.

There's an initial integration between devices named Linking. If you have Babe on your Android device and also installed on you GNU Linux distro you can browse your desktop collection from your phone and (still not ready) stream the tracks of you desire, and also vice-versa. Also if you have another friend around both will be able to listen to the same track from whoever collection is serving as the server. Hopefully that won't be consider illegal as it is working on a local network, let me know if that would be a problem on the app side...


Services:
Babe plans to integrate with different services, and many other services will be able to be created by the community in form of plugins written in QML/JavaScript and JSON.
As an early example there's a YouTube service that allows you to watch the video of the current playing track or whatever other video and even make searches inside the app... and if you have the youtube-dl tool installed in your system Babe will let you collect the track, find the right metadata and artwork for it and save it on your local music collection.
Also you can stream the audio from YouTube, expanding your music collection... :)


There a lot of little things and features you will be discovering by yourself when you try the app...

Things working:
- Regular music playback from local collection
- Adding and removing sources ( cannot remove the default sources like the ~/Music path...)
- Artwork, metadata, tags, wikis, lyrics fetching (on Android there's still a bug when collecting music lyrics that causes the app to crash)
- Creation and removal of playlists, syncing playlist with main-playlist, removing and adding tracks to playlists...
- YouTube searches and videos viewing, collecting tracks if youtube-dl is installed.
- Linking devices via IP address, searching tracks on the client from the server collection.
- Queueing tracks, remove missing tracks option, shuffle playback...
- Local collection searching making use of keywords, like : "artist:", "album:", "tag:", "similar:", "lyrics:", "playlist:" etc...
- Sharing tracks, on desktops via KDE Connect and on Android just the regular sharing options to share to whatever app
- Rating system and colouring tagging.

Things not working yet:
- Streaming tracks from device to device via Linking view
- youtube-dl integration under Android
- Association of tags/keywords with colour tags and playlists
- mpris controls
- android native notifications
- android background service to allow playback on the background
- folders view as a plugin example
- browsing of default playlists of linked device via Linking view
- babeit API integration
- some default playlists don't work yet
- remove dialog

Things missing:
- babeit integration
- soundcloud, deezer services integration
- youtube accounts integration
- equalizer
- suggestions view
- D.J mode
- albums dragging
- edit dialog for editing track metadata information

and probably I'm missing a lot more things i should have mentioned.

In a few days the app will be available on the Neon unstable repos, there will be an AppImage and you will find Babe as a default app on NitruxOS.

Until then here's the beta branch if you feel like compiling from source:
https://phabricator.kde.org/source/babe-qml/history/0.1.0-beta/

and to finish a big shout-out to NitruxOS and the KDE community for supporting this project. <3