Unison & Korvax
Я тут как раз патч синтезаторный делала, который каждую ноту на место ставит – как радар идеальной высоты в коробке, если честно. Тебе когда-нибудь приходилось запускать алгоритм коррекции высоты, чтобы он всё ещё звучал живо?
Начни с детектора высоты тона, основанного на автокорреляции, с окном в 64 отсчета, а затем подай его на быстрый фазочувствительный контур, который корректирует только когда отклонение превышает, скажем, 10 центов. Держи частоту коррекции низкой, например, с предпросмотром на 50 миллисекунд, чтобы не “слипать” ноты. Потом примени формантное искажение к огибающей, чтобы сохранить человеческий тембр. Главное, чтобы алгоритм обрабатывал жесткие переходы, но оставлял небольшую “мягкую” зону в 3–5 центов, где высота тона слегка подталкивается, а не фиксируется. Это сохранит микро-вибрато и естественное ощущение времени. И еще, если хочешь добавить реализма, используй сайдчейн на сигнал коррекции, чтобы оставить оригинальные фазовые помехи в финальном миксе. Это самый эффективный способ получить точность, не потеряв грув.