Files
G-Radio-Player/assets/opencode/context/02-programacion.md
T
cescobar 03084e2d5a Commit inicial: G Radio Player
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).
2026-08-23 00:57:40 -05:00

2.6 KiB

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

# 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

# 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