1
0
Fork 0
Commit graph

1343 commits

Author SHA1 Message Date
Robbert van der Helm c6acdfa020 Add a pitch shifting mode parameter
I experimented with some other equally broken but broken in slightly
different ways pitch shifting algorithms that also sound kind of fun.
2022-05-09 16:29:46 +02:00
Robbert van der Helm 081487fdcb Adjust windowing behavior in Puberty Simulator
We should indeed be windowing twice like we did before. A squared Hann
window doesn't work at 2x overlap, so that option has been removed. The
gain compensation is now also correct.
2022-05-09 16:22:26 +02:00
Robbert van der Helm d589f81228 Change last to latest 2022-05-09 02:47:29 +02:00
Robbert van der Helm c5841cbe33 Add missing latency compensation in STFT example
The latency introduced by the linear phase filter wasn't compensated
for.
2022-05-08 03:14:56 +02:00
Robbert van der Helm 6400e2d71d Fix gain compensation in new STFT example 2022-05-08 02:25:44 +02:00
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