1
0
Fork 0
Commit graph

162 commits

Author SHA1 Message Date
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
Robbert van der Helm 1c80331829 Fix incorrect MIN_OVERLAP_TIMES calculations
These aren't actually used which is why this never came up. The
other (similarly unused) constants were calculated correctly.
2023-01-14 00:16:57 +01:00
Robbert van der Helm 8a4720e427 Update Spectral Compressor for cosmic-text changes 2023-01-12 19:03:02 +01:00
Robbert van der Helm bb521fcb82 Upgrade Vizia for the cosmic-text changes
This brings some breaking changes, and vertical positioning of text may
have changed slightly.
2023-01-12 19:03:02 +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