SuperSonic - SuperCollider's Synthesis Engine in the Browser

2 min read Original article ↗
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

Code Examples

Drop pro-grade audio synthesis into your web page…

Import from CDN (or self-host)
import { SuperSonic } from 'https://unpkg.com/supersonic-scsynth';
Initialise — zero config needed
const sonic = new SuperSonic();
await sonic.init();
Load and play a synth
await sonic.loadSynthDef('sonic-pi-prophet');
sonic.send('/s_new', 'sonic-pi-prophet',
             -1, 0, 0, 'note', 60);
Load and play a sample
sonic.loadSynthDef('sonic-pi-basic_stereo_player');
sonic.loadSample(0, 'bd_haus.flac');
await sonic.sync();
sonic.send('/s_new', 'sonic-pi-basic_stereo_player',
             -1, 0, 0, 'buf', 0);

Works directly from CDN — no server setup needed. See README

This is a simple playful demo of SuperSonic's audio engine - have fun making noise!

Click/Tap & Drag

X: 0.00

Reverb: 0.30

Y: 0.00

Cutoff: 130

Messages

sent0 / 0 B

received0 / 0 B

direct0

dropped0

PreScheduler

pending0 / 0

sent0

scheduled0

cancelled0

Scheduler

queue0 / 0

dropped0

clock drift0ms

Processing

processed0

dropped0

seq gaps0

ticks0

Retries

ok / fail0 / 0

queue0 / 0

retried0

dispatches0

Engine

audio-

synthdefs0

debug0 / 0 B

Buffers

used0 B

free0 B

allocs0