He estado muy interesado en los últimos meses en ingresar a la programación de audio (soy de un entorno musical). He sido desarrollador de .NET durante dos años y también he hecho algún objetivo c para una aplicación de iPhone recientemente. Me doy cuenta de que probablemente necesitaría trabajar en mis habilidades de C ++ y he estado jugando con FMOD EX e investigando mucho en la industria.
Me preguntaba si alguien podría sugerir algunos buenos recursos para la programación de audio (ya sean sitios web, podcasts, libros, videos, cursos en línea, etc.). Cualquier cosa, desde análisis de Fourier, codificación de bajo nivel, creación de motores de audio hasta API de audio. ¡Solo quiero aprender tanto como sea posible!
Gracias por adelantado.
Respuestas:
La mayoría de las entradas en la serie de libros Game Programming Gems tienen una sección completa dedicada a la programación de audio. Para obtener una descripción general de algunos de los temas tratados, consulte el siguiente enlace:
http://www.aiwisdom.com/audio_all.html
La lista no está completa, ya que carece de las entradas en los libros 7 y 8, por lo que debe verificarla con la tabla de contenido completa provista por Zolomon en los comentarios:
http://zolomon.com/gpg/index.html
Game Developer Magazine también tiene una columna mensual sobre programación de audio:
http://www.gdmag.com/
fuente
El libro de programación de audio de Richard Boulanger y Victor Lazzarini MIT press
fuente
Hay un par de áreas diferentes para el audio: algoritmos DSP vs gestión de activos y reproducción inteligente de audio.
DSP se trata de filtros y transformadas de Fourier y HRTF y todas esas cosas divertidas.
Buenos recursos DSP:
Rab ya mencionó esto , pero es tan bueno que tengo que repetirlo. El libro de programación de audio de Richard Boulanger y Victor Lazzarini es probablemente el mejor lugar para comenzar. También funciona como una introducción bastante completa a C. El comienzo puede ser un poco lento para usted, pero analiza algunos modismos de C (ocasionalmente desactualizados, ocasionalmente no, pero siempre útiles e interesantes), así como también presenta algunas cosas fundamentales sobre el sonido. Puede que no haya llegado antes.
musicdsp.org : un archivo de algoritmos, generalmente en C
Lista de correo MUSIC-DSP en Columbia
Tutoriales de dspGuru
Quien es Fourier? : Un libro realmente interesante escrito para darle una comprensión fundamental real de la transformación de Fourier. Escrito puramente con la intención de explorar cómo explicar conceptos matemáticos complejos a estudiantes jóvenes. Como resultado, si eres un poco débil en tus matemáticas de nivel superior, esto te ayudará a asimilar todo.
Manual de procesamiento de señal digital de Ken Steiglitz
Como ha realizado el trabajo de Objective-C, consulte la guía de programación AudioUnit de Apple
Por otro lado, la "gestión de activos" es un poco vaga y tiene que ver principalmente con el manejo de formatos de contenedores, códecs y transmisión. Los códecs perceptivos son la verdadera carne para estudiar aquí. Afortunadamente, no tengo mucho que ofrecer allí (parece que necesita un doctorado para comprender la mayoría de esas cosas). Pero hay muchas bibliotecas / API para hacer el trabajo:
La reproducción de audio inteligente es otra cosa divertida. Esto no es terriblemente matemático como lo es DSP, y lo que terminas haciendo muchas veces es lidiar con el manejo de la voz y las pistas de música. No hay tanto conocimiento técnico específico, se trata más del diseño y de la creación de herramientas y sistemas de reproducción para respaldar ese diseño.
Descargue Wwise y simplemente comience a leer sus documentos tanto para las herramientas de creación como para la API. Haga lo mismo para FMOD Designer y FMOD Studio . Estos le dan una idea de las herramientas de "nivel superior" que los diseñadores de sonido de juegos usan para implementar contenido.
Otra buena para ver es Fabric . Básicamente, la canalización de audio de Unity apesta, y este complemento intenta mejorarlo. Puede obtener una versión de evaluación gratis.
Como músico, imagine la interfaz ideal con la que desea describir la música del juego interactivo y los efectos de sonido, eso es lo que estas herramientas pretenden proporcionar. Si está familiarizado con lo que ya existe y cómo es compatible con los diseñadores y compositores de sonido, puede comenzar a pensar en sus propias soluciones sobre cómo hacer las cosas mejor.
Otros recursos:
Peter "pdx" Drescher escribió un artículo impresionante sobre la implementación de la API del diseñador FMOD en Android con JNI.
IASIG e iXMF , el estándar de especificación de música interactiva aún sin terminar con algunas ideas interesantes.
Relevancia de audio del juego Diversos fragmentos de diseño de sonido del juego y programación de audio
The Game Audio Tutorial Un libro destinado a enseñar a los diseñadores de sonido a implementar el sonido en UDK mientras enseña los principios del diseño de sonido del juego. Mucho de esto se trata de luchar contra el audio de UDK y Kismet, pero una vez más es útil ver las cosas desde el lado no programador.
http://www.procedural-audio.com/ <- Enlace autoexplicativo
fuente
Claro, como mencionó API, voy a tener que mencionar openAL y ya se mencionó FMOD.
Aquí hay algunos recursos para OpenAL:
http://www.edenwaith.com/products/pige/tutorials/openal.php
http://enigma-dev.org/forums/index.php?topic=730.0
Algunos recursos de FMOD:
Una guía rápida de FMOD
http://www.gamesounddesign.com/forum/viewtopic.php?f=4&t=241 (tuve esto por ahí y no he inspeccionado demasiado los tutoriales)
http://jerome.jouvie.free.fr/nativefmodex/tutorials/Tutorial03.php
Transformada rápida de Fourier:
http://www.fftw.org/
http://www.codeproject.com/Articles/9388/How-to-implement-the-FFT-algorithm
http://www.drdobbs.com/cpp/199500857
También información general sobre cómo se representa el audio:
http://blogs.msdn.com/b/dawate/archive/2009/06/22/intro-to-audio-programming-part-1-how-audio-data-is-represented.aspx
Estos son casi todos los enlaces que tenía por ahí y algunos que había buscado en Google, pero espero que al menos ayuden un poco.
fuente
Se ha mencionado OpenAL: la otra gran biblioteca es XAudio 2, que puede usar para x360 y desarrollo de PC, aunque creo que OpenAL también es compatible con x360, sin duda será una capa sobre la parte superior de XAudio 2
fuente