Commit Graph

1748 Commits

Author SHA1 Message Date
Robbert van der Helm dd0ef70d3e Add CLAP module detection 2022-09-11 19:18:03 +02:00
Robbert van der Helm 707092086e Interact with CLAP bridge in libyabridge-clap.so 2022-09-11 19:18:03 +02:00
Robbert van der Helm 7206ed2621 Silence warning about unnecessary CLAP_EXPORT 2022-09-11 19:18:03 +02:00
Robbert van der Helm fcb2c85935 Add boilerplate for a CLAP plugin bridge 2022-09-11 19:18:03 +02:00
Robbert van der Helm eb2b12aa2b Add boilerplate for CLAP sockets 2022-09-11 19:18:03 +02:00
Robbert van der Helm 401ebb21ce Add minimal CLAP logger 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 dc54d082a8 Rename factory function in CLAP chainloader
For consistency
2022-09-11 19:18:03 +02:00
Robbert van der Helm 1820a82bef Update out of date VST3 socket docs 2022-09-11 19:18:03 +02:00
Robbert van der Helm 09e6c6494e Add a CLAP plugin type
These aren't handled anywhere yet
2022-09-11 19:18:03 +02:00
Robbert van der Helm 54c506c703 Rename VST3 log_init_exception for consistency 2022-09-11 19:18:03 +02:00
Robbert van der Helm 6be5fbbcf4 Mention the CLAP feature in the init message 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 ffad63d439 Add a CLAP chainloader
The functions it's supposed to load however don't exist yet.
2022-09-11 19:18:03 +02:00
Robbert van der Helm 98bb4a019b Add CLAP whenever mentioning yabridge libs 2022-09-11 19:18:03 +02:00
Robbert van der Helm beed7963ec Only set VST3 chainloader sources when enabled 2022-09-11 19:18:03 +02:00
Robbert van der Helm a172b0ad06 Add minimal boilerplate for a CLAP plugin 2022-09-11 19:18:03 +02:00
Robbert van der Helm ac0495bea2 Remove unused mutex from VST3 chainloader 2022-09-11 19:18:03 +02:00
Robbert van der Helm 36d2ca021b Bump VST3 dependency version 2022-08-22 18:37:47 +02:00
Robbert van der Helm 687bee34d5 Silence spurious maybe uninitialized warning 2022-06-14 14:47:07 +02:00
Robbert van der Helm 49526b1e7d Handle effGetProgramNameIndexed as mutually recursive
This fixes changing presets in Full Bucket's Ragnarök.
2022-06-14 14:40:17 +02:00
Robbert van der Helm 5e95c3b4e0 Make the VST3 bundle detection more specific
In yabridge itself.
2022-06-13 00:06:56 +02:00
Robbert van der Helm 61b141a0fe Inhibit event loop after IPluginBase::terminate()
This 'fixes' recent Arturia VST3 plugins crashing at the end of a plugin
scan in REAPER.
2022-06-11 22:53:13 +02:00
Robbert van der Helm 637176541d Remove old TODOs 2022-06-08 14:57:16 +02:00
Robbert van der Helm 818eeb2137 Remove unused include 2022-06-08 14:45:38 +02:00
Robbert van der Helm c598ca08e1 Update notifications for yabridge 4.0 2022-06-08 14:45:31 +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 3e73d60b78 Only resize VST3 shared memory buffers when needed
This is an optimization for the last commit (split into two for
readability's sake).
2022-05-18 18:16:14 +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 5d9029d839 Store process setup data instead of offline flag
This is needed later when potentially reallocating the shared memory
during setActive().
2022-05-18 17:40:19 +02:00
Robbert van der Helm 6efc69071e Fix building with -Dvst3=false #180 2022-05-14 13:19:20 +02:00
Robbert van der Helm 6b22ac6e66 Remove very insightful comment
Not quite sure how this got here.
2022-05-03 17:44:18 +02:00
Robbert van der Helm 89378e8862 Handle dlsym() failures in chainloaders better
If these ever fail (because the function names change, not that that
should happen anytime soon) then you'll now get the expected logging
output instead of it just printing an assertion failure to the terminal.
2022-04-21 14:21:26 +02:00
Robbert van der Helm 3970bc7f52 [yabridgectl] Set up in ~/.vst/yabridge by default
Instead of creating `.so` files next to the VST2 plugin's `.dll` files.
This behavior is still available as an option. #123
2022-04-17 20:27:47 +02:00
Robbert van der Helm ffddb06b28 Actually add the new merged host.cpp file
Kinda useful.
2022-04-16 23:29:57 +02:00
Robbert van der Helm b3efcf4e06 Merge yabridge-group.exe and yabridge-host.exe
They were 95% the same, so this makes a lot more sense this way. When
group host processes were introduced yabridge only did VST2 bridging,
but we already have a plugin type argument anyways so might as well
reuse that for group hosts.
2022-04-16 23:26:24 +02:00
Robbert van der Helm 4d9e865dd3 Define plugin and chainloader deps in own dir
Just like we already did for the plugin host.
2022-04-16 23:00:25 +02:00
Robbert van der Helm 470f4dfaaa Remove the with- prefix from the build options 2022-04-16 21:13:46 +02:00
Robbert van der Helm 773b101cd4 Update error messages for chainloading changes 2022-04-16 20:37:11 +02:00
Robbert van der Helm 8710b6d63d Add one last Hail Mary search to the chainloader 2022-04-16 20:37:11 +02:00
Robbert van der Helm 6f16eb5c76 Print library path in the initialization message
This is useful when chainloading, since it now tells you where eactly
it's loading the library from.
2022-04-16 20:37:11 +02:00