A better DIY hearing test
If you're old enough to remember the days of cathode ray tube (CRT) television sets and monitors, you might, if your hearing was good, also remember the high-pitched 15 kHz squeal emitted by the electron-beam's horizontal oscillator. I always found that annoying in my youth, to the point of getting a headache from hearing it.
Now there are no more CRT televisions, but I hear it all the time.
This is known as tinnitus, a ringing in the ears. I started noticing it about 10 years ago, and it has been getting worse. My own tinnitus sounds like an old CRT television set. It's maddening. I estimate it's 12-14 kHz in my case, and multiple different tones in that range in each ear. And it's permanent. I have to live with it.
It's pronoucned "TIN-it-us", by the way. Audiologists have thanked me for not mispronouncing it "tin-AI-tus" like most people do.
20 years ago, I didn't have this problem. In a silent or anechoic room, I heard nothing except my own heartbeat and the blood flowing through the vessels in my ears. Sometime along the way tinnitus developed and over the last year it has become impossible to ignore. I'm getting fitted for hearing aids in a week, to help mask the ringing by restoring some high-frequency hearing loss, although no hearing aids go up as high in frequency as the ringing I hear. I am told it should help, though.
According to this 2013 study, the predominant pitch matched by people suffering from tonal tinnitus ranged from 13 kHz to 14 kHz. On the other hand, The Ear Lab claims that most people experience tinnitus in the 4 kHz – 8 kHz range. This seems to be the dominant view among audiologists, who disbelieved me when I said I estimate my tinnutus to be about 15 kHz. The Ear Lab also includes a crude test for determining where your range is.
My objective here is to make a better test. And here it is. It lets you test as many frequencies as you want. When you click the "play left" or "play right" buttons, it plays random-duration bursts of the selected frequency to ensure that you aren't imagining it. When you click the "record" button, it plots a point on the graph. You can use this tool in these ways:
- Plot the frequency response of each ear (the main purpose of this tool).
- If you wear hearing aids, plot the frequency response with the hearing aids in, to see where they affect your hearing and by how much.
- Try to match the tinnitus tones you hear, in frequency and ampltidude.
- Set it to play a continuous tone while you sweep the frequency slider up and down to listen for any drop-outs in your hearing.
For testing frequency response, you move the volume slider until you can just barely detect the sound, then click the "record" button. The frequency slider has preset buttons for standard hearing tests an audiologist would give you: 125 Hz, 250 Hz, 500 Hz, 1 kHz, 2 kHz, 3 kHz, 4 kHz, 6 kHz, and 8 kHz.
Threshold tone test
Informal listening tool for exploring your relative hearing threshold across frequencies. Not a calibrated audiometer and not a diagnostic device. Levels are relative to an arbitrary on-screen reference, not measured SPL.
Be in a quiet environment. Set your device's own volume to maximum before starting; the on-screen level control always starts at minimum when a tone begins, so you raise it from silence yourself. Use headphones, preferably powered/amplified headphones, to avoid amplitide degradation from your computer's audio output having to drive the speakers.
0 dB = silence, 100 dB = full digital output. Locked until a tone is playing; only ■ returns it to minimum.
Raise the level from silence until the tone is just barely audible, then plot the value in the graph below. Plotting again at a frequency you've already plotted (same ear) replaces the old value.
| # | Frequency | Level | Channel | |
|---|---|---|---|---|
| No points plotted yet | ||||
Developing this tool was my first experience in vibe coding using Claude.ai. I had done some vibe coding in the past with ChatGPT, and that was a different experience in that the AI and I could collaborate by editing in the same code panel. With Claude, I would give it a prompt, it would generate code that I couldn't edit, I tested the code, and if anything needed to change I had to give it another prompt. It took a couple days of this back-and-forth before I was satisfied with the tool you see above.
The tone bursts have a 0.1 second sine-squared rise and fall envelope, to avoid clicks resulting from harmonics generated by the amplitude envelope of the burst. This adds a 5 Hz fundamental frequency to each burst at the start and end, which is far below the human hearing threshold.
Testing myself, I found that my tinnitus sounded higher than the highest frequency I could detect during this test, confirming what I already knew. However, the tinnitus still made testing difficult. It was distracting even when testing low frequencies, because the ringing in my ears is much louder than the minimum levels of other tones I was trying to hear.
Here is my test result:
This is a bit different from the plots my audiologist showed me, in these respects:
- The audiologist measured a flatter low-frequency response. The drop-off I observed in my own test may be due to the frequency response of my equipment (laptop audio is notorious for weak bass) and the fact that I am in my home office, not an anechoic room that blocks all outside noises.
- The audiologist did not measure as high as I could hear, but as high as typical hearing aids can go, which is up to 8 kHz. In the past I did have test where the audiologist tried 10 kHz and 12 kHz, and the results were consistent what I plotted above.
- I was surprised that my high-frequency hearing loss, although severe (more than 70 dB down from maximum), was nearly 20 dB better on the right than on the left. Again, this difference could be due to equipment too, but I don't argue with the values; either way I am effectively deaf above 10 kHz although I can still hear tones if amplified enough.
The left ear (green plot) measurement at 14 kHz is bogus. I couldn't turn the volume all the way up without harmonics suddenly jumping in. 95 dB was the higest I could turn up the volume, and I still couldn't hear anything distinguishable from my tinnitus. I do know my laptop and headphones can produce higher frequencies because my teenage son could hear up to 19 kHz using my equipment at a lower volume, so I know it can go up that high, but he couldn't hear 20 kHz. In any case, the response falloff is so steep in that region that I can confidently say I am effectively deaf to external frequencies higher than 15 kHz (which was almost inaudible in my right ear but I could still hear it). My tinnitus occupies that high range and above. Some tinnitus frequencies I hear in my left ear may be around 12 kHz but it is hard to match frequencies that high. The tones in that range "feel" similar on the left side.
If you find this useful, please let me know in a comment.

Comments
Post a Comment