VST 3 SDK VST 3.6.11 SDK for developing VST Plug-in

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Macros Groups Pages
VST 3 Version History

All released Versions with changes and dates

# Version 3.6.11 (2018/10/22)

- VSTGUI 4.7
  - update to VSTGUI 4.7
  - move from GTK++ to XCB for linux support
- New icon for VST3 bundles: VST_Logo_Steinberg.ico and VST_Logo_Steinberg.icns (located in VST_SDK/VST3_SDK/doc/artwork folder)
- Interfaces Changes:
  - VST2 interface not anymore available!
  - New Steinberg::Vst::INoteExpressionPhysicalUIMapping: allowing the host to retrieve the preferred physical mapping associated to note expression supported by the Plug-in.
- cmake:
  - further improvement for users projects
- Plug-in Wrappers:
  - fix VST2 Wrapper for instruments which were not visible as instrument
  - AAX Wrapper (VST 3 - AAX Wrapper):
    - fix UI resizing
    - fix issue for default blocksize
- Helpers Classes:
  - make virtual some functions of class Parameter (set/getUnitID, getInfo, set/getPrecision)

# Version 3.6.10 (2018/06/11)

- New definition of Plug-in format for Windows including icon support (VST3 Bundle: VST 3 Locations / Format)
- Support of Snapshots inside the VST3 Bundle
- cmake:
  - adapt cmake files for better integration of users projects
  - fix support Universal Binary for AudioUnit
- Plug-in Wrappers:
  - refactoring AAX/VST2 Wrappers
  - AAX Wrapper (VST 3 - AAX Wrapper):
    - fix Bypass behaviour
    - fix initial signal latency
    - fix indexing of parameter, conflicting with VST2
- Helpers Classes:
  - fix activateBus issue in class SingleComponentEffect
  - fix Ring Buffer class issue

# Version 3.6.9 (2018/03/01)

- Reorganization of cmake files
- VSTGUI 4.6
  - update to VSTGUI 4.6
  - including a new UI element: KeyboardView supporting Note expression
- Interfaces Changes:
  - rename some defines:
    - PLATFORM_64 => SMTG_PLATFORM_64
    - WINDOWS => SMTG_OS_WINDOWS
    - MAC => SMTG_OS_MACOS
    - LINUX => SMTG_OS_LINUX
  - extract Speaker Arrangement from vsttypes.h to vstspeaker.h
  - new kNoParamId constant for uninitialized parameter id
- Samples:
  - fix Validator State test
  - NoteExpressionSynth uses the new KeyboardView
  - New HelloWorld VST3 Plug-ins (template): How to add/create your own VST 3 Plug-ins
- Plug-in Wrappers:
  - VST 3 - Audio Unit Wrapper : fix and adaptation for newer XCode versions
  - Audio Unit v3 (AUv3) wrapper (VST 3 - Audio Unit v3 Wrapper): some fixes, add cmake
  - AAX wrapper (VST 3 - AAX Wrapper): add bypass and VU parameter support
  - interappaudio: improvements, fixes, add cmake
- Helpers Classes:
  - new Ring Buffer class (ringbuffer.h)

# Version 3.6.8 (2017/11/08)

- Some changes in the Licensing Agreement! Please check it (VST 3 Licensing Issues).
- New Steinberg VST usage guidelines PDF
- This SDK version required compilers supporting C++11. It requires on Windows Visual Studio 2015 minimum!
- Linux support in Beta
- Interfaces Changes:
  - New Steinberg::Vst::IComponentHandlerBusActivation: allowing a Plug-in to request the host to activate or deactivate a specific bus (useful for instrument with multiple outputs)
- New Flags/Enums:
  - New predefined Ambisonic Speaker Arrangements: 1st, 2cd and 3rd order (ACN ordering and SN3D normalization): kAmbi1stOrderACN, kAmbi2cdOrderACN, kAmbi3rdOrderACN with their associated speakers: kSpeakerACN0...kSpeakerACN15
  - New predefined 3D Speaker Arrangements: k70_4, k71_4
- Samples:
  - New VST 3 Host implementation examples:
    - Folder reorganization: hosting examples are in a separate folder: public.sdk/samples/vst-hosting
    - New AudioHost (AudioHost - Cross-platform Standalone) showing how integrate a VST3 Plug-in in a Jack world! This required Jack Audio (http://www.jackaudio.org), only tested under Linux but should work on Windows 32bits and Mac.
- Plug-in Wrappers:
  - New Audio Unit v3 (AUv3) wrapper (VST 3 - Audio Unit v3 Wrapper)
  - New AAX wrapper (VST 3 - AAX Wrapper): Note that in order to use this AAX wrapper for your plug-in you have to download the AAX SDK (contact AVID), tested with AAX SDK Version 2.3.0.

# Version 3.6.7 (2017/03/03)

- Preview Linux support (check https://sdk.steinberg.net for discussion): Setup Linux for building VST 3 Plug-ins
- Licensing has changed! Please read the new VST 3 Licensing Issues.
- Use cmake as project generator: How to use cmake for Building VST 3 Plug-ins
- This is the last version of the SDK supporting C++98, future versions will used C++11.
- Samples:
  - New VST 3 Host implementation example:
    - New HostEditor application: Cross-platform (Win/macOS/Linux) standalone which opens the UI of a VST3 Plug-in
  - Updated validator application to support Linux
  - AGain Plug-in updated:
    - it uses VSTGUI 4 instead of VSTGUI 3
    - it supports 64bit processing (template based)
  - All VSTGUI 4 based samples support HiDPI on Windows now
  - Fix Program Change persistence in mda Plug-ins example
  - Removed Xcode and Visual Studio projects, please use cmake now!
  - On Windows we link VST3 Plug-ins with the MultiThreaded DLL runtime libraries (it will use Universal C Runtime Libraries, for older Windows version than Win 8.1 you may have to install these libraries from: https://support.microsoft.com/en-us/kb/2999226)
- VSTGUI 3.x is not anymore supported (removed from the SDK) you can still download it from github: https://github.com/steinbergmedia/vstgui
- Plug-in Wrappers:
  - VST 3 - Audio Unit Wrapper :
    - fix AU Wrapper MIDI Program Change issue (data1 instead of data2)
  - VST 3 - VST 2.x Wrapper :
    - fix resize issue on macOS
    - fix mapping between VST3 ParamID and VST2 paramID when bypass parameter is used

# Version 3.6.6 (2016/06/17)

- Interfaces Changes:
  - New Steinberg::IPlugViewContentScaleSupport: Plug-in view content scale support
- New Flags/Enums:
  - New RestartFlags: kRoutingInfoChanged informing the host that the Routing Info (IComponent) has changed
- Samples:
  - New VST 3 Plug-ins examples:
    - New VST 3 Plug-in Program Change showing how handling its own Program List is working
  - Remove Visual Projects version 8 and 9
- Plug-in Wrappers:
  - VST 3 - Audio Unit Wrapper :
    - update to last Audio Core update
  - VST 3 - VST 2.x Wrapper :
    - add support of version (VST3 -> VST2)
- Helpers Classes:
  - add support for bypass including delay compensation (vstbypassprocessor.h)
  - add helpers for events/parameters iterator (vstaudioprocessoralgo.h)
  - add helpers for SpeakerArr:
    - Speaker getSpeaker (const SpeakerArrangement& arr, int32 index)
    - bool isSubsetOf (const SpeakerArrangement& arrSubSet, const SpeakerArrangement& arr)
- VSTGUI 4.3
  - update to VSTGUI 4.3.1 (available here too: http://sourceforge.net/projects/vstgui/files/vstgui/VSTGUI%204.3/)
  - the VSTGUI repository was moved to github: https://github.com/steinbergmedia/vstgui
  - Please use github if you want to contribute to VSTGUI.
- VST3PluginTestHost: VST 3 Plug-in Test Host
  - fix support of SingleComponent
- new Developer Forum:
  - finally we get our VST forum at start, please check https://sdk.steinberg.net and use it as new communication platform, the VST mailing list will be kept as archive mailing list.

# Version 3.6.5 (2015/08/28)

- Interfaces Changes:
  - New Steinberg::Vst::ChannelContext::IInfoListener interface: informing the Plug-in about the channel in which it is instanciated (name, color...)
  - New Steinberg::Vst::IPrefetchableSupport interface: allowing a Plug-in to inform the host that it does not support prefetch/ASIO Guard (could be dynamically)
  - New Steinberg::Vst::IUnitHandler2 interface: allowing a Plug-in to inform the host that an assignment Unit-Bus defined by IUnitInfo::getUnitByBus has changed
  - New Steinberg::Vst::IAutomationState interface: informing the Plug-in about its current automation state
  - use "#pragma once" instead of "#ifndef"
- Samples:
  - New VST 3 Plug-ins examples:
    - New VST 3 Plug-in ChannelContext showing how Steinberg::Vst::ChannelContext::IInfoListener interface is working
    - New VST 3 Plug-in PrefetchableSupport showing how Steinberg::Vst::IPrefetchableSupport interface is working
  - "VST3 Host Checker" Plug-in updated with new checks
- Plug-in Wrappers:
  - VST 3 - Audio Unit Wrapper :
    - support MIDI output
    - fix crash with namespace conflict with Mac OS X 10.10
    - add PresetAttributes::StateType support in AUWrapper::restoreState
- New Flags/Enums:
  - New predefined 3D Speaker Arrangements: k91Atmos
- VST3PluginTestHost: VST 3 Plug-in Test Host
  - add some new unit tests: Bypass parameter support is mandatory for FX Plug-in (not Instrument)!

# Version 3.6.0 (2013/11/22)

- Interfaces Changes:
  - Preset meta information via Steinberg::Vst::IStreamAttributes
  - New Event Types: Steinberg::Vst::ChordEvent, Steinberg::Vst::ScaleEvent
- Plug-in Wrappers:
  - iOS Inter-App Audio support
  - VST 3 - VST 2.x Wrapper :
    - fix when changing from host between single and double precision processing
    - fix setProgram and processMidiEvent for kProgramChangeStatus where the wrong idx was used for programChange Parameter
  - VST 3 - Audio Unit Wrapper :
    - adopt to new AUPlugIn API in Mac OS X 10.7
    - virtual destructor for NSDataIBStream
- New Flags/Enums:
  - New predefined 3D Speaker Arrangements: k81MPEG3D, k222
- Helpers Classes:
  - fix compilation for UNICODE_OFF enable
- Samples:
  - New VST 3 HostChecker Plug-in
- VSTGUI 4.2
  - Update to the final 4.2 release including iOS support
- VST3PluginTestHost: VST 3 Plug-in Test Host
  - New feature: Overwrite Plug-in Name in VST3 Presets
- Licensing has changed! Please read the new license agreement VST 3 Licensing Issues.
- Xcode 5 note: To successfully build the examples for Mac OS X you need to change the SDKROOT variable in base/mac/config/settings/sdk_deployment_10_6.xcconfig to macosx10.8 .

# Version 3.5.2 (2012/09/25)

- Interfaces Changes:
  - Note Expression supports a new event type: NoteExpressionTextEvent
- Samples:
  - Fix Visual Studio 2010 projects (filters added)
  - Adaptation for XCode4 (The again sample project uses VSTGUI 3.6 which needs the 10.6 SDK for the 32 bit build, in later Xcode tools this SDK is not available. If you use VSTGUI 3.6 you need to use a Xcode version which has the 10.6 SDK or earlier included.)
- Plug-in Wrappers:
  - VST 3 - Audio Unit Wrapper :
    - fix noteOn and noteOff offset
    - fix RestoreState with IO bus changes
    - MIDI PolyPressure support added
    - non-automatable parameters have now FlagAudioUnitParameterFlag_NonRealTime AU flag
    - fix under Logic where sample rate was not set for mono track
  - VST 3 - VST 2.x Wrapper :
    - fix getMidiProgramCategory
- New Flags/Enums:
  - New predefined Speaker Arrangements: 9.0/9.1/10.0/10.1/11.0/11.1/13.0/13.1 based on Auro 3D definition (www.auro-technologies.com).
- Helpers Classes:
  - New in Base:
    - class Steinberg::Region
    - class Steinberg::IStreamWrapper
    - Helper Steinberg::HexBinary : HexBinary encoding and decoding
- Some documentation changes
  - Steinberg::Vst::IParameterFinder : To enable important functionalities (like AI Knob) a recommendation to implement this interface was added.
  - The VST3 Plug-in locations priority has been changed: Application level should be scanned from host after Global level.
- Licensing change for example source code files

# Version 3.5.1 (2011/11/11)

- Interfaces Changes:
  - due to a missing calling convention in IContextMenu interfaces, we had to generate new iids for this set of interfaces, Steinberg hosts will be updated (from 6.0.5) in order to support correctly this interface set. The old interfaces when already used will continue to be supported in Steinberg hosts. Sorry for this issue...
- Helpers Classes:
  - EditController is now one of the base classes of SingleComponentEffect
    - If you have used the SingleComponentEffect before, make sure that you must exclude vsteditcontroller.cpp now if it was in your project
  - EditControllerEx1 has a new function: setProgramName
  - ProgramList has a new function: setProgramName
- Samples:
  - Add Visual Studio 2010 projects
  - Remove Visual Studio 2003 projects
  - Fix AGain Single Component Effect
- VSTGUI 4.0
  - Update to the final 4.0 release
- Plug-in Wrappers:
  - VST 3 - VST 2.x Wrapper :
    - fix an issue with destroying the editor
  - VST 3 - Audio Unit Wrapper :
    - fix initial editor size issue
    - optimization for GetParameterInfo
- VST3PluginTestHost: VST 3 Plug-in Test Host
  - New feature: Convert VST3 Preset to VST2 preset (fxp or fxb)

# Version 3.5.0 (2011/02/04)

- New Interfaces:
  - Steinberg::Vst::INoteExpressionController : Note Expression Support.
  - Steinberg::Vst::IKeyswitchController : Key Switch Support (used for building VST Expression Map in Cubase 6 for example).
  - Steinberg::Vst::IXmlRepresentationController : Remote Representation of Parameters Support (allows to define different parameter mappings for different remotes device).
  - Steinberg::Vst::IEditControllerHostEditing : Parameter editing from host/remote control (better support of linked parameters when editing from remote control)
  - Steinberg::Vst::IComponentHandler3 / Steinberg::Vst::IContextMenu / Steinberg::Vst::IContextMenuTarget : Context Menu Support (allows the Plug-in to create a context menu for a given parameter, partially filled by the host).
- New Flags/Enums:
  - Add new restart flag: Steinberg::Vst::kIoTitlesChanged : informing the host about titles changes of buses.
- Helpers Classes:
  - New Steinberg::Vst::XmlRepresentationHelper : helper for constructing a remote representation (xml based). See Remote Representation of Parameters Support.
  - Steinberg::Vst::EditControllerEx1 : support of ProgramPitchNames added.
- Samples:
  - New VST 3 instrument examples:
    - Instrument "Note Expression Synth" supporting Note Expression Events
    - Effect showing support of pitchnames (ProgramPitchNames)
- Validator:
  - More command line options
  - Possibility to add custom tests by the Plug-in
- VSTGUI 4.0
  - preview version of VSTGUI with optimal VST 3 support
- Plug-in Wrappers:
  - VST 3 - Audio Unit Wrapper fixes and support of Program changes
- Some documentation changes

# Version 3.1.0 (2010/06/25)

- Restructuring of the SDK :
  - new Base Module (many useful classes, such as templates and containers)
  - Renamed the file public.sdk/source/main/pluginfactory.cpp to public.sdk/source/main/pluginfactoryvst3.cpp
  - Renamed the file public.sdk/source/main/pluginfactory.h to public.sdk/source/main/pluginfactoryvst3.h
  - Renaming Microsoft Visual Projects
- New Interfaces:
  - Steinberg::Vst::IEditController2 : support for setKnobMode/openHelp/openAboutBox
  - Steinberg::Vst::IComponentHandler2 : support for parameter group editing from Plug-in UI, dirty state and request host to open the Plug-in editor
  - Steinberg::Vst::IAudioPresentationLatency : informs the Plug-in about the Audio Presentation Latencies (in/out)
- New Event Structure:
  - Steinberg::Vst::PolyPressureEvent : Polypressure event support
- New Flags/Enums:
  - New Plug-in Types used for subCategories : PlugType::kMono, PlugType::kStereo, PlugType::kSurround (FAQ)
  - New parameter flag ParameterInfo::kIsList : flags the parameter as a list of discrete string values
  - New IoModes enum : Steinberg::Vst::IoModes::kOfflineProcessing used with setIoMode when the Plug-in is used in an offline processing context
- Plug-ins Wrappers:
  - New VST 3 - VST 2.x Wrapper : by just adding small initializing code, you can provide a VST 2.x version of your VST 3 Plug-in
  - New VST 3 - Audio Unit Wrapper with just a few build settings, you can provide AU support with your VST 3 Plug-in
- Samples:
  - New VST 3 Plug-ins examples: ADelay Plug-in, mda VST 3 Plug-ins (thanks Paul Kellet and Arne Scheffler)
  - Remove Visual Studio 2003 projects
  - Clean up AGain and add separate version supporting side-chain
- New features of the VST 3 Plug-in Test Host :
  - MIDI Input support
  - better ASIO support
  - Mac 64 bit support (Cocoa view support also in 32 bit)
- Fixes in Validator
- Some documentation changes

# Version 3.0.2 (2009/01/15)

- New Interface:
  - Steinberg::Vst::IParameterFinder : Extension for IPlugView to find view parameters (lookup value under mouse support)
- Samples:
  - Adaptation of AGain example for support of interface IParameterFinder
- Some documentation changes

# Version 3.0.1 (2008/03/19)

- New Interface:
  - Steinberg::Vst::IMidiMapping : allowing to support MIDI Controllers and Pitchbend
- New Flags/Enums:
  - Add new restart flag: Steinberg::Vst::kMidiCCAssignmentChanged
- Restructuring of the SDK :
  - Move RestartFlags from vstTypes.h to ivsteditcontroller.h
  - Restructured helper classes by adding new files vstbus.cpp and vstparameters.cpp
  - Change the default refcount implementation of Steinberg::FUnknown (IMPLEMENT_REFCOUNT) to use atomic operations
  - Change InitModule/ExitModule to be called from host and not in DllMain (Cubase 4.2 needed)
  - Rename Steinberg::Vst::IUnitData to Steinberg::Vst::IProgramListData and introduce new interface Steinberg::Vst::IUnitData
- Helpers Classes:
  - Add new helper class EditControllerEx1 : extend of EditController with Unit support
  - Add new helper class Steinberg::Vst::SingleComponentEffect for single component effects
- Samples:
  - AGain example has been extended : supports IMidiMapping, Side-chain and Unit
  - Add Visual Studio 2008 solution
- Documentation
  - Rework
  - Add some new FAQs

# Version 3.0.0 (2008/01/17)

- Public Release of VST SDK 3.0

Empty

Copyright ©2018 Steinberg Media Technologies GmbH. All Rights Reserved. This documentation is under this license.