1
0
Fork 0
Commit graph

90 commits

Author SHA1 Message Date
Robbert van der Helm
b9031ecd2f Fix sidechain matching + soft knee in SC
These coefficients change with the thresholds.
2023-03-27 17:26:38 +02:00
Robbert van der Helm
732cfdfa3a Move Spectral Compressor knee coefs to functions 2023-03-27 17:23:06 +02:00
Robbert van der Helm
20d165052a Cap Spectral Compressor sidechain match thresholds 2023-03-27 16:46:00 +02:00
Robbert van der Helm
a8fa8cde66 Slowly fade in SC envelope followers
This is much more gentle.
2023-03-22 14:33:13 +01:00
Robbert van der Helm
76960e7e92 Fix envelope follower timings getting stuck at 0ms
Regression from f6ef95db3e.
2023-03-22 13:50:23 +01:00
Robbert van der Helm
f6ef95db3e Snap envelopes to the current value after reset
This results in much less unexpected behavior.
2023-03-22 12:19:29 +01:00
Robbert van der Helm
4022fdd37c Draw separate upwards and downwards curves 2023-03-22 00:17:17 +01:00
Robbert van der Helm
1c8546ae13 Show the target curve in Spectral Compressor 2023-03-21 23:37:27 +01:00
Robbert van der Helm
144fafbed6 Swap log2 in Spectral Compressor out for ln
The ln() implementation is usually faster, and there's no reason to
prefer a specific base.
2023-03-21 22:56:49 +01:00
Robbert van der Helm
ea4dd8ead2 Move curve calculation to a dedicated struct
So we can reuse this in the analyzer.
2023-03-21 21:09:58 +01:00
Robbert van der Helm
e179734818 Draw dense part of the spectrum as a solid mesh
This fixes aliasing problems.
2023-03-20 19:36:47 +01:00
Robbert van der Helm
6e3d2379b0 Add a start of a gain reduction display
This needs to be drawn as a single mesh instead, and it should also use
the target curve or it looks odd.
2023-03-20 17:25:21 +01:00
Robbert van der Helm
3600951159 Visualize the envelope followers in SC 2023-03-20 15:51:13 +01:00
Robbert van der Helm
a18d70401b Compute the analyzer data for Spectral Compressor
This is not yet shown anywhere.
2023-03-19 15:17:25 +01:00
Robbert van der Helm
9647f8f3dd Add triple buffers to share analyzer data in SC 2023-03-19 15:17:25 +01:00
Robbert van der Helm
a14b4cf61e Fix years in copyright headers 2023-02-27 00:59:56 +01:00
Robbert van der Helm
1e83d29fab Change SC to work in the decibel domain
This makes the soft-knee function differentiable and the performance
should in theory be slightly higher when using these fast gain<->dB
conversion functions. This also fixes the high-frequency rolloff not
working correctly for the downwards compressors.
2023-01-15 18:28:49 +01:00
Robbert van der Helm
bdc8537f3f Add explicit .max(f32::EPSILON) back in SC
`util::db_to_gain_fast()` doesn't snap to 0, but for low enough values
it will still become 0 eventually.
2023-01-11 15:21:18 +01:00
Robbert van der Helm
11d9476a5f Use db_to_gain_fast() in plugins 2023-01-04 17:05:13 +01:00
Robbert van der Helm
ab9adaf13e Update copyright notices for 2023
Happy new year!
2023-01-01 18:52:44 +01:00
Robbert van der Helm
81bdad87b5 Replace custom Params in SC with #[nested]
Using the new `id_prefix` attribute. This doesn't break backwards
compatibility.
2022-10-13 01:32:48 +02:00
Robbert van der Helm
727d88c4d7 Add ID renaming superpowers to #[nested(...)]
This can now be used for most common use cases where you previously had
to do a manual `Params` implementation, like arrays of parameter objects
and duplicate parameter objects.
2022-10-13 01:28:05 +02:00
Simon Leiner
0caef90b1a Fix typos in comments 2022-09-29 15:13:43 +02:00
Robbert van der Helm
a51c359c0b Fix Spectral Compressor high frequency rolloff 2022-09-15 01:39:16 +02:00
Robbert van der Helm
5ac9c32c19 Fix SC high freq rolloff at 22.05 kHz
This prevents the effect from getting brighter as you increase the
sample rate.
2022-09-14 17:47:07 +02:00
Robbert van der Helm
5fa2382c8c Add a Spectral Compressor todo for rolloff 2022-09-12 02:42:43 +02:00
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
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
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
f231be1b1e Default Spectral Compressor threshold to -12 dB 2022-09-02 13:46:15 +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
9550fe0d10 Add spectral sidechain compression to SC 2022-08-20 16:37:20 +02:00
Robbert van der Helm
35c6b97ade Increase Spectral Compressor ratio range 2022-08-20 15:49:03 +02:00
Robbert van der Helm
3d6cad54dd Reset SC envelopes to sqrt(1/2) to prevent pops 2022-07-26 18:51:27 +02:00
Robbert van der Helm
862d475b2b Prevent divisions by zero in sidechain mode 2022-07-25 16:47:42 +02:00
Robbert van der Helm
f7201a0f58 Implement the sidechain compression mode 2022-07-25 16:47:42 +02:00
Robbert van der Helm
6da8756e31 Use unchecked access instead of zip 2022-07-25 16:33:24 +02:00
Robbert van der Helm
dd49bd9e7f Move knee scaling factor to a function 2022-07-25 16:33:24 +02:00
Robbert van der Helm
49d5ba147a Move actual compression routines to functions 2022-07-25 16:33:24 +02:00
Robbert van der Helm
2813f3d827 Compute sidechain magnitude spectra when enabled 2022-07-25 16:33:24 +02:00
Robbert van der Helm
1fbcd583a4 Don't apply pink noise curve in sidechain mode 2022-07-25 16:33:24 +02:00
Robbert van der Helm
a799aec7bd Add (unused) parameters for the compression mode 2022-07-25 16:33:24 +02:00
Robbert van der Helm
4060986b28 Rearrange compressor parameter order 2022-07-25 16:33:24 +02:00
Robbert van der Helm
4f8d5160de Mark SC parameter struct fields as pub 2022-07-25 14:21:45 +02:00
Robbert van der Helm
6b26828839 Default both offsets to 0 dB again
Otherwise the UI just looks weird.
2022-07-24 19:01:28 +02:00
Robbert van der Helm
2a464c478c Default SC global threshold to 0 dBFS 2022-07-24 18:30:20 +02:00
Robbert van der Helm
ce0aa0079c Slightly lower the threshold parameter 2022-07-24 18:26:57 +02:00
Robbert van der Helm
ce72dc5f03 Fix disabled DC filter behavior
This fixes a NaN from taking the logarithm of zero, and the lower bins
are not actually compressed when this option is disabled. This is useful
when using tiny window sizes as the first bin will span quite a chunk of
the spectrum.
2022-07-24 18:25:46 +02:00