Supersonic

SuperCollider audio goodness baked into your browser

SuperCollider's powerful audio synthesis engine scsynth running in the browser as an AudioWorklet.

Zero installation.

AudioWorklet
Runs in a dedicated high priority audio thread
WebAssembly
Scsynth's C++ code compiled for the web
OSC API
Talk to the Scsynth server through its native OSC API
Play with Demo Open Source on GitHub

Sprinkle the scsynth audio engine onto any web page...

First, grab the SuperSonic module

import { SuperSonic } from './dist/supersonic.js';

Initialize and you're ready to go

const sonic = new SuperSonic();
await sonic.init();

Access the full OSC API:
SuperCollider's Scsynth Commands

sonic.send('/notify', 1);

Remember to set COOP/COEP headers — see README

Brought to you by Sam Aaron

Please consider joining the wonderful
community of supporters enabling Sam's work on
creative coding projects like this,
Sonic Pi and Tau5.

Support Sam via Patreon

Support Sam via Patreon

Support via GitHub Sponsors

Support Sam via GitHub Sponsors

Welcome to SuperSonic

  1. Load synthdefs — Click "Send Sonic Pi Synthdefs" below to load synths from Sonic Pi (which are scsynth compatible): sonic-pi-beep, sonic-pi-dsaw, sonic-pi-dpulse, sonic-pi-bnoise, sonic-pi-prophet, sonic-pi-tb303, sonic-pi-chiplead, sonic-pi-fm
  2. Call the scsynth OSC API — Use the text area below to write OSC commands from this API: scsynth OSC Commands /s_new sonic-pi-beep -1 0 0 note 72 /notify 1
  3. Scheduling — You can start each OSC API call with a time to schedule sequences: 0 /s_new sonic-pi-beep -1 0 0 note 60 0.5 /s_new sonic-pi-beep -1 0 0 note 64

Quick Start: Click "Load Example" to load up some example API calls then hit "Send".

Choose your own OSC...

Scsynth Info


                      

OSC to Scsynth

No messages sent yet

OSC from Scsynth

No messages received yet

Sent: 0 Recv: 0 Drop: 0 Proc: 0 Ovr: 0 IN: 0%
OUT: 0%