pub struct SpatialSceneControl { /* private fields */ }
Expand description

Control for modifying a SpatialScene

Implementations§

source§

impl SpatialSceneControl

source

pub fn play<S>(&mut self, signal: S, options: SpatialOptions) -> Spatial
where S: Seek<Frame = Sample> + Send + 'static,

Begin playing signal

Note that signal must be single-channel. Signals in a spatial scene are modeled as isotropic point sources, and cannot sensibly emit multichannel audio.

Coordinates should be in world space, translated such that the listener is at the origin, but not rotated, with velocity relative to the listener. Units are meters and meters per second.

Returns a handle that can be used to adjust the signal’s movement in the future, pause or stop it, and access other controls.

The type of signal given determines what additional controls can be used. See the examples for a detailed guide.

source

pub fn play_buffered<S>( &mut self, signal: S, options: SpatialOptions, max_distance: f32, rate: u32, buffer_duration: f32 ) -> Spatial
where S: Signal<Frame = Sample> + Send + 'static,

Like play, but supports propagation delay for sources which do not implement Seek by buffering.

max_distance dictates the amount of propagation delay to allocate a buffer for; larger values consume more memory. To avoid glitching, the signal should be inaudible at max_distance. signal is sampled at rate before resampling based on motion.

Sampling the scene for more than buffer_duration seconds at once may produce audible glitches when the signal exceeds max_distance from the listener. If in doubt, 0.1 is a reasonable guess.

source

pub fn set_listener_rotation(&mut self, rotation: Quaternion<f32>)

Set the listener’s rotation

An unrotated listener faces -Z, with +X to the right and +Y up.

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<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<T, U> TryFrom<U> for T
where U: Into<T>,

§

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

§

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.