--- title: AudioNode.connect(AudioParam) slug: orphaned/Web/API/AudioNode/connect(AudioParam) translation_of: Web/API/AudioNode/connect(AudioParam) original_slug: Web/API/AudioNode/connect(AudioParam) ---

{{ APIRef("Web Audio API") }}

允许我们将当前节点的一个输出连接到音频参数的一个输入,并允许通过音频信号控制参数。
使AudioNode输出连接到多个AudioParam,并将多个AudioNode输出连接到单个 AudioParam,同时多次调用connect()。因此支持Fan-in and fan-out。
 AudioParam可以从连接到它的任何AudioNode输出获取渲染的音频数据,并通过下混合将其转换为单声道(如果本身不是单声道的话)。然后,它将其他这样的输出和固定参数混合( AudioParam的值通常没有任何连接),包括为参数调度的任何时间的变化。
因此,可以通过将AudioParam的值设置为中心频率来选择AudioParam将要更改的范围,并使用音频源和AudioParam之间的GainNode来调整AudioParam更改的范围。

Syntax

var lfo = audioCtx.createOscillator();
lfo.frequency.value = 2.0; // Hz, two times per second

var lfoGain = audioCtx.createGain();
lfoGain.gain.value = 0.5;

// this is the parameter that is going to be modulated
var gain = audioCtx.createGain();
gain.gain.value = 0.5;

// Oscillators go from -1 to 1
// Make it go from -0.5 to +0.5 by connecting it to a GainNode with a gain value of 0.5
lfo.connect(lfoGain);

// because the value of the gain.gain AudioParam is originaly 0.5, the value is added, and it will go from 0.0 to 1.0
lfoGain.connect(gain.gain);

lfo.connect(gain.gain);

Note: There can only be one connection between an output from one specific AudioNode and an {{ domxref("AudioParam") }}. Multiple connections to the same termini are equivalent to a single such connection (the duplicates are ignored).

Returns

Void.

Example

In this example, we will be altering the gain value of a {{domxref("GainNode")}} using an {{domxref("OscillatorNode")}} with a slow frequency value. This technique is know as an LFO-controlled parameter.

var AudioContext = window.AudioContext || window.webkitAudioContext;

var audioCtx = new AudioContext();

// create an normal oscillator to make sound
var oscillator = audioCtx.createOscillator();

// create a second oscillator that will be used as an LFO (Low-frequency
// oscillator), and will control a parameter
var lfo = audioCtx.createOscillator();

// set the frequency of the second oscillator to a low number
lfo.frequency.value = 2.0; // 2Hz: two oscillations par second

// create a gain whose gain AudioParam will be controlled by the LFO
var gain = audioCtx.createGain();

// connect the LFO to the gain AudioParam. This means the value of the LFO
// will not produce any audio, but will change the value of the gain instead
lfo.connect(gain.gain);

// connect the oscillator that will produce audio to the gain
oscillator.connect(gain);

// connect the gain to the destination so we hear sound
gain.connect(audioCtx.destination);

// start the oscillator that will produce audio
oscillator.start();

// start the oscillator that will modify the gain value
lfo.start();

Parameters

Destination
The {{ domxref("AudioParam") }} you are connecting to.
Output (optional)
An index describing which output of the current AudioNode you want to connect to the {{ domxref("AudioParam") }}. The index numbers are defined according to the number of output channels (see Audio channels.)  If this parameter is out-of-bound, an INDEX_SIZE_ERR exception is thrown.

Specifications

Specification Status Comment
{{SpecName('Web Audio API', '#widl-AudioNode-connect-void-AudioParam-destination-unsigned-long-output', 'connect(AudioParam)')}} {{Spec2('Web Audio API')}}  

Browser compatibility

{{CompatibilityTable}}
Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
connect(AudioParam) {{CompatVersionUnknown}} {{property_prefix("webkit")}} {{CompatVersionUnknown}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatNo}}
Feature Android Firefox Mobile (Gecko) Firefox OS (Gecko) IE Phone Opera Mobile Safari Mobile
connect(AudioParam) {{CompatNo}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatNo}} {{CompatNo}} {{CompatNo}}

See also