Rust - Rodio Resampling / pitch - PullRequest
       3

Rust - Rodio Resampling / pitch

0 голосов
/ 20 февраля 2020

Итак, я пытаюсь выяснить, как пересэмплировать сэмплы для эмулятора (Gameboy). У меня есть базовые c тоны, работающие и играющие, но я пытаюсь заставить работать частоту и частоту. Функция усилителя Rodio (), кажется, работает должным образом ... но я хочу взять ve c и выполнить какую-то функцию, которая изменит частоту или установит ее так, чтобы я мог передать выборку и частоту (например, 440) к функции, и получить образец обратно на этой частоте. Я попытался возиться с функцией lerp () (линейная интерполяция), но это, похоже, не влияет на высоту тона ... Я бы предположил, что мне пришлось бы буквально передать весь пример ve c () в работать и делать какие-то "растяжения / сжатия" на нем .... потенциально изменяя длину VE c. Для начала все сэмплы, которые я сейчас использую, имеют длину 8 бит и выглядят в основном как ve c (1i16,1,1,1, -1, -1, -1, -1). (Прямоугольная волна) Я знаю, что с генератором пульсовых волн также происходит некоторая дополнительная ресэмплинг, где есть 4 различных частоты дискретизации, которые он может изменить ... но сейчас я просто хочу базовый шаг c (пример: ve c , Frequency: F64) -> vec {} function ... где частота - это, в основном, отношение (положительное значение - повышенное значение, отрицательное значение - понижающее значение).

Любая идея, как я могу добиться этого с помощью lerp () или другого видео функция

...