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.
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.
Pitch offset uses octave units. In Pitch offset, can also enter:
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.
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:
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.
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.