OpenAL potrebbe non essere ottimo per questo scopo. Vorrei raccomandare l'uso di SDL (forse con SDL_Mixer) o PortAudio. Entrambi sono multipiattaforma ed entrambi sono abbastanza facili da usare.
Per utilizzare OpenAL a questo scopo è necessario eseguire il polling per vedere quanti campioni sono stati accumulati in un buffer circolare nascosto. Poi li prendi quando decidi di essere pronto. Quindi applichi il filtro. Quindi alleghi i dati filtrati a un buffer. Quindi accodate il buffer a una sorgente e chiedete alla sorgente di giocare (a meno che non stia già giocando). Il punto di forza di OpenAL, a mio parere, è l'applicazione degli effetti 3D. Non è altrettanto efficace nel filtraggio in tempo reale, anche se mi aspetto che tu possa farlo funzionare se sei disposto ad accettare un po 'più di ritardo sull'output. Preferisco il modello di callback sul modello di oggetti buffer per il filtraggio.
Edit: ho postato un codice che avrebbe fatto esattamente questo oltre a: OpenAL: How to create simple "Microphone Echo" programm? Un commento indica dove si metterebbe al trattamento.
Sono anche interessato a questo. Peccato che nessuno abbia risposto = / – CptAJ