1
0
Fork 0
Commit graph

647 commits

Author SHA1 Message Date
Robbert van der Helm
b88707769a Add a way to find out the current plugin API 2022-04-21 21:27:36 +02:00
Robbert van der Helm
2bc77ed691 Work around vst3-sys not allowing #[cfg()] fields 2022-04-20 20:44:07 +02:00
Robbert van der Helm
6ae05eb01b Log assertion failure if a VST3 resize is denied 2022-04-20 20:35:44 +02:00
Robbert van der Helm
8966ca5280 Fix C++ interface pointer transmutes
These are supposed to be pointers to vtable pointers.
2022-04-20 20:25:59 +02:00
Robbert van der Helm
5d343f7873 Also perform resize requests using the run loop 2022-04-20 19:52:02 +02:00
Robbert van der Helm
98924a5728 Use the host's run loop to handle VST3 tasks 2022-04-20 19:51:26 +02:00
Robbert van der Helm
37b62e4278 Add an IRunLoop event runner on Linux 2022-04-20 19:44:03 +02:00
Robbert van der Helm
4fa54ceabe Add an object for implementing IEventLoop
We can't do this directly on WrapperView because of vst3-sys
limitations.
2022-04-20 17:18:41 +02:00
Robbert van der Helm
f3bb552cfe Get a reference to the host's IRunLoop 2022-04-20 17:03:15 +02:00
Robbert van der Helm
55aabcea31 Add a note for PolyPressure + MPE 2022-04-20 16:48:37 +02:00
Robbert van der Helm
8eaecb6e5c Add a way to completely exclude the vst3-sys dep
Because technically you might still include GPL'd symbols even if you
wouldn't use the `nih_export_vst3!()` macro.
2022-04-15 16:14:42 +02:00
Robbert van der Helm
0fd9a68146 Move u16strlcpy to the VST3 wrapper utils module 2022-04-15 16:13:14 +02:00
Robbert van der Helm
7b24dea719 Clarify param_map() docstring 2022-04-13 20:20:27 +02:00
Robbert van der Helm
877eeadc7f Add a todo for implementing FTZ for AArch64 2022-04-12 02:08:41 +02:00
Robbert van der Helm
54db43f48d Fix c_char usage on AArch64
Apparently char is unsigned on AArch64.
2022-04-12 02:06:29 +02:00
Robbert van der Helm
3c69fb72cf Make parameter names owned
That way you can generate parameters with custom `Params`
implementations.
2022-04-11 23:27:36 +02:00
Robbert van der Helm
ad50852aeb Fix CLAP event output struct sizes 2022-04-11 20:53:25 +02:00
Robbert van der Helm
5e486ab3d9 Explicitly handle 0 channel IO
Instead of treating it as a flush. This is needed for note effect
plugins.
2022-04-11 20:46:51 +02:00
Robbert van der Helm
e0c5a3f5e4 Fix default accepts_bus_config implementation
This should use the constants.
2022-04-11 20:46:51 +02:00
Robbert van der Helm
65d87f87ed Add a way to output note events
This supports all note events supported by NIH-plug, and both CLAP and
VST3.
2022-04-11 20:46:51 +02:00
Robbert van der Helm
1f8db9d9c2 Mention NoteEvents being zero indexed 2022-04-11 19:48:07 +02:00
Robbert van der Helm
8219d5f2b8 Add an example for next_event() 2022-04-11 18:25:01 +02:00
Robbert van der Helm
e4606918e7 Rename next_midi_event() to next_event() 2022-04-11 18:15:14 +02:00
Robbert van der Helm
329d1a63ab Use $crate in the macros to refer to other macros
So you don't need to import all of them for them to work.
2022-04-11 17:44:54 +02:00
Robbert van der Helm
4e5afc152a Add a basic docstring to the Params module 2022-04-11 17:38:20 +02:00
Robbert van der Helm
1e12fbe3f5 Add a feature flag to enable doc_auto_cfg 2022-04-11 16:41:09 +02:00
Robbert van der Helm
c3b1ded35b Fix links in docs 2022-04-11 16:23:34 +02:00
Robbert van der Helm
84d91d8826 Update dependencies for CLAP
The signature for this function was incorrect.
2022-04-11 16:18:39 +02:00
Robbert van der Helm
5b5bbf19f7 Prefix all polyphonic expressions with Poly
Makes it much more obvious that they're polyphonic at a glance.
2022-04-11 15:57:27 +02:00
Robbert van der Helm
63ad2b2cb8 Parse redundant CLAP MIDI events just in case 2022-04-11 15:56:33 +02:00
Robbert van der Helm
476dfb9f81 Fix compilation failure from f0303fe 2022-04-09 12:12:34 +02:00
Robbert van der Helm
33c2d8288b Don't warn on parameter hash overflow
But do mention overflows in the duplicate parameter warning.
2022-04-09 11:47:23 +02:00
Robbert van der Helm
f0303fed4b Remove now unnecessary input events sort
This was added in anticipation of having to merge the parameter change
MIDI CC events into the events stream, but VST3 threw a curveball and
now we need to do the sorting one step earlier.
2022-04-09 11:32:20 +02:00
Robbert van der Helm
52d7b47a24 Improve block splitting transport information
Don't do any recomputations at the start of the buffer, and also
recompute the bar positions and numbers.
2022-04-08 23:10:38 +02:00
Robbert van der Helm
8db35aaf9d Remove notes about VST3 support for events 2022-04-08 20:59:46 +02:00
Robbert van der Helm
c082085711 Remove todo about adding more event types 2022-04-08 20:57:52 +02:00
Robbert van der Helm
1a8f81e4c0 Support MIDI CCs, aftertouch, pitch bend for VST3
This required rewriting the way events and parameter changes are handled
for VST3 by putting them all in a single sorted array, because we can
now no longer read directly from the host's events list because we also
need to mix these new generated MIDI CC events in with it.
2022-04-08 20:53:32 +02:00
Robbert van der Helm
059c733b78 Handle predefined VST3 note expressions 2022-04-08 17:49:13 +02:00
Robbert van der Helm
2a4a61947f Update reasoning for clearing last param ID bit 2022-04-08 00:02:28 +02:00
Robbert van der Helm
9740246d0a Always sort VST3 note events in prep for CCs
So we won't forget to add this then. CC messages come from the parameter
change queues while regular note event messages come from another queue,
so they need to be merged into one sorted queue.
2022-04-07 23:57:56 +02:00
Robbert van der Helm
4abefe23cf Mention lack of VST3 support for new note events 2022-04-07 23:37:49 +02:00
Robbert van der Helm
24837d1552 Implement full MIDI support for CLAP 2022-04-07 23:28:31 +02:00
Robbert van der Helm
0b3a5cd297 Support all of the CLAP expression types
These aren't supported for VST3 yet, we'll need to register note
expression controllers for that.
2022-04-07 21:17:31 +02:00
Robbert van der Helm
b9a10455bb Add polyphonic aftertouch support 2022-04-07 20:55:31 +02:00
Robbert van der Helm
1141616466 Replace ACCEPTS_MIDI bool with new enum
So we can gate future MIDI CC support behind an additional option since
this involves more work on the VST3 side.
2022-04-07 20:27:37 +02:00
Robbert van der Helm
8f359feadb Store velocity as a float
Instead of converting this to a 0-127 value. We may be throwing away
precision otherwise.
2022-04-07 20:12:30 +02:00
Robbert van der Helm
2af3f84416 Rename State to PluginState
Now that it is part of the public API.
2022-04-07 17:39:34 +02:00
Robbert van der Helm
84bac0a47c Spool param rescan call to the GUI thread
Otherwise the CLAP example host std::terminates, and we can also reuse
the existing restart task for the VST3 wrapper.
2022-04-07 17:25:12 +02:00
Robbert van der Helm
d0064f87d6 Add state saving and restoring through GuiContext
While preventing any possible data races.
2022-04-07 17:19:24 +02:00
Robbert van der Helm
7ca855b3fc Make State cloneable
This is needed for user preset support.
2022-04-07 16:50:02 +02:00