1
0
Fork 0
Commit graph

784 commits

Author SHA1 Message Date
Robbert van der Helm
f37974448d Change naming convention for formatters
This still isn't idea, but at least it's less ambiguous than it was
before this.
2022-03-27 03:43:39 +02:00
Robbert van der Helm
47a96ee02b Fix broken rustdoc links 2022-03-27 03:32:45 +02:00
Robbert van der Helm
7f365d1113 Update dependencies 2022-03-25 21:04:48 +01:00
Robbert van der Helm
9c608c77f9 Add formatters for bypass parameters 2022-03-23 17:42:48 +01:00
Robbert van der Helm
8090d0ae41 Add explicit bypass parameter handling
Plugins can mark a `BoolParam` with `.is_bypass()`. Hosts can then link
use that parameter directly in their own UI.
2022-03-23 17:42:48 +01:00
Robbert van der Helm
3d7a23c812 Expose steps_left on the smoothers 2022-03-23 16:50:09 +01:00
Robbert van der Helm
0cb26b5b4c Don't process audio for bypassed plugins 2022-03-23 15:49:34 +01:00
Robbert van der Helm
c6a34a63c4 Hide non-automatable parameters 2022-03-23 13:52:23 +01:00
Robbert van der Helm
e9983cf71c Use ParamFlags::NON_AUTOMATABLE in the wrappers
Setting this will cause the parameter to be hidden from the host's
generic UI and automation lanes.
2022-03-23 13:11:00 +01:00
Robbert van der Helm
a1be942d6d Add flags to control parameter visibility
For the host and in generic UIs. These aren't wired up to anything yet.
2022-03-23 13:04:14 +01:00
Robbert van der Helm
9e3149b931 Move ParamPtr to the prelude 2022-03-23 12:46:46 +01:00
Robbert van der Helm
b0ba815514 Fix -inf in gain to Db conversion 2022-03-21 19:17:41 +01:00
Robbert van der Helm
a1cb362dda Fix subtract with overflow in Hz->kHz formatter
When supplying a short input value without a unit.
2022-03-21 15:00:03 +01:00
Robbert van der Helm
2911efaa79 Don't treat invalid inputs as center panning 2022-03-21 14:56:50 +01:00
Robbert van der Helm
b516e5341e Fix the f32_hz_then_khz formatter 2022-03-21 14:47:30 +01:00
Robbert van der Helm
0f60ce9609 Clean up i32 note formatters 2022-03-21 14:40:17 +01:00
Robbert van der Helm
e90bfecc0b Add a matching from_f32_hz_then_khz function 2022-03-21 14:28:28 +01:00
Robbert van der Helm
44aa3dd564 Clean up the f32_hz_then_khz formatter 2022-03-21 14:17:16 +01:00
Robbert van der Helm
2af93436a6 Clean up panning formatters 2022-03-21 14:14:24 +01:00
Robbert van der Helm
8344645523 Rename lin_to_db formatter to gain_to_db
And use the existing functions from the util module.
2022-03-21 13:59:31 +01:00
Robbert van der Helm
71dba0fbed
Merge pull request #5 from Fredemus/feature/more-formatters
a few more formatters
2022-03-21 13:54:32 +01:00
Robbert van der Helm
30b913e159 Don't use direct Param initialization in exmaples
Since you now also need to specify the default field you probably
shouldn't use this anymore.
2022-03-21 13:29:03 +01:00
Robbert van der Helm
40d99a5cb3 Automatically implement Param::set_normalized_value() 2022-03-21 13:28:59 +01:00
Robbert van der Helm
021d175264 Use a default implementation for Param::normalized_value() 2022-03-21 13:28:59 +01:00
Robbert van der Helm
f084f14095 Refactor GUIs to use param's own default value
This removes the need to pass a lot of these `ParamSetter`s and
`GuiContext`s around. We also don't need explicit events to reset a
parameter anymore since you can get this information from the parameter
itself.
2022-03-21 13:11:36 +01:00
Robbert van der Helm
a844051054 Store defaults on Param objects
And add methods for querying them.
2022-03-21 12:49:59 +01:00
Fredemus
8bbcb1a093 add panning formatter 2022-03-20 21:37:50 +01:00
Fredemus
41db682c20 i32_note_formatter + from_f32_lin_to_db 2022-03-20 21:15:17 +01:00
Fredemus
f0ee2739f1 a few more formatters 2022-03-20 16:08:43 +01:00
Robbert van der Helm
c22e522629 Greatly simplify Params trait
This now is a single vector with all of the information in the correct
order instead of the hashmaps and a vector. This avoids deduplication,
and it especially makes manual `Params` implementations a lot more
convenient since you can't mess up with mismatching IDs between the
methods.

To accommodate exactly this, the persistent fields methods also have a
default implementation and the trait has been marked as `unsafe` since
it's the programmer's responsibility to make sure these `ParamPtr`s will
remain valid.
2022-03-20 13:05:02 +01:00
Robbert van der Helm
8371f767ce Fix typo in debug assert macros 2022-03-20 12:44:29 +01:00
Robbert van der Helm
a6f4202ac5 Add a todo for combining the Params methods 2022-03-20 02:44:13 +01:00
Robbert van der Helm
b9d79771cc Use String instead of &'static str in Params
This may hurt performance in generic UIs a bit, but it will allow you to
programatically generate custom Params implementations for repeated
Parameters structs.
2022-03-20 02:14:18 +01:00
Robbert van der Helm
4c5d61057e Fix typos 2022-03-19 19:24:08 +01:00
Robbert van der Helm
a6e35cfaa9 Add methods for normalized parameter stepping
This is mostly useful for GUIs.
2022-03-19 16:12:56 +01:00
Robbert van der Helm
95370667d7 Rearrange the Param methods 2022-03-19 16:09:31 +01:00
Robbert van der Helm
d9330628c0 Add stepping functions to Param
This can be useful for GUI widgets.
2022-03-19 16:06:20 +01:00
Robbert van der Helm
64950055ea Implement most of the iced ParamSlider for Vizia 2022-03-19 01:17:13 +01:00
Robbert van der Helm
f43d209a60 Add a .plain_value() to ParamPtr
Useful for snapping when you don't have access to the concrete parameter
type.
2022-03-18 18:10:22 +01:00
Robbert van der Helm
fb60f3a28b Remove unused Param::set_from_string
This method is a bit more efficient than converting the string to a
normalized value and then setting the parameter using that but it's not
used right now and it adds a form of redundancy.
2022-03-18 17:53:38 +01:00
Robbert van der Helm
8077f10c27 Replace index based for loop
This initially did a linear search within the loop so iterating over the
collection wasn't possible. Now we need to use a hashmap anyways, so
this can be simplified again.
2022-03-17 23:00:15 +01:00
Robbert van der Helm
edb492932f Fix parent finding in VST3 unit transformation
Oops.
2022-03-16 22:01:47 +01:00
Robbert van der Helm
d9e943a88d Filter out the root group 2022-03-16 22:00:31 +01:00
Robbert van der Helm
8d6a7ae861 Add Debug implementations for ParamUnits 2022-03-16 21:55:59 +01:00
Robbert van der Helm
6e31e18b88 Add parameter groups to VST3 wrapper using units
This was such a mess to implement, and none of the hosts I have
installed even support it.
2022-03-16 20:40:11 +01:00
Robbert van der Helm
2bf32aa771 Add the ParamUnits to the VST3 wrapper 2022-03-16 20:26:02 +01:00
Robbert van der Helm
ea30ba7ffb Initialize parameter fields earlier
This seems a bit nicer than initializing them on the struct as empty and
then mutating the struct.
2022-03-16 20:26:02 +01:00
Robbert van der Helm
63a7aadb75 Add an abstraction around VST3's unit shenanigans
And the ability to convert group paths to them.
2022-03-16 20:26:02 +01:00
Robbert van der Helm
bbf6e009d1 Add a todo for VST3 parameter units
Implementing this is going to be a pain.
2022-03-16 17:18:25 +01:00
Robbert van der Helm
f18c92b3b4 Support parameter groups for CLAP 2022-03-16 17:15:33 +01:00