Nos últimos meses, fiquei muito interessado em entrar na programação de áudio (eu sou de formação musical). Sou desenvolvedor .NET há dois anos e também fiz algum objetivo c para um aplicativo para iPhone recentemente. Percebo que provavelmente precisaria trabalhar nos meus recursos de C ++ e estou brincando com o FMOD EX e fazendo muita pesquisa na indústria.
Fiquei me perguntando se alguém poderia sugerir alguns bons recursos para programação de áudio (sejam sites, podcasts, livros, vídeos, cursos on-line etc.). Qualquer coisa, desde análise de Fourier, codificação de baixo nível, criação de mecanismo de áudio até APIs de áudio. Eu só quero aprender o máximo possível!
Desde já, obrigado.
Respostas:
A maioria das entradas da série de livros de Game Programming Gems possui uma seção inteira dedicada à programação de áudio. Para uma visão geral de alguns dos tópicos abordados, verifique o seguinte link:
http://www.aiwisdom.com/audio_all.html
A lista não está completa, pois não possui as entradas nos livros 7 e 8, portanto, verifique-a com o índice completo fornecido por Zolomon nos comentários:
http://zolomon.com/gpg/index.html
A Game Developer Magazine também possui uma coluna mensal sobre programação de áudio:
http://www.gdmag.com/
fonte
O livro de programação de áudio de Richard Boulanger e Victor Lazzarini MIT press
fonte
Existem algumas áreas diferentes para o áudio: algoritmos DSP x gerenciamento de ativos e reprodução inteligente de áudio.
DSP é sobre filtros e transformadas de Fourier e HRTF e todas essas coisas divertidas.
Bons recursos DSP:
Rab já mencionou isso , mas é tão bom que tenho que repeti-lo. O livro de programação de áudio de Richard Boulanger e Victor Lazzarini é provavelmente o melhor lugar para começar. Também funciona como uma introdução bastante completa a C. O começo pode ser um pouco lento para você, mas discute alguns idiomas C (ocasionalmente desatualizados, ocasionalmente não, mas sempre úteis e interessantes) C, além de apresentar algumas coisas fundamentais sobre o som que você pode não ter chegado antes.
musicdsp.org : Um arquivo de algoritmos, geralmente em C
Lista de discussão MUSIC-DSP na Columbia
Tutoriais do dspGuru
Quem é Fourier? : Um livro realmente interessante, escrito para fornecer uma compreensão fundamental real da transformação de Fourier. Escrito exclusivamente com a intenção de explorar como explicar conceitos matemáticos complexos para jovens estudantes. Como resultado, se você estiver um pouco fraco em sua matemática de nível superior, isso o ajudará a entender tudo.
Primer para processamento de sinal digital de Ken Steiglitz
Como você fez o trabalho com o Objective-C, consulte o guia de programação da Apple AudioUnit
Por outro lado, "gerenciamento de ativos" é um pouco vago e tem a ver principalmente com lidar com formatos de contêineres, codecs e streaming. Codecs perceptivos são a verdadeira carne para estudar aqui. Felizmente, não tenho muito a oferecer lá (parece que você precisa de um doutorado para entender a maioria dessas coisas). Mas há muitas bibliotecas / APIs para fazer o trabalho:
A reprodução inteligente de áudio é outra coisa divertida. Isso não é terrivelmente matemático como o DSP, e o que você acaba fazendo muitas vezes é lidar com gerenciamento de voz e sugestões musicais. Não há tanto conhecimento técnico específico, é mais sobre design e criação de ferramentas e sistemas de reprodução para dar suporte a esse design.
Faça o download do Wwise e comece a ler os documentos para as ferramentas de criação e a API. Faça o mesmo com o FMOD Designer e o FMOD Studio . Eles dão uma idéia das ferramentas de "camada superior" que os designers de som de jogos usam para implementar o conteúdo.
Outro bom para verificar é Fabric . Basicamente, o pipeline de áudio do Unity é meio ruim, e esse plug-in tenta torná-lo melhor. Você pode obter uma versão de avaliação gratuitamente.
Como músico, imagine a interface ideal com a qual você deseja descrever músicas interativas de jogos e efeitos sonoros, é o que essas ferramentas visam fornecer. Se você está familiarizado com o que já existe e como ele suporta designers e compositores de som, comece a pensar em suas próprias soluções para fazer as coisas melhor.
Outros recursos:
Peter "pdx" Drescher escreveu um artigo incrível sobre a implementação da FMOD Designer API no Android com JNI.
IASIG e iXMF , o padrão de especificação de música interativa ainda inacabado, com algumas idéias interessantes.
Relevância do áudio do jogo Pedaços variados de design de som e programação de áudio
O Tutorial de Áudio do Jogo Um livro destinado a ensinar designers de som a implementar som no UDK enquanto ensina os princípios de design de som de jogos. Muito disso é sobre combater o áudio do UDK e o Kismet, mas mais uma vez é útil ver as coisas do lado não programador.
http://www.procedural-audio.com/ <- Link auto-explicativo
fonte
Claro, como você mencionou as APIs, vou mencionar o openAL e o FMOD já foi mencionado.
Aqui estão alguns recursos para o OpenAL:
http://www.edenwaith.com/products/pige/tutorials/openal.php
http://enigma-dev.org/forums/index.php?topic=730.0
Alguns recursos FMOD:
Um guia rápido para FMOD
http://www.gamesounddesign.com/forum/viewtopic.php?f=4&t=241 (Eu tinha isso por aí e não inspecionei muito os tutoriais)
http://jerome.jouvie.free.fr/nativefmodex/tutorials/Tutorial03.php
Transformação 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
Também algumas informações gerais sobre como o áudio é representado:
http://blogs.msdn.com/b/dawate/archive/2009/06/22/intro-to-audio-programming-part-1-how-audio-data-is-represented.aspx
Estes são praticamente todos os links que eu tinha por aí e alguns que eu pesquisei no Google, mas espero que pelo menos ajudem um pouco.
fonte
O OpenAL foi mencionado - a outra grande biblioteca é o XAudio 2, que você pode usar para o desenvolvimento do x360 e pc - embora eu acredite que o OpenAL seja suportado no x360, além de ser sem dúvida uma camada sobre o XAudio 2
fonte