Sonido cortejeado juegos Ubuntu 9.10


“Sufrí” más de un año con ese dichoso problemita. Aparentaba que a nadie le sucedía lo mismo nunca jamás. Yo buscando por todos los sitios de Internet, preguntando en chats y demás a ver si a alguien le pasaba lo mismo pero nada.

Para que tengas una idea acá te dejo un audio para que “veas” como se oye reproduce el siguiente video (tiene solamente el audio): 

Intenté de mil formas:

  • Reinstalando otras versiones del núcleo Linux
  • Compilando el núcleo Linux manualmente
  • Instalando otras versiones de las bibliotecas (sdl, alsa, etc)
  • Instalando y compilando las nuevas versiones de Alsa
  • Cambiando de tarjeta de sonido

Nada de lo anterior me solucionó el problema.

Inclusive empecé a probar con las configuraciones: nvidia-settings bajarlo a Alto Rendimiento.

Probé distintas versiones de los módulos de NVIDIA. Nada.

Lo único que mejoraba la situación era justamente poner en Alto Rendimiento nvidia-settings y configurar el juego con bajas prestaciones visuales. Mientras menos exigía el juego parece que mejor era. Pero igual, el problema en algún momento aparecía.

Normalmente el sonido anda bien durante los primeros minutos, apenas abro algún juego. Luego si está configurado con capacidades gráficas altas (filtro trilinear, resolución de al menos 800×600, 32 bits de colores y texturas, alta calidad en nvidia-settings) y si está en modo ventana, y si hay alguna aplicación abierta como por ejemplo firefox, el ruido empieza a aparecer. Es repentino, aparece así ruidoso de una vez, luego a medida que pasa el tiempo se pone un poco más ruidoso pero mucho más que lo que acabas de oír no. Si pongo el núcleo (procesador) en su frecuencia menor para ahorrar energía, más rápido aparece todavía el ruido en el sonido.

He notado que esto sucede en todos los juegos basados en Quake 3. En el engine de Quake 3. Pero recientemente lo noté en un software que no es un juego: Schism Tracker. Y también en otro juego: Eduke32. Esos dos programas no están basados en el engine de Q3 así que no es un problema específico del engine de Q3.

Es algo muy pero muy extraño, ¿cómo puede suceder? Pareciera como si fuera SDL el problema.

Fui al setup de mi BIOS y probé cambiando parámetros pero parece no afectar en lo absoluto.

Es como si algo ya estuviera mal hecho a nivel de software para que el sonido ande así (¿o es la comunicación con el hardware?).

De lo que tengo sospechas, lo único que me queda por sospechar es que sea la tarjeta de video. Como no tengo tarjeta de video uso la onboard. Y he notado algunas anomalías de video pero no con el driver 96.43.13-0ubuntu6. Con ese driver las anomalías no las noto, o sea, parece que es el que mejor anda.

Con otro driver de nvidia a veces genera una deformación de colores en la barra de tareas o en la barra de título de ventana justo cuando cambia el foco. Esa es la anomalía que estoy mencionando, otra cosa más grave no he notado.

Entonces, pareciera que por todo el resto anduviera bien. ¿Dónde está el problema en sí entonces?

Un tipo de ruido similar (no lo he comparado bien) he notado en mi netbook cuando abría zsnes y estaba funcionando en SMP. Prácticamente el sonido vivía desincronizándose. A cada momento. Al ponerla en modo monoprocesador (NO SMP) se solucionó pero algún desincronismo sigue existiendo debido a que en la consola leo sucesivos mensajes tipo “sound buffer underrun”.

Ahora sospecho de que quizá sea problema del modo SMP al tratar de mantener un sincronismo con tantos núcleos pierde la cuenta. Pero no tiene sentido para mí eso y peor aún si desconozco como funciona la cosa.

He descargado SDL desde los fuentes de sus repositorios Mercurial, lo compilé y lo instalé con make install sobre lo que ya tengo instalado en el sistema.

Eso parece que mejoró la cosa, porque antes en Schism Tracker y usando la tarjeta de sonido onboard enseguida aparecía el ruido, ahora se aguantó unos cuantos minutos, al menos 15 sin aparecer, pero al final apareció igual.

O sea, es como si el sonido empezara atrasado muy pocos milisegundos con respecto al video hasta que en un momento se empezara a notar el atraso y nunca más se recuperaría.

Si al menos existiera una forma de que los programas SDL llevaran nota del tiempo con algún reloj de precisión del sistema y que en base a ese reloj mantuvieran las cosas sincronizadas… pero parece que lo hacen de otra forma. Es como si usaran el video como fuente de reloj en lugar del sonido, en todo caso hubiera sido mejor usar el sonido como fuente de tiempo y luego ajustar el video a eso ya que es mucho más fácil sincronizar el video que sincronizar el audio. O al menos en el video no se notaría. Ya que si la forma de resincronizar la hiciera deteniendo un fotograma, puff dime si no tiene fotogramas de sobra para compensarlo? En cambio en el audio se nota!

Bueno, en realidad no sé qué sucede, todavía no logro solucionar el problema.

Si tienes alguna pista o si te sucede lo mismo me gustaría que pusieras tu comentario aquí con la sugerencia o lo que quieras decirme porque me tiene bastante fastidiado este problema ya que me gustaría poder usar Schism Tracker escuchando con total claridad el sonido y no con ruidos metidos que no me dejan apreciar la música (es horrible la verdad). Y luego también por los juegos ya que me gusta apreciar el sonido de los juegos.

Y también me gusta desarrollar juegos y te imaginas que si me va a funcionar así el sonido, que es un detalle que tomo muy en cuenta al desarrollar un juego, es muy molesto realmente.

Gracias por leer mi artículo, hasta pronto.

Edición del 7 de Septiembre del 2010:

Creo que acabo de descubrir cómo se produce el efecto.

Resulta que tenía abierto schism tracker pasando un tema una y otra vez y no le paré mucho al programa en sí pero estaba escuchando.

Resulta que en un momento dado noté que la música se detuvo por un pequeño lapso casi de 1 segundo. O sea, me di cuenta porque inconscientemente noté como que en ese instante perdió el ritmo.

Me llamó la atención así que decidí prestarle más atención al sonido, probé cargar otro tema, y sí, efectivamente estaba con el fallo de sonido.

O casualidad justo cuando pasó eso si la memoria no me engaña estaba viendo un pedacito del programa. Porque lo dejé ejecutándose en una ventana bajo el navegador y algo se veía. Suficiente como para hacerme pensar que al mismo tiempo que noté ese atraso en el ritmo de la música me pareciera ver que también se había detenido visualmente.

Conclusión: Entonces el problema es que el video se detiende por casi 1 segundo y eso hace que se pierda el sincronismo con el sonido.

Me acordé también que a veces en el mismo entorno de Gnome me aparece una especie de descolorido de algún pedazo de la barra de títulos o de tareas de alguna ventana. O sea, eso es un problema con el video.

Ahora, eso me hace pensar en que evidentemente existe un problema con el video en el cual para cierta situación determinada en cierto momento se atasca por un tiempo lo suficientemente largo como para que el sonido se desincronice.

Y eso se nota más en los juegos porque es verdad, suele pasar que da una sensación de atascarse de vez en cuando. Que quizá no logre desincronizar el sonido sino cuando el atasco es lo suficientemente prolongado (casi 1 segundo).

Ahora, lo que no me queda en claro es si se trata de un defecto de fábrica en el chip, o un error en el driver propietario de nvidia. Ya que por más que instale el último driver, sigue sucediendo, menos veces, sí, y parece que anda mejor, pero igual en algún momento sucede.

Ahora tendría entonces que seguir atento a nuevas evidencias y estudiar un poco más para en algún momento llegar a descubrir cómo es que llega a suceder eso y por supuesto que encontraría una solución.

Mientras, a ti que leíste este artículo te puede servir para aprender y por qué no si andas en tema no te animas a tratar de investigar un poco y quizá halles nueva evidencia para ayudarme a encontrar alguna solución.

Saludos.

  1. Deja un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: