1
0
Fork 0
Commit graph

754 commits

Author SHA1 Message Date
Robbert van der Helm
015c554d79 Register the loggers for VST3 and CLAP plugins 2022-04-24 15:24:35 +02:00
Robbert van der Helm
5ae0bee3ee Use the new logger for the debug macros 2022-04-24 15:20:25 +02:00
Robbert van der Helm
88260c55c7 Log on lower verbosity in release builds
This will also strip away information.
2022-04-24 15:08:55 +02:00
Robbert van der Helm
3b0291b4f5 Add function for setting up file and windbg logs
And also writing panics to those logs.
2022-04-24 15:08:48 +02:00
Robbert van der Helm
a79099f573 Work around Bitwig VST3 note expressions bug
Bitwig will only send these note expression events if the plugin claims
to support at least one custom note expression type, and if it returns
`kResultOk` on `INoteExpressionController::get_note_expression_info()`
when the expression ID is equal to the note expression type (even though
these are out of range, since this index argument is supposed to be a
linear index from `0..count`).
2022-04-23 15:00:30 +02:00
Robbert van der Helm
3361c4454b Define constants for VST3 note expression types 2022-04-23 14:49:19 +02:00
Robbert van der Helm
83f9ce3608 Add a todo for a standalone target 2022-04-21 21:30:04 +02:00
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