NetVST Wiki

networking for VST/AU plugins

User Tools

Site Tools


more_about_the_project

The NetVST project

Goals

The main goal of this project is to provide a way for people to use VST and Audio Unit plugins running on one computer, inside a DAW (digital audio workstation) program running on different computer, by sending digital audio and MIDI data across a network. There are two main reasons to do this:

  1. To allow plugins which are available only for one operating system (e.g. Microsoft Windows) to be used in a DAW built for a different operating system (e.g. Mac OS).
  2. To allow plugins which require a lot of computing power to run on a separate machine.

Another goal is to create an open standard protocol for this kind of networking. See The NetVST protocol.

Open protocol, closed source

It is not practical to make this an open-source project, because the code depends on a number of components, such as VST SDK (Steinberg) and AU SDK (Apple), which themselves are not open-source. We have therefore chosen to make the networking protocol open, but keep the source code closed to all except the project collaborators.

The basic project plan and likely future

The initial version of NetVSTHost is little more than a quick hack of an old version of Hermann Seib's very popular free VSTHost program. The “real” VSTHost, which you can download for free from Hermann's web site, features many improvements; it is up to version 1.56 (December 2016) and still under development.

NetVSTHost was built on top of a much older version of VSTHost (1.16k, from 2008), which Hermann has very kindly made open-source under the terms of the GNU Lesser GPL.

The NetVST project is a collaboration between Hermann and Shane Dunne, to explore the practicality of using VSTs across local-area networks, and develop an open standard protocol. Once the protocol and the conceptual structure settle down, it is very possible that Hermann will simply incorporate the ideas into a newer release of VSTHost, and NetVSTHost itself will no longer be needed at all.

Shane is also interested in building a new “NetVSTHost” program, with a graphical user interface (GUI) which is very different from that of VSTHost. This might be free, like VSTHost; if so it would be kept very simple. If it turns out that there is enough interest in a more “professional” NetVSTHost, that people might be willing to pay for, then it is also possible that this future NetVSTHost program might become a commercial product. If you have opinions about this possibility, please share them in the Discussion section below.

Wild ideas

This project started so Shane could use some of TubeOhm's excellent synthesizer VSTs inside Logic Pro X on the Mac. If this is all we achieve, then a few people might use it, while most will just not worry about plugins for computer platforms other than their own, and concentrate on making better music instead.

However, when you think about it, using networks as the basis for audio plugins is a pretty good idea.

  1. It works fine on a single computer, or a network of any number of computers.
  2. It avoids the whole issue of 32-bit/64-bit compatibility.
  3. It sidesteps the incompatibilities between different operating systems.
  4. It provides a way to expand the CPU power available in an audio system, almost without limit.
  5. It opens the door to the idea of creating distributed plugins, where each type of hardware is applied only to what it does best.

The notion of software plugins as dynamic-link libraries is superficially appealing for computer people, but in practice imposes several limitations. One misbehaving plugin can knock out a whole DAW, because they share a single process and address space. This architecture also does not naturally make good use of multiple CPU cores.

PC evolution has almost stalled in recent years. The only way to get more CPU cores and greater overall power (short of spending a fortune on server-grade systems) is to use multiple computers, but existing plugin architectures were simply not designed for this. Apple's Logic Pro software has some built-in support for “distributed audio processing” on multiple network “nodes”, but Apple has chosen to keep this proprietary, and limited in such a way that users can't re-use older Macs alongside newer ones.

In a recent interview, Urs Heckmann of U-He talked about how the design of software synthesizers is very much based on what compromises one is willing to make, to reduce CPU load. As PCs and Macs get faster, you get to try more advanced things, but there are still compromises. What kind of soft-synthesizer could someone like Urs create, if he could deliver it running on a dedicated computer?

One problem with how NetVST works now is that every computer used for VSTs has to be a whole desktop (or laptop) machine, complete with screen, mouse and keyboard, because each VST consists of a digital signal-processing (DSP) part (which could run on anything) plus a graphical user interface (GUI) part (which tends to be highly operating-system specific), and the two cannot be separated.

To get past this, it will be necessary to move to a distributed plugin approach, where each plugin's GUI runs within the user's DAW, but the CPU-intensive DSP component runs on a separate computer. That separate DSP computer, then, no longer needs a complicated behemoth of an operating system like Microsoft Windows, nor does it require its own screen, mouse, etc. The separation of GUI and DSP is not particularly hard; NetVST achieves it already. Steinberg's VST SDK already allows compiling VST plugins for Linux; it just isn't used much yet.

The music studios of the very near future are likely to consist of a small number of workstation computers running DAW programs, connected by fast networks to racks of VST servers, where all the DSP is done. If this is to happen without any one company having a stranglehold on it, we need to build it now, using open protocols. And that, my friends, is this project's REAL goal.

more_about_the_project.txt · Last modified: 2017/12/12 20:34 by shane