Posts: 6
Joined: Wed Oct 16, 2013 12:41 pm

party jukebox

Wed May 18, 2016 5:53 pm

I've set myself a challenge to create the ultimate party jukebox system using a Pi and my USB DAC. I've had a couple of attempts so far, but nothing quite seems to hit the mark yet.

It should have a simple interface accessible wirelessly from smart phone or tablet, and allow guests to browse the music collection then add tracks to the end of a playlist. Administrator should be able to rearrange, skip or delete tracks on the list.

So far I've tried RuneAudio and Subsonic. RuneAudio was nice and responsive, but seemed very folder/album based. Subsonic looked promising once I got it to play sound through the DAC, but each user seems to have their own playlist even in Jukebox mode. Also, the interface and the Android client I tried were a bit confusing for potentially tipsy party-goers! On my original Pi model B it wasn't the most responsive either.

I don't want to reinvent the wheel and feel sure that what I'm after is out there - any suggestions! Don't mind tinkering if there is something which offers 90% of what I'm after.
  • Plays nice on original Pi B (though I might be willing to splash out on a model 3)
    Has a single playlist which can be accessed and added to by multiple clients
    Simple web interface - scroll through a horizontal list of artists, with a sidebar showing a list of tracks for the selected artist, and another pane showing the current playlist
Thanks in advance for any suggestions!

Posts: 6
Joined: Mon Feb 01, 2016 1:14 am

Re: party jukebox

Sat Oct 07, 2017 5:29 am

andyohare -- did you ever find what you're looking for? I'm looking for something similar. I want this to be available for a high school reunion. I'd like anybody to be able to pick music through a touchscreen interface or on their mobile phone (web interface). I don't want users to be able to mess with the playlist other than to add music to it, and I'd like to be able to rearrange the list (in case, say, some Van Halen fan decides to dominate it). I'm just starting research into what's available for the RPi. I'd love to know if you found something!

Posts: 518
Joined: Wed Apr 17, 2013 4:33 pm

Re: party jukebox

Sat Oct 07, 2017 7:22 am

Good morning!

May be, the answer can be again mpd ?
It runs as server-application on an RPi (also on a model 1) and allows different permissions. (For example only "add" on a special password and "control" for another.) If you already have an network, you need nothing more, many client-applications exists, to do the rest ...
If no network is available, you can span up your own (on the same raspberry) by adding some (compatible) WLAN-hardware (if you're not using a RPi3) and the software dnsmasq (DHCP-server) and hostapd (creates a WLAN).

Greetings, FM_81
A: What does the command 'cat /dev/urandom', can you tell me please?
B: Yeah, that's very simple: It feeds your cat with radioactive material!

Posts: 19150
Joined: Tue Mar 25, 2014 12:40 pm
Location: Delightful Dorset

Re: party jukebox

Sat Oct 07, 2017 7:34 am


My other Computer is an Asus CS10 ChromeBit

Posts: 4
Joined: Mon Nov 13, 2017 5:23 pm

Re: party jukebox

Mon Nov 13, 2017 6:53 pm

I started using an RPi 3B with a USB DAC, Raspbian Stretch Lite, and Mopidy as an audio player a few weeks ago. The audio quality with my DAC (ODAC Rev B) and FLAC rips is very good. I'm currently using the MusicBox web client from mobile Safari and desktop browsers as the UI for the player. Systems that support Bonjour or mDNS can access the web UI as hostname.local on the LAN.

CPU utilization is very low: 3-5% of a single core during playback, with momentary peaks to ~15-25% when initially buffering a track, so overall load on the RPi is low. Browsing the library with a single web UI client results in momentary load spikes of a few percent. I haven't tried to measure load from multiple concurrent web clients, like you might have during a party.

The ODAC is a USB Audio Class 1 device, and no additional drivers were required to use it with Raspbian. You could determine if the OS recognizes your DAC by connecting it to the RPi and running the command aplay -l:

Code: Select all

$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: ALSA [bcm2835 ALSA], device 0: bcm2835 ALSA [bcm2835 ALSA]
  Subdevices: 8/8
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
card 0: ALSA [bcm2835 ALSA], device 1: bcm2835 ALSA [bcm2835 IEC958/HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 1: ODACrevB [ODAC-revB], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
Mopidy can be controlled with MPD apps on mobile devices or with a web front-end. The MusicBox web client works with mobile and desktop browsers. You can browse the library, add/remove tracks & albums to/from the queue, pause/resume playback, skip forward and backward, etc. There is also the Mopidy-Party web client, which is specifically intended for "collaborative music management during parties". I have not tried it yet.

There are a couple of ways to browse music by genre/artist/album instead Mopidy instead of just the folder hierarchy of the library. One is the Local SQLite extension. Another is beets local backend with Mopidy. A bit more work is required to use beets local as you will need to import your library into beets. That process can be time-consuming depending upon how much of your library can be matched on import against a DB like MusicBrainz.

This setup works well for me at the moment, but it does have some shortcomings:
  1. Tapping/clicking on the link for album info in the Musicbox web UI results in a wait overlay that does not go away until you hit reload on the web browser. My guess is that this is a bug in the MusicBox web UI that makes a mal-formed API request (see issue 250).
  2. Transferring new audio tracks to the library while listening to music resulted in audio drops. My guess is that this was due to some sort of contention for USB bandwidth and/or contention on the beets library file.
  3. I have not yet figured out why the web UI search feature doesn't seem to work with the beets local backend. Not sure if I just don't have it configured correctly or if it has not been implemented yet by beets local.
  4. beets local mis-behaves a bit when an album in the library does not have a MusicBrainz artist or album ID (see issue 9).
If you're more interested in a solution that requires no command-line setup, you might consider Pi Musicbox. It is based on Mopidy, but installation is more a matter of downloading the distribution and copying it to a micro-SD card.

Return to “Media centres”