pub struct DynamicsCompressorNode { /* private fields */ }Expand description
DynamicsCompressorNode provides a compression effect.
It lowers the volume of the loudest parts of the signal and raises the volume of the softest parts. Overall, a louder, richer, and fuller sound can be achieved. It is especially important in games and musical applications where large numbers of individual sounds are played simultaneous to control the overall signal level and help avoid clipping (distorting) the audio output to the speakers.
- MDN documentation: https://developer.mozilla.org/en-US/docs/Web/API/DynamicsCompressorNode
- specification: https://webaudio.github.io/web-audio-api/#DynamicsCompressorNode
- see also: BaseAudioContext::create_dynamics_compressor
§Usage
use std::fs::File;
use web_audio_api::context::{BaseAudioContext, AudioContext};
use web_audio_api::node::{AudioNode, AudioScheduledSourceNode};
// create an `AudioContext`
let context = AudioContext::default();
// load and decode a soundfile into an audio buffer
let file = File::open("samples/sample.wav").unwrap();
let buffer = context.decode_audio_data_sync(file).unwrap();
// create compressor and connect to destination
let compressor = context.create_dynamics_compressor();
compressor.connect(&context.destination());
// pipe the audio source in the compressor
let mut src = context.create_buffer_source();
src.connect(&compressor);
src.set_buffer(buffer.clone());
src.start();§Examples
- cargo run --release --example compressor
Implementations§
Source§impl DynamicsCompressorNode
 
impl DynamicsCompressorNode
pub fn new<C: BaseAudioContext>( context: &C, options: DynamicsCompressorOptions, ) -> Self
pub fn attack(&self) -> &AudioParam
pub fn knee(&self) -> &AudioParam
pub fn ratio(&self) -> &AudioParam
pub fn release(&self) -> &AudioParam
pub fn threshold(&self) -> &AudioParam
pub fn reduction(&self) -> f32
Trait Implementations§
Source§impl AudioNode for DynamicsCompressorNode
 
impl AudioNode for DynamicsCompressorNode
Source§fn registration(&self) -> &AudioContextRegistration
 
fn registration(&self) -> &AudioContextRegistration
Handle of the associated 
BaseAudioContext. Read moreSource§fn channel_config(&self) -> &ChannelConfig
 
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
 
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_from_output_to_input<'a>(
    &self,
    dest: &'a dyn AudioNode,
    output: usize,
    input: usize,
) -> &'a dyn AudioNode
 
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)
 
fn disconnect(&self)
Disconnects all outgoing connections from the AudioNode.
Source§fn disconnect_dest(&self, dest: &dyn AudioNode)
 
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)
 
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)
 
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,
)
 
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
 
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.
Source§fn set_onprocessorerror(
    &self,
    callback: Box<dyn FnOnce(ErrorEvent) + Send + 'static>,
)
 
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)
 
fn clear_onprocessorerror(&self)
Unset the callback to run when an unhandled exception occurs in the audio processor.
Auto Trait Implementations§
impl Freeze for DynamicsCompressorNode
impl RefUnwindSafe for DynamicsCompressorNode
impl Send for DynamicsCompressorNode
impl Sync for DynamicsCompressorNode
impl Unpin for DynamicsCompressorNode
impl UnwindSafe for DynamicsCompressorNode
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more