What it does
deadair is a radio station you run yourself. It picks the records, writes what the presenter says between them, speaks it in that presenter's voice, and streams the result. It plays your music, not its own: it programmes what your provider already gives you, a Spotify account, a YouTube Music account, or a media server you run: Navidrome or another Subsonic server, Jellyfin, Emby, or Plex. There is one mount and one running order, so everybody hears the same thing at the same moment. There is no per-listener shuffle and no skip button. What is on is what is on, and the station decides.
It keeps a running order, and one thing owns it
The station works from a forward lineup several hours deep, which you can read and edit, and every item in it carries its own state. It is not a queue topped up behind the listener. Exactly one part of the station writes it: the console, the schedule and the model all send it requests rather than editing it themselves. That is what makes an edit made at 3pm still true at 3.05. What the order is asked to play, hour by hour, is the programme. See the running order.
It talks between records, and a model cannot make it silent
A break is written by whoever is presenting. When a local or hosted model is configured, the model writes it. When none is, when the model is slow, or when what it wrote failed a check, the station falls back to its own phrasings, which you can edit. That floor cannot fail, which is the whole design: a station whose presenter went quiet because a graphics card was busy is not a station. See breaks.
It says things that are true, or it says nothing
When the presenter mentions a fact about a record, that fact is a stored claim, kept with the sentence of source prose that supports it. A claim with no source cannot be stored at all. The alternative is a presenter saying something specific, checkable and untrue, in exactly the voice it uses for things that are true. See claims.
Who is presenting is a character, and it accumulates
A presenter carries a voice, a way of speaking, how much rope it is given and how brief it is. It keeps a notebook of what it has said and the traits it is growing into, and a set of anecdotes it can tell on air. It can also take a phone-in: a produced block in which a caller and the host trade turns, each turn written separately and spoken in its own voice, joined into one file before it airs. A guest can drop by the studio for the same kind of chat, a show can have co-hosts who take turns at the breaks and banter between records, and another host can sit in on somebody's show on fixed nights or at random. See characters, phone-ins and the programme.
It can give the hour to something that is not records
Three of the things it airs are not records and not breaks, and they differ in who wrote the words and who spoke them. A production is the station's own programme, written and spoken by it. A podcast is an episode somebody else recorded, fetched whole and handed over to at a time you chose. A reading is somebody else's writing, spoken in the station's own voice a few hours before it airs, which is how a book gets read a chapter at a time. Each is a rule on the format clock, each moves every boundary behind it, and each is passed over rather than replaced when there is nothing to carry. See podcasts and readings.
It measures what it plays
A measurement program running beside the station decodes each record and reports its cue points and its loudness. The silence at the head and tail of a record is trimmed before the player sees it, a quiet master and a loud one arrive at the same level, and the gaps between records are sized from what the music actually does. It is a separate program because the station itself decodes no audio. An unmeasured record still plays. Each record's measurements are on its page in the library.
It says why it is quiet
Eleven gates, checked in the order the signal flows, answer "why is nothing playing" with one verdict and, where there is something to do, the remedy. Silence is often deliberate: by default the station airs only while somebody is listening. Every change of verdict is written to the station's own log, so "why was it silent at three in the morning" is a question with an answer. See the check-up.
The rest
- The library: every record the station has taken in, the playlists, charts and news it can draw on, and its opinion of each record.
- People: inviting another admin or a listener to an account, and looking after everybody's afterwards.
- Plugins: the music providers, fact sources, news feeds, weather, podcasts, speech engines, model, chat platforms, speakers and measurement adapter the station is built from.
- Models and voices: which model writes which words, and which voice speaks them.
- The console: the broadcast desk you run it from, which deliberately does not play the station, and the same desk on a Stream Deck.
- Going live: taking the air from the station yourself, from an encoder on another machine, and handing it back.
- Languages: the console in a language other than English, each person choosing their own, and translating it.
- Listening: the stream, its formats, the Android, iPhone and macOS apps, and the speakers and televisions the station can play itself on.
- Event destinations: the station telling your own servers what happens on air, so a light or an automation can follow it.
To run one, start with the install guide, and read the music licensing notes before you publish an address.