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, [email protected] <mailto:[email protected]> (<[email protected] <mailto:[email protected]>>) 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

-- _______________________________________________
    [email protected] <mailto:[email protected]> mailing list
    UNSUBSCRIBE and account-management ->
    https://lists.puredata.info/listinfo/pd-list



--
Maximiliano Estudies
/VDT Referat Beschallung/
+49 176 36784771
omslo.com <http://omslo.com>
maxiestudies.com <http://maxiestudies.com>


--
#N canvas 574 82 482 292 12;
#N canvas 1 58 450 258 one-sample-burst 0;
#X obj 174 199 outlet~;
#N canvas 595 92 466 478 crackle 0;
#X obj 116 152 / 44.1;
#X obj 108 399 vline~;
#X obj 108 426 outlet~;
#X obj 174 94 samplerate~;
#X obj 137 68 t f b;
#X obj 51 244 f;
#X text 131 9 aantal samples;
#X obj 95 280 t b f b;
#X msg 143 326 1;
#X msg 88 340 0;
#X obj 90 312 del;
#X obj 158 123 * 0.001;
#X obj 246 14 loadbang;
#X obj 246 39 5;
#X obj 137 30 r 1-craslen;
#X obj 42 126 inlet bang;
#X connect 0 0 5 1;
#X connect 1 0 2 0;
#X connect 3 0 11 0;
#X connect 4 0 0 0;
#X connect 4 1 3 0;
#X connect 5 0 7 0;
#X connect 7 0 10 0;
#X connect 7 1 10 1;
#X connect 7 2 8 0;
#X connect 8 0 1 0;
#X connect 9 0 1 0;
#X connect 10 0 9 0;
#X connect 11 0 0 1;
#X connect 12 0 13 0;
#X connect 13 0 4 0;
#X connect 14 0 4 0;
#X connect 15 0 5 0;
#X restore 176 113 pd crackle;
#X obj 175 160 *~ 0.5;
#X obj 170 47 inlet;
#X connect 1 0 2 0;
#X connect 2 0 0 0;
#X connect 3 0 1 0;
#X restore 159 83 pd one-sample-burst;
#N canvas 1 58 450 300 record2channels 0;
#X obj 99 42 inlet~;
#X obj 187 45 inlet~;
#X restore 38 198 pd record2channels;
#N canvas 1 58 450 300 pitchshifter 0;
#X obj 187 45 inlet~;
#X obj 159 262 outlet~;
#X restore 160 141 pd pitchshifter;
#X obj 159 43 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144 -1
-1;
#X obj 124 169 dac~;
#X text 37 230 ...and compare both audio channels in an audio editor.
;
#X text 277 139 <- put your variable delay pitchshifter in here, f
26;
#X connect 0 0 2 0;
#X connect 0 0 1 0;
#X connect 0 0 4 0;
#X connect 2 0 1 1;
#X connect 2 0 4 1;
#X connect 3 0 0 0;
_______________________________________________
[email protected] mailing list
UNSUBSCRIBE and account-management -> 
https://lists.puredata.info/listinfo/pd-list

Reply via email to