License agreement VSTHost

Please read carefully through the following software licensable agreement. By installing the software, you explicitly agree to be bound by the conditions of this agreement. If you do not accept the conditions of this agreement, you may not use the software.

This free VSTHost is intended exclusively for private use on a single workstation. You may copy the complete program package and pass it on to others for private use only.

The free VSTHost may not be used for commercial or professional purposes.

§1 Subject-matter of agreement

1. This agreement refers to the computer programs, program specifications and user manual (hereinafter called "Software").
2. The user is granted the right to use the Software free of charge.
3. The computer program described in the user manual conforms to the latest technological standards. Hermann Seib (hereinafter called "Licensor") wishes to point out, however, that the latest technological standards do not guarantee software programs to function entirely without error in all applications and combinations.
4. The Licensor only offers this Software for downloading from the user’s server. The Licensor is not responsible for its transfer to the user’s computer.

§2 Scope of application

The Licensor grants the software user (hereinafter called "Licensee") a single, non-exclusive, personal right (hereinafter called "license") to use the Software on one computer system and in one location only as detailed below:
1. The Licensee may install the Software on a private Personal Computer, load it into the user memory and run it accordingly.
2. The Licensee may only use the Software for strictly private purposes. Institutes of education and public utilities are classed as commercial or business premises. Similarly, the Software may not be used in a home office for commercial or business purposes.
3. The Licensee may copy the complete Software package in order to pass it on to a third party provided he/she does so free of charge, leaving the brand name, logo and copyright note intact and drawing attention to these conditions of use.
4. The Licensee may make one backup of the Software.

§3 Special restrictions

The Licensee is forbidden in particular
1. to reproduce the Software in whole or in part on the same or other media outside the limits indicated in §2;
2. to separate the components of the software in order to use them in more than one computer;
3. to modify, translate, reverse-engineer, decompile, disassemble or generate works derived from the Software, or to reproduce, translate or modify the written material or generate works derived therefrom
4. to pass on, rent or lease the Software to a third party for business purposes, or to use it in any other form for commercial purposes. This also applies to copies of the Software;
5. to pass on the Software or copies thereof to a third party in return for payment. This software package may not be distributed on commercial data media (e.g. sampler CDs, shareware CDs, OEM versions) without the permission of Hermann Seib.

§4 Distribution of rights

1. This Software is protected by copyright. All rights arising from the copyright are the property of the Licensor. The copyright covers in particular the program code, documentation, appearance, structure and organisation of the program files, program name, logos and other forms of representation within the Software.
2. The Licensee is only granted the right to individual, private use of the Software. This does not imply conferral of any rights to the Software itself. The Licensor reserves all rights of publication, reproduction, editing and utilisation.

§5 Term of agreement

1. The agreement is concluded for an indefinite period. The Licensee’s right to use the Software shall end automatically without notice in the event of non-compliance with any of the conditions of this agreement.
2. On termination of the right of use, the Licensee is obliged to uninstall the Software from his/her computer system. He/she is also obliged to destroy all copies of the Software together with all written material and all copies thereof, including any modified copies.

§6 Warranty

1. The right to use this Software is granted to the Licensee free of charge. It is not therefore subject to any sales or warranty legislation. The Licensee must accept this program in its currently available form, and is consequently not entitled to any warranty claims.

§7 Liability

1. The Licensor guarantees the fitness of the product for the contractual purpose, as described in the program specification and user manual. No liability is accepted in respect of the suitability of the Software for the user’s purposes and its compatibility with the user’s existing software.
2. Damage claims against Hermann Seib are excluded irrespective of legal basis, particularly on grounds of delayed performance or impossibility, neglect of advisory and accessory contractual obligations, pre-contractual duties, defective performance, violation of third-party industrial property rights and unlawful acts, unless Hermann Seib has acted with intent or gross negligence or unless the damage claims result from the failure to ensure a warranted quality.
3. Insofar as grounds for liability on the part of Hermann Seib exist, the damage claim shall be limited to the extent of the foreseeable damage. Compensation for consequential damage such as loss of profit is excluded in all cases. This damage limitation clause shall not apply if the event giving rise to the damage was caused with intent or gross negligence by one of its legal representatives or senior employees.
4. All damage claims against Hermann Seib shall expire by limitation six months after the receipt of the Software. This does not apply to claims based on unlawful acts.
5. These provisions do not apply to claims based on product liability legislation.

§8 Damage minimisation obligation

1. The Licensee is explicitly reminded that he/she must make backups of the data on his computer at adequate, regular intervals (normally once a week). Failure to do so shall constitute a breach of the Licensee’s damage minimisation obligation, and Hermann Seib shall not be liable for any resultant damage.
2. The Licensee is explicitly reminded that he/she must not use the Software in hazardous environments in which non fault-tolerant operation is imperative (e.g. high-risk activities such as the operation of nuclear power installations, defence systems, air navigation or communication systems or life-support machines). Failure to observe this condition shall constitute a breach of the Licensee’s damage minimisation obligation, and Hermann Seib shall not be liable for any resultant damage.

§9 Contractual amendments and protective clause

1. These conditions of use apply in the currently applicable version as published in the website [www.hermannseib.com].
2. These General Conditions of Use shall still form part of the contract even if they differ from those of the Licensee, even where not expressly contradicted by Hermann Seib.

§10 Choice of law

1. All legal relations between the parties, including the law of tort, shall be subject to the law of the Republic of Austria. The place of jurisdiction shall be Vienna.

§11 Final provisions

1. All supplements to this contract, including this clause, must be made in writing.
2. Should any provision of this agreement be or become invalid or unenforceable, this shall not affect the legal validity of the other provisions. In this case, the invalid or unenforceable provision shall be replaced where possible by a legitimate provision with an equivalent commercial intent.
3. This agreement is subject to the law of the Republic of Austria. The place of jurisdiction shall be the domicile of the Licensor. All matters relating to the validity, interpretation and fulfilment of the contractual provisions shall be settled at the legal venue of the Licensor in the Republic of Austria.

If you wish to contact the Licensor for any other reasons, please send a mail to office@hermannseib.com or write to:
Hermann Seib, Donaufelderstraße 57/1/2, A-1210 Wien, Austria, Europe.


VSTHost Overview

By Hermann Seib (program author):

VSTHost is a demonstrational Windows program I started in 2002 in order to comprehend the inner workings of VST plugins - VSTHost. It's a VST-compatible host that doesn't really do anything except:

loading VST effects (aka "plugins")
parameterizing / editing them
sound output for VSTis
MIDI-input and -output
loading / saving .fxb files
I/O through either Windows MME or ASIO drivers

The important part of the program is an implementation of a VST host in form of 2 (C++) classes:

CVSTHost

This implements the audio callback needed by an effect plugin as a neatly encapsulated VST host class. This is practically platform-independent code. The few platform-specific things are encapsulated in...

CEffect

This encapsulates a VST effect, as loaded by the VST host. This class isn't fully complete - since I don't have a Mac, I've only included the Windows code. If a kind MacIntosh programmer could fill out the few Mac-specific sections and send it to me it would be great and, of course, publicized here!


System Requirements

VSTHost require a PC running Windows operating system ...

Bla bla ... not sure what the minimum spec is ...


VSTHost Specifications

ASIO 2.0 support
VST 2.3 support

Number of effects/modules that can be loaded?

Don't really know what the spec is ...


Installation

1. After downloading vsthost.zip unzip it.. er that's it ..

2. Run vsthost.exe to start the program.

RECOMMENDED:

If you do not have an ASIO driver on your system, get ASIO4ALL from

http://michael.tippach.bei.t-online.de/asio4all/

An ASIO driver generally makes a HUGE improvement to latency (compared to Windows MME drivers). Latency is the time difference between when a .......


Quick Start

1. Download VSTHost.
2. Unzip it to.
3. Get ASIO drivers (if you do not have them on your system) from:

http://michael.tippach.bei.t-online.de/asio4all/ and install them.

4. Start VSTHost by clicking on vsthost.exe.
5. Select Devices>Wave...

If you do not have an ASIO driver installed or your system cannot cope with ASIO drivers, you will be stuck with the default MME drivers (eg. MME: Wave Mapper) but in almost all cases an ASIO driver will give superior performance - so choose the ASIO device if it shows up in the selection box as an output port.

If you have chosen MME devices for both the input port and the output port you can set the buffer from this box (see ASIO buffer below if you are using an ASIO output driver).

The buffer size depends on the speed of your system and what you are doing with VSTHost (how many effects you wish to load and the complexity of the effects) - so buffer size is something you might want to change ad hoc to meet meet a specific need.

The general idea is - a low number of samples = low latency (but possible clicking and noise artifacts in your system can't handle it) and a high number of samples = increased latency but clean sound. Latency is the time lag between pressing a key on your midi keyboard and the note sounding (latency also applies to wave buffers for VST audio effects).

So you might need to experiment to find the right setting but just put it in the middle range to start (say 900 samples) and see how it goes when you start using VST effects.

The ASIO buffer setting is accessed from the devices menu - it will only be accessibility if you have chosen ASIO as an output port in your devices settings (like so).

Forget the buffer setting in Device>Wave - it does not work for ASIO - you have to go to the ASIO Control Panel to change the buffer setting for an ASIO device driver.

A menu something like this should popup when you choose Devices> Asio Control Panel:

You will need to read the documentation on your specific ASIO driver to understand exactly what each option entails - but again, generally, fewer samples = less latency (needs powerful system) and more samples = more latency but clean sound (less powerful system). Just experiment to see what works and remember you can change the buffer setting to meet a specific need in terms of how many effects are loaded, and there complexity, at any given time to get the best from your system.

Is it really worthwhile spending a few minutes reading the documentation that came with your ASIO driver to get the best from VSTHost and your system.

The ASIO Channel Selection dialog (Devices>ASIO Channel Selection) simply directs the input channels to the output channels (I think!). I'm not sure about this.... but most sound cards have more than 2 channels these days (5+1 etc.) so I think this dialog concerns the output channels of the sound card.

Next, choose Devices>Midi to bring up the midi device dialog:

normally there will only only be 1 input port (MPU-401) and this is the port on your sound card that you use to attach an external midi keyboard. However, if you are using a virtual midi cable (such as 'Midi Yoke' or 'Maple Virtual Midi Cable') you might see many input devices).

If you are going to use an external midi keyboard choose MPU-401. If you are routing the midi ouput from another program into VSTHost, choose the appropriate virtual input port that matches the virtual ouput post of the program you are using to 'feed' midi data to VSTHost.

The midi ouput port is a midi playback device (tone generator) you have on your system that you would normally use to playback midi files etc.

If you activate the check box 'Pass Through to Output' the midi signals from your external keyboard (or other program generating midi messages, if you are using a virtual midi cable) will also go to the output port you have selected and generate tones from the output port. Note: the virtual keyboard of VSTHost does not pass-through midi signals to the output post and will only trigger midi events in the effect(s) you have loaded and running in VSTHost.

Now just load a VST effect (Ctrl+N or File>New Effect):

and the effect will load. Note that very large or complicated effects may take a while to load.

If when the effect loads you see just the effect 'load' box:

You can click on the info button:

to bring up info about an effect.

And click on the 'effect edit' button to bring up the effect GUI:

This example is really cool VST that generates its own sounds and interacts with input midi events but remember most VSTs only works with input midi events or input audio.

For example if you load a synth:

That is triggered by midi events - there are 3 ways to get sound out of it:

1. The virtual keyboard which is part of VSTHost:

You can press keys on the virtual keyboard with your mouse - but you have to activate the effect first to get sound by pressing the 'run' button:

2. Use your external midi keyboard:

Just plug your midi keyboard into your sound card and press the keys - if you get no sound from VSTHost, check you have activated the effect by pressing the Run button in VSTHOST, check the midi input port to VSTHost (it should be MPU-401), and check you external midi keyboard is powered up.

3. You can route a midi file from a program that plays midi files into VSTHost using a virtual midi cable (maple virtual midi cable for example - get from the link below):

http://www.marblesound.com/Maple_driver.html

To route a midi file into VSTHost just set the input post in VSTHost to the same as the output port of the program which is playing the midi file... you might have to set your default midi playback device in Windows to your chosen port in the program you choose to play the midi file does not support midi port selection and just uses the default device windows has set.

To use an audio VST effect, load it into VSTHost:

Bring up your system sound mixer (there is usually a button on your task bar in Windows):

and activate IN THE RECORDING panel of the mixer the port you are using to direct sound to VSTHost (this example is set up to use an electric guitar plugged into the sound card line-in and VSTHost will process the incoming sound through the VST effect 'Ambience').

Note that the sound mixer is not a part of VSTHost - it is part of the windows operating system (or a variation that came with your sound card).

Latency - to get a pure VST audio effect from VSTHost mute the appropriate device on your system mixer IN THE PLAYBACK panel:

Even with an entry-level computer system an ASIO driver should be able to produce a 'live' audio signal that has been processed through an audio VST in VSTHost. However, if you do have latency such that makes it difficult to play (an electric guitar for example - do not mute the device you are using in your mixer playback panel and the resulting sound will be a mixture of of a live unprocessed signal (with no latency) and a signal that has been processed through VSTHost

You get the idea? When using VSTHost for audio processing (with a VST that processes an audio signal) - the playback tab on your system mixer gives an unprocessed sound (it bypasses VSTHost) and the recording tab on your system sound mixer produces the processed sound (it uses VSTHost and an audio VSTs running).


Configuration

VSTHost needs to know what devices to use for input and output, for both midi and audio.

Wave Devices

Bring up the wave device dialog Devices>Wave:

If you do not have an ASIO audio driver installed or your system cannot cope with ASIO drivers, you will be stuck with the default MME drivers (eg. MME: Wave Mapper) but in almost all cases an ASIO driver will give superior performance - so choose the ASIO device if it shows up in the selection box as an output port.

You can get a generic ASIO audio driver here:

http://michael.tippach.bei.t-online.de/asio4all/

If you have chosen MME devices for both the input port and the output port you can set the buffer from this box (see ASIO buffer below if you are using an ASIO output driver).

The buffer size depends on the speed of your system and what you are doing with VSTHost (how many effects you wish to load and the complexity of the effects) - so buffer size is something you might want to change ad hoc to meet meet a specific need.

The general idea is - a low number of samples = low latency (but possible clicking and noise artifacts in your system can't handle it) and a high number of samples = increased latency but clean sound. Latency is the time lag between pressing a key on your midi keyboard and the note sounding (latency also applies to wave buffers for VST audio effects).

So you might need to experiment to find the right setting but just put it in the middle range to start (say 900 samples) and see how it goes when you start using VST effects.

The ASIO buffer setting is accessed from the devices menu - it will only be accessibility if you have chosen ASIO as an output port in your devices settings (like so).

Forget the buffer setting in Device>Wave - it does not work for ASIO - you have to go to the ASIO Control Panel to change the buffer setting for an ASIO device driver.

A menu something like this should popup when you choose Devices> Asio Control Panel:

You will need to read the documentation on your specific ASIO driver to understand exactly what each option entails - but again, generally, fewer samples = less latency (needs powerful system) and more samples = more latency but clean sound (less powerful system). Just experiment to see what works and remember you can change the buffer setting to meet a specific need in terms of how many effects are loaded, and there complexity, at any given time to get the best from your system.

Is it really worthwhile spending a few minutes reading the documentation that came with your ASIO driver to get the best from VSTHost and your system.

The ASIO Channel Selection dialog (Devices>ASIO Channel Selection) simply directs the input channels to the output channels (I think!). I'm not sure about this.... but most sound cards have more than 2 channels these days (5+1 etc.) so I think this dialog concerns the output channels of the sound card.

Midi Devices

Choose Devices>Midi to bring up the midi device dialog:

normally there will only only be 1 input port (MPU-401) and this is the port on your sound card that you use to attach an external midi keyboard. However, if you are using a virtual midi cable (such as 'Midi Yoke' or 'Maple Virtual Midi Cable') you might see many input devices).

If you are going to use an external midi keyboard choose MPU-401. If you are routing the midi ouput from another program into VSTHost, choose the appropriate virtual input port that matches the virtual ouput post of the program you are using to 'feed' midi data to VSTHost.

The midi ouput port is a midi playback device (tone generator) you have on your system that you would normally use to playback midi files etc.

If you activate the check box 'Pass Through to Output' the midi signals from your external keyboard (or other program generating midi messages, if you are using a virtual midi cable) will also go to the output port you have selected and generate tones from the output port. Note: the virtual keyboard of VSTHost does not pass-through midi signals to the output post and will only trigger midi events in the effect(s) you have loaded and running in VSTHost.

System Sound Mixer

If you are using VST audio effects in VSTHost that are chained after a VST midi instrument, then the recording tab of system sound mixer can have any setting and VSTHost will process the sound correctly. Note that you need to have the ouput device unmuted on the playback tab of your system sound mixer device if you are using an MME device (it should be the Wave device). For ASIO drivers you will need to have the correct Channels selected Devices>Asio Channel Selection, and (in VSTHost) make sure the Engine assignments match the ASIO assignments Engine>Input Assign and Engine>Output Assign for the audio VST effect in focus.

However, if you are using VSTHost to proces only audio (no midi input) then your system sound mixer settings are important. Audio VST effects rely on full-duplex mode to process the audio signal (that is, both the playback and recording deivces on your sound card are used). Therefore, if, for example you are using VSTHost to process a live audio signal from an electric guitar that is plugged into the microphone socket of your sound card, you will need to have the microphne device, on the recording tab, of your system sound mixer, chosen as the recording device.

Note that your system sound mixer is not a part of VSTHost. It is part of the Windows operating system and is usually accessed via Windows Control Panel or from an icon on your Windows Task Bar.


Menus

The menus are the drop-down texts options at the very top of VSTHost.

The File menu simply loads a VST effect or closes VSTHost (notice the hot-key assignments - Ctrl+N to load a new effect, and Alt+F4 to close VSTHost).

VST effects are in files with a dll extension. If you try to load a non dll file, or a dll file that is not a VST effect VSTHost will ignore it.

The Effect menu is only visible when at least one VST effect is loaded by VSTHost.

The Name option becomes accessible when the GUI of a VST effect is in focus and allows you to change the name of the current program (aka: Preset or Patch). The Name option permenantly changes the name of the program for the VST effect in focus. The options Load, Save, and Save As deal with effect bank files.

I don't think an audio VST effect has effect banks. Wavetable instruments have banks and their bank files need to have the same VST ID number to be accepted for loading. I don't know enough about this to make sensible comments.

In the next block the options Edit, Edit Parameters and Info each bring up the respective windows associated with the VST effect in focus.

Edit brings up the Effect Edit window (it is equvalent to pressing the Effect Edit button on the Toolbar):

Edit Parameters brings up the Edit Parameters dialog (it is equvalent to pressing the Edit Parameters button on the Toolbar):

Info brings up the info window for the VST effect in focus (it is equvalent to pressing the Info button on the Toolbar):

Assign Input Channel becomes active when an audio VST effect is in focus (it is not accesible if a midi VST effect is in focus). This allows you to assign physical input channels to the audio VST effect in focus. Presumablly you could, say, put vocals through one channel to an audio VST effect (vocoder perhaps) and an electric guitar though another channel to a different audio VST effect (flanger perhaps).

The Filters option brings up a dialog to confiure an extensive midi filter for the VST effect in focus:

I'm not sure what all these options do (and there is a further sub-dialog that does more voice filtering), but it looks impressive.

The block of options at the bottom of the Effects menu is concerned with programs associated with the VST effect in focus. You can Load Program, Save Program, jump to the Next Program or Previous Program, or choose a specific program directly use the expandable tree-view of programs in sets of 16. Note that programs are sometimes called Presets or Patches.

The Engine menu show the options for the VSTHost effects engine:

Run simply toggles the effects engine to start or stop. Restart is only available when the effects engine is active and will restart the effects engine clean. Priority concerns the way the Windows operating system allocates recourses to VSTHost:

As is indicated in the dialog - setting VSTHost as a realtime process will probably crash a system. I'm not sure what effect the thread settings have.

The Input Assign and Output Assign options appear to allocate audio channels to physical devices - but I'm not sure what is going on.

The Devices menu allows you to configure your midi and audio devices for VSTHost.

If you do not have an ASIO driver installed or your system cannot cope with ASIO drivers, you will be stuck with the default MME drivers (eg. MME: Wave Mapper) but in almost all cases an ASIO driver will give superior performance - so choose the ASIO device if it shows up in the selection box as an output port.

If you have chosen MME devices for both the input port and the output port you can set the buffer from this box (see ASIO buffer below if you are using an ASIO output driver).

The buffer size depends on the speed of your system and what you are doing with VSTHost (how many effects you wish to load and the complexity of the effects) - so buffer size is something you might want to change ad hoc to meet meet a specific need.

The general idea is - a low number of samples = low latency (but possible clicking and noise artifacts in your system can't handle it) and a high number of samples = increased latency but clean sound. Latency is the time lag between pressing a key on your midi keyboard and the note sounding (latency also applies to wave buffers for VST audio effects).

So you might need to experiment to find the right setting but just put it in the middle range to start (say 900 samples) and see how it goes when you start using VST effects.

The ASIO buffer setting is accessed from the devices menu - it will only be accessible if you have chosen ASIO as an output port in your devices settings (like so).

Forget the buffer setting in Device>Wave - it does not work for ASIO - you have to go to the ASIO Control Panel to change the buffer setting for an ASIO device driver.

A menu something like this should popup when you choose Devices> Asio Control Panel:

You will need to read the documentation on your specific ASIO driver to understand exactly what each option entails - but again, generally, fewer samples = less latency (needs powerful system) and more samples = more latency but clean sound (less powerful system). Just experiment to see what works and remember you can change the buffer setting to meet a specific need in terms of how many effects are loaded, and their complexity, at any given time to get the best from your system.

Is it really worthwhile spending a few minutes reading the documentation that came with your ASIO driver to get the best from VSTHost and your system.

The ASIO Channel Selection dialog (Devices>ASIO Channel Selection) simply directs the input channels to the output channels (I think!). I'm not sure about this.... but most sound cards have more than 2 channels these days (5+1 etc.) so I think this dialog concerns the output channels of the sound card.

Next, choose Devices>Midi to bring up the midi device dialog:

normally there will only only be 1 input port (MPU-401) and this is the port on your sound card that you use to attach an external midi keyboard. However, if you are using a virtual midi cable (such as 'Midi Yoke' or 'Maple Virtual Midi Cable') you might see many input devices).

If you are going to use an external midi keyboard choose MPU-401. If you are routing the midi output from another program into VSTHost, choose the appropriate virtual input port that matches the virtual output post of the program you are using to 'feed' midi data to VSTHost.

The midi output port is a midi playback device (tone generator) you have on your system that you would normally use to playback midi files etc.

If you activate the check box 'Pass Through to Output' the midi signals from your external keyboard (or other program generating midi messages, if you are using a virtual midi cable) will also go to the output port you have selected and generate tones from the output port. Note: the virtual keyboard of VSTHost does not pass-through midi signals to the output post and will only trigger midi events in the effect(s) you have loaded and running in VSTHost.

The View menu shows or hides VSTHost controls or information.

The Toolbar option toggles whether the Toolbar will be displayed. The Keyboard Bar option toggles whether the Keyboard Bar will be displayed. The Configure Keyboard Bar option brings up the Keyboard Configuration dialog. The Status Bar option toggles a status bar at the bottom of VSTHost (which displays information about CPU load and the dB of sound passing through the VSTHost effects engine). The Status Bar Level Meter is an overlay on the status bar that dynamically shows the dB level as a coloured bar on top of the text dB reading (it is green in the normal range but turns red when there is clipping). I have no idea what the Auto Edit option does.

The Window menu allows you to arrange the windows within VSTHost in the usual way (Cascade or Tile - the Arrange Icons option has no effect). You can also see which window is in focus (the bottom section of the list) and click on a window in the list to change focus to that window.

If a window in focus is a GUI of a VST effect you will see 2 further options:

The Resize option will expand the VST effect GUI window to its' full extent if the Check Max Size option is active - otherwise, if Check Max Size is not active, Resize will change the VST effect GUI to its' full extent plus some random amount.

At the very top of the Window menu the entry Master will bring up the master dialog This dialog allows you to set the levels for the audio channels. There is a single master control for all audio channels. In realtime the red LED at the top of each channel will flash when clipping occurs - so this dialog can be used in real time to set the master level to avoid sound clipping.

The Help menu simply brings up an about box for VSTHost.


Toolbar

If the toolbar is not visible use the menu option View>Toolbar to activate it.

As well as hiding the toolbar by toggling the menu option View>Toolbar , you can undock the tool bar by double clicking on the toolbar sidebar, and redock the toolbar by double clicking on the blue top bar of the undocked toolbar to redock it.

If you wish you can change the docking behavior of the toolbar and 'teach' VSTHost where to dock the tool bar. It can be docked at the top, bottom, left or right of the screen. When it is undocked just drag the toolbar to the part of the screen you wish it to dock. When you double click the toolbar side bar, it will undock, and when you double click the blue top bar of the undocked toolbar it will redock to the place on the screen you have chosen.

Toolbar Elements:

1 [image] This button (New Effect) simply brings up a (file) dialog to load a VST effect.

VST effects are in files with a dll extension. If you try to load a non dll file, or a dll file that is not a VST effect VSTHost will ignore it.

2 [image] This button (Run) simply starts or stops the VSTHost VST engine - note that it needs to active to process midi and/or audio through VST effects loaded in VSTHost. Note that some VST effects also have in their control embedded run/stop buttons - so if you do not get sound from an effect - check for a stop / start button actually on the VST control itself.

3 [image] This button (Main Widow) gives basic information on a loaded effect - the VST effect file name and its' allocated effect-number with in VSTHost. Note there is a 'Main Widow' for each VST effect that is loaded in VSTHost.

4 [image] This button (Info) gives extended information about a loaded VST effect. For example:

shows much detail about the 'Ambiance' VST audio effect.

5 [image] This button (Effect Edit) brings up the GUI of the VST effect in focus of the Widows operating system. For example:

IMPORTANT NOTE - FOCUS - Note that many of the button on the Toolbar operate on the VST effect that is in focus at the time they are pressed. A VST effect is in focus (that is, in focus of the Widows operating system to accept messages/commands), if either its' Main Window, Info window or Effect Edit window is in focus. Under the Windows operating system a window is in focus when its' top border is blue (rather than grey). If you are not sure which VST effect is in focus at any give time you can use the the menu dropdown list Window> and select the correct VST from the list at the bottom (each effect, if no other information is available, can be identified by its' allotted number within VSTHost).

Some VST effects do not have a GUI but their parameters can still be changed using the Edit Parameters button (see 6 below).

6 [image] This button allows you to change the parameters of a VST effect independent of its' GUI (or if it has no GUI this is the only way to change the parameters of a VST effect):

7 [image] This button (Previous Program) applies the previous program (a list of parameter settings for a VST effect - sometimes called a Preset) to the VST effect in focus. If the Program is empty the VST effect in focus will revert to it's default settings. When the first Program is in view, pressing this button will result in the last Program being loaded for the VST effect in focus.

8 [image] This button (Next Program) applies the next program (Preset) to the VST effect in focus. If the Program is empty the VST effect in focus will revert to it's default settings. When the last Program is in view, pressing this button will result in the first program being loaded for the VST effect in focus

9 [image] This button (Select Program) allows Programs (Presets) to be selected from a tree-view. There are 16 Programs for each branch of the tree structure (that is, if the VST effect in focus has more than 16 Programs).

10 [image] This quasi-button (BMP) displays the beats-per-minute of the internal clock of VSTHost. This value is only displayed when the VSTHost effects engine is running. Clicking on this button toggles the clock on/off even when the VSTHost effects engine is running.

11 [image] This button (BMP) brings up a dialog to change the beats-per-minute (Tempo) of VSTHost's internal clock.

12 [image] This button (Toggle Keyboard Bar) displays the virtual keyboard. If it is active, pressing this button again will remove the virtual keyboard (toggle) from your screen.

13 [image] This button (Configure MIDI Keyboard Bar) brings up the tabbed configuration dialog for the virtual keyboard.

14 [image] This button (Master) brings up a dialog to set set the levels for the audio channels. There is a single master control for all audio channels. In realtime the red LED at the top of each channel will flash when clipping occurs - so this dialog can be used in real time to set the master level to avoid sound clipping.

15 [image] This button (Load Bank) loads an Effects Bank File for the VST effect in focus.

16 [image] This button (Save Bank) saves an Effects Bank File for the VST effect in focus.

I don't think an audio VST effect has effect banks. Wavetable instruments have banks and their bank files need to have the same VST ID number to be accepted for loading. I don't know enough about this to make sensible comments.

17 [image] This button (About) simply brings up an about box for VSTHost.


Virtual Keyboard

To bring the virtual keyboard into view:

or you can use menu View>Keyboar Bar.

To dock the virtual keyboard to the bottom of screen double click on the blue top bar of the virtual keyboard, and to undock it, double click on the keyboard side-bar:

Note: you can change docking location by 'teaching' VSTHost where you want the virtual keyboard to dock. As well as the bottom of the screen, it can be docked at the top, before or after the toolbar, or next to the tool bar, either at the left or the right - just drag the virtual keyboard to the place where you want it to dock and VSTHost will remember what your docking preference is.

When the virtual keyboard is undocked you can resize it in the usual way you would with a window in any Windows program.

Playing the keyboard:

When you put your mouse pointer over the keys the cursor will change to a hand:

Use your left mouse button to press a key and have it released when you release your left mouse button.

Use your right mouse button to press a key and have it stay pressed even after you have released your right mouse button (Sticky Finger) - to 'unpress' a keyboard key that has been pressed using your right mouse button, press on it again using ether your left mouse button or right mouse button.

Note: velocity - the virtual keys (black and white) are velocity sensitive (dynamic) - if you press at the very bottom you get a high velocity (loud note) and if you press at the top you get a low velocity key press (quiet note).

You can use your PC keyboard to play a midi VST instrument in VSTHost, the assignments are:

Note: you can only use your PC keyboard to play instruments when the virtual keyboard in VSTHost is in focus (that is - you have clicked the mouse cursor on the virtual keyboard and it has a dotted border showing that the Windows operating system has it in focus).

the PC keyboard is not velocity sensitive (dynamic), so notes played with the PC keyboard are played with a predefined velocity. However, you can change the set velocity on the fly if you assign a keyboard wheel to change the set velocity on key presses on your PC keyboard (see below on how to set up a keyboard velocity wheel).

Octave Changes:

You can see the above keyboard layout has 2 keys to change the octave of keys (the left 'shift' key lowers a note key by 2 octaves, and the right 'shift' key increases a note key by 2 octaves).

You can also assign octaves to the upper and lower octaves that are represented above in the PC keyboard diagram.

Below the keyboard, octave indicators are displayed (if the check box for octave indicators has been activated in the keyboard setup dialog - see below). They mark the currently active lower and upper keyboard octaves (i.e., the octaves that can be played on the PC keyboard). To use other octaves, you can drag the octave indicators to a new position. The upper octave indicator changes to a maroon colour when it is 'grabbed' and the lower octave indicator changes to a blue colour when it is 'grabbed'. These octave indicators automatically 'snap' to adjacent octaves as they are dragged about by your mouse.

Using Keyboard Wheels:

You can assign (and name), view and control 0, 1, 2 or 3 keyboard wheels:

The keyboard can have up to 3 wheels (see Keyboard Configure on how to activate them),each can be of the following type: a self-centering Pitch Wheel, a Modulation Wheel, and an (optional) Velocity Wheel, which is useful for temporarily changing the velocity of keys entered with the PC keyboard.

These wheels are controlled via your mouse or by your computer keyboard:

Pitch Wheel: on numeric keypad: 0(zero) = wheel up, .(period) = wheel down
Pitch Wheel: 'Insert' key = wheel up, 'Delete' key = wheel down

modulation wheel: on numeric keypad: 7=wheel up, 1= wheel down
modulation wheel: 'Home' key = wheel up, 'End' key = wheel down

Velocity Wheel: on numeric keypad: 9=wheel up, 3)= wheel down
Velocity Wheel: 'Page Up' key = wheel up, 'Page Down' key = wheel down

Their function and behavior of wheels varies depending on how they have been setup (see below).

Configuring the Virtual Midi Keyboard:

The dialog to configure the virtual midi keyboard is a tabbed dialog and is brought into view by pressing the following button:

The first tab screen has the following options:

Octave Indicators: activating this check box displays the octave indicators (these are the 2 bars just below the white keys on the picture above). These octave indicators mark the currently active lower and upper keyboard octaves (i.e., the octaves that can be played on the PC keyboard). To use other octaves, you can drag the octave indicators to a new position. The upper octave indicator changes to a maroon colour when it is 'grabbed' and the lower octave indicator changes to a blue colour when it is 'grabbed'. These octave indicators automatically 'snap' to adjacent octaves as they are dragged about by your mouse.

Key Labels: displays note names and their octave (relative to middle 'C' on the notes of the virtual keyboard (note that sharps and flats are not labeled).

Monophonic Keyboard: if the monophonic checkbox is not activated, the extent of polyphony depends on the VST instrument(s) which are being 'played' by VSTHost (that is, the capabilities of the VST instruments independent of VSTHost). When the monophonic checkbox is activated VSTHost will sent only one note at a time to the active VST instruments. The radio buttons associated with the monophonic checkbox define the rule for playing a single note when many notes are pressed at the same time (lowest, highest, last, none).

Send Aftertouch: Aftertouch conveys the amount of pressure on a key at a given point. This info can be used in many ways (envelope sustain level, for example). I'm not sure how this works in VSTHost - unless this keyboard option is referring to an external keyboard (this needs investigation).

Send Channel Pressure: The Channel Pressure message conveys the amount of overall (average) pressure on the keys at a given point for the assigned channel. I'm not sure how this works in VSTHost - unless this keyboard option is referring to an external keyboard (this needs investigation). Note that Channel Pressure messages can be setup to all kinds of stuff.

Layout: here the number of keys that make up the virtual keyboard are defined (number of keys to be displayed). There are 7 options for the number of keys to be displayed ( 37, 49, 61, 73, 88, 97 and 128 keys) - note that layout and Keys Starting at need to be related if a sensible virtual keyboard is to be configured.

Keys Starting at: sets the octave range (C0 is 2 octaves below middle 'C' [middle 'C' = 261.63 Hz). So, for example, if you have set Layout to 88 keys ( a standard piano), you should want Keys Starting at to be set to C0 - so the notes from the keyboard are the same pitch as a standard piano. If you are emulating a standard synth (61 keys), then you should want to set Keys Starting at to C0 also. Remember C2 is middle 'C'.

Channel Knob: defines which channel midi are to be sent (from channel 1 to channel 16).

Velocity Knob: defines the velocity (loudness) of PC keyboard notes (from 1 - very quiet, to 127 - loudest). Note that the velocity (loudness) of notes triggered by the PC keyboard can be changed on the fly if a velocity wheel has been assigned to the virtual keyboard (see below).

The second tab configures keyboard wheels:

Wheel 1, Wheel 2 and Wheel 3 list boxes allow you to select a wheel for the virtual keyboard. If you choose '(n/a)' no wheel will be displayed or used. Therefore, you can have 0, 1, 2 or 3 wheels displayed and operational on your virtual keyboard. The 3 wheel options are:

Pitch Wheel: this pitchbends the notes from pressed keys when the wheel is moved.

Velocity Wheel: this wheel relates to notes that are pressed using your PC keyboard - it changes the key-press velocity on the fly (an alphanumeric keyboard obviously does not have velocity sensitive keys). Key-press velocity determines how loud a note is - low velocity = quiet note, high velocity = loud note. Note the on-screen virtual keyboard that you can play with your mouse is 'dynamic' in that the lower down you press the note the higher the velocity, and the further up you press a note the lower the velocity.

Modulation Wheel: this adds vibrato to notes that are sounding.

The Text entry box simply allows you to give labels to your wheels. As can be seen in the above pictures, the pitch wheel has been labeled 'Pitch' , the velocity wheel 'Vel', and the modulation wheel ' mod'.

The Button list box simply allows you to add additional controls to your wheels. The example above shows the velocity wheel has buttons placed above (the wheel) and vertical, and the modulation wheel has buttons placed below (the wheel) and horizontal.

Check box Reverse simply reverses a wheel's operation. Naturally, for the pitch wheel, moving the wheel up would increase the pitch, but if the reverse check box is active - moving the wheel up will lower the pitch of the sound and lowering it will raise the pitch.

The Top, Mid, Bot check boxes determine whether a wheel will 'snap' back to the chosen position when released.

There are some additional options for the modulation wheel: The check box 14-Bit is ... (don't know), and the list box with numbers 001 to 127 determine the depth of ..... (don't know) but modulation only seems to work when value is left at 001.

The final tab of keyboard configuration Colors allows you to change the colour of the virtual keyboard keys - as is your preference, for example:


Tips and Tricks

Assuming you configured devices VSTHost correctly (midi and audio input and output), and say you want to load a synth and play it with the same type of reverb you would get at a concert hall:

1. Start VSTHost and load the synth VST you want:

2. Next load the audio VST effect:

3. Chain the audio VST effect after the synth (VST midi instrument):

To do this make sure the audio VST effect is in focus then using the menu: Effect>Chain After and select the synth.

4. Set the program (aka Patch or Preset) you like on your synth, and set the program for audio VST effect to Concert Hall.

That's it - (make sure the VST engine of VSTHost is running - press the Run button). Use VSTHost's virtual keyboard to to get sound from the VST synth processed through the audio VST effect to emulate the reverb you would expect from a concert hall.

Live Audio

Say you want to use VSTHost as a live guitar effects processor.

1. Start VSTHost and load some audio VST effects (here I have chosen a flanger and a reverb effect):

2. Use the Chain After method (Effect>Chain After ) to order the effects as you like - here I put the reverb effect after the flanger effect.

3. Input - if you are plugging your guitar into the microphone socket of your sound card make sure the recording tab of your system sound mixer has the microphone chosen as the recording device:

Alternatively, if you are plugging your guitar into the Line-in socket of your sound card, select the Line device as the recording device in your system sound mixer (audio VST effects need full-duplex access to work for a live audio stream - that is why the record device needs to be set correctly).

Now you can play guitar with nice effects - latency should not be too high if you are using ASIO audio drivers. If it is bad and makes live playing difficult, unmute the microphone in the playback tab of your system mixer and set the level quite low:

This will allow you to hear the attack of guitar sting plucks in realtime (unprocessed) by the processed sound from VSTHost will be dominant.


Troubleshooting

Problem: Can't get any sound?

Try: Check bla bla.....

Problem: Latency too big during live play?

Try: Bla bla...


Frequently Asked Questions

Q: What time is it?

A: Tea time.

Q: Bla Bla...

A: Bla Bla....


Contact

Program Author:

him@hermannseib.com

Hermann Seib
Donaufelderstraße 57/1/2
A-1210 Wien
Austria
Europe


Links

VSTHost website (German):

http://www.hermannseib.com/vsthost.htm

VSTHost website (English):

http://www.hermannseib.com/english/vsthost.htm

Note: there is a PayPal button on the VSTHost webpage for those who wish to reward the author for his effort.

VSTHost Forum (German and English):

http://forum.hermannseib.com/

VSTHost Guest Book:

http://www.hermannseib.com/english/guestbook/default.asp

ASIO Driver freeware:

http://michael.tippach.bei.t-online.de/asio4all/

Virtual midi cable -freeware:

http://www.marblesound.com/Maple_driver.html