< [Voltar](chapter-4.md) | [Sumário](table-of-contens.md) | [Adiante](chapter-6.md) > # 🔊 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 < [Voltar](chapter-4.md) | [Sumário](table-of-contens.md) | [Adiante](chapter-6.md) >