1
0
Fork 0
Commit graph

1601 commits

Author SHA1 Message Date
Robbert van der Helm b389268168 Fix FFT FIR crossover latency calculation 2022-06-07 20:46:23 +02:00
Robbert van der Helm c23cf8e7ee Announce zero latency when switching back to IIR 2022-06-07 20:36:02 +02:00
Robbert van der Helm 469e47e8bf Drop experimental label on FIR crossover 2022-06-07 20:32:55 +02:00
Robbert van der Helm 5a51dce00d Rework FIR crossover to use FFT convolution 2022-06-07 20:32:27 +02:00
Robbert van der Helm 2c48ceb392 Refactor IIR crossover process loop, disable FIR
The FIR crossover will need to use FFT convolution, so it can't use the
same loop. Because of that we'll need to rework the FIR crossover to not
use channel SIMD and to work on channel slices instead.
2022-06-07 16:13:39 +02:00
Robbert van der Helm 7e3dfe904d Parameterize FirCoefficients over the kernel size 2022-06-07 15:32:29 +02:00
Robbert van der Helm b32cd27e8c Move FIR filters to their own module 2022-06-07 15:19:18 +02:00
Robbert van der Helm ac5796ee59 Move the Crossover biquad definition 2022-06-07 15:10:55 +02:00
Robbert van der Helm 4fad759d06 Mark the linear-phase LR24 crossover experimental
The low frequency performance is too poor at this filter size and the
DSP load impact is too high. This needs to be implemented using FFT
convolution instead.
2022-06-07 14:19:29 +02:00
Robbert van der Helm 50317baba2 Fix normalization in biquad->LP FIR conversion 2022-06-07 14:19:29 +02:00
Robbert van der Helm dd18c7a08a Fix classic off by one error 2022-06-07 14:19:29 +02:00
Robbert van der Helm 8d70f172c3 Add a linear-phase FIR LR24 crossover option 2022-06-07 14:19:29 +02:00
Robbert van der Helm 73919b6805 Add a process function for the FIR crossover 2022-06-07 14:19:29 +02:00
Robbert van der Helm 43980ec459 Add the function to design the FIR band filters
Using the previously added biquad->linear phase FIR conversion function.
2022-06-07 14:19:29 +02:00
Robbert van der Helm f4b3999916 Rename linear-phase low-pass FIR design function 2022-06-07 14:19:29 +02:00
Robbert van der Helm cbb380a9b7 Don't cache ~/.cargo/bin in the CI
This causes issues with the macOS AArch64 builds.
2022-06-07 14:19:29 +02:00
Robbert van der Helm a1fe3b157b Simplify biquad -> linear-phase FIR conversion 2022-06-07 14:19:29 +02:00
Robbert van der Helm de13f8c42a Add part of an FIR crossover
This includes an algorithm that efficiently converts biquad coefficients
to a linear-phase FIR filter kernel.
2022-06-07 14:19:29 +02:00
Robbert van der Helm 78caa0f78d Move Q constant to the biquad module 2022-06-07 14:19:29 +02:00
Robbert van der Helm 06f5048b0b Add a crossover type parameter 2022-06-07 14:19:29 +02:00
Robbert van der Helm 694996dcf4 Move Crossover biquads to their own module 2022-06-07 14:19:29 +02:00
Robbert van der Helm 89afa8bf00 Use nih_trace!() for lesser important messages
Like the missing CLAP extensions.
2022-06-07 14:18:56 +02:00
Robbert van der Helm 2cd3fe1e08 Update CLAP dependency
This is the same version, but the previous commit no longer exists.
2022-06-07 14:17:08 +02:00
Robbert van der Helm 4dd275a501 Fix typo in x86_64 macOS artifact name 2022-06-05 15:13:11 +02:00
Robbert van der Helm 84e63ef05e Add AArch64 macOS builds for M1 macs
This resolves #8.
2022-06-05 14:46:08 +02:00
Robbert van der Helm bc2b341089
Merge pull request #9 from autumnblazey/fixtypo
fix typoed AArch64 as ARM64
2022-06-05 12:55:59 +02:00
Autumn Meadow 7e711742d8
fix typoed AArch64 as ARM64 2022-06-04 23:56:33 -07:00
Robbert van der Helm f7bfbb8d95 Add stable IDs to the plugin's enum parameters
Existing instances will automatically be upgraded to these IDs when the
instance gets saved. This makes it possible to rearrange things later
when needed.
2022-06-04 13:36:17 +02:00
Robbert van der Helm 449adb8bfc Add stable IDs for enum parameters 2022-06-03 22:22:36 +02:00
Robbert van der Helm d72bd56fe7 Change the limiter recommendation on Diopser
And explain what can happen and why when you start sweeping parameters
around.
2022-06-03 18:22:23 +02:00
Robbert van der Helm 82565592fa Mention Safety Limiter in Diopser readme 2022-06-02 16:34:25 +02:00
Robbert van der Helm 24140494a2 Add a screenshot to the Crossover readme 2022-06-02 15:59:09 +02:00
Robbert van der Helm 96fe176d53 Remove Crossover filter monotonicity check 2022-06-02 14:40:12 +02:00
Robbert van der Helm 330d6d1359 Fix phase response in the Crossover plugin
Didn't have time to do this, now I do. This nudges the phases from the
lower bands to match the higher bands, making the frequency response
magnitudes sum to unity again.
2022-06-02 14:30:48 +02:00
Robbert van der Helm bfc472e49b Introduce a new enum for CLAP features
Based on the new CLAP 0.26 clap-features.h.
2022-06-02 01:16:30 +02:00
Robbert van der Helm ce9142186e Remove the win32-dpi-aware CLAP feature on Windows
I don't think this is correct, since none of the GUI adapters are able
to communicate the detected DPI back to NIH-plug.
2022-06-02 00:54:15 +02:00
Robbert van der Helm 6996fdaed1 Update features names for CLAP 0.26 2022-06-02 00:52:13 +02:00
Robbert van der Helm 19f4fdadc5 Update for CLAP 0.26 2022-06-02 00:50:36 +02:00
Robbert van der Helm 37a2d86714 Add TODO on also supporting hard realtime for VST3 2022-05-30 15:30:41 +02:00
Robbert van der Helm c9332d332b Somewhat mitigate phasing in crossovers 2022-05-29 16:57:39 +02:00
Robbert van der Helm ebe2b24146 Add the actual crossovers to the Crossover plugin
That feeling when you write a whole bunch of garbage in one without
testing it go and it actually works.
2022-05-29 16:21:36 +02:00
Robbert van der Helm 33120ecfe7 Add biquad low- and high pass filters
We'll use these for LR24 crossovers.
2022-05-29 14:54:40 +02:00
Robbert van der Helm 99ba25d1bd Enable simd for the Crossover plugin 2022-05-29 14:54:28 +02:00
Robbert van der Helm c83fb2863e Clear the main output in Crossover 2022-05-29 14:43:15 +02:00
Robbert van der Helm c7f5cd1cec Fix NaNs in negative out of bounds skewed params
This would result in a NaN, and the clamping wouldn't catch that.
2022-05-29 14:33:16 +02:00
Robbert van der Helm c1d72f0e80 Add parameters for the Crossover plugin 2022-05-29 14:25:48 +02:00
Robbert van der Helm 782b46308a Make ranges Clone and Copy 2022-05-29 14:22:14 +02:00
Robbert van der Helm 45c141c394 Make smoothing styles Debug, Clone and Copy 2022-05-29 14:21:41 +02:00
Robbert van der Helm 7a4e7b187a Clear auxiliary output buffers at start of process
This prevents uninitialized data from lingering if the plugin doesn't
write to these buffers. Seen this happen in Bitwig.
2022-05-29 14:07:13 +02:00
Robbert van der Helm 87813fb9dc Add an empty crossover plugin 2022-05-29 13:42:45 +02:00