Comment puis-je traiter l'entrée de microphone en temps réel?

Je suis en train de créer une preuve de concept pour une idée que j'ai, et à ce stade, j'ai besoin de quelques conseils sur la manière dont je devrais commencer.

J'ai besoin d'exemple de l'entrée microphone, et un processus de signal en temps réel (pensez à l'Auto-Tune, mais d'un travail en direct), par opposition à "l'enregistrement").

Ce que je fais est "une sorte de" une "entrée micro vers MIDI converter", il se doit donc de réagir assez vite.

J'ai étudié un peu, et apparemment, le chemin à parcourir est soit DirectSound ou la WaveIn* fonctions de l'API. Maintenant, d'après ce que j'ai lu, le WaveIn Api me permettra de remplir une zone tampon d'une certaine taille, qui est très bien pour de l'enregistrement et de post-traitement, mais je me demandais... Comment dois-je faire le traitement en temps réel?

Dois-je utiliser 10ms tampons et de garder une circulaire 50ms ou 100ms de la matrice de moi-même, et j'ai une fonction qui déclenche l'analyse de toutes les 10ms? (qui a accès à la dernière 100ms de l'entrée, dont seulement 10 ms sont nouveaux)

Suis-je manqué quelque chose?

Aussi, comment est-ce fait avec DirectSound? Est-il me donner des capacités améliorées au cours de la régulièrement des Api Win32?

OriginalL'auteur Daniel Magliola | 2008-11-03