Robbert van der Helm
3d5f44764e
Add boilerplate for a JACK backend
2022-06-14 16:27:35 +02:00
Robbert van der Helm
99fdc8975f
Add a backend type option to the standalone cli
2022-06-14 16:04:39 +02:00
Robbert van der Helm
d97831649e
Move standalone WrapperConfig to its own module
2022-06-14 15:52:31 +02:00
Robbert van der Helm
49e683e396
Add a cli for controlling the standalone settings
2022-06-14 15:44:42 +02:00
Robbert van der Helm
34fa78a313
Update for CLAP 1.0
2022-06-10 00:36:16 +02:00
Robbert van der Helm
12a4440af0
Remove unnecessary use statement
2022-06-08 02:08:51 +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
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
449adb8bfc
Add stable IDs for enum parameters
2022-06-03 22:22:36 +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
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
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
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
c56e1eab14
Implement custom port names for CLAP
2022-05-28 00:39:16 +02:00
Robbert van der Helm
90ee514fe4
Implement custom port names for VST3
2022-05-28 00:34:44 +02:00
Robbert van der Helm
625ad06584
Add a port names field on Plugin
2022-05-28 00:20:32 +02:00
Robbert van der Helm
4b760d1c19
Move auxiliary IO handling down in process()
2022-05-28 00:11:14 +02:00
Robbert van der Helm
0242cc5235
Also implement auxiliary IO for VST3
2022-05-28 00:10:16 +02:00
Robbert van der Helm
ee900f74c2
Support auxiliary inputs and outputs for CLAP
...
This does not yet work for VST3. You'll always get empty slices there.
2022-05-27 02:30:57 +02:00
Robbert van der Helm
b2e6bd5515
Create a separate InitContext
...
Only a couple of these functions would be needed during initialization.
In the next couple commits ProcessContext will get a way to access
auxiliary IO, so this really had to be separated.
2022-05-27 01:17:15 +02:00
Robbert van der Helm
7eee0b032e
Report at least a channel output bus for VST3
...
Bitwig just doesn't call the process function if plugins have no audio
IO.
2022-05-26 12:37:31 +02:00
Robbert van der Helm
4c54716cc2
Remove unnecessary pub specifier
2022-05-24 14:26:13 +02:00
Robbert van der Helm
f4f54029eb
Add a deactivation callback
...
This is the equivalent of initialize()
2022-05-24 13:05:06 +02:00
Robbert van der Helm
596b04af0a
Add preliminary support for auxiliary IO
...
The missing parts are allocating buffers for these busses, copying data
to those buffers, and adding methods to the ProcessContext to interact
with these inputs and outputs.
2022-05-23 17:13:49 +02:00
Robbert van der Helm
ad661c857c
Expose CLAP note ports extension for output-only
2022-05-22 23:16:49 +02:00
Robbert van der Helm
2a58b771f3
Remove old todo
2022-05-22 23:05:18 +02:00
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
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
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
8239169aaf
Add some pointers for getting started to the docs
2022-05-13 15:08:05 +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