summaryrefslogtreecommitdiff
path: root/vstgui.sf/vstgui/Documentation/html/sequences.html
diff options
context:
space:
mode:
Diffstat (limited to 'vstgui.sf/vstgui/Documentation/html/sequences.html')
-rw-r--r--vstgui.sf/vstgui/Documentation/html/sequences.html97
1 files changed, 97 insertions, 0 deletions
diff --git a/vstgui.sf/vstgui/Documentation/html/sequences.html b/vstgui.sf/vstgui/Documentation/html/sequences.html
new file mode 100644
index 0000000..61fa489
--- /dev/null
+++ b/vstgui.sf/vstgui/Documentation/html/sequences.html
@@ -0,0 +1,97 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
+<title>VSTGUI: VST Calling Sequences</title>
+<link href="doxygen.css" rel="stylesheet" type="text/css">
+<link href="tabs.css" rel="stylesheet" type="text/css">
+</head><body>
+<!-- Generated by Doxygen 1.4.5 -->
+<div class="tabs">
+ <ul>
+ <li><a href="main.html"><span>Main&nbsp;Page</span></a></li>
+ <li><a href="annotated.html"><span>Classes</span></a></li>
+ <li><a href="files.html"><span>Files</span></a></li>
+ <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
+ </ul></div>
+<h1><a class="anchor" name="sequences">VST Calling Sequences</a></h1><h2><a class="anchor" name="Introduction">
+Introduction</a></h2>
+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.<p>
+<hr>
+ <h2><a class="anchor" name="threading">
+Threading issues</a></h2>
+In general, processEvents(), startProcess(), stopProcess(), process(), processReplacing() and processDoubleReplacing() are called from a time-critical high priority thread (except for offline processing).<br>
+ To satisfy realtime constraints for low latency audio processing, memory allocations and lock-based syncronisation should be avoided.<br>
+ The same applies to setParameter() and setProgram() when playing automation from host. Any others functions are called from UI thread in general.<br>
+ 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.<p>
+<hr>
+ <h2><a class="anchor" name="sequencediagrams">
+Sequence Diagrams</a></h2>
+<ul>
+<li><a href="#init">Initialization</a></li><li><a href="#termination">Termination</a></li><li><a href="#turnon">Turn On</a></li><li><a href="#turnoff">Turn Off</a></li><li><a href="#sr">Sample rate change</a></li><li><a href="#bs">Block size change</a></li><li><a href="#speaker">Speaker arrangement negotiation</a></li><li><a href="#ios">IO change</a></li><li><a href="#control">Control change</a></li><li><a href="#offline">Offline process</a></li></ul>
+<p>
+<table width="100%" cellspacing="0" cellpadding="5" border="0">
+<tr>
+<td id="init" valign="top"><div align="center">
+<img src="Initialisation.gif" alt="Initialisation.gif">
+<p><strong>Figure 3: A plug-in is initialized</strong></p></div>
+ </td><td id="termination" valign="top"><div align="center">
+<img src="Termination.gif" alt="Termination.gif">
+<p><strong>Figure 4: A plug-in is terminated</strong></p></div>
+ </td></tr>
+<tr>
+<td id="turnon" valign="top"><div align="center">
+<img src="TurnOn.gif" alt="TurnOn.gif">
+<p><strong>Figure 1: A plug-in is turned on</strong></p></div>
+ </td><td id="turnoff" valign="top"><div align="center">
+<img src="TurnOff.gif" alt="TurnOff.gif">
+<p><strong>Figure 2: A plug-in is turned off</strong></p></div>
+ </td></tr>
+<tr>
+<td id="sr" valign="top"><div align="center">
+<img src="Sampleratechange.gif" alt="Sampleratechange.gif">
+<p><strong>Figure 6: The sample rate changed</strong></p></div>
+ </td><td id="bs" valign="top"><div align="center">
+<img src="Blocksizechange.gif" alt="Blocksizechange.gif">
+<p><strong>Figure 9: The block size changed</strong></p></div>
+ </td></tr>
+</table>
+<table width="100%" cellspacing="0" cellpadding="5" border="0">
+<tr>
+<td id="speaker"><div align="center">
+<img src="SpeakerarrangementnegotiationforVSTfx.gif" alt="SpeakerarrangementnegotiationforVSTfx.gif">
+<p><strong>Figure 5: The speaker arrangements negotiation between the host and the plug-in</strong></p></div>
+ </td></tr>
+<tr>
+<td id="ios"><div align="center">
+<img src="IOchange.gif" alt="IOchange.gif">
+<p><strong>Figure 7: The number of IOs changed caused e.g. by user interaction</strong></p></div>
+ </td></tr>
+<tr>
+<td id="control"><div align="center">
+<img src="ControlChanged.gif" alt="ControlChanged.gif">
+<p><strong>Figure 8: A control changed within the userinterface of the plug-in</strong></p></div>
+ </td></tr>
+<tr>
+<td id="offline"><div align="center">
+<img src="Offlineprocessing.gif" alt="Offlineprocessing.gif">
+<p><strong>Figure 10: A plug-in processes offline</strong></p></div>
+ </td></tr>
+</table>
+<html>
+
+<head>
+ <title>Empty</title>
+ <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
+ <meta name="Author" content="mario">
+</head>
+
+<body>
+
+<br/>
+<hr width="100%" size="2" align="left" />
+<div align=left>
+Copyright ©2006 <a href="http://www.steinberg.net" target="_blank"><u>Steinberg Media Technologies</u></a>.
+All Rights Reserved.
+</div>
+</body>
+
+</html>