Создание вектороскопа в javascript с использованием веб-аудио API

В настоящее время я пытаюсь создать вектороскоп, который анализирует аудио в реальном времени в Javascript с использованием Web Audio API. API обеспечивает доступ к текущим частотным данным и данным временной области. Я уже воссоздал фигуры Лиссажу, используя простые значения для переменных a и b в следующих уравнениях:

var x = A*sin(a*t);
var y = B*sin(b*t);

Где A & B - амплитуды, a & b - частоты, а t - время (которое я получаю с помощью performance.now()).

Моя проблема заключается в том, что я не уверен, как реализовать данные из данных байтовой частоты и данных байтовой временной области из Web Audio API в приведенные выше уравнения. В моем коде у меня есть два генератора, которые настроены друг на друга стерео (для выделения фазовой корреляции), которые подаются в два анализатора (один для левого канала и один для правого). Из обоих анализаторов я могу извлечь данные с помощью методов getByteFrequencyData() и getByteTimeDomainData(). Оба эти метода возвращают массив запрашиваемых данных Uint8. В настоящее время я перебираю буферы из анализаторов и применяю содержащиеся в них данные к уравнениям выше во время каждой итерации. Результатом является беспорядок линий, хотя и на графике X/Y.

Если у кого-то есть идеи о том, как преобразовать данные в частотной и временной областях в полезные значения для переменных двух уравнений, я был бы очень признателен. Ура!

1 ответ

Я разместил это на сайте Sound Design StackExchange и получил полезный ответ: https://sound.stackexchange.com/questions/35737/programming-a-vectorscope

Другие вопросы по тегам