brian-thornton / jukebox-web

0 stars 1 forks source link

Jukebox

Jukebox is a server / browser based music player that is intended for use in home touch screen jukeboxes.

Overview

Table of Contents

  1. Overview
  2. Architecture
  3. Getting Started
  4. Configuration
    1. VLC
    2. Music Library
    3. Preferences
    4. Access
    5. Skins
    6. Restrictions
    7. Lighting

Overview

The motivation for this project is to create a fast, intuitive, visually appealing touch screen jukebox frontend for home use. This frontend is intended for use in DIY jukebox cabinets.

Architecture

The Jukebox project is composed of the following three components:

Overview

Getting Started

Run the command below to install and start jukebox.

curl -o- https://raw.githubusercontent.com/brian-thornton/jukebox-web/master/scripts/mac.sh | bash

Configuration

VLC

Jukebox makes use of VLC for the playback of local files and internet radio. The VLC HTTP API must be enabled in order for Jukebox to send commands to VLC. Configuration for the VLC HTTP API can be found in VLC at Settings > Preferences > Interface > HTTP web interface. In this section, enable the HTTP web interface and set a password.

Music

Once jukebox is running, navigate to Settings to configure your library of music. Jukebox expects your music to exist in one or more parent folders called libraries. These folders might categorize your collection in some way such as 'holiday music', 'oldies' etc. Parent folders are expected to contain subdirectories which represent albums. For example:

/oldies (library 1)\     oldies/artist - album\     /oldies/artist - album\ /holiday (library 2)\     /holiday/artist - album\     /holiday/artist - album

Once your libraries have been entered press the scan button next to each. The jukebox will scan the albums and tracks and store the information in a JSON file for fast retrieval. If you add or remove content from your library you will need to scan again. Once scanning is complete click 'Albums' to view your music.

Preferences

Preferences allow customization of the Jukebox. The available settings and their use can be found below:

Access

Access toggles control the features that are available to users in the Jukebox frontend.

Skins

Jukebox is fully skinnable. You can control colors and fonts to give your Jukebox a custom look and feel. You can find skins under Settings > Skins. Jukebox ships with a few built in skins 'out of the box'. You can copy these skins as a starting point for your own customizations.

Restrictions

Jukebox provides the ability to create content restrictions that can be enabled to prevent access to selected content when needed (e.g. restricting offensive lyrics for a kid's party). There are two restriction modes. Blacklist restrictions will filter out blacklisted content leaving all other content available. Whitelist restrictions will show users only whitelist approved content and filter out all other content.

Lighting

Jukebox supports the control of WS2812B individually addressable LED strips to enhance the look of DIY jukebox cabinets. LED strip control is managed through WLED. Jukebox can control any WLED controller on the local network meaning that your LED strips can be installed in your jukebox cabinet but also may be remote to the physical cabinet. Jukebox can manage 1..n WLED controllers.

Jukebox creates lighting effects by assigning WLED presets when navigation events take place in the Jukebox web front end. Users can configure the preset that should be applied for each navigation event. For example, Jukebox can be configured to turn LEDs green when a user clicks 'Albums', blue when a user clicks 'Tracks' and so on. These lighting configurations are associated to skins so that colors and effects compliment screen colors. In order to configure this behavior follow these steps.