2015-03-18 2 views
0

Im пытается выяснить, как изменить высоту блока образцов. До сих пор я использовал код smbPitchShift, но кто-то сказал, что сдвиг тона может быть выполнен простым преобразованием частоты.аудио пример частоты тона

Скажите прямо сейчас, у меня есть блок из 2000 образцов, работающих на частоте 44100 Гц. Как мне изменить шаг на 2 октавы вверх (24 полутона)? Этот парень сказал, что он просто конвертирует 1/частоту, которую я действительно не понимаю.

Его плагин VST im пытается развиваться на C++.

Спасибо.

+0

Вы пытаетесь сохранить темп, или вы в порядке с ним работает на 4 раза быстрее? –

+0

Нет, мне нужно поддерживать темп, в основном оставаясь всегда на 2000 образцах, таких как вход. – user3575889

ответ

0

Это не так просто, как это звучит ...

, если вам не нужно держать форманты один путь времени растянуть 4x вашего образца и в конце RESAMPLE (интерполировать) на 4, этот шаг шаг сдвиньте свой звук.

Для растяжения обычно требуется некоторый алгоритм шага дорожки, в области времени некоторые знают коды PSOLA, Wsola, TDHS, SOLA, VSOLA ...

Для растяжения в частотной области можно использовать фазовый вокодер.

Помните, что без формант будет производиться эффект Демона/Бурундука.