View Full Version : Real time sound capture and processing
toolbox
03-05-2006, 03:17 AM
Hello,
I'm looking for a way to capture the sound from the microphone in real time, modify it by applying an effect and output it back to the microphone stream so that other applications which might be recording from the microphone would receive the modified audio. Does anyone have any ideas on how to approach this task?
Thanks.
TheNut
03-05-2006, 07:23 PM
I don’t think that’s possible unless you write a low-level driver to intercept communication between the OS and the sound card.
If you want to do this for a specific program, check to see if they offer an SDK. It would be far easier to add your program in as a plugin. Alternatively, look into Direct Capture (DirectX library) to capture auto from the mic. I used that library once and it’s quite flexible. You can stream in the audio, filter it however you want, and play it back using Direct Audio. I did this for a simple app I made where I compressed the audio using Speex and sent the information over the Internet.
monjardin
03-06-2006, 03:21 PM
You definitely want to bypass the kmixer on WinXP. It adds a lot of latency. Search for ASIO drivers.
toolbox
03-07-2006, 09:56 PM
Thanks for pointing me in the right direction. I'll read some articles on driver development now because I never developed drivers before.
formant
04-29-2006, 09:37 AM
This is easy to accomplish using Max/MSP (real-time processing software, among other things) and Soundflower (audio routing software - sending audio from one app to another), both made by Cycling '74 - www.cycling74.com
Max/MSP is an object-based graphic programming environment. Good documentation, take a look. I use it EVERY DAY. There's a free 30-day demo version, or you can download the Runtime version and look for an already-made Max program made to do what you want. There's a large Max programmer community. Check out maxobjects.com for 3rd party external objects. Search the cyling74 forums for sample patches that do what you want. Good luck!
leechlife
05-07-2006, 06:15 PM
if didn't develop drivers before, you might not want to do that ;).
ASIO is the way to go, if using a pc soundcard, (assuming it has ASIO drivers, which normally every soundcard aimed for recording,.. has)
look at the steinberg hompage to get the ASIO sdk, and then it depends on your soundcard how much latency it has (in+out + effect prcssingtime), to determine if you can live with that delay. (if it's realtime enough ;) ).
Also if you have any software which is an vst-host, supporting ASIO, you could also justy get VST skd to develop effects and vsti.
Cubase, for example does it, but there also some freeware vst host out there.
It all depends if you wanna spent some money or more time in development!
In all cases you need a proper soundcard with a low latency, else you can forget about the realtime.
vBulletin, Copyright ©2000-2008, Jelsoft Enterprises Ltd.