[Coco] Assembly audio routines

Mathieu Bouchard matju at artengine.ca
Mon Mar 20 22:22:30 EDT 2017


Logarithmic ears imply that ears become more sensitive to small changes as the 
volume gets lower. This has disastrous consequences for lo-res digital outputs, 
that can only be overcome by carefully avoiding the types of sounds that would 
make the limitations most apparent.

Low number of bits is only ok if you use almost only maximum volume. This 
implies also very few voices, because if you want to combine multiple voices, 
the sum of them must not overflow, and to achieve that, you have to have low 
volume for each voice, but low volume means lower resolution. That is, even 
though you have 6 bits, if you do anything at 25% of the volume, you're 
effectively down to only 4 bits for that voice. You can reduce the problem by 
computing at higher res, e.g. 8 bits while doing the mixing, but this will only 
improve combination of voices, when using the whole range ; when what you want 
to do is a low-volume note (or low-volume chord), or fading out a loud note or 
chord, the digital artifacts will become worse.

To work around this, MOD formats and its derivatives have used several tricks, 
but they mostly just make sense if you want to use lo-res samples effectively 
with a hi-res DAC (and even then, they'd need a better MUL opcode too).


Le 2017-03-20 à 14:44:00, Brett Gordon a écrit :

> It's worth mentioning that human ears respond logarithmically to volume.  I
> believe our coco dac is near linear output, so losing a few bits in the
> bottom end is probably not to be worried about.
>
> Human ears are, however, pretty sensitive to timing,  so jitter is a bigger
> deal.  This seems to match my observations when hacking out the podcast
> player.

  ______________________________________________________________________
| Mathieu BOUCHARD --- tél: 514.623.3801, 514.383.3801 --- Montréal, QC


More information about the Coco mailing list