1
0
Fork 0
Commit graph

2190 commits

Author SHA1 Message Date
Robbert van der Helm 4e0a0d4cd5 Move smoothing scratch buffers to the heap
This is probably a good idea to keep the stack sizes small. A couple 32
element buffers should be fine, but these fit 512 elements each and
Windows can be fussy about stack sizes.
2023-04-05 19:05:51 +02:00
Robbert van der Helm d3f820dc8c Set the default oversampling amount to 2x
Oversampling is not always needed, so this is probably a better default.
2023-04-05 18:54:13 +02:00
Robbert van der Helm 913aa4bef9 Decrease Soft Vacuum output gain range
-40 dB sounds reasonable. No need to go down all the way to -100.0. The
original version was in the linear domain.
2023-04-05 18:46:47 +02:00
Robbert van der Helm 4b5f52252a Make the oversampling in Soft Vacuum configurable 2023-04-05 18:40:40 +02:00
Robbert van der Helm c6765d91ac Modify oversampler to allow variable no of stages
This is needed to be able to add a control for the oversampler amount.
2023-04-05 18:22:28 +02:00
Robbert van der Helm 40db21277e Fix debug assertions in oversampling
These were leftover from before the addition of delays.
2023-04-05 18:22:28 +02:00
Robbert van der Helm 1711efa11e Add a basic 4x oversampled version of Hard Vacuum
The oversampling amount should be configurable, and it would work better
if the slew signal was oversampled independently instead of doing this
compensation thing.
2023-04-05 18:22:28 +02:00
Robbert van der Helm 6a368c1ac6 Add a Lanczos3-based linear phase oversampler 2023-04-05 18:22:28 +02:00
Robbert van der Helm 4b706acac5 Mention Soft Vacuum in the readme 2023-04-05 18:22:28 +02:00
Robbert van der Helm 41b513541d Rename Soft Vacuum plugin name 2023-04-05 18:22:28 +02:00
Robbert van der Helm f4c3c96364 Add parameters for the Hard Vacuum port 2023-04-05 18:22:28 +02:00
Robbert van der Helm 456a22119e Port the Hard Vacuum algorithm 2023-04-05 18:22:28 +02:00
Robbert van der Helm 1abcb02647 Add an abstraction for the Hard Vacuum algorithm 2023-04-05 18:22:28 +02:00
Robbert van der Helm 3e26fcf912 Add a skeleton for a Hard Vacuum port 2023-04-05 18:22:28 +02:00
Robbert van der Helm 4502eaec3a Change wrapped smoothing style to be a static ref
Instead of having to wrap this in an `Arc`. This makes the interface a
bit nicer to use.
2023-04-05 18:16:58 +02:00
Robbert van der Helm 8a7100ac3e Add an OversamplingAware smoothing style
This can be used to have an ergonomic way to do multi-rate smoothing
with variable oversampling amounts that only the `Arc<AtomicF32>` to be
updated from a parameter callback.
2023-04-05 18:08:22 +02:00
Robbert van der Helm 95d7dabcee Downgrade unknown serialization fields to trace
Instead of being debug assertion failures. These are guaranteed to
trigger when using persistent fields together with nested param structs.
2023-04-05 16:13:16 +02:00
Robbert van der Helm 3aa3f08f82 Upgrade nih_debug_assert!() to panic in tests 2023-04-05 16:13:16 +02:00
Robbert van der Helm 58174c1af0 Add a miri test for the buffer management's safety 2023-04-01 16:12:37 +02:00
Robbert van der Helm 112c801bc4 Use the new buffer management for the CPAL backend
Now everything uses `BufferManager`. That should hopefully reduce the
chances that different backends behave differently or trigger different
debug assertions.
2023-04-01 15:43:58 +02:00
Robbert van der Helm cc5980e215 Zero out auxiliary output buffers
We used to do this, but this got lost in the migration to the new buffer
management system.
2023-04-01 15:21:12 +02:00
Robbert van der Helm 9d45cbf1d9 Use new buffer management for the dummy backend 2023-03-31 19:22:30 +02:00
Robbert van der Helm ca4569e03a Use new buffer management in JACK standalones 2023-03-31 18:17:48 +02:00
Robbert van der Helm 8196641d65 Update VST3 wrapper to use new buffer manager
This also fixes output events not being sent during a parameter flush.
2023-03-31 17:01:41 +02:00
Robbert van der Helm 30a26e0d9a Update CLAP wrapper to use the new buffer manager 2023-03-31 16:03:49 +02:00
Robbert van der Helm 83dd585c40 Add a standalone buffer management abstraction
The idea is that all backends are refactored to use this. This greatly
reduces the need for backend-specific code when it comes to buffer
management, and thus also bugs. It also overwrites main output channels
that don't have a corresponding input channel with zeroes, which the
current backends don't do.
2023-03-31 16:02:00 +02:00
Robbert van der Helm a33569bff6 Bump Spectral Compressor to version 0.4.3 2023-03-31 12:54:20 +02:00
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 9db31b34dc Fix formatting for #68 2023-03-27 13:24:43 +02:00
Alex Charlton 0f7d9827d8 Add a hint to failed builds 2023-03-26 22:59:28 -07: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 f7dd40aabc Bump Spectral Compressor to version 0.4.2
Was a bit too quick to tag 0.4.1.
2023-03-22 14:34:47 +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 e2ab5e16bc Add a screenshot to Spectral Compressor's page 2023-03-22 13:55:10 +01:00
Robbert van der Helm 3e038dc043 Disable standalone feature for Spectral Compressor
This is not ready yet.
2023-03-22 13:55:02 +01:00
Robbert van der Helm ea39daf99b Bump Spectral Compressor to version 0.4.1 2023-03-22 13:50:53 +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 c24ace61ee Bump Spectral Compressor to 0.4.0 2023-03-22 13:16:11 +01:00
Robbert van der Helm 135c60cf38 Reword Spectral Compressor changelog 2023-03-22 13:15:19 +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 7e04c118dd Mention disabling gatekeeper in macOS readme 2023-03-22 10:47:35 +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 2de1fd563b Tweak cosmic text and module logging settings
In release builds the cosmic text messages are now suppressed, and in
debug builds the module is always shown even for error, warning, and
info messages.
2023-03-21 20:31:58 +01:00