I have used an Android tablet as a base, STA540 for an amplifier, Blaupunkt GTx-542 speakers and, of course, an awesome vintage radio case.
Here is a video that demonstrates how it all works together:
Step 1: Device's Components
Vintage radio for project enclosure. eBay has plenty of old radios. Some are fully operational, some have seen their better days. I've picked one that did not work, but had its body in a good condition.
One might ask: why not restore the old radio? This might certainly be very exciting project. Unfortunately I am not very experienced with vacuum tubes. Also, I am not a big fan of non-customizable radio stations.
One might ask: what did you do with the old components? I still have them. I have no idea which are in working condition. If you want them and ready to pay postage – shoot me a message.
Archos 28 as base. Archos 28 is a reasonably priced (~80$) Android device that has all the features I need: 8Gb of internal memory, Wi-Fi, microphone and audio out. I have used it in my previous project and it has proven to be a very reliable gadget: it has worked 24/7 for the last 3 months.
One might ask: why not use a microcontroller and a set of chips? It looked a bit simpler and more efficient to use Archos 28, as it has all components on its board and also comes with OS Android. Since my radio is expected to be plugged in all the time, so power consumption is not an issue.
IOIO Board to interact with hardware. IOIO Board is an amazing device: it plugs into Android device via USB. Android device discovers it as an ADB host. There is a nice little API that allows any Android application read line state (either digitally or do analog read) and generate either digital or PWM signal on a line.
One might ask: why not use Android ADK? Unfortunately, ADK has been added only in Android 2.3. Archos 28 is running 2.2.
STA540 as an amplifier. I am not an expert in audio devices. I've picked this particular model because of many positive reviews by fellow DIYers. STA540 is a 4-channel, class AB audio amplifier. It has a really nice standby mode: it is exceptionally quite.
Blaupunkt GTx-542. These 4Ohm, 70-20,000 Hz, 2-Way coaxial speakers had a right size and a right price.
One might ask: why not some other speakers? I would shrug my shoulders: if you have any other speakers that fit this device better, please leave comment.
Misc. I've also used a rotary encoder to change songs, four buttons for changing stations and a bunch of capacitors, diodes and resistors to bring it all together.