Sobre la latencia de Android y el problema de los 10 milisegundos
La latencia de Android tiene un verdadero problema, y hoy os contamos con detalle en qué consiste este problema. Descúbrelo.
16 abril, 2015 22:37Existen muchas aplicaciones para dispositivos móviles que basan todo su potencial en el sonido, pero muy pocas teminan llegando a Android: la mayoría no sale de iOS, y son muy pocas las excepciones que llegan a nuestros dispositivos. ¿Pero por qué ocurre esto, por qué los desarrolladores centrados en el sonido tienen a la plataforma del androide tan abandonada?
La respuesta a todo esto está en un término muy simple: la latencia de sonido, el retardo que tiene el audio desde que sale hasta que llega a nuestros oídos. Unos pocos milisegundos pueden suponer la diferencia entre un sonido perfectamente sincronizado, a un sonido que ya no sirve para nada, y hoy os explicamos cual es el problema de Android con el sonido y la latencia.
¿Qué es la latencia?
La latencia es el pequeño retraso entre que una señal de audio se comienza a reproducir (en nuestro ordenador o en nuestro Android, por ejemplo) y sale del sistema (a través de nuestros altavoces o auriculares), aunque tenemos que añadir más camino si estamos sacando el sonido de una fuente como un micrófono o un instrumento. Normalmente medimos la latencia en milisegundos, y es algo que puede resultar muy frustrante para un músico o alguien que trabaja con el sonido. Imaginaros que intentamos aplicar efectos «en directo» a un sonido con nuestro ordenador, y que estos tardan como medio segundo en hacer efecto: eso es la latencia frustrante de la que estamos hablando.
La razón de existencia de la latencia es que nuestro sonido tiene un camino largo que recorrer, y el sistema operativo que utilicemos también juega un papel importante en ese sentido. Por ejemplo, muchos artistas utilizan ordenadores Mac porque su latencia en sonido es muy baja de por sí (aunque la latencia cero sea un mito), lo cual hace su uso ideal para directos y espectáculos en comparación a ordenadores con Windows, aunque tened claro una cosa: siempre vamos a tener latencia, por muy baja que sea, porque estamos metiendo pasos extra al introducir un ordenador en la ecuación. El truco es que nuestro oído está cómodo con latencias que rondan los 10 milisegundos: a partir de los 15 milisegundos empezaremos a notar que la señal tiene algo de retardo.
¿Cual es el problema de la latencia en Android?
Los chicos de Superpowered han hecho un completísimo estudio sobre la latencia en Android (de muy recomendada lectura si sabéis inglés), el cual nos revela la verdad sobre la latencia en nuestro sistema operativo móvil: la latencia media del sonido en una aplicación Android es de 100 milisegundos si sólo sacamos sonido, y aumenta a 200 milisegundos si lo combinamos con grabar sonido.
Para que os hagáis una idea, es como si un batería estuviera medio pulso por detrás del resto de la banda durante toda la canción. Esta lista de reproducción de SoundCloud es una buena muestra de ello: compara la «latencia cero» con la latencia de iOS y la latencia de Android general, y este último sale muy mal parado. De ahí el nombre de problema de los 10 milisegundos, porque estamos muy lejos de conseguir esa cifra perfecta (en condiciones ideales, cosas como la misma aplicación tienen mucho que decir), aunque los dispositivos Nexus de Google son pata negra en este sentido y cada vez están algo más cerca de conseguirlo.
La Nexus 9 de Google es el dispositivo Android que menos latencia produce, en comparación al resto de dispositivos Nexus y Android, y con ese dispositivo han hecho pruebas para determinar cuánto tiempo tarda Android desde que el sonido se graba hasta que sale en condiciones ideales: 35 milisegundos, todavía por encima de esa cifra ideal, pero muy por debajo de la mayoría de dispositivos Android. Viene todo muy bien explicado en la animación que Superpowered ha preparado con el Nexus 9 a modo de ejemplo, y podéis ver la explicación técnica de qué hace cada paso dentro del estudio.
¿Cómo afecta a Android?
Esto afecta a Android de muchas formas, aunque tenemos cuatro ejemplos perfectos que podríamos vincular a posibles aplicaciones para Android:
- Aplicaciones de instrumentos y efectos de sonido | El sonido está medio pulso por detrás, como os hemos dicho con el ejemplo de la batería, así que es imposible utilizar Android en un escenario o en una práctica.
- DJs y mezcladores de canciones | La persona que está mezclando no puede sincronizar dos canciones porque la señal de sus auriculares está muy por detrás de la señal maestra que llega a los altavoces que dan a la audiencia. Además, aplicar efectos es muy complicado con tanta latencia.
- Juegos varios y realidad virtual | El sonido (desde efectos especiales como explosiones o disparos, hasta el sonido en general) están unos frames por detrás, un pequeño detalle que se carga la experiencia.
- Aplicaciones VoIP | Si dos personas realizan una llamada vía Internet a través de sus Android, la latencia aumenta más que la latencia que genera la red de por sí: el sonido tarda más en pasar por nuestros Android que en recorrer medio país.
Pero el verdadero problema nos lo encontramos en Google Play, porque es una realidad que los desarrolladores involucrados con el sonido pasan de Android. La categoría de música ni siquiera está entre los sectores que más dinero generan, según datos de App Annie, cuando en la App Store de Apple son una de las principales fuentes de ganancias: los desarrolladores no hacen aplicaciones de sonido para Android por culpa de la latencia, y los músicos no compran en Google Play por la falta de estas herramientas.
¿Cual es la solución?
Por el momento, Google introdujo con Lollipop mejoras en la latencia del sonido, pero esto no parece ser suficiente: tanto los desarrolladores como Google necesitan ponerse urgentemente las pilas si quieren pillar a Apple en el campo del sonido, algo que parece muy difícil cuando iOS ya está más que asentado en ese sentido. Eso y prepararse para el futuro, porque campos como los juegos y la realidad virtual también dejan caer mucho peso en la latencia del sonido para conseguir una experiencia inmersiva.