Some things happen at a time, not in a sequence. The news at the top of the hour does not care what song is playing. That is what a clock wheel is for.
A slot fires at a fixed minute of the hour, optionally at a specific second, and optionally only during certain hours. Everything else about your playout continues as normal.
Four kinds of slot
- Jingle — plays one of the 25 jingle buttons by number.
- File — plays a specific audio file from disk.
- Stream URL — plays an HTTP or MMS stream, which is how a live news feed gets on air.
- Hook — fires a named application hook, letting the host wire up custom behaviour.
Each slot carries its kind, minute, second, an optional list of hours, the jingle number or file path or hook name, a label, and an enabled flag. Leave the hours list empty and it fires every hour.
How it runs
A timer ticks once per second and checks for a matching enabled slot. When one fires, a two-second debounce prevents it re-firing within the same minute — a small detail that matters, because a slot firing twice is worse than not firing at all.
Slots are edited in Preferences → Broadcast Engine → Clock Wheel, in a grid with columns for on/off, kind, minute, second, jingle number, file or URL, hook and label. The whole wheel can be switched off with one checkbox without losing the configuration.
Everything persists to clockwheel.json in your local application data, loaded at startup.
Not the same as a rotation clock
This trips people up, because both are called clocks.
The clock wheel fires events at fixed times. It knows nothing about your library or your format — it just fires what you told it, when you told it.
A rotation clock is a template for building an hour of music from categorised library tracks, with separation rules and selection logic. It produces a playlist; it does not fire at a wall-clock time.
Most stations use both. The rotation clock builds the hour; the wheel makes sure the news still starts at exactly the top of it.