Exploration du moteur audio Windows Vista

Cette rubrique présente une vue d’ensemble du moteur audio Windows Vista. Il se concentre sur les concepts qui vous aideront à comprendre comment les API et les SPO fonctionnent ensemble.

Le diagramme suivant présente une disposition simplifiée de la structure interne du moteur audio.

Diagramme illustrant la disposition simplifiée d’un moteur audio Windows Vista.

Comme le montre le diagramme, les APO et les SPO fournis par le système sont les composants de base du moteur audio. Le moteur audio configure les API et les SPO fournis par le système dans des composants appelés canaux. Il existe deux types de canaux dans le moteur audio :

  • Les canaux de flux sont constitués d’APO et de SPO qui effectuent un traitement audio numérique local au flux à partir d’une seule application. L’objet sAPO dans ce type de canal est appelé sAPO à effets locaux (LFX sAPO).

  • Les canaux d’appareil sont constitués d’APO et de sPO qui effectuent un traitement audio numérique qui affecte tous les flux à l’échelle mondiale. L’objet sAPO dans ce type de canal est appelé sAPO à effets globaux (GFX sAPO).

Le tableau suivant montre les SPO disponibles dans le moteur audio Windows Vista et le type d’effets système qu’ils appliquent.

SAPO Windows Vista Effet système

Bass Boost

LFX

Gestion des basses

LFX

Péréquation du bruit

LFX

Protection à basse fréquence

LFX

Remplissage de l’orateur

LFX

Fantôme de l’orateur

LFX

Surround virtuel

LFX

Surround virtualisé sur casque

LFX

Son amélioré pour les ordinateurs portables

GFX

Correction de salle

GFX

Lorsqu’une application audio lance le traitement audio, le moteur audio configure les API fournies par le système et les sAPOs dans un graphique audio pour traiter les données audio numériques. Le mécanisme utilisé par le moteur audio pour créer le graphe audio est un détail système et ne sera pas abordé.

L’application audio peut lancer la connexion en mode partagé ou en mode exclusif. Bien qu’un ensemble par défaut de sAPOs soit installé avec Windows Vista, les SPO ne sont pas considérés comme des composants système et sont donc personnalisables.

Mode partagé

En mode partagé, une application audio partage le matériel audio avec d’autres applications audio qui s’exécutent dans d’autres processus. Le moteur audio mixe les flux de ces applications et lit le mix résultant via le matériel. Toute application qui ouvre un flux en mode partagé doit sélectionner le format de mixage utilisé par le moteur audio. L’avantage de l’utilisation du mode partagé est que le moteur audio Windows Vista fournit un objet de traitement audio (APO) intégré pour fournir les fonctionnalités de prise en charge nécessaires. L’inconvénient de l’utilisation du mode partagé est que la latence du flux audio est plus élevée qu’en mode exclusif. L’exemple de code suivant montre la syntaxe d’initialisation d’un flux audio en mode partagé.

 hResult = pAudioClient->Initialize(
        AUDCLNT_SHAREMODE_SHARED, 
        0,
        0,
        0,
 pWfx,
        &m_SubmixGuid);

Mode exclusif

En revanche, lorsqu’une application ouvre un flux en mode exclusif, l’application dispose d’un accès exclusif au matériel audio. Dans ce mode, l’application peut sélectionner n’importe quel format audio pris en charge par le point de terminaison. L’avantage de l’utilisation du mode exclusif est que la latence du flux audio est inférieure à celle du mode partagé. L’inconvénient de l’utilisation du mode exclusif est que vous devez fournir votre propre APO pour gérer les fonctionnalités de prise en charge du moteur audio. Seul un petit nombre d’applications de niveau professionnel nécessitent ce mode de fonctionnement. L’exemple de code suivant montre la syntaxe d’initialisation d’un flux audio en mode exclusif.

 hResult = pAudioClient->Initialize(
            AUDCLNT_SHAREMODE_EXCLUSIVE,
            0,
            0,
            0,  
 pWfxEx,
            &m_SubmixGuid);

Une fois qu’une application a lancé le traitement audio, le générateur de graphique configure les sAPOs dans un graphique audio et initialise également les sAPOs. Le service audio négocie ensuite avec l’APO LFX pour établir le format des données audio à l’entrée et à la sortie de l’APO. Pour plus d’informations, consultez Format de négociation.