Is it normal for the output of libsamplerate to be louder than its input?
The output of libsamplerate will be roughly the same volume as the input. However, even if the input is strictly in the range (-1.0, 1.0), it is still possible for the output to contain peak values outside this range. Consider four consecutive samples of [0.5 0.999 0.999 0.5]. If we are up sampling by a factor of two we need to insert samples between each of the existing samples. Its pretty obvious then, that the sample between the two 0.999 values should and will be bigger than 0.999. This means that anyone using libsamplerate should normalize its output before doing things like saving the audio to a 16 bit WAV file.