sexta-feira, 13 de janeiro de 2012

APIs para desenvolvimento de software com áudio

Desenvolver uma aplicação que pode ser usada diretamente sobre a camada de áudio do SO é confusão. O Windows tem o DirectSound, WinKS, WASAPI, Windows Multimedia Library e ASIO, o Linux tem o FFADO, ALSA e OSS e o MacOS tem o Sound Manager, ASIO e Core Audio. Implementar um software que funcione em tudo isto pode ser transtorno.

Encontrei algumas alternativas que parecem ser viáveis: JUCE, SDL, OpenAL, RTAudio e PortAudio. Basicamente tratam-se de 3 APIs abertas que permitem escrever aplicações de áudio e compilá-la para aquela lista acima.

  • O JUCE (http://www.rawmaterialsoftware.com/juce.php)  promete atender até implementações de Audio Unit (plugins tipo VST para Mac) e VST. Além disto possui biblioteca para GUI. Por isto pareceu um quase Qt.

  • O SDL (http://www.libsdl.org/) permite acesso também ao teclado, webcam, mouse e outras coisas. É dirigido para jogos. Não me convenceu apesar de ser uma alternativa para futuramente incluir stream de vídeo. Se não estou enganado possui biblioteca para Arduino. E ATARI!

  • O openAL foi feito pela creative e pode ser uma alternativa para trabalhar com  espacialização. Pareceu-me que ela foi feita para isto.  É uma API para multicanais de saída muito utilizada para jogos, por exemplo (http://connect.creativelabs.com/openal/OpenAL%20Wiki/Games.aspx). Pra ajudar, parece que funciona em Android. Pelo que li, não possui suporte ao MIDI.

  • O RTAudio foi feito por um tal Gary Scavone, na época no CCRMA em Stanford (https://ccrma.stanford.edu/software/stk/index.html)  e atualmente na universidade de McGill (http://www.music.mcgill.ca/~gary/rtaudio/). Lembro de ter visto ele no código do Jacktrip. Acho que o jacktrip, talvez por ter sido feito no mesmo CCRMA, usa ou usava-o. Esta API tem um problema que é ter o mesmo nome de uma API da Microsoft. :-)

  • O PortAudio me pareceu a API mais madura. Pd, CSound e Audacity, por exemplo, estão em PortAudio (http://www.portaudio.com/apps.html). Parece funcionar bem.
Resumindo, preciso ler mais sobre isto...

Um comentário:

Anônimo disse...
Este comentário foi removido por um administrador do blog.