View Single Post
Old 15 January 2016, 18:50   #98
meynaf
son of 68k
 
meynaf's Avatar
 
Join Date: Nov 2007
Location: Lyon / France
Age: 51
Posts: 5,335
Quote:
Originally Posted by Megol View Post
8088 4.77MHz can play modules with a sound card or covox type device (DAC connected to the parallel port). Sure it isn't easy but still...
Yuck. I don't want to hear that.


Quote:
Originally Posted by Megol View Post
A 386 even in the sx version have no problem mixing many 16 bit channels.
But without any kind of interpolation.


Quote:
Originally Posted by Megol View Post
- "Batching", handle x samples from one channel at a time before switching channels.
Not necessarily better because of the extra loop control.


Quote:
Originally Posted by Megol View Post
- Reduce the number of volume levels.
Totally useless, unless this number is reduced to just one.


Quote:
Originally Posted by Megol View Post
- Reduce the number of sample frequencies + use generated code for changing pitch.
This kind of trick was used on the ST for the TCB tracker. NOT nice.


Quote:
Originally Posted by Megol View Post
- Use pre-scaled samples.
Impractical ; not useful.


Quote:
Originally Posted by Megol View Post
- Self-modifying code.
Ugly. Fails on any cpu with a cache.


Quote:
Originally Posted by Megol View Post
- Mixing buffer with higher precision than input samples (8 bit samples -> 16 bit buffer, 16 bit samples -> 32 bit buffer), reduces overflow management.
Reduces overflow management but needs extra instructions to convert from 8 to 16 or 16 to 32. Useless for speed.


Quote:
Originally Posted by Megol View Post
But the target platform have to be known before coding a mixing routine, a superscalar processor with fast multiply may work best with a tight routine with little optimizations, a superscalar with somewhat slower multiply may benefit from doing batching in order to use one multiplication instruction for doing two volume scalings and of course in a really slow machine one can't do too advanced optimizations as there isn't enough cycles available - so reducing sample precision + playback frequencies are really the only tool available.
If you have a superscalar processor you have enough horsepower to mix as many channels as you want, with interpolation. Even a 030 can do that. And you don't even need a fast multiply (in fact you don't need a multiply at all).
meynaf is offline  
 
Page generated in 0.04419 seconds with 11 queries