Как получить значение частоты в JavaScript?

Я студент из Италии и использую библиотеки p5 для создания веб-гитарного тюнера. Я хотел бы знать, есть ли способ получить частоту входа микрофона.

ссылка на библиотеку: https://p5js.org/reference/#/libraries/p5.sound

Принимаются разные решения с разными библиотеками

Спасибо

4 голоса | спросил Strimply 16 Maypm18 2018, 20:29:22

1 ответ


0
Основываясь на этом примере , если вы используете объект FFT P5.sound, вы можете вызвать ---- +: = 0 =: + ----, чтобы получить массив амплитуд, разделенных на разные частотные бины.По умолчанию это 1024 корзины.Эти ячейки равномерно распределены от 0 Гц до частоты Найквиста, что составляет половину вашей частоты дискретизации звука.(Частота дискретизации по умолчанию составляет 44100 Гц, поэтому частота Найквиста по умолчанию составляет 22050 Гц).Также обратите внимание, что для каждой ячейки разрешение по умолчанию составляет 22050 Гц /1024 ячейки ≈ 21,53 Гц /ячейка.Если вы используете P5.sound, вы получите в лучшем случае точность 21,53 Гц (при условии, что ваш компьютер настроен так же, как мой).Таким образом, bin 0 (или ---- +: = 1 =: + ---- ) содержит амплитуду на частотах ~ 0 - 21,5 Гц, bin 1 ( ---- +: = 2 =: + ---- ) содержит амплитуду на частотах ~ 21,5 Гц - 43,0 Гц и так далее.Это означает, что частота в любом данном бине: ---- +: = 3 =: + ---- .Если для вас этого достаточно, вы можете просмотреть массив, возвращенный ---- +: = 4 =: + ---- , найти индекс пика, а затем преобразовать этот индекс обратно в частоту, используя соотношениеНайквиста для длины массива (бинов).Допустим, ± 21,53 Гц недостаточно точен для вас.Ну что ж ... вы можете инициализировать ваш FFT-объект большим количеством бинов: ---- +: = 6 =: + ---- .В документации сказано, что максимальное количество бинов равно 1024, но я только что попробовал с 8192 (для разрешения 2,69 Гц), и мне показалось, что он работает нормально.
ответил Wes Lord 19 Mayam18 2018, 06:52:38

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132