Como programar áudio em C++? / programação áudio C++

Mandei isso pra lista do Devolts (http://artesanato.devolts.org/) e como acho que pode ser útil pra quem não assina ela tô postando aqui no blog.

primeiro passo para programar com áudio em C++ é escolher qual biblioteca vc quer usar para acessar o seu dispositivo de som. outra opção sem fazer isso seria programar diretamente pra seu hardware de som, i. e., fazer seu próprio driver, o triste disso é que só funcionaria para a sua placa de som 😀

seguem algumas opções:

OpenAL – Open Audio Library (essa é a que eu estou começando a usar no ViMus, foi a que utilizei para fazer isso:
http://www.youtube.com/watch?v=JfhA5EvkXu4):
http://en.wikipedia.org/wiki/OpenAL
Por onde começar?
http://www.gamedev.net/reference/articles/article2008.asp
Por onde continuar?
http://connect.creativelabs.com/openal/Documentation/OpenAL_Programmers_Guide.pdf
Lista de todos as funções disponíveis?
http://connect.creativelabs.com/openal/Documentation/OpenAL%201.1%20Specification.htm

OSS – Open Sound System (na teoria ela deve ser substituída pela ALSA, então talvez não vale a pena escolher ela a essa altura do campeonato 😀 de todo jeito ela é muito bem documentada):
http://en.wikipedia.org/wiki/Open_Sound_System
Por onde começar?
http://manuals.opensound.com/developer/
http://manuals.opensound.com/developer/DSP.html
Lista de todos as funções disponíveis?
http://manuals.opensound.com/developer/

ALSA – Advanced Linux Sound Architecture:
http://en.wikipedia.org/wiki/ALSA_%28Linux%29
Por onde começar?
Dei uma checada agora neste tutorial de introdução e está muito bom:
http://equalarea.com/paul/alsa-audio.html#interfaces
Aqui tem outros tutoriais, que não achei tão boas quanto a de cima.
http://www.alsa-project.org/main/index.php/Tutorials_and_Presentations
Lista de todos as funções disponíveis?
http://www.alsa-project.org/alsa-doc/alsa-lib/

Pra fazer objetos do Pure Data creio que vc raramente vá precisar usar libs como essa, pois na maioria das vezes vc precisará apenas implementar os algoritmos de DSP usando a entrada e saida de sinal do proprio objeto. essas libs servem pra vc ter entrada e saida da placa de som e o Pd já te dá isso. mas pra vc aprender som com c++independente de Pure Data essas libs
são boas opções.

independente da lib que vc escolher, vale muito a pena ler isso aqui:
http://manuals.opensound.com/developer/DSP.html
uma introdução a programação digital de áudio.

se vc ainda não viu como o formato PCM funciona pode ler na página 8 e 9 do meu trabalho de graduação:
https://jarbasjacome.wordpress.com/wp-content/uploads/2009/04/jjoj_tg.pdf

6 Respostas to “Como programar áudio em C++? / programação áudio C++”

  1. NICOS Says:

    olá tudo joia!? estou procurando uma biblioteca para captura de audio em c++ para simplesmente gravar a entrada do microfone em wav. seberia me indicar alguma(multiplataforma)?


    • salve, salve Nicos. se eu fosse fazer isso agora eu usaria OpenAL mesmo, já que é a lib multiplataforma que eu tenho usado pra audio. mas talvez o mais comum de usar seja o GStreamer que tbm é multiplataforma.
      Abraço.
      jjR

  2. gleison Says:

    quero desenvolver um player e com suporte para voip com o openAL e posivel faser um player e para o voip ele tambem posibilita este tipo de trabalho ?

    obs: muito bom seu poster !!
    agradeço pela ajuda!!


  3. Oi! Estou procrurando um programado especializado em aúdio e como decodificar o audio em outro tipo de informção, como comandos, tipo SIRI e Google Now…. É um projeto muito grande e pode ser muito bom para ambas as partes.

  4. DNascimento Says:

    Olá, tudo bem? Eu tenho um projeto de reconhecimento de voz para fazer, já consegui fazer em Matlab mas estou com dificuldades para transcrever em C_C++, tanto a parte de gravar os áudios quanto a parte de analisar os áudios em pontos gráficos, alguma sugestão?


  5. Olá Jarbas,

    Estou como muita dificuldade em iniciar com OpenAL.
    Me parece que é necessário baixar uma lib chamada alut.a e não a encontro em lugar algum.
    Você também poderia me dar a dica de como configurar o projeto em DEV C++ para usar o OpenAL?

    Um abraço,

    Tito


Deixar mensagem para DNascimento Cancelar resposta