Skip to main content

A multi user music server with focus on participation

Project description

Raveberry

Raveberry is a multi user music server that allows democratic selection of songs.

It provides an intuitive interface for requesting songs and changing their order according to the rating that users have made.

Installation

Raveberry is meant to be installed on a Raspberry Pi. Then it works as a portable music server which you can take with you wherever you are. I used a Raspberry Pi 3B for development and testing of the software, but Raveberry should work on any Debian based Linux.

Raveberry is available on PyPi:

sudo apt-get install -y python3-pip ffmpeg atomicparsley mpd redis-server
pip3 install raveberry
raveberry run

Depending on your distribution, you may need to write ~/.local/bin/raveberry run or add that to your PATH. Now you can install raveberry system wide, making it fully featured:

raveberry system-install

Alternatively, you can also install raveberry from this git:

git clone
cd raveberry
nano config/raveberry.ini
sudo bin/raveberry system-install

This assumes you have a working system with root access. If you need help setting up your Raspberry Pi, consider visiting this guide.

You can customize your installation with the config file at config/raveberry.ini. (Or at the location the installer tells you)

Although everything should work fine, I recommend taking a backup of your system. On a Raspberry Pi this is easily done by taking a copy of its SD card.

During installation you will be asked to provide a password for the admin user. This user is allowed to modify the database and change the system configuration, so choose a sensible password.

After the installation you should login to the admin page (URL /admin) and change the passwords of the other users. For more information about privileges take a look at docs/privileges.md.

The installation will take at most 30 minutes, most of which is spent on installing/updating packages. You might need to reboot for all changes to take effect.

For an introduction to basic functionality refer to docs/functionality.md. Or just visit http://raveberry/ and find out for yourself ; )

Features

  • Live Updates: Web page content is updated instantly using websockets.

  • Hotspot: Provides a WiFi network for access in areas without proper infrastructure. Can double as a repeater.

  • Remote URL: Specify a domain to make your Raveberry accessible from the world wide web.

  • Privilege Levels: Grant users additional permissions like playback control.

  • Youtube as a Database: With youtube-dl as a media provider, all of Youtube is available to play.

  • Graphical Admin Interface: Raveberry features a convenient way of modifying the behavior of the server, like hotspot configuration or download limitation.

  • Bluetooth support Use your bluetooth speakers with Raveberry, removing the need of an aux cable.

  • Audio normalization: Raveberry uses aacgain to analyze the volume of songs and prevent sharp volume transitions.

  • Screen visualization: With the tool cava, the current music is split into its frequencies and visualized on a connected screen. (See screenshot below)

  • Audio visualization: Using the same tool, Raveberry can also make connected LEDs flash to the rhythm of the music.

Optional Hardware Additions

Some of Raveberry's features rely on additional hardware. If you want to use all of them, consider upgrading your Raspberry Pi with one of these one of items:

  • WiFi Dongle: To provide a WiFi network for users to connect, you have to set up a second network interface. If disabled, your users have to be in the same network as the Raveberry, or you have to configure an external URL.

  • LEDs: For audio visualization, Raveberry uses the i2c and spi protocols to control connected LEDs. They will automatically be used if they are detected at server startup. For more information see docs/leds.md.

  • USB Sound Card: The quality of the internal Raspberry Pi sound card varies from model to model. For a better music experience I recommend using a small USB sound card. If you use one, edit the config file accordingly.

  • USB Stick: If you don't want to use the Raspberry Pi's internal filesystem, you can insert an external medium like a USB stick. Its label can be specified in the config file and is then used to cache the songs.

Uninstall

During installation a backup folder is created. It contains all files that were overwritten outside of the raveberry/ folder. To undo installation, move these files back to their respective locations using the following command. Take care of changes you made in the meantime!

sudo cp -r backup_{timestamp}/* / 

To remove files created during the setup run

sudo scripts/uninstall.sh

More Information

Feel free to visit docs/ for more information about usage, resources etc.

Don't hesitate to mail me for feedback or open an issue if you experience any problems.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

raveberry-0.2.2.tar.gz (6.2 MB view details)

Uploaded Source

Built Distribution

raveberry-0.2.2-py3-none-any.whl (7.0 MB view details)

Uploaded Python 3

File details

Details for the file raveberry-0.2.2.tar.gz.

File metadata

  • Download URL: raveberry-0.2.2.tar.gz
  • Upload date:
  • Size: 6.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.9

File hashes

Hashes for raveberry-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d1756ad97e131e2bf2f3d73be82dee6508eacb3e815abe8af3b40cf0b8da0d04
MD5 61710a26af647b1200d952a299adcb56
BLAKE2b-256 18366b0d7cc584739f82e227a74a90bb317f9d2420fbd48238ff01af9e0f6d98

See more details on using hashes here.

File details

Details for the file raveberry-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: raveberry-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 7.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/45.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.6.9

File hashes

Hashes for raveberry-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1d9082f66b7f50d4d25ccb1d6e04b7c495432833003231bca0219cc7b70df6b0
MD5 9469863644a40e574e6afb99864914a0
BLAKE2b-256 a6b8d29f597fac3e9b0912cf0a743a7f613fbd43ecb1a67f32e146d6a6b59e32

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page