Producto

Soluciones

Recursos

Iniciar sesión

·
Morgan Smith

Morgan Smith

Detrás de la solución: la renovación total del audio de Gather 2.0

Detrás de la solución: la renovación total del audio de Gather 2.0

Gather 2.0 se lanzó con problemas de audio que no detectamos durante la versión beta. Aquí tienes un vistazo entre bastidores de lo que salió mal, cómo lo solucionó nuestro equipo y qué es lo que sigue.

Gather 2.0 se lanzó con problemas de audio que no detectamos durante la versión beta. Aquí tienes un vistazo entre bastidores de lo que salió mal, cómo lo solucionó nuestro equipo y qué es lo que sigue.

El audio espacial de Gather es bastante único en comparación con las herramientas de colaboración tradicionales. En lugar de unirse a una sala de reuniones fija, las conversaciones son espontáneas y fluidas. Cualquiera puede acercarse a un compañero de equipo y empezar a hablar. Cuanto más cerca estés, más fuerte se escuchará. Aléjate y su voz se irá desvaneciendo. 

Todo esto ocurre sobre un mundo virtual dinámico, al que acceden usuarios de todo el mundo real. Es un sistema complejo. Para que funcione, el canal de audio que lo alimenta debe ser sumamente sólido. 

Cuando lanzamos Gather 2.0 en septiembre de 2025, no lo era. Las quejas no tardaron en llegar y, para solucionarlas, decidimos reconstruir el canal desde cero. 

Hoy nos complace compartir que el sistema de audio/video de Gather 2.0 es el más confiable que jamás hayamos construido, con un 50 % menos de calificaciones bajas desde su lanzamiento. 

Esta es la historia de cómo lo logramos, una celebración del trabajo de ingeniería que lo hizo posible y un avance de lo que viene para el sistema de audio y video en Gather. 

Qué pasó en el lanzamiento

Gather 2.0 fue un lanzamiento importante. Rediseñamos la interfaz de usuario, reconstruimos todos los elementos de arte pixelado, agregamos nuevas integraciones (Spotify y GitHub) e introdujimos controles de audio espacial más granulares, lo que permite a los usuarios ajustar con precisión el comportamiento del audio.

Una captura de pantalla de Gather 2.0, que presenta una interfaz de usuario completamente nueva, estilo artístico, funciones y controles de audio. 

El sistema de audio en sí se construyó sobre la base de todo lo que aprendimos de Gather 1.0, con mejoras significativas añadidas. Las pruebas beta previas al lanzamiento se desarrollaron sin problemas y los usuarios estaban contentos. Nos sentíamos listos para el lanzamiento de septiembre. 

Lo que no previmos: el soporte para Windows 10 también finalizó en septiembre de 2025. Esto obligó a los usuarios a migrar a Windows 11, que incluía una actualización que cambió el funcionamiento del audio en tiempo real. La mayoría de nuestros usuarios beta tenían Mac o equipos de gama alta; no realizamos pruebas lo suficientemente exhaustivas en hardware de menor especificación o en esta nueva actualización de Windows. Ahí fue donde las cosas fallaron. 

Después del lanzamiento público, se recibieron muchísimas quejas sobre el audio. Ruidos de chasquidos. Audio que se congelaba y luego se aceleraba de repente. Llamadas que se caían por completo. 

Estaba muy lejos de la experiencia que habíamos planeado lanzar, por lo que resolverlo se convirtió en nuestra máxima prioridad.

Diagnóstico del problema

Durante octubre de 2025, el equipo intentó cada optimización que se les ocurrió para el canal de audio existente basado en JavaScript. Cada vez que lanzaban una actualización, seguían llegando informes de fallas. 

Uno de los desafíos era que el procesamiento de audio en tiempo real en JavaScript tiene limitaciones. La recolección de basura, el proceso que libera memoria no utilizada, puede robar ciclos de CPU al canal de audio, lo que hace que no se cumplan los estrictos plazos de programación. Y bajo la carga general del sistema de Gather 2.0 (una aplicación que consume bastantes recursos), el enfoque de JavaScript simplemente no podía mantener el ritmo de manera confiable.

Otro desafío era que los usuarios que informaban escuchar audio con interferencias o chasquidos tal vez no eran los que realmente experimentaban problemas de rendimiento. Recibíamos quejas de usuarios de Mac en equipos de alto rendimiento sobre un audio deficiente, cuando en realidad el problema lo causaban sus compañeros de trabajo que usaban Windows. Esto entorpeció el proceso de diagnóstico, haciendo que fuera más difícil determinar si realmente estábamos progresando.

Migración del audio de JavaScript a C++ 

El equipo decidió rediseñar la arquitectura del canal de posprocesamiento en C++ nativo, integrado directamente en una compilación personalizada de Electron. Esto aislaría el procesamiento de audio de otras tareas en el navegador (evitando interrupciones impredecibles) y, en general, mejoraría el rendimiento.

Decidieron implementarlo directamente en Chromium para ejecutar el canal de audio en un proceso de utilidad dedicado a través de la comunicación entre procesos (IPC). De este modo, no tendría que competir por recursos dentro del navegador. 

Esta nueva configuración nos liberaría oficialmente de la sobrecarga de JavaScript, con un canal diseñado para la prioridad de procesamiento que el audio espacial realmente necesita.

"Es un excelente ejemplo de cómo asumir la complejidad y hacerse cargo de ella, lo que se tradujo en mejoras significativas en la experiencia de nuestros usuarios."
Ben Greenier, Ingeniero de Software Senior II en Gather

El imprevisto de Windows 11

Aproximadamente al mismo tiempo, finalizó el soporte para Windows 10, lo que provocó una ola de usuarios que migraron a Windows 11. La nueva versión, Windows 11 25H2, introdujo funciones de eficiencia energética más agresivas, incluida una llamada EcoQos.

EcoQos reduce la prioridad de las tareas en segundo plano al disminuir la velocidad de reloj de la CPU y la prioridad de programación. El problema: cuando un usuario de Gather cambia a otra aplicación (por ejemplo, una hoja de cálculo o un navegador), Windows marca a Gather como "no activa" y limita sus recursos. 

Para la mayoría de las aplicaciones, esta es una compensación razonable. Para el audio en tiempo real, es catastrófica. 

La sincronización constante de la CPU no es negociable. Con EcoQos limitando nuestro proceso, el canal de audio no podía mantener el ritmo, lo que provocaba los sonidos de chasquidos y las aceleraciones que los usuarios reportaban. 

La solución requirió el uso de MMCSS (Servicio de Programador de Clases Multimedia), una API nativa de Windows que permite a una aplicación indicar al sistema operativo: "Estoy realizando un trabajo de tiempo crítico; no limites mis recursos". 


Una captura de pantalla de la solicitud de incorporación de cambios de MMCSS. A medida que esta actualización se implementó para los clientes, condujo directamente a una disminución de las calificaciones bajas de audio y video. 

Este tipo de acceso a nivel de sistema no era posible en el canal original de JavaScript. Al migrar a C++, el equipo pudo registrar sus hilos de audio directamente con MMCSS, lo que le otorga a Gather una programación de alta prioridad incluso cuando los usuarios realizan múltiples tareas o comparten pantalla.

Ajuste fino de la cancelación de ruido

Con el nuevo canal en funcionamiento, el equipo también tuvo que reintegrar Krisp, el socio de cancelación de ruido de Gather. 

Decidieron ejecutar el SDK de Krisp en un proceso independiente, fuera del entorno de pruebas (sandbox), y enrutar el tráfico de audio a través del canal existente de Chromium mediante IPC. Consideraron que esto sería más resistente en caso de que ocurriera algo con el código de Krisp (o el nuestro). 

Después de ejecutar la cancelación de ruido, el equipo agregó una capa más: AGC (Control Automático de Ganancia) posterior a Krisp, que aumenta el volumen del altavoz una vez que el proceso de cancelación de ruido ha hecho su trabajo. Es un pequeño detalle con un impacto notable en la calidad de la llamada.

Estado actual del sistema de audio y video y hacia dónde nos dirigimos

El sistema de audio y video de Gather 2.0 es el más confiable que jamás hayamos construido, con una reducción del 50 % en las calificaciones bajas desde su lanzamiento. Pero no se preocupen, ¡no estamos cantando victoria para pasar a otra cosa! El rendimiento de audio y video es una inversión a largo plazo, no un proyecto con una línea de meta.

A chart of low AV ratings. You can see steady improvements as we moved the audio pipeline to C++ and addressed the Windows changes.

Leyenda: Pedimos a los usuarios que califiquen la calidad del audio en una escala de 1 a 5 estrellas. Este gráfico muestra el porcentaje de calificaciones bajas. Se puede observar un pico después de una caída en la temporada navideña, seguido de mejoras generalmente constantes a medida que migramos el canal de audio a C++ y abordamos los cambios de Windows.  

El equipo está trabajando activamente para mejorar la velocidad de reconexión, ajustar con precisión la compensación automática de ganancia, reducir los fallos visuales y continuar optimizando el canal en distintas configuraciones de hardware. Pueden seguir nuestro progreso en nuestra hoja de ruta y en nuestro registro de cambios. 

A todos los que enviaron un informe de errores, señalaron un problema o simplemente nos acompañaron durante las etapas difíciles: gracias. Sus comentarios fueron los que hicieron posible solucionar estos problemas de audio. Estamos trabajando arduamente para seguir construyendo el espacio de trabajo más agradable, motivador y eficaz para equipos remotos, y nos alegra que formen parte de la comunidad de Gather.

Comenzar

Los primeros 30 días corren por nuestra cuenta

Prueba Gather 2.0 gratis con tu equipo. Sin tarjeta de crédito. Sin cargos de configuración.

2 minutos

Elige y configura tu espacio

1 Clic

Invita a tu equipo

Inmediatamente

Comienza a colaborar

Comenzar

Los primeros 30 días corren por nuestra cuenta

Prueba Gather 2.0 gratis con tu equipo. Sin tarjeta de crédito. Sin cargos de configuración.

2 minutos

Elige y configura tu espacio

1 Clic

Invita a tu equipo

Inmediatamente

Comienza a colaborar

Comenzar

Los primeros 30 días corren por nuestra cuenta

Prueba Gather 2.0 gratis con tu equipo. Sin tarjeta de crédito. Sin cargos de configuración.

2 minutos

Elige y configura tu espacio

1 Clic

Invita a tu equipo

Inmediatamente

Comienza a colaborar