A lot of incidents can happen during processing samples. A nasty one is denormalization,
which makes cpus consume insanely many cycles for easiest instructions.
But even worse, if you have NaNs or Infinities inside recursive structures, maybe due to
division by zero, all subsequent samples that are multiplied with these values will get
"infected" and become NaN or Infinity. Your sound makes BLIPPP and that was it, silence
from the speakers.
Thus I've written a small function that sets all of these cases to 0.0f.
You'll notice that I treat a buffer of floats as unsigned integers. And I avaoid branches
by using comparison results as 0 or 1.
When compiled with GCC, this function should not create any "hidden" branches, but you
should verify the assembly code anyway. Sometimes some parenthesis do the trick...