VSTHost Version History
=======================

Before V1.54, VSTHost's history could only be found on KvR (see 
  http://www.kvraudio.com/product/vsthost-by-hermann-seib/news
for details); since I can't expect that everyone knows this, I'll keep track
of the changes here, too.
You can mentally add "Lots of bug fixes and internal changes" to each list of
changes; I won't explicitly state that each time :-)

V1.58
=====

Release Date: 2026-??-??
Changes:
- weird little peculiarity fixed: if "Minimize to SysTray" was set, VSTHost was
  minimized and closed in minimized state, the next start would produce an
  invisible VSTHost window - but only if opened from the command line. Starting
  from Explorer worked just fine.
- Ableton Link integration started;
  currently, only a very loose coupling (BPM and Start/Stop Sync) is done.
  VSTHost's Wave/MIDI player system isn't prepared for lead-in settings
  (negative times), so synchronizing with Link's quantum-based play times isn't
  yet possible. I'm working on it.
- Moved manifest ID 1 to 2 in all executables to make them work even if 
  PreferExternalManifest=1 is set in the registry; slightly experimental
- new menu entry "Performance / Update I/O" makes it configurable whether
  loading a performance changes the I/O settings
- The "Special Filter" of the Midi Device Filter Settings did not retain the
  settings on closing the panel
- Copying InputMap and Output map from master to slave settings enabled
- Cured a long-standing nagging little bug that caused some bridged PlugIns'
  editor windows to come up with a zero size
  (actually, it's a bug in the PLUGIN, but who cares ...)
- Added built-in Chorus and Flanger effects.
  Both still very much experimental.
- SynthEdit-generated VST3 PlugIns could not be started; corrected
- VST3 resizable editor windows didn't resize correctly if the PlugIn
  waits for an onSize() call; should be corrected, but there might be
  repercussions from VST3 PlugIns that do NOT require onSize() when
  changing the window size ... Steinberg's documentation leaves a lot to
  be desired in this area (I mean, "The Plug-in can call
  IPlugFrame::resizeView () and cause the host to resize the window.
  Afterwards in the same callstack the host has to call IPlugView::onSize()
  if a resize is needed (size was changed)." ... what does "in the same
  callstack" mean? Before returning from resizeView()? Sure hope so ...)
- VST3 SysEx handling in 64bit builds corrected
- VST3 SDK 3.7.7-generated PlugIns using VSTGui4 could not be loaded;
  corrected
- CLAP PlugIns can be loaded.
  CLAP isn't very mature yet, but basic support is relatively complete.
- Multiple MIDI Devices with the same name can be used now
- Added ARM64 and ARM64EC builds to the arsenal - VSTHost can be run natively
  on Windows ARM64 now. Will this be an interesting path in the future?
  We'll see. I certainly hope so; it's quite an intriguing hardware/software
  platform.

V1.57
=====

Release Date: 2021-04-03
Changes:
- Joystick and Keyboard sent wrong (N)RPN ID LSBs; corrected
- Builtin audio PlugIns (PassThru, Mixer, Reverb) didn't work in the
  double-precision version; they do now.
- double-precision version now defaults to double-precision processing in
  loaded PlugIns if they can do it
- Builtin Reverb can use stereo input now (default is mono, like before)
- "Stereo to Mid/Side" and "Mid/Side to Stereo" builtin PlugIns added
- builtin PlugIns can have their own .vstxml file in the Data directory
- keep configured MIDI devices in list, even if they can't be opened
  (so that unattached USB MIDI devices don't ruin the setup)
- added ShowParmIndex=n setting to the [Settings] section in VSTHost.ini
  for people who want to see the parameter index on the PlugIns' parameter
  windows
- manual changes on a PlugIn's Parameter window (fader or text entry) weren't
  treated as automations, so didn't trigger Parameter->MIDI; corrected
- Wave device names ending in blank characters caused problems; should be
  corrected
- VST3 resizing code led to an endless loop; corrected
- PlugIn directory initialization only searched for the VST2 standard path 
  for VSTHost's own "bitness"; now it uses VST2 and VST3 standard paths for
  32- and 64-bit (if applicable). Additionally, the PlugIn Path Selection
  dialog now has a "Standard" button to make sure the available standard
  PlugIn paths are part of the list.
- "PlugIn/New Instance" menu item added
- corrected a long-standing virtual MIDI keyboard refresh error; also,
  clicking on the right edge of white D and F keys didn't work correctly.
  Does now.
- Donation dialog contains a web browser window now. Allows directly making
  a donation from within VSTHost. For environments where this doesn't work
  (WINE, for example), a fallback to the old method is provided
- Int32MSB16/18/20/24 and Int32LSB16/18/20/24 ASIO sample types work
  better now
- ASIO driver unloading didn't release buffers before closing; corrected
  (funny that it took about 15 years until I came across a driver that
  reacts badly to that)
- Timer added to MIDI->Parameter types
- Cursor Up/Down/Left/Right didn't work on the keyboard bar; corrected
- /noavrt command line option added (automatically set if running in a
  WINE environment, as this would kill VSTHost otherwise)
- SysEx window didn't split normal MIDI messages correctly
- improvements to MIDI<->Parameter windows
- "Catch" Midi->Parameter mode added
- "HUI Fader/Encoder/Switch" MIDI<->Parameter types added
- "Performance / Reload" didn't work correctly when turned on
- starting VSTHost in a slave mode for the first time copies the normal
  version's settings
- added "Performance / Reuse Wave/MIDI Files" setting; to change the default,
  the DefReuseWavMid .ini-file entry and the /noreusewavmid command line 
  option have been added
- FabFilter VST3 PlugIns crashed VSTHost;
  FabFilter VST2 PlugIns couldn't save or reload their data.
  Workarounds added for both.
- "Proportional" Midi->Parameter mode added
- Signature added to main toolbar and speed dialog
  BPM and Signature are permanent now (reloaded upon start)
- "Parameter PassThru" built-in PlugIn added
- "File / Categorize PlugIns" menu item added
- OpenSoundControl support corrected and enhanced a bit
- Level to Parameter builtin PlugIn added
- builtin Submixer improvements for loading/saving in performances

V1.56
=====

Release Date: 2016-12-09
Changes:
- bridged PlugIn unloading caused a 5-second delay; corrected
- Wave Device dialog pre-loaded all ASIO drivers to get their details;
  now, this is only done when a driver is selected and its details
  have not been fetched yet
- "loadUnmodified" added to possible effCanDo settings to force bank reload
  into PlugIns even if the bank contents are unchanged
- PlugIn scan can exclude complete directories now
  (see section on Exceptions.ini in the manual)
- bridged PlugIns didn't always report PlugIn type and product string correctly;
  a full PlugIn scan should fix the PlugIn list
- bridging performance and stability improvements
- Exclusions can be added to PlugIn Path searches by prefixing the name with a <

V1.55
=====

Release Date: 2016-11-05
Changes:
- added "isSingleton" to Data\effCanDos.ini (see this file for details)
  for PlugIns that exhibit severe problems if more than one instance is
  loaded into the same process
- standard version uses VST SDK 3.6.5 now;
  Win98 version uses VST SDK 3.5.1, since 3.5.2 is uncompilable with VS98
- VST3 double precision audio was effectively disabled; corrected
- various VST3 improvements
- Parameter window wasn't updated correctly
- MIDI Controller dialog didn't display controller names correctly in the
  VS2008 builds
- less obtrusive "Donate"-Dialog from now on
- Slave mode didn't work since V1.49; corrected
  Attention: using this also needs Legree updated to V1.08!
- if a loaded USB MIDI device is detached and reattached, VSTHost automatically
  reconnects to it IF its device interface name can be determined
  (still rather experimental)
  Requires drivers that support DRV_QUERYDEVICEINTERFACE (not all do)
- connectors between PlugIn main windows are customizable now
- builtin Reverb PlugIn added
  (adapted FreeVerb v3, originally done by Jezar @ Dreampoint, generously put
   into the public domain; http://www.dreampoint.co.uk was used in the readme
   but that is not working any more. archive.org, however, has copies containing
   FreeVerb from 2000 and 2001)
- bridging performance and stability improvements
- I/O changes during performance loading are processed immediately so that
  channel-specific links are kept intact
- builtin Audio Passthru PlugIn added
  (can be used to set up elaborate channel splits / concentrators)
- builtin Submixer PlugIn added
  (setting special channel configurations using the "Chain after" dialog doesn't
  work yet)
- added pre-chained MIDI PlugIns and "All linked PlugIns" to possible sources
  for a PlugIn's Remote Control
- fixed a bug that ruined compatibility with Voicemeeter (with or without Banana :-)
  and other ASIO drivers that use IEE754 32-bit floating point format buffers

V1.54
=====

Release Date: 2013-06-25
Changes:
- Fixed incompatibility with ReaJS and other PlugIns that don't pass back a
  chunk before one's been loaded
- Restructured File menu and added "Mute Performance On Load"
- Added "Delete" button to Load Performance and Save Performance As dialogs
- VST3 PlugIns' custom context menu could kill VSTHost; corrected
- VST3 MIDI Controller -> Parameter ID remapping didn't work correctly
- performance loading didn't work correctly for Shell PlugIns
  (only if the previously loaded performance did NOT contain them)
- MIDI->Parameter output mode "Relative" added
- new MIDI->Parameter types "Note On/Off Velocity" and "Note On/Off Key" added
- new MIDI->Parameter modes "From" and "To" added (for defined triggers)
- added Pre-/Post-Fader recording
- added soft clipping
- bridge program stability increased;
  robustness against bridge program failures increased;
  bridge speed improvements
- added some REAPER-style PlugIn calls and host callbacks;
  see http://www.reaper.fm/sdk/vst/vst_ext.php for further details.
  Presumably only of interest for a few PlugIn developers.
- added PlugIn Editor window support for VST Module Architecture PlugIns.
  NB: this is limited to the few VSTMA PlugIns I could find on the 'net.
  If you got others which use additional features of Steinberg's over-the-top
  XML UI specification, please let me know.
- Added SysEx window to list of possible MIDI inputs for PlugIns
- PlugIns can send MIDI to SysEx window, and SysEx messages are passed from
  SysEx window to PlugIns
- PlugIn Parameter window remodeled to match Cubase's getParameterProperties()
  support; this might spell "t-r-o-u-b-l-e" for PlugIns that were modeled after
  VSTHost's implementation, which was done in 2006...
- added manual to distribution (not for betas)
  Now if only I could force people to READ it...
- added "Double x64" distribution for people with too much CPU time

V1.53
=====

Release Date: 2013-01-07
Changes:
- 32-bit version created with Visual Studio 2008 instead of Visual Studio 6 for
  added UI capabilities; for Windows 98, there's a separate version available
  now that's still done with VS6.
- Loading of similar performances is much faster.
- PlugIn scans remember bad PlugIns and don't retry them.
- MIDI Clock can be sent to configurable MIDI devices.
- PlugIn menu bar break can be configured.
- PlugIns can be "labeled" by double-clicking on the PlugIn frame's
  lower text line.
- Pressing Ctrl while loading a PlugIn toggles the /runBridged
  command line option.
- Pressing Ctrl+Shift while loading a PlugIn toggles the /forceBridged
  command line option.
- Corrected Auto-Stereo option for Mono PlugIns.
- Expanded .vstxml file capabilities.
- Manual can be opened from menu if downloaded into VSTHost directory.
- MIDI->Parameter conversions enhanced.
- MIDI File Player can load .kar files now (small improvement).
- Added built-in PlugIns for common MIDI configuration tasks.
- /maxchn=xx command line parameter and MaxChannels=xx .ini file setting added
  for the (rare) setups where more than 32 ASIO I/O channels are needed.
- uses VST SDK 3.5 instead of 3.1 now.

V1.52
=====

Release Date: 2011-09-20
Changes:
- Incoming MIDI SysEx messages killed the x64 versions.
- A bad "optimization" killed MME Wave Input device usage.

V1.51
=====

Release Date: 2011-08-04
Changes:
- SSE2 bug cured that caused ghastly noise when the output to a 24-bit sound
  card needed clipping.
- "Linear Knob mode" implemented.

V1.50
=====

Release Date: 2011-07-14
Changes:
- VST3 handling much more robust now.
- VSTHost uses the VST SDK 3.1 for VST3 PlugIns now.

V1.49
=====

Release Date: 2011-04-04
Changes:
- Performances can be ex- and imported.
- Improved handling for loading PlugIns that have been moved to a new location.
- Rudimentary OSC support.
- Use of SSE(2) when possible and appropriate
- .fxb files are saved and loaded in version 2 format now.

V1.48
=====

Release Date: 2010-11-01
Changes:
- There are two major VSTHost variants now: the normal x86 one (32 bit code)
  and an x64 one (64 bit code), which obviously runs only on 64-bit Windows
  machines. The x64 variant is still rather experimental; I can't guarantee
  that each and every little detail works correctly.
- VSTHost contains its own set of bridge programs now so that you can load
  64-bit PlugIns in the 32-bit program (only in an x64 environment, of course.),
  or 32-bit PlugIns in the 64-bit program.
  JBridge support is still available, but you have to specifically request it
  for a PlugIn, since VSTHost's own bridge programs provide more functionality
  (bridging VST Module Architecture and VST3 PlugIns, for example, unlimited
  number of audio channels, PlugIn pooling, ...).
  If you run into problems using VSTHost's bridge, you can still use JBridge
  instead.

V1.47
=====

Release Date: 2009-11-26
Changes:
- Can load 64-bit PlugIns in an x64 environment through direct JBridge support.
- Wave player supports auto-stereo mode for mono files.

V1.46
=====

Release Date: 2009-10-15
Changes:
- Experimental VST3 support.
- Experimental VST Module Architecture support.
- MIDI filtering and transformations have been expanded and made much
  more flexible.
- Speaker configuration can be done for plug-ins that support it.
- Audio in / out is done through special pseudo-plug-ins now; this permits to
  remove the distinction between "insert" and "send" links between plug-ins.
- Can play .mp3 files (using external mpg123 package - see VSTHost documentation
  for details).

V1.45
=====
Release Date: 2008-01-17
Changes:
- There's a double-precision variant available that uses double precision
  signal paths (might be useful for testing and using double-precision PlugIns).
- French language satellite DLL added - many thanks to Patrice Vigier for this.
- Artvera contributed some skins that can be downloaded from the VSTHost
  web site.
- Improved ASIO channel selection that allows any possible combination of
  input/output channels to be selected.
- PlugIn banks can be saved automatically now, which makes performance
  generation much easier.
- Remote MIDI and MIDI->Parameter conversions now have a "Kill" flag which is
  normally set; if removed, the messages are not removed from the MIDI data
  passed to the PlugIns any more.
- Enhanced scrolling support for the main window.
- Improved compatibility with WINE / wineasio environments.
- Added /local=<DLLname> command line flag to allow the use of a specific
  satellite DLL.
- SysEx window added to allow sending/receiving SysEx messages to/from external
  MIDI devices.
- User Exit DLL for MediaStation added.
- PlugIn menu can be toggled between Display and Filename text.
- DirectSound support added (works in all Windows versions except Vista).
- Added /nomme, /nodsound, /noasio command line flags to suppress the use of
  the corresponding wave I/O method for special environments.
- Added /noft ("No Fault Tolerance") flag for debugging environments; in this
  mode, VSTHost and SAVIHost don't catch any exception, which eases the
  detection of badly behaving PlugIns.

V1.44
=====

Release Date: 2007-07-19
Changes:
- .ini-file handling was broken in Windows 98; corrected.
- Multiprocessor support contained a bug in MIDI handling; corrected.
- Expanded configuration capabilities (see effCanDos.ini and hostCanDos.ini
  in the Data subdirectory).
- VSTHost can load "satellite resource DLLs" now; if a DLL for the local
  language is available, VSTHost uses it (currently, only a German variant
  is provided - if somebody wants to help in translating it into another
  language, just contact me).
  This can be suppressed with the new /nolocal command line option.
- VSTHost can be skinned now; if you don't like the default layout, you can
  roll your own now. Loading of skins can be suppressed with the new /noskin
  command line option.
- Links between PlugIns can be created/modified/deleted with the mouse on the
  main window now.
- The main window is scrollable now to allow setups that are larger than the
  screen.
- PlugIns that can process double precision audio streams can be tested now.
- Finally, for people who don't want to read the manual, VSTHost defaults to
  a running audio engine now, so no more "Why is there no sound in VSTHost?"
  questions...

V1.43
=====

Release Date: 2007-04-05
Changes:
- Joystick support enhanced.
- XML parser enhanced; VSTHost can export .vstxml files.
- Each plugin can be remote-controlled; the following settings can be changed
  by MIDI messages:
    * Program
    * Bypass
    * Mute
    * Close (dangerous!)
    * Next Program, Previous program
- Bank/program loading made more flexible; if the format of a loaded bank
  doesn't match the PlugIn settings, a Yes/No message box allows to override
  the abort (special for new Waldorf Wave 2.V).
- Plugins that try to set the host's speed (like Tap!) can do that now.

V1.42
=====

Release Date: 2006-10-30
Changes:
- Joystick support added; this allows to use up to 2 joysticks to generate
  MIDI messages for plug-ins and/or MIDI Output devices.
- XML parser added; VSTHost understands .vstxml files now and uses them in the
  Parameter editing windows (not including group definitions).
- BPM can be loaded from the performance now; this behavior can be toggled.
- MIDI->Parameter conversion didn't work for Plug-ins that don't expect MIDI;
  corrected.
- Added lots of code that should allow VSTHost to terminate in an orderly
  fashion (i.e. without killing the ASIO drivers or such) if a plug-in crashes
  badly, and catch recoverable errors if possible.
- Entering registration data in daHornet did not work; corrected.
- Menus in Zebra 2 did not work; corrected.

V1.41
=====

Release Date: 2006-10-02
Changes:
- VSTHost can now scan PlugIn folders and provide a menu of known PlugIns,
  both fast and exhaustive (user-selectable).
- "Chain After..." can be used to set up Audio and MIDI links now, if the
  PlugIns allow that.
- MIDI Player can be synchronized to Wave Player.
- "BPM" is a new target for remote control.
- The MIDI buttons in the main Plugin windows double as MIDI In/Out activity
  indicators now.
- Most PlugIn windows have a context menu now.
- MIDI Connections between 2 PlugIns are shown now on the main window.
- Invalid parameter settings are displayed in Red on the Effect Parameter
  window... but invalid parameters are stored and loaded without correction
  (for Trollo).
- MIDI communication between 2 PlugIns works instantly now (previous version
  had a delay of 1 buffer).
- Stereo Input/Output ASIO Channel Selection corrected.
- Unused ASIO drivers should be released now.
- BPM changes can be directly entered on the main toolbar now.
- "Player Sync" setting finally provides a simple transport control
  (i.e. the hosts can now tell the plugins that they are playing at a certain
  position); makes it easier to run sequencer/tracker plugins in an orderly
  fashion.
- Finer-grained Priority selection.
- Wave Player files can be unloaded.

V1.40
=====

Release Date: 2006-06-12
Changes:
- Simple MIDI Player that can be routed to PlugIns and/or MIDI Output.
- "Audio Thru" setting that allows to define whether Audio Input is directly
  sent to Audio Output.
- When no Wave Input device is loaded, 2 channels of silence are used.
- I/O Remapping shows more meaningful device channel names.
- Wave Player had a problem if used without a Wave Input device; corrected.
- Wave Player has separate Autorepeat settings for playing and rewinding now.
- PC keyboard can be captured and sent to simulated MIDI keyboard now, even
  if this doesn't have the focus (or is hidden); can be toggled with F11.
- MIDI Panic button added.
- Stereo Input/Output ASIO Channel selection works again.

V1.39
=====

Release Date: 2006-05-08
Changes:
- Bypass button / menu entry added for PlugIns, in addition to Mute.
- Wave Player can now be inserted before or after the PlugIns;
  this means that you can send wave files through effects.
- Wave Player Auto-repeat introduced a little delay; corrected.
- Load / save file selection from PlugIns sometimes failed; corrected.
- Sending MIDI messages sometimes caused problems; corrected.

V1.38
=====

Release Date: 2006-04-03
Changes:
- Added level meters to the effects' main windows.
- All level meters can display RMS or peak levels.

V1.37
=====

Release Date: 2006-02-06
Changes:
- MIDI <-> VST Parameter mapping has been enhanced.
  Practically all aspects of normal MIDI messages can now be used.
- VST SDK 2.4 support
  NB: while the programs should support all plugins written to the new
  specification, they do NOT call the 64-bit processDoubleReplacing()
  method, even if it's available. The reason is simply that the internal
  signal processing is done with 32-bit floats; it would mean senseless
  conversions to and from 64-bit to cover the 64-bit functionality.
  VSTHost is designed to run on older and slower machines, too, and I don't
  want to place heavy burdens on these by doubling all buffer sizes for a
  negligible improvement in sound quality.

V1.36
=====

Release Date: 2005-12-12
Changes:
- VSTHost now uses a complete Bank/Performance concept, which allows you
  to define up to 16385 banks of up to 129 performances each. Nearly all
  of them can be selected by remote control operations.
- Switching between different performances which use the same set of Plug-ins
  is much faster now, as Plug-ins can be reused.
- MIDI <-> VST Parameter mapping has been implemented. This allows you to map
  incoming MIDI messages to VST automation parameters, and parameter changes
  to outgoing MIDI messages, for Plug-ins which can't handle that themselves.
  Various absolute and relative modes are implemented (outgoing relative CCs
  are still a bit experimental, however).
- Shell Plug-ins support enhanced.

V1.35
=====

Release Date: 2005-10-13
Changes:
- The "Slavery Suite" has been enhanced; it is now optional whether a VSTHost
  slave is closed when the corresponding Master plug-in is unloaded.
- Shell plug-ins can finally be loaded (i.e. the Waves plug-ins work).

V1.34
=====

Release Date: 2005-10-03
Changes:
- "Assign Output Channels" has been added to the Effect menu; this allows
  redirection of the effect's output channels to any of the available Engine
  output channels.
- The "Slavery Suite" has been enhanced; it is now possible to control up to
  18 simultaneous VSTHost Slaves from one master host.
- The sample rate can now be changed if the wave output device allows it.

V1.33
=====

Release Date: 2005-09-19
Changes:
- VSTHost Bank Files
  VSTHost can store its programs (collections of VST plugins) in bank files now,
  in addition to the "Internal Bank", which is registry-based like in the
  previous versions.
- Slave Mode
  VSTHost can now operate in "Slave Mode"; together with a little VST(i) plugin
  that's loaded in a "Master" VST host (this can be another instance of VSTHost,
  or Cubase, or anything else), it can be completely remote-controlled.
  See http://www.kvraudio.com/forum/viewtopic.php?t=99622 for the background
  story.
  The PlugIns can be found here:
  http://www.hermannseib.com/english/vsthost.htm#SlaverySuite
- Improved Effect Chains
  Some bug fixes here; input channel assignments work much better now.

V1.32
=====
Release Date: 2005-08-15
Changes:
- Program Selection
  VSTHost can store up to 129 programs now. A "program" in this case is a
  collection of VST plugins, their settings, and all chains.
  Program 0 is the Default program which is loaded upon program start if the
  "Reload Program" menu entry is not checked. This program is the only one that
  is not MIDI-selectable (see Remote Port/Channel below).
- Improved Effect Chains
  In previous versions, plugins could have multiple outgoing connections, but
  only up to one incoming connection; this restriction has been removed now,
  so you can set up "concentrating" chains, too. The only remaining restriction
  (which will stay) is that you cannot set up recursive signal paths.
  This also means that the effect's input assignment method was redesigned; for
  each chain set up for an effect, you can separately define the input channel
  assignment.
- Improved MIDI handling
  This version can handle as many MIDI Input and Output ports as there are
  available. Since there might be some combinations that lead to a MIDI
  feedback loop, MIDI Thru can be separately set up for each loaded MIDI
  Input port.
- Remote Port/Channel
  On the MIDI Device selection dialog, you can also define one MIDI Input Port
  as the "Remote Port", and eventually set up a "Remote Channel".
  This Remote Port has to be in the list of opened MIDI Input ports, of course.
  If you don't define the Remote Channel (leave it at the default setting of
  "---"), all channels of this port are interpreted as Remote Channels.
  The Remote Port/Channel can be used to change the current Program (see above)
  via MIDI Program Change messages.
- Keyboard Bar MIDI Output
  The keyboard bar can now be configured to directly send MIDI messages to all
  or selected MIDI Output ports, in addition to sending them to the various
  plugins.
- Effect MIDI Input / Output
  For each effect, you can define the MIDI Input ports it listens to, and the
  MIDI Output ports (or other plugins) it sends to.

V1.31
=====

Release Date: 2005-08-02
Changes:
- Improved Wave File Player/Recorder.
  They are separate entities now; i.e. you can playback one file and record
  its output, plus anything generated the Audio Input and/or loaded
  VSTis/effects to another file.
  It still follows a simple "tape recorder" paradigm and both player and
  recorder are inserted into the audio stream just before it is sent to the
  output device. Ping-pong recording is possible now.
- A "just for fun" feature - like on an analog tape recorder, you can listen
  to the audio data while it's rewinding or fast forwarding.
  The Winding audio level can be adjusted; at -60dB, the feature is turned off
  (saving some CPU cycles).

V1.30
=====

Release Date: 2005-07-19
Changes:
- Added a Wave File Player/Recorder. It can playback and record .WAV files in
  any bit rate up to 32 bit plus floating-point, with a configurable number of
  up to 32 channels.
  It follows a simple "tape recorder" paradigm and is simply inserted into the
  audio stream just before it is sent to the output device.
  The Master window allows additional control over the Wave Player/Recorder.

V1.29
=====

Release Date: 2005-06-14
Changes:
- GUI changed.
  An effect's main window can now be used to change a lot of the effect's
  settings ("lots of colorful buttons").
- Chaining improved. There are now two ways to remove an effect from a chain:
  1. The "Unchain" command, which removes it entirely from the chain;
     if there are any effects chained AFTER the unchained effect, they are
     chained to the effect BEFORE the unchained effect (if any).
  2. In the "Chain After" dialog, you can unselect the effect, in which case
     the effects chained after it are NOT re-chained.
- Chaining visualized.
  Primitive - a yellow line between 2 effects indicates an Insert chain,
  a cyan line indicates a Send chain.

V1.28
=====

Release Date: 2005-04-29
Changes:
- Can, in theory, load Shell plugins. This is untested.
- The Chaining mechanism has been enhanced. You can now chain multiple
  effects to an effect's output (fan-out is only limited by your PC's
  capabilities), and you can designate the chain as an "Insert" or "Send"
  chain.
  The terminology should be easy to understand for people who have experience
  with mixers, but here's a short explanation:
  * When you chain an INSERT effect to an effect, the original effect's output
    is piped into the insert effect only.
  * When you chain a SEND effect to an effect, the original effect's output
    is piped into the SEND effect _and_ sent to the Wave output (unless another
    INSERT effect is chained to the original effect).
  Future versions will aim to visualize this in a better way.

V1.27
=====

Release Date: 2005-03-29
Changes:
- In the Wave device configuration dialog, you can enter arbitrary buffer
  sizes between 16 and 11025 by hand.
- The MIDI output from plugins can be routed to specific other plugins and/or
  the configured MIDI output device ("Effect/MIDI Output..." menu entry).
  In previous versions, MIDI Output was simply sent to all other loaded PlugIns
  and MIDI Out; the default behaviour from now on is to send to MIDI Out only.

V1.26
=====

Release Date: 2005-02-28
Changes:
- The "Edit Parameters" window has been completely redesigned.
- Extensive Reassign capabilities; you can define the input channels for each
  loaded effect that has inputs, the overall input channel assignment, and the
  overall output assignment.
- Additional command line flags:
    /noaudio - prevents loading of the Wave devices.
    /nomidi - prevents loading of the MIDI devices.
  These have been added since there are conditions where VSTHost can die upon
  program start, such as:
  * Changed sound card, but the old ASIO driver is still there.
  * Ruined Windows MME configuration, where the default Wave Mapper can't be
    opened or closed correctly.
  This allows VSTHost/SAVIHost to come up even if something in the current
  configuration is terribly defective. In previous versions, you had to clean
  the registry in such cases.
- The ASIO buffer size detection is much more robust and "intelligent" now.

V1.25
=====

Release Date: 2005-02-06
Changes:
- Bug fix: FL Studio 5 and Spectrasonics Atmosphere have been reported not to
  work with the previous versions - now they do.
- The effects' edit windows can finally be scrolled if their size is reduced;
  plus, there's a menu option that lets you turn off the automatic size
  adjustment, since some effects simply don't tell the truth when asked how
  big they want their edit area to be.
- Added a little level meter to the status bar; can be turned off from
  the menu.
- In plugin chains, the previous version always routed as many channels from
  plugin 1's output to plugin 2's input as there are ASIO input channels;
  now it routes as many channels as plugin 1 can deliver.

V1.24
=====

Release Date: 2005-01-29
Changes:
- In the Master window, a volume slider has been added.
- When using an ASIO driver that provides more outputs than inputs and more
  than one plug-in, the previous versions could produce crackling noise on
  unused channels; corrected.
- Nasty bug fix - mono effects / synths could cause sudden death of the program
  (see http://forum.hermannseib.com/viewtopic.php?t=34 for details).
- Directly intertwined with that, mono output is now automatically converted
  to pseudo-stereo (i.e. simply output on both channels).

V1.23
=====

Release Date: 2005-01-18
Changes:
- Remembers all window positions.
- New "Master" window added (VU meter at the moment, will be expanded in
  future versions).
- The main effect window has been minimized to bare essentials; for people
  interested in the details of the PlugIn, an Info Window has been added.
- Improved clipping behavior (previous versions created disastrous bzzzz
  sounds if the output level went over +1dB).
- Performance enhancements (some assembly code instead of C++).
- Display of peak level in the status bar (updated every 750mS).

V1.22
=====

Release Date: 2004-12-17
Changes:
- Instead of the MIDI Channel Mask, a much more flexible MIDI Filter concept
  has been implemented (borrowed from Miditrix) that allows you to filter
  out practically any kind of MIDI message; can be separately set for each
  loaded Effect/VSTi.
- Fixed a bug that emerged upon MIDI Program Change message processing
  (see http://forum.hermannseib.com/viewtopic.php?t=27 for details).
- The BPM reported to the loaded effects can now be set and (de-)activated
  (see http://forum.hermannseib.com/viewtopic.php?t=24 for details).
- Some performance enhancements.

V1.21
=====

Release Date: 2004-12-09
Changes:
- Use all available output channels now, if no stereo pair is selected.
- Can adjust the process priority.

V1.20
=====

Release Date: 2004-11-23
Changes:
- Added a workaround for bug in Reaktor 4 VSTi.
- Load/save of .fxp's now works for formatless chunks.

V1.19
=====

Release Date: 2004-11-18
Changes:
- "Auto Edit Mode" to automatically open the Edit window of a Plug-in.
- Drag & Drop support to automatically open Plug-ins when their main
  .DLL file is dropped onto VSTHost's main window.
- Bug fix: Sample rates other than 44.1kHz are now supported
  (in previous versions, you could set them through the ASIO Driver's
  Control Panel, but they were not passed to the effects).
- Keyboard bar is now resizable / dockable.

V1.18
=====

Release Date: 2004-11-12
Changes:
- You can now load/save programs from/to .fxp files.
- MME Wave device support has been sped up quite a bit.
- The approximate CPU percentage spent in buffer processing is shown in the
  status bar.

V1.17
=====
... lost in the mists of time...

V1.16
=====

Release Date: 2004-10-26
Changes:
- You can now select the used ASIO channels; i.e., you're not limited to the
  first two channels any more. To select them, a new dialog has been added
  that can be called from the menu as "Devices / ASIO Channel Selection".

V1.15
=====

Release Date: 2004-10-12
Changes:
- Improved MIDI handling.
- Improved MME Wave handling.
- Changes between MME and ASIO drivers work much better now.

V1.14
=====

Release Date: 2004-10-07
Changes:
- Improved plugin handling - can handle a lot more plugins that tended to die
  in the previous versions.
- Improved user interface - adds toolbar buttons for Next / Previous program.

V1.13
=====

Release Date: 2004-09-17
Changes:
- Better MIDI handling.
- Plug-ins can be chained (and just that, no mixing, pre-/post-fader stuff
  or whatever).
- Includes a little on-screen MIDI keyboard.
- Various internal changes.

V1.12
=====
... lost in the mists of time...

V1.11
=====

Release Date: 2004-04-06
Changes:
- SysEx bug fixes.

V1.10
=====

Release Date: 2004-01-02
Changes:
- Basic ASIO 2.0 support added.
- Some UI changes.

V1.09
=====

Release Date: 2003-11-16
Changes:
- Covers VST 2.3 features.
- Allows sending/receiving SysEx.
- Sends keystrokes to effects.
- Minor UI and internal changes.

V1.08/07
========

... lost in the mists of time...

V1.06
=====

Release Date: 2003-01-16
Changes:
- Allows to set received MIDI channels for each loaded plugin.

V1.05
=====

Release Date: 2002-07-16

That's when VSTHost was first mentioned on KvR - I didn't think about keeping
a version history before that, since I had just sent some copies to interested
persons upon personal request. This version, as far as I remember, was the
first that I uploaded to my web site.

How should I have known that I'd compile VSTHost's history over 10 years
later, after far more than a million(!) individual downloads...
... and VSTHost still lives on :-)