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
5966e353da
Use only interior mutability for smoothers
...
This is needed in preparation for removing the need to have `*mut`
pointers to parameters.
2022-09-06 21:21:46 +02:00
Robbert van der Helm
7f33f172cb
Clean up optimized block smoothing
...
This is easier to follow and avoids computing and subsequently
overwriting the last smoothed value.
2022-09-05 14:00:56 +02:00
Robbert van der Helm
a21daef96b
Redesign mapped block smoothing
...
The non-mapped version is now split off and the mapped version is much
better suited for array based modulation. Check the breaking changes
document and the new docstring for more information.
2022-09-04 20:17:06 +02:00
Robbert van der Helm
99437c6011
Optimize block smoothing
2022-09-04 19:52:17 +02:00
Robbert van der Helm
cd02ebb839
Use less arbitrary decay weights for the gain GUIs
...
This solves the same problem as #27 but in a cleaner way. The previous
commits refactored the smoothing to make it possible to use the
calculations in plugin code to do the same thing as #27 , but then I
realized that that doesn't make much sense since the time to decay into
complete silence isn't very meaningful for this kind of computation.
2022-09-04 19:09:22 +02:00
Robbert van der Helm
3a9d56e956
Rename step_size() current parameter to start
2022-09-04 18:40:18 +02:00
Robbert van der Helm
8e17972da5
Also move num steps computation to SmoothingStyle
2022-09-04 18:26:36 +02:00
Robbert van der Helm
bb6e9c237f
Add equivalence tests for next() and next_step()
2022-09-04 18:20:51 +02:00
Robbert van der Helm
9f990cc3b9
Rename step_size() parameter for SmoothingStyle
2022-09-04 18:20:28 +02:00
Robbert van der Helm
17a928647e
Optimize single step Smoother::next()
...
By not having to take multiple steps into account.
2022-09-04 18:08:31 +02:00
Robbert van der Helm
dd320c4c1f
Add dedicated single step next() to SmoothingStyle
...
This avoids some computations for single stepping. And we can use this
for block smoothing later.
2022-09-04 18:08:19 +02:00
Robbert van der Helm
e47899d421
Move calculation in next_step() to SmoothingStyle
2022-09-04 18:04:31 +02:00
Robbert van der Helm
a6d9972924
Move the smoothing step size to a function
2022-09-04 17:57:21 +02:00
Robbert van der Helm
67496f9c79
Default sidechain channel link to 80%
2022-09-04 15:50:49 +02:00
Robbert van der Helm
7cb189b8ef
Disable downwards hi-freq rolloff by default
2022-09-04 15:50:20 +02:00
follower
8e624af3f4
Small typo fixes.
2022-09-04 15:19:17 +02:00
Robbert van der Helm
08b1e43a15
Apply downwards compression to DC bins
...
In Spectral Compressor. We avoided this because it messes up upwards
compression, but downwards compression is perfectly fine.
2022-09-04 15:07:23 +02:00
Robbert van der Helm
5faed9e2e7
Remove files before reflinking in xtask bundle
...
Otherwise the reflink will fail, and apparently the fallback copy also
doesn't always work correctly on macOS.
This fixes #26 .
2022-09-02 14:25:57 +02:00
Robbert van der Helm
a7bc90050e
Fix the DC gain compensation in SC
2022-09-02 13:52:17 +02:00
Robbert van der Helm
f231be1b1e
Default Spectral Compressor threshold to -12 dB
2022-09-02 13:46:15 +02:00
Robbert van der Helm
c56950551f
Mention the new cookiecutter template
2022-08-31 01:35:25 +02:00
Robbert van der Helm
2f87a79d3e
Wait for the Windows event loop to shut down
...
This fixes crashes when removing the instance and immediately unloading
the module. `DestroyWindow()` is synchronous while `CloseWindow()`
merely posts a message to close the window.
2022-08-29 13:59:28 +02:00
Robbert van der Helm
3761f9f5ee
Remove unnecessary use of MaybeUninit
2022-08-22 12:41:12 +02:00
Robbert van der Helm
26e0d17833
Fix VST3 event loop leaking
...
This should have never used MaybeUninit in the first place.
2022-08-22 12:31:09 +02:00
Robbert van der Helm
5110e5b059
Log trace messages when loading and saving state
2022-08-22 12:09:25 +02:00
Robbert van der Helm
72d3b61a42
Mention standalone inputs not auto connecting
2022-08-21 17:59:44 +02:00
Robbert van der Helm
9cd440231e
Print message about MIDI IO not being implemented
2022-08-21 17:59:44 +02:00
Robbert van der Helm
1bee7f5333
Add audio input to the CPAL standalone backend
2022-08-21 17:55:09 +02:00
Robbert van der Helm
c46a044cb4
Add audio output for the CPAL backend
2022-08-21 17:07:02 +02:00
Robbert van der Helm
c47f2139a3
Use a Parker instead of a channel in JACK backend
2022-08-21 15:26:49 +02:00
Robbert van der Helm
559d835878
Print system backend init errors in auto mode
...
Since this may fail due to incompatible default sample rates or period
sizes.
2022-08-21 15:26:48 +02:00
Robbert van der Helm
1fc437068a
Compute device configs for cpal
2022-08-21 15:26:48 +02:00
Robbert van der Helm
ff692ee084
Install ALSA headers on the CI
2022-08-21 15:26:48 +02:00
Robbert van der Helm
a011eaa07c
Add most of a CPAL standalone backend
...
For ALSA, CoreAudio, and WASAPI.
2022-08-21 15:26:48 +02:00
Robbert van der Helm
ca2e318551
Clean up JACK MIDI handling #23
2022-08-20 23:56:18 +02:00
Sean Bolton
7a10d58a58
Fix program change and channel pressure receipt in standalone jack backend
2022-08-20 23:48:55 +02:00
Robbert van der Helm
50ac2cb2b6
Lower the init value even further
2022-08-20 19:54:15 +02:00
Robbert van der Helm
b3f918dee5
Lower Spectral Compressor envelope init value
2022-08-20 19:40:51 +02:00
Robbert van der Helm
5b021da373
Don't apply output gain to unfiltered DC bins
2022-08-20 16:53:33 +02:00
Robbert van der Helm
14450da80a
Add spectral sidechain compression to SC [2/2]
...
Forgot to stage this in 9550fe0d10
.
2022-08-20 16:45:45 +02:00
Robbert van der Helm
9550fe0d10
Add spectral sidechain compression to SC
2022-08-20 16:37:20 +02:00
Robbert van der Helm
5010ce5e1a
Allow parsing compression ratios without a colon
2022-08-20 15:54:09 +02:00
Robbert van der Helm
35c6b97ade
Increase Spectral Compressor ratio range
2022-08-20 15:49:03 +02:00
Robbert van der Helm
8a9c98943e
Store plugin version in the state
...
This may later be used to allow migrations between breaking plugin
versions.
2022-08-20 15:10:34 +02:00
Robbert van der Helm
ee62a45d0d
Remove now unused argument
2022-08-19 14:54:48 +02:00
Robbert van der Helm
a5c05b22fb
Use the plugin's default channels for standalones
2022-08-19 14:52:57 +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
743d456e0f
Don't build the gain example with zstd enabled
2022-08-18 19:46:51 +02:00
Robbert van der Helm
b19e6afa6c
Remove unused import
2022-08-18 16:41:51 +02:00