I use commonly available components (tried AudioIO, Audio, WaveAudio) bridging Delphi to the Windows Multimedia-API to stream data from the sound card to my program, which is to do some real time data conversion and plotting.
So far so good.
The data stream I receive is not consistent, i.e. I see jumps in the datastream like some samples getting lost. This problem occurs more frequent when I load the CPU with additional programs eating up CPU-time.
Even though my GHz Pentium offers enough computational power to perform all tasks in time, Windows obviously doesn't empty the Audio buffer with highest priority and sometimes comes too late => lost samples.
When I run my prog with higher priority things get better but not perfect.
On the other hand, when I use the commercial software CoolEdit to record the sound data, I get a perfect Audio stream no matter what I do besides on my PC at the same time (unfortunately not realtime into my program).
How can I solve this? I want Windows to interact with the sound card at highest priority. Do I need to modify the 3rd party sound components or am I using them in a wrong way? All of the above mentioned components show the same behavior.