• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

DIY streamer software

Tanel

New Member
Joined
May 25, 2026
Messages
2
Likes
9
Hey! So here's how I became to put together a streaming software from scratch :)

In last few years I have become interested in Hi-Fi. Retro and modern. Fixing few amps, servicing old speakers etc. Just another hobby to take up.
But needed a good audio source. I like discovering new music, I like to listen albums whole, and like to know the bits and bytes of things.
So went out there got myself a reputable streamer that can play Tidal and lived with it for about a year. Sounded good, but never got used to the software and the bugs in the whole package.

Next step. Selling the streamer and buying an old Apple Mini for 1/3 of the cost. Linux, servers, audio software, and all that is no stranger to me so I put together a system based on Mopidy. Got it running fine with my semi-professional grade audio interface and was happy with it for some month. Though couldn't find any nice interface to use on the phone with Mopidy.

Here where the real hacking starts :) Though, ok why don't I create an interface for Mopidy one I like. Been working in web industry for over 25 years, from design to programming, so how hard can it be right :D? Did that for a little while realising there's certain features that can't be done just writing an interface layer. Ditched the idea after a week and went on to build a fully dedicated streamer software.

Few goals I wanted to achieve:
1. Web interface easily accessible in local network on any device
2. Tidal streaming
3. Internet radio
4. Podcast library
5. As clean as possible path from stream/file to DAC and real time feedback on it
6. DAC hardware volume control - I'm often running DAC directly to the power amp
7. EQ curves and variable loudness - 90% of time I'm listening around 50db SPL, so loudness is very helpful
8. Multipoint bluetooth where if I play a source it pauses the other
9. Later added NAS and cloud drives connectivity and files indexing

Even played around with AI altering EQ by user prompt but for now that proved to be gimmicky at best. It did give some starting points going by room description or simply asking to reduce muddiness, add air or something, but eventually it felt like doing more harm than good. Sure was an interesting exercise.

Another thing came to be in process was Bluetooth volume control. I can connect a bluetooth device like laptop or TV to control selected volume controller but opt the device itself out of intercepting audio. In short my TV remote or volume buttons on MacBook can act as volume control while streaming music.

Now about 3 month in, I have software that runs on Raspberry Pi 5 with my USB interface connected to it. It sure still has quirks in it, and there's room for improvement.
But must say I'm pretty happy with it. I have found the interface encourages me to listen whole albums with less distraction and less clicking around. I can take my Pi with me and hook it up headless anywhere with the WiFi available.

It's rather rewarding doing things this way. Especially for the learning aspects of it. Learned a lot about Linux audio handling, Gstreamer, Bluetooth, headless setups, build automation, etc.

Anyway, I have packaged the thing into software called Miliza. There's no real plan with it, not for now at least.
It remains as a hobby project, but thought I share the experience and the thing itself. Even created a website :)
https://miliza.eu
 
Last edited:
Why not skin one of the existing open source projects to make the player interface you want - mOOde, Volmio, and at least a dozen others that already have all of these features, including robust support for DSPs like Camilla
.
 
Hats off, once more, to developers!

My main tip is that most people are used to controlling streamers using an app on their phones or tablets, rather than a browser interface. You are forced to a bit more 'clunkiness' with a browser on a phone/tablet. An app can come later. I've only used the Cambridge Audio "StreamMagic" app and over several years they have developed it into a good app (they get lots of feedback, including from me, and to their credit they have changed the app to suit customers). I'm sure all the other, newer streamers offer good apps too. To improve acceptability, you may want to offer a wide range of platform support, especially of the "connect' variety (so no audio data uses the phone as a relay, but once cued, goes direct to the streamer. And of course, support should include DLNA. the other 'musts' are gapless playback and ReplayGain support, IMHO.

Good luck!
 
Thanks for sharing the ideas!

Certainly, there are plenty of apps already and everybody finds their own, I'm sure. I tried more than few and even tried skinning one, but after all I felt like creating one myself.

It was a very rational decision to create one. I like solving problems and learning new things, and for me this means time well spent :) All the reason I need. There's array of different problems to solve, from audio hardware handling to user interface and the reward of creating something functional and useful, even if just for myself, is awesome.

There's more than few systems that make more sense to someone else, but for me this works. And if it doesn't at some point I change it having good time doing so.

As for features:
Gapless play should work just fine.
ReplayGain will never happen.
DLNA - well, there's support to index and play from network drives, removable media, and cloud.
Push streaming - multipoint hot-switching Bluetooth is there, AirPlay too.
Connection services, pull streaming - Tidal and Spotify connect not for now, there's plenty that do it well already.

As for creating an app - likely not. Installing it as a web app works fine. There's ways to control media playback natively on OS X, Android etc, many web players do. In my case just need to solve few conflicts it creates while playing from bluetooth sources.

Understandably it's testing has been limited to hardware and platforms, and there's bugs, and quirks and ghosts even :-) but should anybody feel like giving it a try, specific feedback and discussion is always welcome.

Cheers!
 
Last edited:
Back
Top Bottom