Actualización de Desarrollo de OFIBO: Shuffle, Mejores Formas de Onda y Playlists Colaborativas
16 de septiembre de 2026
El 16 de septiembre fue otro día productivo de desarrollo para OFIBO. Trabajamos tanto en el frontend como en el backend, mejorando el reproductor de música, aumentando la calidad de las formas de onda para audio de larga duración, introduciendo playlists colaborativas, refinando la gestión de playlists y corrigiendo un problema importante de configuración del perfil.
La mayoría de estas mejoras se construyeron ampliando los sistemas que OFIBO ya tenía, en lugar de reemplazar una arquitectura de producción que ya funcionaba. Esto nos permitió introducir nueva funcionalidad importante manteniendo intactas la cola existente del reproductor, las playlists y la estructura de la aplicación.
Shuffle Llegó al Reproductor de OFIBO
Una de las mejoras más importantes del reproductor fue la incorporación de Shuffle.
En lugar de reconstruir o reemplazar la cola de reproducción existente de OFIBO, Shuffle se creó
como una capa ligera sobre la cola que ya gestiona PlayerContext.
Esto significa que la paginación de producción y la cola ensamblada dinámicamente siguen funcionando
exactamente como antes.
Shuffle ahora funciona tanto en el reproductor con forma de onda como en el reproductor compacto. Lleva un registro de qué canciones ya se han reproducido para que no se repitan hasta haber recorrido toda la cola disponible en ese momento.
También incorpora automáticamente las nuevas canciones que se añaden a la cola más adelante. Esto es especialmente importante para OFIBO porque la aplicación puede seguir cargando canciones mientras el oyente ya está reproduciendo música.
También añadimos historial de reproducción aleatoria. Gracias a ello, Anterior ahora sigue el recorrido real de escucha en modo aleatorio en lugar de retroceder por el orden original de la playlist.
Mejores Controles del Reproductor en Móvil, Tablet y Escritorio
Después de probar el reproductor compacto con tamaños de pantalla reales de producción, refinamos la distribución responsive de sus controles.
En pantallas de teléfono, Favorito y Shuffle permanecen en el lado izquierdo del reproductor. En layouts de tablet y escritorio, esos controles se mueven al lado derecho, justo antes del carrito y del control de licencias.
También corregimos un error responsive que podía hacer que la identidad de la canción apareciera dos veces en el reproductor compacto alrededor del rango de ancho de pantalla 640–767px. El problema procedía del breakpoint de visibilidad usado para el título de canción en línea y ya ha sido corregido.
Visualización Correcta del Tiempo para Pistas de Varias Horas
OFIBO no está limitado a canciones cortas, por lo que el reproductor también necesitaba representar correctamente el audio de larga duración.
Antes, las pistas de más de una hora podían seguir mostrando minutos acumulados.
Mejoramos el formateador de tiempo del reproductor para que las pistas largas utilicen ahora
el formato mucho más claro H:MM:SS.
Por ejemplo, una grabación larga ahora puede mostrar: 4:23:31.
Las canciones normales siguen utilizando el formato familiar M:SS, por lo que nada
cambia para las pistas habituales.
Una Resolución de Forma de Onda Mucho Mejor para Audio Largo
También investigamos por qué el detalle de la forma de onda empeoraba cada vez más en archivos de audio de una o varias horas.
El problema se rastreó hasta el proceso de generación de la forma de onda. La ruta de exportación anterior de WaveSurfer producía en la práctica solo alrededor de 8.000 picos por canal, casi independientemente de la duración del audio.
Esa resolución puede funcionar bien para una canción corta, pero el mismo número de puntos de forma de onda extendido a lo largo de una, dos o cuatro horas de audio se vuelve cada vez más tosco.
Sustituimos este enfoque de resolución fija por una generación de forma de onda que escala según la duración de la pista.
Nuestro nuevo objetivo de calidad es aproximadamente 10.000 picos por cada cuatro minutos de audio, o alrededor de 41,67 picos por segundo.
Esto significa que OFIBO ahora puede generar aproximadamente:
- 10.000 picos para una canción de 4 minutos
- 150.000 picos para una grabación de 1 hora
- 600.000 picos para una grabación de 4 horas
También verificamos el backend de Laravel durante la investigación. El endpoint existente de formas de onda ya era capaz de aceptar el array de picos y almacenar la carga JSON completa.
En otras palabras, la supuesta limitación de payload del backend no era el problema. La solución correcta se aplicó donde correspondía: en la generación y exportación de la forma de onda.
Playlists Colaborativas
Otra gran área de trabajo fue la colaboración en playlists.
Las playlists de OFIBO ahora pueden tener colaboradores aprobados que participen en su gestión junto con el propietario.
Lo importante es que implementamos esto sin crear un segundo sistema de membresía innecesario.
OFIBO sigue utilizando la tabla pivote existente playlist_user.
El campo playlists.user_id sigue siendo el propietario canónico de la playlist,
mientras que los colaboradores aprobados se representan mediante registros existentes de
playlist_user usando is_collaborator = true.
Esto mantiene el modelo de datos más limpio y permite que la colaboración se integre de forma natural con el sistema de playlists que OFIBO ya utiliza.
Un Nuevo Sistema de Invitaciones a Playlists
Aunque la membresía aprobada sigue utilizando la tabla pivote existente, el estado de las invitaciones necesitaba su propio ciclo de vida.
Para ello introdujimos la nueva tabla playlist_invitations.
Gestiona por separado las solicitudes de colaboración pendientes y rechazadas respecto a la membresía aprobada de la playlist.
Los colaboradores pueden buscarse e invitarse por nombre de usuario. El sistema de invitaciones también protege frente a varias situaciones no válidas:
- Los usuarios no pueden invitarse a sí mismos.
- Los colaboradores ya aprobados no pueden volver a ser invitados.
- Se evitan invitaciones pendientes duplicadas.
- Los usuarios que rechazaron una invitación anteriormente pueden volver a ser invitados más adelante.
Cuando se aprueba una invitación, OFIBO crea o actualiza la membresía correspondiente en
playlist_user y marca al usuario como colaborador.
Si la invitación se rechaza, no se crea ninguna membresía de playlist.
Los Colaboradores Pueden Gestionar Realmente la Playlist
La colaboración no es simplemente un nombre mostrado junto a una playlist.
Ampliamos la autorización autenticada de playlists para que los colaboradores aprobados puedan abrir y editar playlists compartidas, ya sean públicas, no listadas o privadas.
Los colaboradores aprobados pueden:
- Añadir canciones
- Eliminar canciones
- Reordenar canciones
- Trabajar dentro de la interfaz existente de gestión de playlists
Reutilizamos deliberadamente el editor de playlists existente en lugar de crear un editor de colaboración independiente. Esto mantiene consistente la interfaz de OFIBO y evita mantener dos sistemas distintos para prácticamente la misma tarea.
La Propiedad de la Playlist Sigue Importando
Aunque los colaboradores pueden gestionar el contenido de una playlist, el propietario original sigue siendo distinto de los colaboradores.
Por eso, eliminar una playlist es una acción exclusiva del propietario.
Añadimos la acción que faltaba de Eliminar Playlist para los propietarios e implementamos la eliminación
mediante soft deletes de Laravel, preservando al mismo tiempo el indicador lógico existente
deleted de OFIBO.
Los colaboradores no pueden eliminar la playlist y esa acción destructiva no se les muestra en la interfaz.
Invitaciones a Playlists Dentro de Mis Playlists
Los usuarios invitados ahora reciben una sección de Invitaciones a playlists dentro de la experiencia existente de Mis Playlists.
Desde allí, los usuarios pueden Aprobar o Rechazar una invitación. Una vez aprobada, la playlist compartida pasa a formar parte de su experiencia habitual de playlists en lugar de aparecer dentro de un sistema de colaboración completamente separado.
Una Interfaz Más Limpia para “Invitar Colaborador”
También refinamos la interfaz de invitaciones a playlists después de probarla.
En lugar de mostrar permanentemente todo el formulario de búsqueda e invitación de colaboradores, la página de la playlist muestra inicialmente un botón sencillo de Invitar colaborador.
La interfaz completa de búsqueda por nombre de usuario e invitación se abre solo cuando se necesita.
Esto mantiene más limpia la página de la playlist sin perder ninguna funcionalidad de colaboración.
Mostrando Juntos al Propietario y a los Colaboradores
La identidad de la playlist también fue mejorada.
El nombre de usuario del propietario sigue apareciendo primero, pero ahora los colaboradores aprobados se muestran junto al propietario.
Por tanto, una playlist puede mostrar una línea de identidad similar a:
@propietario y @colaborador
Esto deja claro de inmediato cuándo una playlist está siendo mantenida por más de un usuario de OFIBO, al tiempo que sigue identificando quién es su propietario original.
Corregido un Error del Navegador en la Configuración del Perfil
Por último, corregimos un problema a nivel del navegador que podía impedir que se guardaran ajustes del perfil que no tenían relación entre sí.
El problema procedía del pattern HTML utilizado por el campo de nombre de usuario.
En navegadores que usan el nuevo modo de expresiones regulares Unicode v, el guion de la
clase de caracteres [a-z0-9._-] podía provocar una excepción
Invalid character in character class.
Como la validación del navegador ocurre antes de que el formulario llegue al backend, esto podía impedir actualizaciones de ajustes completamente distintos, como género o privacidad.
El guion ahora está correctamente escapado, eliminando la excepción del navegador y restaurando el envío normal del formulario de perfil.
Construyendo OFIBO Sin Romper lo Que Ya Funciona
Un tema recurrente en el trabajo del 16 de septiembre fue ampliar OFIBO sin reemplazar innecesariamente sistemas de producción estables.
Shuffle se construyó sobre la cola existente del reproductor. Las playlists colaborativas reutilizaron la tabla pivote existente de membresía de playlists. La edición compartida reutilizó el editor de playlists existente. La investigación de las formas de onda confirmó que el backend ya estaba haciendo su trabajo antes de realizar cambios en el proceso de generación.
El resultado es una app de música OFIBO más capaz, con reproducción más inteligente, formas de onda mucho más detalladas para audio largo, colaboración real en playlists, una gestión de playlists más limpia y ajustes de perfil más fiables.
Paso a paso, OFIBO sigue creciendo hasta convertirse en una plataforma más rápida y completa para escuchar, compartir y gestionar música.
