James-F wrote on 2016-10-07, 14:38:
You don't have to assume the meaning of the term "single-cycle DMA" it is clearly documented in the official Sound Blaster Programming Guide.
This is a fascinating read, thank you for providing the programming guide.
It answers many questions.
It seems the single cycle DMA clicking is not a bug, but a feature. The application programmer is supposed to use auto-init DMA mode, not single cycle mode.
Auto-initialize DMA mode is crucial when dealing with high data rates. To give you
some idea of the numbers involved, CD-quality […]
Show full quote
Auto-initialize DMA mode is crucial when dealing with high data rates. To give you
some idea of the numbers involved, CD-quality sound (16-bit stereo at 44.1 kHz)
involves transferring data at a rate of 176.4 KB/s. Under these conditions, using single-
cycle DMA mode would produce less than optimal sound quality because of the time
needed to reprogram the DMA and DSP to start transferring a new block at the end of
every block of data. The delay between the blocks (though it may be brief), is enough to
distort the sound.
Single cycle mode is only supposed to be used for a single buffer xfer, once-off and done.
We bash creative for their shitty cards, some criticisms being fair, but we somehow never seem to bash game developers for their shitty programming.
When you insist to multi-cycle in single cycle mode and don't even bother to futz around with your samples so that you at least zero cross on a cycle boundary, you are retarded. Period.