Scriptnode "oversample" node starting at 4x crashes in PC
-
I like the idea of a global oversampler because it might address other issues as well, however it should make sure that it doesn't use absurdely high samplerates. Running an entire plugin with 16x oversampling in 96k would be total overkill.
What if we add a "HQ Mode", that just ensures that the internal samplerate is above a certain value? If you run HISE with 44,1k or 48k, it'll use a 2x oversampler, but if you run it in 88,2kHz or 96kHz it won't do anything?
Then all you need would be an API call like
Engine.setLowestSamplerate(44100.0 * 2); // or whatever
and it figures out the oversampling factor required to ensure this minimum samplerate.
-
If you're feeling out the room, I'd vote for something closer to the "overkill" method
Have you seen this video:
https://youtu.be/-jCwIsT0X8M?list=WLEven with an increased sample rate, there are instances (such as multiple levels of saturation) that would still require oversampling (sometimes up to 4X) to reduce aliasing. And at lower sample rates, this would put you into the 8X oversampling realm.
We are at your mercy with the implementation, and anything is definitely better than nothing. If you're leaning towards a single "HQ" style, I'd only request that it functions at higher sample rates as well.
-
I think this idea is very nice, @Christoph-Hart , it would make the system more adaptable I think and would allow the users to fit the performance to the specs of their rig, too.
-
Alright, good things take their time, but
Engine.setMinimumSampleRate()
has just arrived :) -
-
@Christoph-Hart holy crap! YA YAYAYAYYA!!!
-
@Christoph-Hart said in Scriptnode "oversample" node starting at 4x crashes in PC:
Engine.setMinimumSampleRate()
Any tips on implementation yet?
-
You could add a HQ button somewhere and do
if(value) Engine.setMinimumSampleRate(100000); else Engine.setMinimumSampleRate(40000);
in its callback. 100.000 will ensure that it's always 4x oversampled for lower samplerates and 40000 that it's never oversampled in non-HQ mode (using 48000 would cause oversampling in 44,1kHz).
It will fade out all voices and then reinitiliase the processing chain with the new samplerate .
-
@Christoph-Hart said in Scriptnode "oversample" node starting at 4x crashes in PC:
if(value)
Engine.setMinimumSampleRate(100000);
else
Engine.setMinimumSampleRate(40000);This is awesome! Is it just me or is the higher sample rate causing a volume boost? I think it was raised somewhere earlier on the forum.
-
What is oversampling?
-
@d-healey said in Scriptnode "oversample" node starting at 4x crashes in PC:
What is oversampling?
You can think oversampling as resolution of Total Harmonic Distortion. You can prevent aliasing problem with higher oversampling rates. 7 - 8 years earlier nobody was giving a f..k to the aliasing, even didn't aware of the aliasing. But nowadays everybody is a gearslut, and everybody wants higher oversampling rates, even they don't hear any difference between x1 and x16 oversampling rates :)
For the aliasing; you can watch this video: https://www.youtube.com/watch?v=Ic4bVbXfdW4
-
@orange So I only need to use this in my plugin if I'm making an effect plugin that will do some heavy processessing of the incoming audio?
-
@d-healey I believe this will also affect sounds generated within HISE.
-
@dustbro said in Scriptnode "oversample" node starting at 4x crashes in PC:
@d-healey I believe this will also affect sounds generated within HISE.
Yeah I think like that too. Especially if the sound generator signal goes to filter, distortion or shaper kind of effects.
-
But only if effects are used right? Not when creating a plain ol' sample library.
-
@d-healey You generally want to oversample when you modify the harmonic content, in fact when you add harmonics... so everything involving distortion, (saturation or shape, tape emulation, compression...)
To resume quickly, the more harmonics you add, the better are the chances that they will be higher than the Nyquist freq, so they will be badly folded back to the audible range... Oversampling and better filtering prevent the high harmonics to be folded back. -
@d-healey There is no risk with samples, only effect with higher harmonic content.
-
Well the risk is higher CPU usage which might get important for sample libs with high voice count.
-
@tomekslesicki @Christoph-Hart I'm just encountering this now. When I enable Oversampling, I can see a physical change in the Parametric EQ Gain on my project.
-
@Christoph-Hart said in Scriptnode "oversample" node starting at 4x crashes in PC:
You could add a HQ button somewhere and do
if(value) Engine.setMinimumSampleRate(100000); else Engine.setMinimumSampleRate(40000);
in its callback. 100.000 will ensure that it's always 4x oversampled for lower samplerates and 40000 that it's never oversampled in non-HQ mode (using 48000 would cause oversampling in 44,1kHz).
It will fade out all voices and then reinitiliase the processing chain with the new samplerate .
Awesome :)
I Just Added This To A Script Which Cause Aliasing, And Booom With This All Disapperd
Thank You Christoph <3