Timestretching довольно тверд. Чем больше Вы замедляетесь или ускоряете звук, тем больше артефактов Вы получаете. Если Вы хотите знать то, на что они походят, слушают "Страхолюдину Rockafeller" Толстым Мальчиком Slim. Существует много способов сделать это, что у всех есть их собственные достоинства и недостатки. Математика может стать действительно сложной. Вот почему существует столько патентованных алгоритмов.
Эта страница объясняет вещи, немного более ясные, чем я могу и ссылки на библиотеку Dirac. http://www.dspdimension.com/admin/time-pitch-overview/
Я нашел, что эта ссылка для кода Java сделала подачу shifting/timestretching http://www.adetorres.com/keychanger/KeyChangerReadme.html
Этот сайт объясняет, как он сделан в материальном мире: http://www.wendycarlos.com/other/Eltro-1967/index.html
Я не знаю, как Вы эмулировали бы это в программном обеспечении хотя... Я буду продолжать смотреть
Я использую soundstretch для ускорения подкастов, который является работами вполне хорошо, не попробовали его на музыке все же.
Один из способов сделать это - удвоить частоту дискретизации без изменения частоты дискретизации вашего источника. (Пример низкого качества, но простой в реализации. Примечание: вы также можете уменьшить частоту дискретизации.)
Проверьте любую математику, связанную с фазовыми вокодерами.
Другой распространенный метод - создать массив бинов fft, который хранить данные для запланированных интервалов вашего звука. Затем вы можете выбрать, как быстро перебирать бункеры, и вы можете повторно синтезировать эти аудиоданные столько, сколько захотите, что позволит вам растянуть один короткий сегмент вашего звука на столько, сколько захотите.
Смелость делает это прямо из коробки, и это бесплатно. Есть несколько бесплатных плагинов для mp3-плееров. Очевидно, это довольно просто сделать с mp3, поскольку он уже закодирован в частотной области.