Raise TA only during a real traffic announcement. Auto-off makes sure it is never left on.
Dynamic PS 1
On air (Link → encoder) Dynamic PS is packed into 8-character cells: as many complete words as fit, left-aligned. The encoder’s own DPS mode is switched off so it cannot page one word at a time. The window below shows those same cells. Optional centred hub turns stay off unless you turn them on.
Optional. Complete-word fill already goes out on the Link path. These hub turns add a call sign between cycles; they are not required for packing.
Label period is how long each packed cell stays on air (1.5 s is typical; 0.4 s is the floor; 5 s matches a slow FM word; 6 s is the ceiling). Encoder scroll speed is SCRLSPD only if the unit pages the name itself — packed cells use Label period, not that speed. 1.5 s ≈ speed 4. Pause after last cell waits at the end of Now playing and each Hour Board message. The station identifier sits between those lines.
On-air carousel
While a song is on air: the station identifier, then Now playing, then the station identifier, then the next Hour Board line for this hour, then repeat. Each line finishes before the next starts. An empty hour is the identifier, then Now playing, then the identifier again. Put the lines on the Hour Board for that hour — you do not set minutes. Apply now and between-songs cut in immediately and are not added to the rotation.
Song text from playout is cased under External Text → Case, with Replacements. That is the only case control. This carousel does not rewrite Now playing, Hour Board lines, station identifiers, or Apply now / between-songs text.
These two fields are the station identifier. Hour Board is the message bank: up to 10 lines for the current hour rotate between identifiers. If this hour has none, Dynamic PS 2 text below (when enabled) can still be message 1.
Dynamic PS 2
RadioText 1
RadioText 2
RT+ tagging
Online PS window
Live view of exactly what the receiver's 8-character PS display shows, segment by segment, as it is transmitted.
Transmitted segments
Transmitted segments — Dynamic PS 2
Enhanced Other Networks
Cross-references another station (a sister network) so receivers can follow it for traffic and switch to its frequencies.
Numbered messages
Static messages stored in the encoder (MSG01, MSG02, …), one per line. Usable by Dynamic PS 2 / RadioText 2 and the scheduler.
Group sequence & user-defined groups
Advanced. Override the RDS group order and insert custom groups.
System & signal
RDS level and phase affect the transmitted signal — leave at −1 to not touch the encoder's current values.
Hour Board
Safe library of generic station RDS text — PS / DPS / RT / TA packs, not show-tied. Each pack has its own PS box and RT box. Drop a pack on a Drop here hour, or use Add to this hour. Each hour holds a carousel of up to 10 lines. These lines rotate on air during that hour, between station identifiers. PS and RT stay separate. Apply now and between-songs cut in immediately and are not extra rows. Reload this hour goes to Studio Link → the encoder. A live ingest or Clear takes the wire back — board text does not stick.
Hours
The open hour is its carousel bank. Each line has PS and RT. Drop a pack to add a line. Cover hours stay on the slot — Reload this hour is for a stand-in DJ.
Show-hour batches (cover / reload)
Prepared show details for a stand-in. One batch per weekday hour. Reload this hour applies it now — it does not replace the safe library, and it does not auto-fire.
Week list (all times)
Full weekly list, including exact times. Lines in the current hour also rotate in the carousel (up to 10). A line you add here still fires at its time. Apply now is not added here. Use the hour carousel to stack several lines without picking minutes.
Task scheduler (advanced)
Run a technical action at set times on chosen days (weekly): apply a preset, send a command, or run an .enc batch. Admin only.
Feed live "now playing" text from your automation into RadioText / Dynamic PS. The public song line below is RadioText.
Day-facing targets and event rules. Full feed plumbing lives in Backend → Ingest & text sources.
Song line: /<station>/api/nowplaying.txt — RadioText only. Not Dynamic PS and not the PS carousel. /s/<station>/… still answers for now. Bare /api/nowplaying.txt retires 5 Oct 2026.
What Radio Data System (RDS) on the studio PC is watching, and every file change / ingest POST. Never a key. Full health is under Backend → Connection & Link.
Radio Data System (RDS) has not checked in.
| Time | Change |
|---|
Text sources
Up to ten feeds per station. Each feed can drive RT (RadioText), PS (Dynamic PS) and/or TA (the traffic flag) — tick them on the feed. A "push" feed is fed by the ingest webhook (Radio Data System (RDS) on the studio PC, or your automation) using the feed's name as source_id; file/URL feeds are polled. Put a studio file path in File path for Radio Data System (RDS) on the studio PC to watch.
Ingest groups
Location or rig (Studio A, OB Van 1). The studio app syncs this list. Expires after drops that feed's old song off air once the text has not changed — the next feed is used if it has text, otherwise that PS or RT goes blank. 0 never expires. Go to next after is a separate rotate. Primary source is where rotation starts if that source is still selected. Unticked sources are skipped. Edit here; the studio PC is not a second editor.
Targets
The PS and RT feed lists are the rotation order and come from the ticks on each feed; more than one feed on a target takes turns.
RT+ auto-tagging
External Text Cut
On removes only a leading |mm:ss| before other cut and replacements. Start of the line, both pipes, colon in the time. Bare numbers stay. Artist, Title reshaping stays in Replacements.
Case
This is the only case control. Playout systems shout. Title case turns ARTIST - SONG TITLE into Artist - Song Title after cut and replace, before your prefix / suffix. The default only rewrites lines that are mostly capitals, so text already in mixed case is never touched. Hour Board, station identifiers, and Apply now / between-songs packs are not feeds — they stay as typed.
Replacements
Your own letter or word swaps, applied to every source after case, your replacement text used exactly as typed. Matching is case-insensitive. Start with & → and.
Event rules
When the processed playout text matches, do something. Match is the text exactly as typed, case-insensitive, unless Pattern match is ticked. Match playout tags with a pattern (e.g. *SONG-RT* or *JINGLES-RT*). Leave off to match the text exactly as typed. Rules run top to bottom whenever the text changes; Stop ends the list at that rule. TA, Preset and PTY fire once, when the match first appears. Suppress holds the last good text for as long as the match lasts (adverts). Display puts your own words on air — News, Weather, a callsign — on every target external text feeds (RT1 and DPS1; RT2 only if that target is fed the same way), for as long as the match lasts. Clear content blanks those same targets with a real encoder apply of the empty string while matched, then the next song goes out as usual. On one rule, Clear and Display are mutually exclusive: a non-empty Display wins; empty Display with Clear ticked is Clear, not a no-op. Suppress does not combine with Clear. Across matched rules, the first of Suppress / Display / Clear wins.
Send a single ASCII command to the encoder, or run a batch (.enc), one command per line. No space after = (use PS=NUUS, not PS= NUUS).
Encoder path is Via studio Link — Send talks to the hub simulator, which is not air. This console refuses so a simulator + cannot look like the encoder.
Files
Import or export RDS content as a settings file (.rds) or a command batch (.enc).
| Time | Command | Response |
|---|
Station snapshot
Path, simulation, and Link heartbeat. One encoder path and one simulation SoT — both live under Connection & Link.
Settings always live on this server. Only one path writes the encoder.
Quick links
This station's public now-playing feed. The plain-text song line is RadioText at https://radiodatasystem.com/<station>/api/nowplaying.txt. JSON is https://radiodatasystem.com/<station>/api/nowplaying. Bare /api/nowplaying retires 5 Oct 2026. Fleet create / suspend / reset stay on the holdco Portal — not this station Backend.
Radio Data System (RDS)
The Windows app on the studio PC. Green only while a heartbeat arrived in the last 45 seconds — the same honesty as the monitor wall. Live file text is what the ingest job is reading; Last successful write is what the relay last put on the encoder. If hub RT/DPS and that write differ, Relay shows LAG — “playout live” on the wall does not mean radios are current. Never a password or key. Never restore a title from the change log when the live file is COMM/JINGLES.
Selected on this server. Link's Allow-hardware checkbox does not override it. Path stays Via studio Link; this host stays simulator.
This path has the Station Server writing the unit. Link still heartbeats and ingest, but it will not open serial/TCP.
Encoder reach: Via studio Link
How the encoder is reached — not where settings are edited. All adjustable settings live on this server. Via studio Link keeps a synced resident copy to drive the unit. Only one path writes the encoder.
Settings always live on the server. Default is Via studio Link — Link keeps a synced resident copy to drive the unit. Only one path writes the unit.
—
—
| Time | Ingest change |
|---|
| Time | Server → Link |
|---|
| Time | Kind | Sent / received |
|---|
Encoder connection (primary unit)
Current path: Via studio Link (LAN relay) — simulator here; Link syncs server settings, keeps a resident copy, and writes the unit.
Simulation is the single SoT in the Link box above. Hardware fields here are the primary unit only.
Clock sync (RDS CT)
—
RDS units (regions / simulcast)
Drive several regional encoders from one server. All units share the on-air content (RadioText, Dynamic PS, PTY, flags); each unit can override its own identity (PI, PS, AF, EON) per region. One edit reaches every region at once.
Feature routing (encoders vs online)
Decide, per feature, whether it goes to the RDS encoders (on air) and/or to the public now-playing feed (website). E.g. broadcast RadioText but hide it online, or show artist/title online only.
| Feature | To encoders (on air) | To online feed |
|---|
Studio monitor
The Monitor app for this station. Public (default): the app can show the wall without a sign-in. Off: the app needs a station sign-in. The website feed /<slug>/api/nowplaying stays public either way. The plain-text song line at /<slug>/api/nowplaying.txt is RadioText.
Related public surfaces
Marketing home and the now-playing widget are not station settings. Open them from here; fleet CRUD stays on /portal.
People
Station seats: View only, DJ, Program Manager, Admin, Master. Master can manage Admins. Admin cannot delete, demote, or lock Master. Portal holdco accounts are separate.
| User | Role |
|---|
Backup & restore
Download the full RDS configuration (content, external text, schedule). Restore is Master-only. Path changes while live confirm on Connection & Link. Fleet Reset admin / Suspend / Activate stay on the holdco Portal.
Portal (holdco, not this Backend): Reset admin, Suspend, Activate, create station. Open /portal if you also have a holdco login.