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
--