1
0
Fork 0
Commit graph

232 commits

Author SHA1 Message Date
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 48ff012cea Document sample accurate automation in the example 2022-03-10 20:19:03 +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 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 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 4d64e300e4 Increase Crisp editor width so all labels fit 2022-03-09 15:21:41 +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 919eb7e5e6 Remove now unused include 2022-03-09 00:27:39 +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 4cca7af930 Make the PCG implementation const compatible 2022-03-08 20:51:01 +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 2c6f65a342 Add formatters for percentages 2022-03-08 18:45:18 +01:00
Robbert van der Helm 24f3593de0 Move order conversion to formatters module 2022-03-08 18:31:20 +01:00
Robbert van der Helm bb341fdf50 Add an empty plugin for Crisp 2022-03-08 18:03:38 +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 da1e850722 Avoid allocations when switching between plans 2022-03-08 13:27:16 +01:00
Robbert van der Helm 6e1b4cf37f Increase skewed pitch range
Sicne +/- 1 is more or less the usable range.
2022-03-08 12:51:08 +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
Robbert van der Helm ef1abe0508 Tweak the gain compensation 2022-03-07 21:33:00 +01:00
Robbert van der Helm 715ba467a9 Make the window overlap configurable
It gets super whacky now.
2022-03-07 21:26:50 +01:00
Robbert van der Helm 115d03a34a Make the window size for configurable 2022-03-07 21:19:38 +01:00
Robbert van der Helm 81308d0c8d Change gain multiplier coefficients 2022-03-07 20:47:34 +01:00
Robbert van der Helm 9ae8b4620f Smooth pitch value changes 2022-03-07 20:27:43 +01:00
Robbert van der Helm 344427f254 Skew the pitch parameter range 2022-03-07 20:22:16 +01:00
Robbert van der Helm 951cac51d7 Add a pitch parameter to Puberty Simulator
Because might as well.
2022-03-07 20:21:20 +01:00
Robbert van der Helm e575514543 Change Puberty Simulator description 2022-03-07 20:08:47 +01:00
Robbert van der Helm 55e258bd27 Add the one and only Puberty Simulator plugin 2022-03-07 19:51:38 +01:00
Robbert van der Helm e1e6b2137e Compute a spectrum in Diopser
This will be used in the GUI.
2022-03-07 15:03:49 +01:00
Robbert van der Helm 376c1d7b0a Fix gain compensation in STFT example 2022-03-07 02:04:47 +01:00
Robbert van der Helm b06e67bde7 Supper non-buffer and non-sidechain inputs in STFT 2022-03-06 22:26:37 +01:00
Robbert van der Helm e61a42e96f Revert windowing change from 93ab08e
This is actually needed to prevent spectral leakage from IDTFs with
small window sizes.
2022-03-06 19:17:42 +01:00
Robbert van der Helm 93ab08e5d5 Remove post-IDFT windowing in STFT helper
There's no reason to.
2022-03-06 19:08:04 +01:00
Robbert van der Helm 175030b77c Fix STFT example filter normalization 2022-03-06 18:56:07 +01:00
Robbert van der Helm 0f78b02685 Add a simple filter example with FFTW 2022-03-06 17:54:23 +01:00
Robbert van der Helm 601ced9363 Add a license note on the STFT example 2022-03-06 16:14:04 +01:00
Robbert van der Helm d7ea21f597 Fix clippy lints 2022-03-06 15:41:35 +01:00
Robbert van der Helm 2343485c1c Don't do gain compensation in STFT helper
You'll likely want to add some scaling yourself anyways, so this would
just be a wasted operation since the scaling also depends on your window
function.
2022-03-06 15:36:24 +01:00
Robbert van der Helm e72203f919 Use the new overlap-add helper in the STFT example
Still without any proper FFT stuff.
2022-03-06 15:28:53 +01:00
Robbert van der Helm 592a908132 Fix samples until next window calculation 2022-03-06 15:11:42 +01:00
Robbert van der Helm 3c62670164 Add proper overlap-add to the StftHelper
Doesn't make much sense without it.
2022-03-06 14:33:30 +01:00
Robbert van der Helm b416d1630b Add the basis for a simple STFT example
Right now it doesn't do any FFT operations yet, but all the pieces are
in place using the new STFT helper.
2022-03-06 02:07:53 +01:00
Robbert van der Helm 03eef2c832 Require PartialEq on plain parameter types
So you can compare them in parameter widgets.
2022-03-05 19:50:12 +01:00
Robbert van der Helm b70af50fcd Add a simple generic UI to Diopser 2022-03-05 19:39:57 +01:00
Robbert van der Helm 7fd3c31a0f Remove support for the non-SIMD Diopser version 2022-03-04 12:49:36 +01:00
Robbert van der Helm 1083ee95b6 Still include the #[macro_use] for Diopser
Since it's also used in the filter module.
2022-03-04 12:21:29 +01:00
Robbert van der Helm d758dd652f Re-export all macros in the prelude
Now you don't need the `#[macro_use] extern crate nih_plug;` anymore
2022-03-04 12:01:47 +01:00
Robbert van der Helm 4c0b07c578 💥 Move re-exports to a prelude module
So you can import everything at once, because you're likely going to
need at least 90% of it anyways.
2022-03-03 23:23:51 +01:00
Robbert van der Helm f581294d7b Update rustdoc formatting for links
Apparently it showed this text verbatim, and not in monospace.
2022-03-03 23:05:12 +01:00
Robbert van der Helm 6c9db8fee8 Change sample iterator variable names in examples 2022-03-03 21:38:50 +01:00
Robbert van der Helm 0666743cc7 Fix Gain GUI CLAP identifier 2022-03-03 21:31:43 +01:00
Robbert van der Helm be4bbd4400 Allow nested parameter structs
See the Parameters docstring for the caveats.
2022-03-03 20:38:28 +01:00
Robbert van der Helm 76369ad1e1 💥 Rework FloatParam and IntParam
They are now two separate types with slightly different options. I had
these merged initially because they're 95% the same, and I thought it
would be fun to have weird distributions for integer parameters, but
that doesn't really work because hosts and the plugin APIs expect the
steps to be linear. And if you're going to have an unstepped integer
parameter, might as well use FloatParam with rounding.

Because non-linear ranges are no longer possible with IntParam, the
types have been split up to make everything much more readable instead
of adding a parameterizing the range type with another type family.
2022-03-03 19:24:40 +01:00
Robbert van der Helm c7d7a790c2 Add a todo for SIMD Diopser coefficent generation 2022-03-02 17:04:01 +01:00
Robbert van der Helm 75b1b13599 Fix the linear spread in Diopser
The old one wasn't what it said on the tin. Thing is, it actually
sounded much cooler, so I may bring it back as an option.
2022-03-02 16:49:16 +01:00
Robbert van der Helm 161d86ab49 Use the new SIMD helpers in Diopser 2022-03-01 21:40:21 +01:00
Robbert van der Helm 3f6f472a34 Use portable_simd from std instead of packed_simd
Since this seems to be the way forward and they encourage using the
feature flag instead of the using it as a separate crate.
2022-03-01 20:59:31 +01:00
Robbert van der Helm a26ddbb45e Change CLAP_KEYWORDS to CLAP_FEATURES
This name was changed in CLAP 0.19, but in 0.18 it's still called
features.
2022-02-28 17:29:53 +01:00
Robbert van der Helm 1151a80769 Add the other CLAP metadata fields 2022-02-28 17:18:11 +01:00
Robbert van der Helm c7f1c46f18 Add a reverse DNS ID field to ClapPlugin 2022-02-28 17:04:47 +01:00
Robbert van der Helm 56c1545196 Add a basic nih_export_clap!() macro
This does not do anything useful yet.
2022-02-28 14:45:31 +01:00
Robbert van der Helm d5d90e3e61 Add a ClapPlugin trait
Just like the Vst3Plugin trait
2022-02-28 14:45:07 +01:00
Robbert van der Helm 70378be6e9 Replace --bundle-vst3 with export detection
We'll need this for when we support other plugin formats.
2022-02-26 20:12:08 +01:00
Robbert van der Helm 6cc1e4f73f Add nightly links that don't require a login 2022-02-16 16:02:41 +01:00
Robbert van der Helm d37b866115 Explicitly mention the nightly toolchain 2022-02-15 20:13:28 +01:00
Robbert van der Helm 1d7a6a870b Reset Diopser filters when changing certain params
Parameters that cannot be interpolated might cause fun artifacts if we
don't do this. Decreasing the number of stages would be fine without a
reset though.
2022-02-15 19:48:54 +01:00
Robbert van der Helm 2f803915eb Allow compiling Diopser without SIMD 2022-02-15 18:30:45 +01:00
Robbert van der Helm d0f1a79279 Use SIMD for Diopser
It's pretty damn fast now, especially compared to the JUCE version.
2022-02-15 18:05:26 +01:00
Robbert van der Helm 935d952d81 Make the biquads SIMD capable 2022-02-15 18:00:01 +01:00
Robbert van der Helm 8c30eccb27 Add an identity function for biquad coefficients 2022-02-15 17:13:49 +01:00
Robbert van der Helm 7632b21a95 Remove debug code from sine example
Not sure how this ended up here.
2022-02-15 03:45:39 +01:00
Robbert van der Helm fc8aec5afa Explain not using the inner iterator in Diopser 2022-02-15 00:39:30 +01:00
Robbert van der Helm 24f81e2542 Fix Diopser DSP load 2022-02-15 00:33:34 +01:00
Robbert van der Helm fa8b87ec71 Remove mentions of Diopser port being unfinished 2022-02-15 00:00:41 +01:00
Robbert van der Helm b84022caed Add the filter spread parameters to Diopser
This includes a much better octave-based version instead of the old
'exponential' version.
2022-02-14 23:59:53 +01:00
Robbert van der Helm c1d91498e1 Update the todo list for Diopser 2022-02-13 20:21:59 +01:00
Robbert van der Helm f399b30dba Implement the smoothing interval on Diopser 2022-02-13 19:54:49 +01:00
Robbert van der Helm 0bd0ea6af2 Add an automation precision parameter to Diopser 2022-02-13 19:41:31 +01:00
Robbert van der Helm c9a9f76dce Update note on Diopser's status
The port is unfinished, but the origin version's feature are all there
and it works well.
2022-02-13 18:42:35 +01:00
Robbert van der Helm 19d2dc0a67 Implement step snapping for parameters 2022-02-13 17:52:54 +01:00