Hi Alex,
 
Your question was “why buffers will collide” in response to the Robert’s answer: “time-scaling is not normally thought of as real-time because your input and output buffer pointers will collide”. Did I understand correctly, that you want to understand why time stretching can’t be implemented in real-time? I assume you do for the rest of this letter.
 
First of all, Robert said “buffer pointers will collide” and not “buffers will collide” — this is essential. You can think of buffer pointers as play-heads that move through audio. SOLA methods basically define such movements. Time stretching means you move the play-head slower than real-time. To do time compression you need to move this play-head faster than real-time. In case of pre-recorded audio this makes sense: you have the whole recording available and you may move your play-head any way you want.
 
In the real-time case, however, if you try to move the play-head faster than sampling rate (i.e. do time compression), you'll exhaust your input buffer before you fill in the output buffer. IIUC, this is what Robert meant by colliding pointers (I may be wrong, as I don’t have much low-level DSP coding experience). And even if you create a big buffer of incoming audio before doing this operation, you’ll have to wait for the input buffer at some point.
 
You can simulate time stretching in the real-time case by buffering input and moving the play-head through it slower than real-time. But in this case you’ll exhaust your memory at some point.
 
Hope this helps.
 
-- 
Kind regards,
Eugene Cherny
https://eugn.ch
 
 
 
01.10.2018, 20:07, "Alex Dashevski" <[email protected]>:
Hi,
Yes. I have seen it but I didn't find the answer on my question.
re or less samples and you must figure out how to remove the extra or add samples to be the correct number of samples in order for it to work on a
 
 
Thanks,
Alex
 
‫בתאריך יום ב׳, 1 באוק׳ 2018 ב-19:46 מאת ‪Nuno Santos‬‏ <‪[email protected]‬‏>:‬
Hey Alex,
 
Have you seen this article before?
 
 
It has a complete and detailed description on how time and pitch scaling works.
 
Hope it helps! 
 
Best regards,
 
Nuno 
 
On 1 Oct 2018, at 17:30, Alex Dashevski <[email protected]> wrote:
 
Hi,
 
I got this answer from Robert:
WSOLA fundamentally does time-scaling.  time compression or time stretching without changing pitch.  time-scaling is not normally thought of as real-time because your input and output buffer pointers will collide.
 
 
My question is:
Why buffers will collide ?
 
Thanks,
Alex
_______________________________________________
dupswapdrop: music-dsp mailing list
[email protected]
https://lists.columbia.edu/mailman/listinfo/music-dsp
_______________________________________________
dupswapdrop: music-dsp mailing list
[email protected]
https://lists.columbia.edu/mailman/listinfo/music-dsp ,

_______________________________________________
dupswapdrop: music-dsp mailing list
[email protected]
https://lists.columbia.edu/mailman/listinfo/music-dsp

_______________________________________________
dupswapdrop: music-dsp mailing list
[email protected]
https://lists.columbia.edu/mailman/listinfo/music-dsp

Reply via email to