Robbert van der Helm
4f0e2b70b5
Rework EnumParam to be a whole lot less sketchy
...
Now it no longer needs to do any unsound type punning. The internal
parameter that the wrapper has access to has been completely type
erased, and only the outer parameter knows about enum T. This also gets
rid of strum and replaces it with a custom trait.
2022-02-14 15:34:46 +01:00
Robbert van der Helm
0e930668f2
Move EnumParam to its own module
2022-02-14 14:35:57 +01:00
Robbert van der Helm
5a26756765
Move BoolParam to its own module
2022-02-14 14:27:40 +01:00
Robbert van der Helm
287576d064
Fix rustdoc hyperlinks
2022-02-14 14:22:57 +01:00
Robbert van der Helm
70da6209fc
Move PlainParam to its own module
2022-02-14 14:19:46 +01:00
Robbert van der Helm
cf0fb039b0
Add todo about enum value serialization
2022-02-14 02:29:08 +01:00
Robbert van der Helm
847887db9d
Allow custom names for enum variants
2022-02-14 02:26:11 +01:00
Robbert van der Helm
0c1f105910
Fix string to value for enum parameters
2022-02-14 02:10:12 +01:00
Robbert van der Helm
39e8dfc83c
Add somewhat shady enum parameters
2022-02-14 02:04:17 +01:00
Robbert van der Helm
d878fd692a
Prefix all marker fields with underscores
2022-02-13 22:58:51 +01:00
Robbert van der Helm
6d157e06b5
Make the example plugins in the readme hyperlinks
2022-02-13 21:04:07 +01:00
Robbert van der Helm
c1d91498e1
Update the todo list for Diopser
2022-02-13 20:21:59 +01:00
Robbert van der Helm
ee423bf3e0
Reword the licensing section
2022-02-13 20:10:43 +01:00
Robbert van der Helm
f399b30dba
Implement the smoothing interval on Diopser
2022-02-13 19:54:49 +01:00
Robbert van der Helm
0bd0ea6af2
Add an automation precision parameter to Diopser
2022-02-13 19:41:31 +01:00
Robbert van der Helm
c9a9f76dce
Update note on Diopser's status
...
The port is unfinished, but the origin version's feature are all there
and it works well.
2022-02-13 18:42:35 +01:00
Robbert van der Helm
233c1eef38
Fix readme ToC
2022-02-13 18:42:05 +01:00
Robbert van der Helm
fd3f4c2c48
Allow skipping steps in the smoothers
...
I'll need this for Diopser since it's going to have a parameter to
control the automation's granularity.
2022-02-13 18:33:05 +01:00
Robbert van der Helm
99fe9e865b
Fix decimals in snapping test
2022-02-13 18:07:19 +01:00
Robbert van der Helm
990072f529
Fix step size based formatting
2022-02-13 18:03:45 +01:00
Robbert van der Helm
19d2dc0a67
Implement step snapping for parameters
2022-02-13 17:52:54 +01:00
Robbert van der Helm
4481ef0ae9
Avoid more redundancy in parameter handling
2022-02-13 16:49:29 +01:00
Robbert van der Helm
4783535ebb
Use preview_plain when setting normalized values
...
To prevent bugs, there should be only one way parameters are
unnormalized.
2022-02-13 16:44:18 +01:00
Robbert van der Helm
3d8cfd7477
Use the step sizes
2022-02-13 16:43:11 +01:00
Robbert van der Helm
adf59c192b
Add a step size for float parameters
2022-02-13 16:41:31 +01:00
Robbert van der Helm
ef4c2ad7f9
Add missing #[cfg(test)]
2022-02-13 16:14:26 +01:00
Robbert van der Helm
16c0dc8b1e
Shorten miri tests
...
These extra iterations shouldn't matter, and miri is pretty slow.
2022-02-13 15:54:19 +01:00
Robbert van der Helm
7d3beb174e
Simplify ScopedFtz
2022-02-13 13:51:02 +01:00
Robbert van der Helm
e7c3e19519
Add (miri) tests for {u16,}strlcpy()
2022-02-13 13:04:19 +01:00
Robbert van der Helm
a70edc8105
Remove now-unnecessary unsafe blocks
2022-02-13 12:47:14 +01:00
Robbert van der Helm
2525319207
Add a miri test for the buffer
2022-02-13 02:29:10 +01:00
Robbert van der Helm
a734dd09f3
Fix lifetimes on buffer adapter
2022-02-13 01:58:22 +01:00
Robbert van der Helm
73fe012751
Rename the buffer lifetimes
2022-02-13 01:48:56 +01:00
Robbert van der Helm
16e299ca34
Add the outer lifetime back to the sample buffer
2022-02-13 01:47:26 +01:00
Robbert van der Helm
81ddb410f5
Fix buffer iterators over last refactor
...
This len() function returns the remaining length, which is not what we
want.
2022-02-13 01:16:52 +01:00
Robbert van der Helm
8411313270
Move Buffer::iter_mut() lifetime definitions
2022-02-13 01:11:23 +01:00
Robbert van der Helm
eac3fdf612
Fix duplicate mutable borrow soundness in buffer
...
This gets rid of multiple simultaneous &mut references to the
vector (which should be fine, I think), and also replaces the
`.iter_mut()` that just resets the index (which definitely leads to
soundness issues) with an `.iter_mut()` and a `.into_iter()` that don't
let you have concurrent mutable borrows to the same sample data.
2022-02-13 00:59:25 +01:00
Robbert van der Helm
eea05cc748
Rename reset_iter to iter_mut
...
So it's more consistent.
2022-02-12 23:28:15 +01:00
Robbert van der Helm
2c394aabd5
Add nicer adapter for repeating channel iteration
2022-02-12 23:16:07 +01:00
Robbert van der Helm
fb382520af
Fix typo in comment
2022-02-12 21:53:19 +01:00
Robbert van der Helm
2f371874d0
Add a super basic port of Diopser
2022-02-12 21:51:58 +01:00
Robbert van der Helm
2241000c20
Fix the biquad
...
Oops.
2022-02-12 21:11:44 +01:00
Robbert van der Helm
c99877ec05
Fix Smoother::is_smoothing()
2022-02-12 20:54:03 +01:00
Robbert van der Helm
0bb3113197
Fix manual buffer accessors
2022-02-12 20:33:31 +01:00
Robbert van der Helm
710fbf0c7d
Remove now unused parameter
2022-02-12 20:02:32 +01:00
Robbert van der Helm
cd0b870682
Directly pass a style to .with_smoother()
2022-02-12 19:56:37 +01:00
Robbert van der Helm
d6b358f8ca
Don't require importing Param for derive macro
2022-02-12 19:55:39 +01:00
Robbert van der Helm
befe02cbc1
Error out when fields have duplicate names
2022-02-12 19:36:31 +01:00
Robbert van der Helm
693b618bc5
Add accessors for channel data
...
This is needed when you want to modify the same sample multiple times
within an outer loop.
2022-02-12 19:24:41 +01:00
Robbert van der Helm
e3d445cea6
Add a simple biquad filter
2022-02-12 18:07:40 +01:00