Requisitos de Node-Ordering do DirectSound

Um pino de mixer 2D ou 3D do DirectSound deve ter uma cadeia de nós que contenha a seguinte sequência de nós:

Os nós nessa lista aparecem na ordem em que são encontrados pelo streaming de dados para o pino. Outros nós podem ser intercalados entre esses nós sem causar problemas, desde que a ordenação acima seja preservada.

Um pin 2D requer todos os nós na lista anterior, exceto o nó 3D, que é opcional. Um pino 3D requer todos os nós na lista, incluindo o nó 3D.

O nó SRC (conversão de taxa de amostra) deve preceder o nó SOMA. Os nós SRC e SUM normalmente são adjacentes, embora isso não seja um requisito. O método IDirectSoundBuffer::SetFrequency (consulte SDK do Microsoft Windows documentação) perturba a taxa de resampling do nó SRC.

Um mixer que contém apenas nós SRC e SUM é suficiente para misturar fluxos gerenciados por drivers do sistema, como SWMidi e Redbook (consulte Driver do Sistema SWMidi e Driver do Sistema Redbook), mas o DirectSound também exige que dois nós de volume e um nó de supermixer precedam o nó SOMA. O DirectSound envia alterações de volume resultantes de chamadas IDirectSoundBuffer::SetVolume para o primeiro nó de volume e envia efeitos panorâmicos de chamadas IDirectSoundBuffer::SetPan para o segundo nó de volume.

O DirectSound pode produzir efeitos 3D em um pin 2D usando as chamadas SetVolume, SetPan e SetFrequency para controlar o volume e os nós SRC:

  • As chamadas SetVolume podem simular alterações na distância de uma fonte de som do ouvinte.

  • As chamadas SetPan podem simular alterações na orientação de uma fonte de som em relação ao ouvinte.

  • As chamadas SetFrequency podem simular efeitos do Doppler e HRTFs (funções de transferência relacionadas à cabeça).

O nó supermixer é uma matriz de barras cruzadas que conecta canais de entrada M a N canais de saída, em que N deve ser igual ao número de canais no fluxo de saída final do dispositivo.

O nó 3D opcional é necessário para gerenciar efeitos 3D acelerados por hardware (consulte Suporte à aceleração de DirectSound 3D no áudio WDM), mas não é necessário para processamento 3D emulado por software. A maioria das implementações existentes coloca o nó 3D antes do nó SRC e entre o primeiro nó de volume e o nó do supermixer, mas outras configurações são possíveis.

O fluxo de entrada para o nó 3D normalmente contém um único canal. No DirectSound 8.0 e posterior, somente buffers PCM mono podem ser criados com efeitos 3D. No entanto, as versões anteriores do DirectSound dão suporte a nós 3D com fluxos de entrada mono e estéreo, e os drivers devem dar suporte a ambos para garantir a compatibilidade com aplicativos mais antigos.