1
0
Fork 0
Commit graph

94 commits

Author SHA1 Message Date
Robbert van der Helm
883b43b6a7 Support string->value conversions for Diopser's most important parameter 2022-07-02 00:45:01 +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
d72bd56fe7 Change the limiter recommendation on Diopser
And explain what can happen and why when you start sweeping parameters
around.
2022-06-03 18:22:23 +02:00
Robbert van der Helm
82565592fa Mention Safety Limiter in Diopser readme 2022-06-02 16:34:25 +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
c7f5cd1cec Fix NaNs in negative out of bounds skewed params
This would result in a NaN, and the clamping wouldn't catch that.
2022-05-29 14:33:16 +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
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
3fe24e7dc6 Use more typical convolution FFT in STFT example 2022-05-08 02:22:36 +02:00
Robbert van der Helm
55eeb689dd Add a padding option to StftHelper 2022-05-08 02:12:37 +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
e35886c216 Move window function handling out of StftHelper
And apply the window function only once at the end of the process
function for the plugins that used it.
2022-04-28 17:20:39 +02:00
Robbert van der Helm
9acd312768 Parmaeters are not real, they can't hurt you 2022-04-24 19:46:07 +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
4195105e43 Replace FFTW in Diopser with realfft 2022-03-28 18:02:26 +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
d35276437d Patch vizia to not require pub for lenses 2022-03-23 23:29:49 +01:00
Robbert van der Helm
0655ce35d8 Hide Diopser's very important parameter 2022-03-23 13:20:16 +01:00
Robbert van der Helm
4086ff724f Fix casing on GenericUi 2022-03-22 18:50:50 +01:00
Robbert van der Helm
d9003ca2d1 Don't use a ScrollView for Dipser's generic editor 2022-03-22 18:49:46 +01:00
Robbert van der Helm
101075795d Use a vizia generic UI for Diopser 2022-03-22 18:32:02 +01:00
Robbert van der Helm
5b2f8a417b Use the f32_hz_then_khz formatter 2022-03-21 14:44:26 +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
1ddc305be5 Use the new iced generic UI for Diopser
This handles a bit nicer than the egui UI.
2022-03-16 01:20:13 +01:00
Robbert van der Helm
c82e1afddb Add a note about NaNs 2022-03-16 01:15:15 +01:00
Robbert van der Helm
01e7998c03 Revert Diopser back to egui
I should probably first redo the Gain GUI example with vizia before
deciding on a final GUI framework for Diopser.
2022-03-15 13:54:12 +01:00
Robbert van der Helm
130ef8ac0e Add a button that sets the filter count
Just to test the reactivity.
2022-03-13 18:44:36 +01:00
Robbert van der Helm
9f8bdfcfc4 Add a dedicated message and handler for parameters
Parameter widgets can send these messages to update parameters.
2022-03-13 15:09:04 +01:00
Robbert van der Helm
1213d59ae7 Use new IcedEditor trait that forwards GuiContext 2022-03-13 01:07:41 +01:00
Robbert van der Helm
ab1e170f74 Replace Diopser egui GUI with empty iced GUI 2022-03-12 23:28:18 +01:00
Robbert van der Helm
1559afe080 Enable sample accurate automation in Diopser 2022-03-10 20:32:36 +01:00
Robbert van der Helm
3c5aff1ec6 Rename Buffer::iter_mut() to iter_samples()
Since there's also an iter_blocks(). This is consistent with the new
Block method.
2022-03-09 20:11:37 +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
2c6f65a342 Add formatters for percentages 2022-03-08 18:45:18 +01:00
Robbert van der Helm
ae9730ece4 Remove mono tag from Diopser 2022-03-08 17:38:46 +01:00
Robbert van der Helm
be39e19365 Allow FFTW to destroy input arrays
Since they're scratch buffers anyways.
2022-03-08 13:50:45 +01:00
Robbert van der Helm
fd8bd025c8 Implement the reset function everywhere 2022-03-08 00:44:10 +01:00
Robbert van der Helm
fedfa47b43 Fix building instructions in readmes 2022-03-07 22:07:57 +01:00