VOGONS


Reply 20 of 21, by Baoran

User metadata
Rank l33t
Rank
l33t
Scali wrote:
Baoran wrote:

It would be actually nice to have a list of speed sensitive sound cards and what is the max speed cpu that you can use them with.

That would be impossible, because technically it's not the card that is 'speed-sensitive', but the application code. So the actual maximum CPU speed depends on the application.

Then why does same application work well on something like sb16 even on fast computers but doesn't work do well with older sound blasters without slowing down the cpu?

Reply 21 of 21, by Scali

User metadata
Rank l33t
Rank
l33t
Baoran wrote:

Then why does same application work well on something like sb16 even on fast computers but doesn't work do well with older sound blasters without slowing down the cpu?

1) OPL3 is faster than OPL2, so requires less delays between writes. Newer OPL-clones can be faster still, like the ESS AudioDrive.
2) Newer SBs and clones have faster DSPs.

The problem is that chips require an absolute time to respond to commands.
For example, if you reset the DSP, you should wait 350 ms before the DSP can respond again.
If you write your code so that you actually wait 350 ms in absolute time, no problem.
But, most programmers were lazy, and just figured "If I make a loop of 65535 iterations, it will wait long enough".
That assumption is flawed, because faster CPUs execute such wait-loops faster. Eventually a CPU comes around that executes the loop faster than the minimum intended wait period. As a result, it will try to access the sound card again after 'waiting', and the card is not ready yet, so it won't respond. Result: card is not detected/initialized properly. It might not work at all, or audio may get garbled, depending on how the code is written.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/