1
0
Fork 0
Commit graph

1062 commits

Author SHA1 Message Date
Robbert van der Helm
911c0d57d5 Allow declaratively defining CLAP remote controls 2023-04-22 16:59:03 +02:00
Robbert van der Helm
841fe2424c Update to CLAP 1.1.8 2023-04-22 16:09:58 +02:00
Robbert van der Helm
a7e4e8b31e Add a context for defining remote control pages 2023-04-22 15:53:04 +02:00
Robbert van der Helm
2dbd835778 Also prefer importing from prelude internally
Less breakage when restructuring modules.
2023-04-22 15:13:39 +02:00
Robbert van der Helm
34b416ecb6 Move API-specific traits and structs to submodules 2023-04-22 14:52:01 +02:00
Robbert van der Helm
2187aa96ab Fix formatting in formatters.rs
Rustfmt changed the way it formats this a while back.
2023-04-07 13:33:39 +02:00
Robbert van der Helm
4502eaec3a Change wrapped smoothing style to be a static ref
Instead of having to wrap this in an `Arc`. This makes the interface a
bit nicer to use.
2023-04-05 18:16:58 +02:00
Robbert van der Helm
8a7100ac3e Add an OversamplingAware smoothing style
This can be used to have an ergonomic way to do multi-rate smoothing
with variable oversampling amounts that only the `Arc<AtomicF32>` to be
updated from a parameter callback.
2023-04-05 18:08:22 +02:00
Robbert van der Helm
3aa3f08f82 Upgrade nih_debug_assert!() to panic in tests 2023-04-05 16:13:16 +02:00
Robbert van der Helm
58174c1af0 Add a miri test for the buffer management's safety 2023-04-01 16:12:37 +02:00
Robbert van der Helm
112c801bc4 Use the new buffer management for the CPAL backend
Now everything uses `BufferManager`. That should hopefully reduce the
chances that different backends behave differently or trigger different
debug assertions.
2023-04-01 15:43:58 +02:00
Robbert van der Helm
cc5980e215 Zero out auxiliary output buffers
We used to do this, but this got lost in the migration to the new buffer
management system.
2023-04-01 15:21:12 +02:00
Robbert van der Helm
9d45cbf1d9 Use new buffer management for the dummy backend 2023-03-31 19:22:30 +02:00
Robbert van der Helm
ca4569e03a Use new buffer management in JACK standalones 2023-03-31 18:17:48 +02:00
Robbert van der Helm
8196641d65 Update VST3 wrapper to use new buffer manager
This also fixes output events not being sent during a parameter flush.
2023-03-31 17:01:41 +02:00
Robbert van der Helm
30a26e0d9a Update CLAP wrapper to use the new buffer manager 2023-03-31 16:03:49 +02:00
Robbert van der Helm
83dd585c40 Add a standalone buffer management abstraction
The idea is that all backends are refactored to use this. This greatly
reduces the need for backend-specific code when it comes to buffer
management, and thus also bugs. It also overwrites main output channels
that don't have a corresponding input channel with zeroes, which the
current backends don't do.
2023-03-31 16:02:00 +02:00
Robbert van der Helm
2de1fd563b Tweak cosmic text and module logging settings
In release builds the cosmic text messages are now suppressed, and in
debug builds the module is always shown even for error, warning, and
info messages.
2023-03-21 20:31:58 +01:00
Stephane Albanese
77ea503de0 Add a channel getter to the NoteEvent implementation 2023-03-17 13:58:44 +01:00
Robbert van der Helm
15c859a8e6 Add CLAP 1.1.8 features 2023-03-13 15:36:04 +01:00
Robbert van der Helm
7c14010656 Keep track of the current latency in standalones
Even though it's not actually used, this avoids spamming the debug
assertion failure when the value doesn't change.
2023-03-12 17:12:59 +01:00
Robbert van der Helm
6ee4dbcf67 Fix doc comment wording 2023-03-12 17:08:36 +01:00
Robbert van der Helm
d380c15f8b Only expose context_checks module in debug builds
This gets rid of some unused warnings.
2023-03-08 15:37:34 +01:00
Robbert van der Helm
17a95e703f Detect incorrect GuiContext method usage
In debug builds.
2023-03-07 18:02:56 +01:00
Robbert van der Helm
d3cb5f2bee Explicitly mark parameter range conversions inline
The compiler already does this, but these should be inlineable.
2023-03-03 22:55:35 +01:00
Robbert van der Helm
ae3356dca8 Request resizes after loading state
If the editor is open.
2023-03-03 18:52:57 +01:00
Robbert van der Helm
c294afbf62 Centralize state loading logic 2023-03-03 17:21:09 +01:00
Robbert van der Helm
2ee3b7c2fa Fix InitContext drop order for standalone presets 2023-03-03 13:21:10 +01:00
Robbert van der Helm
a202c3801a Account for Params::deserialize_fields allocating
When state through `GuiContext`.
2023-03-03 13:12:47 +01:00
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
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
164e8bd402 Update the windows dependency version 2023-03-01 22:34:46 +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
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
5566dd7fbb Add PersistentField implementation for AtomicCell
This API really needs to change.
2023-02-26 17:49:33 +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