Hoe deze pitch detector werkt
Je microfoon legt een buffer van 8192 samples vast in de browser — ongeveer 170 ms bij 48 kHz, lang genoeg om meerdere cycli te zien, zelfs van lage basnoten. De tool voert een genormaliseerde autocorrelatie volgens de McLeod-methode uit over dat venster — het vergelijkt de recente golfvorm met verschoven kopieën van zichzelf en zoekt naar de sterkste herhalende cyclus. Die cycluslengte is de periode van de golf; de omgekeerde waarde van de periode is de frequentie in Hz. De frequentie wordt vervolgens omgezet naar de dichtstbijzijnde muzieknoot plus een cents-afwijking (één halve toon = 100 cents).
Vóór de analyse vragen we de browser om automatische versterking (auto-gain), echo-onderdrukking en ruisonderdrukking op de microfoonstream over te slaan. Die filters vervormen de golfvorm en kunnen de toonhoogtemetingen met tientallen cents beïnvloeden bij zachte stemmen en lage instrumenten. Het uitschakelen hiervan is de grootste winst voor de nauwkeurigheid. Een kort mediaanfilter op de laatste frames vangt uitschieters op zonder zichtbare vertraging toe te voegen.
Deze aanpak volgt aangehouden, enkelvoudige tonen beter dan een gewone FFT, vooral bij lage frequenties, omdat het minder snel boventonen aanziet voor de grondtoon. De afweging: het kan geen akkoorden volgen, vibrato laat de cents-meting schommelen en een luidruchtige achtergrond verstoort de detectie.
Referentie: standaardstemming
De detector start op de kamertoon A4 = 440 Hz. Je kunt de referentie aanpassen als je instrument of ensemble een andere standaard gebruikt. Elke andere noot bevindt zich op een vaste afstand — de twaalfdemachtswortel van twee (≈1,05946) per halve toon. Octaven verdubbelen de frequentie: A3 is 220 Hz, A5 is 880 Hz. Cents meten hoe ver je ernaast zit binnen een halve toon; verschillen onder de ±5 cents zijn over het algemeen onhoorbaar.
Het display aflezen
- Grote noot — de dichtstbijzijnde halve toon die we de afgelopen frames hebben gehoord.
- Cents-balk — de marker staat in het midden als je zuiver speelt, schuift naar links als je te laag (flat) bent en naar rechts als je te hoog (sharp) bent. Groen = zuiver (±5 ¢), amber = bijna goed (±20 ¢), rood = duidelijk ernaast.
- Pianoklavier — markeert de gedetecteerde noot in het juiste octaaf binnen het bereik C1–B6. Noten buiten dit bereik verschijnen nog steeds in de tekstweergave.
- Laatst gedetecteerd — telkens wanneer je naar een nieuwe aangehouden toon wisselt, voegen we deze toe aan een lijst zodat je kunt terugzien wat je zojuist hebt gezongen of gespeeld.
Tips voor nauwkeurige metingen
- Houd een enkele noot minstens een halve seconde aan — de detector heeft een paar frames aan bevestiging nodig voordat de waarde vaststaat.
- Zorg voor een stille ruimte. Ventilatoren, verkeer en het klikken van een toetsenbord storen sneller dan je denkt.
- Houd de noot stabiel. Vibrato doet de cents-meting schommelen, zelfs als de gemiddelde toonhoogte correct is.
- Gebruik indien mogelijk een externe microfoon. Laptopmicrofoons vallen vaak af onder de ~80 Hz, waardoor de laagste basnoten niet goed worden opgepikt.
- Kom dichtbij. Als je de afstand tot de microfoon verdubbelt, ziet de detector nog maar een kwart van het signaalniveau.
Veelgestelde vragen
Welke instrumenten kan ik hiermee stemmen?
Alles wat een enkele aangehouden toon produceert in het bereik van ongeveer 40 Hz – 2,2 kHz: gitaar, basgitaar, ukelele, viool, altviool, cello, harp, koperblazers, houtblazers en je zangstem. Drums, bekkens en volledige piano-akkoorden werken niet — autocorrelatie heeft een enkele dominante frequentie nodig.
De noot springt heen en weer als ik zing — ligt dat aan mij of aan de tool?
Meestal aan jou, maar niet zoals je denkt. Microfoons vangen je stem, je ademhaling en de kamerakoestiek samen op. Kleine schommelingen die onhoorbaar zijn voor het oor, verschijnen als afwijkingen van ±20 cent. Houd een luidere, stabielere noot aan en de weergave wordt rustiger.
Waarom stopt de detectie bij zeer lage of zeer hoge noten?
De detector is beperkt tot ongeveer 40 Hz – 2,2 kHz. Onder de 40 Hz vallen de meeste laptopmicrofoons af; boven de 2,2 kHz treden er harmonische vervormingen (aliasing) op en wordt de toonhoogteschatting onbetrouwbaar. Binnen dit bereik dekt de tool alles van een lage B0 op een 5-snarige bas tot het hoogste bereik van een sopraan.
Wordt er iets opgenomen of naar een server verzonden?
Nee. Alle audio-analyse vindt plaats in je browser via de Web Audio API. Niets wordt geüpload, opgeslagen of verzonden. Zodra je de detector stopt of het tabblad sluit, stopt de stream.