Configuration requise pour les Node-Ordering DirectSound

Une broche de mélangeur DirectSound 2D ou 3D doit avoir une chaîne de nœuds qui contient la séquence de nœuds suivante :

Les nœuds de cette liste s’affichent dans l’ordre dans lequel ils sont rencontrés par la diffusion de données dans la broche. D’autres nœuds peuvent être entrelacés entre ces nœuds sans causer de problèmes, à condition que l’ordre ci-dessus soit conservé.

Une broche 2D nécessite tous les nœuds de la liste précédente, à l’exception du nœud 3D, qui est facultatif. Une broche 3D nécessite tous les nœuds de la liste, y compris le nœud 3D.

Le nœud SRC (sample-rate conversion) doit précéder le nœud SOMME. Les nœuds SRC et SUM sont généralement adjacents, bien qu’il ne s’agisse pas d’une exigence. La méthode IDirectSoundBuffer::SetFrequency (voir Microsoft Windows SDK documentation) perturbe le taux de rééchantillonnage du nœud SRC.

Un mélangeur qui contient uniquement des nœuds SRC et SUM est suffisant pour mélanger des flux gérés par des pilotes système tels que SWMidi et Redbook (voir SWMidi System Driver et Redbook System Driver), mais DirectSound exige également que deux nœuds de volume et un nœud supermixer précèdent le nœud SUM. DirectSound envoie les modifications de volume résultant des appels IDirectSoundBuffer::SetVolume au premier nœud de volume et envoie des effets de panoramique des appels IDirectSoundBuffer::SetPan au deuxième nœud de volume.

DirectSound peut produire des effets 3D sur une broche 2D à l’aide des appels SetVolume, SetPan et SetFrequency pour contrôler le volume et les nœuds SRC :

  • Les appels SetVolume peuvent simuler des changements dans la distance d’une source sonore par rapport à l’écouteur.

  • Les appels SetPan peuvent simuler des changements d’orientation d’une source sonore par rapport à l’écouteur.

  • Les appels SetFrequency peuvent simuler des effets Doppler et des fonctions de transfert (fonctions de transfert liées à la tête).

Le nœud supermixer est une matrice à barres croisées qui connecte les canaux d’entrée M à N canaux de sortie, où N doit être égal au nombre de canaux dans le flux de sortie final de votre appareil.

Le nœud 3D facultatif est requis pour gérer les effets 3D accélérés par le matériel (voir Prise en charge de l’accélération 3D DirectSound dans WDM Audio), mais il n’est pas nécessaire pour le traitement 3D émulé par logiciel. La plupart des implémentations existantes placent le nœud 3D avant le nœud SRC et entre le premier nœud de volume et le nœud supermixer, mais d’autres configurations sont possibles.

Le flux d’entrée vers le nœud 3D contient généralement un seul canal. Dans DirectSound 8.0 et versions ultérieures, seules les mémoires tampons PCM mono peuvent être créées avec des effets 3D. Toutefois, les versions antérieures de DirectSound prennent en charge les nœuds 3D avec des flux d’entrée mono et stéréo, et les pilotes doivent prendre en charge les deux pour garantir la compatibilité avec les applications plus anciennes.