Faster-than-realtime processing

kirky's icon

Hi there

I'm working on a sampler and I want to implement a destructive effects-processing that works faster than real-time.
The idea is, that you have a buffer with some sample in it, you run that trough lets say a chorus (or anything else) and the resulting file gets stored in the same buffer again.
Now instead of waiting each time until the whole file played through to record it, I would like to make the process faster-than-realtime. Unfortunately for my use (M4L-device) the Non-Realtime DSP engine is not what I want to use, since it turns audio on and off when switching from Realtime to Non-Realtime DSP.
So I was looking for another way to do this and I came up with the idea to do it with an upsampled poly. So the basic idea is that the poly is 2x upsampled (88200 samples/sec instead of 44100) and in this poly there is a groove object which plays the original file double the speed. The signal then goes into an effect (again, lets say some simple chorus effect) and finally gets recorded with a record-object. Now if I play the recorded file back it should (in theory) sound like if I had just run the original sound through the chorus and recorded it, with the only difference that the process happened 2 times as fast (because the groove is running at double the speed). But thats the problem: It doesn't sound EXACTLY the same. I tried it with different effects, even different VSTs and its always a bit off. Sounds like if there would be a filter or something in between, and transient are smeared also...

So my question: Should this idea of doing it in an upsampled poly work in theory? And if yes, what am I missing? Or is there even a better way of doing this faster-than-realtime processing?

Cheers and thanks for your help!

Roman Thilenius's icon

where the NRT driver is not an option you can use [poly~ foo up 4] to gain some speed for such simple processes.