SineWave generates a lot of ringing noise by using float32 instead of float64 for its calculations.
Below is what occurs with the default SineWave.

Below is what occurs with a modified SineWave that does calculation in float64 and then converts back to float32 for the result.

I suspect there are similar issues across all sources where rounding errors is causing distortion. The distortion is very noticeable by ear.