A DX7-style FM synth, in your browser.

Six operators, all 32 algorithms and 16 voices of FM synthesis, built from the open-source engine behind Dexed. Play it from the keys below, your computer keyboard or a MIDI controller; load the .syx patch banks you already own; or drop a MIDI file and get it back as audio played by any voice. It all runs in this tab.

drop a .syx bank or a .mid file

A DX7 sysex file adds its voices to the list. A MIDI file is rendered to audio with the chosen voice.

At a glance

EngineMSFA (music-synthesizer-for-android), Apache-2.0, in the version maintained inside Dexed; 25 KB of WebAssembly
Synthesis6 sine operators, the DX7's 32 algorithms, feedback, per-operator envelopes and keyboard scaling, LFO, pitch envelope
Polyphony16 notes; a 17th takes over the oldest
Play fromOn-screen keys (touch or mouse), the computer keyboard, a MIDI keyboard through Web MIDI
PatchesTen written for this page; any DX7 .syx single voice or 32-voice bank you load
MIDI filesRendered through the chosen voice at 48 kHz to WAV, FLAC or MP3
TuningMeasured within 0.1 cent of equal temperament from C1 to C8, A = 440 Hz

Playing it

Press "Start the synth" (browsers only allow sound after a click), then play. The on-screen keys take a mouse or several fingers at once, and sliding along them moves from key to key. On a computer keyboard the home row is the white keys and the row above is the black ones: A is C, W C sharp, S D and so on up to ;, with Z and X moving down and up an octave. With a MIDI keyboard plugged in, press "Connect a MIDI keyboard" and allow the browser's prompt: notes arrive with their velocity, and the pitch wheel, mod wheel and sustain pedal work. Web MIDI is in Chrome, Edge and Firefox; Safari does not have it.

The voice list starts with ten patches made for this page, from a plain sine to an electric piano, a bell, brass, an organ and a slow pad. They are original: no Yamaha factory voice is included here.

Loading your own .syx patches

The DX7 stores a voice as 155 parameters and exchanges voices over MIDI as system-exclusive dumps: 163 bytes for one voice, or 4,104 bytes for a bank of 32, packed more tightly. Forty years of them are in circulation, and if you have a folder of .syx files from a DX7, a TX7, a TX802 or a software FM synth that saves in that format, drop one on the box and its voices join the list under the file's name. The file is read here in the page; it is not uploaded. A dump with a bad checksum or a cut-off file is refused with a message saying which, and a file holding several dumps one after another is read in full.

Turning a MIDI file into audio

Drop a .mid file and choose which part to play, or every part except drums at once. "Render and download" plays the notes through the selected voice, offline and much faster than real time, and saves the result with three seconds for the last notes to ring out. The file is mono, as the instrument's output was, at 48 kHz. Tempo changes in the file are followed and the sustain pedal is turned into note lengths; pitch bend and other controllers in the file are not applied. Because every part plays the same voice, this suits a single line, a piano part or a chord sketch better than a full arrangement. The finished file is scaled as a whole so its loudest moment sits at -1 dBFS; nothing is compressed or limited, so the playing's dynamics are as the MIDI file had them.

To go the other way, audio to MIDI turns a hummed or played melody into a MIDI file you can then render here. To add effects afterwards, the DX7's dry output takes chorus and reverb well: the web plugins page has both.

How FM makes those sounds

Each of the six operators is a sine-wave oscillator with its own envelope. An algorithm is a wiring diagram: some operators are carriers, which you hear, and others are modulators, which you do not hear directly because they wobble the phase of a carrier thousands of times a second. That bends the carrier's sine into a wave with many harmonics, and the modulator's envelope decides how the brightness changes through the note. A modulator at a whole-number ratio gives a harmonic tone, an electric piano or a brass stab; a ratio such as 3.5 gives the clang of a bell. With six operators and 32 ways to wire them, a patch can stack two or three such pairs.

What is and is not a DX7 here

The engine is MSFA, written at Google by Raph Levien and others from study of the instrument and its chips, and since maintained in Dexed by Pascal Gauthier; only the Apache-licensed engine files are compiled in. It is the engine's "modern" core, which is cleaner than the hardware: a real DX7 Mark I has a 12-bit converter and a grit this does not imitate. It runs at your sound card's rate rather than the instrument's own 49,096 Hz. Portamento, mono mode, aftertouch and breath control are not connected, and the pitch-bend range (two semitones) and what the mod wheel does (vibrato) are fixed by this page, since on the instrument those are performance settings and not part of a voice. Dexed is listed on Recomp, a catalogue of reimplementations. This page is not affiliated with Yamaha.

FAQ

Is this a real DX7 emulator?

It uses MSFA, the open-source FM engine inside Dexed, which reproduces the DX7's six operators, 32 algorithms, envelopes and scaling and reads its patch format. It is the cleaner "modern" engine, without the grit of the original 12-bit hardware.

Can I load DX7 .syx patches?

Yes. Drop a single-voice (163-byte) or 32-voice bank (4,104-byte) sysex file and its voices appear in the voice list. Nothing is uploaded.

Does it come with the original factory sounds?

No. The ten built-in voices were written for this page. If you own DX7 cartridges or banks as .syx files, load those.

Can I use my MIDI keyboard?

Yes, in Chrome, Edge and Firefox, through Web MIDI: press "Connect a MIDI keyboard". Velocity, pitch bend, the mod wheel and the sustain pedal work. Safari has no Web MIDI.

How do I convert a MIDI file to audio with it?

Drop the .mid file, choose a voice and a part, and press "Render and download". You get a WAV, FLAC or MP3 of the notes played by that voice.

Why is the output mono?

The DX7 has a single mono output, and so does this engine. Stereo width on DX7 records came from chorus and reverb added afterwards.