Hi everybody,

as I've been playing around with some commercial DAWs lately, which don't
support LV2, I felt the need to have something like faust-lv2 for VST
plugins. First I gave Yan Michalevsky's new vst.cpp architecture a try,
which he presented at LAC 2014. Yan's architecture has a very cool
portamento feature (you can listen to that at
http://stanford.edu/~yanm2/music/faustloop.mp3), but it didn't really work
very well for my own stuff since vst.cpp doesn't handle multi-channel MIDI
data, and AFAICT it also lacks the automatic MIDI controller assignments
and MTS tuning features in faust-lv2.

It would have been quite a lot of work to add all this to Yan's
architecture, so I set out to port my own faust-lv2 to VST instead, which
was surprisingly easy. This is up now at
https://bitbucket.org/agraef/faust-vst. There's a Makefile, the
architecture itself, a faust2faustvst helper script and some examples.
Users of faust-lv2 should feel right at home; any kind of effect or
instrument plugin which works with faust-lv2 should just take a recompile
to turn it into a full-featured VST. (As with Yan's architecture, this
requires Steinberg's SDK, though. Links to that are provided in the README.)

Note that, as with Yan's architecture, there's only a single architecture
faustvst.cpp which does both VSTs and VSTis; for instrument plugins, you
just specify the NVOICES option at compile time, or run faust2faustvst
-nvoices, or put the nvoices meta key into the Faust source itself.

I've tested the new architecture on both Linux and Mac OS X with Ardour3,
Bitwig, Reaper, Qtractor and Tracktion, and it seems to work fine. Windows
support should be a piece of cake, I'll probably do that some time, but I
wouldn't mind if someone beats me to it. ;-) Other items on the TODO list
are to integrate OSC and HTTPD support, and adding Yan's portamento feature
to faust-dsp.

Yann, feel free to add faustvst.cpp and faust2faustvst to the Faust
sources, and it would be great if this could be added to the online
compiler as well. I chose the somewhat bulky names so that they don't
conflict with Yan's stuff.

One issue I'm still grappling with is the license. For now, I decided to
keep the LGPL which faust-vst inherited from faust-lv2. This is also what
most other architectures use, but it makes proprietary uses difficult,
unless a commercial developer is willing to give away the Faust source of a
plugin. I'm interested in hearing everybody's thoughts on this. Do we want
to promote the use of Faust for proprietary plugins? Julius, what are you
thoughts on this, specifically concerning VST? Yan released his
architecture under the 3-clause BSDL, I guess that this was this done to
facilitate commercial uses?

Enjoy. :)
Albert

-- 
Dr. Albert Gr"af
Computer Music Research Group, JGU Mainz, Germany
Email:  aggr...@gmail.com
WWW:    https://plus.google.com/+AlbertGraef
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=164703151&iu=/4140/ostg.clktrk
_______________________________________________
Faudiostream-users mailing list
Faudiostream-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/faudiostream-users

Reply via email to