We’re beginning to see a lot of momentum building for using Raspberry Pi boards as the basis of your home automation. This latest offering from [Iain Hamilton] combines lighting and audio control through a single web interface. His frontend is run as a web page from the RPi board. It even includes separate layouts for mobile devices and computers in order to maximize use of the screen real estate.
Three buttons at the top of the interface allow him to configure the settings and switch between lighting and audio controls. This audio control screen issues commands to the Spotify client running on the Pi. The Mopidy package takes care of almost everything (as we’ve seen with other single-board computer Spotify servers). Future iterations will offer other streaming services like SoundCloud. [Iain’s] home lighting system uses X10 modules for control. He’s using a USB dongle to facilitate control of that system.
Continue reading “Home audio and lighting taken over by the Raspberry Pi”
Forever.fm is [Peter]’s combination of SoundCloud and The Echo Nest that plays a continuous stream of beat-matched music. The result is a web radio station that just keeps playing.
[Peter] provided a great write up on how he built the app. The server side is Python, using the Tornado web server and Tornadio2 + Socket.IO for handling live updates in the client. To deal with the challenge of streaming audio, he wrote a LAME interface for Python that handles encoding the raw, beat-matched audio into MP3 blocks. These blocks are queued up and sent out to the client by the web server.
Another challenge was choosing songs. Forever.fm takes the “hottest” songs from SoundCloud and creates a graph. Then it finds the shortest path to traverse the entire graph: a Travelling Salesman Problem. The solution used by Forever.fm finds an iterative approximation, then uses that to make a list of tracks. Of course, the resulting music is going to be whatever’s hot on SoundCloud. This may, or may not, match your personal tastes.
There’s a lot of neat stuff here, and [Peter] has open-sourced the code on his github if you’re interested in checking out the details.