Sonido

Ayer reinicié el trabajo que abandoné hace tiempo para implementar el sonido con OpenAL. La programación de OpenAL no es complicada, es como un OpenGL, pero mucho más sencillo, pues las funciones son menos. La idea actual es muy sencilla: hay emisores o fuentes de sonido (sources de OpenAL), que son los que se encargan de reproducir y tienen una posición en el espacio, y hay buffers (buffers de OpenAL), que son los que contienen el audio como tal. Los emisores pueden reproducir cualquier buffer que les pases y estrán asociados a las entidades y todo lo que necesite emitir audio.
La parte del streaming es un poco más complicada, debido a un bug en las funciones de lectura de archivos de las bibliotecas ogg: en Windows no funcionan. Hay que programar funciones propias de lectura y la última vez que lo intenté no me funcionó.
El problema de OpenAL es que require un poco de programación extra, a diferencia de otras bibliotecas que pueden leer los archivos de audio ogg, mp3 o wav por sí mismas, a menos que uses ALUT. Sin embargo es una experiencia que no está de más tener y a cambio recibes sonido posicional y algunos efectos interesantes. Una pena que las tarjetas de sonido no hayan avanzado tanto como las de video, a pesar de los esfuerzos de Creative.

Comentarios