AVAudio3DMixingRenderingAlgorithm

Struct AVAudio3DMixingRenderingAlgorithm 

Source
#[repr(transparent)]
pub struct AVAudio3DMixingRenderingAlgorithm(pub NSInteger);
Available on crate feature AVAudioMixing only.
Expand description

Types of rendering algorithms available per input bus of the environment node

The rendering algorithms differ in terms of quality and cpu cost. AVAudio3DMixingRenderingAlgorithmEqualPowerPanning is the simplest panning algorithm and also the least expensive computationally.

When rendering to multi-channel hardware, audio data will only be rendered to channels 1 & 2 with all rendering algorithms except AVAudio3DMixingRenderingAlgorithmSoundField and AVAudio3DMixingRenderingAlgorithmAuto.

AVAudio3DMixingRenderingAlgorithmEqualPowerPanning EqualPowerPanning merely pans the data of the mixer bus into a stereo field. This algorithm is analogous to the pan knob found on a mixing board channel strip.

AVAudio3DMixingRenderingAlgorithmSphericalHead SphericalHead is designed to emulate 3 dimensional space in headphones by simulating inter-aural time delays and other spatial cues. SphericalHead is slightly less CPU intensive than the HRTF algorithm.

AVAudio3DMixingRenderingAlgorithmHRTF HRTF (Head Related Transfer Function) is a high quality algorithm using filtering to emulate 3 dimensional space in headphones. HRTF is a cpu intensive algorithm.

AVAudio3DMixingRenderingAlgorithmHRTFHQ Higher quality HRTF rendering algorithm compared to AVAudio3DMixingRenderingAlgorithmHRTF. Improvements have been made to the overall frequency response and localization of sources in a 3D space.

AVAudio3DMixingRenderingAlgorithmSoundField SoundField is designed for rendering to multi channel hardware. The mixer takes data being rendered with SoundField and distributes it amongst all the output channels with a weighting toward the location in which the sound derives. It is very effective for ambient sounds, which may derive from a specific location in space, yet should be heard through the listener’s entire space.

AVAudio3DMixingRenderingAlgorithmStereoPassThrough StereoPassThrough should be used when no localization is desired for the source data. Setting this algorithm tells the mixer to pass the input channels to output without localization. If the input and output AudioChannelLayouts differ, mixing is done according to the kAudioFormatProperty_MatrixMixMap property of the layouts.

AVAudio3DMixingRenderingAlgorithmAuto Automatically pick the highest-quality rendering algorithm available for current playback hardware. The algorithm may not be identical to other existing algorithms and may change in the future as new algorithms are developed. When using Manual Rendering modes or wired output, it may be necessary to manually set the AVAudioEnvironmentNode’s output type. Multi-channel rendering requires setting a channel layout on the AVAudioEnvironmentNode’s output.

See also Apple’s documentation

Tuple Fields§

§0: NSInteger

Implementations§

Source§

impl AVAudio3DMixingRenderingAlgorithm

Source

pub const EqualPowerPanning: Self

Source

pub const SphericalHead: Self

Source

pub const HRTF: Self

Source

pub const SoundField: Self

Source

pub const StereoPassThrough: Self

Source

pub const HRTFHQ: Self

Source

pub const Auto: Self

Trait Implementations§

Source§

impl Clone for AVAudio3DMixingRenderingAlgorithm

Source§

fn clone(&self) -> AVAudio3DMixingRenderingAlgorithm

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for AVAudio3DMixingRenderingAlgorithm

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Encode for AVAudio3DMixingRenderingAlgorithm

Source§

const ENCODING: Encoding = NSInteger::ENCODING

The Objective-C type-encoding for this type.
Source§

impl Hash for AVAudio3DMixingRenderingAlgorithm

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl Ord for AVAudio3DMixingRenderingAlgorithm

Source§

fn cmp(&self, other: &AVAudio3DMixingRenderingAlgorithm) -> Ordering

This method returns an Ordering between self and other. Read more
1.21.0 · Source§

fn max(self, other: Self) -> Self
where Self: Sized,

Compares and returns the maximum of two values. Read more
1.21.0 · Source§

fn min(self, other: Self) -> Self
where Self: Sized,

Compares and returns the minimum of two values. Read more
1.50.0 · Source§

fn clamp(self, min: Self, max: Self) -> Self
where Self: Sized,

Restrict a value to a certain interval. Read more
Source§

impl PartialEq for AVAudio3DMixingRenderingAlgorithm

Source§

fn eq(&self, other: &AVAudio3DMixingRenderingAlgorithm) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl PartialOrd for AVAudio3DMixingRenderingAlgorithm

Source§

fn partial_cmp( &self, other: &AVAudio3DMixingRenderingAlgorithm, ) -> Option<Ordering>

This method returns an ordering between self and other values if one exists. Read more
1.0.0 · Source§

fn lt(&self, other: &Rhs) -> bool

Tests less than (for self and other) and is used by the < operator. Read more
1.0.0 · Source§

fn le(&self, other: &Rhs) -> bool

Tests less than or equal to (for self and other) and is used by the <= operator. Read more
1.0.0 · Source§

fn gt(&self, other: &Rhs) -> bool

Tests greater than (for self and other) and is used by the > operator. Read more
1.0.0 · Source§

fn ge(&self, other: &Rhs) -> bool

Tests greater than or equal to (for self and other) and is used by the >= operator. Read more
Source§

impl RefEncode for AVAudio3DMixingRenderingAlgorithm

Source§

const ENCODING_REF: Encoding

The Objective-C type-encoding for a reference of this type. Read more
Source§

impl Copy for AVAudio3DMixingRenderingAlgorithm

Source§

impl Eq for AVAudio3DMixingRenderingAlgorithm

Source§

impl StructuralPartialEq for AVAudio3DMixingRenderingAlgorithm

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> EncodeArgument for T
where T: Encode,

Source§

const ENCODING_ARGUMENT: Encoding = T::ENCODING

The Objective-C type-encoding for this type.
Source§

impl<T> EncodeReturn for T
where T: Encode,

Source§

const ENCODING_RETURN: Encoding = T::ENCODING

The Objective-C type-encoding for this type.
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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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<T> AutoreleaseSafe for T
where T: ?Sized,