VST Plugins vary widely in implementation and Forte tries to work with each in its own way, but sometimes it needs specific hints or behavioral overrides to work with a plugin in the way you want to.  This article explains how the DeviceCompatibility.xml file is used to create "hacks" for different plugin behaviors.  


A file called "DeviceCompatibility.xml" can exist in two folders and modify Forte's handling of specific plugins:

  1. The Forte Install Folder contains the "master" copy of DeviceCompatibility.xml as maintained by Brainspawn
  2. Your Forte Application Data folder contains a customizable version (e.g. C:\Users\<user>\AppData\Roaming\Brainspawn\forte 4)


Forte will load both files at startup with the 2nd one overriding the 1st.  The Plugin Manager will also load the files when it starts.  Any alteration of the contents of these files will not take effect until Forte or Plugin Manager is restarted.


The DeviceCompatibility.xml file is formatted as XML data, and must have correct syntax including closing tags.  The format is:


<?xml version="1.0" encoding="UTF-8"?>
<Devices>
  <Device CLSID="{41D2BA9F-9E2D-4FF1-A6D4-6930EC21AB26}">
    <saveFXB bool="1"/>
    <saveFXP bool="0"/>
    <saveProgramNumber bool="0"/>
    <saveParams bool="0"/>
  </Device>
        ... more Device blocks here...
</Devices>


Plugins are identified at the "Device" block level by either their CLSID, their VST ID, or their plugin name.

  1. CLSID - this is the CLSID value found in the plugins.xml and plugins64.xml file for a particular plugin.
  2. VST ID - where the value is a 8 hex digits representing the 32 bit VST ID in quotes.  This can also be found in the plugins.xml file.
  3. Plugin Name - any portion of the plugin name case insensitive


Making a VST effects plugin look like a VSTi instrument plugin

It is possible to tell Forte that although a plugin is an effect plugin you want to treat is as a VSTi instrument plugin.  Examples of this might be Native Instruments Guitar Rig.


To do this, add a Device block identifying the plugin by CLSID:


  <!-- Blue Cat's Remote Control 64 -->
  <Device CLSID="{5E25DCA0-9E2D-4FF1-A6D4-6930EC21AB26}">
    <isVSTi bool="1"/>
  </Device>


This will be loaded by Plugin Manager when it starts and will be applied to a plugin when it is discovered or rescanned (select plugins and press "Rescan selected Plugins".


 

After re-scanning the plugin, its type should magically change from "VST" to "VSTi"


Altering how Forte saves a plugin's state when capturing or updating a scene


Forte tries to make a good decision about how to get and set VST configuration (chunks or FXB/FXP data). However, sometimes a plugin wants something different to get or set its entire state. Forte has a way to override scene capture and recall behavior for individual plugins.


A typical example entry might be:


<Device Name="KarmaFX">
 <saveFXB bool="1"/>
 <saveFXP bool="0"/>
 <saveProgramNumber bool="0"/>
 <saveParams bool="0"/>
</Device>



This instructs Forte how to save scenes, not restore them, so you must restart Forte, reload your rack, and recapture any scenes you wish to have this new plugin content stored.  You may set more than one to "1" but typically you would choose just one.


Altering how Forte loads a plugin's state when changing to a scene

Likewise, Forte can be configured to only load certain types of data on scene load for a plugin.  That data must have been captured previously on scene capture or update.  Use the "loadFXB" etc tags to control load.


  <!-- Some Arturia Plugins -->
  <Device Name="Arturia">
    <saveFXB bool="1"/>
    <saveFXP bool="0"/>
    <saveProgramNumber bool="0"/>
    <saveParams bool="0"/>
    <loadFXB bool="1"/>
    <loadFXP bool="0"/>
    <loadProgramNumber bool="0"/>
    <loadParams bool="0"/>
  </Device>