Struct web_audio_api::node::WaveShaperNode
source ·
[−]pub struct WaveShaperNode { /* private fields */ }
Expand description
WaveShaperNode
allows to apply non-linear distortion effect on a audio
signal. Arbitrary non-linear shaping curves may be specified.
- MDN documentation: https://developer.mozilla.org/en-US/docs/Web/API/WaveShaperNode
- specification: https://webaudio.github.io/web-audio-api/#WaveShaperNode
- see also:
AsBaseAudioContext::create_wave_whaper
Usage
use std::fs::File;
use web_audio_api::context::{AsBaseAudioContext, AudioContext};
use web_audio_api::node::AudioNode;
let context = AudioContext::new(None);
let file = File::open("sample.wav").unwrap();
let buffer = context.decode_audio_data(file).unwrap();
let curve = make_distortion_curve(2048);
let drive = 4.;
let post_gain = context.create_gain();
post_gain.connect(&context.destination());
post_gain.gain().set_value(1. / drive);
let shaper = context.create_wave_shaper();
shaper.connect(&post_gain);
shaper.set_curve(curve);
let pre_gain = context.create_gain();
pre_gain.connect(&shaper);
pre_gain.gain().set_value(drive);
let src = context.create_buffer_source();
src.connect(&pre_gain);
src.set_buffer(buffer);
src.start();
Example
cargo run --release --example waveshaper
Implementations
returns a WaveShaperNode
instance
Arguments
context
- audio context in which the audio node will live.options
- waveshaper options
Returns the oversample
faactor of this node
Trait Implementations
The number of inputs feeding into the AudioNode. For source nodes, this will be 0.
The number of outputs coming out of the AudioNode.
The BaseAudioContext which owns this AudioNode.
Connect the output of this AudioNode to the input of another node.
fn connect_at<'a>(
&self,
dest: &'a dyn AudioNode,
output: u32,
input: u32
) -> Result<&'a dyn AudioNode, IndexSizeError>
fn connect_at<'a>(
&self,
dest: &'a dyn AudioNode,
output: u32,
input: u32
) -> Result<&'a dyn AudioNode, IndexSizeError>
Connect a specific output of this AudioNode to a specific input of another node.
Disconnects all outputs of the AudioNode that go to a specific destination AudioNode.
Disconnects all outgoing connections from the AudioNode.
Represents an enumerated value describing the way channels must be matched between the node’s inputs and outputs. Read more
Represents an enumerated value describing the meaning of the channels. This interpretation will define how audio up-mixing and down-mixing will happen. Read more
Represents an integer used to determine how many channels are used when up-mixing and down-mixing connections to any inputs to the node. Read more