Windows n'est pas un système d'exploitation en temps réel, donc vous n'avez pas de vraies capacités de traitement en temps réel dans Windows.
Avec Windows Vista, Microsoft a proposé une nouvelle API qui, entre autres, visait des performances strictes, où les flux en mode exclusif promettaient des performances proches du temps réel. Ceci est réalisé avec quelques éléments puissants travaillant ensemble, y compris un chemin court et exclusif vers le matériel audio à partir des composants en mode utilisateur, une planification multimédia spécifique. Permettez-moi de citer Wiki à ce sujet:
Pour les professionnels de l'audio, un nouveau pilote de port WaveRT a été introduit qui s'efforce d'atteindre des performances en temps réel en utilisant le planificateur de classe multimédia et prend en charge les applications audio qui réduisent la latence des flux audio. Par conséquent, les applications en mode utilisateur peuvent régir complètement les flux audio sans aucune exécution de code dans le noyau pendant l'exécution. WaveRT permet à l'application en mode utilisateur d'accéder directement aux tampons matériels audio internes et aux compteurs de position d'échantillons (données dans la mémoire qui sont mappées au moteur DMA du matériel audio). Il permet aux applications d'interroger la position actuelle dans la fenêtre de mémoire DMA à laquelle le matériel accède. WaveRT prend également en charge la notion d'événement de notification d'horloge généré par le matériel, similaire à l'API ASIO, afin que les applications n'aient pas besoin d'interroger la position actuelle si elles ne le souhaitent pas. WaveRT ne fonctionne cependant qu'avec des périphériques audio PCI, PCI Express ou embarqués; il ne fonctionne pas avec les interfaces USB ou FireWire qui sont plus répandues dans l'industrie audio professionnelle.
Ce nouveau mode de fonctionnement a ouvert des opportunités intéressantes pour le traitement audio à faible latence, telles que rapportées par des utilisateurs satisfaits :
J'obtiens un son parfaitement stable et solide avec des tampons de 2 ms + une latence de 0,5 ms, comparé à un audio semi-stable dans des tampons de 4 ms (+ 5 ms de latence de sortie), avec ASIO.
Selon que cette approximation en temps réel vous convient, Windows peut toujours être un bon environnement pour la tâche mentionnée.
Que cela soit possible ou non dépend de vos besoins de latence, c'est-à-dire du retard total entre l'entrée et la sortie. Un bon point de départ pourrait être la mise en place d'une station de travail audio numérique à l'aide de logiciels d'enregistrement tels que ProTools, Sonar, Ableton, Cubase, etc. Ceux-ci fonctionnent avec du matériel d'E / S peu coûteux (en quelque sorte) et sont livrés avec des pilotes optimisés à faible latence. Certains d'entre eux ont des interfaces "plug-in" qui vous permettent de boucler dans votre propre traitement du signal. Un format populaire est VST de Steinberg qui est pris en charge par de nombreux hôtes. Il était auparavant ouvert et gratuit mais peut nécessiter une licence maintenant.
Ce http://www.kvraudio.com/wiki/ est une bonne ressource pour ce genre de chose.
Si vous souhaitez traiter dans Matlab, vous devrez peut-être écrire vos propres pilotes. J'ai vu cela avec des DLL et des interfaces natives JAVA. Vous pouvez également pirater quelque chose avec audioplayer () et audiorecorder (), mais ceux-ci peuvent nécessiter une latence assez élevée pour gérer les interruptions de Windows et faire d'autres choses. En substance, vous configurez un contrôle GUI avec un rappel qui est déclenché à une heure. Dans le rappel, vous lisez toutes les entrées disponibles, les traitez, les insérez dans la sortie et espérez le meilleur.
En général, cela aide à garder la boîte Windows aussi "propre" que possible, c'est-à-dire pas de connexion réseau (pendant que vous traitez l'audio), pas de logiciel anti-virus et ne lancez que le minimum absolu des éléments de démarrage, des logiciels et des services.
la source