Heron Broadcaster
FONCTIONNALITÉS

Toute une station, du dossier de musique au flux.

Heron, ce sont cinq petits services et une base de données, lancés avec Docker Compose. Voici ce que fait chaque partie de la station aujourd’hui.

VOIE 01 · BIBLIOTHÈQUE

Une bibliothèque qui écoute

Indiquez à Heron votre dossier de musique. Il repère seul les fichiers nouveaux ou modifiés et analyse chaque titre avant sa diffusion.

  • Sonie (EBU R128), crête vraie, silences en début et en fin, point d’enchaînement
  • Tempo, et une forme d’onde avec les points de cue
  • MP3, AAC et ALAC en M4A, FLAC, Ogg Vorbis, WAV et AIFF
  • Partages réseau pris en charge : déplacements et renommages gardent l’historique d’un titre
La forme d’onde d’un titre avec cue-in, cue-out et le départ du titre suivant
VOIE 01 · NOUVEAUTÉS

Les nouveautés, classées pour vous

Envoyez des fichiers depuis le navigateur, dossiers compris, ou déposez-les dans le dossier d’arrivée. Ils attendent dans une zone tampon que vous les importiez.

  • Identifiés avec AcoustID et MusicBrainz, pochettes comprises
  • Doublons, fichiers illisibles ou trop courts signalés avant l’import
  • Corrigez les tags et attribuez catégories, étiquettes, humeur et code son avant l’import
  • Classés en Artiste/Album/01 Titre, sans jamais écraser un fichier ; chaque changement s’annule
  • Les titres supprimés attendent 30 jours dans une corbeille
VOIE 02 · DIFFUSION

Deux platines, jamais de blanc

Le moteur est un processus temps réel en Rust qui n’a pas besoin de carte son. Il tient le temps à l’échantillon près, des jours durant.

  • Fondus enchaînés au point analysé, ou chevauchements fixes ; plusieurs courbes de fondu
  • Suppression des silences ; les jingles courts s’enchaînent sans fondu
  • Normalisation de la sonie vers une cible, sans pousser les crêtes au-delà du plafond
  • Les titres suivants sont chargés en mémoire : un partage réseau lent ne coupe pas l’antenne
  • Un dossier de secours prend le relais quand la file est vide, et une veille de silence saute les titres muets
VOIE 03 · FX

Des jingles par-dessus la musique

Le lecteur FX joue virgules, liners et indicatifs par-dessus les platines, sans changer ce qui passe à l’antenne.

VOIE 04 · ROTATION

Des grilles qui s’expliquent

Composez des horloges de créneaux par catégorie, posez-les sur la semaine et laissez la rotation choisir la musique. Chaque choix dit pourquoi.

  • Des horloges de créneaux, chacun appelant une catégorie : moins récemment joué, au hasard ou pondéré
  • Séparation par titre, artiste, album et piste, assouplie pas à pas quand la bibliothèque manque de titres
  • Les artistes aux noms multiples et les artistes proches traités comme un seul
  • Restrictions par tranche horaire, par période et par enchaînement, jamais assouplies
  • Un journal pour chaque choix, et une simulation du lendemain ou de la semaine
L’éditeur d’horloge : créneaux par glisser-déposer, l’heure dessinée telle qu’elle sonnera, une simulation
VOIE 04 · GRILLE

Peignez la semaine

Choisissez une horloge et glissez sur les heures de la semaine. Les heures suivent le fuseau de la station, changements d’heure compris.

La semaine, heure par heure, peinte avec des horloges
VOIE 05 · PILOTAGE

Une console dans votre navigateur

Tout se pilote depuis l’interface web : antenne, file d’attente, historique, titres, horloges, grille, sorties et réglages.

  • Mises à jour en direct par WebSocket : platines, niveaux, file d’attente et sorties
  • Thèmes clair et sombre, français et anglais, dès la largeur d’un téléphone
  • Rôles lecteur, opérateur et administrateur
La page À l’antenne sur un téléphone
VOIE 06 · API

Scriptable de bout en bout

Tout ce que fait l’interface passe par une API HTTP et WebSocket documentée : vos scripts peuvent en faire autant.

  • Document OpenAPI généré depuis le code
  • Jetons d’API pour les scripts, avec le rôle de leur utilisateur
  • Métriques Prometheus et contrôles de santé sur chaque service ; erreurs vers Sentry

Là où vous êtes

Linux sur amd64 et arm64, jusqu’au Raspberry Pi. Les images sont publiées une fois que toute la pile a passé ses tests sur les deux.

▶ Commencer