Robbert van der Helm
c7f9b12ca6
Add clap_plugin msgs for everything except process
2022-09-11 19:18:03 +02:00
Robbert van der Helm
c0c2a61f03
Move PrimitiveWrapper to serialization common
2022-09-11 19:18:03 +02:00
Robbert van der Helm
6865cbd937
Implement CLAP plugin initialization
2022-09-11 19:18:03 +02:00
Robbert van der Helm
bc2bad3e94
Add constructors for reading extension support
2022-09-11 19:18:03 +02:00
Robbert van der Helm
7ea29cdfed
Add message structs for initializing plugins
2022-09-11 19:18:03 +02:00
Robbert van der Helm
d2fb84e529
Add CLAP plugin destroying
...
Everything else is still a stub, but at least the lifecycle now works
correctly.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
423534f373
Implement Wine side for creating plugin instances
2022-09-11 19:18:03 +02:00
Robbert van der Helm
e74c25445d
Add messages for creating plugin instances
2022-09-11 19:18:03 +02:00
Robbert van der Helm
bba5d34d41
Add a serialization struct for clap_host data
2022-09-11 19:18:03 +02:00
Robbert van der Helm
49e3f7ff1e
Capitalize CLAP plugin descriptor class name
...
To stay consistent with the rest of the naming.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
d0aeeaba2a
Move CLAP version clamping to a function
2022-09-11 19:18:03 +02:00
Robbert van der Helm
41b2c2ea72
Fix bridged CLAP plugin names
2022-09-11 19:18:03 +02:00
Robbert van der Helm
c36590abf5
Add a basic CLAP plugin factory implementation
...
Which can only list plugins without creating them.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
6098ebc778
Add a TODO for speeding up VST3 compilation
2022-09-11 19:18:03 +02:00
Robbert van der Helm
ec8028f78c
Allow serializing CLAP plugin factory list message
2022-09-11 19:18:03 +02:00
Robbert van der Helm
edc0cbbe38
Add serialization for enumerating CLAP factories
2022-09-11 19:18:03 +02:00
Robbert van der Helm
653a3a88cb
Add serialization for CLAP plugin descriptors
2022-09-11 19:18:03 +02:00
Robbert van der Helm
38187241d4
Add a document outlining CLAP support status
2022-09-11 19:18:03 +02:00
Robbert van der Helm
7a60cf37ea
Fix typos
2022-09-11 19:18:03 +02:00
Robbert van der Helm
b7b6dff922
Add minimal boilerplate for CLAP serialization
2022-09-11 19:18:03 +02:00
Robbert van der Helm
6df0741195
Prefix top level VST3 message types
...
CLAP will use a similar structure. Alternatively we could use
namespaces, but while that would solve clashes for the linker with the
way namespaces in C++ work it would still be ambiguous which one is
being referred to just looking at the code.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
5b4dbdd890
Move get_request_variant template function
...
This needs to be specialized for the CLAP and VST3 request variant
types.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
9edb4aa567
Move WantsConfiguration to common
...
We'll also need this for CLAP.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
4ca7ea17b2
Change terminology from 'VST' to 'plugin'
2022-09-11 19:18:03 +02:00
Robbert van der Helm
bf7280fc7e
Move Vst3MessageHandler to common and make generic
...
CLAP will use the same strategy.
2022-09-11 19:18:03 +02:00
Robbert van der Helm
637176541d
Remove old TODOs
2022-06-08 14:57:16 +02:00
Robbert van der Helm
d9de22ddbd
Add support for VST2 effBeginLoad{Bank,Program}
...
A user reported that REAPER was using these on the REAPER forum, but I
have not been able to reproduce that. And they went MIA after posting
about it. But hopefully this helps.
2022-06-08 14:27:04 +02:00
Robbert van der Helm
65cf9cd782
Increase VST2 buffer and MIDI serialization limits
...
This really, really shouldn't be needed, but some plugins do weird
things.
2022-05-26 12:57:18 +02:00
Robbert van der Helm
39605ef465
Increase MIDI event count limits for VST2
...
This really shouldn't be needed, but apparently there are plugins that
output more than 2048 events per buffer.
https://github.com/robbert-vdh/yabridge/issues/35#issuecomment-1138176117
2022-05-26 12:56:35 +02:00
Robbert van der Helm
03c2acd578
Add a todo on the VST 3.7.5 moduleinfo format
...
Supporting this in yabridge would require parsing JSON. So unless this
feature is actually used, we should probably not bother.
2022-05-19 22:31:16 +02:00
Robbert van der Helm
162aeed661
Only set up VST3 SHM audio buffers in setActive()
...
This avoids doing the duplicate check (since both `setProcessing()` and
`setActive()` would be called), and this also gets rid of the assumption
added a couple commits ago that `setupProcessing()` is only ever called
once, which is not true.
2022-05-19 14:43:59 +02:00
Robbert van der Helm
8c10edf861
Add explicit virtual default destructors
...
We need to silence the warning about this because Steinberg doesn't
declare their base class destructors as virtual (because of Windows ABI
compatibility issues). But we can still do it inside of yabridge to have
at least a bit more safety.
2022-05-18 18:44:15 +02:00
Robbert van der Helm
dedcdefebf
Allow resizing shared memory buffers in setActive
...
REAPER apparently changes bus arrangements between
`IAudioProcessor::setupProcessing()` and `IAudioProcessor::setActive()`.
2022-05-18 18:16:14 +02:00
Robbert van der Helm
1fec4c8860
Change the description in the GPL header
2022-04-16 20:37:10 +02:00
Robbert van der Helm
b2a15620f3
Swap Boost.Container's small_vector out for LLVM's
...
This implementation misses a shrink to fit function, but reassigning the
vector with a fresh one should be equivalent.
2022-04-16 20:37:10 +02:00
Robbert van der Helm
4c4421d3e3
Don't requery the VST3 param change queues length
...
Since this shouldn't be able to change. Should speed up parameter
handling when many parameters are being automated.
2022-03-09 17:43:25 +01:00
Robbert van der Helm
c625deadef
Proxy host context menu items for VST3 plugins
...
This wasn't implemented yet because no plugin tried using the interface
in this way before this, but Surge XT incorporates the host's context
menu items into their own (much more elaborate) context menu. To
accommodate this, we now copy over all of the host's prepopulated
context menu items to the Wine plugin host, and calling the targets
associated with any of those items will cause the target on the
associated context menu item on the host to be called.
This is slightly more complicated than what would otherwise be necessary
because Bitwig does not assign tags to their context menu items and
instead always uses 0.
2022-01-03 17:04:00 +01:00
Robbert van der Helm
0e3aba1870
Move the VST3 context menu target implementation
...
So it can also be used on the Wine side in a bit.
2022-01-03 14:12:25 +01:00
Robbert van der Helm
0b9a16cf40
Change the naming scheme for class field members
...
I'm not a fan of Hungarian notation, but C++ kind of needs it with its
implicit `this`. And of all the common options for this, I find
suffixing members with an underscore the least offensive one.
2022-01-01 21:07:17 +01:00
Robbert van der Helm
e0ab24e645
Update copyright headers
...
Happy new year!
2022-01-01 18:32:10 +01:00
Robbert van der Helm
0c9c4686f1
Use the small buffer optimization for VST3 SysEx
...
We apparently didn't do that yet. SysEx should be super rare (outside of
octave switching on Arturia keyboards), but there's still no reason not
to do it.
2021-09-23 14:29:12 +02:00
Robbert van der Helm
e6f0fe16d8
Target VST3 SDK version 3.7.3
2021-08-10 17:14:48 +02:00
Robbert van der Helm
9160de6483
Implement VST2 SysEx events
...
Apparently these _are_ actually used. Sometimes.
2021-08-04 21:40:09 +02:00
Robbert van der Helm
0c816b0046
Only ignore -Wmaybe-uninitialized on GCC
...
An ifdef sounds like a better approach than ignoring two additional
warnings.
2021-07-14 17:18:44 +02:00
Robbert van der Helm
f292158889
Silence some more clangd warnings
2021-07-14 17:11:27 +02:00
Robbert van der Helm
5fc7acccd1
Show a notification on version mismatch
...
Between the plugin and the Wine plugin host application.
2021-07-13 22:14:31 +02:00
Robbert van der Helm
a58a1ab111
Update parameter name in header
...
Apparently this wasn't saved yet when I commited
a06d0bc515 .
2021-07-05 18:29:04 +02:00
Robbert van der Helm
a06d0bc515
Actually update the supported interface status
...
With this Waves VST3 plugins now work. But was it worth it?
2021-07-05 16:48:24 +02:00
Robbert van der Helm
4e4bbe1ba4
Replace const-rvalue with rvalue
...
Since const-rvalue doesn't make any sense.
2021-07-05 16:39:11 +02:00
Robbert van der Helm
1397400155
Reload supported interfaces after IPluginBase::initialize()
...
This is needed as a workaround to support Waves VST3 plugins.
Right now does does not actually fix the issue because the arguments are
not updated in the subclasses. The next commit will fix this.
2021-07-05 16:08:01 +02:00