Robbert van der Helm
c6acdfa020
Add a pitch shifting mode parameter
...
I experimented with some other equally broken but broken in slightly
different ways pitch shifting algorithms that also sound kind of fun.
2022-05-09 16:29:46 +02:00
Robbert van der Helm
081487fdcb
Adjust windowing behavior in Puberty Simulator
...
We should indeed be windowing twice like we did before. A squared Hann
window doesn't work at 2x overlap, so that option has been removed. The
gain compensation is now also correct.
2022-05-09 16:22:26 +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
58d7dc034c
Fix gain compensation in STFT examples
2022-04-28 17:24:35 +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
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
2211232ed1
Use realfft for Puberty Simulator
2022-03-28 17:51:36 +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
36d54edae7
Add a constant for sample accurate automation
2022-03-10 18:57:17 +01:00
Robbert van der Helm
919eb7e5e6
Remove now unused include
2022-03-09 00:27:39 +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
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
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
55e258bd27
Add the one and only Puberty Simulator plugin
2022-03-07 19:51:38 +01:00