Struct web_audio_api::node::PannerNode
source · 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 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 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 orientation_x(&self) -> &AudioParam
pub fn orientation_y(&self) -> &AudioParam
pub fn orientation_z(&self) -> &AudioParam
pub fn distance_model(&self) -> DistanceModelType
pub fn set_distance_model(&self, value: DistanceModelType)
pub fn ref_distance(&self) -> f64
pub fn set_ref_distance(&self, value: f64)
pub fn max_distance(&self) -> f64
pub fn set_max_distance(&self, value: f64)
pub fn rolloff_factor(&self) -> f64
pub fn set_rolloff_factor(&self, value: f64)
pub fn cone_inner_angle(&self) -> f64
pub fn set_cone_inner_angle(&self, value: f64)
pub fn cone_outer_angle(&self) -> f64
pub fn set_cone_outer_angle(&self, value: f64)
pub fn cone_outer_gain(&self) -> f64
pub fn set_cone_outer_gain(&self, value: f64)
pub fn panning_model(&self) -> PanningModelType
pub fn set_panning_model(&self, value: PanningModelType)
Trait Implementations§
source§impl AudioNode for PannerNode
impl AudioNode for PannerNode
fn registration(&self) -> &AudioContextRegistration
fn channel_config(&self) -> &ChannelConfig
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_at<'a>(
&self,
dest: &'a dyn AudioNode,
output: usize,
input: usize
) -> &'a dyn AudioNode
fn connect_at<'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_from<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode
fn disconnect_from<'a>(&self, dest: &'a dyn AudioNode) -> &'a dyn AudioNode
Disconnects all outputs of the AudioNode that go to a specific destination AudioNode.
source§fn disconnect(&self)
fn disconnect(&self)
Disconnects all outgoing connections from the AudioNode.
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.