pub trait ParameterWrite {
// Required method
fn write_parameter(
&mut self,
name: &str,
value: ParamValue,
) -> ProcessResult<()>;
// Provided method
fn read_parameter(&self, _name: &str) -> Option<ParamValue> { ... }
}Expand description
Polymorphic parameter write interface for DSP engines.
Implementors accept named parameter writes and apply them immediately to internal state. The set of supported names is engine-specific.
§Relationship to Algorithm<T>
ParameterWrite handles the control path (parameter changes
from UI, MIDI, OSC, sequencers). Algorithm<T> handles the
signal path (per-block audio generation via process()).
Engines typically implement both.
§Example
fn send_cc(target: &mut dyn ParameterWrite, cc: u8, value: u8) {
let _ = target.write_parameter(
"amplitude",
ParamValue::Float(value as f32 / 127.0),
);
}Required Methods§
Sourcefn write_parameter(
&mut self,
name: &str,
value: ParamValue,
) -> ProcessResult<()>
fn write_parameter( &mut self, name: &str, value: ParamValue, ) -> ProcessResult<()>
Write a named parameter value.
Returns Ok(()) if the parameter was applied, or
Err(ProcessError) if the name is unknown or the value
type is invalid.
Provided Methods§
Sourcefn read_parameter(&self, _name: &str) -> Option<ParamValue>
fn read_parameter(&self, _name: &str) -> Option<ParamValue>
Read a named parameter value.
Returns None by default — engines that support reading
override to return current values.
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".