On 10/20/07, Spencer Salazar <ssalazar@cs.princeton.edu> wrote:
 

Ideally when you upsample your low sample rate signal back to
44100Hz, you convolve it with the sinc function, which is an ideal
low pass filter with a cutoff at Nyquist.  See:
http://en.wikipedia.org/wiki/Whittaker%E2%80%
93Shannon_interpolation_formula
for more info.

Yes, I wrote about that just a few days back when we had another discussion about Nyquist use/abuse.


I wonder if this could be implemented in ChucK without resorting to
1::samp... maybe with lots of Delay ugens..

I tried and couldn't get it to work at a realistic CPU usage buit that was a long time ago. I also went about it rather literally, using a actual sine.

What if we'd allow negative targets for Envelope.target()? that would make linear interpolation a breeze. I still don't see what would be wrong with negative Envelope targets and if I remember corectly that would work with the removal of one check from the code.
 

. as far as C code goes,
there is a PRC classic here for doing sinc interpolation:
http://www.cs.princeton.edu/courses/archive/spr07/cos325/src/OLD/
TimeStuf/srconvrt.c

There is also a implementation in SndBuf, maybe LiSa could use one too. 

We could also think about a dedicated Ugen for this, I'm still very interested in having something like SndBuf but asigning (I'd like to keep it editable) a array of floats to it instead of a .wav file.

Yours,
Kas.