pub struct PannerNode { /* private fields */ }
Expand description
PannerNode
positions / spatializes an incoming audio stream in three-dimensional space.
- MDN documentation: https://developer.mozilla.org/en-US/docs/Web/API/PannerNode
- specification: https://www.w3.org/TR/webaudio/#pannernode and https://www.w3.org/TR/webaudio/#Spatialization
- see also:
BaseAudioContext::create_panner
§Usage
use web_audio_api::context::{BaseAudioContext, AudioContext};
use web_audio_api::node::AudioNode;
use web_audio_api::node::AudioScheduledSourceNode;
// Setup a new audio context
let context = AudioContext::default();
// Create a friendly tone
let mut tone = context.create_oscillator();
tone.frequency().set_value_at_time(300.0f32, 0.);
tone.start();
// Connect tone > panner node > destination node
let panner = context.create_panner();
tone.connect(&panner);
panner.connect(&context.destination());
// The panner node is 1 unit in front of listener
panner.position_z().set_value_at_time(1., 0.);
// And sweeps 10 units left to right, every second
let mut moving = context.create_oscillator();
moving.start();
moving.frequency().set_value_at_time(1., 0.);
let gain = context.create_gain();
gain.gain().set_value_at_time(10., 0.);
moving.connect(&gain);
gain.connect(panner.position_x());
// enjoy listening
std::thread::sleep(std::time::Duration::from_secs(4));
§Examples
cargo run --release --example spatial
cargo run --release --example panner_cone
Implementations§
Source§impl PannerNode
impl PannerNode
Sourcepub fn new<C: BaseAudioContext>(context: &C, options: PannerOptions) -> Self
pub fn new<C: BaseAudioContext>(context: &C, options: PannerOptions) -> Self
pub fn position_x(&self) -> &AudioParam
pub fn position_y(&self) -> &AudioParam
pub fn position_z(&self) -> &AudioParam
pub fn set_position(&self, x: f32, y: f32, z: f32)
pub fn orientation_x(&self) -> &AudioParam
pub fn orientation_y(&self) -> &AudioParam
pub fn orientation_z(&self) -> &AudioParam
pub fn set_orientation(&self, x: f32, y: f32, z: f32)
pub fn distance_model(&self) -> DistanceModelType
pub fn set_distance_model(&mut self, value: DistanceModelType)
pub fn ref_distance(&self) -> f64
Sourcepub fn set_ref_distance(&mut self, value: f64)
pub fn set_ref_distance(&mut self, value: f64)
pub fn max_distance(&self) -> f64
Sourcepub fn set_max_distance(&mut self, value: f64)
pub fn set_max_distance(&mut self, value: f64)
pub fn rolloff_factor(&self) -> f64
Sourcepub fn set_rolloff_factor(&mut self, value: f64)
pub fn set_rolloff_factor(&mut self, value: f64)
pub fn cone_inner_angle(&self) -> f64
pub fn set_cone_inner_angle(&mut self, value: f64)
pub fn cone_outer_angle(&self) -> f64
pub fn set_cone_outer_angle(&mut self, value: f64)
pub fn cone_outer_gain(&self) -> f64
Sourcepub fn set_cone_outer_gain(&mut self, value: f64)
pub fn set_cone_outer_gain(&mut self, value: f64)
pub fn panning_model(&self) -> PanningModelType
pub fn set_panning_model(&mut self, value: PanningModelType)
Trait Implementations§
Source§impl AudioNode for PannerNode
impl AudioNode for PannerNode
Source§fn registration(&self) -> &AudioContextRegistration
fn registration(&self) -> &AudioContextRegistration
Handle of the associated
BaseAudioContext
. Read moreSource§fn channel_config(&self) -> &ChannelConfig
fn channel_config(&self) -> &ChannelConfig
Config for up/down-mixing of input channels for this node. Read more
Source§fn number_of_inputs(&self) -> usize
fn number_of_inputs(&self) -> usize
The number of inputs feeding into the AudioNode. For source nodes, this will be 0.
Source§fn number_of_outputs(&self) -> usize
fn number_of_outputs(&self) -> usize
The number of outputs coming out of the AudioNode.
Source§fn set_channel_count(&self, count: usize)
fn set_channel_count(&self, count: usize)
Update the
channel_count
attributeSource§fn set_channel_count_mode(&self, mode: ChannelCountMode)
fn set_channel_count_mode(&self, mode: ChannelCountMode)
Update the
channel_count_mode
attributeSource§fn context(&self) -> &ConcreteBaseAudioContext
fn context(&self) -> &ConcreteBaseAudioContext
The
BaseAudioContext
concrete type which owns this
AudioNode.Source§fn connect<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode
fn connect<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode
Connect the output of this AudioNode to the input of another node. Read more
Source§fn connect_from_output_to_input<'a>(
&self,
dest: &'a dyn AudioNode,
output: usize,
input: usize,
) -> &'a dyn AudioNode
fn connect_from_output_to_input<'a>( &self, dest: &'a dyn AudioNode, output: usize, input: usize, ) -> &'a dyn AudioNode
Connect a specific output of this AudioNode to a specific input of another node. Read more
Source§fn disconnect(&self)
fn disconnect(&self)
Disconnects all outgoing connections from the AudioNode.
Source§fn disconnect_dest(&self, dest: &dyn AudioNode)
fn disconnect_dest(&self, dest: &dyn AudioNode)
Disconnects all outputs of the AudioNode that go to a specific destination AudioNode. Read more
Source§fn disconnect_output(&self, output: usize)
fn disconnect_output(&self, output: usize)
Disconnects all outgoing connections at the given output port from the AudioNode. Read more
Source§fn disconnect_dest_from_output(&self, dest: &dyn AudioNode, output: usize)
fn disconnect_dest_from_output(&self, dest: &dyn AudioNode, output: usize)
Disconnects a specific output of the AudioNode to a specific destination AudioNode Read more
Source§fn disconnect_dest_from_output_to_input(
&self,
dest: &dyn AudioNode,
output: usize,
input: usize,
)
fn disconnect_dest_from_output_to_input( &self, dest: &dyn AudioNode, output: usize, input: usize, )
Disconnects a specific output of the AudioNode to a specific input of some destination
AudioNode Read more
Source§fn channel_count_mode(&self) -> ChannelCountMode
fn channel_count_mode(&self) -> ChannelCountMode
Represents an enumerated value describing the way channels must be matched between the
node’s inputs and outputs.
Source§fn channel_interpretation(&self) -> ChannelInterpretation
fn channel_interpretation(&self) -> ChannelInterpretation
Represents an enumerated value describing the meaning of the channels. This interpretation
will define how audio up-mixing and down-mixing will happen.
Source§fn set_channel_interpretation(&self, v: ChannelInterpretation)
fn set_channel_interpretation(&self, v: ChannelInterpretation)
Update the
channel_interpretation
attributeSource§fn channel_count(&self) -> usize
fn channel_count(&self) -> usize
Represents an integer used to determine how many channels are used when up-mixing and
down-mixing connections to any inputs to the node.
Source§fn set_onprocessorerror(
&self,
callback: Box<dyn FnOnce(ErrorEvent) + Send + 'static>,
)
fn set_onprocessorerror( &self, callback: Box<dyn FnOnce(ErrorEvent) + Send + 'static>, )
Register callback to run when an unhandled exception occurs in the audio processor. Read more
Source§fn clear_onprocessorerror(&self)
fn clear_onprocessorerror(&self)
Unset the callback to run when an unhandled exception occurs in the audio processor.
Auto Trait Implementations§
impl Freeze for PannerNode
impl RefUnwindSafe for PannerNode
impl Send for PannerNode
impl Sync for PannerNode
impl Unpin for PannerNode
impl UnwindSafe for PannerNode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more