Architecture des objets de traitement audio

Les objets de traitement audio (APO) fournissent un traitement du signal numérique basé sur un logiciel personnalisable pour les flux audio Windows.

Vue d’ensemble des objets de traitement audio

Windows permet aux oem et aux fabricants de matériel audio tiers d’inclure des effets de traitement du signal numérique personnalisés dans le cadre des fonctionnalités à valeur ajoutée de leur pilote audio. Ces effets sont empaquetés sous la forme d’un effet système en mode utilisateur, des objets de traitement audio (APO).

Les objets de traitement audio (APO) fournissent un traitement du signal numérique basé sur un logiciel pour les flux audio Windows. Un APO est un objet hôte COM qui contient un algorithme écrit pour fournir un effet DSP (Digital Signal Processing) spécifique. Cette fonctionnalité est appelée « effet audio ». Les exemples d’API incluent les égaliseurs graphiques, la réverbération, le trémolo, l’annulation d’écho acoustique (AEC) et le contrôle de gain automatique (AGC). Les API sont des objets com, en temps réel et en cours de traitement.

Note Les descriptions et la terminologie de cette documentation font principalement référence aux périphériques de sortie, tels que les haut-parleurs. Toutefois, la technologie est symétrique et fonctionne essentiellement à l’inverse pour les périphériques d’entrée.

API logicielles et DSP matérielles

Un processeur de signal numérique (DSP) matériel est un microprocesseur spécialisé (ou un bloc SIP), dont l’architecture est optimisée pour les besoins opérationnels du traitement du signal numérique. Il peut y avoir des avantages significatifs à implémenter le traitement audio dans du matériel spécialement conçu par rapport à l’utilisation d’une APO logicielle. L’un des avantages est que l’utilisation du processeur et la consommation d’énergie associée peuvent être inférieures avec une DSP implémentée matériellement.

Il existe d’autres avantages et inconvénients à prendre en compte, spécifiques aux objectifs et contraintes de vos projets que vous voudrez prendre en compte avant d’implémenter une APO basée sur un logiciel.

Les effets basés sur le logiciel sont insérés dans le canal d’appareil logiciel lors de l’initialisation du flux. Ces solutions traitent tous leurs effets sur le processeur main et ne s’appuient pas sur du matériel externe. Ce type de solution est idéal pour les solutions audio Windows traditionnelles telles que les périphériques HDAudio, USB et Bluetooth lorsque le pilote et le matériel prennent uniquement en charge le traitement RAW. Pour plus d’informations sur le traitement RAW, consultez Modes de traitement du signal audio.

APO proxy pour DSP matériel

Tous les effets appliqués dans le DSP matériel doivent être publiés via une APO proxy. Microsoft fournit un proxy APO (MsApoFxProxy.dll) par défaut. Pour utiliser l’APO fourni par Microsoft, cet ensemble de propriétés et cette propriété doivent être pris en charge.

Si vous le souhaitez, vous pouvez implémenter votre propre APO proxy.

API windows fournies (système)

Windows installe un ensemble d’API par défaut, qui fournissent un certain nombre d’effets audio différents. Pour obtenir la liste des effets APO fournis par le système, consultez Modes de traitement du signal audio.

Les oem peuvent inclure toutes les API fournies par le système ou remplacer tout ou partie d’entre eux par des API personnalisées.

API personnalisées

Il est possible de créer des API personnalisées pour améliorer l’expérience audio Windows en ajoutant des effets audio supplémentaires.

L’OEM peut inclure n’importe quelle combinaison des API Windows fournies et des API personnalisées lorsqu’il expédie Windows.

Un APO personnalisé peut être installé par un OEM ou un tiers pour améliorer l’expérience audio après l’achat de l’appareil. Lorsque les utilisateurs installent un pilote de périphérique audio à l’aide du fichier INF standard, ils ont automatiquement accès aux API du système. Les fournisseurs de matériel indépendant (IHV) et les fabricants d’équipement d’origine (OEM) peuvent fournir des effets système personnalisés supplémentaires tout en utilisant les pilotes de classe Microsoft. Pour ce faire, ils empaquetent leurs algorithmes DSP en tant qu’APO et modifient le fichier INF standard pour insérer leurs API dans le graphique de traitement du signal du moteur audio.

Pour plus d’informations sur la création d’API personnalisées, consultez Implémentation d’objets de traitement audio.

Application de support APO personnalisée

Pour permettre à l’utilisateur de configurer les paramètres associés à votre APO personnalisée, l’approche recommandée consiste à créer une application de support matériel. Pour plus d’informations, consultez Application de support matériel (HSA) : étapes pour les développeurs de pilotes.

Exigences et tests APO personnalisés

Microsoft HLK fournit des tests qui peuvent être utilisés avec des API. Pour plus d’informations sur les tests audio, consultez Device.Audio Testing et Device.Audio Tests.

Ces deux tests peuvent être particulièrement utiles lors de l’utilisation d’API.

Vérifier les effets audioDiscovery (manuel) - Certification

SysFX Test

Pour plus d’informations sur la configuration audio requise pour prendre en charge les API, consultez Configuration requise pour Device.Audio.

Outils et utilitaires APO personnalisés

Vous pouvez utiliser l’exemple de découverte des effets audio pour explorer les effets audio disponibles. Cet exemple montre comment interroger des effets audio sur des périphériques audio de rendu et de capture et comment surveiller les modifications avec les effets audio. Il est inclus dans les exemples du Kit de développement logiciel (SDK) et peut être téléchargé à l’aide de ce lien :

Exemple de découverte d’effets audio

Application Audio Effect Awareness

Les applications ont la possibilité d’appeler des API pour déterminer quels effets audio sont actuellement actifs sur le système. Pour plus d’informations sur les API de sensibilisation aux effets audio, consultez Classe AudioRenderEffectsManager.

Architecture des objets de traitement audio

Placement des effets audio

Il existe trois emplacements différents pour les effets audio implémentés en tant qu’API. Ils se trouvent dans Effets de flux (SFX), Effets de mode (MFX) et Effets de point de terminaison (EFX).

Effet de flux (SFX)

Un effet de flux APO a une instance de l’effet pour chaque flux. Les effets de flux sont avant le mix (rendu) ou après le tee (capture) pour un mode donné et peuvent être utilisés pour modifier le nombre de canaux avant le mélangeur. Les effets de flux ne sont pas utilisés pour les flux bruts.

Certaines versions de Windows, en tant qu’optimisation, ne chargent pas les API SFX ou MFX en mode RAW.

  • Windows 8.1 ne charge pas RAW SFX ou RAW MFX
  • Windows 10 charge RAW MFX mais pas RAW SFX

Effet de mode (MFX)

Les effets de mode (MFX) sont appliqués à tous les flux mappés au même mode. Les effets de mode sont appliqués après le mixage (rendu) ou avant le tee (capture) pour un mode donné, mais avant le mix (rendu) ou après le tee (capture) de tous les modes. Tout effet ou effet spécifique au scénario qui n’a pas besoin des spécificités de l’effet de flux doit être placé ici. Il est plus efficace d’utiliser un effet de mode, car il existe un instance pour plusieurs flux qui partagent les mêmes caractéristiques comme la périodicité et le format.

Effet de point de terminaison (EFX)

L’effet de point de terminaison (EFX) est appliqué à tous les flux qui utilisent le même point de terminaison. Un effet de point de terminaison est toujours appliqué, même aux flux bruts. Autrement dit, c’est après le mixage (rendu) ou avant le tee (capture) de tous les modes. Les effets du point de terminaison doivent être utilisés avec soin et, en cas de doute, un effet doit être mis dans la zone Mode. Certains effets qui doivent être placés dans la zone de point de terminaison sont la protection de l’orateur et la compensation de l’orateur.

Ce diagramme montre les emplacements possibles pour les effets de flux (SFX), de mode (MFX) et de point de terminaison (EFX) pour Windows 10.

Diagramme illustrant l’emplacement des effets de flux, de mode et de point de terminaison dans Windows 10.

Effets APO personnalisés multiples

Il est possible de configurer plusieurs effets basés sur APO pour qu’ils fonctionnent avec différentes applications.

Ce diagramme montre comment plusieurs applications peuvent accéder à plusieurs combinaisons d’effets APO de flux, de mode et de point de terminaison. Toutes les API sont basées sur COM et s’exécutent en mode utilisateur. Dans ce scénario, aucun des effets ne s’exécute en mode matériel ou noyau.

Diagramme montrant comment plusieurs applications peuvent accéder à différentes combinaisons d’effets APO de flux, de mode et de point de terminaison.

Note Vous pouvez utiliser la barre de défilement située tout en bas de cette page pour afficher tout ce diagramme.

Effets du mode logiciel et effets du point de terminaison matériel pour le rendu et la capture

Ce diagramme illustre les effets du mode logiciel et les effets du point de terminaison matériel pour le rendu et la capture.

Diagramme affichant les effets du mode logiciel et les effets de point de terminaison matériel pour les processus de rendu et de capture.

Système équipé DSP avec effets matériels

Ce diagramme illustre un système équipé DSP qui implémente des effets dans le matériel. Dans ce scénario, un APO proxy doit être créé pour informer les applications des effets implémentés dans le matériel.

Diagramme illustrant un système équipé de DSP implémentant des effets dans le matériel.

Objets de traitement audio Windows

Implémentation du pilote audio déchargé par le matériel