Hi,
How can i reduce the latency of the mautopitch and mmultibandharmonizer within the plugins them self?
I am using a motu 828mkiii with block size 64, and reaper reporting approximately 1,6ms latency. When i sing in microphone, i have no hearable latency, until i enable mautopitch and/or mmultibandharmonizer - then the latency becomes quite noticeable. Is there a "live" low performance setting in the plugin or something i can adjust?
Kind Regards,
Nicolai Bob
how to reduce latency on mautopitch and mmultibandharmonizer
-
- KVRist
- 49 posts since 30 Jan, 2014
-
MeldaProduction MeldaProduction https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=176122
- KVRAF
- 14339 posts since 15 Mar, 2008 from Czech republic
Hi Nicolai,
bad news - you cannot. It's impossible. First, having block size of 64 increases CPU consumption of every plugin, a LOT! And despite you can hear a difference, you mostly won't, but that's up to you of course.
Now the technical explanation. Simply put, a pitch shifter needs to analyze the signal, determine which frequencies are there and shift them. But it takes time to analyze there actually IS a frequency! Imagine a 50Hz sine wave. To be able to actually define it is in the signal, you need to see at least one period of it, which is 20ms! Before that moment it is matematically impossible to do so, the same thing does your brain. And this limit is quite theoretical, because there's quite a chance of error in decision, and such error would be a disaster.
=> Pitch shifting can never be performed without latency.
So all pitch shifting algorithms need to define some kind of minimum frequency, below this value they just won't work correctly. And this low limit defines the latency. In MMultiBandHarmonizer you can choose between 1024 and 2048 samples (vocoder & harmonizer modes) for 44kHz, so 20ms and 40ms. If you want less, then you can use the granular algorithm, which works different way and for most audio signals, especially polyphonic, is unusable.
bad news - you cannot. It's impossible. First, having block size of 64 increases CPU consumption of every plugin, a LOT! And despite you can hear a difference, you mostly won't, but that's up to you of course.
Now the technical explanation. Simply put, a pitch shifter needs to analyze the signal, determine which frequencies are there and shift them. But it takes time to analyze there actually IS a frequency! Imagine a 50Hz sine wave. To be able to actually define it is in the signal, you need to see at least one period of it, which is 20ms! Before that moment it is matematically impossible to do so, the same thing does your brain. And this limit is quite theoretical, because there's quite a chance of error in decision, and such error would be a disaster.
=> Pitch shifting can never be performed without latency.
So all pitch shifting algorithms need to define some kind of minimum frequency, below this value they just won't work correctly. And this low limit defines the latency. In MMultiBandHarmonizer you can choose between 1024 and 2048 samples (vocoder & harmonizer modes) for 44kHz, so 20ms and 40ms. If you want less, then you can use the granular algorithm, which works different way and for most audio signals, especially polyphonic, is unusable.
-
- KVRist
- Topic Starter
- 49 posts since 30 Jan, 2014
Hi,
Thanks for the fast reply.
Then i have a change request/suggestion for both mautopitch and mmultibandharmonics.
A setting, where one can change the lowest possible frequency for pitch detection, thus if the lowest frequency of the vocal/voice is i.e. 200hz, then the plugins should be able to reduce the latency for detection, from 20ms to 5ms (in theory?).
Btw - love your plugins
Nicolai
Thanks for the fast reply.
Then i have a change request/suggestion for both mautopitch and mmultibandharmonics.
A setting, where one can change the lowest possible frequency for pitch detection, thus if the lowest frequency of the vocal/voice is i.e. 200hz, then the plugins should be able to reduce the latency for detection, from 20ms to 5ms (in theory?).
Btw - love your plugins
Nicolai
-
MeldaProduction MeldaProduction https://www.kvraudio.com/forum/memberlist.php?mode=viewprofile&u=176122
- KVRAF
- 14339 posts since 15 Mar, 2008 from Czech republic
Thank you Nicolai. I'm afraid it's not that simple. it's not that lower frequencies are not represented, it would be just messed up, lower detection accuracy, lower harmonic resolution, plus there are technical requirements... It has to stay like this I'm afraid. I'll think about adding "ultra-low latency mode" where it would be 2x less, but I'm not really keen to do that as it will jeopardize audio quality, a lot.
