395 lines
16 KiB
HTML
395 lines
16 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
|
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
|
<meta name="generator" content="Doxygen 1.13.2"/>
|
|
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
|
<title>VST 3 Examples: VST 3 plug-ins Examples</title>
|
|
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="jquery.js"></script>
|
|
<script type="text/javascript" src="dynsections.js"></script>
|
|
<script type="text/javascript" src="clipboard.js"></script>
|
|
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="navtreedata.js"></script>
|
|
<script type="text/javascript" src="navtree.js"></script>
|
|
<script type="text/javascript" src="resize.js"></script>
|
|
<script type="text/javascript" src="cookie.js"></script>
|
|
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
|
<script type="text/javascript" src="search/searchdata.js"></script>
|
|
<script type="text/javascript" src="search/search.js"></script>
|
|
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
|
<link href="smtg_extra.css" rel="stylesheet" type="text/css"/>
|
|
</head>
|
|
<body>
|
|
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
|
<div id="titlearea">
|
|
<table cellspacing="0" cellpadding="0">
|
|
<tbody>
|
|
<tr id="projectrow">
|
|
<td id="projectalign">
|
|
<div id="projectname">VST 3 Examples<span id="projectnumber"> VST 3.8</span>
|
|
</div>
|
|
<div id="projectbrief">SDK for developing VST plug-in</div>
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<!-- end header part -->
|
|
<!-- Generated by Doxygen 1.13.2 -->
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() { codefold.init(0); });
|
|
/* @license-end */
|
|
</script>
|
|
<script type="text/javascript" src="menudata.js"></script>
|
|
<script type="text/javascript" src="menu.js"></script>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function() {
|
|
initMenu('',true,false,'search.php','Search',true);
|
|
$(function() { init_search(); });
|
|
});
|
|
/* @license-end */
|
|
</script>
|
|
<div id="main-nav"></div>
|
|
</div><!-- top -->
|
|
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
|
<div id="nav-tree">
|
|
<div id="nav-tree-contents">
|
|
<div id="nav-sync" class="sync"></div>
|
|
</div>
|
|
</div>
|
|
<div id="splitbar" style="-moz-user-select:none;"
|
|
class="ui-resizable-handle">
|
|
</div>
|
|
</div>
|
|
<script type="text/javascript">
|
|
/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&dn=expat.txt MIT */
|
|
$(function(){initNavTree('index.html',''); initResizable(true); });
|
|
/* @license-end */
|
|
</script>
|
|
<div id="doc-content">
|
|
<!-- window showing the filter options -->
|
|
<div id="MSearchSelectWindow"
|
|
onmouseover="return searchBox.OnSearchSelectShow()"
|
|
onmouseout="return searchBox.OnSearchSelectHide()"
|
|
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
|
</div>
|
|
|
|
<!-- iframe showing the search results (closed by default) -->
|
|
<div id="MSearchResultsWindow">
|
|
<div id="MSearchResults">
|
|
<div class="SRPage">
|
|
<div id="SRIndex">
|
|
<div id="SRResults"></div>
|
|
<div class="SRStatus" id="Loading">Loading...</div>
|
|
<div class="SRStatus" id="Searching">Searching...</div>
|
|
<div class="SRStatus" id="NoMatches">No Matches</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div><div class="header">
|
|
<div class="headertitle"><div class="title">VST 3 plug-ins Examples </div></div>
|
|
</div><!--header-->
|
|
<div class="contents">
|
|
<div class="toc"><h3>Table of Contents</h3>
|
|
<ul>
|
|
<li class="level1">
|
|
<a href="#adelay">ADelay</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#again">AGain</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#channelcontext">TestChannelContext</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#HostChecker">HostChecker</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#legacymidiccout">TestLegacyMIDICCOut</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#mdaplugs">mda Plug-ins</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#NoteExpressionSynth">Note Expression Synth</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#NoteExpressionText">Note Expression Text</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#Panner">Panner</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#PitchNames">PitchNames</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#prefetchablesupport">TestPrefetchableSupport</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#programchange">TestProgramChange</a>
|
|
</li>
|
|
<li class="level1">
|
|
<a href="#syncdelay">Sync Delay</a>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div class="textblock"><p>The SDK includes some plug-ins and host implementation examples. </p>
|
|
<p>The Legendaries <a class="el" href="#again">AGain</a> and <a class="el" href="#adelay">ADelay</a> ADelay, thanks Paul Kellet the OpenSource mda Plug-ins, a basic <a class="el" href="#NoteExpressionSynth">Note Expression Synth</a> supporting "Note Expression Event" and an example of pitchnames support plug-in (<a class="el" href="#PitchNames">PitchNames</a>) and more.</p>
|
|
<p>Note: They use cmake as project generator: cmakeUse <br />
|
|
In order to add your own plug-ins check: addownplugs <br />
|
|
<br />
|
|
</p>
|
|
<h1><a class="anchor" id="adelay"></a>
|
|
ADelay</h1>
|
|
<p>Very simple delay plug-in:</p><ul>
|
|
<li>only one parameter (a delay)</li>
|
|
</ul>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/adelay" target="_blank">public.sdk/samples/vst/adelay</a> of the SDK!</p>
|
|
<p>Classes:</p><ul>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1ADelayProcessor.html">ADelayProcessor</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1ADelayController.html">ADelayController</a> <br />
|
|
<br />
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="again"></a>
|
|
AGain</h1>
|
|
<p>The SDK includes a AGain plug-in which is a very simple <b>VST 3 plug-in</b>. This Plug-in:</p><ul>
|
|
<li>is multichannel compatible</li>
|
|
<li>supports bypass processing</li>
|
|
<li>has an automated gain parameter</li>
|
|
<li>has an Event input bus (allowing to use noteOn velocity to control the gain factor)</li>
|
|
<li>has a VU peak meter</li>
|
|
<li>uses the VSTGUI4 library</li>
|
|
<li>a version of this plug-in with side-chaining is available (showing a plug-in using the same controller and different components)</li>
|
|
<li>a AAX version is available</li>
|
|
<li>a AUv3 version is available <div class="image">
|
|
<img src="again.jpg" alt=""/>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/again" target="_blank">public.sdk/samples/vst/again</a> of the SDK!</p>
|
|
<p>Classes:</p><ul>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1AGain.html">AGain</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1AGainWithSideChain.html">AGainWithSideChain</a> (used for side-chain version)</li>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1AGainController.html">AGainController</a> <br />
|
|
<br />
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="channelcontext"></a>
|
|
TestChannelContext</h1>
|
|
<p>Very simple plug-in:</p><ul>
|
|
<li>showing how to use the <a class="elRef" href="../vstinterfaces/classSteinberg_1_1Vst_1_1ChannelContext_1_1IInfoListener.html">IInfoListener</a> interface</li>
|
|
<li>using a generic UI</li>
|
|
</ul>
|
|
<div class="image">
|
|
<img src="channelcontext.jpg" alt=""/>
|
|
</div>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/channelcontext" target="_blank">public.sdk/samples/vst/channelcontext</a> of the SDK! <br />
|
|
<br />
|
|
</p>
|
|
<h1><a class="anchor" id="HostChecker"></a>
|
|
HostChecker</h1>
|
|
<ul>
|
|
<li>Instrument, Panner and Fx plug-in checking the VST 3 support of a host.</li>
|
|
<li>a AAX version is available</li>
|
|
</ul>
|
|
<div class="image">
|
|
<img src="hostchecker.jpg" alt=""/>
|
|
</div>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/hostchecker" target="_blank">public.sdk/samples/vst/hostchecker</a> of the SDK! <br />
|
|
<br />
|
|
</p>
|
|
<h1><a class="anchor" id="legacymidiccout"></a>
|
|
TestLegacyMIDICCOut</h1>
|
|
<p>Very simple plug-in:</p><ul>
|
|
<li>showing how to use LegacyMIDICCOutEvent which allow to generate MIDI CC as output event</li>
|
|
<li>VST parameters change which create LegacyMIDICCOutEvent Event</li>
|
|
</ul>
|
|
<div class="image">
|
|
<img src="legacymidiccout.jpg" alt=""/>
|
|
</div>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/legacymidiccout" target="_blank">public.sdk/samples/vst/legacymidiccout</a> of the SDK!</p>
|
|
<p>Classes:</p><ul>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1LegacyMIDICCOut_1_1Plug.html">LegacyMIDICCOut::Plug</a> <br />
|
|
<br />
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="mdaplugs"></a>
|
|
mda Plug-ins</h1>
|
|
<ul>
|
|
<li>Effects (stereo to stereo plug-ins):<ul>
|
|
<li>Ambience : Reverb</li>
|
|
<li>Bandisto : Multi-band Distortion</li>
|
|
<li>BeatBox : Drum Replacer</li>
|
|
<li>Combo : Amp and Speaker Simulator</li>
|
|
<li>DeEsser : High frequency Dynamics Processor</li>
|
|
<li>Degrade : Sample quality reduction</li>
|
|
<li>Delay : Simple stereo delay with feedback tone control</li>
|
|
<li>Detune : Simple up/down pitch shifting thickener</li>
|
|
<li>Dither : Range of dither types including noise shaping</li>
|
|
<li>DubDelay : Delay with feedback saturation and time/pitch modulation</li>
|
|
<li>Dynamics : Compressor / Limiter / Gate</li>
|
|
<li>Image : Stereo image adjustment and M-S matrix</li>
|
|
<li>Leslie : Rotary speaker simulator</li>
|
|
<li>Limiter : Opto-electronic style limiter</li>
|
|
<li>Loudness : Equal loudness contours for bass EQ and mix correction</li>
|
|
<li>MultiBand : Multi-band compressor with M-S processing modes</li>
|
|
<li>Overdrive : Soft distortion</li>
|
|
<li>RePsycho! : Drum loop pitch changer</li>
|
|
<li>RezFilter : Resonant filter with LFO and envelope follower</li>
|
|
<li>RingMod : Simple Ring Modulator</li>
|
|
<li>Round Panner: 3D panner</li>
|
|
<li>Shepard : Continuously rising/falling tone generator</li>
|
|
<li>SpecMeter : Stereo 13 Bands spectral Meter</li>
|
|
<li>Splitter : Frequency / level crossover for setting up dynamic processing</li>
|
|
<li>Stereo Simulator: Haas delay and comb filtering</li>
|
|
<li>Sub-Bass Synthesizer: Several low frequency enhancement methods</li>
|
|
<li>TalkBox : High resolution vocoder</li>
|
|
<li>TestTone : Signal generator with pink and white noise, impulses and sweeps</li>
|
|
<li>Thru-Zero Flanger : Classic tape-flanging simulation</li>
|
|
<li>Tracker : Pitch tracking oscillator, or pitch tracking EQ</li>
|
|
</ul>
|
|
</li>
|
|
<li>Instruments (1 Event input, 1 stereo Audio output):<ul>
|
|
<li>DX10 : Sounds similar to the later Yamaha DX synths including the heavy bass but with a warmer, cleaner tone.</li>
|
|
<li>EPiano : Simple EPiano</li>
|
|
<li>JX10 : The plug-in is designed for high quality (lower aliasing than most soft synths) and low processor usage</li>
|
|
<li>Piano : Not designed to be the best sounding piano in the world, but boasts extremely low CPU and memory usage.</li>
|
|
</ul>
|
|
</li>
|
|
</ul>
|
|
<p>Based on the OpenSource mda plug-ins (<a href="http://mda.smartelectronix.com/">http://mda.smartelectronix.com/</a>), this set of plug-ins demonstrates how wrap DSP code in a VST 3 plug-in.</p>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/mda-vst3" target="_blank">public.sdk/samples/vst/mda-vst3</a> of the SDK!</p>
|
|
<p>Classes:</p><ul>
|
|
<li><a class="el" href="namespaceSteinberg_1_1Vst_1_1mda.html#aa0936cf0a422e298f98238f76edfcc44">BaseProcessor</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1mda_1_1BaseController.html">BaseController</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1mda_1_1BaseParameter.html">BaseParameter</a> <br />
|
|
<br />
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="NoteExpressionSynth"></a>
|
|
Note Expression Synth</h1>
|
|
<ul>
|
|
<li>Instrument plug-in supporting note expression events</li>
|
|
<li>It shows how easy it is to use vstgui4</li>
|
|
<li>a AUv3 version is available</li>
|
|
</ul>
|
|
<div class="image">
|
|
<img src="note_expression_synth.jpg" alt=""/>
|
|
</div>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/note_expression_synth" target="_blank">public.sdk/samples/vst/note_expression_synth</a> of the SDK!</p>
|
|
<p>Classes:</p><ul>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1NoteExpressionSynth_1_1Processor.html">NoteExpressionSynth::Processor</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1NoteExpressionSynth_1_1Controller.html">NoteExpressionSynth::Controller</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1NoteExpressionSynth_1_1Voice.html">NoteExpressionSynth::Voice</a> <br />
|
|
<br />
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="NoteExpressionText"></a>
|
|
Note Expression Text</h1>
|
|
<ul>
|
|
<li>Plug-in visualizing the NoteExpression as Text</li>
|
|
<li>It shows how easy it is to use vstgui4</li>
|
|
</ul>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/note_expression_text" target="_blank">public.sdk/samples/vst/note_expression_text</a> of the SDK!</p>
|
|
<p><br />
|
|
<br />
|
|
</p>
|
|
<h1><a class="anchor" id="Panner"></a>
|
|
Panner</h1>
|
|
<ul>
|
|
<li>Simple panner plug-in showing how to support Panner category (mono to Stereo)</li>
|
|
<li>It shows how easy it is to use vstgui4</li>
|
|
</ul>
|
|
<div class="image">
|
|
<img src="panner.jpg" alt=""/>
|
|
</div>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/panner" target="_blank">public.sdk/samples/vst/panner</a> of the SDK!</p>
|
|
<p>Classes:</p><ul>
|
|
<li>PlugController</li>
|
|
<li>PlugProcessor <br />
|
|
<br />
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="PitchNames"></a>
|
|
PitchNames</h1>
|
|
<ul>
|
|
<li>Instrument plug-in showing PitchNames support</li>
|
|
<li>It shows how easy it is to use vstgui4</li>
|
|
</ul>
|
|
<div class="image">
|
|
<img src="pitchname.jpg" alt=""/>
|
|
</div>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/pitchnames" target="_blank">public.sdk/samples/vst/pitchnames</a> of the SDK!</p>
|
|
<p>Classes:</p><ul>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1PitchNamesController.html">PitchNamesController</a></li>
|
|
<li><a class="el" href="classSteinberg_1_1Vst_1_1PitchNamesProcessor.html">PitchNamesProcessor</a></li>
|
|
<li><a class="el" href="classVSTGUI_1_1PitchNamesDataBrowserSource.html">PitchNamesDataBrowserSource</a> <br />
|
|
<br />
|
|
</li>
|
|
</ul>
|
|
<h1><a class="anchor" id="prefetchablesupport"></a>
|
|
TestPrefetchableSupport</h1>
|
|
<p>Very simple plug-in:</p><ul>
|
|
<li>showing how to use the <a class="elRef" href="../vstinterfaces/classSteinberg_1_1Vst_1_1IPrefetchableSupport.html">IPrefetchableSupport</a> interface</li>
|
|
<li>using a generic UI</li>
|
|
</ul>
|
|
<div class="image">
|
|
<img src="prefetchablesupport.jpg" alt=""/>
|
|
</div>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/prefetchablesupport" target="_blank">public.sdk/samples/vst/prefetchablesupport</a> of the SDK! <br />
|
|
<br />
|
|
</p>
|
|
<h1><a class="anchor" id="programchange"></a>
|
|
TestProgramChange</h1>
|
|
<p>Very simple plug-in:</p><ul>
|
|
<li>showing how to support Program List</li>
|
|
<li>using a generic UI</li>
|
|
</ul>
|
|
<div class="image">
|
|
<img src="programchange.jpg" alt=""/>
|
|
</div>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/programchange" target="_blank">public.sdk/samples/vst/programchange</a> of the SDK! <br />
|
|
<br />
|
|
</p>
|
|
<h1><a class="anchor" id="syncdelay"></a>
|
|
Sync Delay</h1>
|
|
<p>Very simple delay plug-in:</p><ul>
|
|
<li>showing how to support IProcessContextRequirements</li>
|
|
</ul>
|
|
<p>Check the folder <a href="../../public.sdk/samples/vst/syncdelay" target="_blank">public.sdk/samples/vst/syncdelay</a> of the SDK! <br />
|
|
</p>
|
|
</div></div><!-- PageDoc -->
|
|
<a href="doxygen_crawl.html"></a>
|
|
</div><!-- contents -->
|
|
</div><!-- doc-content -->
|
|
<html>
|
|
<head>
|
|
<title>Empty</title>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
<meta name="Author" content="Steinberg">
|
|
</head>
|
|
<body>
|
|
<br/>
|
|
<hr width="100%" size="2" align="left" />
|
|
<div align=right>
|
|
Copyright ©<span id="year"></span> <a href="http://www.steinberg.net" target="_blank"><u>Steinberg Media Technologies GmbH</u></a>.
|
|
All Rights Reserved. This documentation is under this <a href="http://www.steinberg.net/sdklicenses" target="_blank"><u>license</u></a>.
|
|
</div>
|
|
<script>
|
|
document.querySelector("#year").textContent = new Date().getFullYear();
|
|
</script>
|
|
</body>
|
|
</html>
|