Hangmagasság-érzékelő

Zenei hangok és frekvencia észlelése valós időben. Énekelj vagy játssz le egyetlen kitartott hangot. Megmutatjuk a legközelebbi zenei hangot, az eltérést centben, és az utoljára hallott hangok listáját.

—
—Hz
−50 ¢—+50 ¢
0 cent
Legutóbb észlelt
Indítsd el a mérést, és énekelj vagy játssz le egy hangot.
A4 =Hz
Készenlét

Hogyan működik ez a hangmagasság mérő?

A mikrofonod egy 8192 mintás puffert rögzít a böngészőben – ez körülbelül 170 ms 48 kHz-en, ami elég hosszú ahhoz, hogy még a mély basszushangok több ciklusát is lássuk. Az eszköz egy McLeod-stílusú normalizált autokorrelációt futtat ezen az ablakon – összehasonlítja a legutóbbi hullámformát annak eltolt másolataival, és keresi a legerősebb ismétlődő ciklust. Ez a ciklushossz a hullám periódusa; a periódus reciproka pedig a frekvencia Hz-ben. A frekvenciát ezután a legközelebbi zenei hanggá alakítjuk, kiegészítve egy cent eltolódással (egy félhang = 100 cent).

Az elemzés előtt megkérjük a böngészőt, hogy hagyja ki az automatikus erősítést, a visszhangkioltást és a zajszűrést a mikrofonfolyamon. Ezek a szűrők eltorzítják a hullámformát, és halk hangok vagy mély hangszerek esetén akár több tíz centtel is eltolhatják a mérést, így ezek kikapcsolása a legnagyobb pontosságbeli nyereség. Az utolsó néhány képkockán alkalmazott rövid mediánszűrő elnyeli az egyszeri kiugró értékeket anélkül, hogy látható késleltetést okozna.

Ez a megközelítés jobban követi a kitartott, egyszólamú hangokat, mint egy sima FFT, különösen alacsony frekvenciákon, mert kevésbé valószínű, hogy összetéveszti a felhangokat az éppen játszott alaphanggal. A hátránya: nem tudja követni az akkordokat, a vibrato miatt ingadozhat a cent-érték, a zajos háttér pedig megzavarhatja az észlelést.

Referencia: standard hangolás

A detektor a A4 = 440 Hz koncertmagasságról indul, de módosíthatod a referenciát, ha a hangszered vagy az együttesed más szabványt használ. Minden más hang fix arányra van – a kettő tizenkettedik gyöke (≈1,05946) félhangonként. Az oktávok megduplázzák a frekvenciát: az A3 220 Hz, az A5 pedig 880 Hz. A centek azt mérik, mennyire vagy távol egy adott félhangon belül; a ±5 cent alatti különbségek általában nem hallhatóak.

A kijelző értelmezése

  • Nagy hangjegy – a legközelebbi félhang, amelyet az utolsó néhány képkockában hallottunk.
  • Cent skála – a jelző középen van, ha tiszta a hang, balra tolódik, ha mélyebb, és jobbra, ha magasabb. Zöld = tiszta (±5 ¢), sárga = közeli (±20 ¢), piros = egyértelműen hamis.
  • Zongorabillentyűzet – kiemeli az észlelt hangot a megfelelő oktávban C1 és B6 között. Az ezen a tartományon kívüli hangok továbbra is megjelennek a szöveges kijelzőn.
  • Legutóbb észlelt – minden alkalommal, amikor új, kitartott hangra váltasz, hozzáadjuk azt egy listához, így visszanézheted, mit énekeltél vagy játszottál.

Tippek a pontos méréshez

  • Tarts ki egyetlen hangot legalább fél másodpercig – a detektornak szüksége van néhány egyező képkockára a véglegesítés előtt.
  • Csendes szoba. A ventilátorok, a forgalom és a billentyűzet kattogása gyorsabban összeadódik, mint gondolnád.
  • Tartsd stabilan a hangot. A vibrato eltolja a cent-értéket még akkor is, ha az átlagos hangmagasság helyes.
  • Lehetőleg használj külső mikrofont. A laptop mikrofonok ~80 Hz alatt vágnak, ami levágja a legmélyebb basszushangokat.
  • Menj közel. A mikrofontól való távolság megduplázása negyedeli a detektor által érzékelt szintet.

Gyakran ismételt kérdések

Milyen hangszereket tudok ezzel hangolni?

Bármit, ami egyetlen kitartott hangot produkál nagyjából a 40 Hz – 2,2 kHz tartományban: gitár, basszusgitár, ukulele, hegedű, brácsa, cselló, hárfa, rézfúvósok, fafúvósok és az énekhangod. A dobok, cintányérok és a teljes zongoraakkordok nem követhetők – az autokorrelációhoz egyetlen domináns frekvencia szükséges.

Ugrál a hangjegy, amikor énekelek – én vagyok az, vagy az eszköz?

Leginkább te, de nem úgy, ahogy gondolnád. A mikrofonok egyszerre érzékelik a hangodat, a lélegzetedet és a szobát, és a fül számára hallhatatlan apró ingadozások ±20 centes kilengésekként jelennek meg. Énekelj hangosabb, stabilabb hangot, és a kijelzés megnyugszik.

Miért áll le a mérés nagyon mély vagy nagyon magas hangoknál?

A detektor nagyjából a 40 Hz – 2,2 kHz tartományra van korlátozva. 40 Hz alatt a legtöbb laptop mikrofon vág; 2,2 kHz felett a felhangok elkezdenek torzulni, és a becslés megbízhatatlanná válik. Ezen a tartományon belül az eszköz mindent lefed az 5 húros basszusgitár alacsony B0 hangjától a szoprán hangterjedelem tetejéig.

Rögzít valamit az eszköz, vagy küld adatokat szerverre?

Nem. Minden audió elemzés a böngésződben történik a Web Audio API segítségével. Semmi sem kerül feltöltésre, tárolásra vagy továbbításra. Állítsd le a detektort vagy zárd be a fület, és a folyamat véget ér.