1
0
Fork 0
Commit graph

864 commits

Author SHA1 Message Date
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
Robbert van der Helm
99f97978a9 Reorder ProcessContext methods
When we'll add more things here the more common getters should come
first and less common operations like changing latency should come last.
2022-03-04 13:22:58 +01:00