Requisitos de DirectSound Node-Ordering
Un pin de mezclador directSound 2D o 3D debe tener una cadena de nodos que contenga la siguiente secuencia de nodos:
Nodo de volumen (consulte KSNODETYPE_VOLUME).
Nodo 3D (este nodo es opcional. Consulte KSNODETYPE_3D_EFFECTS).
Nodo Supermixer (consulte KSNODETYPE_SUPERMIX).
Nodo de volumen (para efectos de movimiento panorámico)
Nodo SRC (consulte KSNODETYPE_SRC).
Nodo SUM (consulte KSNODETYPE_SUM).
Los nodos de esta lista aparecen en el orden en que se encuentran mediante el streaming de datos en la patilla. Otros nodos se pueden intercalar entre estos nodos sin causar problemas, siempre que se conserve la ordenación anterior.
Una patilla 2D requiere todos los nodos de la lista anterior, excepto para el nodo 3D, que es opcional. Un pin 3D requiere todos los nodos de la lista, incluido el nodo 3D.
El nodo SRC (conversión de frecuencia de muestreo) debe preceder al nodo SUM. Los nodos SRC y SUM suelen ser adyacentes, aunque esto no es un requisito. El método IDirectSoundBuffer::SetFrequency (consulte Microsoft Windows SDK documentación) aturbe la tasa de remuestreo del nodo SRC.
Un mezclador que solo contiene nodos SRC y SUM es suficiente para mezclar secuencias administradas por controladores del sistema como SWMidi y Redbook (consulte SWMidi System Driver and Redbook System Driver), pero DirectSound también requiere que dos nodos de volumen y un nodo supermezclador preceden al nodo SUM. DirectSound envía cambios de volumen resultantes de llamadas IDirectSoundBuffer::SetVolume al primer nodo de volumen y envía efectos de movimiento panorámico desde llamadas IDirectSoundBuffer::SetPan al segundo nodo de volumen.
DirectSound puede producir efectos 3D en un pin 2D mediante las llamadas SetVolume, SetPan y SetFrequency para controlar el volumen y los nodos SRC:
Las llamadas SetVolume pueden simular cambios en la distancia de un origen de sonido desde el agente de escucha.
Las llamadas a SetPan pueden simular cambios en la orientación de un origen de sonido en relación con el agente de escucha.
Las llamadas a SetFrequency pueden simular efectos y HRTFs (funciones de transferencia relacionadas con la cabeza).
El nodo supermezclador es una matriz de barras cruzadas que conecta los canales de entrada M a N canales de salida, donde N debe ser igual al número de canales del flujo de salida final del dispositivo.
El nodo 3D opcional es necesario para administrar los efectos 3D acelerados por hardware (consulte Compatibilidad con la aceleración de DirectSound 3D en audio WDM), pero no es necesario para el procesamiento 3D emulado por software. La mayoría de las implementaciones existentes colocan el nodo 3D delante del nodo SRC y entre el primer nodo de volumen y el nodo supermezclador, pero otras configuraciones son posibles.
El flujo de entrada al nodo 3D normalmente contiene un único canal. En DirectSound 8.0 y versiones posteriores, solo se pueden crear búferes pcM mono con efectos 3D. Sin embargo, las versiones anteriores de DirectSound admiten nodos 3D con flujos de entrada mono y estéreo, y los controladores deben admitir ambos para garantizar la compatibilidad con aplicaciones anteriores.