1
0
Fork 0
Commit graph

154 commits

Author SHA1 Message Date
Robbert van der Helm ce3da8ea44 Use a dedicated struct for the process context 2022-02-04 22:55:10 +01:00
Robbert van der Helm 209c19b74f Get rid of lifetime parameters for VST3 wrapper
This lifetime didn't make any sense anyways since these buffers don't
adhere to Rust's lifetime rules. Getting rid of these will let us make
nicer wrappers around the process context.
2022-02-04 22:54:28 +01:00
Robbert van der Helm cbd51b0c3a Monomorphize the context variables
For the parameter setting context functions we don't be able to use
trait objects.
2022-02-04 22:34:53 +01:00
Robbert van der Helm f2d3d987a0 Update the current MIDI support status 2022-02-04 22:31:43 +01:00
Robbert van der Helm a93ad650be Remove old todo 2022-02-04 19:04:36 +01:00
Robbert van der Helm 4c0031d7b3 Fix clippy lints 2022-02-04 18:42:42 +01:00
Robbert van der Helm 073fe743c2 Split up set_target and reset in smoothers
This makes it a bit less awkward to use in user code, if you need a
separate smoother there.
2022-02-04 15:17:42 +01:00
Robbert van der Helm 366deda83c Add MIDI support to the sine example 2022-02-04 15:17:42 +01:00
Robbert van der Helm fdfd1b01c2 Add a function for retrieving the next note event 2022-02-04 15:17:42 +01:00
Robbert van der Helm 0e67c61be0 Store timing along with the note events 2022-02-04 15:17:42 +01:00
Robbert van der Helm 02cf16e9c0 Accept incoming note events 2022-02-04 15:17:42 +01:00
Robbert van der Helm 51dace591d Add an event bus depending on ACCEPTS_MIDI 2022-02-04 15:17:42 +01:00
Robbert van der Helm aee3775c10 Add default implementations for most trait methods
Except for process()
2022-02-04 15:17:42 +01:00
Robbert van der Helm 74e0fa5964 Add defaults for some of the plugin constants 2022-02-04 15:17:42 +01:00
Robbert van der Helm f69fdcef5f Add another plugin constant for MIDI support 2022-02-04 15:17:42 +01:00
Robbert van der Helm c1f435d909 Refer to the gain plugin in the Params trait 2022-02-03 17:05:38 +01:00
Robbert van der Helm fc96bb4349 Fix channel map debug assertion 2022-02-03 17:03:33 +01:00
Robbert van der Helm dfb73f6902 Mention the 6 character overflow limit for IDs 2022-02-03 17:02:42 +01:00
Robbert van der Helm 30609c3ecd Add an is_smoothing() check 2022-02-03 16:51:41 +01:00
Robbert van der Helm 82dfee9313 Document the FTZ flags in the process function 2022-02-03 16:22:32 +01:00
Robbert van der Helm e642fb5ff8 Make sure FTZ is always enabled 2022-02-03 16:18:24 +01:00
Robbert van der Helm dfedd7b2c4 Enable assert_no_alloc in debug builds 2022-02-03 15:58:00 +01:00
Robbert van der Helm 2ca54d220d Add logarithmic smoothing 2022-02-02 23:00:17 +01:00
Robbert van der Helm 1ad477ee4f Add smoothing tests 2022-02-02 22:34:29 +01:00
Robbert van der Helm 1c80744989 nih_debug_assert_neq -> nih_debug_assert_ne 2022-02-02 22:29:14 +01:00
Robbert van der Helm da291175d1 Rename SmoothLinear to Linear
We'll rethink this when we get to sample accurate automation.
2022-02-02 22:00:00 +01:00
Robbert van der Helm 0ecec104fb Completely reset smoothing on init or restore 2022-02-02 21:41:20 +01:00
Robbert van der Helm 1336139a65 Update smoothers on init and state restore
Otherwise this would be filled with default values.
2022-02-02 21:33:20 +01:00
Robbert van der Helm e30a72888a Add an update_smoother() parameter method 2022-02-02 21:26:34 +01:00
Robbert van der Helm ea7dc2ffa3 Implement smoothing for integers 2022-02-02 21:26:20 +01:00
Robbert van der Helm 8f89754ba5 Add simple linear parameter smoothing 2022-02-02 21:26:13 +01:00
Robbert van der Helm fced4001c0 Access plain values using the method
Since we're also setting them using the method.
2022-02-02 20:39:04 +01:00
Robbert van der Helm a42649b2de Derive a Default instance for the Buffer
To make Clippy happy.
2022-02-02 20:37:06 +01:00
Robbert van der Helm 13369e4085 Reinitialize the plugin after restoring state
This lets you use the parameters to set fields on the plugin struct
during `initialize()`.
2022-02-02 15:39:55 +01:00
Robbert van der Helm c982ad9599 Avoid duplicate state restores 2022-02-02 15:32:21 +01:00
Robbert van der Helm c8cc6bd26b Re-export all user facing includes 2022-02-02 15:16:10 +01:00
Robbert van der Helm f44597df7c Move the buffer adapter to its own module 2022-02-02 15:01:41 +01:00
Robbert van der Helm 048d69213e Make the buffer own the output slices
This gets rid of a lot of lifetime casting and other unsoundness.
2022-02-02 14:41:35 +01:00
Robbert van der Helm fbadfe3e12 Fix clippy lints 2022-02-02 13:02:28 +01:00
Robbert van der Helm 6cde9cea0e Simplify spawn_unchecked lifetime transmute 2022-02-02 13:02:28 +01:00
Robbert van der Helm 58736f5cc8 Add a super unsafe channel buffer adapter
To avoid having to perform lifetime magic here, this buffer needs to own
the slices and be stored as part of the RwLock.
2022-02-02 13:02:28 +01:00
Robbert van der Helm 63e4a54d7c Center skewed parameters around the skew center
It's a bit awkward and you can completely lose some parts of the range
if you don't do this.
2022-02-02 00:06:07 +01:00
Robbert van der Helm 1202b2b9d6 Update unimplemented features list
These things are now all implemented.
2022-02-01 23:39:13 +01:00
Robbert van der Helm 7752ce6771 Add symmetrically and asymmetrically skewed ranges
This is super useful. I'm sure the symmetrical implementation can be
optimized a lot, but my math-fu was not strong enough today.
2022-02-01 23:37:28 +01:00
Robbert van der Helm 740868a10c Move parameter ranges to their own module
This module was too difficult to navigate with parameter types + ranges
+ implementation details.
2022-02-01 21:06:13 +01:00
Robbert van der Helm 27bef6fbbc Move the param trait up in the module 2022-02-01 21:02:58 +01:00
Robbert van der Helm 4aa85b43b4 Move parameter implementation details to a module 2022-02-01 21:01:28 +01:00
Robbert van der Helm bc60dc35b6 Fix rustdoc references 2022-02-01 20:53:20 +01:00
Robbert van der Helm 6bb83061dd Rename the params module to param
It's a heterogeneous module, and splitting the ranges to their own
module will be a bit weird otherwise.
2022-02-01 20:51:22 +01:00
Robbert van der Helm 15e0f6f21a Remove unnecessary import
I was going to add that set_parameter function in the next commit, but
that will need to wait a bit.
2022-02-01 19:54:35 +01:00