Why does RBDS suck so much?

| Comments (2) | Networking
My Audi's builtin radio is fitted with an Radio Broadcast Data System (Radio Data System in Europe) receiver. In theory, the broadcasters can use this to tell you what you're listening to. In practice, not so much. First, support is spotty at best. Out of the 6 presets on my dial, no more than 3 actually tell you anything useful, like what song is playing. This is particularly baffling since I believe all of them actually do broadcast at least the call sign of the station, so broadcasting program-relevant information wouldn't seem to be much of a stretch. But no. Moreover, even the stations that do broadcast it don't em to do so consistently.

Second, the error rate is unbelievably high. Several times, I've been informed that I'm listening to PUBIC RADIO, which I'm pretty sure is only available on SIRIUS. I don't have a good explanation for this because RDS allegedly has error correction and given that the usable bit rate is supposed to be over 1 kbps, and your average song name is <<100 characters and the scrolling seems to happen about once ever 2-3 seconds, there's plenty of room for error correcting codes out the wazoo. And don't even get me started on the scrolling, which looks hideous.

Even once you get past transmission errors, RBDS still sucks. Today it inexplicably informed me that Tom Petty's Mary Jane's Last Dance was the Rolling Stones "Horses" (or rather the ROLLING STONES "HORSES"—I guess the extra bit per character for lower-case letters would have chewed up too much bandwidth), a song, which as far as I know doesn't exist. My guess here is that it was trying for Wild Horses (not to be confused with Wild Stallyns) and there was some transmission glitch, but I don't have any good explanation for how the radio station software got this confused.

Anyway, this seems like something that could be executed a lot more competently.

2 Comments

Couple comments:

1. The scrolling is a UI issue on your receiver, not really the radio stations' fault.

2. I suspect that the companies which make the server side of this system have differential pricing set up so that broadcasting station ID is probably "free crack", while broadcasting programming information probably they actually charge some money for. And think of the systems integration you need to do with in order to get the metadata from the now-playing item onto the air. I imagine most radio stations these days are largely playing from a digital jukebox where the metadata exists, but probably there's a mix of actual systems which the RBDS vendors have to integrate too. Plus occasionally a DJ will probably bring a CD (or vinyl!) from home and spin that, and then the metadata don't come.

3. The "showing me some song which is not playing" thing is a bug I've noticed before too. I suspect it might be that the system keeps sending whatever the last data item was, and due to the vagueries of how the metadata gets from the audio system to the RBDS system, sometimes I think it'll go several tracks in a row while still showing the old data.

4. As for PUBIC RADIO, I suspect that's the DJ/producer for a particular show issuing a typo.

Pretty much all of the above really ought to be better managed/fixed by better software from the RBDS vendor(s), but I have no idea what those companies look like -- I suspect it's a bunch of broadcast/marketing folks who don't have much of a software background. Someone probably told them once that ECC would be a good idea, but they have no idea what ECC means...

Also, Europe has much much wider deployment & accuracy than the US; I've also noticed that LA has had better deployment than the bay area for a couple years now. 3-4 years ago driving in LA you'd get RBDS on most channels there. Here in the bay area, it's only in the last 12 months or so that most stations have rolled it out. I'm guessing some RBDS vendor(s) hired SF bay sales people recently...

Oh, and the ALL CAPS is, I think, a problem of the protocol/receiver side. The system was designed when if a radio had a screen, it was a single line of probably 16-20 characters implemented as LEDs in the "8" pattern, though it seems RBDS systems also have the diagonals in there. That is, each character is this in LEDs:


-
|X|
-
|X|
-

So you're basically limited to a fairly small character set, and all alpha is forced to caps. Of course, the protocol should probably have been more liberal, and left it up to the client UI to decide how to render each character (like uppercasing if you can't render lowercase glyphs...)

Leave a comment