1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
//! Effect parameter descriptors and value wrappers.
use ;
use FourCC;
// -------------------------------------------------------------------------------------------------
/// Describes polarity of a [`Parameter`] for visual representations in a UI.
// -------------------------------------------------------------------------------------------------
/// Describes the type of a [`Parameter`] to e.g. select a proper visual representation in a UI.
///
/// Parameter UIs and/or automation, access parameter values as *normalized* float values only:
/// - To show values as human readable strings, use the [`value_to_string`](Parameter::value_to_string)
/// and [`string_to_value`](Parameter::string_to_value) functions.
/// - Use the `values` property for enum parameters to visualize selected and available choices.
/// Enum values have a `step` of `1.0 / values.len()`.
/// - The `step` property of float and integer parameters can be used in UIs to quantize normalized
/// value changes in sliders.
/// - The `polarity` property may be used to change visual appearence of sliders.
///
// -------------------------------------------------------------------------------------------------
/// Describes a single parameter in an [`Effect`](super::Effect) or [`Generator`](super::Generator).
///
/// **This is a descriptor, not a value holder.** Parameters describe the *metadata* about a
/// parameter (id, name, type, range, default) but don't hold the actual runtime value. The
/// effect or generator owns the actual value internally.
///
/// **Runtime value changes** happen through handles: after adding an effect or generator to the
/// player, use the returned [`EffectHandle`](crate::EffectHandle) or
/// [`GeneratorPlaybackHandle`](crate::GeneratorPlaybackHandle) to send parameter updates to the
/// audio thread via their `set_parameter()` methods.
///
/// Parameters can be `Send` and `Sync`ed across threads, allowing UIs to safely access parameter
/// metadata from any thread.
// -------------------------------------------------------------------------------------------------
/// An update for a [`Parameter`]'s value, consumed by [`Effect`](super::Effect)s or
/// [`Generator`](crate::Generator) in audio time.
// -------------------------------------------------------------------------------------------------
pub use ;
pub use SmoothedParameterValue;
pub use ;
pub use r#enum::;
pub use ;
pub use ParameterScaling;