Nice PAD

December 1, 2009


Tech Tips, Dec 2009

Transmitting program-associated data (PAD) — also called program-specific data (PSD) — has become a standard practice for many stations. With RBDS and HD Radio receivers being more common, stations that do not transmit this data are at a disadvantage. Some stations want to provide the data stream, but don't think they have the resources to do it themselves.

Porting a data stream to an RBDS encoder of HD Radio importer often requires some kind of conversion step. There are commercial products and services to do this, but it can be done in house.

Rob Landry has prepared a Perl script that does it. He currently has it running on two Boston-area stations. Landry notes that it would be easy to modify the script to read an XML file as well.

The script is running on WUMB-FM 91.9 Boston and on WCRB 99.5 Lowell, MA. Because WCRB does not provide scrolling PS but only Radiotext, the WCRB script is different than the WUMB script. The scripts are posted online.

interpring.com/downloads/xmtr.txt

interpring.com/downloads/studio.txt

This script was originally developed for RBDS at the old WCRB 102.5 Waltham, MA. In January 2006 he installed HD Radio at WCRB and added PAD capability to the script. He also developed a version for SPS PAD that ran on WCRB's HD2 channel until the station was sold to Greater Media.

SPS PAD uses a different port (4444) and TCP instead of UDP. He had long been using Perl scripts on Linux boxes to manage file uploads and downloads, backups, remote voice tracking and the music library for the old WCRB and its former sister stations. I chose GNU/Linux because it is a low-cost, low-maintenance operating system that runs reliably on hand-me-down hardware, and it is easy to add scripts to implement new features.

He runs the script on a box at the transmitter site to feed PAD and RBDS from a file uploaded by one of two scripts at the studio that have access to the studio automation system and the music library database. All the scripts monitor themselves by spawning child processes; the child does the work, and the parent monitors the child. If the child crashes, the parent will spawn a new one, so data flow will not be interrupted.

Landry notes, “You may notice in xmtr.txt a variable $MGC that is assigned a string of hexadecimal values used in forming the ID3 tags for PAD. I found these by looking at the output of an Ibiquity demo program. I don't know what they are, but the tags weren't readable without them, so I included them with a comment describing them as ‘magical incantation.’”


We need your tips!

Ideas submitted to Tech Tips may be suitable to earn SBE recertification credits.

Do you have a tech tip? Send it to us at radio@RadioMagOnline.com



Want to read more stories like this?
Get our Free Newsletter Here!

Comments