I've got a piece of kit from Roland called a VG-99 that uses a divided guitar pickup as input (i.e. six separate signals) and lets you detune the guitar in real time without making it sound like it's not a guitar. It's a great idea, but the VG-99 is horribly inflexible. Therefore I want to do it myself, in Max (or using 6 copies of some VST, if I must). Does anyone know of an algorithm, or a Max object, or a VST plugin that allows one to detune a guitar string in real time while maintaining a guitar-like timbre? I don't need big pitch changes -- just +/- 3 semitones.
I think I've read about the needed technique: one has to somehow separate the (high) formants from the (low) partials, and transpose the latter while keeping the former in the same shape. But I'm not nearly awesome enough to program it myself.
I tried Mattijs Knepper's granular time stretcher / pitch shifter (https://cycling74.com/share.html),
but it creates a weird bumpiness when the pitch shifts, even for single-pitched signals. Demo videos of elasticx~, which costs money, seems to exhibit the same problem. There are also FTT-based stretchers, but those seem to make it smear. And yet somehow Roland manage to get it to work with barely any artifacts.
Many thanks in advance,