Skip to main content

SetShapeFiltVolCommand

Initialise une commande FLTVOL SHAPE.

Syntaxe

Paramètres

command   _Inout_
Type : SHAPE_FLOWGRAPH_COMMAND*
La commande SHAPE_FLOWGRAPH_COMMAND à initialiser. contextId   
Type : UINT32
ID du contexte Filtre/Volume (index) auquel cette commande fera référence. inputMixBuffer   
Type : UINT32
ID de la mémoire tampon de mixage d’entrée. outputMixBuffer   
Type : UINT32
ID de la mémoire tampon de mixage de sortie.

Valeur de retour

Type : HRESULT Si la fonction réussit, elle retourne S_OK. Si un ou plusieurs arguments ne sont pas valides, la fonction retourne E_INVALIDARG.

Remarques

Le bloc Filtre/Volume (FLTVOL) sert à modéliser l’occlusion des sons, c’est-à-dire le son qui contourne ou traverse un objet, et répartit l’énergie sonore entre plusieurs haut-parleurs pour modéliser la direction d’arrivée du son. Le bloc FLTVOL prend un seul canal de données d’entrée depuis une mémoire tampon de mixage, le filtre et en ajuste le volume, puis écrit la sortie dans une mémoire tampon de mixage. En général, plusieurs contrôles FLTVOL sont utilisés pour générer un panoramique à une entrée et plusieurs sorties, comme un panoramique en son surround. Le panoramique sert généralement à prendre un son et à effectuer un panoramique sur n haut-parleurs, avec un ou plusieurs effets de réverbération. L’ajout du filtre à variables d’état permet à un titre de créer facilement des effets de distance améliorés ainsi que des effets d’occlusion et d’obstruction de type I3DL2. De par sa nature, le filtre à variables d’état peut créer des résonances qui font dépasser 1,0 (ou -1,0) aux valeurs intermédiaires. Pour atténuer les problèmes causés par la saturation des valeurs intermédiaires, le bloc FLTVOL dispose d’une mise à l’échelle de marge programmable, appliquée au signal entrant puis compensée en sortie. La mise à l’échelle est obtenue par un décalage arithmétique à droite des données d’un certain nombre de bits. Le champ headroom du contexte indique le nombre de bits de décalage à droite appliqués au signal entrant avant le traitement FLTVOL (0, 1, 2 ou 3). Ainsi, en spécifiant une valeur de marge de 3, le filtre à variables d’état peut conserver 3 bits supplémentaires (18 dB) de marge pour les résonances et les dépassements créés en interne. Bien entendu, le décalage à droite des données entrantes réduit nécessairement la précision dans les valeurs basses. Les bits de poids faible du signal audio entrant correspondant à la marge sont définitivement perdus. Par conséquent, les bits de marge ne doivent généralement être définis à une valeur non nulle que s’il est établi qu’une saturation interne s’est produite dans le filtre à variables d’état. Pour le vérifier, consultez la valeur du bit Internal Overflow dans le contexte FLTVOL. Lorsque les données sources d’origine sont sur 16 bits, par exemple s’il s’agit de XBOX Media Audio (XMA), les bits de marge peuvent généralement être définis à leur maximum (3) sans changement audible du son, puisque les bits de poids faible sont de toute façon complétés par des zéros. L’implémentation flexible du filtre à variables d’état permet également d’appliquer un filtrage résonant à une voix afin de faciliter la création d’effets audio intéressants et de variations. Les paramètres du filtre et les attributs de volume sont ajustés progressivement échantillon par échantillon afin d’assurer une transition fluide entre les points de consigne d’entrée et de sortie. Le bloc FLTVOL est implémenté sous la forme d’un filtre de Chamberlin. Le filtre fournit trois modes, passe-haut, passe-bas et passe-bande, avec un contrôle variable de Q (bande passante). Les paramètres du filtre de Chamberlin sont calculés comme suit.
Les paramètres f et q sont calculés par logiciel en dehors du bloc SHAPE (Scalable Hardware Audio Processing Engine). Lorsqu’un coefficient est mis à jour, il évolue progressivement vers la nouvelle valeur au cours d’une trame audio. Des bits de contrôle déterminent quelle sortie (réjection de bande, passe-haut, passe-bande ou passe-bas) est utilisée comme sortie finale du bloc FLTVOL. Les données de contexte de chaque canal ou flux sont stockées dans la mémoire système. Bien que les performances soient limitées à 2560 flux simultanés à 48 kHz, ce qui signifie que SHAPE peut traiter jusqu’à 2560 contextes FLTVOL par trame audio, le nombre de contextes adressables en mémoire est plus élevé afin de simplifier les scénarios de réutilisation des flux. Le comportement de filtrage est conçu pour être identique à celui de XAudio2.

Configuration requise

En-tête : shapeflowgraph.h Plateformes prises en charge : consoles de la famille XBOX One et consoles XBOX Series

Voir aussi

Vue d’ensemble de l’ACP Vue d’ensemble de SHAPE shapeflowgraph
Last modified on October 6, 2026