1
0
Fork 0
Commit graph

71 commits

Author SHA1 Message Date
Robbert van der Helm
d4b93cfdee Add URLs to the plugin Cargo.toml files 2022-11-11 20:26:39 +01:00
Robbert van der Helm
922a81f654 Drop all mentions of vizia point scale
It does use pixels instead of points.
2022-11-11 16:21:30 +01:00
Robbert van der Helm
a7e425581f Use CARGO_PKG_VERSION for plugin versions
Instead of duplicating this. Means that plugin versions only need to be
updated in the Cargo.toml file.
2022-11-11 03:15:05 +01:00
Robbert van der Helm
87e40afd07 Reinitialize Crisp filter constants on load
Otherwise these filters are at their default coefficients when recalling
previous state.
2022-11-11 03:12:41 +01:00
Robbert van der Helm
6f7780bdeb Don't register any fonts by default for vizia
These now need to be registered individually by the plugin. This saves
on binary size.
2022-11-06 14:05:12 +01:00
Robbert van der Helm
89c2b1f84e Replace create_vizia_editor_without_theme w/ enum
This involves a small breaking change. You can now also completely
disable all of Vizia's theming.
2022-11-06 14:04:55 +01:00
Robbert van der Helm
c980576102 Add an AsyncExecutor for editor GUIs
This is decoupled form `GuiContext` as that would require invasive
changes all over the place.
2022-10-22 15:05:39 +02:00
Robbert van der Helm
5ea2377c18 Replace AsyncExecutor with simple closure
This makes everything much simpler. The task type is now defined
directly on `Plugin`.
2022-10-22 02:01:03 +02:00
Robbert van der Helm
84f834abb6 Add AsyncExecutor support to ProcessContext 2022-10-22 02:01:03 +02:00
Robbert van der Helm
6ffa23971e Add AsyncExecutor support to InitContext 2022-10-22 00:21:08 +02:00
Robbert van der Helm
297ad2a83e Add an AsyncExecutor associated type to Plugin
This will make it possible to run background tasks in a type safe way.
Sadly, this does mean that every plugin now needs to define the type
alias and constructor function since Rust does not yet support defaults
for associated types.
2022-10-21 23:52:46 +02:00
Robbert van der Helm
d57003a0e9 Update macOS instructions in plugin readmes 2022-10-09 21:35:25 +02:00
Robbert van der Helm
c566888fa3 💥 Use interior mutability for parameters
Instead of the previous technically-unsound approach. While it wouldn't
cause any issues in practice, it did break Rust's guarantees. That was a
design choice after adding support for editors in NIH-plug, but this is
probably the better long term solution.

The downside is that all uses of `param.value` now need to be changed to
`param.value()`.
2022-09-06 21:57:24 +02:00
Robbert van der Helm
1a706ea1c7 Rename DEFAULT_NUM_INPUTS and DEFAULT_NUM_OUTPUTS 2022-08-19 14:34:21 +02:00
Robbert van der Helm
0469bdf806 Persist the editor states for all plugins 2022-07-13 23:16:54 +02:00
Robbert van der Helm
7cd7294b22 Make CLAP descriptions and special URLs optional
This closes #14.
2022-07-04 12:46:34 +02:00
Robbert van der Helm
b7bfa5f18e Update Vizia
With two months of breaking changes, hooray! But everything should still
work after some bug squashing in Vizia.
2022-06-18 01:59:57 +02:00
Robbert van der Helm
6e37353c67 Link to the correct CI pipeline for builds 2022-06-10 15:59:18 +02:00
Robbert van der Helm
f7bfbb8d95 Add stable IDs to the plugin's enum parameters
Existing instances will automatically be upgraded to these IDs when the
instance gets saved. This makes it possible to rearrange things later
when needed.
2022-06-04 13:36:17 +02:00
Robbert van der Helm
bfc472e49b Introduce a new enum for CLAP features
Based on the new CLAP 0.26 clap-features.h.
2022-06-02 01:16:30 +02:00
Robbert van der Helm
6996fdaed1 Update features names for CLAP 0.26 2022-06-02 00:52:13 +02:00
Robbert van der Helm
ee900f74c2 Support auxiliary inputs and outputs for CLAP
This does not yet work for VST3. You'll always get empty slices there.
2022-05-27 02:30:57 +02:00
Robbert van der Helm
b2e6bd5515 Create a separate InitContext
Only a couple of these functions would be needed during initialization.
In the next couple commits ProcessContext will get a way to access
auxiliary IO, so this really had to be separated.
2022-05-27 01:17:15 +02:00
Robbert van der Helm
c555aff768 Fix plugin names in readmes
Closes #7.
2022-05-26 13:32:30 +02:00
Robbert van der Helm
1f0094c920 Link plugin downloads in readme 2022-05-24 23:56:21 +02:00
Robbert van der Helm
535ae1260e Remove now unnecessary explicit dyn casts
Rust-analyzer used to not infer this, seems like now it does.
2022-05-24 23:55:48 +02:00
Robbert van der Helm
d589f81228 Change last to latest 2022-05-09 02:47:29 +02:00
Robbert van der Helm
98876670f8 Re-export debug macros from the debug module
This makes it easy to import just the macros without having to use the
oldschool `#[macro_use] extern crate ...;` syntax.
2022-04-30 02:10:54 +02:00
Robbert van der Helm
d413d11694 Use the predefined gain formatters for Crisp 2022-04-27 15:12:31 +02:00
Robbert van der Helm
cab0af5153 Add explicit dyn trait casts
So Rust Analyzer stops complaining.
2022-04-15 19:31:38 +02:00
Robbert van der Helm
e74172b67b Split build and package workflows 2022-04-11 16:11:42 +02:00
Robbert van der Helm
56e9cd54c1 Pass the GuiContext to vizia editors
There's no clean way to expose the state save/restore functionality
through events.
2022-04-07 16:14:34 +02:00
Robbert van der Helm
083885a40c Rework Params trait API with Arc instead of Pin
This is a breaking change requiring a small change to plugin
implementations.

The reason why `Pin<&dyn Params>` was used was more as a hint to
indicate that the object must last for the plugin's lifetime, but `Pin`
doesn't enforce that. It also makes the APIs a lot more awkward.
Requiring the use of `Arc` fixes the following problems:

- When storing the params object in the wrapper, the `ParamPtr`s are
  guaranteed to be stable.
- This makes it possible to access the `Params` object without acquiring
  a lock on the plugin, this is very important for implementing
  plugin-side preset management.
- It enforces immutability on the `Params` object.
- And of course the API is much nicer without a bunch of unsafe code to
  work around Pin's limitations.
2022-04-07 15:31:46 +02:00
Robbert van der Helm
d9b018b125 Fix a very important typo 2022-03-29 03:16:55 +02:00
Robbert van der Helm
8ecc30e399 Mark SIMD conversion functions as always inline 2022-03-29 03:14:40 +02:00
Robbert van der Helm
6dd11561c5 Add resize handles to all vizia GUIs 2022-03-29 00:49:31 +02:00
Robbert van der Helm
f37974448d Change naming convention for formatters
This still isn't idea, but at least it's less ambiguous than it was
before this.
2022-03-27 03:43:39 +02:00
Robbert van der Helm
f1f2a8a06e Rename the modes in Crisp to be more fitting 2022-03-25 15:51:40 +01:00
Robbert van der Helm
d35276437d Patch vizia to not require pub for lenses 2022-03-23 23:29:49 +01:00
Robbert van der Helm
31a84d51dd Make the Crisp editor slightly taller 2022-03-22 19:50:40 +01:00
Robbert van der Helm
b6bbf06170 Fix Crisp label positioning 2022-03-22 19:49:05 +01:00
Robbert van der Helm
57fb259104 Use a vizia generic UI for Crisp 2022-03-22 18:53:32 +01:00
Robbert van der Helm
c2b530af36 Also use f32_hz_then_khz in Crisp 2022-03-21 14:51:51 +01:00
Robbert van der Helm
f084f14095 Refactor GUIs to use param's own default value
This removes the need to pass a lot of these `ParamSetter`s and
`GuiContext`s around. We also don't need explicit events to reset a
parameter anymore since you can get this information from the parameter
itself.
2022-03-21 13:11:36 +01:00
Robbert van der Helm
aa3e6282b7 Use the new iced generic UI for Crisp 2022-03-16 01:30:29 +01:00
Robbert van der Helm
36d54edae7 Add a constant for sample accurate automation 2022-03-10 18:57:17 +01:00
Robbert van der Helm
76394731a6 Optimize branching in Crisp 2022-03-09 19:42:13 +01:00
Robbert van der Helm
48ed39269d Add a wet-only control to Crisp 2022-03-09 19:38:57 +01:00
Robbert van der Helm
9fc5b048ad Iterate in blocks in Crisp
I want to add a wet-only version, and this can help reduce per-sample
branching a bit.
2022-03-09 19:35:26 +01:00
Robbert van der Helm
2a30df057c Move filter frequency limits to constants 2022-03-09 18:26:55 +01:00