mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-08 04:20:13 +02:00
70cb6dad89
This is needed to support Ardour. These extra hops and serialization steps will probably hurt performance, but outside of some huge hacks (to connect the components directly anyways) there's not much else we can do.
VST3 interfaces
TODO: After merging into master, update this link to just point to GitHub
See docs/vst3.md for more information on how the serialization works.
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: | |
YaPlugView |
Vst3PlugViewProxy |
IPlugView |
Vst3PluginProxy |
All of the below: | |
YaAudioProcessor |
Vst3PluginProxy |
IAudioProcessor |
YaComponent |
Vst3PluginProxy |
IComponent |
YaConnectionPoint |
Vst3PluginProxy |
IConnectionPoint |
YaEditController |
Vst3PluginProxy |
IEditController |
YaEditController2 |
Vst3PluginProxy |
IEditController2 |
YaPluginBase |
Vst3PluginProxy |
IPluginBase |
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 |
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 |
|
YaEventList |
IEventList |
Comes with a lot of serialization wrappers around the related structs. |
YaMessage |
IMessage |
|
YaParameterChanges |
IParameterChanges |
|
YaParamValueQueue |
IParamValueQueue |
|
VectorStream |
IBStream |
Used for serializing data streams. |
And finally YaProcessData uses the above along with YaAudioBusBuffers to
wrap around ProcessData.