1
0
Fork 0
Commit graph

698 commits

Author SHA1 Message Date
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 ba30a86b11 Draw Diopser's spectrum analyzer in one go 2023-03-21 16:59:51 +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 01f9aa52cb Remove Diopser todos 2023-03-20 13:33:45 +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 41bdcc3988 Fix overlap order comment in Puberty Simulator 2023-03-18 23:27:57 +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 952bb8c129 Mark Crossover struct as pub
For testing with standalones
2023-02-23 22:15:35 +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 32f981b1f6 Fix Buffr Glitch for crossfade lengths of 1 sample 2023-02-02 16:27:43 +01:00
Robbert van der Helm d7cefcd29a Fix typos 2023-02-01 19:03:50 +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 fba2c47614 Add a SysEx example plugin 2023-02-01 14:52:01 +01:00
Robbert van der Helm e3a7e4a931 Allow any audio setup for midi_inverter 2023-02-01 14:39:47 +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 32957c222f Add a missing category feature to the sine example 2023-01-28 23:23:56 +01:00
Robbert van der Helm 9206b8489d Bump Buffr Blitch to 0.2.0 2023-01-17 15:06:41 +01:00
Robbert van der Helm 821f4aac21 Prefer releasing voices in voice stealing 2023-01-17 02:44:59 +01:00
Robbert van der Helm 98e2e11d25 Smooth the gain expression in Buffr Glitch 2023-01-17 02:27:59 +01:00
Robbert van der Helm dd6a998977 Document the Buffr Glitch polyphony support 2023-01-17 02:20:43 +01:00
Robbert van der Helm 0bb224050e Add dry mixing back in Buffr Glitch 2023-01-17 02:20:02 +01:00
Robbert van der Helm 17a89bcee6 Add polypony to Buffr Glitch 2023-01-17 02:06:14 +01:00
Robbert van der Helm bc98463b28 Add a basic amp envelope to Buffr Glitch 2023-01-17 01:53:38 +01:00
Robbert van der Helm 22b3b9527b Add a crossfade option to Buffr Glitch 2023-01-17 00:31:20 +01:00
Robbert van der Helm baca2431c9 Add gain expression support to Buffr Glitch 2023-01-16 23:58:49 +01:00
Robbert van der Helm 955f40da11 Remove all traces of Buffr Glitch normalization
This isn't going to work anymore.
2023-01-16 23:48:57 +01:00
Robbert van der Helm ae6ea7f2f0 Add velocity sensitivity to Buffr Glitch 2023-01-16 18:48:55 +01:00
Robbert van der Helm 2a1201580c Change Buffr Gltich to start recording on key down
From a 'buffer glitch' point of view the old behavior made a lot of
sense, but it wasn't as musical.
2023-01-16 18:34:12 +01:00
Robbert van der Helm 886f3a78ef Log on NaN and inf in Safety Limiter 2023-01-16 01:25:10 +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 02e522cff1 Update Crisp for cosmic-text changes 2023-01-12 19:03:02 +01:00
Robbert van der Helm 00d840794d Update gain_gui_vizia for cosmic-text changes 2023-01-12 19:03:02 +01:00
Robbert van der Helm 0b5811e8c7 Update Diopser for cosmic-text changes 2023-01-12 19:03:02 +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 e5a26ac199 Send individual parameter changes for VST3 plugins 2023-01-11 16:59:21 +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 6e7ee125b6 Sorta fix stock widget usage in gain_gui_egui
The parameter changed from storing its value as decibels to storing gain
at some point.
2023-01-10 20:26:31 +01:00
Robbert van der Helm 27acce3237 Remove the DC filter from Spectral Compressor
It's not needed anymore and the behavior is confusing. This was added to
prevent upwards compression and gain increases on DC values from blowing
up. But we no longer do upwards compression on DC bins anyways.
2023-01-08 00:03:38 +01:00
Robbert van der Helm dfeb8164ca Fix new Clippy lints 2023-01-06 16:13:01 +01:00
Robbert van der Helm a0c1fc2e01 Link a default Bitwig preset for Crossover
And update the screenshot to show remote controls.
2023-01-05 16:34:50 +01:00
Robbert van der Helm cb827d18dd Rename Buffer::len() to Buffer::samples()
To reduce ambiguity.
2023-01-05 16:04:38 +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 5115ff7b47 Mention safe mode in Diopser readme 2022-11-29 20:59:41 +01:00
Robbert van der Helm 0d2af71180 Increase minimum frequency in Diopser safe mode 2022-11-29 20:53:51 +01:00
Robbert van der Helm d7acd6573a Only set parameter values on safe mode when needed
Otherwise this resets the filters every time.
2022-11-29 20:48:47 +01:00
Robbert van der Helm 035e345e21 Limit Diopser frequency range in safe mode 2022-11-29 20:45:06 +01:00
Robbert van der Helm afd8830636 Clamp scrolling in RestrictedParamSlider 2022-11-29 20:36:30 +01:00
Robbert van der Helm 3ba0ddffee Simmplify safe mode granular drag mapping 2022-11-29 20:34:02 +01:00
Robbert van der Helm 3635cfb78e Default Diopser automation precision to 100%
This is fine with the limited range.
2022-11-29 20:11:20 +01:00
Robbert van der Helm aca09c49c7 Auto-disable Diopser safe mode for older instances
Since this used to not do anything.
2022-11-29 20:00:21 +01:00
Robbert van der Helm 836a72dbc4 Implement Diopser's safe mode for filter stages
These are now limited to 40 by default.
2022-11-29 19:47:42 +01:00
Robbert van der Helm 32f123b47d Add a RestrictedParamSlider to Diopser
This currently is just a stripped down ParamSlider, but it will allow
the slider's range to be capped when safe mode is enabled.
2022-11-29 19:09:55 +01:00
Robbert van der Helm 1ef987a403 Show the modulation value in Diopser X-Y pad 2022-11-28 01:00:54 +01:00
Robbert van der Helm 4eb7614ee7 Wrap Diopser safe mode boolean in a struct
This struct will also be used to limit the parameter ranges later.
2022-11-23 01:00:45 +01:00
Robbert van der Helm 82b7426689 Namespace custom CLAP features 2022-11-22 21:09:32 +01:00
Robbert van der Helm dfd0109205 Move Diopser filter stages range to a function
We'll use this in the safe mode abstraction to clamp the parameter's
range when safe mode is engaged.
2022-11-22 18:20:36 +01:00
Robbert van der Helm fc6fcf4cf5 Move Diopser param structs and helpers to module
We'll need to expose some more ranges here so we can limit the ranges in
safe mode.
2022-11-22 18:06:59 +01:00
Robbert van der Helm 5e4cfb0e5a Add scrolling for the X-Y pad 2022-11-22 15:23:08 +01:00