1
0
Fork 0
Commit graph

1323 commits

Author SHA1 Message Date
Robbert van der Helm
d42fd41007 Buffers for zero channel plugins are always valid 2022-05-22 22:48:55 +02:00
Robbert van der Helm
74f555ebab Disable stripping symbols in profile builds
Doesn't really work otherwise now does it?
2022-05-22 20:28:25 +02:00
Robbert van der Helm
3650311db8 Support custom Cargo profiles in xtask bundle 2022-05-22 20:22:39 +02:00
Robbert van der Helm
f3ead4caca Add a profiling Cargo profile
This is a release build with debug symbols.
2022-05-22 20:17:21 +02:00
Robbert van der Helm
937842d2c5 Suggest copying {Bus,Buffer}Config as needed 2022-05-22 13:39:19 +02:00
Robbert van der Helm
783dc2245e Store the processing mode in BufferConfig
Instead of having a function on ProcessContext.
2022-05-22 13:33:38 +02:00
Robbert van der Helm
ee3b0bf8e6 Store the minimum buffer size in BufferConfig 2022-05-22 13:21:39 +02:00
Robbert van der Helm
e1d4be2a03 Change NON_AUTOMATABLE semantics and add HIDDEN
This now lets you have parameters that cannot be automated but that are
still changeable through the generic UI.
2022-05-22 12:37:30 +02:00
Robbert van der Helm
985db44503 Allow marking CLAP plugins as hard realtime 2022-05-22 01:01:59 +02:00
Robbert van der Helm
2ac013df64 Fix warnings 2022-05-22 00:59:04 +02:00
Robbert van der Helm
665108721a Add a way to fetch the current processing mode 2022-05-22 00:58:53 +02:00
Robbert van der Helm
9601c9c0c1 Fix modulating non-smoothed parameters
And also get rid of duplicate code here.
2022-05-20 16:12:48 +02:00
Robbert van der Helm
0459405ced Remove STFT example readme
This hasn't been using fftw for a while now so it's no longer relevant.
2022-05-20 03:23:57 +02:00
Robbert van der Helm
4587c1405f Move VST3 buffer initialization
This was left over from the last commit.
2022-05-18 19:41:43 +02:00
Robbert van der Helm
024307872a Move VST3 initialization to set_active()
Because the host may still change the channel layouts at this point.
2022-05-18 19:29:48 +02:00
Robbert van der Helm
3233174292 Add missing parts of the disclaimer
Courtesy of The Simpsons.
2022-05-14 00:53:09 +02:00
Robbert van der Helm
8239169aaf Add some pointers for getting started to the docs 2022-05-13 15:08:05 +02:00
Robbert van der Helm
bbb73c557d Enable the standalone feature in the docs 2022-05-13 15:05:18 +02:00
Robbert van der Helm
6fc0b2e148 Call Plugin::initialize() for runtime preset load
It's the plugin's responsibility to not do any realtime unsafe work here
if they support runtime preset loading.
2022-05-13 14:46:25 +02:00
Robbert van der Helm
e8764e7327 Use double precision for exponential step sizes
Otherwise you will get issues with rounding errors if someone ever tries
to have smoothing times over a second or so.
2022-05-12 13:50:45 +02:00
Robbert van der Helm
6a40cc9916 Remove debug print 2022-05-12 13:44:22 +02:00
Robbert van der Helm
f3d02f6210 Fix updated exponential smoothing 2022-05-12 13:44:01 +02:00
Robbert van der Helm
1fea9f94df Deduplicate the smoother implementation
By introducing a new trait for conversion to and from floating point
numbers.
2022-05-12 13:34:02 +02:00
Robbert van der Helm
dc5dfb06c6 Reach 99.99% of target for exponential smoothing
Instead of 99.97%. Both numbers are not based on anything, but this
calculation makes more sense.
2022-05-12 13:21:32 +02:00
Robbert van der Helm
28c7ea4843 Rename ExponentialIIR -> Exponential
The suffix was added to denote that this could do some funny things
because of the snapping to the target value, but in practice that
snapping distance will likely be so tiny that it is likely not
noticeable.
2022-05-12 02:22:12 +02:00
Robbert van der Helm
222036b335 Get rid of unnecessary loop in ExponentialIIR 2022-05-12 01:56:16 +02:00
Robbert van der Helm
116d245149 Add an exponential smoothing style
Based on a one-pole IIR low pass filter that reaches 99.97% of the
target value in the designated time before snapping to that value. This
will be less efficient than the linear FIR smoothing style.
2022-05-12 01:35:01 +02:00
Robbert van der Helm
0355ed3168 Add flush-to-zero support for AArch64 2022-05-10 23:12:52 +02:00
Robbert van der Helm
c141314e30 Update for CLAP 0.25 2022-05-09 16:50:24 +02:00
Robbert van der Helm
743998e388 Add a second just as bad mode to Puberty Simulator 2022-05-09 16:49:43 +02:00
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