Robbert van der Helm
5e69910616
Consider block start with buffer management
...
This broke sample accurate automation.
2023-04-24 23:47:29 +02:00
Robbert van der Helm
4912962551
Fix broken links in docs
2023-04-24 14:54:20 +02:00
Robbert van der Helm
808782df05
Take &mut self for editor() and task_executor()
2023-04-24 14:51:40 +02:00
Robbert van der Helm
44476ad696
Better describe the Plugin
trait
2023-04-24 14:37:14 +02:00
Robbert van der Helm
5075f88687
Update dependencies
2023-04-24 14:00:43 +02:00
Robbert van der Helm
9af37968b5
Add a docstring for add_spacer
2023-04-22 17:26:40 +02:00
Robbert van der Helm
6f1f7e66ab
Rename CLAP main control page name
2023-04-22 17:00:49 +02:00
Robbert van der Helm
56c0a21989
Define remote controls for Crossover
2023-04-22 16:59:18 +02:00
Robbert van der Helm
911c0d57d5
Allow declaratively defining CLAP remote controls
2023-04-22 16:59:03 +02:00
Robbert van der Helm
841fe2424c
Update to CLAP 1.1.8
2023-04-22 16:09:58 +02:00
Robbert van der Helm
a7e4e8b31e
Add a context for defining remote control pages
2023-04-22 15:53:04 +02:00
Robbert van der Helm
2dbd835778
Also prefer importing from prelude internally
...
Less breakage when restructuring modules.
2023-04-22 15:13:39 +02:00
Robbert van der Helm
34b416ecb6
Move API-specific traits and structs to submodules
2023-04-22 14:52:01 +02:00
Robbert van der Helm
1deb907c38
Fix header name in changelog
2023-04-22 14:43:28 +02:00
Robbert van der Helm
f2ac4660ca
Replace Crossover preset URL
2023-04-14 14:52:00 +02:00
Robbert van der Helm
2187aa96ab
Fix formatting in formatters.rs
...
Rustfmt changed the way it formats this a while back.
2023-04-07 13:33:39 +02:00
Robbert van der Helm
699c2b99f9
Update Soft Vacuum's descriptions
2023-04-07 13:18:13 +02:00
Robbert van der Helm
2e28797bed
Install missing libraries
...
These are no longer shipped by default on the Ubuntu 20.04 image.
2023-04-05 20:28:10 +02:00
Robbert van der Helm
ffb9fb378c
Change runners to use Ubuntu 20.04
...
Seems like GitHub finally pulled the plug out of 18.04.
2023-04-05 20:21:23 +02:00
Robbert van der Helm
e1c7508624
Rename the Soft Vacuum package
2023-04-05 20:07:13 +02:00
Robbert van der Helm
ad5f0ce72a
Upsample the slews in Soft Vacuum
...
Now the oversampled versions sound similar to the non-oversampled
version.
2023-04-05 19:52:41 +02:00
Robbert van der Helm
f922e668b7
Add an upsampling-only option to the oversamplers
...
This will be used to upsample the slew control signal.
2023-04-05 19:52:09 +02:00
Robbert van der Helm
b9045a2aa8
Split slew computation in Hard Vacuum
2023-04-05 19:45:30 +02:00
Robbert van der Helm
c748d79963
Temporarily remove slew compensation
...
We should probably just upsample the slews as a control signal and use
that instead.
2023-04-05 19:08:59 +02:00
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