pub struct MixerNode<const BUF_SIZE: usize> {Show 17 fields
pub master_volume: f32,
pub smoothing: f32,
pub channels: Vec<ChannelState>,
pub channel_names: HashMap<String, usize>,
pub buses: Vec<Vec<f32>>,
pub sends: Vec<Vec<SendConfig>>,
pub current_master_volume: f32,
pub buffer_size: usize,
pub sample_rate: f32,
pub control_values: Vec<f32>,
pub param_ids: HashMap<String, ParameterId>,
pub after_param_change_closure: fn(&mut Self, &str, f32),
pub id: NodeId,
pub input_ports: Vec<Port<f32, BUF_SIZE>>,
pub output_ports: Vec<Port<f32, BUF_SIZE>>,
pub control_ports: Vec<Port<f32, BUF_SIZE>>,
pub state: NodeState<f32, BUF_SIZE>,
}Expand description
Mixer node with multiple channels and aux sends
Fields§
§master_volume: f32Master volume (0.0 - 2.0)
smoothing: f32Smoothing factor (0.0 - 1.0)
channels: Vec<ChannelState>Channels
channel_names: HashMap<String, usize>Channel names for parameter lookup
buses: Vec<Vec<f32>>Aux buses (each bus accumulates signals from sends)
sends: Vec<Vec<SendConfig>>Send configurations per channel
current_master_volume: f32Current master volume with smoothing
buffer_size: usizeBuffer size for buses (updated each block)
sample_rate: f32Sample rate
control_values: Vec<f32>Control input values (updated from graph)
param_ids: HashMap<String, ParameterId>Parameter IDs for automation
after_param_change_closure: fn(&mut Self, &str, f32)Optional hook called after a parameter changes
id: NodeIdNode ID
input_ports: Vec<Port<f32, BUF_SIZE>>Audio input ports
output_ports: Vec<Port<f32, BUF_SIZE>>Audio output ports
control_ports: Vec<Port<f32, BUF_SIZE>>Control ports
state: NodeState<f32, BUF_SIZE>Node state
Implementations§
Source§impl<const BUF_SIZE: usize> MixerNode<BUF_SIZE>
impl<const BUF_SIZE: usize> MixerNode<BUF_SIZE>
Sourcepub fn new(num_channels: usize, num_buses: usize) -> Self
pub fn new(num_channels: usize, num_buses: usize) -> Self
Create a new mixer with specified number of channels and buses
Sourcepub fn num_inputs(&self) -> usize
pub fn num_inputs(&self) -> usize
Number of audio inputs (channels)
Sourcepub fn num_outputs(&self) -> usize
pub fn num_outputs(&self) -> usize
Number of audio outputs (master L/R + buses)
Sourcepub fn get_param(&self, name: &str) -> Option<ParamValue>
pub fn get_param(&self, name: &str) -> Option<ParamValue>
Get parameter value by name (convenience wrapper)
Sourcepub fn set_param(&mut self, name: &str, value: ParamValue) -> ProcessResult<()>
pub fn set_param(&mut self, name: &str, value: ParamValue) -> ProcessResult<()>
Set parameter value by name (convenience wrapper)
Sourcepub fn add_channel(&mut self, config: ChannelConfig) -> usize
pub fn add_channel(&mut self, config: ChannelConfig) -> usize
Add a channel
Sourcepub fn remove_channel(&mut self, index: usize) -> Result<(), ProcessError>
pub fn remove_channel(&mut self, index: usize) -> Result<(), ProcessError>
Remove a channel by index
Sourcepub fn add_send(
&mut self,
channel_index: usize,
send: SendConfig,
) -> Result<(), ProcessError>
pub fn add_send( &mut self, channel_index: usize, send: SendConfig, ) -> Result<(), ProcessError>
Add a send from a channel to a bus
Sourcepub fn clear_sends(&mut self, channel_index: usize) -> Result<(), ProcessError>
pub fn clear_sends(&mut self, channel_index: usize) -> Result<(), ProcessError>
Clear sends for a channel
Sourcepub fn set_channel_volume(
&mut self,
channel_index: usize,
volume: f32,
) -> Result<(), ProcessError>
pub fn set_channel_volume( &mut self, channel_index: usize, volume: f32, ) -> Result<(), ProcessError>
Set channel volume
Sourcepub fn set_channel_pan(
&mut self,
channel_index: usize,
pan: f32,
) -> Result<(), ProcessError>
pub fn set_channel_pan( &mut self, channel_index: usize, pan: f32, ) -> Result<(), ProcessError>
Set channel pan
Sourcepub fn set_channel_mute(
&mut self,
channel_index: usize,
mute: bool,
) -> Result<(), ProcessError>
pub fn set_channel_mute( &mut self, channel_index: usize, mute: bool, ) -> Result<(), ProcessError>
Set channel mute
Sourcepub fn set_master_volume(&mut self, volume: f32)
pub fn set_master_volume(&mut self, volume: f32)
Set master volume
Sourcepub fn set_smoothing(&mut self, factor: f32)
pub fn set_smoothing(&mut self, factor: f32)
Set smoothing factor
Trait Implementations§
Source§impl<const BUF_SIZE: usize> Node<f32, BUF_SIZE> for MixerNode<BUF_SIZE>
impl<const BUF_SIZE: usize> Node<f32, BUF_SIZE> for MixerNode<BUF_SIZE>
Source§fn metadata(&self) -> NodeMetadata
fn metadata(&self) -> NodeMetadata
Source§fn node_type_id(&self) -> NodeTypeIdwhere
Self: 'static + Sized,
fn node_type_id(&self) -> NodeTypeIdwhere
Self: 'static + Sized,
Source§fn get_parameter(&self, id: &ParameterId) -> Option<ParamValue>
fn get_parameter(&self, id: &ParameterId) -> Option<ParamValue>
Source§fn set_parameter(
&mut self,
id: &ParameterId,
value: ParamValue,
) -> ProcessResult<()>
fn set_parameter( &mut self, id: &ParameterId, value: ParamValue, ) -> ProcessResult<()>
Source§fn input_port_mut(&mut self, index: usize) -> Option<&mut Port<f32, BUF_SIZE>>
fn input_port_mut(&mut self, index: usize) -> Option<&mut Port<f32, BUF_SIZE>>
Source§fn output_port_mut(&mut self, index: usize) -> Option<&mut Port<f32, BUF_SIZE>>
fn output_port_mut(&mut self, index: usize) -> Option<&mut Port<f32, BUF_SIZE>>
Source§fn control_port(&self, index: usize) -> Option<&Port<f32, BUF_SIZE>>
fn control_port(&self, index: usize) -> Option<&Port<f32, BUF_SIZE>>
Source§fn control_port_mut(&mut self, index: usize) -> Option<&mut Port<f32, BUF_SIZE>>
fn control_port_mut(&mut self, index: usize) -> Option<&mut Port<f32, BUF_SIZE>>
Source§fn num_signal_inputs(&self) -> usize
fn num_signal_inputs(&self) -> usize
Source§fn num_signal_outputs(&self) -> usize
fn num_signal_outputs(&self) -> usize
Source§fn num_control_inputs(&self) -> usize
fn num_control_inputs(&self) -> usize
Source§fn num_control_outputs(&self) -> usize
fn num_control_outputs(&self) -> usize
Source§fn num_clock_inputs(&self) -> usize
fn num_clock_inputs(&self) -> usize
Source§fn num_clock_outputs(&self) -> usize
fn num_clock_outputs(&self) -> usize
Source§fn num_feedback_ports(&self) -> usize
fn num_feedback_ports(&self) -> usize
Source§fn apply_set_parameter(
&mut self,
cmd: &SetParameter,
) -> Result<(), ProcessError>
fn apply_set_parameter( &mut self, cmd: &SetParameter, ) -> Result<(), ProcessError>
SetParameter command to this node. Read moreSource§fn resolve_resources(&mut self, _resources: &mut ResourceRegistry<T>)
fn resolve_resources(&mut self, _resources: &mut ResourceRegistry<T>)
Source§fn num_inputs(&self) -> usize
fn num_inputs(&self) -> usize
Source§fn num_outputs(&self) -> usize
fn num_outputs(&self) -> usize
Source§impl<const BUF_SIZE: usize> Router<f32, BUF_SIZE> for MixerNode<BUF_SIZE>
impl<const BUF_SIZE: usize> Router<f32, BUF_SIZE> for MixerNode<BUF_SIZE>
Source§fn route(
&mut self,
ctx: &RenderContext,
_inputs: &[&[f32; BUF_SIZE]],
) -> ProcessResult<()>
fn route( &mut self, ctx: &RenderContext, _inputs: &[&[f32; BUF_SIZE]], ) -> ProcessResult<()>
Source§fn num_route_inputs(&self) -> usize
fn num_route_inputs(&self) -> usize
Source§fn num_route_outputs(&self) -> usize
fn num_route_outputs(&self) -> usize
Source§fn set_connection(
&mut self,
from: usize,
to: usize,
gain: f32,
) -> ProcessResult<()>
fn set_connection( &mut self, from: usize, to: usize, gain: f32, ) -> ProcessResult<()>
from to output to with gain coefficient gain.