Things I’ve learned, published for the public benefit
Hope This Helps header image

Online Tone Generator

Screenshot of the Online Tone Generator

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.

Features

  • 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.

914 Comments so far

  • Jim Busse

    Thanks you. This is great work.

    I had to sell my HP sig gen when I moved to Singapore (220V here) and wish this generator had a sweep frequency capability. It would be nice to use the slider to set the min frequency, have another button to set the max frequency, and a start/stop button to allow free-running repetition.

    This one is helping me out, thanks!

  • Dale

    Hi. We’re trying out your tone generator for my wife, who has mild memory loss. Luckily, we were given a powered subwoofer made for computer output. Thanks so much! Wish us luck.

    What we’re missing is the nuances of its use. I’m hoping you can supply them or recommend an authoritative info source. We have the woofer in a corner, but other issues include:
    Which wave form is best? We’re using sine right now.
    Do headphones work better than an open-air speaker? Self-canceling headphones?
    Can the tone be effective in a space with other noise—such as voices, TV or clatter—or must it be the sole sound?
    The sound freaks out our cat a little, at least now, as we start. Will it hurt pets, physically, emotionally or mentally?

    Hope you can help. Keep up the good work!

  • Steen Oluf Karlsen

    Hello Signalski guy(s)- Steen ok from the Tech High School in Thy Danmark here!
    Two teenagers in my class have built an audio Frequency analyser – with an fft algorithm from Steve Smiths online resource book (hereby recommended!) We have tested and tested again the ability to – get the different ingredients of the “slush ice audio” back in their respective boxes as one of the boys put it! Sometimes I have been wondering how good the precision is for the frequency content in the signalsky generator? Especially when our equipment disagreed… Will the frequency of the generator be affected by the clock freq of the PC that generates the signal? How can you control the frequency across the many different processor types / platforms?

    • Tomasz P. Szynalski

      The processor doesn’t affect the frequency. In electronic audio, the analog audio signal is generated by a DAC which has its own clock. I would not expect significant deviations, but I have not tested it (not even sure how?). FFTs, on the other hand, are not very precise because of the need to separate the signal into frequency bands.

  • Aden Gusic

    Hey There!

    Thanks so much for creating this site! its is so good, i really like this tone generator.
    i like pranking my friends in class.

  • David Tartakoff

    There is no key combination to raise or lower frequency by 0.1Hz – can there be or is there one that you don’t list?

  • Heir2Power

    This is such an awesome tool. I use it for so many reasons – even to train my dog! Been using it for a while now, but still hoping it can be an app in Google Play store soon. Many times when I reopen my mobile browser I have to reset the settings and it’s not great when I have to get the tone going instantly when my dog is doing something naughty lol. And no it doesn’t hurt her ears… She just bugs out and wonders what the heck is that noise haha. Works great
    Great job

  • Mutayyab Tariq

    This works, you can use this to scare away pests like flies and mosquitoes in your house, I know the insects adapt and overcome this frequency thing but as long as they are not this is very useful. If you are wondering what the frequency to piss off mosquitoes is, then it is 20,000 hz leave it in your room when you are away and this will work!

  • RODRIGO GARCIA BALEIRO

    Thank you for your useful tool. If you may, I would ask you to implement the possibility of generating a phase shift between left and right channel outputs. In my case the main application would be for the simulation of noise cancelling in the balanced cables. For this we use 180 degrees of difference between each channel. For those who are willing to do it while the website doesn’t bring this option, you can use Audacity tone generator and invert the signal (menu Effects).

  • shaman

    Hi! Could you, please increase frequency range up to 50kHz. It will help to use application as a generator for testing of DACs, Hi-End amplifiers and headfhones

  • Riley

    Hi! I’m building a JavaScript program that needs to utilize the ability to generate specific tones, but I couldn’t find any sort of library I could use online. Could you please tell me what libraries or methods you used to generate these tones? I’m not looking for a tutorial, haha, so don’t worry. I would appreciate any response. Thank you so much!

  • Adam

    Hi,

    I found something very strange with the frequency generator.

    I can’t hear the 18000 range. However, I wanted to test if a frequency I can’t hear would affect my tinnitus. The exact frequency just below my audible range.

    So I went slowly up, 17000, 17100, 17200 and so on. However, I found that I could hear the 18000hz range now. Weird. I then set the volume to 0. I hit the play button, and I could now hear a phantom 18000hz.

    Thesis, I think there may be a way into tricking tinitus off in the brain using this method.

    I found after doing this, I can consciously manipulate my tinitus, its volume pitch and location. to an extent.

  • Mr. Cowell

    Hi, My tinnitus varies from 8 to 16k It needs 70 db just to tune it out. Life can suck real bad.
    My question is, Can you get the tone generator to create tones, down past 1k to the negative tone pitch, to counter the “positive” antagonist pitches.
    The created an electronic muffler based on this theory, and it worked for the better part, however there were too many changes to keep up.
    Imagine needing 70+ DB just to overtake that horrible noise.
    Gee, how do I sleep with this?
    Very litttle and boy it sets of my PTSD.
    I did well, no swearing, oh joy.
    Thhanks for the time.

  • Dan

    I went to this site as a curiosity. Tones can have a beneficial effect in healing. I would like to see a built in subprogram that would input different frequencies and time periods for those frequencies. This would be great for those doing meditation that focuses on the chakras, or simply before you go to sleep. As with all trial periods give a free 30 day trial period. That is enough time for a person to see a turn around in their life. They can continue with your subprogram with a donation.

    Opening 2 tone generators at once demonstrates “beat” frequencies for music students.

    I tested my frequency range but got no response for 60 Hz AC grounding hum.

  • Janus

    Hi Tomasz,

    Kindly could you consider adding a fine tune function for the volume slider?

    Left or right arrow will be great as mouse sensitivity makes it a nightmare to get the volume at the right setting.

    Much appreciated,

    J

  • Judith D. Andrade

    I like it! Thank you.

  • Carl Henrik

    Hi, Carl From HD SoundLab here. We use your tone generator a lot for various calibrations, for example listening to the SPL profile of a headphone.

    FEATURE REQUEST: Would it be possible to offer yet another feature that jumps in centimeter(s) instead of frequency? To quickly test the profile and balance across the spectrum, since the spectrum is logarithmic, “centimeter” is actually a valid parameter, but call it whatever. The “move up one frequency” isnt that useful in the treble area.

    Quite another issue: I am into water fasting, said to be helpful for age deseases like Alzheimer. Why not mention it? Some outline of fasting effects are found at my blog noach.one, and note in particular the response from the Finnish fasting expert. Perhaps a combination of 40Hz sound treatment and fasting would be a way to prevent that desease? An very interesting thought, indeed.

  • Derigo Simoni

    Hi, Derigo’s here. I was wondering whether you program (or computer) can generate frequency more than 22kHz (or what is the ceiling frequency) ? I am working on some experiment here. I know 44.1 kHz / 2 = 22.05kHz is recording Hz, but is it possible to produce higher frequency on computer ?

    • Tomasz P. Szynalski

      It’s not possible to represent higher frequencies with 44.1 or 48 kHz audio, so you’d need to set your playback to 96 kHz. In addition, a DAC has a lowpass filter. I’m not sure about DACs in 96 kHz sound cards — maybe there are some that can output higher frequencies than ~20 kHz.

      • Derigo Simoni

        Hi, Tomasz, again this is Derigo. Your online tone generator is the best. I am now testing low frequency from 20Hz to 100 Hz with normal speaker, however, I was recommended to use transducer speaker because it’s lasting for low frequency. I have a few questions here and I hope you could help me with.
        1) When I connect my transducer speakers to your Tone Generator (using my laptop), no sound come out from transducer speakers. Do I need a normal amplifier or DAC amplifier? (My Laptop model is Aspire E14 E5-476G-5486)
        2) The Sine Wave from your generator is very smooth already, how to produce a near perfect Sine Wave output, can I add another DAC to the output of my laptop before the signal goes to speaker.
        3) Transducer speaker is recommended for what range of audio.
        4) Is sample rate 44.1kHz acceptable for low frequency recording if I need a near perfect Sine wave.
        I would really appreciate your expert opinion. Thank you in advance.

  • Andrew Mueller

    How about a selector? You could give someone the freedom of key-tapping things with a great granularity.

    I was just doing some gain matching and crossover fine tuning. While I was tapping the keyboard to granularity step my way from 20 to 28hz I was actively thinking that the ability to see a decimal or “exact” frequency while stepping and more over: the ability to chose my stepping ratio would just make this perfect.

    As for the Alzheimers. I always knew there was a reason I loved 40 hz. I cant hear a damn thing anymore but my mind is as sharp as a tack.

    Thank you for all your hard work on this high quality generator.

    • Tomasz P. Szynalski

      Andrew,
      You always see the exact frequency on the readout. When you use the arrow keys or drag the slider, the frequency is always a multiple of 1 Hz. Sometimes pressing the arrow key does nothing (only happens in low frequencies), but I’ll be changing the ratio, so it’s only temporary. About the ability to choose a ratio that is applied when you press the arrow keys — yeah, that’s not a bad idea. I’d have to add some kind of settings window to avoid cluttering up the screen.

  • Sven Edward Olbash

    Thank you for this very useful tool! I have used it with my singing classes. I was going crazy, though, wondering why A440 was actually playing something like a very sharp Bb (I tested it with VoceVista). I tried refreshing multiple times, same thing. I finally disconnected from my bluetooth speaker, and through my internal speakers the pitch was correct as 440. My bluetooth speakers do not change the pitch of anything else I play through them. Why might this be? Thanks again!

  • philippe

    very good site just missing a db setting to calibrate the sound level. Thanks a lot

  • Peter S

    Hello,
    I noticed that 1 Hz in this frequency generator doesn’t equal to 1 sec. by 2 times.
    I mean here 1 HZ beats two times per second. You can hear it if switch waves to square mode.
    Could you please fix it?

    • Tomasz P. Szynalski

      Perhaps you’re hearing your speakers hitting the limit as the signal reaches 1 or -1 (each happens once per cycle, for a total of 2). Be careful, you can damage your speakers if you go overboard with the volume!

  • Kai Martinkovic

    Hi Tomas
    Great work especially the fader to adust the frequency without dropouts most
    gernerators will produce. I´m using this tool for finding room resonances
    therefore bending quality is necessary and almost there. Thank you.
    Could you think about adding a pink/white noise generator in too?
    This would be great to compare to the response tuned with the sine generator instead.

    Kindly regards Kai

  • joe

    Hi,
    Do you have a snailmail or post office box address we can mail cash or check to you directly?
    thank you
    Joe

  • ko

    Noticed you’re getting aliasing above around 11khz

    Am guessing either this is being generated at 22khz (rather than at least 44.1khz) or whatever you’re using to generate the sinewave isn’t appropriately bandpassed

    • Tomasz P. Szynalski

      Hi, what exactly did you measure? The generator uses a Web browser API which sets the sample rate to the sample rate of the default audio device. The results could depend on your system audio settings.

  • Artem Zinin

    Hello! I noticed something that could make it easier to switch between frequencies. When I click on the frequency number, the entire number is highlighted (selected), but when I start to type in a new number, the old number is still there. Do you think it would be a good idea to select/highlight the number when you click on it, so when you start to type a new number directly, it gets overwritten and you can type the new number right away? It would really help for comparing frequencies if I could switch between two frequencies quickly. Thanks!

    • Tomasz P. Szynalski

      Yeah, but it would only work after you clicked on the frequency. If you pressed Enter, and then wanted to put in another frequency, the number would not be selected.
      Also, it would make it harder to change the last digit(s) of the number. For example, if you wanted to change 400 Hz to 400.1 Hz (which is probably a common use case), you’d have to first deselect the number.

  • Don Bartlett

    Hello Tomasz.
    As a 64 year old Live Sound Engineer, with Music embedded into my very ‘Being’ by a Mother who played Piano Accordion over my head before I was born; AND, as coincidence would have it, a long-term ‘companion’ of Tinnitus ….. I have just one comment to make on the ‘device’ that you have created …..
    ABSOLUTELY, PERFECTLY BRILLIANT!!!
    You have, on just one screen, incorporated everything that is needed for perfect ‘Sound’.
    WELL DONE!!!
    Musicians will no longer be limited by Tuners that ‘approximate’ to integer values.
    Engineers will now be able to ‘dial into’ their troublesome Sound System resonances.
    And ….. assisting those with Tinnitus and/or Alzheimer’s is a very definite bonus.
    Again ….. WELL DONE!
    In the not-to-distant-future, I hope to contribute to your on-going commitment.
    Kind Regards,
    Don Bartlett.

  • Bruno Bragato

    Hello there!
    First of all, thank you so much for this website! it’s extremely useful for practicing intonation and pitch relationships.

    I was wondering if it would be possible at all to have a setting that changes the preset tone used for the A? (say, to 435, 442 or some other number)
    This is currently achievable bia fine-tuning the current presets against another tuner (or finding a frequency chart in other temperaments), but it’s slightly time consuming.

  • Dean Y

    Wish the volume was more finer, maybe going up by .1 by a dial or digital number instead of 1% also to have multiple sounds going at the same time. This is neat and yes I am trying to recreate the sound(s) I hear in my head when it should be dead quiet. I wonder though if the mind actually makes sound to compensate for lack of noise.Anyways keep up the great work.

  • Tyler Grant

    I use this in school. I play a 17,000 Hz tone and annoy my classmates. It has to be about there so the kids can hear it but the teachers can’t. 🙂

    • Jee

      I used to do that – but I built tiny oscillators out of broken transistor radios, sold them to kids for $2

  • Charles Viau

    Can you please tell me if it is possible to generate the same frequency, buy out of phase with the original. Say, a sliding adjustment that can produce the same frequence 45,90,180 out of phase. Theoretically , one could null out a frequency, like some high-end pro audio microphone filters. I wonder it this app could be updated to do that. The ability beat both frequencies (in phase , out of phase) together would be a wonderful capability. It may also help to provide research into other forms of sound masking.

    I would surely pay for a version of this program that could do that.

    Thanks for considering my inquiry.

    Charles Viau

Leave a Reply to Adam Bernstein