On rediscovering dynamic range, the tragedy of codec-safe mastering, and why Hilary Hahn’s Chaconne sounds glorious at 16-bit/44.1kHz
I recently upgraded my listening setup. A Schiit Mimir multibit DAC, a Midgaard amplifier, and a pair of Sennheiser HD 650s — connected with XLR, playing local FLAC files on a Fedora Linux desktop. No streaming service in the chain. No Bluetooth. No codec deciding what I’m allowed to hear.
The first thing I did was revisit albums I’d been listening to for years — Ilaiyaraaja’s synth-laden Tamil film scores from the 1980s, Hilary Hahn’s recording of Bach’s Chaconne, some Radiohead, some Evanescence, Michael Jackson’s later work. Music I thought I knew intimately.
The Goal: Hi-Res Audio Without Bluetooth Limitations
I wanted to stream hi-res audio from my Fedora Sway desktop (or my Sony Xperia 1 V or M3 Pro Macbook Pro) to my living room soundbar, or in general any audio like YouTube—without the compression, dropouts, and latency of Bluetooth. Bluetooth’s bandwidth limitations (especially with A2DP) cap quality, and the 200-300ms latency makes it unusable for video.
The solution: a Raspberry Pi 4 with HiFiBerry Digi+ Pro hat feeding my soundbar via S/PDIF, using Snapcast for network streaming. This setup gives me:
Over the past few weeks, I’ve been developing audiocheckr - an advanced audio analysis tool designed to detect fake lossless files, transcodes, upsampled audio, and various audio quality issues. Unlike many audio analysis tools that rely on machine learning, audiocheckr uses pure digital signal processing (DSP) algorithms to identify subtle artifacts left behind by lossy compression.
The project has evolved significantly, currently sitting at v0.2.1 with a comprehensive test suite, Jenkins CI/CD pipeline, and detection capabilities spanning multiple codec types including MP3, AAC, Opus, and Vorbis.
After spending countless hours (and I mean countless—over 20 hours of encoding time) benchmarking video transcoding performance, I’ve compiled comprehensive data comparing AMD’s Ryzen 9 7940HS against Apple’s M3 Pro chip. The results reveal some fascinating insights about hardware acceleration, quality metrics, and the current state of H.266 encoding.
I took the help of Claude to add this feature, because, lets face it, I am no good when it comes to CSS and Javascript. After a few hours of tinkering around, here are the results:
As mentioned in the previous post in this series, I ran into CSP issues and was struggling to fix them. Here I am, trying to explain the stupidity that caused all these problems. What stupidity you ask? It boils down to not reading the documentation. However, not so fast, I have a de-tour story to tell you guys.
Turns out, I was adding CORS headers from Remark42, NGINX and CloudFlare at the same time. What is CORS you ask? It is an abbreviation for Cross-Origin-Resource-Sharing1, which is essential if multiple applications running in different domains or sub-domains need to work together. It is a security feature. If this doesn’t exist, you might use my server to host your comments and flood it with data, or more malicious things can be done. Anyway, all I had to do was disable the feature from Remark42 using it’s config file, remove it from CloudFlare and only use NGINX to do the heavy-lifing. I had to set PROXY_CORS=true in the configuration file, remove the custom header rule in CloudFlare, and add the below lines to NGINX configuration for the site.
Cycling usually comprises fatigue, sweat and cardiovascular exercise. It can get demanding quickly as we are burning huge amounts of calories in a matter of minutes. For context, playing basketball with moderate running would burn around 180-250 kcal per hour. Walking around the park would burn 160 kcal per hour. Cycling can burn anywhere from 1000 kcal per hour to 1700 kcal per hour. All these numbers are rough estimates based on my Garmin Enduro 3 recording these activities tracking my heart rate, except for 1700 kcal per hour for cycling. This number comes from cycling races pro teams take part in, and this limit is for them. I never achieved that sort of calorie burn.
Recently, I have been hoarding music libraries and adding them to my Plex Server (self-hosted, and I already use it for Movies and TV Shows): Vodafone Internet sucks because of the frequent network outages in Germany. I am ensuring they are good-quality source files with either 16-bit FLAC or 24-bit FLAC. A downside of that is that it hogs a lot of storage space. Here is a screenshot of current music library I have hoarded so far.
In the fascinating realm of general relativity, understanding the curvature of spacetime is crucial. One tool that physicists and mathematicians use to understand this curvature is the Weyl tensor. Named after the German mathematician Hermann Weyl, the Weyl tensor provides a unique perspective on spacetime curvature that is independent of the matter content of the universe. This article delves into what the Weyl tensor is, its significance, and why it plays an essential role in 4-dimensional general relativity.