You are on page 1of 23

Introduo s APIs SDL e OpenAL para o Processamento de udio

Fbio Weber Albiero weber@inf.ufsm.br PET Cincia da Computao / UFSM

Roteiro
1. Introduo 2. Conceitos SDL OpenAL 3. Implementao 4. Trabalhos Futuros 5. Referncias

Introduo
Qual a utilidade do udio na ara da computao? Entretenimento (jogos, tocadores de msica); Utilizado em outras aras (teleconferncias, etc); Quais ferramentas so utilizadas? SDL OpenAL Idia Trabalho final da disciplina de Computao Grfica Avanada;

SDL
Simple DirectiMedia Layer (SDL);

Biblioteca multimdia e multiplataforma;

SDL
Criador: Sam Lating; Data de lanamento: incio de 1998; Cria uma camada de abstrao para diversas plataformas de grficos, sons e entrada de APIs; Surgiu da necessidade de portar aplicaes de uma plataforma para outra; Arquivos com extenso .wav, .ogg, etc;

SDL
Escrita em linguagem C; Compatvel com as linguagens: 1. 2. 3. 4. 5. 6. 7. 8. C++ Ada Java Lua Perl PHP Python Ruby

SDL
multiplataforma; Camada transparente que prove suporte para operaes com pixels em 2D, som, acesso a arquivos, gerenciamento de eventos, tempo, threading ...

SDL
Frequentemente utilizada com OpenGL (API voltada a computao grfica);

SDL
Instalao Necessita da biblioteca complementar SDL Mixer para o udio; SDL Mixer: biblioteca com funes complexas de udio, principalmente para mixagem de som;

SDL
Compilao
g++ -o exemplo *.cpp -lSDLmain -lSDL -lSDL_mixer g++ -o exemplo *.cpp:

operao padro de compilao bibliotecas necessrias que sero

-lSDLmain -lSDL -lSDL_mixer:

"linkadas" ao programa

OpenAL
Open Audio Library (OpenAL); API livre e multiplataforma; Desenvolvida para manipulao com udio multicanal tridimensional (eixos x, y e z);

OpenAL
Desenvolvedor: Loki Software; Atualmente o projeto pertence Creative Technology; Recebe apoio da Apple e entusiastas do software livre; Objetivo: facilitar a portabilidade de jogos criados em Windows para Linux; Arquivos com extenso .wav, .ogg, etc;

OpenAL
Exemplos de softwares que utilizam o OpenAL: 1. 2. 3. 4. 5. Doom 3 Quake 4 America`s Army Battlefield 2 Blender (aplicativo de modelagem 3D)

Quake 4

Blender

OpenAL
As funcionalidades da biblioteca esto baseadas em trs conceitos: 1. source objects (objetos que emitem som): contem referncia para um buffer alm de atributos como velocidade, posio, direo e intensidade; 2. audio buffers (som que ser emitido por algum objeto): som; 3. listener (ouvinte): determinado atravs dos atributos velocidade, posio e direo;

OpenAL
capaz de criar efeitos de atenuao de acordo com a distncia e efeito Doppler; ALUT: biblioteca de funcionalidade auxiliar;

OpenAL
Instalao Necessita da biblioteca auxiliar ALUT; Compilao
gcc -o exemplo *.cpp -lglut -lopenal -lalut g++ -o exemplo *.cpp: -lglut -lopenal -lalut:

operao padro de compilao

bibliotecas necessrias que sero "linkadas" ao programa

Implementao
SDL Fcil de implementar; Baseado em delay; Monocanal; Ideal para o desenvolvimento de aplicativos voltados processamento de udio com sada nica (tocadores de msica);

Implementao

Implementao
OpenAL Difcil de implementar; Baseado em diversas fontes sonoras e ouvinte; Necessita de interface grfica (utilizao do OpenGL); Multicanal; Ideal para o desenvolvimento de jogos;

Implementao

Trabalhos Futuros
Aprofundar o estudo sobre ambas as APIs; Criar um apllicativo voltado ao processamento de udio;

Referncias
SDL http://www.libsdl.org/ http://pt.wikipedia.org/wiki/SDL_(biblioteca) OpenAL http://connect.creativelabs.com/openal/default.aspx http://pt.wikipedia.org/wiki/OpenAL http://pt.wikipedia.org/wiki/Blender

Obrigado pela ateno! Perguntas?