- Main Page
- Classes
- Files
- Related Pages

# VST Calling Sequences

## Introduction

The diagrams below illustrate the most important calling sequences taking place between VST host application and plug-in. This is of interest to plug-in developers as well as to host developers.

## Threading issues

In general, processEvents(), startProcess(), stopProcess(), process(), processReplacing() and processDoubleReplacing() are called from a time-critical high priority thread (except for offline processing).
To satisfy realtime constraints for low latency audio processing, memory allocations and lock-based syncronisation should be avoided.
The same applies to setParameter() and setProgram() when playing automation from host. Any others functions are called from UI thread in general.
The host takes care that processing and setup functions are isolated from each other. setSampleRate(), setBlockSize(), setProcessPrecision(), etc. calls occur only in suspended state, i.e. before resume() is called.

## Sequence Diagrams

- Initialization
- Termination
- Turn On
- Turn Off
- Sample rate change
- Block size change
- Speaker arrangement negotiation
- IO change
- Control change
- Offline process

Figure 3: A plug-in is initialized | Figure 4: A plug-in is terminated
Figure 1: A plug-in is turned on | Figure 2: A plug-in is turned off
Figure 6: The sample rate changed | Figure 9: The block size changed

Figure 5: The speaker arrangements negotiation between the host and the plug-in
Figure 7: The number of IOs changed caused e.g. by user interaction
Figure 8: A control changed within the userinterface of the plug-in
Figure 10: A plug-in processes offline

Empty

Copyright ©2006 Steinberg Media Technologies. All Rights Reserved.