Here is a small Python function I've written (github), that might be useful if you're doing signal processing in Python. The function implements the classic FFT-based Overlap-Add filtering, potentially saving a heck of a lot of processing time (assuming your filter is of sufficiently high order: usually about 128 taps).
I wrote this code as part of a lager ongoing project (gammatone filtering) that I will release eventually. What I still have to add to this code is the ability to set and save state information (it's simply the part of the response cut off at the end of the function) and the ability to filter complex signals with complex filters (replacing rfft with fft). Changes made in the latest version.