Skip to content

dillya/melo

Repository files navigation

melo

Melo: your personal music hub

Melo is an embedded application to play music content from anywhere on any speaker.

Overview

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.

Build

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

Coding style

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.

License

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.

About

Melo: your personal music hub (Remote files, Webradio, Airplay, UPnP, DLNA, ...)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published