Changelog — G Radio Player
Todas las versiones publicadas de gradio-player (paquete .deb).
[0.4.1] — 2026-05-11
Correcciones
- Plugin DSP — sin crujido al inicio de cada audio: cada pipeline crea su propio
DspProcessorcon estado limpio (filtros biquad del crossover en cero). En v0.4.0 todos los pipelines compartían el mismo objeto y los registros de retardo del tema anterior contaminaban los primeros frames del nuevo. El compresor ahora arranca congain_db = makeup_dben lugar de 0, eliminando el pop inicial mientras el compresor converge. - Plugin DSP — VU metros activos en la ventana de configuración: los metros ahora leen de variables atómicas globales (
DISP_LEVELS,DISP_GRS) escritas directamente por el pad probe. En v0.4.0 la UI leía del masterDspProcessorque ya no procesaba audio, por eso las barras aparecían apagadas. - Plugin DSP — ajustes de parámetros en tiempo real: el pad probe verifica un contador de versión atómico (
PROC_CFG_VER) en cada buffer; si cambió, recarga la config del master y llamaupdate_config()sin bloquear el hilo de audio. En v0.4.0 los cambios de knobs no llegaban al pipeline activo. - Tandas de comerciales — botones ▲▼✕ funcionan correctamente: el índice visual de cada ítem no coincidía con la línea real del archivo
.comcuando había ítems filtrados por día/fecha. Ahora cada ítem guarda sufile_linereal y las operaciones de swap/delete lo usan. Además los botones aplican el cambio y reconstruyen el panel inmediatamente. - Panel «⬛ Cola activa» en la sección de comerciales: encima de las próximas 4 tandas aparece la cola actual (
comercialeslist4) con fondo rojo oscuro, mostrando lo que sonará al terminar el tema en curso. Incluye botón ✕ por ítem para borrado individual y botón 🗑 Vaciar todo. Se refresca en < 200ms cuando el scheduler carga comerciales al segundo :58 o cuando el operador modifica la cola.
[0.4.0] — 2026-05-10
Novedades
Plugin de procesamiento de audio DSP multiband
- Botón 🎚 Procesador en la barra de herramientas: activa o desactiva el procesador de audio en vivo. El ícono cambia entre
processor-offyprocessor-onsegún el estado. El estado (activo/inactivo) persiste entre reinicios. - Botón ⚙ Config DSP (junto al anterior): abre la ventana de configuración completa del procesador con la interfaz rack de GR-Processor.
- Cadena DSP: crossover Linkwitz-Riley de 4.° orden → compresor linked-stereo RMS feed-forward por banda → clipper suave (tanh) → limitador brick-wall. Soporta de 2 a 6 bandas configurables.
- Ajuste en tiempo real: todos los pipelines activos (música, comerciales, eventos) comparten el mismo
Arc<Mutex<DspProcessor>>; cualquier cambio de parámetro se refleja inmediatamente en el audio en reproducción sin necesidad de reiniciar o esperar la próxima canción. - Ventana de configuración: knobs Cairo idénticos al GR-Processor autónomo (THR, RATIO, ATK, REL, GAIN, CLIP). Sliders de ganancia de entrada/salida y umbral del limitador en paneles laterales.
- Presets: 6 presets de fábrica (ROCK, BLUE, CLASIC, VOICE, HARD BASS, STRONG). Botones ▶ LOAD y ● SAVE para cargar y guardar presets propios en
~/.config/gradio/presets/. El último preset usado se recuerda al reiniciar. - Configuración persistente:
~/.gradio/data/processor.jsonguarda estado (on/off), todos los parámetros de bandas, ganancias y último preset.
Panel de comerciales — Próximas 4 tandas
- El panel «📢 Comerciales» reemplaza la lista plana de la cola activa por una vista de las próximas 4 tandas programadas, leyendo directamente los archivos
.comdel horario. - Cada tarjeta muestra: hora de reproducción, duración acumulada de la tanda y botón ▶ Play.
- Botón ▶ Play en cada tanda: hace fadeout del tema en curso, reproduce la tanda inmediatamente y luego continúa con el playlist. Marca la tanda como ya reproducida para que el scheduler no la vuelva a cargar.
- Los botones ▲ ▼ ✕ de cada ítem editan directamente el archivo
.comdel horario (no la cola activa). - Cada tarjeta tiene un fondo de color diferente (azul / verde / ámbar / violeta) para diferenciar visualmente los bloques.
- El panel se refresca automáticamente cada 30 segundos.
Otras mejoras
- Nombres de comerciales legibles: se decodifica el percent-encoding del URI de GStreamer al mostrar el título en la barra de estado (
LAMEGAAVANCE%20KALIMAN→LAMEGAAVANCE KALIMAN). - Íconos del procesador: tres nuevos PNG en
assets/—processor-off.png,processor-on.png,processor-config.png.
[0.3.9] — 2026-05-05
Correcciones
- Drop & drop al área extendida del playlist: el
playlist_vboxno se
estiraba con el frame, dejando muerta la zona inferior cuando se ampliaba
la ventana. Se forzóvexpand+Filly se agregó unDropTargetcatch-all
enlists_rowcon ruteo por X. - Tooltips de los botones ⬆/⬇/🗑 de la cola: se borraban cada 200 ms
porque el rebuild del listbox se disparaba con cada escritura deplaylist-refill, aunque el contenido visible no cambiara. El trigger
ahora compara un signature de paths+duración.
Novedades
- Validación de audio antes de encolar (vía
symphonia): cualquier
archivo cuyo decode falle se descarta automáticamente. Aplica a:playlist-refill,comercial-scheduler(3 schedulers), drag-drop a la
cola y a comerciales, botones ⤒/⤓ y doble-click del buscador, y los
comandos remotos TCPAgregarAlPlaylist/ReproducirAhora/PlaylistPlayAhora. Resuelve el cuelgue del player ante audios corruptos.
[0.3.8] — 2026-05-04
Correcciones
- Drag & drop buscador → playlist: el drop solo funcionaba sobre la mitad superior del panel; los
DropTargetahora cubrenplaylist_listbox,playlist_scrollyplaylist_framepara todo el área visible (incluyendo cuando la ventana se extiende tras abrir el buscador). - Reanudar tras pausa larga: si se pausaba un tema y se reanudaba minutos después, el detector de drift wall-vs-pos disparaba un crossfade espurio.
action_playahora realineacurrent_track_startcon la posición real del pipeline al salir de Paused. - Editor
gr-playlist: aceptaba sologio::File; ahora también STRING (text/uri-list desde gr-buscador) yFileList, instalados sobre listbox y scroll.
Novedades
- Buscador: cada fila de resultado lleva dos botones: ⤒ insertar al inicio del playlist y ⤓ agregar al final (íconos
up.png/down.png). - Comerciales / Eventos / Eventos en espera: cada fila muestra duración (con cache para no relanzar
ffprobe) y botones inline ↑/↓ que reordenan las líneas en el archivo correspondiente.
[0.3.6] — 2026-05-01
Novedades
- Ícono del pisador reemplazado por
sello.png. - Panel Playlist: nueva cabecera con botón Automático (robot.png) que pausa/reanuda
playlist-refill. Verde oscuro = automático activo; rojo oscuro = pausado. - Panel Playlist: botón Vaciar (trash.png) para vaciar la cola de reproducción de inmediato.
playlist-refill: respeta el archivotmp/pause_refill; cuando existe, el daemon duerme sin rellenar la cola.
[0.2.0] — 2026-04-01
Novedades
- (pendiente: describir cambios respecto a 0.1.0)
### Correcciones
[0.1.0] — publicado en gradio.net (versión inicial)
- Primera versión pública del sistema de automatización de radio.
- Radio-player GTK4 con crossfading y duck de volumen.
- Daemons:
comercial-scheduleryplaylist-refill. - Herramientas:
gr-pautaje,gr-parrilla,gr-botonera,gr-visor,gr-buscador,gr-playlist,gr-record,gr-reportes. - Instalador
.debpara amd64.
