Projects:Jukebox
From TangleBall
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
- x86 running Ubuntu & MPD as a service
- Skinny X
- use ~/.xinitrc to autoload Sonata or another MPD client
GMPC seems to work well; hooks self-defined keys well - dealing with resizing issues Jaco
- Serve up MPD client web interface for network control
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
- Plays Creative Commons music when "idle" - available for free donwload
- 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