5.2 KiB
< Voltar | Sumário | Adiante >
🔊 Periférico AUDIO (Sistema de Som)
1. Visão Geral
O Periférico AUDIO é responsável pela geração e mistura de som no PROMETEU.
Assim como os demais subsistemas, o áudio:
- não é automático
- não é gratuito
- não é mágico
Cada som ouvido é resultado de comandos explícitos, executados sob orçamento de tempo e recursos.
Som também consome tempo. Som também consome memória.
2. Filosofia do Sistema de Áudio
PROMETEU trata áudio como:
- um periférico ativo
- com canais limitados, previsíveis
- e comportamento determinístico
O objetivo não é realismo absoluto, mas clareza arquitetural.
3. Componentes do Periférico AUDIO
O sistema de áudio é composto por:
- Canais de áudio — fontes independentes de som
- Samples — dados sonoros curtos
- Music streams — trilhas contínuas
- Mixer — combinação final dos canais
Cada componente tem custo explícito.
4. Canais de Áudio
4.1 Definição
Um canal de áudio representa uma fonte sonora independente.
Características:
- número máximo de canais é limitado
- cada canal toca um som por vez
- canais são misturados no output final
Exemplo conceitual:
Max Channels:8
4.2 Uso dos Canais
Quando um som é tocado:
audio.play(sampleId, channel)
Se o canal estiver ocupado:
-
o som anterior pode ser interrompido
-
ou a chamada pode ser ignorada
(dependendo da política definida)
PROMETEU não gerencia prioridades automaticamente.
5. Samples (Efeitos Sonoros)
5.1 Definição
Um sample é um trecho curto de áudio pré-carregado.
Usado para:
- efeitos (tiros, passos, colisões)
- feedback imediato
- sons repetitivos
Samples:
- ocupam memória
- são imutáveis durante execução
- devem ser carregados conscientemente
5.2 Custo dos Samples
Cada sample tem custo associado a:
- tamanho em memória
- taxa de reprodução
- duração
Reproduzir muitos samples simultaneamente:
- consome mais ciclos
- aumenta pressão no mixer
6. Music Streams (Trilha Sonora)
6.1 Definição
Music streams são sons contínuos, geralmente mais longos.
Características:
- tocados em loop ou sequência
- geralmente ocupam um canal dedicado
- podem ser streamados para reduzir uso de memória
6.2 Controle de Música
Operações típicas:
audio.musicPlay(trackId)
audio.musicStop()
audio.musicSetVolume(v)
Essas operações:
- têm custo explícito
- afetam o mixer global
PROMETEU não faz crossfade automático sem instrução explícita.
7. Mixer de Áudio
7.1 Função do Mixer
O mixer combina os canais ativos em um único sinal de saída.
O custo do mixer depende de:
- número de canais ativos
- complexidade do som
- efeitos aplicados (se houver)
Mais canais ativos → mais custo por frame.
7.2 Efeitos Simples
PROMETEU pode suportar efeitos básicos:
- volume por canal
- pan (esquerda/direita)
- mute
Efeitos:
- são explícitos
- têm custo mensurável
- não são aplicados automaticamente
8. Sincronização Temporal do Áudio
8.1 Relação com o Clock do Sistema
O áudio em PROMETEU é sincronizado com o clock base de 60 Hz.
Isso significa:
- atualizações de áudio ocorrem por frame
- eventos sonoros são disparados em ticks definidos
- latência é previsível e estável
8.2 Áudio como Evento
PROMETEU incentiva tratar áudio como evento, não como estado contínuo:
- tocar som ao ocorrer uma ação
- evitar chamadas repetidas por frame
- desacoplar áudio da lógica pesada
Isso reduz custo e melhora clareza.
9. Áudio e CAP
O sistema de áudio participa do Execution CAP:
- reprodução de sons consome ciclos
- mixagem entra no orçamento por frame
- picos de áudio são registrados
Exemplo de relatório:
Frame 24510:
audio.play():120cycles
audio.mixer():380cycles
Excessos:
- não bloqueiam o jogo
- aparecem na certificação
10. Boas Práticas de Áudio
PROMETEU incentiva:
- reutilizar samples
- limitar canais simultâneos
- tratar áudio como evento
- separar música de efeitos
E desencoraja:
- tocar sons repetidamente por frame
- usar muitos canais sem necessidade
- samples grandes para efeitos simples
11. Relação com Consoles Clássicos
O modelo de áudio PROMETEU é inspirado em:
- canais dedicados do NES
- mixagem simples do SNES
- hardware de áudio previsível
Mas abstraído para:
- clareza
- simplicidade
- ensino
O objetivo é entender como o som é produzido, não emular chips específicos.
12. Implicações Pedagógicas
O Periférico AUDIO permite ensinar:
- concorrência limitada
- eventos temporais
- impacto de recursos em tempo real
- separação entre lógica e apresentação sonora
Tudo isso com feedback auditivo e mensurável.
13. Resumo
- áudio é um periférico explícito
- canais são limitados
- samples ocupam memória
- mixagem consome ciclos
- áudio participa do CAP
- som é consequência de decisões técnicas