Хорошо, это немного математики и вопроса о DSP.
Допустим, у меня есть 20 000 сэмплов, которые я хочу сэмплировать на другом шаге. Например, в два раза выше нормы. Используя Интерполированный кубический метод, найденный здесь Я бы установил мои новые значения индекса массива, умножив переменную i на итерации на новый шаг (в данном случае 2.0). Это также установило бы мой новый массив образцов на 10000. Поскольку интерполяция удваивается по скорости, ей требуется только половина времени для завершения.
Но что, если я хочу, чтобы моя высота звука менялась на протяжении всей записи? По сути, я бы хотел, чтобы он медленно увеличивался с нормальной скорости в 8 раз быстрее (при отметке 10 000 выборок), а затем вернулся к 1,0. Это была бы дуга. У меня такие вопросы:
Как рассчитать, сколько сэмплов будет в конечном звуковом треке?
Как создать массив значений основного тона, который бы представлял это увеличение с 1,0 до 8,0 обратно до 1,0
Имейте в виду, это не для вывода живого звука, а для преобразования записанного звука. Я в основном работаю в Си, но не знаю, насколько это актуально.
Я знаю, что это, вероятно, сложно, поэтому, пожалуйста, не стесняйтесь спрашивать разъяснения.