see the attached patch.
I now think it is impossible to compensate for the delay of a variable delay pitch shifter. Just because it's variable :) Anyway, this is Miller's clear explanation: http://msp.ucsd.edu/techniques/latest/book-html/node115.html 

best, Hans

On 11/24/20 2:59 PM, Maximiliano Estudies wrote:

Hi Hans,

how are you measuring the delays?

Cheers,
Maxi

El vie, 20 nov 2020 a las 15:25, info@hansroels.be (<info@hansroels.be>) escribió:

Hello,

Hopefully people with more knowledge of audio processing can answer the following questions. Background: I make patches in which the microphone input is modified by different kinds of pitch-shifting, I would like to compensate the delays caused by these pitch-shifts and thus avoid artefacts.

1) How much delay does a pitch-shifter based on a variable delay (the classic rotating-tape-head style) produce? as in G09.pitchshift.pd in the audio.examples folder. I did a quick test with a one-sample-audio-trigger going immediately to the first channel of a recording patch in Pd and simultaneously going to a variable delay pitchshift (pp.pitchshift~ from AudioLab), routed into the second channel of the recorder. The delays are quite large and vary between 30 and 80 milliseconds, there seems to be no relation with the amount of pitch-shift. In the pitch-shifting patch I also notice that the delay varies between zero and the window size. Is there a way/patch to calculate and compensate for this delay? (for example, if you want to combine the original with the pitch-shifted signal in a patch). Or is this impossible because the delay is variable...

2) I'd like to know the delay in ms with FFT processing if you have a 1024 sample window with overlap factor of 4, for example, in a pitch-shifting vocoder? I found this info on a MAx/MSP mailing list, is it correct?: "The I/ O delay is equal to the window size minus the hop size (e.g., for a 1024-sample FFT window with an overlap factor of 4, the hop size is equal to 256, and the overall delay from input to output is 768 samples)"; at 44100 sampling rate this is around 17ms delay (for a window of 1024 samples, overlap 4).

3) Conclusion: any pitch-shifting technique introduces tens of milliseconds delay? (Pitch-shifting based on granular synthesis is not a solution, I think it also requires a buffer of at least 50ms.)

Hans

--
_______________________________________________
Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> https://lists.puredata.info/listinfo/pd-list


--
Maximiliano Estudies
VDT Referat Beschallung
+49 176 36784771


--