Finally got my Raspberry Pi to talk to my ST7565 graphical LCD. Wrote a quick Python script to handle connections from the PHP script – required as the Python script requires root access to communicate with the LCD via GPIO so running the script directly via CGI was not an option. The result is a simple barebones HTML form that can be used to write messages on the screen.
After some tinkering with the Web Audio API and HTML5′s canvas, I’ve been able to get a simple visualisation going.
It consists of an EQ-style display along the bottom, with floating squares in the background that grow with bass and flash with treble, and a waveform display made out of hue-shifting circles.
By default it plays the DI.FM Tech House stream but because this is an MP3 stream it probably doesn’t work outside of Google Chrome so you can specify #http://url.to/stream.ogg at the end of the URL to load your own stream.
So I made a thing. It’s basically a webpage and Node.js server that allows people to communicate between the webpage and Garry’s Mod servers. Authentication with the chat server is handled by a PHP SSO script that gets a unique ID for the user from their Steam profile. The chat server uses the socket.io module to handle connections from the web clients, and the net module to handle communication with the game servers. The game server uses a Lua script to send and receive player join/leave/chat data. I designed the interface to look good on mobile devices with the help of the lovely Twitter Bootstrap:
You can see the page here.