Welcome to the new and improved Native Instruments online community. Join our active forum of 40,000+ members for discussions and much more.

How come Reaktor's native upsampling displays both pre-ring and non-linear phase response?



  • ANDREW221231
    ANDREW221231 Member Posts: 274 Saw

    If there is a phase shift that is constant with frequency, surely there would be all sorts of horrible/cool phasing artefacts? like with a bode frequency shifter?

    now i'm curious. not so much what it might sound like as much as what kind of function could produce such a result. i guess that's what a hilbert transform would be doing, shifting phase of all frequencies by 90°

    No, I meant that what is constant (like, a flat line) for a linear phase system is phase delay, not phase. Phase is the argument of the Fourier transform, which corresponds to a position in the sinusoid's cycle. Phase is linear for a linear phase system, it's a linear function of frequency.

    i had it knocking around somewhere in my head that linear phase delays all frequencies by the same amount of time, but just as a fact. now it all makes sense. i was about to say that sounds like it would make 'linear phase' kind of a misnomer, until reading:

    In a log plot it's hard to discern. In a linear plot you see those lines are indeed straight diagonals. If they happen to get curvy somewhere, the system is not linear phase.

    🤯 .... phase is one of those things that it can be hard to build an intuition around, i had to sort of mentally visualize unwrapping it and then it finally clicked

    It was in the result, but not in the process -you just shifted the whole thing back afterwards.

    is the reason for that that noisy section that... shifting it in time is causing a discontinuity?

    btw what softwares are you using for making these plots? i feel like this stuff won't be quite as confusing if i can just mess around with it

  • colB
    colB Member Posts: 436 Saw

    i guess that's what a hilbert transform would be doing, shifting phase of all frequencies by 90°

    iirc, a hilbert transform takes the input and gives you two outputs that are 90º out of phase with each other... something like that anyway... great for go ol' frequency shifter shenanigans

  • ANDREW221231
    ANDREW221231 Member Posts: 274 Saw

    as well as instantaneous frequency and amplitude. as far as instantaneous amplitude, fascinating read here:


  • Laureano Lopez
    Laureano Lopez Member Posts: 92 Tri

    is the reason for that that noisy section that... shifting it in time is causing a discontinuity?

    I suppose you refer to the last plot. It's just zero, the noise is numerical error from the 16-bit samples. The filter has a latency of half its kernel size plus 1. If you feed it something, it will come out (size+1)/2 samples later. At that point all frequencies will be shifted by (size+1)/2 samples, which is a different amount of cycles for each frequency, in a linear relation. If you give it (size+1)/2 samples of head start, the output will be instantaneous, then all frequencies will be delayed by zero samples and zero cycles. Hence zero-phase.

    what softwares are you using for making these plots?

    Mathematica. Maple and Maxima are similar, they're all oriented to symbolic computation. Matlab and Octave are a different kind of thing, oriented to numerical computation. There's a lot of crossover between them at this point. Mathematica can be infuriatingly pedantic sometimes, like a simple thing becomes very complicated because the language considers a lot of corner cases that only matter for the 2000 guys actually doing advanced maths. It's also the most complete one.

  • liakos
    liakos Member Posts: 6 Noise

    So thank you all for your great answers to this. I have come to the conclusion that since my testing software is brutal in-out comparison the 'problem' is with reaktor not reporting the linear-phase oversampling latency it introduces. or maybe not... but probably so... anyways, a few more graphs from plugin doctor phase and impulse. this time in-out with the SPLpasseq. seems the impulse delay is extremely similar. the phase response shows very different. The early bump in the SPL is probably from a DC filter, i put and tuned a similar there... the highs though.... for me to get as similar as possible results in Plugin Doctor i have to use ***** loads of delay and an allpass on one of the 2x from the library for things to align, though the delay is just circling the material in relation to the testing impulse. oh well :)

    in Reaper, SPL reports 16 samples latency. so given the impulse alignment am I to assume native reaktor oversampling uses 16 samples too (unreported)? probably... and it being unreported is probably throwing off the in-out measurement. anyways those are my conclusions so far, we'll see...

    reaktor is the PINKER of the two :D :D :D :D

    this is a 2x from the library delayed and allpassed. The impulse gives you the pre-ring 300ms later i don't even dare post it :D:D :D

    i think next step is to feature request manual plugin latency reporting from plugin Doctor :)

    thanks again all, be well.

  • colB
    colB Member Posts: 436 Saw

    Also add your name to the requests for latency reporting from Reaktor!

  • liakos
    liakos Member Posts: 6 Noise
    Answer ✓

    Answer from DDMF (PluginDoctor)

    """"" 'Plugindoctor is aware of the latency that is reported by plugins, and is

    correcting for it in its phase display (not in the impulse response

    display as I think it can be interesting to actually see the delayed

    impulse response). ....

    ..... So all the phase response that you see is "real", i.e. it is either a

    result of whatever filters are present in Reaktor, or the reported

    latency by Reaktor is wrong (already one sample can lead to a visible

    change in the phase response)......""""""

    I uploaded the delays to fix this


Back To Top