| Anterior | Seguinte | Índice | Actas do 8º EPCG | Fundo |

5. Estrutura da Aplicação

Esta aplicação foi desenvolvida segundo uma metodologia OO (Orientada a Objectos) desde a fase de análise até à sua implementação. Uma vez que a aplicação deverá funcionar num computador pessoal, a escolha do sistema operativo recaiu naturalmente num sistema Windows 32 bits, tal como o Windows 95 ou o Windows NT. O código desenvolvido permite uma fácil reutilização em futuros desenvolvimentos de outros sistemas de síntese de Som 3D dada a sua estrutura modular.

Na figura 5 apresenta-se o esquema OMT [Rum91] simplificado que serviu de base ao desenvolvimento desta aplicação. Nas secções seguintes descrevem-se as implementações das fontes sonoras, objectos de simulação e sistema de som.

5.1. Fontes Sonoras

A modelação das diferentes fontes sonoras corresponde à primeira fase no processo de síntese de Som 3D (secção 0).

Uma "Fonte Sonora", é definida como sendo um objecto que permite a caracterização de um determinado som, baseado numa associação a um objecto "Amostra" que representa uma amostra de som armazenada no banco de sons do sintetizador.

Existe adicionalmente uma hierarquia de classes de objectos derivados da "Fonte Sonora" e que herdam as características da classe de objectos base, permitindo modelar comportamentos distintos. São derivadas directamente três classes de objectos a partir da "Fonte Sonora"; uma "Fonte Sonora Impulsiva" que modela as características de uma fonte sonora que apenas reproduz a amostra de som uma única vez quando actuada (por exemplo o som de uma colisão), uma "Fonte Sonora Cíclica" permitindo modelar fontes sonoras que reproduzem a amostra ciclicamente enquanto esta estiver activada (por exemplo uma buzina) e uma "Fonte Sonora de Altura Variável". Desta última classe são derivadas outras duas, que permitem a diferente implementação dos algoritmos que alteram a altura e a intensidade do som produzido, com base nos diferentes fenómenos que modelam. A "Fonte Sonora Motorizada" simula o comportamento de um motor e a "Fonte Sonora de Deslocamento" modela os efeitos da fricção e da turbulência provocadas por determinados objectos ao deslocarem-se sobre uma determinada superfície ou por um determinado meio.

Fig. 5 - Diagrama OMT simplificado da aplicação de síntese de Som 3D.

5.2. Objectos de Simulação

O espaço tridimensional da simulação é povoado por objectos geométricos. A classe que modela estes objectos é a classe "Objecto". Cada instância desta classe tem como atributos, vectores tridimensionais, representando a sua posição e velocidade relativas ao referencial do observador. Para além destes atributos, existe um atributo de identificação (ID) que permite a sincronização destes objectos com os objectos que povoam a base de dados do simulador.

A partir desta classe deriva-se uma especialização, denominada "Objecto Móvel", que permite a modelação de objectos que se deslocam através de meios diversos (por exemplo, um automóvel pode andar por estradas de asfalto, paralelo ou terra, produzindo sons distintos em cada caso), estando os objectos desta classe associados a objectos da classe "Meio".

Uma especialização da classe "Objecto Móvel" denominada "Objecto Motorizado" modela o efeito de objectos que possuem motor.

É a partir da classe "Objecto" e obviamente das classes derivadas desta, que se realiza a instanciação das fontes sonoras aos objectos, correspondendo à segunda fase do processo de síntese de Som 3D (secção 0).

A instanciação de uma fonte sonora a um objecto é realizada através de um "Evento". Cada evento referencia uma fonte sonora e controla a sua activação ou desactivação para o objecto respectivo. Uma fonte sonora pode estar associada a vários objectos distintos, permitindo por exemplo que uma só buzina possa ser instanciada em diversos automóveis.

5.3. Sistema de Som

As duas últimas fases da processo de síntese de Som 3D são modeladas através de uma única instância da classe "Sistema de Som". A classe "Sistema de Som" é uma agregação de objectos de outras três classes; "Microfone", "AWE32" e "Fila de Prioridade".

A classe "Microfone" corresponde aos microfones virtuais referidos na terceira fase do processo de síntese de Som 3D (secção 0). Os microfones situam-se na origem do referencial, posição correspondente ao utilizador.

Existe uma outra classe derivada desta que é a classe "Microfone de efeitos". Este microfone permite captar os eventos auditórios produzidos pelo veículo de simulação. No caso de um simulador automóvel, por exemplo, é possível gerar o som do motor bem como do seu deslocamento sobre o pavimento através de um canal de som próprio, possibilitando a utilização de uma coluna de som com características mais específicas (por exemplo um subwoofer) e a sua colocação numa posição mais estratégica (como por exemplo no interior do simulador).

A classe "AWE32" é outra das classes de objectos que compõem o sistema de som e permite a modelação do sintetizador de amostragem de som das placas de som Sound Blaster AWE32 que realizam a reprodução de som, criando uma camada de alto nível sobre o hardware utilizado. Cada objecto "AWE32" é uma agregação de dois objectos "Canal de Som", correspondentes à saída estereofónica da placa de som, e 16 objectos "Voz MIDI" representando o respectivo dispositivo (voice). Cada instância da classe "Microfone" deve estar associada a um canal de som de forma a que o sinal sonoro captado por esta seja reproduzido pelo sistema de som. Os sintetizadores das placas de som são controlados através do protocolo MIDI. Esta implementação permite facilmente adaptar a aplicação para outro tipo de hardware de geração de som.

Outra das classes que constituem o sistema de som, é a classe "Fila de Prioridade" que gere os sons a serem reproduzidos, baseados na sua prioridade. Após o rastreio de todas as instanciações de fontes sonoras e cálculo da sua transformação, as 16 prioritárias são processadas pelo respectivo objecto "Voz MIDI", sendo a transformação convertida para comandos MIDI. Para o cálculo das transformações, são tidos em conta os fenómenos acústicos do ambiente assim como a sensibilidade dos microfones.


| Anterior | Seguinte | Índice | Actas do 8º EPCG | Topo |