[gmpi] Standardized Search Functions

I'm not sure when it is appropriate to address this issue, so please let me 
know if it should wait.  It seems that the MiG/NMiG issue has been largely 
resolved, so it may be possible to move into some other issues.

Patches and samples should always be passed to the host.  Examples: 
Spectrasonics Atmosphere does not use host's Bank and Patch functions.  Native 
Instruments Reaktor DXi does pass Bank and Patch info to SONAR, but Reaktor 
VSTi does not to Cubase.  There is no way to access Reaktor .Ens files in 
either host.  Arturia's CS80V and Minimoog V do not use host's Bank and Patch 
functions.  Native Instruments Kompakt/Kontakt and many other samplers do not 
allow change of samples from the host.

In regard to Patch, Bank, and Ensemble searching.  It would be nice to have a 
uniform search method whereby a synth could use preconfigured SDK code to have 
a folder searched for Patches (if there are individual patches created as in 
the case of Free Alpha mentioned below), Banks, and for synths such as Reaktor 
- Ensembles.  Perhaps this code can be used for as many levels of such building 
blocks there are in a synth with the names passed on to the host. This folder 
search could be provided for samples in samplers as well.  Gigastudio has a 
superb search function.  LinPlug Free Alpha does this for patches.  All of its 
patches are in a folder which is scrolled through from its interface (though 
the list of patches should be accessible from the host).

From the host side, this may require dynamically allocating the appropriate 
number of list controls/droplists to match the number required by the synth.  
For example, Reaktor would require Ensemble, Bank, Patch, whereas FM7 would 
require Bank and Patch.  A sampler may require Folder (where the sampler passes 
a list of folders that the user has pre-selected which contain relevant 
samples), Bank, Patch.  Perhaps it would not need to be dynamic.  A control 
which could be greyed out for synths such as FM7, but which would be active for 
Reaktor Ensembles, or a sampler's Folders (as in my above example) may be 
sufficient.

Mouseless synth access should be possible for the most basic functions.

Other related posts: