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
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
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
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
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
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
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
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
Robbert van der Helm
9bb46fc377
Add a noise low-pass filter for Crisp
2022-03-09 18:25:27 +01:00
Robbert van der Helm
cdad01063e
Fix default Crisp HPF frequency value
2022-03-09 16:29:29 +01:00
Robbert van der Helm
f9446644aa
Remove unit from Crisp filter frequency params
2022-03-09 15:17:49 +01:00
Robbert van der Helm
4105a887a8
Add a generic UI for Crisp
2022-03-09 15:15:09 +01:00
Robbert van der Helm
57ca8a5ccb
Add a pre-RM LPF to Crisp
...
This makes the effect more usable with high frequency inputs.
2022-03-09 15:11:41 +01:00
Robbert van der Helm
92aac6e471
Add a high pass filter to the Crisp noise
2022-03-09 13:48:23 +01:00
Robbert van der Helm
bda8ecfb23
Add a biquad for low- and high-pass filters
2022-03-09 13:24:57 +01:00
Robbert van der Helm
a08624209c
Fix GPL copyright headers
2022-03-09 13:17:26 +01:00
Robbert van der Helm
305a3f922b
Fix comments in the Crisp plugin
2022-03-09 00:51:52 +01:00
Robbert van der Helm
8f45ef84ee
Change Crisp keyword order
...
Since Bitwig uses the first relevant one as the category.
2022-03-09 00:29:46 +01:00
Robbert van der Helm
3a4f8abb4b
Increase the default Crisp amount
2022-03-09 00:05:37 +01:00
Robbert van der Helm
6072eb103d
Add a stereo control parameter for Crisp
2022-03-09 00:03:35 +01:00
Robbert van der Helm
e8301f6c9d
Add back symmetrical AM
2022-03-08 23:46:05 +01:00
Robbert van der Helm
55315fb7f3
Add an output gain parameter
2022-03-08 23:30:12 +01:00
Robbert van der Helm
792e9469b5
AM only the positive ranges
...
This is what the original Fake Distortion preset did.
2022-03-08 23:20:30 +01:00
Robbert van der Helm
46901bf5c9
Add a basic version of Crisp
2022-03-08 21:10:36 +01:00
Robbert van der Helm
817ff72265
Add a PCG implementation for pcg32i and floats
2022-03-08 20:42:59 +01:00
Robbert van der Helm
6bfc4ab76f
Add a basic sketch for Crisp
2022-03-08 19:02:21 +01:00
Robbert van der Helm
bb341fdf50
Add an empty plugin for Crisp
2022-03-08 18:03:38 +01:00