App | 3 min read

Lossy Streaming

When we started the mix:analog service, we set out to include no-compromise sound quality. That's why we went to all the trouble implementing real-time lossless audio streaming into all major web browsers. Most of these are even now in 2019 barely catching up with good support for audio interfaces.

However, even with the new code implemented our users still faced problems with the audio streaming performance. This is important - if you can't monitor, that's really hindering your creative process. We decided our product needs to meet these challenges head-on.

To fit the audio through the internet, lossy audio encoding was the only possible way to go. As much as we cringe at the thought of fine-tuning analog equipment while listening to anything but uncompressed audio, it would help so many users enjoy the mix:analog service.

Real-Time Streaming Codecs

As of January 2019, we support two lossless formats for streaming, ISOFLAC and FLAC plus two different lossy formats for streaming - MP3 and Opus. We will expand these options as new codecs become available. As well as improve the current support and fix bugs in the current ones.

Opus

The opus codec is hands down the best lossy codec invented so far

While MP3 is a household standard for a good many years now, Opus is not as well known yet, so a few introductory words about it might be in place:

Opus is a lossy audio coding format developed by the Xiph.Org Foundation and standardized by the Internet Engineering Task Force. It was designed to efficiently code speech and general audio in a single format, while remaining low-latency enough for real-time interactive communication and low-complexity enough for low-end embedded processors.[4][5] Opus replaces both Vorbis and Speex for new applications and several blind listening tests have ranked it higher-quality than any other standard audio format at any given bitrate until transparency is reached, including MP3, AAC, and HE-AAC.

Source: Wikipedia

This means that at the moment, it's the next best thing to lossless known to mankind. But it comes with a couple of limitations. One of them is, it only supports sample rates up to 48kHz, in multiples of 8kHz. As it's not used for bounce, this isn't an issue on it's own. But because switching sample rates on some systems gets to be quite the pain in the ..., especially when multiple audio apps are open at the same time (your DAW for instance, locked to 44,1 kHz sample rate) we wanted to offer one more option.

MP3 Streaming Codec

mp3 audio codec streaming
MP3 is still the most widely used lossy audio codec

There is one more codec that can do 44.1 and 48 and is widely known: MP3. While it's showing its age and is not exactly ideal for setting the 16kHz boost on the Pultecs, it's still a fair bit better than dropouts or not hearing anything at all, right?

You can further choose the relative quality of the stream encoding by choosing between 192kbit or 320kbit per second constant bit-rate. Both of these are much less than the 1700kbit required by FLAC.

Why go to all that trouble?

The internet can be a bit fussy when you try to stream real-time audio across the globe. While digging around for causes, trying to explain to users why their streaming is not working, we found all kind of unexpected limitations. The internet traffic to a certain country is being routed through a single, clogged routing center, adding a couple-hundred ms delay and dropping late packets. Another country is throttling traffic per internet address to less than 3000 kbit/s for unexplainable reasons as well?!

So with this update we want to give you, our esteemed users a choice. We set out on a mission to offer you real-time, remote access to analog gear, wherever there is internet, and that we shall do! With the new streaming options, you can still get very decent results on pretty much any internet connection, even if it's marginally better than an late 90s dial-up (remember those?).

Tell me more about mix:analog

Related stories