DIY: music player – 8 years later


I like music. Few years ago around (2010) I wanted something to play music from the big speakers in the living room. Using a cord was an option but it was also something that I wanted to avoid. So I did some quick and dirty solution which was a Windows Media Player DLNA streaming to Xbox 360. I proudly demonstrated this to a friend. He commented something along the lines:
“So in order to listen to music wirelessly, you need to power on your 100W computer and 150W Xbox? I’ll stick to radio”
I was trying to defend my approach but in fact he was right, it was a clumsy and very energy consuming solution. I needed something more elegant.

First approach

At the time I was fiddling with OpenWrt router to share printer and disk locally. I already got a router with USB port and linux installed on it.
So the idea was quite simple: router + USB audio card  + some linux music player software (MPD). This time it was energy efficient, router was drawing 5W at most and I could control it remotely.
But still I was not completely satisfied, the CPU and RAM resources were too limited on a router, because of this the MPC client was slow in response and I wanted this solution to be more versatile, so not only you could play a music from a NAS HDD, but also using DLNA media player if you wish. Another problem was some audio specific packages for OpenrWrt were not functional, at least on my router. Probably they were not built for this particular CPU architecture or had some other inner dependencies. It was already taking too much time to dig into the details. Some radio streams were already taking too much resources of a router (sound was choppy) + the UI was quite unresponsive. It was clear that this functionality has to be moved to separate hardware. So…

Second approach

I wanted to use something that I already had at my disposal. Luckily I had a Samsung Galaxy S smartphone with a broken GSM module. Resource wise it was more than I needed. CPU was a proper 1Ghz ARM + 512MB of RAM and a lot of disk space (the router had like 480Mhz CPU + 128MB of RAM). To make it “easier” I chrooted into ubuntu on a phone. It basically means that alongside Android full linux distro was running (using the same kernel which is underneath).

I enabled ssh on it, and from then on I could move forward with my project.
I used mopidy ( for web ui frontend. Now I was able to use Spotify (among others services like Google Music or Soundcloud)
all the radio streaming were working without a hiccup. It had a proper web UI client. Also I managed to play music through DLNA (although it needed some debugging and a pull request to mopidy code base).

Third approach

Although the solution was working, but it still had this beta feeling. Mopidy had it’s own little problems here and there.
From time to time I had to ssh and restart services manually. Some of my problems could be because of funky chroot approach. I didn’t had time or will to polish it to last detail.
I was really thinking about buying some ready made solution which started to show up on the internet at reasonable prices. I was so close to buy ROCKI, but thankfully I didn’t (it’s already dead) because Chromecast Audio was announced. It was a ready made solution with a promise of long support. Not to expensive and it had support for a lot of services.
I bought it the same day it became available in Germany.
After more than 4 years, we still use it every day (mainly for Spotify or TuneIn). It’s a fire-and-forget type of solution which is not causing too much problems, also it looks like googles cast idea is supported by more and more services.
At the beginning of 2019 we also bought Google Home Mini which made the experience even better.

The retrospective

Back then (2010ish) a lot of us were still very tied to a locally stored mp3 collection and did not understand the need for anything else. If you wanted to play some music on big speakers you just plugged in your computer or mp3 player and that was all you needed.

What initially was a small DIY project became something used on daily basis. As other flat mates started to use this solution it also became a burden to maintain it.
Almost 5 years passed between first approach and buying a chromecast. I probably spent more man-hours on this project than it would cost me to buy a ready made solution back in 2010. On the other hand, sometime around 2012 I had a chance to play with some full-blown (Bose?) solution which – in my opinion – also didn’t felt right (user experience wise, sound was great).
Maybe it was because music listening medium was changing and nobody knew exactly which horse will win so they were betting on all of them (local mp3 files/DLNA/radio streaming/early streaming services) making the experience more or less bad.

Was it worth it?
As with every DIY project: it should be fun + you will learn along the road anyway + there is small chance of making money out of it.
From sentence above everything beside money was met. I don’t regret it.

About the author

Add comment


Recent Posts