Struct PannerNode

Source
pub struct PannerNode { /* private fields */ }
Expand description

PannerNode positions / spatializes an incoming audio stream in three-dimensional space.

§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

Source

pub fn new<C: BaseAudioContext>(context: &C, options: PannerOptions) -> Self

returns a PannerNode instance

§Arguments
  • context - audio context in which the audio node will live.
  • options - stereo panner options
§Panics

Will panic if:

  • options.channel_config.count is greater than 2
  • options.channel_config.mode is ChannelCountMode::Max

Can panic when loading HRIR-sphere

Source

pub fn position_x(&self) -> &AudioParam

Source

pub fn position_y(&self) -> &AudioParam

Source

pub fn position_z(&self) -> &AudioParam

Source

pub fn set_position(&self, x: f32, y: f32, z: f32)

Source

pub fn orientation_x(&self) -> &AudioParam

Source

pub fn orientation_y(&self) -> &AudioParam

Source

pub fn orientation_z(&self) -> &AudioParam

Source

pub fn set_orientation(&self, x: f32, y: f32, z: f32)

Source

pub fn distance_model(&self) -> DistanceModelType

Source

pub fn set_distance_model(&mut self, value: DistanceModelType)

Source

pub fn ref_distance(&self) -> f64

Source

pub fn set_ref_distance(&mut self, value: f64)

Set the refDistance attribute

§Panics

Panics if the provided value is negative.

Source

pub fn max_distance(&self) -> f64

Source

pub fn set_max_distance(&mut self, value: f64)

Set the maxDistance attribute

§Panics

Panics if the provided value is negative.

Source

pub fn rolloff_factor(&self) -> f64

Source

pub fn set_rolloff_factor(&mut self, value: f64)

Set the rolloffFactor attribute

§Panics

Panics if the provided value is negative.

Source

pub fn cone_inner_angle(&self) -> f64

Source

pub fn set_cone_inner_angle(&mut self, value: f64)

Source

pub fn cone_outer_angle(&self) -> f64

Source

pub fn set_cone_outer_angle(&mut self, value: f64)

Source

pub fn cone_outer_gain(&self) -> f64

Source

pub fn set_cone_outer_gain(&mut self, value: f64)

Set the coneOuterGain attribute

§Panics

Panics if the provided value is not in the range [0, 1]

Source

pub fn panning_model(&self) -> PanningModelType

Source

pub fn set_panning_model(&mut self, value: PanningModelType)

Trait Implementations§

Source§

impl AudioNode for PannerNode

Source§

fn registration(&self) -> &AudioContextRegistration

Handle of the associated BaseAudioContext. Read more
Source§

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

The number of inputs feeding into the AudioNode. For source nodes, this will be 0.
Source§

fn number_of_outputs(&self) -> usize

The number of outputs coming out of the AudioNode.
Source§

fn set_channel_count(&self, count: usize)

Update the channel_count attribute
Source§

fn set_channel_count_mode(&self, mode: ChannelCountMode)

Update the channel_count_mode attribute
Source§

fn context(&self) -> &ConcreteBaseAudioContext

The BaseAudioContext concrete type which owns this AudioNode.
Source§

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

Connect a specific output of this AudioNode to a specific input of another node. Read more
Source§

fn disconnect(&self)

Disconnects all outgoing connections from the AudioNode.
Source§

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)

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)

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, )

Disconnects a specific output of the AudioNode to a specific input of some destination AudioNode Read more
Source§

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

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)

Update the channel_interpretation attribute
Source§

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>, )

Register callback to run when an unhandled exception occurs in the audio processor. Read more
Source§

fn clear_onprocessorerror(&self)

Unset the callback to run when an unhandled exception occurs in the audio processor.
Source§

impl Debug for PannerNode

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<S> FromSample<S> for S

Source§

fn from_sample_(s: S) -> S

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<F, T> IntoSample<T> for F
where T: FromSample<F>,

Source§

fn into_sample(self) -> T

Source§

impl<T, U> ToSample<U> for T
where U: FromSample<T>,

Source§

fn to_sample_(self) -> U

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<S, T> Duplex<S> for T
where T: FromSample<S> + ToSample<S>,