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
fevereiro 26, 2013 às 5:40 pm
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)?
fevereiro 26, 2013 às 10:53 pm
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
maio 9, 2013 às 3:24 pm
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!!
julho 29, 2015 às 6:07 pm
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.
janeiro 12, 2016 às 3:25 pm
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?
janeiro 30, 2016 às 1:51 pm
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