Projects:Jukebox

From TangleBall

Jump to: navigation, search

Contents

Goal

A simple terminal to allow people to select & play music.

Down the road it might be nice to use the device to accept koha - or event be combined into a Freedom Toaster

Requirements

Skills

  • Electronic & Mechanical
  • Computing

Resources & Equipment

  • 1x x86 PC
    • Monitor
    • Sound card
    • Speakers
    • Input device
    • Storage
  • Audio equipment
  • "Pokie" slot machine

Basic Design

The design should be centred around simplicity of use

v.0.x

GMPC seems to work well; hooks self-defined keys well - dealing with resizing issues Jaco

v.1

  • Integrate buttons on Pokie machine, mapped to basic keyboard media keys, to control X-based "fat-client"
  • Play 8-bit MIDI sound & flash some lights for Koha dropped in slot

Controls

Pokie has 5 pairs of buttons + 2 extra

  • Up & Down keys (2)
  • Page-up & Down (2)
  • Search, pop-up keyboard
  • Select / Add to queue (1)
  • Play/pause, Next (2)
  • Volume Up & Down (2) (optional)

v.2+

Monetize device to rent out (events, etc), to raise revenue for space

  • Random visualization on a separate screen
  • Commercial library
  • Money for tunes
  • Track plays for direct payment to artists
  • Ability to play from external sources:
    • Auxiliary analogue input (minijack)
    • Removable media over USB interface (security risk)
      • iPod's, etc
    • The "Cloud"
      • SoundCloud, Jamido, GrooveShark, etc
      • iTunes account (pay by voucher)

Build Log

  • √ Gutted Pokie machine
  • √ Built, mounted & secured x86 host
  • √ Load & configure MPD & ALSA
  • √ Load & Configure client(s)
    • √ GMPC (new 11.8 via PPA - done; Sonata as backup)
    • √ Web client - Relaxx (done) on http://jukebox
    • √ Android/Mobile client loaded on shared tablet - PMix
  • √ Configure X to auto-load - auto-starting GMPC via ~/.xinitrc
  • √ Cronjob defined to auto-shutdown host at 02:00 if left on
  • √ Set up Samba & NFS shares to load media
  • √ Auto login user & start X

Auto login via: /etc/init/tty5.conf

# tty5 - getty
# This service maintains a getty on tty5 from the point the system is
# started until it is shut down again.

start on runlevel [23]
stop on runlevel [!23]

respawn
#exec /sbin/getty -8 38400 tty5
#echo "TTY is here!"

#http://tombuntu.com/index.php/2010/01/01/enable-automatic-login-in-ubuntu-9-10-server/
exec /bin/login -f tangleball < /dev/tty5 > /dev/tty5 2>&1

Auto start X via: ~/.bash_profile

#http://tombuntu.com/index.php/2010/01/01/enable-automatic-login-in-ubuntu-9-10-server/
if [ -z "$DISPLAY" ] && [ $(tty) == /dev/tty5 ]; then
  startx
  sleep 1
  logout # log out & try again if app/X crashes
  exit
fi

To Do

  • ? Upgrade host to 64-bit OS
  • Remote control via VNC and/or Synergy
  • Hack, connect, configure & mount multimedia keyboard
  • Rewire front-mounted buttons to input-device
  • Rear-mount connectors: (printed via RepRap?)
    • Power button
    • Female power kettle-chord socket
    • USB interfaces
    • 3.5mm audio jacks - in & out
  • Load bigger HDD
    • Load media

References & Resources

Similar projects

Clients & interfaces

Personal tools