mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 20:10:13 +02:00
VST3 interfaces
See docs/architecture.md for more information on how the serialization works.
We currently support all official VST 3.7.5 interfaces minus
IPluginCompatibility, as that functionality is currently not used on Linux and
implementing it would require parsing JSON within yabridge.
VST3 plugin interfaces are implemented as follows:
| yabridge class | Included in | Interfaces |
|---|---|---|
Vst3PluginFactoryProxy |
All of the below: | |
YaPluginFactory3 |
IPluginFactory, IPluginFactory2, IPluginFactory3 |
|
Vst3ConnectionPointProxy |
IConnectionPoint through YaConnectionPoint |
|
Vst3PlugViewProxy |
All of the below: | |
YaParameterFinder |
Vst3PlugViewProxy |
IParameterFinder |
YaPlugView |
Vst3PlugViewProxy |
IPlugView |
YaPlugViewContentScaleSupport |
Vst3PlugViewProxy |
IPlugViewContentScaleSupport |
Vst3PluginProxy |
All of the below: | |
YaAudioPresentationLatency |
Vst3PluginProxy |
IAudioPresentationLatency |
YaAudioProcessor |
Vst3PluginProxy |
IAudioProcessor |
YaAutomationState |
Vst3PluginProxy |
IAutomationState |
YaComponent |
Vst3PluginProxy |
IComponent |
YaConnectionPoint |
Vst3PluginProxy |
IConnectionPoint |
YaEditController |
Vst3PluginProxy |
IEditController |
YaEditController2 |
Vst3PluginProxy |
IEditController2 |
YaEditControllerHostEditing |
Vst3PluginProxy |
IEditControllerHostEditing |
YaInfoListener |
Vst3PluginProxy |
IInfoListener |
YaKeyswitchController |
Vst3PluginProxy |
IKeyswitchController |
YaMidiLearn |
Vst3PluginProxy |
IMidiLearn |
YaMidiMapping |
Vst3PluginProxy |
IMidiMapping |
YaNoteExpressionController |
Vst3PluginProxy |
INoteExpressionController |
YaNoteExpressionPhysicalUIMapping |
Vst3PluginProxy |
INoteExpressionPhysicalUIMapping |
YaParameterFunctionName |
Vst3PluginProxy |
IParameterFunctionName |
YaPluginBase |
Vst3PluginProxy |
IPluginBase |
YaProcessContextRequirements |
Vst3PluginProxy |
IProcessContextRequirements |
YaPrefetchableSupport |
Vst3PluginProxy |
IPrefetchableSupport |
YaProgramListData |
Vst3PluginProxy |
IProgramListData |
YaUnitData |
Vst3PluginProxy |
IUnitData |
YaUnitInfo |
Vst3PluginProxy |
IUnitInfo |
YaXmlRepresentationController |
Vst3PluginProxy |
IXmlRepresentationController |
VST3 host interfaces are implemented as follows:
| yabridge class | Included in | Interfaces |
|---|---|---|
Vst3HostContextProxy |
All of the below: | |
YaHostApplication |
Vst3HostContextProxy |
IHostApplication |
YaPlugInterfaceSupport |
Vst3HostContextProxy |
IPlugInterfaceSupport |
Vst3ComponentHandlerProxy |
All of the below: | |
YaComponentHandler |
Vst3ComponentHandlerProxy |
IComponentHandler |
YaComponentHandler2 |
Vst3ComponentHandlerProxy |
IComponentHandler2 |
YaComponentHandler3 |
Vst3ComponentHandlerProxy |
IComponentHandler3 |
YaComponentHandlerBusActivation |
Vst3ComponentHandlerProxy |
IComponentHandlerBusActivation |
YaProgress |
Vst3ComponentHandlerProxy |
IProgress |
YaUnitHandler |
Vst3ComponentHandlerProxy |
IUnitHandler |
YaUnitHandler2 |
Vst3ComponentHandlerProxy |
IUnitHandler2 |
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 |
|
YaBStream |
IBStream, ISizeableStream, IStreamAttributes |
Used for serializing data streams |
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 |
And finally YaProcessData uses the above along with YaAudioBusBuffers to
wrap around ProcessData.