Robbert van der Helm
3fe24e7dc6
Use more typical convolution FFT in STFT example
2022-05-08 02:22:36 +02:00
Robbert van der Helm
55eeb689dd
Add a padding option to StftHelper
2022-05-08 02:12:37 +02:00
Robbert van der Helm
d0fcc9878e
Add a Blackman window function
2022-05-08 00:47:20 +02:00
Robbert van der Helm
77b9dd3404
Reuse hann_in_place() for hann() window function
2022-05-08 00:31:55 +02:00
Robbert van der Helm
ffe4642aa5
Implement IProcessContextRequirements
...
This is needed for VST 3.7. We claim to be a VST 3.6.14 plugin, but
implementing this anyways seems like the safe bet. I doubt many hosts
would, but under VST 3.7 hosts are allowed to not send any transport
information unless this interface is implemented.
2022-05-07 13:24:17 +02:00
Robbert van der Helm
f05e31d9e3
Sort additional VST3 interace implementations
...
The sensible order would be IComponent, IEditController,
IAudioProcessor, and then everything else.
2022-05-07 13:18:20 +02:00
Robbert van der Helm
a74d8264fb
Support CLAP transport information events
...
This will cause the buffer to be split when the transport information
changes.
2022-05-05 17:23:46 +02:00
Robbert van der Helm
7cb671319e
Properly define all predefined note expressions
...
This is apparently how you're supposed to do it in VST3. How would you
know? You'd ask Steinberg.
2022-05-05 15:35:14 +02:00
Robbert van der Helm
06c5e4b04a
Make parameter modulation stick after automation
...
This is how it's supposed to be implemented in CLAP.
2022-05-02 15:46:57 +02:00
Robbert van der Helm
10ae8e1d05
Enable modulation for CLAP parameters
...
Everything else has already been implemented, but this is kind of
important.
2022-05-02 11:51:56 +02:00
Robbert van der Helm
56cd227543
Make the modulation visualization semi-transparent
2022-05-01 20:16:17 +02:00
Robbert van der Helm
ac28f4d7bf
Show modulation separately in VIZIA ParamSlider
2022-05-01 20:08:11 +02:00
Robbert van der Helm
a4b251e5ef
Support monophonic modulation for CLAP plugins
...
This avoids the potential for state corruption caused by modulation and
modulation can be displayed differently on the GUI.
2022-05-01 19:05:51 +02:00
Robbert van der Helm
ddbaffc0bb
Add ParamMut method for setting modulation offset
...
This will be used in the CLAP wrapper to handle `CLAP_EVENT_PARAM_MOD`.
2022-05-01 19:03:04 +02:00
Robbert van der Helm
1d3ac1b2af
Move param setting functions to new ParamMut trait
...
This makes things slightly less confusing because these functions should
never be called from user code.
2022-05-01 18:45:35 +02:00
Robbert van der Helm
a17c63bf71
Add parameter getters for unmodulated values
...
This is needed to be able to support modulation events in CLAP. There an
offset gets applied to the parameter's actual current value. That way
GUIs don't have to move around when parameters are being modulated and
save states cannot get influenced by modulation.
2022-05-01 18:30:30 +02:00
Robbert van der Helm
6451555f85
Add missing #[inline] attribute
2022-05-01 17:56:20 +02:00
Robbert van der Helm
2026257561
Get rid of Default implementations on ranges
...
These also don't make any sense anymore and will likely lead to more
problems than they solve.
2022-05-01 17:40:53 +02:00
Robbert van der Helm
d6bdfd7391
Get rid of Default implementations for params
...
These don't make any sense anymore with the builder API.
2022-05-01 17:40:26 +02:00
Robbert van der Helm
cd628e80ee
Store normalized values on the param structs
...
This will be necessary to implement CLAP modulation later.
2022-05-01 17:34:59 +02:00
Robbert van der Helm
54d2a4cd2c
Hide param fields other than value and smoothed
...
Direct initialization was no longer recommended anyways since now you
need to keep the default value in sync. The next couple of commits will
add a normalized value field and two more fields to help with
modulation.
2022-05-01 17:08:08 +02:00
Robbert van der Helm
40b555bfbd
Document how values work in the Param trait
2022-05-01 16:40:18 +02:00
Robbert van der Helm
48d0f87e4c
Mark param value getters as inline
2022-05-01 16:40:16 +02:00
Robbert van der Helm
98876670f8
Re-export debug macros from the debug module
...
This makes it easy to import just the macros without having to use the
oldschool `#[macro_use] extern crate ...;` syntax.
2022-04-30 02:10:54 +02:00
Robbert van der Helm
3d454bfc9c
Don't process audio at all with invalid buffers
...
If the host does some kind of flush this way with num_samples > 0 but
without any outputs or with zero output channels then we should not try
to read from the now invalid pointers from the previous cycle.
2022-04-30 02:00:09 +02:00
Robbert van der Helm
ddc28eef5e
Clarify the VST3 output .take(num_outputs)
2022-04-30 01:52:53 +02:00
Robbert van der Helm
df14674231
Fix terminology in macOS installation readme
2022-04-29 19:13:44 +02:00
Robbert van der Helm
8235f42b1e
Fix links to docs
...
This used to redirect to the correct place, but not anymore.
2022-04-29 18:28:40 +02:00
Robbert van der Helm
41dfa2bf2d
Add OS-specific readme files to plugin archives
2022-04-29 18:18:10 +02:00
Robbert van der Helm
35cb8b488d
Bundle the Loudness War Winner in the artifacts
...
Forgot to add this one.
2022-04-28 19:59:40 +02:00
Robbert van der Helm
58d7dc034c
Fix gain compensation in STFT examples
2022-04-28 17:24:35 +02:00
Robbert van der Helm
e35886c216
Move window function handling out of StftHelper
...
And apply the window function only once at the end of the process
function for the plugins that used it.
2022-04-28 17:20:39 +02:00
Robbert van der Helm
dd770b6bde
Alter Loudness War Winner disclaimer
...
This is from a copy pasta, but I don't want it to get political.
2022-04-27 20:08:38 +02:00
Robbert van der Helm
c4b4cf95d4
Add a copy of the GPL to Loudness War Winner
2022-04-27 20:06:41 +02:00
Robbert van der Helm
81bd380569
Fix typo in Loudness War Winner's readme
2022-04-27 19:43:18 +02:00
Robbert van der Helm
4fb67a720b
Add a todo for fallback DPI scale detection
2022-04-27 19:26:39 +02:00
Robbert van der Helm
ae31e416c2
Don't use baseview system scaling on Windows/Linux
...
Until the UI frameworks make it possible to get the size or scale for
the window, this would cause the window contents to be scaled
incorrectly if the host does not set a scale factor.
2022-04-27 18:33:08 +02:00
Robbert van der Helm
b3d2b79284
Win the loudness war harder with band-pass filters
2022-04-27 17:59:54 +02:00
Robbert van der Helm
b89b4dfbb2
Add a .previous_value() method to the smoothers
2022-04-27 17:43:40 +02:00
Robbert van der Helm
6185909ddf
Also safeguard against zero channel counts in CLAP
2022-04-27 17:06:19 +02:00
Robbert van der Helm
21e28fdca2
Handle hosts providing zero output channels
2022-04-27 16:52:30 +02:00
Robbert van der Helm
afde489bbf
Add a fixme for REAPER's broken bypass handling
2022-04-27 16:45:34 +02:00
Robbert van der Helm
3d8f7afd22
Update lock file after adding backtrace dep
2022-04-27 16:24:29 +02:00
Robbert van der Helm
367cafba26
Log backtraces in panics
2022-04-27 16:23:12 +02:00
Robbert van der Helm
f49189b424
Add a fadeout after winning the loudness war
2022-04-27 16:07:19 +02:00
Robbert van der Helm
b2ac93f255
Win the loudness war
2022-04-27 15:37:17 +02:00
Robbert van der Helm
76e7f67f3a
Add missing backtick
2022-04-27 15:16:52 +02:00
Robbert van der Helm
d413d11694
Use the predefined gain formatters for Crisp
2022-04-27 15:12:31 +02:00
Robbert van der Helm
c8ea1cf316
Work around rust-analyzer problems with baseview
2022-04-27 13:13:49 +02:00
Robbert van der Helm
16ba6cffdc
Deploy the docs to a different repo
...
To avoid adding polluting the GitHub feed with a ton of noise when
watching this one.
2022-04-26 20:20:14 +02:00