6op.
Beta
A place to explore FM

The DX7, in your browser.
Room to explore.

6op is a browser-based emulation of the Yamaha DX7, bringing its six-operator FM synthesis, 32 algorithms and classic patches to a hands-on visual editor. Explore sounds, edit every voice parameter and connect your MIDI controller—all in your browser.

6 operators32 algorithms16 voices
Six operators, three stacksAn example FM routing: operator 2 modulates 1, 4 modulates 3, and 6 modulates 5. Operators 1, 3 and 5 feed the output.020406010305OUTPUT
One of many ways to connect six operators.
Change the connections. Change the character.

An FM workbench for curious ears.

6op is built around the pleasure of programming FM: experimenting, listening closely and gradually refining a patch. Its focus is sound exploration and patch research, with convenient access to the details that give a sound its character.

The full parameter panel brings all six operators and their routing into one editor. Explore frequencies, levels, envelopes and keyboard scaling, then fine-tune pitch modulation and performance response. See how a patch is put together and hear what each adjustment contributes.

Use MIDI learn to map your controller's knobs and sliders to sound parameters. Put the controls you want to explore under your fingers, play a phrase and listen as you adjust them. MIDI input and learn are available where supported by your browser.

Start with your own idea or import DX7 SysEx sounds to study and reshape. Play with your computer keyboard, the on-screen keys or a MIDI controller, and explore chorus, delay and reverb as part of the sound.

Saved patches stay in this browser. Export them to keep a backup or move them between devices.

Before connecting a MIDI keyboard

On Mac and Windows: use Chrome, Edge or Firefox for external MIDI keyboards and MIDI learn. Allow MIDI access when your browser asks. Safari on Mac does not support Web MIDI natively.

On iPad and iPhone: standard Safari, Chrome and Edge browsers currently do not support Web MIDI, so 6op cannot receive input from your MIDI keyboard in these browsers. Changing cables, retrying permissions or adding 6op to your home screen will not enable this missing browser feature.

You can still play with the on-screen keys. A dedicated MIDI-capable browser may provide external keyboard access on iPad, but compatibility with 6op has not been verified. See current Web MIDI browser support.

Built for the browser.

TypeScript, HTML & CSS
A native web interface, bundled with Vite.
Web Audio & AudioWorklet
Real-time sound rendering and shared effects, with synthesis running on the audio rendering thread.
C++ & WebAssembly
The FM engine uses selected code from Google’s Music Synthesizer for Android (MSFA), compiled to WebAssembly. The upstream core is licensed under Apache 2.0.
Web MIDI
External MIDI input and MIDI learn connect compatible controllers to the instrument, where supported by the browser.
Waves
The shared codebase behind 6op supplies audio, input, patch storage, MIDI mapping and common controls.

From a discovery to a defining sound.

Frequency modulation synthesis creates complex timbres by using one oscillator to modulate another at audio rates. Small changes can take a sound from smooth and pure to bright, metallic or percussive.

  1. A discovery at Stanford.John Chowning discovers the musical potential of digital FM synthesis.

  2. From research to instruments.Yamaha licenses FM technology from Stanford, beginning its path into commercial keyboards.

  3. The DX7 arrives.Yamaha’s six-operator DX7 brings programmable digital FM to a wide audience. Its electric pianos, basses and bells help define the sound of the 1980s.

6op brings that approach to a browser instrument, with a visual editor for exploring how the sound is made.

Further reading: John Chowning remembersYamaha’s FM history

Still in beta. Help shape 6op.

6op is currently in beta. You may encounter bugs, unexpected behavior or differences between browsers. Export important patches as a backup while the instrument evolves.

Found a bug, have a suggestion or want to get in touch? Send your feedback, feature ideas or questions by email. I'd love to hear how you use 6op, what could work better or simply what you've been making with it.

If you're reporting a bug, please include a short description, the steps to reproduce it, and your browser and operating system. A screenshot or an example patch can help.

Email me: tsevin@outlook.com