Files
yabridge/src/common/serialization/vst3/README.md
T
Robbert van der Helm f944bf4a39 Fully implement IContextMenu
Although all of this stuff is completely untested, and since no host on
Linux uses it we'll likely never know whether this implementation is
correct.
2021-01-07 16:47:28 +01:00

5.2 KiB

VST3 interfaces

See docs/vst3.md for more information on how the serialization works.

The following interfaces are not yet implemented:

  • Every interface introduced after VST 3.1.0, although most of the VST 3.5.0 interfaces have already been implemented
  • The Presonus extensions, although most of these things seem to overlap with newer VST3 interfaces

VST3 plugin interfaces are implemented as follows:

yabridge class Included in Interfaces
YaPluginFactory IPluginFactory, IPluginFactory2, IPluginFactory3
Vst3ConnectionPointProxy IConnectionPoint through YaConnectionPoint
Vst3PlugViewProxy All of the below:
YaParameterFinder Vst3PlugViewProxy IParameterFinder
YaPlugView Vst3PlugViewProxy IPlugView
Vst3PluginProxy All of the below:
YaAudioPresentationLatency Vst3PluginProxy IAudioPresentationLatency
YaAudioProcessor Vst3PluginProxy IAudioProcessor
YaComponent Vst3PluginProxy IComponent
YaConnectionPoint Vst3PluginProxy IConnectionPoint
YaEditController Vst3PluginProxy IEditController
YaEditController2 Vst3PluginProxy IEditController2
YaMidiMapping Vst3PluginProxy IMidiMapping
YaNoteExpressionController Vst3PluginProxy INoteExpressionController
YaPluginBase Vst3PluginProxy IPluginBase
YaProgramListData Vst3PluginProxy IProgramListData
YaUnitData Vst3PluginProxy IUnitData
YaUnitInfo Vst3PluginProxy IUnitInfo

VST3 host interfaces are implemented as follows:

yabridge class Included in Interfaces
Vst3HostContextProxy All of the below:
YaHostApplication Vst3HostContextProxy IHostApplication
Vst3ComponentHandlerProxy All of the below:
YaComponentHandler Vst3ComponentHandlerProxy IComponentHandler
YaComponentHandler2 Vst3ComponentHandlerProxy IComponentHandler2
YaComponentHandler3 Vst3ComponentHandlerProxy IComponentHandler3
YaUnitHandler Vst3ComponentHandlerProxy IUnitHandler
Vst3ContextMenuProxy All of the below:
YaContextMenu Vst3ContextMenuProxy IContextMenu
Vst3PlugFrameProxy All of the below:
YaPlugFrame Vst3PlugFrameProxy IPlugFrame

The following host interfaces are passed as function arguments and are thus also implemented for serialization purposes:

yabridge class Interfaces Notes
YaAttributeList IAttributeList
YaContextMenuTarget IContextMenuTarget Used in YaContextMenu to proxy specific menu items
YaEventList IEventList Comes with a lot of serialization wrappers around the related structs
YaMessage IMessage
YaMessagePtr IMessage Should be used in inter process communication to exchange messages
YaParameterChanges IParameterChanges
YaParamValueQueue IParamValueQueue
VectorStream IBStream Used for serializing data streams

And finally YaProcessData uses the above along with YaAudioBusBuffers to wrap around ProcessData.