Melo is an embedded application to play music content from anywhere on any speaker.
Melo is intended to create a music hub on any device running Linux, anywhere in a house or a company. It brings capabilities to play any audio content from anywhere on speakers connected directly to the device running Melo, or to remote speakers.
Melo is a plugin based software which offers possibility to any developer to create and add its personal plugin and then support a new music content source.
First of all, you have to clone the git repository with the following command:
git clone https://github.com/dillya/melo.git
Melo is based on Meson for the build purpose and GLib low-level library on which Gstreamer and many useful libraries are based. It brings the object oriented coding style thanks to GObject.
For HTTP server / client side, Melo is based on libsoup which brings most of HTTP features out of the box.
For messaging between modules, main program and the user interface, the Google protocol buffers have been chosen for their scalability and the versioning of protocol removal. The C compiler version from protobuf-c project has been chosen.
The embedded media library database is using sqlite3 to store and fetch related data such as artist, album, genre.
An optional network manager for IP addresses and WiFi configuration can be enabled with Network Manager library (libnm).
You may need to install some development libraries and build tools before starting with Melo build.
On Debian / Ubuntu Linux system, you can install required dependencies with the following command:
apt install meson libglib2.0-dev libgstreamer-plugins-base1.0-dev \
libsoup2.4-dev libjson-glib-dev libavahi-gobject-dev libsqlite3-dev \
libprotobuf-c-dev protobuf-c-compiler
To enable network support, the following command should be additionally used:
apt install libnm-dev
To enable the UPnP support, the following command should be additionally used:
apt install libgupnp-1.0-dev rygel-2.6-dev
Then, you are ready to build Melo:
cd melo
meson builddir
ninja -C builddir
To install Melo (by default in /usr/local), you can finally use the following command:
sudo ninja -C builddir install
Melo uses clang-format to check and fix coding style of source code. It prevents mix of different coding style and improves readability of the code.
Melo is licensed under the LGPLv2.1 license. Please read LICENSE file or visit https://www.gnu.org/licenses/old-licenses/lgpl-2.1.en.html for further details.