Robbert van der Helm
5966e353da
Use only interior mutability for smoothers
...
This is needed in preparation for removing the need to have `*mut`
pointers to parameters.
2022-09-06 21:21:46 +02:00
Robbert van der Helm
7f33f172cb
Clean up optimized block smoothing
...
This is easier to follow and avoids computing and subsequently
overwriting the last smoothed value.
2022-09-05 14:00:56 +02:00
Robbert van der Helm
a21daef96b
Redesign mapped block smoothing
...
The non-mapped version is now split off and the mapped version is much
better suited for array based modulation. Check the breaking changes
document and the new docstring for more information.
2022-09-04 20:17:06 +02:00
Robbert van der Helm
99437c6011
Optimize block smoothing
2022-09-04 19:52:17 +02:00
Robbert van der Helm
3a9d56e956
Rename step_size() current parameter to start
2022-09-04 18:40:18 +02:00
Robbert van der Helm
8e17972da5
Also move num steps computation to SmoothingStyle
2022-09-04 18:26:36 +02:00
Robbert van der Helm
bb6e9c237f
Add equivalence tests for next() and next_step()
2022-09-04 18:20:51 +02:00
Robbert van der Helm
9f990cc3b9
Rename step_size() parameter for SmoothingStyle
2022-09-04 18:20:28 +02:00
Robbert van der Helm
17a928647e
Optimize single step Smoother::next()
...
By not having to take multiple steps into account.
2022-09-04 18:08:31 +02:00
Robbert van der Helm
dd320c4c1f
Add dedicated single step next() to SmoothingStyle
...
This avoids some computations for single stepping. And we can use this
for block smoothing later.
2022-09-04 18:08:19 +02:00
Robbert van der Helm
e47899d421
Move calculation in next_step() to SmoothingStyle
2022-09-04 18:04:31 +02:00
Robbert van der Helm
a6d9972924
Move the smoothing step size to a function
2022-09-04 17:57:21 +02:00
Robbert van der Helm
2f87a79d3e
Wait for the Windows event loop to shut down
...
This fixes crashes when removing the instance and immediately unloading
the module. `DestroyWindow()` is synchronous while `CloseWindow()`
merely posts a message to close the window.
2022-08-29 13:59:28 +02:00
Robbert van der Helm
3761f9f5ee
Remove unnecessary use of MaybeUninit
2022-08-22 12:41:12 +02:00
Robbert van der Helm
26e0d17833
Fix VST3 event loop leaking
...
This should have never used MaybeUninit in the first place.
2022-08-22 12:31:09 +02:00
Robbert van der Helm
5110e5b059
Log trace messages when loading and saving state
2022-08-22 12:09:25 +02:00
Robbert van der Helm
72d3b61a42
Mention standalone inputs not auto connecting
2022-08-21 17:59:44 +02:00
Robbert van der Helm
9cd440231e
Print message about MIDI IO not being implemented
2022-08-21 17:59:44 +02:00
Robbert van der Helm
1bee7f5333
Add audio input to the CPAL standalone backend
2022-08-21 17:55:09 +02:00
Robbert van der Helm
c46a044cb4
Add audio output for the CPAL backend
2022-08-21 17:07:02 +02:00
Robbert van der Helm
c47f2139a3
Use a Parker instead of a channel in JACK backend
2022-08-21 15:26:49 +02:00
Robbert van der Helm
559d835878
Print system backend init errors in auto mode
...
Since this may fail due to incompatible default sample rates or period
sizes.
2022-08-21 15:26:48 +02:00
Robbert van der Helm
1fc437068a
Compute device configs for cpal
2022-08-21 15:26:48 +02:00
Robbert van der Helm
a011eaa07c
Add most of a CPAL standalone backend
...
For ALSA, CoreAudio, and WASAPI.
2022-08-21 15:26:48 +02:00
Robbert van der Helm
ca2e318551
Clean up JACK MIDI handling #23
2022-08-20 23:56:18 +02:00
Sean Bolton
7a10d58a58
Fix program change and channel pressure receipt in standalone jack backend
2022-08-20 23:48:55 +02:00
Robbert van der Helm
5010ce5e1a
Allow parsing compression ratios without a colon
2022-08-20 15:54:09 +02:00
Robbert van der Helm
8a9c98943e
Store plugin version in the state
...
This may later be used to allow migrations between breaking plugin
versions.
2022-08-20 15:10:34 +02:00
Robbert van der Helm
ee62a45d0d
Remove now unused argument
2022-08-19 14:54:48 +02:00
Robbert van der Helm
a5c05b22fb
Use the plugin's default channels for standalones
2022-08-19 14:52:57 +02:00
Robbert van der Helm
1a706ea1c7
Rename DEFAULT_NUM_INPUTS and DEFAULT_NUM_OUTPUTS
2022-08-19 14:34:21 +02:00
Robbert van der Helm
b19e6afa6c
Remove unused import
2022-08-18 16:41:51 +02:00
Robbert van der Helm
56a12db1e6
Reuse MIDI conversion function for CLAP events
2022-08-18 16:39:07 +02:00
Robbert van der Helm
b7633730e6
Mention that VST3 plugins won't receive MIDI PC
...
There's no way to map this.
2022-08-18 16:38:44 +02:00
Robbert van der Helm
17a90cca9b
Rearrange note events
2022-08-18 16:38:44 +02:00
Sean Bolton
2447344dab
Add program change events
2022-08-18 16:26:32 +02:00
Robbert van der Helm
1bb1cde913
Add optional Zstandard compression for state
...
This can be particularly useful when using the persistent fields feature
to store JSON or other large textual documents.
2022-08-18 13:55:48 +02:00
Robbert van der Helm
7f12c9f362
Fix group->unit conversion with missing parents
...
This caused Spectral Compressor's VST3 version to not work because the
compressor group didn't contain any parameters.
2022-07-24 23:37:45 +02:00
Robbert van der Helm
6a1395e99a
Avoid printing -0.0 dB
2022-07-24 21:20:53 +02:00
Robbert van der Helm
6ee7e8f4e3
Assert correct values for gain_skew_factor
2022-07-24 21:06:26 +02:00
Robbert van der Helm
2d3b601555
Allow comparisons in nih_assert!()
2022-07-24 21:06:13 +02:00
Robbert van der Helm
44b9a4cad0
Add a way to compute skew factors for linear gain
...
Needed for #18 .
2022-07-24 20:46:18 +02:00
Robbert van der Helm
dc97fb1019
Implement Params for Arc<P: Params>
...
This is useful for partial generic UIs.
2022-07-24 15:15:47 +02:00
Robbert van der Helm
83d8c7a9f4
Add a formatter for compression ratios
2022-07-24 15:15:47 +02:00
Robbert van der Helm
12aa8544cd
Add a non-functional STFT to Spectral Compressor
2022-07-24 15:15:47 +02:00
Robbert van der Helm
9844d9c490
Change match &self to match self
...
This is equivalent when taking a reference to self, and you can't do the
same thing with &mut self.
2022-07-19 20:21:52 +02:00
Robbert van der Helm
f007945335
Add reversed ranges
2022-07-19 20:21:52 +02:00
Robbert van der Helm
ef1d56646a
Make Arc<ViziaState> persistable
...
This allows the plugin instance's size and scale to be remembered.
2022-07-13 23:16:54 +02:00
Robbert van der Helm
0395fd91b1
Only connect JACK ports after activating client
...
Otherwise JACK2 will hate us. Forever!
The AtomicRefCell now needs to be a mutex because the process call may
be called while this connection function is still running.
2022-07-13 19:19:17 +02:00
Robbert van der Helm
1f3d2f9a66
Fix typo in standalone documentation example
2022-07-13 17:06:22 +02:00