When loading a song with VST 2 plugins, Cantabile uses ID’s of saved plugins to determine which plugin should be reloaded. Normally this works perfectly fine but in some cases you might have two plugins with the same ID in which case a decision needs to be made as to which one to load.

The latest build of Cantabile improves this logic.

The old logic for mapping a plugin IDs to a plugin file was:

  1. Look up the plugin database using the ID
  2. If there is only one plugin matching, use that one
  3. If there is one with the same file name (not including the path) use that one
  4. Otherwise fall back to the first one in the list

This generally worked except for in one important case — when you have both the x86 and x64 editions of a plugin installed on your VST path and both have the same file name. This came up recently in the case of Ivory — on both platforms the module is named “Ivory VST.dll” so depending on the order these plugins were found in the scan you might get the x86 version or you might get the x64 version.

In build 3165 and later this has been improved and the new logic is:

  1. Look up the plugin database using the ID
  2. If there is only one plugin matching, use that one
  3. If there is one with the same filename and path then use that one
  4. If there is one with the same filename (excluding the path) and it matches the platform (x86 vs x64) then use that one
  5. If there is one with the same filename (excluding the path) then use that one even if the platform doesn’t match
  6. Finally fallback and use the first one in the list

The net effect of these changes is that Cantabile will firstly try to stick to the exact file you originally selected, followed by a preference for a similarly named file for the same platform.

Mostly these changes should be completely transparent, but note that you may get a different platform version of a plugin when reloading some songs due to this new logic. If you have multiple versions of a plugin on your VST path you should probably check you’re still getting the one you intended.