Детектор висоти тону

Визначайте музичні ноти та частоту в режимі реального часу. Заспівайте або заграйте одну тривалу ноту. Ми покажемо найближчу музичну ноту, відхилення в центах та список останніх розпізнаних звуків.

—
—Гц
−50 ¢—+50 ¢
0 центів
Останні розпізнані
Запустіть детектор і заспівайте або заграйте ноту.
A4 =Гц
Очікування

Як працює цей детектор висоти звуку

Ваш мікрофон захоплює буфер із 8192 семплів у браузері — це приблизно 170 мс при 48 кГц, чого достатньо для аналізу кількох циклів навіть низьких басових нот. Інструмент використовує нормовану автокореляцію за методом Маклауда для цього вікна — він порівнює поточну хвилю зі зміщеними копіями самої себе та шукає найсильніший повторюваний цикл. Довжина цього циклу є періодом хвилі; величина, обернена до періоду, — це частота в Гц. Потім частота конвертується в найближчу музичну ноту з відхиленням у центах (один півтон = 100 центів).

Перед аналізом ми просимо браузер вимкнути автоматичне регулювання підсилення, ехопоглинання та шумозаглушення для потоку мікрофона. Ці фільтри спотворюють форму хвилі та збивають показники висоти на десятки центів для тихого голосу або низьких інструментів, тому їх вимкнення — головний крок до точності. Короткий медіанний фільтр для останніх кадрів прибирає поодинокі похибки без помітної затримки.

Цей підхід краще відстежує тривалі однотонні звуки, ніж звичайне FFT, особливо на низьких частотах, оскільки він рідше сприймає верхні гармоніки за основну ноту. Компроміс: він не розпізнає акорди, вібрато змушує показник центів коливатися, а шум на фоні може заважати точності.

Еталон: стандартне налаштування

Детектор за замовчуванням використовує концертний стрій A4 = 440 Гц, але ви можете змінити еталон, якщо ваш інструмент або ансамбль використовує інший стандарт. Кожна інша нота знаходиться на фіксованій відстані — корінь дванадцятого ступеня з двох (≈1,05946) на півтон. Октави подвоюють частоту: A3 — це 220 Гц, A5 — 880 Гц. Центи вимірюють відхилення в межах одного півтону; різниця менше ±5 центів зазвичай не сприймається на слух.

Як читати показники

  • Велика нота — найближчий півтон, зафіксований протягом останніх кількох кадрів.
  • Шкала центів — маркер знаходиться по центру, коли ви потрапляєте в ноту, зміщується вліво, якщо звук занижений, і вправо, якщо завищений. Зелений = точно (±5 ¢), жовтий = близько (±20 ¢), червоний = помітне відхилення.
  • Клавіатура піаніно — підсвічує розпізнану ноту у відповідній октаві в діапазоні C1–B6. Ноти за межами цього діапазону все одно відображаються текстом.
  • Останні розпізнані — щоразу, коли ви переходите до нової тривалої ноти, вона додається до списку, щоб ви могли переглянути історію співу чи гри.

Поради для точного вимірювання

  • Тягніть одну ноту принаймні пів секунди — детектору потрібно кілька кадрів підтвердження, перш ніж вивести результат.
  • Тиха кімната. Вентилятори, шум вулиці та клацання клавіатури створюють більше завад, ніж здається.
  • Тримайте ноту рівно. Вібрато змінює показник центів, навіть якщо середня висота правильна.
  • Використовуйте зовнішній мікрофон, якщо можливо. Мікрофони ноутбуків погано вловлюють звук нижче ~80 Гц, що обрізає найнижчі басові ноти.
  • Будьте ближче. Збільшення відстані до мікрофона вдвічі зменшує рівень сигналу вчетверо.

Часті запитання

Які інструменти можна налаштовувати?

Будь-що, що видає один тривалий звук приблизно в діапазоні 40 Гц – 2,2 кГц: гітара, бас-гітара, укулеле, скрипка, альт, віолончель, арфа, мідні та дерев'яні духові, а також голос. Барабани, тарілки та повні акорди на піаніно не розпізнаються — для автокореляції потрібна одна домінуюча частота.

Нота стрибає, коли я співаю — це я чи програма?

Переважно ви, але не зовсім так, як ви думаєте. Мікрофон сприймає голос разом із диханням і акустикою кімнати, і ледь помітні коливання висоти відображаються як стрибки на ±20 центів. Спробуйте співати гучніше та рівніше, і показники стабілізуються.

Чому детектор не працює на дуже низьких або високих нотах?

Детектор обмежений діапазоном приблизно 40 Гц – 2,2 кГц. Нижче 40 Гц більшість мікрофонів ноутбуків втрачають чутливість; вище 2,2 кГц гармоніки починають накладатися, і оцінка висоти стає ненадійною. У цьому діапазоні інструмент охоплює все: від низької B0 на 5-струнному басу до верхньої межі сопрано.

Чи записується звук або чи надсилається він на сервер?

Ні. Весь аналіз звуку відбувається у вашому браузері за допомогою Web Audio API. Нічого не завантажується, не зберігається і не передається. Зупиніть детектор або закрийте вкладку, і потік даних припиниться.