2

I'm investigating the feasibility of creating a music player based on the Web Audio API (inside an Electron container), that can use VST and/or AU effect plugins. I've been searching, but haven't found anything similar online.

I'm not deeply familiar with the architecture of audio plugins, but I think it should be possible to pipe raw audio data through a plugin and return it back to JS through some kind of C binding. Before I go down a long research road, I thought I'd ask if there were any obvious road-blocks to piping web audio through a VST plugin (maybe through node-ffi or something similar)?

Nick W.
  • 1,050
  • 2
  • 9
  • 21

2 Answers2

2

This won't be a complete answer, but it would be possible to emulate a closed source plugin or even recompile an open source plugin with something like emscripten, making it possible to use directly in the browser.

It sounds like the question you're asking involves a server-side component though, and somthing along the lines of node-ffi or custom C++ bindings in V8.

Maybe create bindings for https://github.com/abique/vst-bridge which uses WINE to allow running VST Windows plugins on Linux.

Re-reading the question I'm wondering if a node library for JACK wouldn't work, not sure if native Windows support is a requirement. If not, there are multiple choices for VST/VSTi in jack.

https://github.com/unclechu/node-jack-connector/blob/master/README.md

TGrif
  • 5,725
  • 9
  • 31
  • 52
Timothy Meade
  • 2,476
  • 1
  • 13
  • 9
  • Gave it an up-vote because this is certainly helpful information, but the point of using Electron was to try and go cross-platform, so requiring JACK isn't really viable (even though I'm a Linux guy). I'm now chatting to my consultant musicians about whether we can get away with javascript-only effects (written ourselves, or through emscripten) without letting users install their own high-end plugins. We'll see what the future holds. P.S. The link to vst-bridge is broken (should be abique, not abiquye). – Nick W. Aug 19 '16 at 21:39
1

This would require a LOT of custom C++ piping, and wouldn't likely ever be supported in-browser. We have an issue on VST support in web audio, but VST the way it is is very unlikely.

cwilso
  • 13,610
  • 1
  • 30
  • 35