The linearRampToValueAtTime()
method of the AudioParam
Interface schedules a gradual linear change in the value of the AudioParam
. The change starts at the time specified for the previous event, follows a linear ramp to the new value given in the value
parameter, and reaches the new value at the time given in the endTime
parameter.
Syntax
var AudioParam = AudioParam.linearRampToValueAtTime(value, endTime)
Parameters
- value
- A floating point number representing the value the
AudioParam
will ramp to by the given time. - endTime
- A double representing the exact time (in seconds) after the ramping starts that the changing of the value will stop.
Returns
A reference to this AudioParam
object. In some browsers older implementations of this interface return void.
Example
In this example, we have a media source with two control buttons (see the audio-param repo for the source code, or [[../../../../../../../mdn.github.io/webaudio-examples/audio-param/index|view the example live]].) When these buttons are pressed, linearRampToValueAtTime()
is used to fade the gain value up to 1.0, and down to 0, respectively. This is pretty useful for fade in/fade out effects, although AudioParam.exponentialRampToValueAtTime()
is often said to be a bit more natural.
// create audio context
var AudioContext = window.AudioContext || window.webkitAudioContext;
var audioCtx = new AudioContext();
// set basic variables for example
var myAudio = document.querySelector('audio');
var pre = document.querySelector('pre');
var myScript = document.querySelector('script');
pre.innerHTML = myScript.innerHTML;
var linearRampPlus = document.querySelector('.linear-ramp-plus');
var linearRampMinus = document.querySelector('.linear-ramp-minus');
// Create a MediaElementAudioSourceNode
// Feed the HTMLMediaElement into it
var source = audioCtx.createMediaElementSource(myAudio);
// Create a gain node and set it's gain value to 0.5
var gainNode = audioCtx.createGain();
// connect the AudioBufferSourceNode to the gainNode
// and the gainNode to the destination
gainNode.gain.setValueAtTime(0, audioCtx.currentTime);
source.connect(gainNode);
gainNode.connect(audioCtx.destination);
// set buttons to do something onclick
linearRampPlus.onclick = function() {
gainNode.gain.linearRampToValueAtTime(1.0, audioCtx.currentTime + 2);
}
linearRampMinus.onclick = function() {
gainNode.gain.linearRampToValueAtTime(0, audioCtx.currentTime + 2);
}
Specifications
Specification | Status | Comment |
Web Audio APIThe definition of 'linearRampToValueAtTime' in that specification. | Working Draft |
Browser compatibility
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
Desktop | Mobile | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
linearRampToValueAtTime
|
Chrome
Full support 14 |
Edge
Full support 12 |
Firefox Partial support 25 Partial support 25 Notes' Does not work (see bug 1171438 and bug 1567777). |
IE
No support No |
Opera
Full support 15 |
Safari
Full support 6 |
WebView Android
Full support Yes |
Chrome Android Partial support 18 Partial support 18 Notes' This sets the target volume at the specified time, but it doesn’t ramp to it, causing this function to behave like |
Firefox Android Partial support 26 Partial support 26 Notes' Does not work (see bug 1171438 and bug 1567777). |
Opera Android
Full support 14 |
Safari iOS
? |
Samsung Internet Android
Full support 1.0 |
Legend
- Full support
- Full support
- Partial support
- Partial support
- No support
- No support
- Compatibility unknown
- Compatibility unknown
- See implementation notes.'
- See implementation notes.
See also
AudioParam.linearRampToValueAtTime() by Mozilla Contributors is licensed under CC-BY-SA 2.5.