Aller au contenu

Diffusion

heron-engine est le processus de diffusion en temps réel. Il n’a pas besoin de carte son : il calcule l’audio d’après l’horloge du système, 10 ms à la fois, et tient le temps exactement pendant des jours de diffusion.

Les pistes alternent entre la platine A et la platine B. Le moteur tient la file d’attente ; avec le remplissage auto, l’API la garnit avec les choix de la rotation. Depuis À l’antenne et File d’attente, vous pouvez passer, mettre en pause, reprendre, réordonner, jouer une piste ensuite ou la retirer.

  • Passer fait un fondu de sortie sur la piste en cours (1 s par défaut) et lance aussitôt la suivante.
  • Pause coupe en 10 ms et retient les platines ; le flux continue avec du silence.

Pour chaque enchaînement, le moteur prévoit le départ de la piste suivante et les fondus des deux :

  1. Où : au point de fondu de l’analyse (auto), ou à un temps fixe avant le point de sortie (fixe).
  2. Bout à bout quand l’une des pistes dure 20 s ou moins (jingles, indicatifs), ou que le fondu est désactivé pour la piste.
  3. Fondu de sortie de la piste qui s’en va, 2,5 s par défaut.
  4. Fondu d’entrée de la piste qui arrive, désactivé par défaut.

Courbes de fondu : linéaire, en S, logarithmique ou exponentielle. Les silences en début et en fin de chaque piste sont coupés à ses points de cue (Gap Killer).

Réglez tout cela dans Enchaînements et niveau (administrateurs), avec un aperçu en direct de l’enchaînement entre la piste à l’antenne et la suivante. La page d’une piste peut changer le fondu, les points de cue et Gap Killer pour cette seule piste.

Chaque piste reçoit un gain constant qui amène sa sonie intégrée à la cible (−16 LUFS par défaut). Le gain s’arrête à +12 dB et ne pousse jamais la crête vraie au-delà de −1 dBTP. Pas encore de limiteur : l’AGC et le traitement multibande sont sur la feuille de route.

Le lecteur FX joue un jingle, un liner ou une virgule par-dessus les platines, depuis la page À l’antenne. Il ne change pas ce qui passe à l’antenne.

Chaque panne se termine avec de l’audio qui continue : la piste suivante d’abord, puis le dossier de secours, et un silence généré seulement en tout dernier recours, avec une alerte.

Panne Ce qui se passe
Un fichier en file manque ou est corrompu Les pistes suivantes sont lues en mémoire à l’avance : un fichier supprimé après coup joue quand même ; un fichier illisible est sauté
La bibliothèque est lente ou injoignable Les pistes suivantes sont déjà en mémoire
La file se vide (API arrêtée, remplissage auto coupé, restrictions qui interdisent tout) Une piste du dossier de secours est jouée
Une piste reste muette La veille de silence la saute au bout de 20 s
Un serveur de flux redémarre La sortie se reconnecte seule ; les autres ne sont pas touchées
Le moteur redémarre Il reprend la piste à l’antenne où elle en était, puis la file enregistrée

HERON_FALLBACK_DIR contient quelques pistes qui conviennent à toute heure : indicatifs et valeurs sûres. Les fichiers sont parcourus chaque minute et analysés une fois, pour être joués avec de vrais fondus et le bon niveau. Chacun passe une fois, dans un ordre aléatoire, avant que l’un d’eux ne repasse.

heron-engine ctl inspecte ou pilote le moteur sans l’API :

Fenêtre de terminal
docker compose exec heron-engine heron-engine ctl state
docker compose exec heron-engine heron-engine ctl watch
docker compose exec heron-engine heron-engine ctl skip