1
0
Fork 0
Commit graph

408 commits

Author SHA1 Message Date
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
2c0b797c40 Avoid clicks in the MIDI sine example 2022-02-04 15:26:37 +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
15d0e69d46 Remove TODO about adding MIDI support
Since we did just that.
2022-02-04 15:17:42 +01:00
Robbert van der Helm
05a7748482 Describe the examples 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
295ecc94ee Shorten frequency parameter name
Since it would overflow otherwise.
2022-02-03 17:01:20 +01:00
Robbert van der Helm
10c306e035 Move example plugins into a subdirectory 2022-02-03 16:57:10 +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
f8eb0e4ea6 Make gain smoothing slower in examples 2022-02-02 21:35:18 +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
69db1acce8 Propagate build errors in xtask bundle 2022-02-02 15:00:02 +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
d5fde24854 Use skewed range for frequency parmater 2022-02-01 23:38:27 +01:00