Graphiques de filtre audio
Un graphique de filtre KS est une collection de filtres KS qui ont été connectés ensemble pour traiter un ou plusieurs flux de données. Un graphique de filtre audio est un graphique de filtre KS qui se compose de filtres qui traitent des flux de données audio. Par exemple, la figure suivante est un diagramme simplifié d’un graphique de filtre audio qui effectue le rendu et la capture audio.
Dans la figure, le graphique de filtre s’étend des broches situées en haut des deux filtres d’ondes aux broches situées en bas des deux filtres de topologie. Les modules logiciels en mode utilisateur et les périphériques audio externes (c’est-à-dire le haut-parleur et le microphone) se trouvent en dehors du graphique.
Les quatre filtres dans la moitié inférieure de la figure représentent des périphériques matériels sur une carte audio qui peuvent afficher et capturer des flux d’ondes. Chacun des filtres indiqués dans la figure est implémenté en liant un pilote de port à un pilote miniport. Le pilote de l’adaptateur forme un filtre d’ondes en liant le pilote de port WaveRT, WavePci ou WaveCyclique à un pilote de miniport WaveXxx correspondant. Le pilote d’adaptateur forme un filtre de topologie en liant le pilote de port de topologie à un pilote de miniport de topologie.
Sur le côté gauche de la figure, le flux audio d’une application DirectSound ou waveOut (en haut) est lu via un haut-parleur (en bas). Sur le côté droit, une application DirectSoundCapture ou waveIn (en haut) enregistre le flux qui est entré à partir d’un microphone (en bas). De part et d’autre, une instance du moteur audio, qui effectue le mixage pour le système dans Windows Vista, est interposée entre le filtre d’ondes et l’application. (Dans Windows Server 2003, Windows XP, Windows 2000 et Windows Me/98, le pilote système KMixer est le mélangeur système.)
Le moteur audio est un filtre logiciel polyvalent qui s’exécute en mode utilisateur et peut facilement convertir entre divers formats audio et taux d’échantillonnage à sa source et à ses broches récepteur. Le moteur audio peut généralement prendre en charge les différences entre le format de flux pour lequel le matériel est configuré et le format de flux attendu par l’application.
En bas de la figure précédente, la broche source qui pilote le haut-parleur et la broche récepteur qui reçoit le signal du microphone sont étiquetées en tant que broches de pont. Une broche de pont ponte la limite entre un graphique de filtre et le monde externe.
Dans la figure précédente, le chemin d’accès aux données affiché entre chaque filtre d’ondes et son filtre de topologie correspondant représente généralement une connexion physique : une connexion matérielle fixe sur la carte audio qui ne peut pas être configurée par le logiciel.
Étant donné qu’une broche de pont ou une broche avec une connexion physique est connectée en permanence, la broche existe implicitement et ne peut pas être instanciée ou supprimée. Ainsi, il n’existe aucun objet de broche de pont (instances de broches de pont) auquel envoyer des irps, bien que vous puissiez interroger un objet de filtre pour les propriétés KSPROPSETID_Pin de ses broches de pont. La même règle s’applique aux broches avec des connexions physiques.
Le signal qui passe par une broche de pont ou une connexion physique peut être analogique ou numérique.
Par exemple, dans la figure précédente, les deux broches de pont gèrent les signaux analogiques. La broche de pont à gauche transmet le signal de sortie d’une DAC (convertisseur numérique-analogique) qui pilote un haut-parleur. La broche de pont sur la droite reçoit le signal d’un microphone, qui entre dans un ADC (convertisseur analogique-numérique). Toutefois, une broche de pont peut également représenter un connecteur S/PDIF sur un périphérique audio. Dans ce cas, le signal qui passe par la broche de pont est numérique plutôt qu’analogique.