[bug] High frequencies not passed by convultion at 44.1 and 48
-
I'm working on an EQ / filter thing that uses convolution for some processing. I noticed that if the IR affects the top end only (so no bottom and no mid left after processing, just 3kHz and higher frequencies), the convolution effect will render it as silent. On 88 and 96, it's perfect.
Now, the problem is that calling
Engine.setMinimumSampleRate(100000); or Engine.setMinimumSampleRate(96000);
doesn't solve this. It's not solved by using an oversampling node either. I tested both the new dynamic oversampling and all the static ones and the results are the same.
I also checked if it's not caused by the volume difference between sample rates and convolution reverbs that was reported a while back and no, it's not - inserting a gain node and boosting the signal either before of after the convolution doesn't help either so I think that convolution simply doesn't seem to process higher frequencies at lower sample rates?
This is both on the convolution fx and scriptnode, but I guess they use the same code. And both in HISE and exported plugins.
IPP is disabled.
@Christoph-Hart - is there a chance of fixing this? Or do you have any idea for a walkaround? I'm using oversampling anyway so I'm good with more CPU use but I just can't seem to force the engine to run at 88 or 96 at all times.
-
@tomekslesicki Did you enable IPP for the exported plugins? Unforunately IPP causes the distortion of the high frequencies with the convolution engine.
Try to export the plugin with IPP disabled.
-
@orange no, I’m not using IPP for this very reason :-)
-
A little more info: it doesn’t matter what the sample rate of the IRs is, whether they’re mono or stereo and if they were normalized or not.
If the IR leaves only frequencies above 3K (so after the IR, everything below that is erased), when the sample rate is set to 44.1 or 48, it will result in silence. 88 and 96 work properly.
-
@tomekslesicki Please send me the IR, then I'll take a look. I'm not doing anything special with the convolution so not sure what could cause this.
Does it work in other convolution engines?
-
@Christoph-Hart hey Christoph, I just sent you an email, thanks! It works fine in Ableton's convolution, regardless of the sample rate of the project.
-
@Christoph-Hart is there any hope?
-
@tomekslesicki There's always hope...
In this case your impulse response was just too short, so the convolution engine refused to load it - it actually had nothing to do with the sample rate or frequency response (or at least not directly - with lower sample rates the impulse response was resampled to have less samples than the audio buffer size and this is where the engine thought to call it a day and just not load it).
It should be fixed now, but please check if this is the case - it's a very minimal effort fix :)