Turnabout is fair play: here's about half an hour of KLVZ from this morning:
https://www.mediafire.com/file_premium/xfwyvedij96ndj8/KLVZ.2024.09.11-0812.flac/file (grab it before the copyright Stasi gets to it). At 10m26s,
Ruby, Don't Take Your Love to Town is an especially good demonstration of the phasing effects of HD AM. Source receiver was a Sangean SG-108, which is the version of the HDR-14 that's in a white cabinet.
This is exactly the sound I remember hearing using my aforementioned aftermarket IBOC AM receiver years ago. And this confirms my recollection that IBOC AM is atrocious compared to regular HE-AAC. In fact, thanks to your aircheck, I can now see exactly why. Take a look for yourself:
https://files.catbox.moe/brhaul.png (full spectral graph view)
https://files.catbox.moe/nkt2j4.png (zoomed: 0-5.5 kHz in view)
https://files.catbox.moe/mc1hbn.png (zoomed: 0-4 kHz in view, including moreso horizontally)
These show the spectrum of 12 seconds of the "
Ruby, Don't Take Your Love to Town" song you pointed out, presented at three magnification levels. Notice two things:
(1) The real audio only extends from 0 to ~3600 Hz. But it is
completely obliterated by bit starvation. Do you see all those thousands of dark areas where there's no color? Those are areas where there is
no audio at all. Think of those dark areas as the equivalent of macroblocks in overly compressed JPEG images. When images are compressed too much in JPEG format, the encoder gives up in certain areas and simply wipes away all detail, filling those areas with a solid, flat color. This is what audio codecs do too, except they fill those areas with silence. The bitrate you are witnessing here with IBOC AM is so insanely low, the encoder is literally
disintegrating the audio. The best metaphor I can even imagine for this is that if IBOC AM were photography, it would be photography printed on
dot matrix printers. This is absolutely the reason why, to your and my ears, this audio sounds like phasey, reverberant, pre-echoy hash.
(2) All the audio above ~3600 Hz is fake (spectral band replication), synthesized by the decoder by generating harmonics from the fundamentals found within the 0 to ~3600 Hz (real audio) range (plus using extra metadata that SBR encoders include to give decoders hints on
how to calculate those harmonics for maximum possible "realism"). However, if you look carefully, you will notice something important. The synthesized treble range actually, really only exists from ~3600 to ~7200 Hz. Between ~7200 Hz and ~9600 Hz you will find nothing more than a
copy of what's between ~3600 and ~7200 Hz, pitch shifted upward. And then, once again, starting at ~9600 Hz, you will notice that there exists yet a
third instance of that fake treble, pitch shifted up again, from the one just below
it. And the visual
differences you see between all three copies of that fake treble are the transmogrifications the SBR metadata's "hints" caused your decoder to spew; i.e., they are the ways that the metadata made your decoder differently synthesize each copy, in an attempt to guess at how the audio's original treble might have naturally varied over the entire spectrum from 3600 Hz up to infinity. And what's crucial to know about that is this. In spite of those differences, the
foundation of the fake treble within all three of those stacked copies is audio that is identical/duplicated. And when you "spectrally copy and paste" audio in this way, you give it a very gritty, metallic texture that's essentially identical to the sound of aliasing distortion.
If you (or anyone else reading this) doesn't know exactly what aliasing distortion sounds like, I made a demonstration manually in software to make the sound of it extremely clear, and am providing it here as a very short WAV file:
https://files.catbox.moe/u5zphd.wav
https://files.catbox.moe/x2og3q.jpg (spectral graph)
Please view its accompanying spectral graph image to understand what you're hearing in the WAV. It consists of a 5 second clip taken from a random CD, repeated 5 times in a row. That clip is also lowpassed at 4 kHz. But each time you hear it repeat, a copy of the audio that exists between 0 and 4 kHz is pitch shifted (Hilbert transform-style) upward by 4 kHz and mixed in, resulting in you hearing spectrally stacked copies of that audio. The stacking keeps going with each iteration until you hear 4 stacked copies spanning 0-16 kHz. Finally, the fifth time you hear the clip, the audio goes back to its completely natural form, with no stacking, and now without any lowpassing. This final time is just so you can A/B compare the sound of "full aliasing-based fake treble" (in iteration #4) with "full real treble" (in iteration #5). Using this demonstration WAV, it should be possible to discern the gritty, metallic sound aliasing distortion creates, and then, upon going back to the KLVZ FLAC, it should be easier to mentally pick out that same metallic, gritty texture in its audio from 3600 Hz up. (That texture won't be as loud in that FLAC, since again, each stacked copy in the KLVZ audio is being transmogrified using SBR metadata to minimize how unnatural it would otherwise sound. But that metadata can't hide the aliasing-like sound of that spectral stacking completely. Listen during Kenny Rogers' vocal "solo" starting at 12m:23s, for instance.)
Anyway. Back to the crux of this. The reason IBOC AM sounds so bad is that not only is its audio completely destroyed beneath ~3600 Hz by the equivalent of being "dot matrix printed," but above 3600 Hz, the treble is both synthetic
and filled with the gritty, metallic aliasing distortion texture once synonymous with cheap D/A circuits in retro video game consoles and early 8-bit sound cards. Based on how bit starved everything below 3600 Hz appears (and sounds) in particular, I would say that IBOC's claimed 40 kbit/s for AM mode may secretly include all the bits used by forward error correction. In which case the audio's true bitrate would be much lower.
To truly show the difference between IBOC AM and HE-AAC, here is a video I made depicting the same 5 seconds of the song used in the WAV file above being encoded at every possible bitrate between 24 kbit/s and 128 kbit/s in HE-AAC mode.
https://files.catbox.moe/aine6a.mp4
Notice how even at 24 kbit/s, the sub-SDR region of the HE-AAC audio is nowhere near as "dot matrixed" as the "40 kbit/s" IBOC AM audio in your FLAC. And by the time the HE-AAC audio's bitrate climbs to 40 kbit/s, it is many, many times superior to IBOC AM. By 40 kbit/s, there's even enough transmogrification metadata being included to virtually eliminate the sameness of each stacked copy of the fake treble. (Note: I placed a yellow line on the right-hand frequency scale in each frame to highlight where the transition boundary between the real and fake treble exists at each bitrate. As can be seen, at IBOC AM's alleged 40 kbit/s bitrate, genuine HE-AAC is encoding real audio all the way to 6300 Hz, compared to IBOC AM only encoding it to 3600 Hz.)
Here is another video, a zoomed-in version of the video above, showing just the 24, 32, 40, and 48 kbit/s bitrates:
https://files.catbox.moe/wizdiy.mp4
With this video, you can appreciate the difference between IBOC AM and HE-AAC all the more. At 24 kbit/s, within the sub-SBR range, HE-AAC only looks "close to but not quite as bad" as 40 kbit/s IBOC AM. By the time the HE-AAC reaches 32 kbit/s, it is definitely better than IBOC AM at 40 kbit/s. And by 40 kbit/s itself, there is just no comparison: HE-AAC wins. (My yellow highlights are also present in this video, for reference.)
So there you have it. This is Why IBOC AM Sounds So Bad, The Visual Edition. Either it is an inferior knock-off of true HE-AAC that's nowhere near as good at 40 kbit/s, or it
is comparable
but the 40 kbit/s figure Ibiquity quoted for AM "secretly" includes FEC. By the looks and sound of what's in your KLVZ aircheck, I want to say the audio is probably around the equivalent of 24 kbit/s or even 20 or 18 kbit/s HE-AAC.