windytan / redsea

Command-line FM-RDS decoder with JSON output.
MIT License
390 stars 36 forks source link

iTunes tagging ODA #116

Open windytan opened 1 month ago

windytan commented 1 month ago

Ticket spun from #72 : We have many Open Data Applications already covered, but "iTunes Tagging" (0xC3B0) does not have any kind of public specification available. Could we implement something by just looking at the messages?

In walczakp/rds-spy-logs, this app can be found on three stations. I assume it has something to do with the current song playing (?), so I attached the name of the song below, according to RadioText.

πŸ‡ΊπŸ‡Έ WDBO 96.5 (0x5CBC)

πŸ‡ΊπŸ‡Έ KFOX (KUFX) (PI 0x4569)

πŸ‡ΊπŸ‡Έ WWKA (0x8FC4)

Not much data changes when the song changes. Maybe it does not encode the song identity? Could it be just genre etc information? Or index on the station playlist? Why would this information require so many bits?

Edit: Added RadioText.

Edit 2: Here's a tabulated version that may inspire more reverse engineering ideas:

Call   PI  iTunes tagging  RadioText
─────┬────┬──────────────┬───────────────────────────────────────────────────────────────
KUFX β”‚4569β”‚ 0C B3D7 C1B4 β”‚ 985KFOX / Queen / Another One Bites The Dust
     β”‚    β”‚ 1C B3D7 C1B4 β”‚ 985KFOX South Bay's Classic Rock
     β”‚    β”‚ 0C 93D7 C1B4 β”‚ 985KFOX / Puddle Of Mudd / Blurry
WWKA β”‚8FC4β”‚ 0E 936A 3C38 β”‚ Toes by Zac Brown Band on Orlando's #1 for New Country
     β”‚    β”‚ 06 9362 3C38 β”‚ Back To Life by Rascal Flatts on Orlando's #1 for New Country
windytan commented 1 month ago

For reference, 11A ODA groups are processed here, where the right processing function gets called based on ODA ID: groups.cc#L946