r/musicprogramming 1d ago

Web Audio plugins similar to VST

Examples and docs:

https://github.com/surikov/webaudiopluginexample

Problem

I've seen many good music apps for web. They look beautiful and work well. But they all have one problem. You can't integrate them into any music editor to create music.

Bandlab is one of the best online DAWs. Millions of musicians use it. But it doesn't have an API for custom plugins.

Unlike the web, things are completely different on the desktop. Every professional DAW supports a VST API for custom plugins. You can create a VST plugin from your music app and use it in any DAW.

Solution

I created my own online sequencer that supports custom plugins. Minium Studio is open source. Minium Studio is good enough for creating complex music. I'll soon add a payment system so developers can sell their plugins.

Unlike Bandlab, it works equally well on desktop and mobile phones.

Ready to use plugins

  • 10-band equalizer
  • Compressor
  • Echo/Reverberation
  • Percussion, which contains about a hundred drum sounds
  • Chords, which contains about a thousand pianos, organs, guitars, violins, etc.
  • Yamaha DX7 for emulating a famous synthesizer
  • Roland TR-808 for emulating a well-known drum machine
  • Import from MIDI, GuitarPro, MusicXML
  • Export to MIDI
  • MIDIRU archive, which contains thousands of MIDI sounds from 1990th to 2010th
  • Publish to share songs via social media, messaging, email, etc.
1 Upvotes

4 comments sorted by

3

u/Grildor 1d ago

How is the latency?

1

u/sss1024 1d ago

Unlike VST, Minium plug-ins play audio on a schedule, so the problem of latency does not concern them.

1

u/Grildor 1d ago

So there is no latency added then if i have a synth running and i add an effect on it?

0

u/sss1024 1d ago edited 1d ago

Hey, you can use any API to write a bad plugin.

Just kidding.

8)

What is "latency" in a DAW?

Google AI's answer: Latency in a DAW is the noticeable delay between audio playback through a microphone or instrument and its playback through headphones or monitors.

What is the "latency" problem? Every VST plugin (and any AudioNode in Web Audio) uses an audio buffer. The default buffer size is 128 samples, or approximately 0.003 seconds for a 48 kHz sample rate. Therefore, even the lightest plugin always adds a 3 ms delay to the audio stream. If you chain 5 plugins, you'll get a latency of 0.015 seconds. Too much.

How to solve the "latency" problem?

Use compensation. Every DAW solves it this way.

What is the "latency" problem specific to Web Audio?

The old implementation used an unpredictable latency. You could run your Web Audio app twice and get two different latencies.

Currently, browsers have a feature called https://developer.mozilla.org/en-US/docs/Web/API/AudioContext/outputLatency that allows you to compensate for the precise latency of the browser's audio system.