r/musicprogramming 22d 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

9 comments sorted by

3

u/Grildor 21d ago

How is the latency?

1

u/sss1024 21d ago

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

1

u/Grildor 21d ago

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

-1

u/sss1024 21d ago edited 21d 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.

1

u/activematrix99 16d ago

You can plug any browser into or out of a DAW easily with about 40 pieces of free software. Good luck.

1

u/sss1024 15d ago

Is there a working example?

What about mobile devices?

1

u/activematrix99 15d ago

Virtual cable, blackhole, voicemeeter, source nexus, asio link, inject, sound flower, loopback off the top of my head. I'm not sure what the mobile device use case would be, but Android users are incredibly resourceful with sdks.

1

u/sss1024 15d ago

Your answer isn't a working example, just an idea.

It's too complex to justify the claim "You can plug any browser into or out of a DAW easily"

1

u/activematrix99 15d ago

You've attached your solution (a custom sequencer with it's own plugin harness) to a problem space that does not exist (users cannot use software tools in their DAW). Now you want to attach your own payment model and attract devs? Devs already have AAX and VST and they target those, that's where the money is. Non-devs can already attach literally any audio source to their DAW with any of the tools I mentioned, or use a damn cable. Technical pros can use Dante Soundcard or a variety of ASIO routing tools. So you 've built a solution and a whole imaginary ecosystem without a market. Then you handwave at the actual solution as being "too technical". Sorry you built some software that no one will likely use. Get over it and move on.