Skip to content

XFB 3.1422 — the station, the hour and the log

Choose a tag to compare

@netpack netpack released this 30 Aug 21:09
· 91 commits to main since this release

XFB puts itself on air

  • Icecast, from XFB itself. XFB encodes and sends the stream, song titles and all — no second application in the chain between the studio and the listener.
  • A page listeners can open, with a request line the studio still controls: requests arrive for an operator to accept or refuse, never straight to air.
  • The hour, programmed the way radio thinks about it. An hour clock says what kind of thing goes where — ident, jingle, sweep, music, ad break — and the hour fills itself accordingly.
  • Production computers. An office machine prepares the programme and publishes it back to the station on air.

Knowing what actually happened

  • An as-run log of everything that aired, and the report an advertiser asks for.
  • A dead-air watchdog that notices silence and rescues the station from it.
  • Rotation rules, not just a picker: separation by artist, by title, by how recently something ran.
  • Loudness measured once, so nobody has to ride the fader on air.
  • Intro times, so the operator can talk right up to the vocal.
  • Voice tracking: record the link over the join and let XFB write the ducking.
  • Cue: a pair of headphones that is not the transmitter.

Downloads

  • Embedded cover art no longer costs a download its tags. With "Embed thumbnail" on, every file came out untagged: an Opus file keeps its cover as a METADATA_BLOCK_PICTURE comment, ffmpeg presents that as a video stream, and the tagging pass then refused to re-mux it. The cover is now carried across properly, so the artist, song and genre you typed and the artwork all survive.

The library holds up

  • A library past 256 tracks no longer ends every download with "database is locked". The database runs in WAL, so the long-lived reader behind the list and the short writes from the download and sync workers stop fighting; backups take a consistent snapshot rather than a plain file copy.
  • The same song twice in the library can be found and collapsed — records only, the audio files are never touched.
  • Add a folder and everything nested inside it, instead of album by album.
  • The scheduler runs on every installation, not only on a machine whose role happens to be called Server: a default install silently never checked a single schedule an operator had written.
  • Adding a track no longer breaks when the table grows a column.

Also

  • macOS can finally be asked for the microphone. Recording a programme, a jingle, and voice-tracking a link all failed with no way for the operator to say yes.
  • Linux installs managed by pacman are pointed at the AUR rather than at a .deb the package manager does not own.
  • An operator's manual, ten chapters, linked from the README.
  • The example hour clock no longer ships a floating ident, which is never put to air and taught the wrong thing.
  • French and Portuguese cover the new windows.

Install / update

  • macOS — XFB-3.1422-macOS.dmg, or brew install --cask netpack/xfb/xfb
  • Windows — XFB-3.1422-Setup.exe (x64) or XFB-3.1422-arm64-Setup.exe (ARM64), or winget install Netpack.XFB
  • Debian / Ubuntu — xfb_3.1422-1_amd64.deb / xfb_3.1422-1_arm64.deb, or the apt repository at netpack.github.io/XFB
  • Arch — yay -S xfb (AUR)

Every desktop build carries the phone companion app, handed out by Sync to Phone.