Sistema de automatización de radio en Rust (GTK4 + GStreamer): reproductor principal con crossfade y ducking, scheduler de comerciales, refill de playlist, y herramientas auxiliares (pautaje, parrilla, botonera, visor, buscador, playlist, grabador, reportes). Incluye sistema de skins y modos de Players (paneles de reproducción configurables).
91 lines
2.6 KiB
Markdown
91 lines
2.6 KiB
Markdown
# Programación Musical (Parrilla)
|
|
|
|
La **parrilla** define qué música suena en cada bloque horario de cada día de la semana.
|
|
|
|
## Archivos `.mus`
|
|
|
|
Ruta: `~/.gradio/data/parrilla/<día>/<hora_inicio>-<hora_fin>.mus`
|
|
|
|
- **Día**: 1=Lunes, 2=Martes, 3=Miércoles, 4=Jueves, 5=Viernes, 6=Sábado, 7=Domingo
|
|
- **Hora**: bloque de una hora (0-1, 1-2, ..., 23-24)
|
|
- Ejemplo: `~/.gradio/data/parrilla/1/10-11.mus` = Lunes de 10:00 a 11:00
|
|
|
|
## Formato de un archivo `.mus`
|
|
|
|
Cada línea puede ser:
|
|
|
|
```
|
|
/home/usuario/Música/tema_exacto.mp3 ← archivo específico
|
|
/home/usuario/Música/Salsa/* ← archivo ALEATORIO de esa carpeta (comodín *)
|
|
Hora ← insertar anuncio de hora del sistema
|
|
```
|
|
|
|
Ejemplo real:
|
|
```
|
|
/home/grecord/Musica/Inicio/intro.mp3
|
|
/home/grecord/Musica/Pop/*
|
|
/home/grecord/Musica/Pop/*
|
|
Hora
|
|
/home/grecord/Musica/Rock/*
|
|
/home/grecord/Musica/Baladas/*
|
|
```
|
|
|
|
## Cola activa `playlist4`
|
|
|
|
`~/.gradio/data/tmp/playlist4` contiene la playlist en ejecución. Formato TAB-separado:
|
|
|
|
```
|
|
/ruta/absoluta/al/archivo.mp3\t00:03:45.000
|
|
/ruta/absoluta/al/archivo2.mp3\t00:04:12.000
|
|
```
|
|
|
|
El daemon `playlist-refill` mantiene esta cola con ~14 temas. Cada tema consumido se elimina de la primera línea.
|
|
|
|
## Cómo ver la programación actual
|
|
|
|
```bash
|
|
# Qué tema está sonando ahora
|
|
cat ~/.gradio/data/tmp/estado.json | python3 -c "import sys,json; d=json.load(sys.stdin); print(d['titulo_actual'], '-', d['track_actual'])"
|
|
|
|
# Cola de música pendiente
|
|
cat ~/.gradio/data/tmp/playlist4
|
|
|
|
# Parrilla del día de hoy (ej. lunes = día 1)
|
|
DIA=$(date +%u) # 1=Lun...7=Dom
|
|
HORA=$(date +%-H)
|
|
cat ~/.gradio/data/parrilla/$DIA/$HORA-$((HORA+1)).mus
|
|
```
|
|
|
|
## Cómo modificar la programación
|
|
|
|
```bash
|
|
# Agregar un tema al frente de la cola actual (próximo a reproducir)
|
|
TEMA="/ruta/al/archivo.mp3"
|
|
DUR="00:03:45.000"
|
|
(echo -e "$TEMA\t$DUR"; cat ~/.gradio/data/tmp/playlist4) > /tmp/pl_tmp && mv /tmp/pl_tmp ~/.gradio/data/tmp/playlist4
|
|
|
|
# Agregar un tema al final de la cola
|
|
echo -e "/ruta/al/archivo.mp3\t00:04:00.000" >> ~/.gradio/data/tmp/playlist4
|
|
|
|
# Editar la parrilla de mañana (agregar tema a las 9:00-10:00 del martes)
|
|
echo "/ruta/nuevo_tema.mp3" >> ~/.gradio/data/parrilla/2/9-10.mus
|
|
|
|
# Ver toda la programación de la semana para una hora específica
|
|
for dia in 1 2 3 4 5 6 7; do
|
|
echo "=== Día $dia ==="
|
|
cat ~/.gradio/data/parrilla/$dia/10-11.mus 2>/dev/null || echo "(vacío)"
|
|
done
|
|
```
|
|
|
|
## Días con nombres
|
|
|
|
| Número | Día |
|
|
|--------|-----|
|
|
| 1 | Lunes |
|
|
| 2 | Martes |
|
|
| 3 | Miércoles |
|
|
| 4 | Jueves |
|
|
| 5 | Viernes |
|
|
| 6 | Sábado |
|
|
| 7 | Domingo |
|