web-audio-test-api
Web Audio API test library for CI
Installation
node.js
$ npm install --save-dev web-audio-test-api
Install Web Audio API interfaces to global scope
;
browser
Replace existing Web Audio API with web-audio-test-api
if you won't use web-audio-test-api
WebAudioTestAPI;
Online Test Suite
Documents
Features
- Strict type check more than original Web Audio API
var audioContext = ;var osc = audioContext; // correctoscfrequencyvalue = 880; // wrongassert; assert;});
- Convert to JSON from audio graph
var audioContext = ;var osc = audioContext;var lfo = audioContext;var amp = audioContext; lfo$id = "LFO"; // name for debugging osctype = "sawtooth";oscfrequencyvalue = 880; lfofrequencyvalue = 2; lfo;osc;amp; assert;
- OscillatorNode/BufferSourceNode state
var audioContext = ;var node = audioContext; ; nodestart0100;node;node; audioContext;; audioContext;; audioContext;; audioContext;; audioContext;; // other way;;;;;
- AudioParam simulation
var audioContext = ;var node = audioContext; nodefrequency;nodefrequency;node; audioContext;; audioContext;; audioContext;; // <- setValueAtTime // ^audioContext; // |; // | // |audioContext; // |; // | linearRampToValueAtTime // |audioContext; // |; // | // |audioContext; // v; // audioContext;; // other way
- ScriptProcessing simulation
var audioContext = ;var node = audioContext; nodeonaudioprocess = sinon;node; audioContext;;// 22times call (0.5 / (1024 / 44100) = 21.5332)
- DecodeAudioData simulation
var audioContext = ; // audioContext.DECODE_AUDIO_DATA_RESULT = customResult;// audioContext.DECODE_AUDIO_DATA_FAILED = true; audioContext;
- New API support
WebAudioTestAPI; var audioContext = ; var node = audioContext; console; // "enabled"
API Name | states |
---|---|
AnalyserNode#getFloatTimeDomainData |
"enabled" or "disabled" |
AudioBuffer#copyToChannel |
"enabled" or "disabled" |
AudioBuffer#copyFromChannel |
"enabled" or "disabled" |
AudioContext#createAudioWorker |
"disabled" |
AudioContext#createStereoPanner |
"enabled" or "disabled" |
AudioContext#close |
"enabled" or "disabled" |
AudioContext#suspend |
"enabled" or "disabled" |
AudioContext#resume |
"enabled" or "disabled" |
AudioContext#decodeAudioData |
"promise" or "void" |
OfflineAudioContext#startRendering |
"promise" or "void" |
AudioNode#disconnect |
"selective" or "channel" |
License
web-audio-test-api.js is available under the The MIT License.