// META: script=/resources/WebIDLParser.js // META: script=/resources/idlharness.js // META: timeout=long // https://webaudio.github.io/web-audio-api/ 'use strict'; idl_test( ['webaudio'], ['cssom', 'uievents', 'mediacapture-streams', 'html', 'dom'], async idl_array => { idl_array.add_untested_idls('interface SVGElement {};'); idl_array.add_objects({ BaseAudioContext: [], AudioContext: ['context'], OfflineAudioContext: ['new OfflineAudioContext(1, 1, sample_rate)'], OfflineAudioCompletionEvent: [ 'new OfflineAudioCompletionEvent("", {renderedBuffer: buffer})' ], AudioBuffer: ['buffer'], AudioNode: [], AudioParam: ['new AudioBufferSourceNode(context).playbackRate'], AudioScheduledSourceNode: [], AnalyserNode: ['new AnalyserNode(context)'], AudioBufferSourceNode: ['new AudioBufferSourceNode(context)'], AudioDestinationNode: ['context.destination'], AudioListener: ['context.listener'], AudioProcessingEvent: [`new AudioProcessingEvent('', { playbackTime: 0, inputBuffer: buffer, outputBuffer: buffer })`], BiquadFilterNode: ['new BiquadFilterNode(context)'], ChannelMergerNode: ['new ChannelMergerNode(context)'], ChannelSplitterNode: ['new ChannelSplitterNode(context)'], ConstantSourceNode: ['new ConstantSourceNode(context)'], ConvolverNode: ['new ConvolverNode(context)'], DelayNode: ['new DelayNode(context)'], DynamicsCompressorNode: ['new DynamicsCompressorNode(context)'], GainNode: ['new GainNode(context)'], IIRFilterNode: [ 'new IIRFilterNode(context, {feedforward: [1], feedback: [1]})' ], MediaElementAudioSourceNode: [ 'new MediaElementAudioSourceNode(context, {mediaElement: new Audio})' ], MediaStreamAudioDestinationNode: [ 'new MediaStreamAudioDestinationNode(context)' ], MediaStreamAudioSourceNode: [], MediaStreamTrackAudioSourceNode: [], OscillatorNode: ['new OscillatorNode(context)'], PannerNode: ['new PannerNode(context)'], PeriodicWave: ['new PeriodicWave(context)'], ScriptProcessorNode: ['context.createScriptProcessor()'], StereoPannerNode: ['new StereoPannerNode(context)'], WaveShaperNode: ['new WaveShaperNode(context)'], AudioWorklet: ['context.audioWorklet'], AudioWorkletGlobalScope: [], AudioParamMap: ['worklet_node.parameters'], AudioWorkletNode: ['worklet_node'], AudioWorkletProcessor: [], }); self.sample_rate = 44100; self.context = new AudioContext; self.buffer = new AudioBuffer({length: 1, sampleRate: sample_rate}); await context.audioWorklet.addModule( 'the-audio-api/the-audioworklet-interface/processors/dummy-processor.js'); self.worklet_node = new AudioWorkletNode(context, 'dummy'); } );