I've got an impulse response of a hall, it's 10 seconds long.
Now say I want to apply this reverb to a wav file of some singing. I would perform a convolution of the data in two wav files and that the result would be a third lot of data, this time with the reverb. Great.
But how would this actually work in a real time setting, in a program like GarageBand, using a live input like an electric guitar?
Garageband can't convolve the full guitar track because it doesn't yet exist (because it's being played live!) One way that I thought of, was if the program performed the convolution on say, the 256 most recent samples of guitar input.
But this raises 2 issues:
Would the computer be able to perform so many convolutions every second? And surely this introduces some sort of delay while waiting for the calculations to be processed?
If anyone could help explain, that would be great.