ConvolutionNode

Struct ConvolutionNode 

Source
pub struct ConvolutionNode<const CHANNELS: usize> {
    pub pause: bool,
    pub mix: Mix,
    pub fade_curve: FadeCurve,
    pub wet_gain: Volume,
    pub smooth_seconds: f32,
}
Expand description

Imparts characteristics of an ImpulseResponse to the input signal.

Convolution is often used to achieve reverb effects, but is more computationally expensive than algorithmic reverb.

Fields§

§pause: bool

Pause the convolution processing.

This prevents a tail from ringing out when you want all sound to momentarily pause.

§mix: Mix

The value representing the mix between the two audio signals

This is a normalized value in the range [0.0, 1.0], where 0.0 is fully the first signal, 1.0 is fully the second signal, and 0.5 is an equal mix of both.

By default this is set to Mix::CENTER.

§fade_curve: FadeCurve

The algorithm used to map the normalized mix value in the range [0.0, 1.0] to the corresponding gain values for the two signals.

By default this is set to FadeCurve::EqualPower3dB.

§wet_gain: Volume

The gain applied to the resulting convolved signal.

Defaults to -20dB to balance the volume increase likely to occur when convolving audio. Values closer to 1.0 may be very loud.

§smooth_seconds: f32

Adjusts the time in seconds over which parameters are smoothed for mix and wet_gain.

Defaults to 0.015 (15ms).

Trait Implementations§

Source§

impl<const CHANNELS: usize> AudioNode for ConvolutionNode<CHANNELS>

Source§

type Configuration = ConvolutionNodeConfig<CHANNELS>

A type representing this constructor’s configuration. Read more
Source§

fn info(&self, _configuration: &Self::Configuration) -> AudioNodeInfo

Get information about this node. Read more
Source§

fn construct_processor( &self, _configuration: &Self::Configuration, cx: ConstructProcessorContext<'_>, ) -> impl AudioNodeProcessor

Construct a realtime processor for this node. Read more
Source§

fn update(&mut self, configuration: &Self::Configuration, cx: UpdateContext<'_>)

If AudioNodeInfo::call_update_method was set to true, then the Firewheel context will call this method on every update cycle. Read more
Source§

impl<const CHANNELS: usize> Clone for ConvolutionNode<CHANNELS>

Source§

fn clone(&self) -> ConvolutionNode<CHANNELS>

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<const CHANNELS: usize> Component for ConvolutionNode<CHANNELS>
where Self: Send + Sync + 'static,

Source§

const STORAGE_TYPE: StorageType = bevy_ecs::component::StorageType::Table

A constant indicating the storage type used for this component.
Source§

type Mutability = Mutable

A marker type to assist Bevy with determining if this component is mutable, or immutable. Mutable components will have Component<Mutability = Mutable>, while immutable components will instead have Component<Mutability = Immutable>. Read more
Source§

fn register_required_components( _requiree: ComponentId, required_components: &mut RequiredComponentsRegistrator<'_, '_>, )

Registers required components. Read more
Source§

fn clone_behavior() -> ComponentCloneBehavior

Called when registering this component, allowing to override clone function (or disable cloning altogether) for this component. Read more
Source§

fn on_add() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_add ComponentHook for this Component if one is defined.
Source§

fn on_insert() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_insert ComponentHook for this Component if one is defined.
Source§

fn on_replace() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_replace ComponentHook for this Component if one is defined.
Source§

fn on_remove() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_remove ComponentHook for this Component if one is defined.
Source§

fn on_despawn() -> Option<for<'w> fn(DeferredWorld<'w>, HookContext)>

Gets the on_despawn ComponentHook for this Component if one is defined.
Source§

fn map_entities<E>(_this: &mut Self, _mapper: &mut E)
where E: EntityMapper,

Maps the entities on this component using the given EntityMapper. This is used to remap entities in contexts like scenes and entity cloning. When deriving Component, this is populated by annotating fields containing entities with #[entities] Read more
Source§

impl<const CHANNELS: usize> Default for ConvolutionNode<CHANNELS>

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl<const CHANNELS: usize> Diff for ConvolutionNode<CHANNELS>

Source§

fn diff<__E: EventQueue>( &self, baseline: &Self, path: PathBuilder, event_queue: &mut __E, )

Compare self to baseline and generate events to resolve any differences.
Source§

impl<const CHANNELS: usize> PartialEq for ConvolutionNode<CHANNELS>

Source§

fn eq(&self, other: &ConvolutionNode<CHANNELS>) -> 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<const CHANNELS: usize> Patch for ConvolutionNode<CHANNELS>

Source§

type Patch = ConvolutionNodePatch<CHANNELS>

A type’s patch. Read more
Source§

fn patch(data: &ParamData, path: &[u32]) -> Result<Self::Patch, PatchError>

Construct a patch from a parameter event. Read more
Source§

fn apply(&mut self, patch: Self::Patch)

Apply a patch. Read more
Source§

fn patch_event(event: &NodeEventType) -> Option<Self::Patch>

Construct a patch from a node event. Read more
Source§

impl<const CHANNELS: usize> Copy for ConvolutionNode<CHANNELS>

Source§

impl<const CHANNELS: usize> StructuralPartialEq for ConvolutionNode<CHANNELS>

Auto Trait Implementations§

§

impl<const CHANNELS: usize> Freeze for ConvolutionNode<CHANNELS>

§

impl<const CHANNELS: usize> RefUnwindSafe for ConvolutionNode<CHANNELS>

§

impl<const CHANNELS: usize> Send for ConvolutionNode<CHANNELS>

§

impl<const CHANNELS: usize> Sync for ConvolutionNode<CHANNELS>

§

impl<const CHANNELS: usize> Unpin for ConvolutionNode<CHANNELS>

§

impl<const CHANNELS: usize> UnwindSafe for ConvolutionNode<CHANNELS>

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<C> Bundle for C
where C: Component,

Source§

fn component_ids( components: &mut ComponentsRegistrator<'_>, ids: &mut impl FnMut(ComponentId), )

Source§

fn get_component_ids( components: &Components, ids: &mut impl FnMut(Option<ComponentId>), )

Gets this Bundle’s component ids. This will be None if the component has not been registered.
Source§

impl<C> BundleFromComponents for C
where C: Component,

Source§

unsafe fn from_components<T, F>(ctx: &mut T, func: &mut F) -> C
where F: for<'a> FnMut(&'a mut T) -> OwningPtr<'a>,

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> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Converts Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Converts Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Converts &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Converts &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSend for T
where T: Any + Send,

Source§

fn into_any_send(self: Box<T>) -> Box<dyn Any + Send>

Converts Box<Trait> (where Trait: DowncastSend) to Box<dyn Any + Send>, which can then be downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

impl<C> DynamicBundle for C
where C: Component,

Source§

type Effect = ()

An operation on the entity that happens after inserting this bundle.
Source§

unsafe fn get_components( ptr: MovingPtr<'_, C>, func: &mut impl FnMut(StorageType, OwningPtr<'_>), ) -> <C as DynamicBundle>::Effect

Moves the components out of the bundle. Read more
Source§

unsafe fn apply_effect( _ptr: MovingPtr<'_, MaybeUninit<C>>, _entity: &mut EntityWorldMut<'_>, )

Applies the after-effects of spawning this bundle. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> FromWorld for T
where T: Default,

Source§

fn from_world(_world: &mut World) -> T

Creates Self using default().

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> IntoResult<T> for T

Source§

fn into_result(self) -> Result<T, RunSystemError>

Converts this type into the system output type.
Source§

impl<A> Is for A
where A: Any,

Source§

fn is<T>() -> bool
where T: Any,

Checks if the current type “is” another type, using a TypeId equality comparison. This is most useful in the context of generic logic. Read more
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> TypeData for T
where T: 'static + Send + Sync + Clone,

Source§

fn clone_type_data(&self) -> Box<dyn TypeData>

Creates a type-erased clone of this value.
Source§

impl<T> ConditionalSend for T
where T: Send,