Embed a Free Tone Generator

Add a working tone generator to your website, course page, or blog with one copy-paste snippet. Free for any site, no sign-up, customizable starting frequency and waveform - built for physics classes, music education, and audio blogs.

Live preview

This is the actual widget, embedded on this page the same way it will appear on yours:

Copy the snippet

Paste this anywhere HTML is accepted - WordPress custom HTML block, Google Sites embed, Moodle/Canvas pages, Notion embeds, or your own site:

<iframe
  src="https://www.tonal.fm/embed/tone-generator"
  width="100%" height="420"
  style="border:0;border-radius:12px;max-width:480px"
  title="Tone generator by tonal.fm"
  loading="lazy"></iframe>
<p style="font-size:12px">
  Free <a href="https://www.tonal.fm/">tone generator</a> by tonal.fm
</p>

The credit line under the iframe is optional but appreciated - it is how other teachers and writers find the widget.

Customize the starting state

Two query parameters set the widget's initial state (visitors can still change everything):

ParameterValuesExample
freq20 - 20000 (hertz)?freq=528
wavesine, square, sawtooth, triangle?wave=triangle
<!-- Start at 528 Hz with a triangle wave -->
<iframe
  src="https://www.tonal.fm/embed/tone-generator?freq=528&wave=triangle"
  width="100%" height="420"
  style="border:0;border-radius:12px;max-width:480px"
  title="528 Hz tone generator by tonal.fm"
  loading="lazy"></iframe>

Physics classes

Demonstrate frequency, pitch, and waveforms live on your course page - start the widget at 440 Hz for concert pitch or sweep the audible range in front of the class.

Music education

Give students a reference tone right on the lesson page - no app installs, works on school Chromebooks and tablets.

Audio blogs & reviews

Writing about speaker testing or hearing? Let readers generate the exact frequency you are describing without leaving your article.

Embedding FAQ

Is the embeddable tone generator really free?

Yes - free for any website, including commercial ones, with no sign-up, API key, or usage limits. The widget shows a small tonal.fm attribution link, and we appreciate (but do not require) the credit line under the iframe.

Can I set the starting frequency and waveform?

Yes. Add query parameters to the iframe URL: freq accepts any value from 20 to 20000 (hertz), and wave accepts sine, square, sawtooth, or triangle. Example: /embed/tone-generator?freq=440&wave=sine. Visitors can still change both inside the widget.

Does the widget work on school networks and LMS platforms?

It works anywhere iframes are allowed - WordPress, Google Sites, Moodle, Canvas, Notion, and most LMS platforms. Sound is synthesized in the visitor's browser with the Web Audio API, so no media files are loaded and nothing needs installing. Browsers require a user click before audio can start, which the Play button provides.

Does embedding the widget slow my page down?

No - the snippet uses loading="lazy", so the widget only loads when scrolled into view, and the page inside the iframe is a few kilobytes of static HTML with no ads and no trackers beyond our own basic analytics.

Can I embed the other tonal.fm tools?

The tone generator is the first embeddable widget. If you want an embeddable version of another tool - the metronome, noise generator, or hearing test are natural candidates - contact us and tell us which one; demand decides what we build next.