56 lines
1.6 KiB
Markdown
56 lines
1.6 KiB
Markdown
# Audio Mental Model
|
|
|
|
Status: pedagogical
|
|
Companion spec: [`../specs/05-audio-peripheral.md`](../specs/05-audio-peripheral.md)
|
|
|
|
O modelo mental correto para áudio em PROMETEU é o de um periférico ativo com orçamento, não o de “som automático”.
|
|
|
|
## Philosophy
|
|
|
|
Som:
|
|
|
|
- consome tempo;
|
|
- consome memória;
|
|
- usa canais finitos;
|
|
- depende de comandos explícitos.
|
|
|
|
Isso aproxima PROMETEU de consoles e arcades clássicos em que o jogo “conversa” com um bloco de áudio com regras próprias.
|
|
|
|
## Audio CPU Metaphor
|
|
|
|
Uma metáfora útil é pensar em:
|
|
|
|
```text
|
|
[Game CPU] -> envia comandos em 60 Hz -> [AUDIO Peripheral]
|
|
|
|
|
v
|
|
Voices + Mixer
|
|
|
|
|
v
|
|
PCM Output
|
|
```
|
|
|
|
Essa metáfora não exige um thread dedicado. Ela só separa responsabilidades:
|
|
|
|
- a máquina define o modelo lógico;
|
|
- o host decide como entregar buffers contínuos;
|
|
- o jogo fala em comandos, não em manipulação direta do backend.
|
|
|
|
## Good Habits
|
|
|
|
- reutilizar samples;
|
|
- limitar vozes simultâneas;
|
|
- tratar som como evento intencional;
|
|
- separar música e efeitos;
|
|
- evitar disparar o mesmo som todo frame.
|
|
|
|
## Historical Direction
|
|
|
|
As influências principais aqui são:
|
|
|
|
- NES, pela clareza de canais limitados;
|
|
- SNES, por playback de sample e mistura;
|
|
- CPS-2 e Neo Geo, pela sensação de folga e presença de sample playback.
|
|
|
|
PROMETEU abstrai essas referências. Ele não tenta reproduzir nenhum desses sistemas literalmente.
|