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
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