Robbert van der Helm
b5dd806b2d
Cache VST3 parameter information
...
This is in some cases needed to get decent performance in REAPER, as
REAPER seems to query this information (which cannot change without the
plugin requesting a restart) four times per second.
2021-01-30 22:24:05 +01:00
Robbert van der Helm
1043776e52
Differentiate between cached values in logs
...
If it turns out we forgot to flush this cache in some place.
2021-01-30 13:56:58 +01:00
Robbert van der Helm
68e10cd24c
Flush the bus info cache in more places
...
The current approach 'works', but better err on the safe side. Once this
caching layer is no longer necessary we should just remove it.
2021-01-30 13:48:42 +01:00
Robbert van der Helm
10b7930779
Also clear bus cache on IAudioProcessor::setActive
...
Now we need a workaround for our REAPER workaround because REAPER
doesn't follow the audio processing workflow diagram, amazing!
2021-01-30 01:42:20 +01:00
Robbert van der Helm
6339618984
Fix response logging filtering with bus info cache
...
The response logging wasn't getting filtered.
2021-01-30 00:45:45 +01:00
Robbert van der Helm
f5b4a28bd0
Cache bus information during processing
...
This works around an issue with REAPER. During every processing cycle
REAPER would query how many input and output busses we have, and it
would then enumerate over all of those busses. This meant that if a VST3
plugin has 32 output busses, then REAPER will do 34 extra function calls
before processing audio.
2021-01-30 00:02:06 +01:00
Robbert van der Helm
77414c80d6
Allow null pointers in IEditController::setComponentHandler
2021-01-24 14:51:18 +01:00
Robbert van der Helm
d5e4424463
Also sync VST3 audio thread scheduling priorities
...
The exact same thing as the last commit, but for VST3 plugins.
2021-01-23 15:22:10 +01:00
Robbert van der Helm
d3d57a3fe0
Use UID conversion for GetControllerClassId
2021-01-22 14:13:27 +01:00
Robbert van der Helm
1c6d3f8fd9
Fully implement IParameterFunctionName
...
We now support all VST 3.7.1 interfaces! At least, in theory we do.
2021-01-17 14:17:46 +01:00
Robbert van der Helm
3d8ee1ddf1
Add stubs for IParameterFunctionName
2021-01-17 13:23:17 +01:00
Robbert van der Helm
aa1a7a1588
Fully implement IProgress
...
`IParameterFunctionName` will be the last interface before we _in
theory_ support all VST3 features.
2021-01-17 00:19:48 +01:00
Robbert van der Helm
9ddf4b2ae1
Fully implement IProcessContextRequirements
2021-01-16 16:29:21 +01:00
Robbert van der Helm
a2203cfef7
Add stubs for IProcessContextRequirements
2021-01-16 16:09:31 +01:00
Robbert van der Helm
73fda0b568
Fully implement IPlugInterfaceSupport
...
With this we support all VST 3.6.12 interfaces.
2021-01-16 15:19:10 +01:00
Robbert van der Helm
7fdf646270
Fully implement IMidiLearn
2021-01-16 14:25:00 +01:00
Robbert van der Helm
85c1972c1f
Add stubs for IMidiLearn
2021-01-15 22:36:25 +01:00
Robbert van der Helm
6e8d56923c
Fully implement INoteExpressionPhysicalUIMapping
...
With this we support all VST 3.6.11 features.
2021-01-15 19:33:05 +01:00
Robbert van der Helm
c485677987
Add stubs for INoteExpressionPhysicalUIMapping
2021-01-15 19:08:06 +01:00
Robbert van der Helm
1d9b60b481
Fully implement IComponentHandlerBusActivation
...
We now support all VST 3.6.8 features. (or technically, also all VST
3.6.10 features)
2021-01-14 16:42:19 +01:00
Robbert van der Helm
631166d0bf
Fully implement IInfoListener
2021-01-12 17:04:07 +01:00
Robbert van der Helm
ccdb121f96
Add stubs for IInfoListener
2021-01-12 16:54:13 +01:00
Robbert van der Helm
87b270273f
Fully implement IPrefetchableSupport
2021-01-12 15:37:58 +01:00
Robbert van der Helm
7c081b458a
Add stubs for IPrefetchableSupport
2021-01-12 15:24:37 +01:00
Robbert van der Helm
5855ffbe85
Fully implement IUnitHandler2
2021-01-10 23:54:43 +01:00
Robbert van der Helm
a2d1a97309
Fully implement IAutomationState
2021-01-10 23:38:40 +01:00
Robbert van der Helm
cfa1aff1bf
Add stubs for IAutomationState
2021-01-10 23:32:55 +01:00
Robbert van der Helm
8971a65825
Pass through host provided IBStream objects
...
So if the host supports IStreamAttributes, we can also provide objects
that support the same itnerface to the plugin.
2021-01-10 16:57:36 +01:00
Robbert van der Helm
07a994089b
Add missing null pointer checks
...
I did double check, and I don't think any of these are supposed to be
nullable.
2021-01-08 18:33:14 +01:00
Robbert van der Helm
2fc7621aee
Fully implement XmlRepresentationController
2021-01-08 18:02:43 +01:00
Robbert van der Helm
2072310b2b
Add stubs for IXmlRepresentationController
2021-01-08 17:43:43 +01:00
Robbert van der Helm
30bb6d3b97
Fully implement IKeyswitchController
2021-01-08 17:12:17 +01:00
Robbert van der Helm
7969ec20fd
Add stubs for IKeyswitchController
2021-01-08 16:53:43 +01:00
Robbert van der Helm
5d5ec63fee
Fully implement IEditControllerHostEditing
2021-01-08 16:33:27 +01:00
Robbert van der Helm
eed068b9f7
Add stubs for IEditControllerHostEditing
2021-01-08 16:18:45 +01:00
Robbert van der Helm
83d45eef27
Implement the plugin side of IContextMenu
2021-01-07 16:19:41 +01:00
Robbert van der Helm
9e3c57476c
Implement the plugin side if IComponentHandler3
2021-01-06 22:25:23 +01:00
Robbert van der Helm
0e3b5af94e
Fully implement IAudioPresentationLatency
...
Now we support all VST 3.1.0 interfaces.
2021-01-04 22:33:44 +01:00
Robbert van der Helm
dcfbc34ba1
Add stubs for IAudioPresentationLatency
2021-01-04 22:17:19 +01:00
Robbert van der Helm
9983f81875
Fully implement IComponentHandler2
2021-01-04 21:56:14 +01:00
Robbert van der Helm
fb6e5ab33f
Fully implement IMidiMapping
2021-01-02 23:54:01 +01:00
Robbert van der Helm
e980afddb4
Add stubs for IMidiMapping
2021-01-02 23:49:47 +01:00
Robbert van der Helm
a8a0e325fe
Fully implement INoteExpressionCOntroller
2021-01-02 18:40:34 +01:00
Robbert van der Helm
8a4de7da53
Add stubs for INoteExpressionController
2021-01-02 15:27:55 +01:00
Robbert van der Helm
34f8d3b1d2
Update the copyright notices for 2021
2021-01-01 18:54:02 +01:00
Robbert van der Helm
9d24d422d1
Log successful FUnknown::queryInterface calls
2020-12-31 13:13:39 +01:00
Robbert van der Helm
3553b080fe
Implement IUnitData
...
With this all VST 3.0.0 interfaces are finally supported.
2020-12-29 22:00:22 +01:00
Robbert van der Helm
bddcc40e24
Implement IProgramListData on the plugin side
...
With this the interface is fully implemented.
2020-12-29 19:11:12 +01:00
Robbert van der Helm
22269570d0
Add stubs for IProgramListData
2020-12-29 15:53:01 +01:00
Robbert van der Helm
4226ab6e43
Pass pointers to IMessage objects around
...
Instead of serializing the actual `YaMessage`, for the reasons mentioned
in the comments. This was needed to stop iZotope VocalSynth 2 in Ardour
from segfaulting when editing parameters, because that plugin is
apparently being very naughty.
2020-12-29 00:22:42 +01:00