Files
yabridge/src/common/serialization/vst3
Robbert van der Helm 70cb6dad89 Allow indirect IConnectionPoint connections
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.
2020-12-25 14:21:18 +01:00
..
2020-12-25 00:54:08 +01:00
2020-12-19 20:18:45 +01:00
2020-12-25 01:01:13 +01:00
2020-12-25 01:01:13 +01:00
2020-12-22 13:26:54 +01:00
2020-12-22 13:26:54 +01:00
2020-12-19 20:18:45 +01:00
2020-12-25 13:28:03 +01:00

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.