John Valentine
Boop offline synth

Boop is a software synthesizer in your browser. It's not yet fully accessible, but full accessibility is my aim for version 1.0. Boop is currently pre-alpha, early access.

FMC was my first software synthesizer. Boop is a 2025 rewrite for web browsers, using NodeJS, Vite, React, and Zustand.

Get started

Boop starts with a basic synth graph to the left, and a properties bar to the right.

This graph makes a sine wave in the Oscillator node and captures it in the Output node.

To reset to this graph, select Reset.

To make a sound, select the Play audio button in the toolbar.

To download a wave file (.wav), select the Download button in the toolbar.

Change the sound

  1. Select the Oscillator node.
    The properties panel displays the parameters for the node.
  2. Change Pitch offset to 1, and select Play audio.
    The sound plays an octave higher.

Pitch offset uses octave units. In Pitch offset, can also enter:

  • Cents, like 23c.
  • Note degrees or semitones, like 5d. 100c = 1d.
  • Ratios, like 7:3.

Try FM synthesis

  1. From the Add dropdown, select Oscillator.
    A new node displays in the graph.
  2. Drag the nodes to arrange them.
  3. Connect the Signal of the new node to the Frequency mod input terminal of node 1, by dragging between the terminals.

Add more nodes and make connections

You can build your own synthesizer by adding nodes, making connections, and changing node parameters. Use these sounds in your sample player, DAW, or wherever else you can use wave files.

By default, only some of the available connectors display for a node. To show them on the node, select the node, and in the side panel, select the checkbox for each parameter.

Change the node processing order

When you generate a sound with Play audio or Download, Boop processes nodes in the order shown in Node processing order.

Boop works best when the input nodes are processed before the nodes that use them, with the Output node last in the order. If you process a node before its input node, it can incur a small latency.

To change this order:

  1. Select the background area of the graph to unselect all nodes.
    The Node processing order displays to the right.
  2. Select Move up or Move down for the nodes you want to move.

Normalize the output

After you select Play audio or Download, Boop adds a peak meter to the Output node, displaying the peak in dBFS. The colour is red if the output clipped, yellow if it was near clipping, or neutral otherwise.

To fix clipped output, you can change the Gain on the Output node. You can use dB units, like -4.5dB.

Project progress

I've built most of the core technology, and I'm currently adding more node types, features, and UI. I have a prioritized plan of how Boop should develop. Feel free to play with Boop, and use its sounds in your own creative works.

Please note that this is an early access version, without patch export or import. It does, however, save your current patch between sessions, in your browser's localStorage.

I lurk on Surge Synth Team Discord, but this is not a SST project.