Return to duty dac - oversampling noise shaped player
pik33
Posts: 2,397
Experiments with video generator as sample player gives very good result, but at least 2 cogs is needed. To get maximum performance it can give, even 5 cogs is needed to use: two cogs as dacs, two cogs as noise shapers and fifth cog for buffer.
With 2 cogs and video dac I managed to get 6x oversampling @8 bits. And then I realized that this should be possible also with duty dac. And this should reduce some duty dac noise. And it uses only 1 cog.
So, here it is.
This is noise shaping 8-bit dac on duty counter, without dither. It still generates noise but this noise is much lower, than in simple dithered or non dithered duty dac.
When overclocking (7.3 MHz) it is possible to get 9x oversampling (some dB lower noise), but this version has hardcoded delay constants.
Edit: to get even lower noise replace
with
With 2 cogs and video dac I managed to get 6x oversampling @8 bits. And then I realized that this should be possible also with duty dac. And this should reduce some duty dac noise. And it uses only 1 cog.
So, here it is.
This is noise shaping 8-bit dac on duty counter, without dither. It still generates noise but this noise is much lower, than in simple dithered or non dithered duty dac.
When overclocking (7.3 MHz) it is possible to get 9x oversampling (some dB lower noise), but this version has hardcoded delay constants.
Edit: to get even lower noise replace
a8000 long $8000_0000
with
a8000 long $80FF_FFFF
Comments