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.
Platines et file d’attente
Section intitulée « Platines et file d’attente »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.
Enchaînements
Section intitulée « Enchaînements »Pour chaque enchaînement, le moteur prévoit le départ de la piste suivante et les fondus des deux :
- Où : au point de fondu de l’analyse (auto), ou à un temps fixe avant le point de sortie (fixe).
- Bout à bout quand l’une des pistes dure 20 s ou moins (jingles, indicatifs), ou que le fondu est désactivé pour la piste.
- Fondu de sortie de la piste qui s’en va, 2,5 s par défaut.
- 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.
Niveau sonore
Section intitulée « Niveau sonore »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.
Lecteur FX
Section intitulée « Lecteur FX »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.
Quand quelque chose tombe
Section intitulée « Quand quelque chose tombe »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 |
Le dossier de secours
Section intitulée « Le dossier de secours »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.
Ligne de commande
Section intitulée « Ligne de commande »heron-engine ctl inspecte ou pilote le moteur sans l’API :
docker compose exec heron-engine heron-engine ctl statedocker compose exec heron-engine heron-engine ctl watchdocker compose exec heron-engine heron-engine ctl skip