﻿########################################
####         VeeSTeeEx Info         ####
########################################


For version:
------------
1.4.1



What is VeeSTeeEx?
------------------

VeeSTeeEx is a - Windows only - wrapper for VST2 plugins, which adds a preset management system to the wrapped plugin.
It uses a SQLite database to store all imported presets, which then are super quick to select for usage within the wrapped plugin.
There is tagging by some built-in tag groups and tags, but is is also possible to define own tag groups and tags.
And there is also the possibility to rate presets and to quickly find presets by name with a simple search.
This tagging/rating/searching can be used in combination to do enhanced filtering.
The preset files ('.VeeSTeeExPresets') can be shared.
By default there will be an area above the wrapped plugin, which gives access to the presets and also allows to step thru them.
How this top area looks like can be changed by editing the 'GUI' file of the wrapper for each wrapped plugin individually.
Those GUI files can be shared too.



How to 'install'?
-----------------

For VeeSTeeEx there is no installer.
This is because it cannot really be installed like regular programs.
Instead the original wrapper (called something like 'VeeSTeeEx-32-O-R-1.4.1.1039.dll') needs to be copied
to the directories where the VST2 plugins which should get the enhanced preset functionality are in.
And then the wrapper also needs to be renamed - like in the following example:
If the plugin to be wrapped is called 'Charlatan.dll', then the wrapper needs to be renamed to 'CharlatanEx.dll'.
If it was called 'My Synth.dll', then the wrapper needs to be renamed to 'My SynthEx.dll'.
Do not even try to work with symbolic or hard links to accomplish this.
It will - unfortunately - not work and will give weirdest results.
And - it is important to wrap a 32 bit VST2 plugin with the 32 bit flavor of the VeeSTeeEx wrapper and a 64 bit VST2 plugin with the 64 bit flavor of it.



How to update to a newer version?
---------------------------------

As of January 2025 there is a new utility application available called 'VeeSTeeExtifier'.
This is a Windows GUI application which should be executable on Windows 7, 8, 10 and 11.
This utility application makes it easy to update already 'installed' instances of the VeeSTeeEx wrapper to a newer version.
You can find it on KVR Audio (https://www.kvraudio.com/product/veesteeextifier-by-zonderp-productions) and download it from there.
Without this VeeSTeeExtifier application, updating a VeeSTeeEx wrapper instance to a newer version is more or less the same process as just 'installing'
it as described in the section above.



How to use?
------------

Instead of loading the original VST2 plugin (like e.g. 'Charlatan' or 'My Synth') you just load the VeeSTeeEx wrapper for that plugin -
that would then be 'CharlatanEx' or 'My SynthEx'.
You should then see the aforementioned top area, which gives access to all the new functionality.
I call it 'Pilot'.
Next thing to do would be to import presets into the VeeSTeeEx wrapper's database.
This can be done by importing from existing bank and preset files ('.fxb' and '.fxp') for the wrapped VST2 plugin via the menu entries under
'Banks' resp. 'Preset'. From those two menues you could also save bank resp. preset files.



Manual?
-------

There is an HTML manual.
It comes with the download.
But it is still quite incomplete.
Some of the more important stuff is already described there, at least roughly.
But a lot of detail is still missing.
I will try to improve it from time to time.
Bear with me for its current state.



Know issues?
------------

Well - it seems there are not too many of them.
At least not much has been reported so far - to my surprise.
One issue with VeeSTeeEx not working properly on some hosts like Presonus Studio One is fixed with a 'special' edition,
which reports - unlike the original edition - a different UID to the host/DAW than the wrapped plugin.
This special edition also comes with the download.
See a bit more detail about which edition to use under which circumstances in the HTML manual.

In my testing the VeeSTeeEx wrapper worked good with many VST2 plugins and under different hosts.
I tested with tons of VST2 plugins mainly in 'energyXT 3.0', but sometimes also with 'Bitwig Studio' or 'Cantabile lite' and from time to time also with some others.
But - there might be all kinds of strange behavior with some VST2 plugins and/or under certain hosts - or even with a special combination of them.
This is especially related to importing and loading of presets. For some VST2 plugins this just doesn't work good.

For sure there are also some other smaller bugs I'm aware of, but not really any major issues.
Those smaller bugs I'll try to fix when I work on related features and improvements.



System requirements:
--------------------

VeeSTeeEx should run under Windows 7, 8, 10 and 11.



Attention!
----------

When the 'Preset picker' is in Maintenance mode, it is strongly recommended to NOT run a sequencer.



History:
--------

The project first started in 2014 (!) when I was annoyed that - back then - it wasn't possible in Bitwig Studio to access banks and presets for 2Dat's famous 'OB-Xd'.
See here: https://www.kvraudio.com/forum/viewtopic.php?p=5728299
Since OB-Xd was open source back then, I grabbed the code and added a (hidden) feature, to be able to load a .fxb bank file for it without the need to rely on host.
And I thought: How cool would it be, if I could give this ability to all VST2 plugins? The idea was born.
But it's one thing to grab the source code of any open source VST2 plugin, and a totally different one, when all VST2 plugins should get such a extended functionality.
I somehow would need to write a wrapper... Weeks and months of research and experiments and evaluation of frameworks.
At some point I had the feeling it could be done - with the help of the 'Juce' framework.
And then - after the basics of wrapping the VST2 plugins (meaning: hosting them, but routing everything to the 'real' host and let the wrapper more or less appear like the wrapped plugin to the host) -
there were quite many iterations to the project.
There was no database in the first years, all the wrapper more or less did, was what usually hosts should be able to do, namely loading and saving of banks and presets resp. rename presets and
tell the plugin to switch to a preset within a loaded bank. And it remembered/stored the paths to loaded banks and presets in a file.
Then - inspired by Ichiro Toda's legendary 'Synth1', which's preset selection I always loved -, I implemented something similar.
A window with a bit of transparency to choose the desired preset from.
At this point, this also only just worked for the actually loaded bank, but there was now in that preset picker window the possibility to quickly load a bank into the VST2's memory - by displaying on the GUI
the names of the banks for which the paths were stored in the file and allowing to click on them and by this trigger the loading of the bank file into the VST2 plugin's memory.
And then at the start of 2018 a totally new iteration began.
This time inspired by back then just released Neutrino Sky's 'Synth1 Librarian'.
It uses a database, and I again thought: How cool would that be, to being able to import all available banks and presets for a VST2 plugin and having them all available immediately to choose from.
Again some weeks of research and then decided for going to use 'SQLite' as the database backend.
And then I added tagging, rating, and what not.
Now - after a long journey - it is here, publicly available for all of you.
Somehow a bit late to the party, since VST2 is a discontinued technology, but nonetheless...



What's next?
-------------

Not sure...



Privacy note:
-------------

The VeeSTeeEx wrapper stores a combination of 'WindowsLogonUserName@ComputerName' together with the
'Region' (as specified in the Windows settings) as user in the database.
The 'Region' is only internally used to - hopefully - be able to make users halfway unique - in case preset files get shared.
This information will be displayed e.g. in the info for presets like e.g so: "Preset 'Damped piano' imported by 'Patrik@Patrik-PC' at 2023-06-27".
But it is possible to change what gets displayed as user name (Via 'Your user name...' menu entry.)
The key info 'WindowsLogonUserName'/'ComputerName'/'Region' will stay in the database, but will not be displayed.
Only the editable user display name will be shown wherever such info might get displayed.
The presets database file is encrypted and password protected, so this information should stay secret - but...
Thus, if you do not agree with this solution, then please just do NOT share '.VeeSTeeExPresets' files.
Other than that, for sure the VeeSTeeEx wrapper does not try to somehow connect to the internet or whatever.



Why SQLCipher?
--------------

I use SQLCipher to encrypt the SQLite database only for one reason:
To avoid that users toy around with values in the database and change values of whatever entries to something which wouldn't be expected by the wrapper code.



Copyright:
-----------

© 2014-2025 Patrik Ehringer



License:
--------

You may NOT distribute, sell, rent, or modify this software 
or any accompanying files without permission from the author.
This is with the exception of the '...Ex.VeeSTeeExPresets' files and the '...Ex-GUI.xml' files.



Disclaimer:
-----------

This software and any accompanying files are provided 'as is'.
You are using this software entirely at your own risk.
The author provides no warranty and cannot in any way be held 
responsible for anything this software does.



Legal note:
-----------

VST is a trademark of Steinberg Media Technologies GmbH

The SQLCipher BSD style license information can be viewed in the 'Legal' tab of the VeeSTeeEx info window.



Change log:
-----------

See VeeSTeeEx-ChangeLog.txt!
