[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