Convolute
convolute is a program to apply one-dimensional convolution to audio files (specifically, lossless ones.) It uses FFT convolution via the overlap-add method - in other words, it's pretty zippy.
Usage:
convolute input.wav impulse.wav output.wav 0.03
The last argument to the program is the "amplitude," a helper that lets you adjust the volume multiplier inside of convolute itself. Doing this loses very little information as compared to doing it afterwards, as the data is in double-precision floating point numbers at the stage at which it is multiplied. convolute will warn you if the amplitude is too high and caused clipping, and will recommend a new multiplier to be used to avoid clipping.
Source code is available at github. It requires libsndfile, fftw, and SCons to build.