1
0
Fork 0
Commit graph

166 commits

Author SHA1 Message Date
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 86aed54bf3 Document the addition of an analyzer in SC 2023-03-21 18:13:09 +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
Robbert van der Helm cf52d60a61 Make the Spectral Compressor title link to GitHub 2023-01-16 01:18:32 +01:00
Robbert van der Helm 77cbef5f82 Add the Spectral Compressor version to the GUI 2023-01-16 01:17:07 +01:00
Robbert van der Helm b56d8771f3 Add a changelog for Spectral Compressor 2023-01-16 00:58:46 +01:00
Robbert van der Helm 9f560b2c5c Bump Spectral Compressor version 2023-01-15 18:28:49 +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