1
0
Fork 0
Commit graph

1989 commits

Author SHA1 Message Date
Robbert van der Helm a97c8ea554 Allow querying other interfaces for VST3 plugins
Not checking `iid` was an oversight, so if the host would create
anything other than `IComponent` this would do the wrong thing. With
this change the host can create an object for any interface we support.

Fixes #58.
2023-03-03 00:08:12 +01:00
Robbert van der Helm 6fe5c7c471 Silence missing docs warnings for entry points 2023-03-02 12:58:51 +01:00
Robbert van der Helm b840113caf Fix typo in comment 2023-03-01 23:49:35 +01:00
Robbert van der Helm 2dc0b48f73 Update the nih_plug_xtask dependencies 2023-03-01 23:23:04 +01:00
Robbert van der Helm b1b3ee6e21 Update the clap dependency
No not that clap.
2023-03-01 23:15:02 +01:00
Robbert van der Helm ed4054b0cf Update CPAL
This update mostly made things more complicated.
2023-03-01 23:11:52 +01:00
Robbert van der Helm 5e374216e9 Update the zstd dependency version 2023-03-01 22:35:00 +01:00
Robbert van der Helm 164e8bd402 Update the windows dependency version 2023-03-01 22:34:46 +01:00
Robbert van der Helm 4ee5f13638 Log assert_no_alloc failures using the logger
This can now finally be enabled thanks to NIH-log explicitly supporting
reentrant logging.

This finally resolves #30.
2023-03-01 19:53:36 +01:00
Robbert van der Helm e9ac1c9efd Update to nih_log 0.2.0
This is needed to enable logging for assert_no_alloc failures.
2023-03-01 19:53:17 +01:00
Robbert van der Helm 5a8721f63c Derive Debug for the editor state structs 2023-03-01 19:19:54 +01:00
Robbert van der Helm 199e836f80 Remove unnecessary must_use attribute 2023-03-01 19:11:35 +01:00
Robbert van der Helm 9dad9fe1a4 Remove now unused imports 2023-03-01 19:11:24 +01:00
Robbert van der Helm c381744b47 Switch to using NIH-log for the logger
This greatly simplifies the setup, provides more deterministic and
performant behavior, and allows for better WinDbg integration by
detecting its presence at runtime and by using the regular pretty log
format there as well.
2023-03-01 19:01:15 +01:00
Robbert van der Helm e3a923ff3b Avoid restoring window sizes with ViziaState
Unless specified otherwise. This avoids some bugs where old, now
incorrect sizes are being recalled.
2023-02-28 18:50:15 +01:00
Robbert van der Helm e621ec9b59 Print zstandard compression ratios 2023-02-28 18:12:58 +01:00
Robbert van der Helm 72f57b358f Remove leftover debug prints 2023-02-28 17:58:34 +01:00
Robbert van der Helm 6ef0092dca Allow the windbg logger to be overridden 2023-02-28 14:04:53 +01:00
Robbert van der Helm 99223ed1c8 Prevent HiDPI scale changes after opening editor
Ableton Live does this and it caused mysterious issues where the window
could suddenly be larger than the window's contents when resizing on a
HiDPI setup.
2023-02-27 01:02:52 +01:00
Robbert van der Helm a14b4cf61e Fix years in copyright headers 2023-02-27 00:59:56 +01:00
Robbert van der Helm 5566dd7fbb Add PersistentField implementation for AtomicCell
This API really needs to change.
2023-02-26 17:49:33 +01:00
Robbert van der Helm 338f79e6be Save and restore Spectral Compressor editor state 2023-02-26 17:35:04 +01:00
Robbert van der Helm 083326a933 Revert addition of Spectral Compressor standalones
Until the standalones at least have some way to change parameter values
without a GUI these probably shouldn't be published with standalones.
2023-02-26 16:25:11 +01:00
Robbert van der Helm 49e99eef53 Update the JACK bindings
We should no longer have to use our own fork for this.
2023-02-26 16:23:24 +01:00
Robbert van der Helm 86adca2e5a Reexport nih_export_standalone in crate root
To keep the symmetry with the `nih_export_clap!()` and
`nih_export_vst3!()` macros.
2023-02-26 16:18:05 +01:00
Robbert van der Helm 7f8c1d955d Catch VST3 parameter flushes for aux-only plugins
This probably shouldn't happen, but you technically can have a plugin
with no main output but with an auxiliary output. Without this check we
would not detect the parameter flush.
2023-02-26 01:27:03 +01:00
Robbert van der Helm 5ed84e5ea4 Add checks for auxiliary output channel counts
Apparently this was missing.
2023-02-26 01:21:31 +01:00
Robbert van der Helm 9eaf375f6b Relax VST3 aux input debug assertions for flushes 2023-02-26 01:17:44 +01:00
Robbert van der Helm 767cff6294 Prevent incorrect pointer derefs in debug asserts 2023-02-26 01:14:06 +01:00
Robbert van der Helm 878d0e5330 Fix comment 2023-02-26 01:06:42 +01:00
Robbert van der Helm d2b7970991 Remove the mandatory VST3 output bus
This doesn't seem to be necessary anymore. Perhaps this was just an
incorrect check for parameter flushes.
2023-02-26 01:05:50 +01:00
Robbert van der Helm e41a1b94b5 Silence warning about now unused argument
Amends 3a9b3281e8.
2023-02-26 01:05:46 +01:00
Robbert van der Helm 20ad19fdc5 Fix main IO for plugins with aux but no main IO
This would otherwise check and interact with the wrong buffers.
2023-02-26 01:05:46 +01:00
Robbert van der Helm 2580953b87 Clarify buffer_is_valid check 2023-02-26 00:56:39 +01:00
Robbert van der Helm 3a9b3281e8 Don't return kResultFalse when deactivating busses
Validator-sama will get very upset with us if we do.
2023-02-25 19:40:20 +01:00
Robbert van der Helm 72d2ed4151 Add MIDI IO support to the CPAL backends
Using Midir. This has been on the todo list for way too long.
2023-02-25 19:22:08 +01:00
Robbert van der Helm 2ed95bb52d Add basic MIDI device selection using midir 2023-02-25 17:19:06 +01:00
Robbert van der Helm 98b8571dc9 Bundle CPAL device data into a struct 2023-02-25 17:11:59 +01:00
Robbert van der Helm 1feeb6e961 Add log messages about enabling MIDI IO with CPAL 2023-02-25 16:15:33 +01:00
Robbert van der Helm e44d91c016 Add standalone CLI options for MIDI IO with CPAL 2023-02-25 16:11:17 +01:00
Robbert van der Helm 7c92167d85 Reorder standalone options order
Backend agnostic audio options should come before backend specific ones.
2023-02-25 14:48:52 +01:00
Robbert van der Helm 045598aa09 Rename CPAL standalone backend to CpalMidir
To make it a bit more obvious what it ends up using for IO.
2023-02-25 14:43:59 +01:00
Robbert van der Helm d777b02d33 Use snake case for JACK client names
Like we're doing with the ports now.
2023-02-23 23:00:19 +01:00
Robbert van der Helm d7e766ca00 Support auxiliary IO for JACK standalones 2023-02-23 22:58:11 +01:00
Robbert van der Helm 72c43adda6 Mark the Spectral Compressor struct as pub
For testing with standalones.
2023-02-23 22:55:15 +01:00
Robbert van der Helm 3ca24bdc8c Fix dangling references with CPAL aux buffers 2023-02-23 22:30:32 +01:00
Robbert van der Helm c6e0be341f Actually use the standalone backend aux buffers 2023-02-23 22:20:21 +01:00
Robbert van der Helm 952bb8c129 Mark Crossover struct as pub
For testing with standalones
2023-02-23 22:15:35 +01:00
Robbert van der Helm 5d497f2de4 Add debug assertions for Arc strong counts
To make issues like the event loop thing more visible.
2023-02-23 21:49:24 +01:00
Robbert van der Helm 42a7bb37b4 Revert event loop APIs to use Weak instead of Arc
Previously the plugin wouldn't get dropped because the event loops kept
them alive. These APIs used Weak instead of Arc in the past precisely to
prevent this issue. Not sure why I changed that.
2023-02-23 21:45:09 +01:00