1
0
Fork 0
Commit graph

1483 commits

Author SHA1 Message Date
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