countmodula / VCVRackPlugins

Plugins for VCV Rack
Other
61 stars 11 forks source link

Arp: Bypass slew limiter when glide is zero. #65

Closed rbarnard closed 3 years ago

rbarnard commented 3 years ago

When using Super Arpeggiator with some VSTs via Host, I found that there was an unexpected glide between notes even when the glide setting was disabled for the note or the glide time was set to the minimum value: SuperArpGlide

This behavior isn't really noticeable when passing V/Oct directly to an oscillator, but it becomes very prominent when sequencing a voice with discrete pitches (e.g. a piano VST, going through a quantizer).

For my purposes, this was easily fixed by simply bypassing the slew limiter if the glideTime value is zero(ish). If the current behavior is intentional, feel free to ignore/close this PR without merging.

AdamVerspaget commented 3 years ago

Thank you for submitting this. I have been looking at the root cause of this issue and you are quite correct about there being an ever so slight glide when the time is at zero, I have noticed the same issue with the Befaco slew limiter on which the glide in the arpeggiator is based. I will change the code so that it glides based on the button rather than time. I have found there is also another bug here in that, when in poly mode, the slew limiter is being shared amongst the poly channels which carries the slew on the net note if arrives before the slew finishes. I will fix both of these in the forthcoming 1.14.0 release.

AdamVerspaget commented 3 years ago

Alternative solution released in 1.14.0