On Wed, Oct 18, 2006 at 11:12:32 +0100, Dan Mills wrote:
 --- Steve Harris <S.W.Harris(a)ecs.soton.ac.uk> wrote:
  > But that puts potentially expensive gain
 > calculations into the fast sr code, also I was 
 rather planning
   on using
the impulse used for the upsampler to
provide the band limiting for free. 
 the gain calculations are relativly cheap, its
 converting those gain
 levels back into a gain coefficient on the output
 that's expensive (from
 what I remember). 
 
 But all that can still be done at 44.1/48, it is only
 the final sample multiplication that needs its inputs
 band limited and thus potentially needs the upsampler. 
It's not that simple. The gain coefficient is not calculated for every
sample.
   I dont think a
streaming resampler is more
 challenging than a correct one
 that runs on buffers. You just have to preserve
 state with every call,
 rather than at the buffer boundaries. 
 But that breaks the ability to use the vectorisation
 capability of modern compilers and  besides the call
 and return overhead will end up costing as much as the
 convolution! 
 
The vectorisation point is right, but the call and return is taken care of
by inlining in modern compilers, it's quite cheap.
- Steve