Robbert van der Helm
b41b4ef725
Implement sample accurate automation for CLAP
2022-03-10 20:14:42 +01:00
Robbert van der Helm
26c503d862
Remove accidentally copied tests
2022-03-10 19:38:39 +01:00
Robbert van der Helm
36d54edae7
Add a constant for sample accurate automation
2022-03-10 18:57:17 +01:00
Robbert van der Helm
02622e6e4f
Split up the buffer module
2022-03-10 18:15:55 +01:00
Robbert van der Helm
3c5aff1ec6
Rename Buffer::iter_mut() to iter_samples()
...
Since there's also an iter_blocks(). This is consistent with the new
Block method.
2022-03-09 20:11:37 +01:00
Robbert van der Helm
fcd0522a33
Mark the remaining buffer iterators as inline
2022-03-09 19:45:42 +01:00
Robbert van der Helm
5041f959b7
Add a per-sample per-channel iterator for blocks
2022-03-09 19:27:21 +01:00
Robbert van der Helm
dfb2407698
Rename the Channels struct to ChannelSamples
...
To make it slightly more obvious what it's iterating over.
2022-03-09 19:19:32 +01:00
Robbert van der Helm
2811ab2996
Mark more of the buffer functions as inline
2022-03-09 15:02:38 +01:00
Robbert van der Helm
1a7ad0a7a0
Trim whitespace and units when parsing parameters
2022-03-08 18:53:35 +01:00
Robbert van der Helm
c3767831cd
Mention unit handing in value to string
2022-03-08 18:47:28 +01:00
Robbert van der Helm
2c6f65a342
Add formatters for percentages
2022-03-08 18:45:18 +01:00
Robbert van der Helm
24f3593de0
Move order conversion to formatters module
2022-03-08 18:31:20 +01:00
Robbert van der Helm
b9412657c1
Fix allocation error from thread locals
2022-03-08 14:07:29 +01:00
Robbert van der Helm
37e1b9523b
Optionally disallow allocations in reset function
2022-03-08 00:46:17 +01:00
Robbert van der Helm
70d3b5d557
Add a reset function to the plugin trait
...
This is used as part of CLAP 0.19/0.20, and we can just always call it
after the initialize function to stay consistent for VST3 plugins.
2022-03-08 00:35:55 +01:00
Robbert van der Helm
10ced981bd
Remove todos about fixing skewed discrete ranges
...
Because those have been removed.
2022-03-08 00:27:25 +01:00
Robbert van der Helm
8ee380864c
Update for CLAP 0.20
2022-03-08 00:21:51 +01:00
Robbert van der Helm
329da782b5
Fix with_string_to_value() after param refactor
2022-03-07 21:00:39 +01:00
Robbert van der Helm
17f3c6cc6c
Add an in-place version of the Hann function
2022-03-07 20:52:37 +01:00
Robbert van der Helm
f05d209169
Add an analysis-only function to StftHelper
2022-03-07 01:14:36 +01:00
Robbert van der Helm
b06e67bde7
Supper non-buffer and non-sidechain inputs in STFT
2022-03-06 22:26:37 +01:00
Robbert van der Helm
e61a42e96f
Revert windowing change from 93ab08e
...
This is actually needed to prevent spectral leakage from IDTFs with
small window sizes.
2022-03-06 19:17:42 +01:00
Robbert van der Helm
93ab08e5d5
Remove post-IDFT windowing in STFT helper
...
There's no reason to.
2022-03-06 19:08:04 +01:00
Robbert van der Helm
7c8da39159
Fix position increment in STFT helper
...
This was what was causing the spectral leakage. It already sounded like
parts of the buffer were being cleared too early or old parts were being
reused, but I guess that makes sense now...
2022-03-06 18:45:34 +01:00
Robbert van der Helm
82e74a7c53
Redefine the Hann window as a cosine
...
This fixes some of the spectral leakage.
2022-03-06 18:38:50 +01:00
Robbert van der Helm
295e5493ec
Add post-IDFT windowing to StftHelper
2022-03-06 17:50:58 +01:00
Robbert van der Helm
c81ec15228
Fix comment on window scale remapping
2022-03-06 15:46:59 +01:00
Robbert van der Helm
07cf10e81d
Add more todos to the STFT helper
2022-03-06 15:45:19 +01:00
Robbert van der Helm
af4db7be53
Fix fallback permit_alloc() implementation
2022-03-06 15:42:32 +01:00
Robbert van der Helm
8e2fd66573
Process sidechain inputs in STFT helper
2022-03-06 15:36:50 +01:00
Robbert van der Helm
2343485c1c
Don't do gain compensation in STFT helper
...
You'll likely want to add some scaling yourself anyways, so this would
just be a wasted operation since the scaling also depends on your window
function.
2022-03-06 15:36:24 +01:00
Robbert van der Helm
f7b3bd9198
Add gain compensation to the STFT helper
2022-03-06 15:28:35 +01:00
Robbert van der Helm
0fa394247f
Add a permit_alloc function
...
Since assert_no_alloc also hides panic messages which can make debugging
more difficult:
https://github.com/Windfisch/rust-assert-no-alloc/issues/4
2022-03-06 15:11:42 +01:00
Robbert van der Helm
592a908132
Fix samples until next window calculation
2022-03-06 15:11:42 +01:00
Robbert van der Helm
bf215ef88e
Add a Hann function for the STFT helper
2022-03-06 14:41:40 +01:00
Robbert van der Helm
3c62670164
Add proper overlap-add to the StftHelper
...
Doesn't make much sense without it.
2022-03-06 14:33:30 +01:00
Robbert van der Helm
963696cbff
Warn on invalid ranges with logarithmic smoothing
2022-03-06 12:27:52 +01:00
Robbert van der Helm
8355c38b9a
Add some TODOs to the STFT helper
2022-03-06 02:15:14 +01:00
Robbert van der Helm
4ff2e65b5c
Add a note regarding the Buffer lifetime
2022-03-06 02:10:33 +01:00
Robbert van der Helm
b2600f4b93
Add a helper for buffering audio for STFTs
2022-03-06 02:07:44 +01:00
Robbert van der Helm
e5bac1e220
Add a channel count function to Buffer
2022-03-06 01:21:00 +01:00
Robbert van der Helm
54881dfa15
Add a len() function to Buffer
2022-03-06 01:12:28 +01:00
Robbert van der Helm
03eef2c832
Require PartialEq on plain parameter types
...
So you can compare them in parameter widgets.
2022-03-05 19:50:12 +01:00
Robbert van der Helm
79ab0cd7ed
Add the special win32-dpi-aware feature on Windows
2022-03-05 16:02:52 +01:00
Robbert van der Helm
9267a8371c
Add DPI scaling support
...
That hopefully works.
2022-03-05 13:37:35 +01:00
Robbert van der Helm
e491ff6319
Fix clippy lints
2022-03-04 15:07:34 +01:00
Robbert van der Helm
e2605c8cee
Add transport information for VST3 and CLAP
...
This is available through the process context.
2022-03-04 15:05:00 +01:00
Robbert van der Helm
713e778117
Add a Default implementation for the transport
2022-03-04 14:32:23 +01:00
Robbert van der Helm
a483dbc6a6
Add a Transport struct with conversion methods
...
We'll add this to the ProcessContext in a bit.
2022-03-04 14:25:38 +01:00