Привет, добрые люди из мира аудиокомпьютеров,
У меня есть массив сэмплов, которые представляют запись.Допустим, это 5 секунд при 44100 Гц.Как бы я проиграл это с увеличенным шагом?И можно ли динамически увеличивать и уменьшать высоту тона?Например, медленно увеличивайте высоту тона, чтобы удвоить скорость, а затем отступите.
Другими словами, я хочу взять запись и воспроизвести ее так, как если бы она «царапалась» ди-джеем
* 1006.* Псевдокод всегда приветствуется.Я буду писать это на языке C.
Спасибо,
РЕДАКТИРОВАТЬ 1
Позвольте мне уточнить мои намерения.Я хочу сохранить воспроизведение на частоте 44100 Гц, поэтому мне нужно манипулировать семплами перед воспроизведением .Это также потому, что я хотел бы смешать звук с увеличенной высотой звука со звуком, который работает с нормальной скоростью .
Выражается по-другому, может быть, мне нужно каким-то образом сжать аудио на то же количество семплов?Таким образом, когда он воспроизводится, он будет звучать быстрее?
EDIT 2
Кроме того, я хотел бы сделать это сам.Никаких библиотек, пожалуйста (если только вы не чувствуете, что я могу выбрать код и найти что-нибудь интересное).
РЕДАКТИРОВАТЬ 3
Пример кода, написанного на C, который принимает 2 аргумента (массив выборок и коэффициент основного тона), а затем возвращает массивновый звук был бы фантастическим!
PS Я получил награду за это не потому, что не думаю, что уже предоставленные ответы не действительны.Я просто подумал, что было бы хорошо получить больше отзывов на эту тему.
AWARD OF BOUNTY
Честно говоря, я бы хотел распределить вознаграждение по нескольким различным ответам, поскольку их было довольно мало, что я считал суперполезно.Особые пожелания Дэниелу за передачу мне кода, а AShelly и Hotpaw2 за такие подробные ответы.
В конечном счете, хотя я использовал ответ от на другой вопрос SO , на который ссылается специалист по обработке данных, и поэтому награда достается ему.
Еще раз спасибо всем!