Categories
Uncategorized

MPD Radio Controller

If you read about my Radio Milwaukee Radio and thought having just one station to listen to was rather silly, we can do something about that.

One station means no choices (and no controls) but with multiple stations we need a way to select which one you want to hear, and there are clients that can make that possible. Since the Raspberry Pi is on our home network via WiFi, that means any other device on the network can control it.

mpd

I first tried MPD-Web-Remote, which looks great on iOS devices, and fine in any WebKit-based browsers, but I’m a Firefox fan, and it looks like total crap in Firefox, so I kept looking…

mpd

I prefer MPD-Webinterface, which looks good in Firefox, and not as great on iOS devices. Of course, since these are just web applications running on the Raspberry Pi you can install as many of them as you like. (You’ll obviously need to have a web server running on your Pi. I dropped Apache on mine along with PHP using the standard apt-get method.)

And since these are PHP web apps, you’ve got the source, and can edit the CSS as you see fit, so customizing the look should be pretty simple.

Want more options? There’s a giant list of MPD clients on the Music Player Daemon Community Wiki.

And hey, if you’re wondering how I got 3 stations listed instead of just one, compare the original code to this code:

#!/bin/bash
 
mpc clear
mpc add http://radiomilwaukee.streamguys.net:80/
mpc add http://129.89.70.253:80/wuwm_1.mp3
mpc add http://75.102.5.99:80/wpr-ideas-mp3-64
mpc play
 

This creates a playlist with 3 items, and will start playing the first item in the list, so put whatever you want as the default first. This list will play the 88.9 Radio Milwaukee stream until you select another one.

mpd

You can even add new streams (temporarily) using the MPD-Webinterface. At the bottom of the interface is a text field, just paste in a stream URL and hit return to add it to the list. (I pasted in http://wmse.msoe.edu:9000 for WMSE 91.7) I said ‘temporarily’ because only the three that are hard-coded in our bash script above will survive a reboot/restart.

Oh, keep in mind you need the actual stream URL, not the playlist URL, which is one that usually ends with a .pls file extension. Normally you’ll need to view the source of a .pls file to see the stream(s) listed within it.

That’s it for now kids… have fun with your Raspberry Pi Radio!

Categories
Uncategorized

Radio Milwaukee Radio

Radio Milwaukee Radio

I started working on this project months and months ago, so I should probably share what I’ve got so far… as always, it’s a work in progress.

If you live in Milwaukee and listen to the radio, you’re probably familiar with 88.9 Radio Milwaukee. I’m certainly familiar with it, as it’s a great station, and not just for the music, but for their pieces that spotlight the great things happening in Milwaukee.

Since I don’t actually live in Milwaukee right now, it’s a little difficult to pick up the broadcast at home, but no worries, since they stream it over the Internet, we can use a Raspberry Pi (a cheap single-board computer) to play the stream.

Radio Milwaukee Radio

All we need to do is add some power and some speakers (and a little bit of code) and the Radio Milwaukee Radio is ready to go!

I used this post to figure out how to run a script at system startup. Since the Raspberry Pi runs Linux, I’m comfortable mucking around on the command line via SSH, others might not be, but since the worst thing you can do is destroy the entire system and have to re-load it onto an SD card, the risks are small.

Oh, and here’s the script.

#!/bin/bash

mpc clear
mpc add http://radiomilwaukee.streamguys.net:80/
mpc play

MPD is the Music Player Daemon, which deals with playing the stream, and MPC is the Music Player Client which controls the MPD server. The script tells mpc to clear whatever it’s doing (just in case) and then add the 88.9 stream, and start playing it.

(It’s a bit more complex that just that, as there are some startup services that need to be added, but I still need to clean up that code.)

I’ve seen a lot of complex Raspberry Pi radio streaming projects, and while I’ve also played around with different clients to control things remotely via a browser running on a phone or tablet, I wanted to keep this really simple, and create a single-purpose device that did one thing… play the awesome stuff I hear on Radio Milwaukee.

(I also put together a short video showing it in action.)

Note: I also wrote up a post about laser etching the logo on the Milwaukee Makerspace site.