Audio distortion while implementing a low-pass filter
I suspect that most likely the audio coming in is integer, and not floating point. Depending on your device, operating system and type of file input, you can get one or the other. Read documentation for audio input API you're using to see which format the audio is in. Also, if it's integer, it's likely to be 16 bit rather than 32 bit. In any case, again, read the documentation.

EDIT:
BASS library has a flag you can set to get floating point values everywhere:

BASS_SetConfig(
    BASS_CONFIG_FLOATDSP,
    BOOL floatdsp
);