In at least three cases (#406, #390, #369) users have reported passing int16-scaled data as float32 without scaling it down first, which results in some scale-invariant plugins working just fine (like Reverb, Delay, etc) and others failing completely (Compressor, Limiter, PitchShift).
We can detect this with a tiny performance penalty in the render call, and raise an exception if the input provided is:
- All integer values (no fractional parts)
 
- Looks like it was provided by taking 16-bit integer data and just converting to float32
 
This would prevent this class of issue from being raised.