Timestretch Artifacts
-
Hey, I'm building a guitar rhythm loop based plugin and I cannot seem to get the timestretching to sound good. Even with 1-2% stretch it sounds smeared and in some cases at 0% it still sounds smeared with TempoSynced mode activated.
I tried setting NumQuarters (16 for a 4 bar loop at 140 BPM) and SourceBPM via getTimestretchOptions/setTimestretchOptions and it doesn't seem to make any audible difference.
My setup:
HISE 4.1.0 (commit a29ff452)
4 bar loop at 140 BPM, 4 bars
TempoSynced mode
NumQuarters = 16, SourceBPM = 140
Tested at both 44.1k and 48k sample rates — same artifacts at bothHere is my current script:
javascriptonInit
{
const var Sampler1 = Synth.getSampler("RTM_1_140");
const var obj = Sampler1.getTimestretchOptions();
obj.SourceBPM = 140;
obj.NumQuarters = 16;
Sampler1.setTimestretchOptions(obj);
}A few specific questions:
Is the smearing at 0% stretch a known issue or am I doing something wrong in my setup?
Are there any TimestretchOptions properties beyond what's documented that might help for rhythmic/percussive material like guitar chugs and rhythm loops?
Is there a recommended approach for loop players specifically, or is the sampler module not the right tool for this use case?
Has anyone successfully integrated Elastique or Rubber Band v3 into HISE and is there any existing code or PR for this?
I really just need clean stretch of about 10 BPM up and down from the source tempo. Any help appreciated, thanks!
-
@dannycouture Are you using the latest develop branch that incorporates this PR?
Edit: I just saw you included the commit hash, so you should have those changes. It allows you to set the BPM directly without messing around with Num Quarters.