Speed is not the only goal. Accurracy is also important.
I agree if you want to make a player just for listening, but for a game, speed is better, so if a 50khz high quality output runs at 40%, wouldn't a 25khz, not the best quality output be possible to run at 20% ?
The answer is simple as i already explained: no (with a standard (normal lenght) MOD and 1MB memory).
At 25 KHz, if you have the worst case pitch on the 4 voices, you will need to access memory for each refresh with addressing mode:
xx(An) or xx(An,Dn). This means an extra 4 or 8 cycles for each voice just to get the sample and emulate diferent pitches (sample speed playing (done via HW on Amiga)). This means 16 or 32 cycles more considering the 4 voices
At 31.x KHz or more, you have direct addressing like (An) or you even can use the previous value which means less CPU time needed. This is also done by Lance keeping the previous value in registers.
At 50 KHz in the worst case you only have to refresh every 31/50 = 62% of the times and that means a lot less CPU time needed especially if when mixing you keep the previous value in the data registers (Lance case) because there is no memory access to read.
For each refresh, you have to emulate the volume on each voice (0..64) done via HW on Amiga.
Either you use a lookup table and that means an extra memory addressing, you precompute every sample for each 65 volumes (huge memory requirements), or you cheat using Microwire like Lance reducing the resolution to 20 units non linear against 65 units linear on Amiga. Again this must be done for every refresh.
So for you to understand, if there was a 31 KHz DMA frequency on STE, the CPU time required would be similar to the one required at 50 KHz: max 40% with Lance routs.
Below 31 KHz, you will get IMEDIATLY an increase in the CPU time needed which will only be balanced by reducing the replay frequency which means reducing the number of refreshes.
25 Khz means 320 cycles to do:
- variable speed memory reading to simulate pitches on 4 voices;
- emulating volume;
- mixing the data to 2 seperate stereo DMA buffers;
If you want to use only 20% of the CPU time, it means 20%*320 = 64 cycles that means 16 cycles per voice !!!!!!
A simple move xx(An),Dn takes 12 cycles
Next a move Dz,(Az) to the DMA buffer takes 8 cycles => 12 + 8 = 20 !
And you had no mixing (adds and no volume control).
Now a new example:
We have: 12+12+8+12+12+8 = 64 cycles so we are already at the limit.
But there is still a problem: you have to update the offsets (xx) and you still do not have volume control.
The offsets are the biggest problem: self modified code (and that means an extra memory access like move dn to xx(An)) or a huge precomputed code table to have every possible pitch combination on all voices or a special cheating case i will not describe here but that still needs some processor time.
So, again, the answer to your question is no. The CPU clock advantage of the STE can NOT balance the Amiga HW in replaying MODs.
And by the way, a cheated replay at 50 KHz can sound sometimes worse than a 25 KHz or 16.7 KHz accurate replay.
But there is nothing like trying so why don't you try it ?