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
e59dc33aaf
Change the default SC window size to 2048
2023-03-22 15:12:12 +01: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
14cd737e8f
Scrap the relative gain reduction idea
...
This looks super confusing.
2023-03-21 23:51:10 +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
ab66152f00
Allow evaluate_plain() to be unused
...
We won't need this, but it being there makes everything a lot clearer.
2023-03-21 22:51:55 +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
89dd0bf461
Explicitly handle drawing first and last bars
...
To avoid surprises here.
2023-03-21 18:32:20 +01:00
Robbert van der Helm
35864aa13c
Clean up the GR overlay drawing
2023-03-21 18:27:42 +01:00
Robbert van der Helm
8bd5f8afce
Change the blending and colors on the GR area
...
This looks a lot clearer.
2023-03-21 17:57:26 +01:00
Robbert van der Helm
a4cac4b750
Fix GR overlay clamping
...
Just the min/max isn't enough when the entire band is out of range.
2023-03-21 17:16:10 +01:00
Robbert van der Helm
9f5d1dcf57
Draw GR overlay as a single path with no AA
...
With these settings the high end parts at least look much cleaner.
2023-03-21 17:10:03 +01:00
Robbert van der Helm
c7fecd87d2
Draw all Spectral Compressor bars in one go
2023-03-21 16:55:02 +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
29fde14c88
Move analyzer drawing code to functions
2023-03-20 17:34:56 +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
48d8ff9275
Slightly reduce SC GUI height
...
This makes the bottom edge align better.
2023-03-20 15:55:48 +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
7c4ae32ba4
Add boilerplate for the analyzer widget
2023-03-20 14:57:25 +01:00
Robbert van der Helm
990fe33ff7
Add the data needed for the analyzer to Data
2023-03-20 14:57:25 +01:00
Robbert van der Helm
3c8702ac0a
Add copyright header to SC analyzer module
2023-03-19 15:50:54 +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
510bc3f131
Define a struct for SC analyzer data
2023-03-19 13:54:28 +01:00
Robbert van der Helm
234a5f5334
Rename SC visualizer to analyzer
...
Slightly more fitting term.
2023-03-19 13:38:30 +01:00
Robbert van der Helm
6f070150ea
Disable open::that() on Windows
...
Until there's an alternative that doesn't panic.
2023-03-19 13:36:50 +01:00
Robbert van der Helm
66ba8f2872
Default to 16x overlap in Spectral Compressor
2023-03-18 23:28:37 +01:00
Robbert van der Helm
74eb6fe2e5
Add a placeholder for the SC spectrum analyzer
2023-03-18 16:30:35 +01:00
Robbert van der Helm
4e304fc65a
Add a visualizer toggle button to SC
2023-03-18 15:19:19 +01:00
Robbert van der Helm
0d5247ee2f
Fix ParamButton hover state and styling
2023-03-18 15:16:52 +01:00
Robbert van der Helm
83ea930ab8
Use the new declarative resizes in SC
2023-03-18 14:27:44 +01:00
Robbert van der Helm
da61acc7b9
Compute SC editor size based on the editor mode
...
Using the new declarative editor size interface.
2023-03-18 14:25:41 +01:00
Robbert van der Helm
3be5e3fa99
Add a widget that controls the SC editor mode
2023-03-18 14:25:41 +01:00
Robbert van der Helm
c9793c6901
Add an editor mode enum for Spectral Compressor
...
To indicate that the GUI has been expanded.
2023-03-18 14:25:41 +01:00
Robbert van der Helm
f6041789cd
Use computed sizes for ViziaState
2023-03-07 21:22:15 +01:00
Robbert van der Helm
e3a923ff3b
Avoid restoring window sizes with ViziaState
...
Unless specified otherwise. This avoids some bugs where old, now
incorrect sizes are being recalled.
2023-02-28 18:50:15 +01:00
Robbert van der Helm
a14b4cf61e
Fix years in copyright headers
2023-02-27 00:59:56 +01:00
Robbert van der Helm
338f79e6be
Save and restore Spectral Compressor editor state
2023-02-26 17:35:04 +01:00
Robbert van der Helm
083326a933
Revert addition of Spectral Compressor standalones
...
Until the standalones at least have some way to change parameter values
without a GUI these probably shouldn't be published with standalones.
2023-02-26 16:25:11 +01:00
Robbert van der Helm
49e99eef53
Update the JACK bindings
...
We should no longer have to use our own fork for this.
2023-02-26 16:23:24 +01:00
Robbert van der Helm
72c43adda6
Mark the Spectral Compressor struct as pub
...
For testing with standalones.
2023-02-23 22:55:15 +01:00
Robbert van der Helm
e8fd18ab80
Completely reword the audio IO layout system
...
Instead of a VST3-style polling function to test if a plugin supports a
certain layout, the plugin now explicitly enumerates the supported
layouts. This aligns better with non-VST3 plugin formats.
2023-02-20 16:57:32 +01:00
Robbert van der Helm
d6184ea06e
Replace VST3 category string with enum slice
...
I've been putting this off for a while, but now is finally the day. We
already did this for CLAP a while back. This is both simpler and less
error prone.
2023-02-01 16:09:03 +01:00
Robbert van der Helm
c8ed795524
Add a SysExMessage type to Plugin
...
This is needed to enable sending and receiving SysEx #54 . Because
associated type defaults still are not stable, this requires every
plugin that doesn't need this to set this to the unit type:
```rust
type SysExMessage = ();
```
2023-01-31 18:18:41 +01:00