Я хочу написать приложение для транспонирования ключа, который играет wav-файл (для забавы, я знаю, что есть приложения, которые уже делают это) ... мое основное понимание того, как это может быть достигнуто, -
1) нарезать аудиофайл на очень маленькие блоки (скажем, 1/10 секунды)
2) запустить БПФ на каждом блоке
3) сдвиг фазы частотного пространства вверх или вниз в зависимости от того, какую клавишу я хочу
4) использовать обратное БПФ для возврата каждого блока во временную область
5) склеить все блоки вместе
Но теперь мне интересно, если бы преобразованные блоки больше не были непрерывными, когда я пытаюсь склеить их вместе. Есть идеи, как мне это сделать, чтобы гарантировать преемственность, или я просто ни о чем не беспокоюсь?