A wrapper for DirectSound, aimed to simplify streaming of generated audio data. Has only two funcs, just as many are needed:

invoke EasySound_Start,MyCallback,44100,2,0
invoke EasySound_Stop

MyCallback proc pAudioData,NumSamples
; here generate audio data
ret
MyCallback endp

Sound is managed/rendered in a new thread, using the "polling" method. 11ms min latency, adjustable at any time via an exported DWORD "EasySound_Latency".

Handles both 16-bit(word) and real4 data.

It's very similar to the ASIO wrapper I posted yesterday, my original intent is to mix these two libs together, for my personal needs.
This time stripped it out of my base.inc SDK, for direct usage by any x86 ASM user, so have fun :)
Attachments:
Posted on 2005-11-13 00:11:06 by Ultrano
????
Posted on 2005-11-17 03:46:33 by sz_70
Hi Ultrano. Why polling instead of notifications?

I've heard that some driver types have problems with notofications, but I've NEVER seen such driver..?
Posted on 2005-11-17 13:38:01 by ti_mo_n
imho, it's harder to adjust the latency at runtime. Also I didn't have time to code the notifications method.
iirc, I had some problems with the notifications if the sound takes too much time to render. But that was long time ago, on a k6-2 450MHz, with YMF719 ISA card. Now I can't make my PC sweat off more than 5% cpu with my audio software ^^

Basically, here I stripped and cleaned up Dreamer1.x's sndcard interface, and made it more universal.
From this point on, I have to fuse this lib and my ASIO lib, add a configuration dialog - where things get closed-source ^^.

What are the advantages and disadvantages of notifications (I really haven't toyed with them enough) ? I haven't seen the polling-method fail on any of the different PCs I've tested it myself on (30+, from old laptops to x64 PCs; from earliest AC97 chipsets to Audigy1 sndcards).
Posted on 2005-11-17 16:41:33 by Ultrano