
Whats This ?
------------

This is official successor of FST.
Well .. so what was fst ?
Linux VST host with runs as a jack client and with GTK GUI.

Supports:
- 32 and 64 bit plugins
- load/save state to LASH, JackSessions, FPS files (own XML format)
- load/save FXB/FXP files
- Jack Transport
- Jack MIDI
- Jack autoconnection
- LADIsh - L1 or L2 (JackSession)
- Control via MIDI SysEx e.g. dump some settings ( but not all )
- MIDI CC automation (MIDI learn)
- bypass/resume state (also via MIDI CC or SysEx)
- simple midi filters
- volume control
- plugins which not handling MIDI Program Change messages
- easily plugin discovering (-g option)
- GTK2/GTK3 ( you can compile even without GTK )
- control using TCP socket ( e.g. via telnet )

There are also:
- fsthost_menu - Perl GTK[23] menu to startup plugins
- fsthost_ctrl - Perl GTK[23] app for control via TCP socket
- fsthost_list - simple application to show known plugins ( read about XML DB )

Getting Started
---------------

1) Ensure you have the necessary build dependencies (devel packages).
Obviouslly you need 32 bit versions for build fsthost32 on AMD64.

  REQUIRED:
     wine ( wine-staging recommended )
     jack
     libxml-2.0

  OPTIONAL:
     For GTK GUI:
        glib-2.0
        gtk+-2.0 or gtk+-3.0

     For fsthost_menu
        perl XML::LibXML module for fsthost_menu ( libxml-perl ? )

     For LASH
        lash-1.0

2) Type 'make'. If everything works correctly this should create an
   executable file called 'fsthost32' and optionaly 'fsthost64'

3) Type 'make GTK=2' to force GTK+2 GUI or 'make GTK=0' for exclude GTK code

4) Type 'make LASH_EXISTS=no' to build without lash.
   This is default if lash libs are not available

5) Type 'make PLAT=64' to build only 64bit version and respectively
        'make PLAT=32' to build only 32bit version

6) To run your vst plugins:
   
      ./fsthost32 /path/to/someplugin.dll
   or
      ./fsthost64 /path/to/someplugin.dll

you can also use multiple plugins or load plugins with some "state".

7) To install type 'make install'

Note: you can build/install all at once, just like that ;-)
make install

XML Database and simple plugin menu
-----

You can build XML Database, and update it later by such command
fsthost32 -g ~/VST
fsthost64 -g ~/VST64

Where ~/VST* are paths which will be scanned recursivelly for plugins.
You can use later this database by some GUI app ( e.g. fsthost_menu ).
Default path for database is ~/fsthost.xml.
Separate 32/64 databases is unnecessary.

You can also export VST_PATH and scan it recursivelly like:
   % export VST_PATH=~/VST:/usr/share/vst:/otherlocation
   % fsthost -g

You can force GTK version (2/3) for "fsthost_menu.pl" by:
   % export FSTMENU_GTK=2 # or 3

TCP control protocol
-----
If you start fsthost with option -S <port> you can control it remotely.
It will listen on that port on all interfaces. For random port use -S 0.
You can check later with port you got in /tmp/fsthost directory.
To connect use telnet like:
telent <host> <port>
Then check available commands by typing "help".
There is also fsthost_ctrl application with similar GUI to fsthost.
Eventually you can compile fsthost without gtk gui at all by make GTK=0,
and then control it via fsthost_ctrl or telnet.

JackSession / LASH
-----

With JackSession or LASH you can save and restore the state of the plugin.

Known BUGs
---------------

If you experience WineBUG like RenderBadPicture, please update this ticket:
http://bugs.winehq.org/show_bug.cgi?id=6673

Possible workaround:
export WINEDEBUG=synchronous

You can try also this one below ( but personally I see no difference ;-)
export GDK_NATIVE_WINDOWS=1

License
-------

fsthost is licenced under the GNU General Public License version 2.
See file 'COPYING' for details.

Authors / contributors
----------------------
Current maintainer of FSTHost: Pawel Piatek <xj@wp.pl>

Autors of FST:
Torben Hohn, Paul Davis, Kjetil S. Matheussen / Notam, Mark Williamson
Joe Button, Nedko Arnaudov

