So as Nigel and Robert have already explained, in general you need to
separately handle the spectral shaping and pdf shaping. This dither
algorithm works by limiting to the particular case of triangular pdf with a
single pole at z=+/-1. For that case, the state of the spectral shaping
filter can be combined with the state of the pdf shaper, and so a single
process (with no multiplies!) handles both pdf shaping and spectral shaping.

For arbitrary order M, you would roll one die at each step and then sum it
with M previous rolls (possibly with some set of signs inverted). So the OP
example is M=1. You have your choice of 2^M spectral shapes, depending on
which (if any) of the previous rolls you invert. For the "highness" output,
you will want to invert every other previous roll. As M increases, the
output gets more Gaussian.

However for higher orders this multiplier-free algorithm does not produce
attractive spectral shapes. For even orders, the highpass does not have a
zero at z=1. For odd orders, the frequency response has large notches in
the middle of the bandwidth.

For most applications, a triangular pdf with single zero at z=1 is a
perfectly good dither configuration, and there is no need to go any
further. If you are looking for a higher-order dither algorithm without
multiplies, I think the way to extend this would be to include bit shifts
in the summation. Then you can get some reasonable spectral shapes. The
simple summation approach is too constrained for orders>1.

Ethan

On Thu, Jun 27, 2019 at 7:43 AM Alan Wolfe <alan.wo...@gmail.com> wrote:

> I read a pretty cool article the other day:
> https://www.digido.com/ufaqs/dither-noise-probability-density-explained/
>
> It says that if you have two dice (A and B) that you can roll both dice
> and then...
> 1) Re-roll die A and sum A and B
> 2) Re-roll die B and sum A and B
> 3) Re-roll die A and sum A and B
> 4) repeat to get a low pass filtered triangular noise distribution.
>
> It says that you can modify it for high pass filtered triangle noise by
> rolling both dice and then...
> 1) Re-roll die A and take A - B
> 2) Re-roll die B and take B - A
> 3) Re-roll die A and take A - B
> 4) repeat to get a high pass filtered triangular noise distribution.
>
> What i'm wondering is, what is the right thing to do if you want to do
> this with more than 2 dice? (going higher order)
>
> For low pass filtered noise with 3+ more dice (which would be more
> gaussian distributed than triangle), would you only re-roll one die each
> time, or would you reroll all BUT one die each time.
>
> I have the same question about the high pass filtered noise with 3+ more
> dice, but in that case I think i know what to do about the subtraction
> order...  I think the right thing to do if you have N dice is to sum them
> all up, but after each "roll" you flip the sign of every die.
>
> What do you guys think?
> _______________________________________________
> dupswapdrop: music-dsp mailing list
> music-dsp@music.columbia.edu
> https://lists.columbia.edu/mailman/listinfo/music-dsp
_______________________________________________
dupswapdrop: music-dsp mailing list
music-dsp@music.columbia.edu
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to