I made an online tone generator based on the Firefox Audio API HTML5 Web Audio API. It’s basically a large logarithmic slider that allows real-time, smooth frequency changes.
- Fine-tune the frequency in 1 Hz, 0.01 Hz and 0.001 Hz increments
- Pick a music note from a list (added Sep 2014, revamped May 2016)
- Increase/decrease the frequency by one octave (added Aug 2015)
- Can change the frequency smoothly as you move the slider
- Keyboard shortcuts (added Aug 2015)
- Generate a link to a specific tone, so you can share it (added May 2016)
- Choose sine/square/sawtooth/triangle wave (added Aug 2017)
- Input frequency as a number (added Aug 2017)
- Works well on Chrome, Firefox & Safari – including mobile devices (iOS, Android) – requires a browser with support for the Web Audio API.
There are other tone generators on the Web, but they are not as cool (if I do say so myself) and/or they require Java or Flash.
What can you use a tone generator for? You can do a science experiment with resonance, tune a musical instrument, test your new audio system (how low does it go?), test the limits of your hearing (I can hear virtually nothing above 18,000 Hz, even at maximum volume), or figure out your tinnitus frequency to better target therapy.
Patrick Apr 24, 2018 at 11:05 pm
one of your latest changes to the frequency-generator turned out to be a step back in terms of usability (or testing-capability). When grabbing the freq-select-slider with the mouse and moving it very fast (left/right) you previously had a continuous tone playing (sweeps) that actually caused spikes in volume (dBFS) that were slightly higher than with a non-moving slider (stable freq tone). This way, you could determine the amount of headroom needed for your EQ to not run into clipping. Now, the slider reacts more sloppy and the tone sounds choppy and very digital instead of continuous. Also, the new fade-in/out just sound very odd or even wrong to me :shrug:. Beside all that, thank you very much for this tool I wouldn’t want to miss it anymore; it’s super useful!
Patrick Apr 25, 2018 at 1:14 am
huh, just tested it in another browser (not chrome) and there, this new behaviour of the slider does _not_ happen. Should have tested it first before jumping to conclusions. I apologize.
Tomasz P. Szynalski Apr 27, 2018 at 6:33 pm
You’re quite observant!
1. Chrome recently made some important changes to the Web Audio engine (removing automatic smoothing), which is probably the reason why it sounds “digital” on Chrome 66 and later. Basically it used to smoothly ramp from one frequency to another — now it’s an immediate change. I’ve just looked into it and I can do the smoothing myself. I’ll upload the updated version, but first I’ve got to do some testing on more browsers. Anyway, thank you for bringing this to my attention. I don’t use my generator that often, so I would have missed the degradation in sound quality.
2. I agree, the new fade-in sounds worse! But the old one (linear fade) resulted in crackling noise on Firefox when changing the volume, or when you quickly alternated between Play and Stop. Firefox has a long-standing bug that makes linear fades impossible to do without popping. I could do a separate fade for non-Firefox, but not sure it’s worth it. I could also make the existing fade shorter, as a compromise. It would mean more audible popping on Firefox, but possibly more pleasing sound on Chrome/Safari. Do you think making it shorter could help?
Ray Apr 26, 2018 at 6:37 pm
Works on my phone great but cant seem to get it to work on laptop . Tried IE , Chrome, and firefox
Ryan Apr 27, 2018 at 8:55 am
This thing is just incredible on the subpac m2 at 1-80hz, it’s serious feels like a massage (30-40hz range). I wish this was a VST or if i could find a similar VST for music production. Anyone know of any?
Tobi May 4, 2018 at 1:26 am
Great stuff! Works smooth. How about adding a quiz? It could be something as simple as a button that plays a random tone and then displays the Hertz-value 10 seconds later – or it could be something more elaborate. I’d love something like that to train my ears to spot frequencies more accurately.
Tomasz P. Szynalski May 16, 2018 at 10:22 pm
Interesting idea. There are online quizzes that let you train perfect pitch. Would these suit your needs perhaps?
Skip May 4, 2018 at 1:42 pm
Is there a way that I can generate a tone and save it as a .WAV file so that I may use it with my audiology equipment as a stimulus? DO TELL…
Tomasz P. Szynalski May 16, 2018 at 10:18 pm
Not right now — maybe in the future.
Basu May 12, 2018 at 8:51 pm
Thanks for the great Tone Generator. Very useful! Just found out that my favorite speakers+room combination has 2 peaks, one at 150Hz and another at 3.5KHz which is really bad news. Time to buy new speakers. My hearing fades at 12.5KHz now which is another bad news because when I was a kid I could hear the 15625Hz coming from my dad’s CRT TV. Cannot buy new eardrums.
Dan May 19, 2018 at 12:51 pm
My tinnitus doesnt change often but whenever it does I go to this site out of curiosity to see what it has changed to.
I was surprised last week when it changed because I was able to hear the upper frequencies of 16-19000 htz that Id never heard before. I listened to it twice for about 30 seconds.
Shortly afterwards my tinnitus changed/reacted to it. Constant sounds of bells and missles launching have been added to the usual sounds and they are four times the volume of my usual sounds. My hearing seems a little different too but I cant pinpoint exactly what it is.
Should I be unduly concerned about this at all? Id welcome your comments.
sandy Jun 6, 2018 at 8:07 pm
Intuitive and elegant. I supported (sorry can’t afford much!). THANKS. VERY NICE!
Tomasz P. Szynalski Jun 12, 2018 at 6:26 am
Lele Jun 13, 2018 at 1:58 pm
Ive listened to your tone generator to see what tones my tinnitus are. However, when listening at the 18 to 19htz frequencies my tinnitus has changed. Its become considerably louder and my ears feel “full”.
I was wondering if you can tell me why this would have happened? I understand listening is “at your own risk” etc and Ive got an ENT appointment but wondered if you could let me know what you think about this/why its happened?
Thanks for your time
Tomasz P. Szynalski Jun 15, 2018 at 7:57 am
othello7 Jun 15, 2018 at 11:51 pm
This is a great site!
I use it so much.
I just wished it worked on my android tablet.
Tomasz P. Szynalski Jun 16, 2018 at 9:34 am
Thanks. Not sure why it wouldn’t work on your tablet. It works on my Android phone.
Lele Jun 18, 2018 at 11:28 am
What things might my ENT doctor be interested to know about the generator? I was wondering what format the sounds were in for instance?Something that might help?
David Coy Jun 25, 2018 at 8:40 am
I have enjoyed using your tone generator on an old 2012 macbook pro. I’ve had 25 tabs open with different frequencies and waveforms. This works perfectly fine, but when I try it on my new 15″ Lenovo yoga 720, after several tabs are open I get a loud and unwanted crackling noise. Is there anything you know of that could cause or fix this?
Tomasz P. Szynalski Jun 25, 2018 at 6:46 pm
The browser is probably getting overloaded. Maybe you could try a different one?
David Coy Jun 25, 2018 at 9:33 pm
On my pc I tried Chrome, Edge, Firefox, and Opera – they all encountered the same problem. On the old Mac I used Chrome.
Also on the mac: even before it starts overloading, it seems like the mac has more bass (and it’s not the speakers, I’m using the same headphones on both machines). Don’t know if that info is useful or not, but there it is.
Tomasz P. Szynalski Jun 26, 2018 at 9:50 am
About the bass, maybe you have some system equalization turned on on one of your machines. Look in your audio driver options for things like “equalizer”, “sound enhancement”, etc. I’d also look in Windows audio settings, see if switching from speakers to headphones helps.
David Coy Jun 26, 2018 at 8:13 pm
Ok, thanks. I’ve tried using multiple windows of the same browser and multiple windows of different browsers and I still encounter the same issue.
Do you know if there’s any way to fix this or is the computer just not capable of handling it?
Tomasz P. Szynalski Jun 27, 2018 at 6:45 pm
Maybe you could try closing some apps, killing some background processes, etc. But maybe Windows just can’t handle that many open tabs.
David Coy Jun 28, 2018 at 2:35 am
That may work, I ended up just using the tone generation feature in Audacity.
Judith Jul 3, 2018 at 10:04 pm
This application is exactly what I was looking for, except for one thing. I would need it in French for my french-speaking students. 🙂
Piotr Jul 11, 2018 at 10:30 pm
Is there any possibility to download tone on my PC? I’d like to download few tones and create some music.
Tomasz P. Szynalski Jul 14, 2018 at 10:52 am
Not right now, but I’m exploring that idea.
Bob Jul 22, 2018 at 4:40 am
Tom, great job with your generator, however i personally prefer to purchase rather than to make donations for online activities. I would like to use the offline installer anywhere, while I am not online – it is way more convenient, also I am sure there will be plenty of us to purchase it providing you set a reasonable price for your product…there are a few offline generators, some free some not… thanks.
Mark Jul 23, 2018 at 3:02 am
Thank you for creating this tone generator. It has helped me target the frequencies of my tinnitus. I’ve used the generator to create a method of plasticity training by which I move the slider back and forth over frequencies that I can’t hear because of my hearing loss. As I’m moving the slider, I meditate/concentrate on the sliding of the frequencies, trying to hear a continuous, uninterrupted sound. I believe that if we can train the brain to “connect the gaps” between the frequencies that we can actually hear, we can teach it to recognize those frequencies again using the hair cells that are still alive. With sufficient meditation, this recognition may eliminate our tinnitus.
Would you be willing to add a feature to your tone generator that allows the slider to automatically move slowly up and down between two specified frequencies? That would help each person target his or her tinnitus and meditate on the areas of hearing loss that create tinnitus.
Jake Aug 10, 2018 at 6:04 am
I have used your site for many years, and I love how it works. Would you ever consider a mobile app? I would be willing to spend $20 on a mobile app if it works as well as your site. thanks.
Tomasz P. Szynalski Aug 11, 2018 at 5:31 pm
Thanks, Jake. The site works on mobile devices as well — no need for a dedicated app.
Philippe Aug 23, 2018 at 11:23 am
Thanks a lot for this wonderful tool. Intuitive, simple, totally accurate !
I’m working on a melody (piano and voice) were, at some point, the singer has to sing some quarter-tone intervals (yes, it’s quite experimental…) I’ve found some free quarter-tone pianos on the web, but nothing useful. With your site, I opened different windows, tuned them separatly and could check the tones succession by clicking on the different windows. Now I’m sure that it will sound like I imagined and it will be really possible for the singer to actually sing it.
But nine windows (quarter-tones from g to b) opened at the same time are quite clumsy to use… it’s almost impossible to click right on the beat.
Of course, the singer would be very happy if I could give him some mp3 with the melody, just to learn. I think I’ve found a way to save the sounds (I will use an mp4 video screen recorder and make an mp3 with it).
But should it be possible to add a “sequence” tool : we could type the frequency and the duration of some sounds and, after that, the tones would be played one by one ?
I think that this could be used in many other ways than just as a “melodic tuner”. But I’m afraid that this would be though to do ?
Anyway, thanks a lot for everything you already did !
Tomasz P. Szynalski Aug 24, 2018 at 4:40 am
Thanks for sharing your idea. Maybe someday 🙂
Janelle Aug 30, 2018 at 8:30 pm
I wanted to say “thank you!” For your tone generating site. It works perfectly on my iPad and you did an amazing job creating it. Easy to use and not filled with a bunch of bs like a lot of websites. I really appreciate you.
Btw, I tried to donate and the PayPal link wouldn’t load for some reason. Maybe you can send me a direct PayPal link. I’ll try again.
MatthewKnight Aug 31, 2018 at 5:19 pm
i love to use this to annoy my fam and teachers at school keep up the good work dude *also i use this to do speaker blow outs and to test my subs out*
Jeff Ramirez Sep 11, 2018 at 8:56 pm
I am an elementary science teacher, and am using your tone generator in a lesson that I have designed to replicate Ernst Chladni’s patterns phenomena. I have built a google site with instructions for the activity, and would like to embed the tone generator on the same site for ease of use with elementary school students. Is there an embed code I could use? Or is there only the URL that will redirect them to the original site?
Thank so much! The tone generator is really the best I have found out there!
Tomasz P. Szynalski Sep 12, 2018 at 8:01 am
Hi Jeff, I don’t support embedding, but it might work if you embed it as an iframe.
Dennis Brown Oct 6, 2018 at 5:16 am
This is the best online tone generator I have found. Very nice in most respects. I was trying to use it do a hearing test on my self for testing the performance of various hearing amplifiers I am considering. To test hearing, you use a fixed frequency sine wave, then adjust volume to determine the threshold of perception.
However, I found one thing that stood in the way of being able to do it. The volume slider is too small to be able to drag at 1% increments with my mouse. If the slider was much larger (on its own line), and if there was a way to adjust the volume by 1% increments, perhaps with buttons, like the frequency adjustments buttons.
The other thing is that the volume would ideally be based on some linear numbers that reflect a doubling of perceived volume. For example 10dB change is perceived a doubling in volume. I believe this is a cube root function of power for half volume. For instance if the volume slider 1% = 1dB change, that would be a nice correlation. the 0dB point on a chart is an absolute sound pressure of a complete system, but the relative numbers on a slider still hold, even if the absolute dB would need to be scaled. Perhaps your volume slider is already based on this function?
Tomasz P. Szynalski Oct 8, 2018 at 11:06 am
Thanks for the feedback. I’m going to change it to a dB scale — it’s been on my to-do list for a while.
Tomasz P. Szynalski Oct 31, 2018 at 9:25 pm
Actually, I gave it more thought and I’m not sure a logarithmic scale would be all that intuitive. I think users expect a 50% drop in slider position to mean a 50% drop in subjective loudness. If the volume is 100%, you halve the volume by going to 50%. If the volume is 50%, you halve the volume by going to 25%. Et caetera.
With a log scale, halving the volume would take the same movement of the slider, regardless of the current volume level.
Secondly, all the volume controls in popular music players, etc. use linear scales. It’s usually a bad idea to go against what users are accustomed to.
I’m aware of the -10dB = subjective 50% loudness rule. Things are actually more complicated than that. For low bass frequencies, you get 50% loudness by -6 dB. The funny thing is that when I blinded myself and tried to halve the subjective loudness of a 1 kHz tone, I landed very close to 50%. Perhaps “subjective 50% loudness” means different things to different people? 10 dB would be closer to 30%, but that sounds way too soft to me!
Tomasz P. Szynalski Oct 17, 2018 at 11:05 am
By the way, you can already change the volume by 1% increments — just use the arrow keys.
Henry Oct 7, 2018 at 7:02 pm
I think I have one of the weirdest uses for this website, I’m using it to get better at the Rubik’s cube. With the method I use, the first two steps are a bit complicated and you have to be to be able to do them without pausing if you want to be fast. I’m currently practicing with a 2 hertz saw tooth wave in the background and I’m getting pretty good at doing a move every time it makes a sound, I think I might be ready for 2.5 soon. I can see this method falling apart a bit once I get to around 5 hertz, but that’s quite far away.
Tomasz P. Szynalski Oct 8, 2018 at 11:07 am
You’re right, that is pretty weird! 🙂
Mario Oct 9, 2018 at 6:50 pm
Is it dangerous to hear a frequency of 15000 Hz at a very low volume? I am doing neuromodulation therapy for tinnitus and I have this doubt.
Eoghan Brophy Oct 16, 2018 at 12:32 am
Many thanks for your help putting this together. I appear to have multi tonal tinnitus, so I fired up different tabs to play different tones. It’s such a relief to know that my problem can be addressed.
Onkel Graf Oct 21, 2018 at 10:22 am
What an extraordinarily well thought-out, intuitive-to-use app. It is exactly what I was looking for as an impromptu “hearing test”! (I still hear up to 12 kHz, I guess that is OK for my age.)
Re: multiple tone generators –
With two or more browser windows open, each running this app –
there are most interesting effects you can play with!
There is the “beating” type interference between two frequencies that are close to each other, for example 100.0 and 100.2 Hz
Try to synthesize “musical instruments” by adding overtones to a base note.
Play related but different sounds to each ear, to see how they mix or interfere in the brain …
Tomasz P. Szynalski Oct 22, 2018 at 10:48 am
Thank you! Those are great experiments to do!
Anti Oct 22, 2018 at 8:45 pm
I find it disconcerting that I can move the slider from right to left and notice a shift in volume from ear to ear as I go. That must indicate some unilateral hearing loss at certain frequencies – that or my headphones aren’t high quality 😛
At 42 years of age, I’ve been tested as having hearing that is well within an optimal range. The specialist said I have the hearing of a 10 year old. Still, somehow, I’ve got very mild tinnitus in one ear at a low 320 Hz. It’s impossible to hear unless it’s absolutely silent, but it’s there.
I’ve no idea why I have it. Go figure, you can take care of yourself for your entire life and still end up with tinnitus.
David Center Nov 5, 2018 at 10:26 pm
I know little about sound frequencies so this may be a dumb question. Why is that when I put in say 8 Hz, am asked to select a key and put in something like E1 that the Hz window changes to 41? How do I get 8 Hz out of the generator? Thanks.
Tomasz P. Szynalski Nov 6, 2018 at 5:01 pm
The button says “PICK NOTE” because when your frequency is so low, it doesn’t match any note, so it just displays the generic label for that button. Just type 8 Hz and you’re done. I’ll make some changes to the UI to prevent this misunderstanding.
Mr Murkle Nov 23, 2018 at 7:24 pm
Why is it that the lowest tones, below 30 Hz or so, does not sound like a humming tone but instead like a pulsating or vibrating rhythm. 10 Hz sounds like an old fishing boat (“r-r-r-r-r-r-r”) and not like a hum at all. It’s like you can actually hear every sine peak separately.
Tomasz P. Szynalski Nov 26, 2018 at 5:06 pm
That’s because human ears can’t really hear anything lower than 20 Hz (and barely anything in the 20-30 Hz range), so what you hear instead is the sound of your speaker membrane hitting its physical limit (suspension limit). Why does it hit the limit? Because (1) you have ramped up the volume (don’t lie, I know you have) and (2) because low frequencies always cause much bigger movement of the speaker membrane.
I wouldn’t do this for very long; you could burn out your speaker.
Jason Nov 24, 2018 at 1:27 am
I love it
It would be interesting to add more multipliers, in addition to 2 and 1/2
John Maass Nov 24, 2018 at 2:01 am
Decided a tone generator would be useful to my amateur radio CW (continuous wave international Morse code) operating. My radio transceiver allows me to zero beat to a station’s frequency by matching a tone that the radio generates for this purpose. I found it convenient to let your tone generator supply that tone, instead of the radio. Either works. It’s just an interesting convenience. Another use is tuning my upright double bass, and electric bass; I have tuners for that, as well as online tuners. However, your tone generator is an interesting alternative. Your GUI is nicely designed, by the way.
Best regards from
Amateur Radio K7JKZ
Tomasz P. Szynalski Nov 26, 2018 at 4:38 pm
Thanks for writing in, John. It’s always fun to hear about the ways people use my site!