> >- even better, allow the use of the card as an SAOL processing farm : an
> API
> >could be provided so that software can request processing of successive
> sample
> >frame blocks from the card and get them back as fast as the card can
> compute
> >them. Ideally you would implement a vst2 "proxy" dll for that.
> >
> >Is point 2 technically feasible ? Anything going on along these lines ?
> >(Forgive me if the questions have been raised before).
>
Sure. There's no real problem with this. In fact some of the more recent
DirectSound cards will process and return sample data to the host for
further processing.
> It seems to me that latency issues are problematic if you want to
> do real-time processing in such a scenario. It requires two DMAs for
> each roundtrip cycle to and from the host, and so if you are trying
> to do several stages of processing, the DMA latency will add up
> quickly.
>
Interestingly, this is not the case. Bus mastering is quite practical on PCs
these days, and old-fashioned DMA operations really aren't terribly
efficient in the PC architecture. The real problem is actually memory
bandwidth. A good software synth actually runs out of memory bandwidth these
days before it runs out of processing power.
Imagine 32 voices fetching six or eight samples (for a good interpolator)
per output sample at 44khz stereo. Memory bandwidth is far less than the
100Mhz bus speed would suggest once you factor in cache-line fetches, and
addressing overhead.
However, once you've distilled everything down to a single 44khz stream of
audio data, it's a peice of cake to pass this stream around, and to pass it
around fairly effectively.
Latency isn't that much of a problem. Unless you're processing audio input,
SAOLC compilers are stream based and can buffer data.
If you *are* processing audio input, then things get ugly. 30ms latency is
actually pretty good for a DirectSound driver, but I haven't yet seen an
audio card that will do that. More typical latency is closer to 100ms, which
isn't really acceptable (you need to be under 50ms to get good results).
This archive was generated by hypermail 2b29 : Wed May 10 2000 - 12:15:26 EDT