two friends and I are writing a small software, which has to track the voice via microfone, apply the FFT (Fast Fourier Transformation), apply some filters (noise reduction, vowel recognition ,...) and pass signals to a 3D Model in a 3D Engine, to let the model speak (audio and mimics).

We are that far (if you can call it far), that we aqquire the microfone, read in the signals in realtime (nearly at least), apply the FFT in a first basic form, and show a graph on the screen. We use the waveIn-Functions of the winmm-library.

However we are stuck at the audio output, because windows keeps telling us this:

997 0x03E5 Overlapped I/O operation is in progress

We tried to use the waveOut-functions on the WAVE_MAPPER device. Opening the device (waveOutOpen(..) ) and preparing the header (waveOutPrepareHeader(..) ) does not rise any errors, but the writing (waveOutWrite(..) ) causes the error above.

Does someone have any idea on how to get the output working with input still active?

Regards, YaWNS

P.S. Sorry for being absent for such a long time. :)
Posted on 2003-09-18 08:33:05 by YaWNS
YaWNS: you can use DirectX for this task.
also i recommend BASS for this (you can check the examples
for more info).

ps. i did the MASM conversion some time ago, it should be in the package
Posted on 2003-09-18 08:48:33 by TBD
They will both work simultaneously if you have a full-duplex audio device.
Posted on 2003-09-18 09:01:12 by comrade

thanks for your answer. I already thought about using DirectX, but didn't actually look closer at it. I will do so in a moment ;)

I know about BASS/fmod, but we are not supposed to use these libraries :(

Yeah, I read that in an article on the net, however our soundcards don't seem to support this. We have some VIA Wave (on-board soundcards) and one soundblaster live (from which I thought it would support full-duplex, but it doesn't seem so).

We'll try DirectX :)

Regards, YaWNS
Posted on 2003-09-18 09:05:19 by YaWNS
Here is an old direct-sound example from my archive..
Posted on 2003-09-18 09:13:08 by kamilh
YaWNS maybe you can fish some info from Low Level Digital Audio APi

SB Live is full-duplex, i think you must update your drivers and i think VIA's on board should be full-duplex too.

kamilh: thanks for the nice example. if you have more dont be afraid to post them :grin:
Posted on 2003-09-18 09:25:16 by TBD

thanks again for the link.

We looked at the DirectX 9 SDK and found one program called FullDuplexFilter, which does exactly what we need. and it works on both types of soundcards, which leads us to the conclusion that we did something wrong ;)

Regards, YaWNS
Posted on 2003-09-18 09:54:58 by YaWNS

sorry, that I did not reply anymore.
We ditched DirectX and stepped back to waveIn and waveOut, rebuilding the whole thing from scratch, and this time it worked. We have no real conclusion, what went wrong last time :confused:

We didn't want to use DirectX since we didn't have any way to get readaccess to the soundbuffer, which is necessary for us in order to apply custom filters.
Now, our project is growing fine and everything looks as if we will get it finished in time and even have enough time for our project documentation.

Thanks again for all your helps.

Posted on 2003-10-21 05:39:22 by YaWNS