SOLVED:Arduino Due Delay Effect - Noisy playback *only* with variable delay time

To help troubleshoot your sketch, check ring_buff Index each time you set or read ring_buff with assert.h.
Include assert.h at the beginning of your sketch, then before setting or reading ring_buff[Index], write:

assert(Index >= 0 && Index<BSIZE);

Your sketch will hang with the line number in your code if there is an issue with Index.

BTW, if(current_tap > BSIZE){ ....} is not correct, should be > (BSIZE - 1)