1 module spasm.bindings.audio;
2 
3 import spasm.types;
4 import spasm.bindings.common;
5 import spasm.bindings.dom;
6 import spasm.bindings.domhighrestimestamp;
7 import spasm.bindings.html;
8 import spasm.bindings.mediastream;
9 import spasm.bindings.worklet;
10 
11 @safe:
12 nothrow:
13 
14 struct AnalyserNode {
15   nothrow:
16   spasm.bindings.audio.AudioNode _parent;
17   alias _parent this;
18   this(Handle h) {
19     _parent = .AudioNode(h);
20   }
21   void getFloatFrequencyData()(scope ref Float32Array array) {
22     AnalyserNode_getFloatFrequencyData(this._parent, array.handle);
23   }
24   void getByteFrequencyData()(scope ref Uint8Array array) {
25     AnalyserNode_getByteFrequencyData(this._parent, array.handle);
26   }
27   void getFloatTimeDomainData()(scope ref Float32Array array) {
28     AnalyserNode_getFloatTimeDomainData(this._parent, array.handle);
29   }
30   void getByteTimeDomainData()(scope ref Uint8Array array) {
31     AnalyserNode_getByteTimeDomainData(this._parent, array.handle);
32   }
33   void fftSize()(uint fftSize) {
34     AnalyserNode_fftSize_Set(this._parent, fftSize);
35   }
36   auto fftSize()() {
37     return AnalyserNode_fftSize_Get(this._parent);
38   }
39   auto frequencyBinCount()() {
40     return AnalyserNode_frequencyBinCount_Get(this._parent);
41   }
42   void minDecibels()(double minDecibels) {
43     AnalyserNode_minDecibels_Set(this._parent, minDecibels);
44   }
45   auto minDecibels()() {
46     return AnalyserNode_minDecibels_Get(this._parent);
47   }
48   void maxDecibels()(double maxDecibels) {
49     AnalyserNode_maxDecibels_Set(this._parent, maxDecibels);
50   }
51   auto maxDecibels()() {
52     return AnalyserNode_maxDecibels_Get(this._parent);
53   }
54   void smoothingTimeConstant()(double smoothingTimeConstant) {
55     AnalyserNode_smoothingTimeConstant_Set(this._parent, smoothingTimeConstant);
56   }
57   auto smoothingTimeConstant()() {
58     return AnalyserNode_smoothingTimeConstant_Get(this._parent);
59   }
60 }
61 struct AnalyserOptions {
62   nothrow:
63   spasm.bindings.audio.AudioNodeOptions _parent;
64   alias _parent this;
65   this(Handle h) {
66     _parent = .AudioNodeOptions(h);
67   }
68   static auto create() {
69     return AnalyserOptions(spasm_add__object());
70   }
71   void fftSize()(uint fftSize) {
72     AnalyserOptions_fftSize_Set(this._parent, fftSize);
73   }
74   auto fftSize()() {
75     return AnalyserOptions_fftSize_Get(this._parent);
76   }
77   void maxDecibels()(double maxDecibels) {
78     AnalyserOptions_maxDecibels_Set(this._parent, maxDecibels);
79   }
80   auto maxDecibels()() {
81     return AnalyserOptions_maxDecibels_Get(this._parent);
82   }
83   void minDecibels()(double minDecibels) {
84     AnalyserOptions_minDecibels_Set(this._parent, minDecibels);
85   }
86   auto minDecibels()() {
87     return AnalyserOptions_minDecibels_Get(this._parent);
88   }
89   void smoothingTimeConstant()(double smoothingTimeConstant) {
90     AnalyserOptions_smoothingTimeConstant_Set(this._parent, smoothingTimeConstant);
91   }
92   auto smoothingTimeConstant()() {
93     return AnalyserOptions_smoothingTimeConstant_Get(this._parent);
94   }
95 }
96 struct AudioBuffer {
97   nothrow:
98   JsHandle handle;
99   alias handle this;
100   this(Handle h) {
101     this.handle = JsHandle(h);
102   }
103   auto sampleRate()() {
104     return AudioBuffer_sampleRate_Get(this.handle);
105   }
106   auto length()() {
107     return AudioBuffer_length_Get(this.handle);
108   }
109   auto duration()() {
110     return AudioBuffer_duration_Get(this.handle);
111   }
112   auto numberOfChannels()() {
113     return AudioBuffer_numberOfChannels_Get(this.handle);
114   }
115   auto getChannelData()(uint channel) {
116     return Float32Array(AudioBuffer_getChannelData(this.handle, channel));
117   }
118   void copyFromChannel()(scope ref Float32Array destination, uint channelNumber, uint startInChannel /* = 0 */) {
119     AudioBuffer_copyFromChannel(this.handle, destination.handle, channelNumber, startInChannel);
120   }
121   void copyFromChannel()(scope ref Float32Array destination, uint channelNumber) {
122     AudioBuffer_copyFromChannel_0(this.handle, destination.handle, channelNumber);
123   }
124   void copyToChannel()(scope ref Float32Array source, uint channelNumber, uint startInChannel /* = 0 */) {
125     AudioBuffer_copyToChannel(this.handle, source.handle, channelNumber, startInChannel);
126   }
127   void copyToChannel()(scope ref Float32Array source, uint channelNumber) {
128     AudioBuffer_copyToChannel_0(this.handle, source.handle, channelNumber);
129   }
130 }
131 struct AudioBufferOptions {
132   nothrow:
133   JsHandle handle;
134   alias handle this;
135   this(Handle h) {
136     this.handle = JsHandle(h);
137   }
138   static auto create() {
139     return AudioBufferOptions(spasm_add__object());
140   }
141   void numberOfChannels()(uint numberOfChannels) {
142     AudioBufferOptions_numberOfChannels_Set(this.handle, numberOfChannels);
143   }
144   auto numberOfChannels()() {
145     return AudioBufferOptions_numberOfChannels_Get(this.handle);
146   }
147   void length()(uint length) {
148     AudioBufferOptions_length_Set(this.handle, length);
149   }
150   auto length()() {
151     return AudioBufferOptions_length_Get(this.handle);
152   }
153   void sampleRate()(float sampleRate) {
154     AudioBufferOptions_sampleRate_Set(this.handle, sampleRate);
155   }
156   auto sampleRate()() {
157     return AudioBufferOptions_sampleRate_Get(this.handle);
158   }
159 }
160 struct AudioBufferSourceNode {
161   nothrow:
162   spasm.bindings.audio.AudioScheduledSourceNode _parent;
163   alias _parent this;
164   this(Handle h) {
165     _parent = .AudioScheduledSourceNode(h);
166   }
167   void buffer(T0)(scope auto ref Optional!(T0) buffer) if (isTOrPointer!(T0, AudioBuffer)) {
168     AudioBufferSourceNode_buffer_Set(this._parent, !buffer.empty, buffer.front.handle);
169   }
170   auto buffer()() {
171     return AudioBufferSourceNode_buffer_Get(this._parent);
172   }
173   auto playbackRate()() {
174     return AudioParam(AudioBufferSourceNode_playbackRate_Get(this._parent));
175   }
176   auto detune()() {
177     return AudioParam(AudioBufferSourceNode_detune_Get(this._parent));
178   }
179   void loop()(bool loop) {
180     AudioBufferSourceNode_loop_Set(this._parent, loop);
181   }
182   auto loop()() {
183     return AudioBufferSourceNode_loop_Get(this._parent);
184   }
185   void loopStart()(double loopStart) {
186     AudioBufferSourceNode_loopStart_Set(this._parent, loopStart);
187   }
188   auto loopStart()() {
189     return AudioBufferSourceNode_loopStart_Get(this._parent);
190   }
191   void loopEnd()(double loopEnd) {
192     AudioBufferSourceNode_loopEnd_Set(this._parent, loopEnd);
193   }
194   auto loopEnd()() {
195     return AudioBufferSourceNode_loopEnd_Get(this._parent);
196   }
197   void start()(double when /* = 0 */, double offset, double duration) {
198     AudioBufferSourceNode_start(this._parent, when, offset, duration);
199   }
200   void start()(double when /* = 0 */, double offset) {
201     AudioBufferSourceNode_start_0(this._parent, when, offset);
202   }
203   void start()(double when /* = 0 */) {
204     AudioBufferSourceNode_start_1(this._parent, when);
205   }
206   void start()() {
207     AudioBufferSourceNode_start_2(this._parent);
208   }
209 }
210 struct AudioBufferSourceOptions {
211   nothrow:
212   JsHandle handle;
213   alias handle this;
214   this(Handle h) {
215     this.handle = JsHandle(h);
216   }
217   static auto create() {
218     return AudioBufferSourceOptions(spasm_add__object());
219   }
220   void buffer(T0)(scope auto ref Optional!(T0) buffer) if (isTOrPointer!(T0, AudioBuffer)) {
221     AudioBufferSourceOptions_buffer_Set(this.handle, !buffer.empty, buffer.front.handle);
222   }
223   auto buffer()() {
224     return AudioBufferSourceOptions_buffer_Get(this.handle);
225   }
226   void detune()(float detune) {
227     AudioBufferSourceOptions_detune_Set(this.handle, detune);
228   }
229   auto detune()() {
230     return AudioBufferSourceOptions_detune_Get(this.handle);
231   }
232   void loop()(bool loop) {
233     AudioBufferSourceOptions_loop_Set(this.handle, loop);
234   }
235   auto loop()() {
236     return AudioBufferSourceOptions_loop_Get(this.handle);
237   }
238   void loopEnd()(double loopEnd) {
239     AudioBufferSourceOptions_loopEnd_Set(this.handle, loopEnd);
240   }
241   auto loopEnd()() {
242     return AudioBufferSourceOptions_loopEnd_Get(this.handle);
243   }
244   void loopStart()(double loopStart) {
245     AudioBufferSourceOptions_loopStart_Set(this.handle, loopStart);
246   }
247   auto loopStart()() {
248     return AudioBufferSourceOptions_loopStart_Get(this.handle);
249   }
250   void playbackRate()(float playbackRate) {
251     AudioBufferSourceOptions_playbackRate_Set(this.handle, playbackRate);
252   }
253   auto playbackRate()() {
254     return AudioBufferSourceOptions_playbackRate_Get(this.handle);
255   }
256 }
257 struct AudioContext {
258   nothrow:
259   spasm.bindings.audio.BaseAudioContext _parent;
260   alias _parent this;
261   this(Handle h) {
262     _parent = .BaseAudioContext(h);
263   }
264   auto baseLatency()() {
265     return AudioContext_baseLatency_Get(this._parent);
266   }
267   auto outputLatency()() {
268     return AudioContext_outputLatency_Get(this._parent);
269   }
270   auto getOutputTimestamp()() {
271     return AudioTimestamp(AudioContext_getOutputTimestamp(this._parent));
272   }
273   auto resume()() {
274     return Promise!(void)(AudioContext_resume(this._parent));
275   }
276   auto suspend()() {
277     return Promise!(void)(AudioContext_suspend(this._parent));
278   }
279   auto close()() {
280     return Promise!(void)(AudioContext_close(this._parent));
281   }
282   auto createMediaElementSource()(scope ref HTMLMediaElement mediaElement) {
283     return MediaElementAudioSourceNode(AudioContext_createMediaElementSource(this._parent, mediaElement._parent));
284   }
285   auto createMediaStreamSource()(scope ref MediaStream mediaStream) {
286     return MediaStreamAudioSourceNode(AudioContext_createMediaStreamSource(this._parent, mediaStream._parent));
287   }
288   auto createMediaStreamTrackSource()(scope ref MediaStreamTrack mediaStreamTrack) {
289     return MediaStreamTrackAudioSourceNode(AudioContext_createMediaStreamTrackSource(this._parent, mediaStreamTrack._parent));
290   }
291   auto createMediaStreamDestination()() {
292     return MediaStreamAudioDestinationNode(AudioContext_createMediaStreamDestination(this._parent));
293   }
294 }
295 enum AudioContextLatencyCategory {
296   balanced,
297   interactive,
298   playback
299 }
300 struct AudioContextOptions {
301   nothrow:
302   JsHandle handle;
303   alias handle this;
304   this(Handle h) {
305     this.handle = JsHandle(h);
306   }
307   static auto create() {
308     return AudioContextOptions(spasm_add__object());
309   }
310   void latencyHint()(scope ref SumType!(AudioContextLatencyCategory, double) latencyHint) {
311     AudioContextOptions_latencyHint_Set(this.handle, latencyHint);
312   }
313   auto latencyHint()() {
314     return AudioContextOptions_latencyHint_Get(this.handle);
315   }
316   void sampleRate()(float sampleRate) {
317     AudioContextOptions_sampleRate_Set(this.handle, sampleRate);
318   }
319   auto sampleRate()() {
320     return AudioContextOptions_sampleRate_Get(this.handle);
321   }
322 }
323 enum AudioContextState {
324   suspended,
325   running,
326   closed
327 }
328 struct AudioDestinationNode {
329   nothrow:
330   spasm.bindings.audio.AudioNode _parent;
331   alias _parent this;
332   this(Handle h) {
333     _parent = .AudioNode(h);
334   }
335   auto maxChannelCount()() {
336     return AudioDestinationNode_maxChannelCount_Get(this._parent);
337   }
338 }
339 struct AudioListener {
340   nothrow:
341   JsHandle handle;
342   alias handle this;
343   this(Handle h) {
344     this.handle = JsHandle(h);
345   }
346   auto positionX()() {
347     return AudioParam(AudioListener_positionX_Get(this.handle));
348   }
349   auto positionY()() {
350     return AudioParam(AudioListener_positionY_Get(this.handle));
351   }
352   auto positionZ()() {
353     return AudioParam(AudioListener_positionZ_Get(this.handle));
354   }
355   auto forwardX()() {
356     return AudioParam(AudioListener_forwardX_Get(this.handle));
357   }
358   auto forwardY()() {
359     return AudioParam(AudioListener_forwardY_Get(this.handle));
360   }
361   auto forwardZ()() {
362     return AudioParam(AudioListener_forwardZ_Get(this.handle));
363   }
364   auto upX()() {
365     return AudioParam(AudioListener_upX_Get(this.handle));
366   }
367   auto upY()() {
368     return AudioParam(AudioListener_upY_Get(this.handle));
369   }
370   auto upZ()() {
371     return AudioParam(AudioListener_upZ_Get(this.handle));
372   }
373   void setPosition()(float x, float y, float z) {
374     AudioListener_setPosition(this.handle, x, y, z);
375   }
376   void setOrientation()(float x, float y, float z, float xUp, float yUp, float zUp) {
377     AudioListener_setOrientation(this.handle, x, y, z, xUp, yUp, zUp);
378   }
379 }
380 struct AudioNode {
381   nothrow:
382   spasm.bindings.dom.EventTarget _parent;
383   alias _parent this;
384   this(Handle h) {
385     _parent = .EventTarget(h);
386   }
387   auto connect()(scope ref AudioNode destinationNode, uint output /* = 0 */, uint input /* = 0 */) {
388     return AudioNode(AudioNode_connect__Handle_uint_uint(this._parent, destinationNode._parent, output, input));
389   }
390   auto connect()(scope ref AudioNode destinationNode, uint output /* = 0 */) {
391     return AudioNode(AudioNode_connect_0_Handle_uint(this._parent, destinationNode._parent, output));
392   }
393   auto connect()(scope ref AudioNode destinationNode) {
394     return AudioNode(AudioNode_connect_1(this._parent, destinationNode._parent));
395   }
396   void connect()(scope ref AudioParam destinationParam, uint output /* = 0 */) {
397     AudioNode_connect__Handle_uint(this._parent, destinationParam.handle, output);
398   }
399   void connect()(scope ref AudioParam destinationParam) {
400     AudioNode_connect_0_Handle(this._parent, destinationParam.handle);
401   }
402   void disconnect()() {
403     AudioNode_disconnect__(this._parent);
404   }
405   void disconnect()(uint output) {
406     AudioNode_disconnect__uint(this._parent, output);
407   }
408   void disconnect()(scope ref AudioNode destinationNode) {
409     AudioNode_disconnect__Handle(this._parent, destinationNode._parent);
410   }
411   void disconnect()(scope ref AudioNode destinationNode, uint output) {
412     AudioNode_disconnect__Handle_uint(this._parent, destinationNode._parent, output);
413   }
414   void disconnect()(scope ref AudioNode destinationNode, uint output, uint input) {
415     AudioNode_disconnect__Handle_uint_uint(this._parent, destinationNode._parent, output, input);
416   }
417   void disconnect()(scope ref AudioParam destinationParam) {
418     AudioNode_disconnect__Handle(this._parent, destinationParam.handle);
419   }
420   void disconnect()(scope ref AudioParam destinationParam, uint output) {
421     AudioNode_disconnect__Handle_uint(this._parent, destinationParam.handle, output);
422   }
423   auto context()() {
424     return BaseAudioContext(AudioNode_context_Get(this._parent));
425   }
426   auto numberOfInputs()() {
427     return AudioNode_numberOfInputs_Get(this._parent);
428   }
429   auto numberOfOutputs()() {
430     return AudioNode_numberOfOutputs_Get(this._parent);
431   }
432   void channelCount()(uint channelCount) {
433     AudioNode_channelCount_Set(this._parent, channelCount);
434   }
435   auto channelCount()() {
436     return AudioNode_channelCount_Get(this._parent);
437   }
438   void channelCountMode()(ChannelCountMode channelCountMode) {
439     AudioNode_channelCountMode_Set(this._parent, channelCountMode);
440   }
441   auto channelCountMode()() {
442     return AudioNode_channelCountMode_Get(this._parent);
443   }
444   void channelInterpretation()(ChannelInterpretation channelInterpretation) {
445     AudioNode_channelInterpretation_Set(this._parent, channelInterpretation);
446   }
447   auto channelInterpretation()() {
448     return AudioNode_channelInterpretation_Get(this._parent);
449   }
450 }
451 struct AudioNodeOptions {
452   nothrow:
453   JsHandle handle;
454   alias handle this;
455   this(Handle h) {
456     this.handle = JsHandle(h);
457   }
458   static auto create() {
459     return AudioNodeOptions(spasm_add__object());
460   }
461   void channelCount()(uint channelCount) {
462     AudioNodeOptions_channelCount_Set(this.handle, channelCount);
463   }
464   auto channelCount()() {
465     return AudioNodeOptions_channelCount_Get(this.handle);
466   }
467   void channelCountMode()(ChannelCountMode channelCountMode) {
468     AudioNodeOptions_channelCountMode_Set(this.handle, channelCountMode);
469   }
470   auto channelCountMode()() {
471     return AudioNodeOptions_channelCountMode_Get(this.handle);
472   }
473   void channelInterpretation()(ChannelInterpretation channelInterpretation) {
474     AudioNodeOptions_channelInterpretation_Set(this.handle, channelInterpretation);
475   }
476   auto channelInterpretation()() {
477     return AudioNodeOptions_channelInterpretation_Get(this.handle);
478   }
479 }
480 struct AudioParam {
481   nothrow:
482   JsHandle handle;
483   alias handle this;
484   this(Handle h) {
485     this.handle = JsHandle(h);
486   }
487   void value()(float value) {
488     AudioParam_value_Set(this.handle, value);
489   }
490   auto value()() {
491     return AudioParam_value_Get(this.handle);
492   }
493   void automationRate()(AutomationRate automationRate) {
494     AudioParam_automationRate_Set(this.handle, automationRate);
495   }
496   auto automationRate()() {
497     return AudioParam_automationRate_Get(this.handle);
498   }
499   auto defaultValue()() {
500     return AudioParam_defaultValue_Get(this.handle);
501   }
502   auto minValue()() {
503     return AudioParam_minValue_Get(this.handle);
504   }
505   auto maxValue()() {
506     return AudioParam_maxValue_Get(this.handle);
507   }
508   auto setValueAtTime()(float value, double startTime) {
509     return AudioParam(AudioParam_setValueAtTime(this.handle, value, startTime));
510   }
511   auto linearRampToValueAtTime()(float value, double endTime) {
512     return AudioParam(AudioParam_linearRampToValueAtTime(this.handle, value, endTime));
513   }
514   auto exponentialRampToValueAtTime()(float value, double endTime) {
515     return AudioParam(AudioParam_exponentialRampToValueAtTime(this.handle, value, endTime));
516   }
517   auto setTargetAtTime()(float target, double startTime, float timeConstant) {
518     return AudioParam(AudioParam_setTargetAtTime(this.handle, target, startTime, timeConstant));
519   }
520   auto setValueCurveAtTime()(scope ref Sequence!(float) values, double startTime, double duration) {
521     return AudioParam(AudioParam_setValueCurveAtTime(this.handle, values.handle, startTime, duration));
522   }
523   auto cancelScheduledValues()(double cancelTime) {
524     return AudioParam(AudioParam_cancelScheduledValues(this.handle, cancelTime));
525   }
526   auto cancelAndHoldAtTime()(double cancelTime) {
527     return AudioParam(AudioParam_cancelAndHoldAtTime(this.handle, cancelTime));
528   }
529 }
530 struct AudioParamDescriptor {
531   nothrow:
532   JsHandle handle;
533   alias handle this;
534   this(Handle h) {
535     this.handle = JsHandle(h);
536   }
537   static auto create() {
538     return AudioParamDescriptor(spasm_add__object());
539   }
540   void name()(string name) {
541     AudioParamDescriptor_name_Set(this.handle, name);
542   }
543   auto name()() {
544     return AudioParamDescriptor_name_Get(this.handle);
545   }
546   void defaultValue()(float defaultValue) {
547     AudioParamDescriptor_defaultValue_Set(this.handle, defaultValue);
548   }
549   auto defaultValue()() {
550     return AudioParamDescriptor_defaultValue_Get(this.handle);
551   }
552   void minValue()(float minValue) {
553     AudioParamDescriptor_minValue_Set(this.handle, minValue);
554   }
555   auto minValue()() {
556     return AudioParamDescriptor_minValue_Get(this.handle);
557   }
558   void maxValue()(float maxValue) {
559     AudioParamDescriptor_maxValue_Set(this.handle, maxValue);
560   }
561   auto maxValue()() {
562     return AudioParamDescriptor_maxValue_Get(this.handle);
563   }
564   void automationRate()(AutomationRate automationRate) {
565     AudioParamDescriptor_automationRate_Set(this.handle, automationRate);
566   }
567   auto automationRate()() {
568     return AudioParamDescriptor_automationRate_Get(this.handle);
569   }
570 }
571 struct AudioParamMap {
572   nothrow:
573   JsHandle handle;
574   alias handle this;
575   this(Handle h) {
576     this.handle = JsHandle(h);
577   }
578   uint size() {
579     return Maplike_string_Handle_size(this.handle);
580   }
581   void clear() {
582     Maplike_string_Handle_clear(this.handle);
583   }
584   void delete_(string key) {
585     Maplike_string_Handle_delete(this.handle, key);
586   }
587   Iterator!(ArrayPair!(string, AudioParam)) entries() {
588     return Iterator!(ArrayPair!(string, AudioParam))(Maplike_string_Handle_entries(this.handle));
589   }
590   extern(C) void forEach(void delegate(string, Handle, Handle) callback) {
591     Maplike_string_Handle_forEach(this.handle, callback);
592   }
593   AudioParam get(string key) {
594     return AudioParam(Maplike_string_Handle_get(this.handle, key));
595   }
596   bool has(string key) {
597     return Maplike_string_Handle_has(this.handle, key);
598   }
599   Iterator!(string) keys() {
600     return Iterator!(string)(Maplike_string_Handle_keys(this.handle));
601   }
602   void set(string key, scope ref AudioParam value) {
603     Maplike_string_Handle_set(this.handle, key, value.handle);
604   }
605   Iterator!(AudioParam) values() {
606     return Iterator!(AudioParam)(Maplike_string_Handle_values(this.handle));
607   }
608 }
609 struct AudioProcessingEvent {
610   nothrow:
611   spasm.bindings.dom.Event _parent;
612   alias _parent this;
613   this(Handle h) {
614     _parent = .Event(h);
615   }
616   auto playbackTime()() {
617     return AudioProcessingEvent_playbackTime_Get(this._parent);
618   }
619   auto inputBuffer()() {
620     return AudioBuffer(AudioProcessingEvent_inputBuffer_Get(this._parent));
621   }
622   auto outputBuffer()() {
623     return AudioBuffer(AudioProcessingEvent_outputBuffer_Get(this._parent));
624   }
625 }
626 struct AudioProcessingEventInit {
627   nothrow:
628   spasm.bindings.dom.EventInit _parent;
629   alias _parent this;
630   this(Handle h) {
631     _parent = .EventInit(h);
632   }
633   static auto create() {
634     return AudioProcessingEventInit(spasm_add__object());
635   }
636   void playbackTime()(double playbackTime) {
637     AudioProcessingEventInit_playbackTime_Set(this._parent, playbackTime);
638   }
639   auto playbackTime()() {
640     return AudioProcessingEventInit_playbackTime_Get(this._parent);
641   }
642   void inputBuffer()(scope ref AudioBuffer inputBuffer) {
643     AudioProcessingEventInit_inputBuffer_Set(this._parent, inputBuffer.handle);
644   }
645   auto inputBuffer()() {
646     return AudioBuffer(AudioProcessingEventInit_inputBuffer_Get(this._parent));
647   }
648   void outputBuffer()(scope ref AudioBuffer outputBuffer) {
649     AudioProcessingEventInit_outputBuffer_Set(this._parent, outputBuffer.handle);
650   }
651   auto outputBuffer()() {
652     return AudioBuffer(AudioProcessingEventInit_outputBuffer_Get(this._parent));
653   }
654 }
655 struct AudioScheduledSourceNode {
656   nothrow:
657   spasm.bindings.audio.AudioNode _parent;
658   alias _parent this;
659   this(Handle h) {
660     _parent = .AudioNode(h);
661   }
662   void onended()(EventHandler onended) {
663     AudioScheduledSourceNode_onended_Set(this._parent, onended);
664   }
665   auto onended()() {
666     return AudioScheduledSourceNode_onended_Get(this._parent);
667   }
668   void start()(double when /* = 0 */) {
669     AudioScheduledSourceNode_start(this._parent, when);
670   }
671   void start()() {
672     AudioScheduledSourceNode_start_0(this._parent);
673   }
674   void stop()(double when /* = 0 */) {
675     AudioScheduledSourceNode_stop(this._parent, when);
676   }
677   void stop()() {
678     AudioScheduledSourceNode_stop_0(this._parent);
679   }
680 }
681 struct AudioTimestamp {
682   nothrow:
683   JsHandle handle;
684   alias handle this;
685   this(Handle h) {
686     this.handle = JsHandle(h);
687   }
688   static auto create() {
689     return AudioTimestamp(spasm_add__object());
690   }
691   void contextTime()(double contextTime) {
692     AudioTimestamp_contextTime_Set(this.handle, contextTime);
693   }
694   auto contextTime()() {
695     return AudioTimestamp_contextTime_Get(this.handle);
696   }
697   void performanceTime()(double performanceTime) {
698     AudioTimestamp_performanceTime_Set(this.handle, performanceTime);
699   }
700   auto performanceTime()() {
701     return AudioTimestamp_performanceTime_Get(this.handle);
702   }
703 }
704 struct AudioWorklet {
705   nothrow:
706   spasm.bindings.worklet.Worklet _parent;
707   alias _parent this;
708   this(Handle h) {
709     _parent = .Worklet(h);
710   }
711   auto Event()(string type, scope ref EventInit eventInitDict) {
712     return .Event(AudioWorklet_Event(this._parent, type, eventInitDict.handle));
713   }
714   auto EventTarget()() {
715     return .EventTarget(AudioWorklet_EventTarget(this._parent));
716   }
717   auto MessageEvent()(string type, scope ref MessageEventInit eventInitDict) {
718     return .MessageEvent(AudioWorklet_MessageEvent(this._parent, type, eventInitDict._parent));
719   }
720 }
721 struct AudioWorkletGlobalScope {
722   nothrow:
723   spasm.bindings.worklet.WorkletGlobalScope _parent;
724   alias _parent this;
725   this(Handle h) {
726     _parent = .WorkletGlobalScope(h);
727   }
728   void registerProcessor()(string name, VoidFunction processorCtor) {
729     AudioWorkletGlobalScope_registerProcessor(this._parent, name, processorCtor);
730   }
731   auto currentFrame()() {
732     return AudioWorkletGlobalScope_currentFrame_Get(this._parent);
733   }
734   auto currentTime()() {
735     return AudioWorkletGlobalScope_currentTime_Get(this._parent);
736   }
737   auto sampleRate()() {
738     return AudioWorkletGlobalScope_sampleRate_Get(this._parent);
739   }
740 }
741 struct AudioWorkletNode {
742   nothrow:
743   spasm.bindings.audio.AudioNode _parent;
744   alias _parent this;
745   this(Handle h) {
746     _parent = .AudioNode(h);
747   }
748   auto parameters()() {
749     return AudioParamMap(AudioWorkletNode_parameters_Get(this._parent));
750   }
751   auto port()() {
752     return MessagePort(AudioWorkletNode_port_Get(this._parent));
753   }
754   void onprocessorerror()(EventHandler onprocessorerror) {
755     AudioWorkletNode_onprocessorerror_Set(this._parent, onprocessorerror);
756   }
757   auto onprocessorerror()() {
758     return AudioWorkletNode_onprocessorerror_Get(this._parent);
759   }
760 }
761 struct AudioWorkletNodeOptions {
762   nothrow:
763   spasm.bindings.audio.AudioNodeOptions _parent;
764   alias _parent this;
765   this(Handle h) {
766     _parent = .AudioNodeOptions(h);
767   }
768   static auto create() {
769     return AudioWorkletNodeOptions(spasm_add__object());
770   }
771   void numberOfInputs()(uint numberOfInputs) {
772     AudioWorkletNodeOptions_numberOfInputs_Set(this._parent, numberOfInputs);
773   }
774   auto numberOfInputs()() {
775     return AudioWorkletNodeOptions_numberOfInputs_Get(this._parent);
776   }
777   void numberOfOutputs()(uint numberOfOutputs) {
778     AudioWorkletNodeOptions_numberOfOutputs_Set(this._parent, numberOfOutputs);
779   }
780   auto numberOfOutputs()() {
781     return AudioWorkletNodeOptions_numberOfOutputs_Get(this._parent);
782   }
783   void outputChannelCount()(scope ref Sequence!(uint) outputChannelCount) {
784     AudioWorkletNodeOptions_outputChannelCount_Set(this._parent, outputChannelCount.handle);
785   }
786   auto outputChannelCount()() {
787     return Sequence!(uint)(AudioWorkletNodeOptions_outputChannelCount_Get(this._parent));
788   }
789   void parameterData()(scope ref Record!(string, double) parameterData) {
790     AudioWorkletNodeOptions_parameterData_Set(this._parent, parameterData.handle);
791   }
792   auto parameterData()() {
793     return Record!(string, double)(AudioWorkletNodeOptions_parameterData_Get(this._parent));
794   }
795   void processorOptions(T0)(scope auto ref Optional!(T0) processorOptions) if (isTOrPointer!(T0, JsObject)) {
796     AudioWorkletNodeOptions_processorOptions_Set(this._parent, !processorOptions.empty, processorOptions.front.handle);
797   }
798   auto processorOptions()() {
799     return AudioWorkletNodeOptions_processorOptions_Get(this._parent);
800   }
801 }
802 struct AudioWorkletProcessor {
803   nothrow:
804   JsHandle handle;
805   alias handle this;
806   this(Handle h) {
807     this.handle = JsHandle(h);
808   }
809   auto port()() {
810     return MessagePort(AudioWorkletProcessor_port_Get(this.handle));
811   }
812 }
813 enum AutomationRate {
814   a_rate,
815   k_rate
816 }
817 struct BaseAudioContext {
818   nothrow:
819   spasm.bindings.dom.EventTarget _parent;
820   alias _parent this;
821   this(Handle h) {
822     _parent = .EventTarget(h);
823   }
824   auto destination()() {
825     return AudioDestinationNode(BaseAudioContext_destination_Get(this._parent));
826   }
827   auto sampleRate()() {
828     return BaseAudioContext_sampleRate_Get(this._parent);
829   }
830   auto currentTime()() {
831     return BaseAudioContext_currentTime_Get(this._parent);
832   }
833   auto listener()() {
834     return AudioListener(BaseAudioContext_listener_Get(this._parent));
835   }
836   auto state()() {
837     return BaseAudioContext_state_Get(this._parent);
838   }
839   auto audioWorklet()() {
840     return AudioWorklet(BaseAudioContext_audioWorklet_Get(this._parent));
841   }
842   void onstatechange()(EventHandler onstatechange) {
843     BaseAudioContext_onstatechange_Set(this._parent, onstatechange);
844   }
845   auto onstatechange()() {
846     return BaseAudioContext_onstatechange_Get(this._parent);
847   }
848   auto createAnalyser()() {
849     return AnalyserNode(BaseAudioContext_createAnalyser(this._parent));
850   }
851   auto createBiquadFilter()() {
852     return BiquadFilterNode(BaseAudioContext_createBiquadFilter(this._parent));
853   }
854   auto createBuffer()(uint numberOfChannels, uint length, float sampleRate) {
855     return AudioBuffer(BaseAudioContext_createBuffer(this._parent, numberOfChannels, length, sampleRate));
856   }
857   auto createBufferSource()() {
858     return AudioBufferSourceNode(BaseAudioContext_createBufferSource(this._parent));
859   }
860   auto createChannelMerger()(uint numberOfInputs /* = 6 */) {
861     return ChannelMergerNode(BaseAudioContext_createChannelMerger(this._parent, numberOfInputs));
862   }
863   auto createChannelMerger()() {
864     return ChannelMergerNode(BaseAudioContext_createChannelMerger_0(this._parent));
865   }
866   auto createChannelSplitter()(uint numberOfOutputs /* = 6 */) {
867     return ChannelSplitterNode(BaseAudioContext_createChannelSplitter(this._parent, numberOfOutputs));
868   }
869   auto createChannelSplitter()() {
870     return ChannelSplitterNode(BaseAudioContext_createChannelSplitter_0(this._parent));
871   }
872   auto createConstantSource()() {
873     return ConstantSourceNode(BaseAudioContext_createConstantSource(this._parent));
874   }
875   auto createConvolver()() {
876     return ConvolverNode(BaseAudioContext_createConvolver(this._parent));
877   }
878   auto createDelay()(double maxDelayTime /* = 1.0 */) {
879     return DelayNode(BaseAudioContext_createDelay(this._parent, maxDelayTime));
880   }
881   auto createDelay()() {
882     return DelayNode(BaseAudioContext_createDelay_0(this._parent));
883   }
884   auto createDynamicsCompressor()() {
885     return DynamicsCompressorNode(BaseAudioContext_createDynamicsCompressor(this._parent));
886   }
887   auto createGain()() {
888     return GainNode(BaseAudioContext_createGain(this._parent));
889   }
890   auto createIIRFilter()(scope ref Sequence!(double) feedforward, scope ref Sequence!(double) feedback) {
891     return IIRFilterNode(BaseAudioContext_createIIRFilter(this._parent, feedforward.handle, feedback.handle));
892   }
893   auto createOscillator()() {
894     return OscillatorNode(BaseAudioContext_createOscillator(this._parent));
895   }
896   auto createPanner()() {
897     return PannerNode(BaseAudioContext_createPanner(this._parent));
898   }
899   auto createPeriodicWave()(scope ref Sequence!(float) real_, scope ref Sequence!(float) imag, scope ref PeriodicWaveConstraints constraints) {
900     return PeriodicWave(BaseAudioContext_createPeriodicWave(this._parent, real_.handle, imag.handle, constraints.handle));
901   }
902   auto createPeriodicWave()(scope ref Sequence!(float) real_, scope ref Sequence!(float) imag) {
903     return PeriodicWave(BaseAudioContext_createPeriodicWave_0(this._parent, real_.handle, imag.handle));
904   }
905   auto createScriptProcessor()(uint bufferSize /* = 0 */, uint numberOfInputChannels /* = 2 */, uint numberOfOutputChannels /* = 2 */) {
906     return ScriptProcessorNode(BaseAudioContext_createScriptProcessor(this._parent, bufferSize, numberOfInputChannels, numberOfOutputChannels));
907   }
908   auto createScriptProcessor()(uint bufferSize /* = 0 */, uint numberOfInputChannels /* = 2 */) {
909     return ScriptProcessorNode(BaseAudioContext_createScriptProcessor_0(this._parent, bufferSize, numberOfInputChannels));
910   }
911   auto createScriptProcessor()(uint bufferSize /* = 0 */) {
912     return ScriptProcessorNode(BaseAudioContext_createScriptProcessor_1(this._parent, bufferSize));
913   }
914   auto createScriptProcessor()() {
915     return ScriptProcessorNode(BaseAudioContext_createScriptProcessor_2(this._parent));
916   }
917   auto createStereoPanner()() {
918     return StereoPannerNode(BaseAudioContext_createStereoPanner(this._parent));
919   }
920   auto createWaveShaper()() {
921     return WaveShaperNode(BaseAudioContext_createWaveShaper(this._parent));
922   }
923   auto decodeAudioData(T1, T2)(scope ref ArrayBuffer audioData, scope auto ref Optional!(T1) successCallback, scope auto ref Optional!(T2) errorCallback) if (isTOrPointer!(T1, DecodeSuccessCallback) && isTOrPointer!(T2, DecodeErrorCallback)) {
924     return Promise!(AudioBuffer)(BaseAudioContext_decodeAudioData(this._parent, audioData.handle, !successCallback.empty, successCallback.front, !errorCallback.empty, errorCallback.front));
925   }
926   auto decodeAudioData(T1)(scope ref ArrayBuffer audioData, scope auto ref Optional!(T1) successCallback) if (isTOrPointer!(T1, DecodeSuccessCallback)) {
927     return Promise!(AudioBuffer)(BaseAudioContext_decodeAudioData_0(this._parent, audioData.handle, !successCallback.empty, successCallback.front));
928   }
929   auto decodeAudioData()(scope ref ArrayBuffer audioData) {
930     return Promise!(AudioBuffer)(BaseAudioContext_decodeAudioData_1(this._parent, audioData.handle));
931   }
932 }
933 struct BiquadFilterNode {
934   nothrow:
935   spasm.bindings.audio.AudioNode _parent;
936   alias _parent this;
937   this(Handle h) {
938     _parent = .AudioNode(h);
939   }
940   void type()(BiquadFilterType type) {
941     BiquadFilterNode_type_Set(this._parent, type);
942   }
943   auto type()() {
944     return BiquadFilterNode_type_Get(this._parent);
945   }
946   auto frequency()() {
947     return AudioParam(BiquadFilterNode_frequency_Get(this._parent));
948   }
949   auto detune()() {
950     return AudioParam(BiquadFilterNode_detune_Get(this._parent));
951   }
952   auto Q()() {
953     return AudioParam(BiquadFilterNode_Q_Get(this._parent));
954   }
955   auto gain()() {
956     return AudioParam(BiquadFilterNode_gain_Get(this._parent));
957   }
958   void getFrequencyResponse()(scope ref Float32Array frequencyHz, scope ref Float32Array magResponse, scope ref Float32Array phaseResponse) {
959     BiquadFilterNode_getFrequencyResponse(this._parent, frequencyHz.handle, magResponse.handle, phaseResponse.handle);
960   }
961 }
962 struct BiquadFilterOptions {
963   nothrow:
964   spasm.bindings.audio.AudioNodeOptions _parent;
965   alias _parent this;
966   this(Handle h) {
967     _parent = .AudioNodeOptions(h);
968   }
969   static auto create() {
970     return BiquadFilterOptions(spasm_add__object());
971   }
972   void type()(BiquadFilterType type) {
973     BiquadFilterOptions_type_Set(this._parent, type);
974   }
975   auto type()() {
976     return BiquadFilterOptions_type_Get(this._parent);
977   }
978   void Q()(float q) {
979     BiquadFilterOptions_Q_Set(this._parent, Q);
980   }
981   auto Q()() {
982     return BiquadFilterOptions_Q_Get(this._parent);
983   }
984   void detune()(float detune) {
985     BiquadFilterOptions_detune_Set(this._parent, detune);
986   }
987   auto detune()() {
988     return BiquadFilterOptions_detune_Get(this._parent);
989   }
990   void frequency()(float frequency) {
991     BiquadFilterOptions_frequency_Set(this._parent, frequency);
992   }
993   auto frequency()() {
994     return BiquadFilterOptions_frequency_Get(this._parent);
995   }
996   void gain()(float gain) {
997     BiquadFilterOptions_gain_Set(this._parent, gain);
998   }
999   auto gain()() {
1000     return BiquadFilterOptions_gain_Get(this._parent);
1001   }
1002 }
1003 enum BiquadFilterType {
1004   lowpass,
1005   highpass,
1006   bandpass,
1007   lowshelf,
1008   highshelf,
1009   peaking,
1010   notch,
1011   allpass
1012 }
1013 enum ChannelCountMode {
1014   max,
1015   clamped_max,
1016   explicit
1017 }
1018 enum ChannelInterpretation {
1019   speakers,
1020   discrete
1021 }
1022 struct ChannelMergerNode {
1023   nothrow:
1024   spasm.bindings.audio.AudioNode _parent;
1025   alias _parent this;
1026   this(Handle h) {
1027     _parent = .AudioNode(h);
1028   }
1029 }
1030 struct ChannelMergerOptions {
1031   nothrow:
1032   spasm.bindings.audio.AudioNodeOptions _parent;
1033   alias _parent this;
1034   this(Handle h) {
1035     _parent = .AudioNodeOptions(h);
1036   }
1037   static auto create() {
1038     return ChannelMergerOptions(spasm_add__object());
1039   }
1040   void numberOfInputs()(uint numberOfInputs) {
1041     ChannelMergerOptions_numberOfInputs_Set(this._parent, numberOfInputs);
1042   }
1043   auto numberOfInputs()() {
1044     return ChannelMergerOptions_numberOfInputs_Get(this._parent);
1045   }
1046 }
1047 struct ChannelSplitterNode {
1048   nothrow:
1049   spasm.bindings.audio.AudioNode _parent;
1050   alias _parent this;
1051   this(Handle h) {
1052     _parent = .AudioNode(h);
1053   }
1054 }
1055 struct ChannelSplitterOptions {
1056   nothrow:
1057   spasm.bindings.audio.AudioNodeOptions _parent;
1058   alias _parent this;
1059   this(Handle h) {
1060     _parent = .AudioNodeOptions(h);
1061   }
1062   static auto create() {
1063     return ChannelSplitterOptions(spasm_add__object());
1064   }
1065   void numberOfOutputs()(uint numberOfOutputs) {
1066     ChannelSplitterOptions_numberOfOutputs_Set(this._parent, numberOfOutputs);
1067   }
1068   auto numberOfOutputs()() {
1069     return ChannelSplitterOptions_numberOfOutputs_Get(this._parent);
1070   }
1071 }
1072 struct ConstantSourceNode {
1073   nothrow:
1074   spasm.bindings.audio.AudioScheduledSourceNode _parent;
1075   alias _parent this;
1076   this(Handle h) {
1077     _parent = .AudioScheduledSourceNode(h);
1078   }
1079   auto offset()() {
1080     return AudioParam(ConstantSourceNode_offset_Get(this._parent));
1081   }
1082 }
1083 struct ConstantSourceOptions {
1084   nothrow:
1085   JsHandle handle;
1086   alias handle this;
1087   this(Handle h) {
1088     this.handle = JsHandle(h);
1089   }
1090   static auto create() {
1091     return ConstantSourceOptions(spasm_add__object());
1092   }
1093   void offset()(float offset) {
1094     ConstantSourceOptions_offset_Set(this.handle, offset);
1095   }
1096   auto offset()() {
1097     return ConstantSourceOptions_offset_Get(this.handle);
1098   }
1099 }
1100 struct ConvolverNode {
1101   nothrow:
1102   spasm.bindings.audio.AudioNode _parent;
1103   alias _parent this;
1104   this(Handle h) {
1105     _parent = .AudioNode(h);
1106   }
1107   void buffer(T0)(scope auto ref Optional!(T0) buffer) if (isTOrPointer!(T0, AudioBuffer)) {
1108     ConvolverNode_buffer_Set(this._parent, !buffer.empty, buffer.front.handle);
1109   }
1110   auto buffer()() {
1111     return ConvolverNode_buffer_Get(this._parent);
1112   }
1113   void normalize()(bool normalize) {
1114     ConvolverNode_normalize_Set(this._parent, normalize);
1115   }
1116   auto normalize()() {
1117     return ConvolverNode_normalize_Get(this._parent);
1118   }
1119 }
1120 struct ConvolverOptions {
1121   nothrow:
1122   spasm.bindings.audio.AudioNodeOptions _parent;
1123   alias _parent this;
1124   this(Handle h) {
1125     _parent = .AudioNodeOptions(h);
1126   }
1127   static auto create() {
1128     return ConvolverOptions(spasm_add__object());
1129   }
1130   void buffer(T0)(scope auto ref Optional!(T0) buffer) if (isTOrPointer!(T0, AudioBuffer)) {
1131     ConvolverOptions_buffer_Set(this._parent, !buffer.empty, buffer.front.handle);
1132   }
1133   auto buffer()() {
1134     return ConvolverOptions_buffer_Get(this._parent);
1135   }
1136   void disableNormalization()(bool disableNormalization) {
1137     ConvolverOptions_disableNormalization_Set(this._parent, disableNormalization);
1138   }
1139   auto disableNormalization()() {
1140     return ConvolverOptions_disableNormalization_Get(this._parent);
1141   }
1142 }
1143 alias DecodeErrorCallback = void delegate(DOMException);
1144 alias DecodeSuccessCallback = void delegate(AudioBuffer);
1145 struct DelayNode {
1146   nothrow:
1147   spasm.bindings.audio.AudioNode _parent;
1148   alias _parent this;
1149   this(Handle h) {
1150     _parent = .AudioNode(h);
1151   }
1152   auto delayTime()() {
1153     return AudioParam(DelayNode_delayTime_Get(this._parent));
1154   }
1155 }
1156 struct DelayOptions {
1157   nothrow:
1158   spasm.bindings.audio.AudioNodeOptions _parent;
1159   alias _parent this;
1160   this(Handle h) {
1161     _parent = .AudioNodeOptions(h);
1162   }
1163   static auto create() {
1164     return DelayOptions(spasm_add__object());
1165   }
1166   void maxDelayTime()(double maxDelayTime) {
1167     DelayOptions_maxDelayTime_Set(this._parent, maxDelayTime);
1168   }
1169   auto maxDelayTime()() {
1170     return DelayOptions_maxDelayTime_Get(this._parent);
1171   }
1172   void delayTime()(double delayTime) {
1173     DelayOptions_delayTime_Set(this._parent, delayTime);
1174   }
1175   auto delayTime()() {
1176     return DelayOptions_delayTime_Get(this._parent);
1177   }
1178 }
1179 enum DistanceModelType {
1180   linear,
1181   inverse,
1182   exponential
1183 }
1184 struct DynamicsCompressorNode {
1185   nothrow:
1186   spasm.bindings.audio.AudioNode _parent;
1187   alias _parent this;
1188   this(Handle h) {
1189     _parent = .AudioNode(h);
1190   }
1191   auto threshold()() {
1192     return AudioParam(DynamicsCompressorNode_threshold_Get(this._parent));
1193   }
1194   auto knee()() {
1195     return AudioParam(DynamicsCompressorNode_knee_Get(this._parent));
1196   }
1197   auto ratio()() {
1198     return AudioParam(DynamicsCompressorNode_ratio_Get(this._parent));
1199   }
1200   auto reduction()() {
1201     return DynamicsCompressorNode_reduction_Get(this._parent);
1202   }
1203   auto attack()() {
1204     return AudioParam(DynamicsCompressorNode_attack_Get(this._parent));
1205   }
1206   auto release()() {
1207     return AudioParam(DynamicsCompressorNode_release_Get(this._parent));
1208   }
1209 }
1210 struct DynamicsCompressorOptions {
1211   nothrow:
1212   spasm.bindings.audio.AudioNodeOptions _parent;
1213   alias _parent this;
1214   this(Handle h) {
1215     _parent = .AudioNodeOptions(h);
1216   }
1217   static auto create() {
1218     return DynamicsCompressorOptions(spasm_add__object());
1219   }
1220   void attack()(float attack) {
1221     DynamicsCompressorOptions_attack_Set(this._parent, attack);
1222   }
1223   auto attack()() {
1224     return DynamicsCompressorOptions_attack_Get(this._parent);
1225   }
1226   void knee()(float knee) {
1227     DynamicsCompressorOptions_knee_Set(this._parent, knee);
1228   }
1229   auto knee()() {
1230     return DynamicsCompressorOptions_knee_Get(this._parent);
1231   }
1232   void ratio()(float ratio) {
1233     DynamicsCompressorOptions_ratio_Set(this._parent, ratio);
1234   }
1235   auto ratio()() {
1236     return DynamicsCompressorOptions_ratio_Get(this._parent);
1237   }
1238   void release()(float release) {
1239     DynamicsCompressorOptions_release_Set(this._parent, release);
1240   }
1241   auto release()() {
1242     return DynamicsCompressorOptions_release_Get(this._parent);
1243   }
1244   void threshold()(float threshold) {
1245     DynamicsCompressorOptions_threshold_Set(this._parent, threshold);
1246   }
1247   auto threshold()() {
1248     return DynamicsCompressorOptions_threshold_Get(this._parent);
1249   }
1250 }
1251 struct GainNode {
1252   nothrow:
1253   spasm.bindings.audio.AudioNode _parent;
1254   alias _parent this;
1255   this(Handle h) {
1256     _parent = .AudioNode(h);
1257   }
1258   auto gain()() {
1259     return AudioParam(GainNode_gain_Get(this._parent));
1260   }
1261 }
1262 struct GainOptions {
1263   nothrow:
1264   spasm.bindings.audio.AudioNodeOptions _parent;
1265   alias _parent this;
1266   this(Handle h) {
1267     _parent = .AudioNodeOptions(h);
1268   }
1269   static auto create() {
1270     return GainOptions(spasm_add__object());
1271   }
1272   void gain()(float gain) {
1273     GainOptions_gain_Set(this._parent, gain);
1274   }
1275   auto gain()() {
1276     return GainOptions_gain_Get(this._parent);
1277   }
1278 }
1279 struct IIRFilterNode {
1280   nothrow:
1281   spasm.bindings.audio.AudioNode _parent;
1282   alias _parent this;
1283   this(Handle h) {
1284     _parent = .AudioNode(h);
1285   }
1286   void getFrequencyResponse()(scope ref Float32Array frequencyHz, scope ref Float32Array magResponse, scope ref Float32Array phaseResponse) {
1287     IIRFilterNode_getFrequencyResponse(this._parent, frequencyHz.handle, magResponse.handle, phaseResponse.handle);
1288   }
1289 }
1290 struct IIRFilterOptions {
1291   nothrow:
1292   spasm.bindings.audio.AudioNodeOptions _parent;
1293   alias _parent this;
1294   this(Handle h) {
1295     _parent = .AudioNodeOptions(h);
1296   }
1297   static auto create() {
1298     return IIRFilterOptions(spasm_add__object());
1299   }
1300   void feedforward()(scope ref Sequence!(double) feedforward) {
1301     IIRFilterOptions_feedforward_Set(this._parent, feedforward.handle);
1302   }
1303   auto feedforward()() {
1304     return Sequence!(double)(IIRFilterOptions_feedforward_Get(this._parent));
1305   }
1306   void feedback()(scope ref Sequence!(double) feedback) {
1307     IIRFilterOptions_feedback_Set(this._parent, feedback.handle);
1308   }
1309   auto feedback()() {
1310     return Sequence!(double)(IIRFilterOptions_feedback_Get(this._parent));
1311   }
1312 }
1313 struct MediaElementAudioSourceNode {
1314   nothrow:
1315   spasm.bindings.audio.AudioNode _parent;
1316   alias _parent this;
1317   this(Handle h) {
1318     _parent = .AudioNode(h);
1319   }
1320   auto mediaElement()() {
1321     return HTMLMediaElement(MediaElementAudioSourceNode_mediaElement_Get(this._parent));
1322   }
1323 }
1324 struct MediaElementAudioSourceOptions {
1325   nothrow:
1326   JsHandle handle;
1327   alias handle this;
1328   this(Handle h) {
1329     this.handle = JsHandle(h);
1330   }
1331   static auto create() {
1332     return MediaElementAudioSourceOptions(spasm_add__object());
1333   }
1334   void mediaElement()(scope ref HTMLMediaElement mediaElement) {
1335     MediaElementAudioSourceOptions_mediaElement_Set(this.handle, mediaElement.handle);
1336   }
1337   auto mediaElement()() {
1338     return HTMLMediaElement(MediaElementAudioSourceOptions_mediaElement_Get(this.handle));
1339   }
1340 }
1341 struct MediaStreamAudioDestinationNode {
1342   nothrow:
1343   spasm.bindings.audio.AudioNode _parent;
1344   alias _parent this;
1345   this(Handle h) {
1346     _parent = .AudioNode(h);
1347   }
1348   auto stream()() {
1349     return MediaStream(MediaStreamAudioDestinationNode_stream_Get(this._parent));
1350   }
1351 }
1352 struct MediaStreamAudioSourceNode {
1353   nothrow:
1354   spasm.bindings.audio.AudioNode _parent;
1355   alias _parent this;
1356   this(Handle h) {
1357     _parent = .AudioNode(h);
1358   }
1359   auto mediaStream()() {
1360     return MediaStream(MediaStreamAudioSourceNode_mediaStream_Get(this._parent));
1361   }
1362 }
1363 struct MediaStreamAudioSourceOptions {
1364   nothrow:
1365   JsHandle handle;
1366   alias handle this;
1367   this(Handle h) {
1368     this.handle = JsHandle(h);
1369   }
1370   static auto create() {
1371     return MediaStreamAudioSourceOptions(spasm_add__object());
1372   }
1373   void mediaStream()(scope ref MediaStream mediaStream) {
1374     MediaStreamAudioSourceOptions_mediaStream_Set(this.handle, mediaStream.handle);
1375   }
1376   auto mediaStream()() {
1377     return MediaStream(MediaStreamAudioSourceOptions_mediaStream_Get(this.handle));
1378   }
1379 }
1380 struct MediaStreamTrackAudioSourceNode {
1381   nothrow:
1382   spasm.bindings.audio.AudioNode _parent;
1383   alias _parent this;
1384   this(Handle h) {
1385     _parent = .AudioNode(h);
1386   }
1387 }
1388 struct MediaStreamTrackAudioSourceOptions {
1389   nothrow:
1390   JsHandle handle;
1391   alias handle this;
1392   this(Handle h) {
1393     this.handle = JsHandle(h);
1394   }
1395   static auto create() {
1396     return MediaStreamTrackAudioSourceOptions(spasm_add__object());
1397   }
1398   void mediaStreamTrack()(scope ref MediaStreamTrack mediaStreamTrack) {
1399     MediaStreamTrackAudioSourceOptions_mediaStreamTrack_Set(this.handle, mediaStreamTrack.handle);
1400   }
1401   auto mediaStreamTrack()() {
1402     return MediaStreamTrack(MediaStreamTrackAudioSourceOptions_mediaStreamTrack_Get(this.handle));
1403   }
1404 }
1405 struct OfflineAudioCompletionEvent {
1406   nothrow:
1407   spasm.bindings.dom.Event _parent;
1408   alias _parent this;
1409   this(Handle h) {
1410     _parent = .Event(h);
1411   }
1412   auto renderedBuffer()() {
1413     return AudioBuffer(OfflineAudioCompletionEvent_renderedBuffer_Get(this._parent));
1414   }
1415 }
1416 struct OfflineAudioCompletionEventInit {
1417   nothrow:
1418   spasm.bindings.dom.EventInit _parent;
1419   alias _parent this;
1420   this(Handle h) {
1421     _parent = .EventInit(h);
1422   }
1423   static auto create() {
1424     return OfflineAudioCompletionEventInit(spasm_add__object());
1425   }
1426   void renderedBuffer()(scope ref AudioBuffer renderedBuffer) {
1427     OfflineAudioCompletionEventInit_renderedBuffer_Set(this._parent, renderedBuffer.handle);
1428   }
1429   auto renderedBuffer()() {
1430     return AudioBuffer(OfflineAudioCompletionEventInit_renderedBuffer_Get(this._parent));
1431   }
1432 }
1433 struct OfflineAudioContext {
1434   nothrow:
1435   spasm.bindings.audio.BaseAudioContext _parent;
1436   alias _parent this;
1437   this(Handle h) {
1438     _parent = .BaseAudioContext(h);
1439   }
1440   auto startRendering()() {
1441     return Promise!(AudioBuffer)(OfflineAudioContext_startRendering(this._parent));
1442   }
1443   auto resume()() {
1444     return Promise!(void)(OfflineAudioContext_resume(this._parent));
1445   }
1446   auto suspend()(double suspendTime) {
1447     return Promise!(void)(OfflineAudioContext_suspend(this._parent, suspendTime));
1448   }
1449   auto length()() {
1450     return OfflineAudioContext_length_Get(this._parent);
1451   }
1452   void oncomplete()(EventHandler oncomplete) {
1453     OfflineAudioContext_oncomplete_Set(this._parent, oncomplete);
1454   }
1455   auto oncomplete()() {
1456     return OfflineAudioContext_oncomplete_Get(this._parent);
1457   }
1458 }
1459 struct OfflineAudioContextOptions {
1460   nothrow:
1461   JsHandle handle;
1462   alias handle this;
1463   this(Handle h) {
1464     this.handle = JsHandle(h);
1465   }
1466   static auto create() {
1467     return OfflineAudioContextOptions(spasm_add__object());
1468   }
1469   void numberOfChannels()(uint numberOfChannels) {
1470     OfflineAudioContextOptions_numberOfChannels_Set(this.handle, numberOfChannels);
1471   }
1472   auto numberOfChannels()() {
1473     return OfflineAudioContextOptions_numberOfChannels_Get(this.handle);
1474   }
1475   void length()(uint length) {
1476     OfflineAudioContextOptions_length_Set(this.handle, length);
1477   }
1478   auto length()() {
1479     return OfflineAudioContextOptions_length_Get(this.handle);
1480   }
1481   void sampleRate()(float sampleRate) {
1482     OfflineAudioContextOptions_sampleRate_Set(this.handle, sampleRate);
1483   }
1484   auto sampleRate()() {
1485     return OfflineAudioContextOptions_sampleRate_Get(this.handle);
1486   }
1487 }
1488 struct OscillatorNode {
1489   nothrow:
1490   spasm.bindings.audio.AudioScheduledSourceNode _parent;
1491   alias _parent this;
1492   this(Handle h) {
1493     _parent = .AudioScheduledSourceNode(h);
1494   }
1495   void type()(OscillatorType type) {
1496     OscillatorNode_type_Set(this._parent, type);
1497   }
1498   auto type()() {
1499     return OscillatorNode_type_Get(this._parent);
1500   }
1501   auto frequency()() {
1502     return AudioParam(OscillatorNode_frequency_Get(this._parent));
1503   }
1504   auto detune()() {
1505     return AudioParam(OscillatorNode_detune_Get(this._parent));
1506   }
1507   void setPeriodicWave()(scope ref PeriodicWave periodicWave) {
1508     OscillatorNode_setPeriodicWave(this._parent, periodicWave.handle);
1509   }
1510 }
1511 struct OscillatorOptions {
1512   nothrow:
1513   spasm.bindings.audio.AudioNodeOptions _parent;
1514   alias _parent this;
1515   this(Handle h) {
1516     _parent = .AudioNodeOptions(h);
1517   }
1518   static auto create() {
1519     return OscillatorOptions(spasm_add__object());
1520   }
1521   void type()(OscillatorType type) {
1522     OscillatorOptions_type_Set(this._parent, type);
1523   }
1524   auto type()() {
1525     return OscillatorOptions_type_Get(this._parent);
1526   }
1527   void frequency()(float frequency) {
1528     OscillatorOptions_frequency_Set(this._parent, frequency);
1529   }
1530   auto frequency()() {
1531     return OscillatorOptions_frequency_Get(this._parent);
1532   }
1533   void detune()(float detune) {
1534     OscillatorOptions_detune_Set(this._parent, detune);
1535   }
1536   auto detune()() {
1537     return OscillatorOptions_detune_Get(this._parent);
1538   }
1539   void periodicWave()(scope ref PeriodicWave periodicWave) {
1540     OscillatorOptions_periodicWave_Set(this._parent, periodicWave.handle);
1541   }
1542   auto periodicWave()() {
1543     return PeriodicWave(OscillatorOptions_periodicWave_Get(this._parent));
1544   }
1545 }
1546 enum OscillatorType {
1547   sine,
1548   square,
1549   sawtooth,
1550   triangle,
1551   custom
1552 }
1553 enum OverSampleType {
1554   none,
1555   _2x,
1556   _4x
1557 }
1558 struct PannerNode {
1559   nothrow:
1560   spasm.bindings.audio.AudioNode _parent;
1561   alias _parent this;
1562   this(Handle h) {
1563     _parent = .AudioNode(h);
1564   }
1565   void panningModel()(PanningModelType panningModel) {
1566     PannerNode_panningModel_Set(this._parent, panningModel);
1567   }
1568   auto panningModel()() {
1569     return PannerNode_panningModel_Get(this._parent);
1570   }
1571   auto positionX()() {
1572     return AudioParam(PannerNode_positionX_Get(this._parent));
1573   }
1574   auto positionY()() {
1575     return AudioParam(PannerNode_positionY_Get(this._parent));
1576   }
1577   auto positionZ()() {
1578     return AudioParam(PannerNode_positionZ_Get(this._parent));
1579   }
1580   auto orientationX()() {
1581     return AudioParam(PannerNode_orientationX_Get(this._parent));
1582   }
1583   auto orientationY()() {
1584     return AudioParam(PannerNode_orientationY_Get(this._parent));
1585   }
1586   auto orientationZ()() {
1587     return AudioParam(PannerNode_orientationZ_Get(this._parent));
1588   }
1589   void distanceModel()(DistanceModelType distanceModel) {
1590     PannerNode_distanceModel_Set(this._parent, distanceModel);
1591   }
1592   auto distanceModel()() {
1593     return PannerNode_distanceModel_Get(this._parent);
1594   }
1595   void refDistance()(double refDistance) {
1596     PannerNode_refDistance_Set(this._parent, refDistance);
1597   }
1598   auto refDistance()() {
1599     return PannerNode_refDistance_Get(this._parent);
1600   }
1601   void maxDistance()(double maxDistance) {
1602     PannerNode_maxDistance_Set(this._parent, maxDistance);
1603   }
1604   auto maxDistance()() {
1605     return PannerNode_maxDistance_Get(this._parent);
1606   }
1607   void rolloffFactor()(double rolloffFactor) {
1608     PannerNode_rolloffFactor_Set(this._parent, rolloffFactor);
1609   }
1610   auto rolloffFactor()() {
1611     return PannerNode_rolloffFactor_Get(this._parent);
1612   }
1613   void coneInnerAngle()(double coneInnerAngle) {
1614     PannerNode_coneInnerAngle_Set(this._parent, coneInnerAngle);
1615   }
1616   auto coneInnerAngle()() {
1617     return PannerNode_coneInnerAngle_Get(this._parent);
1618   }
1619   void coneOuterAngle()(double coneOuterAngle) {
1620     PannerNode_coneOuterAngle_Set(this._parent, coneOuterAngle);
1621   }
1622   auto coneOuterAngle()() {
1623     return PannerNode_coneOuterAngle_Get(this._parent);
1624   }
1625   void coneOuterGain()(double coneOuterGain) {
1626     PannerNode_coneOuterGain_Set(this._parent, coneOuterGain);
1627   }
1628   auto coneOuterGain()() {
1629     return PannerNode_coneOuterGain_Get(this._parent);
1630   }
1631   void setPosition()(float x, float y, float z) {
1632     PannerNode_setPosition(this._parent, x, y, z);
1633   }
1634   void setOrientation()(float x, float y, float z) {
1635     PannerNode_setOrientation(this._parent, x, y, z);
1636   }
1637 }
1638 struct PannerOptions {
1639   nothrow:
1640   spasm.bindings.audio.AudioNodeOptions _parent;
1641   alias _parent this;
1642   this(Handle h) {
1643     _parent = .AudioNodeOptions(h);
1644   }
1645   static auto create() {
1646     return PannerOptions(spasm_add__object());
1647   }
1648   void panningModel()(PanningModelType panningModel) {
1649     PannerOptions_panningModel_Set(this._parent, panningModel);
1650   }
1651   auto panningModel()() {
1652     return PannerOptions_panningModel_Get(this._parent);
1653   }
1654   void distanceModel()(DistanceModelType distanceModel) {
1655     PannerOptions_distanceModel_Set(this._parent, distanceModel);
1656   }
1657   auto distanceModel()() {
1658     return PannerOptions_distanceModel_Get(this._parent);
1659   }
1660   void positionX()(float positionX) {
1661     PannerOptions_positionX_Set(this._parent, positionX);
1662   }
1663   auto positionX()() {
1664     return PannerOptions_positionX_Get(this._parent);
1665   }
1666   void positionY()(float positionY) {
1667     PannerOptions_positionY_Set(this._parent, positionY);
1668   }
1669   auto positionY()() {
1670     return PannerOptions_positionY_Get(this._parent);
1671   }
1672   void positionZ()(float positionZ) {
1673     PannerOptions_positionZ_Set(this._parent, positionZ);
1674   }
1675   auto positionZ()() {
1676     return PannerOptions_positionZ_Get(this._parent);
1677   }
1678   void orientationX()(float orientationX) {
1679     PannerOptions_orientationX_Set(this._parent, orientationX);
1680   }
1681   auto orientationX()() {
1682     return PannerOptions_orientationX_Get(this._parent);
1683   }
1684   void orientationY()(float orientationY) {
1685     PannerOptions_orientationY_Set(this._parent, orientationY);
1686   }
1687   auto orientationY()() {
1688     return PannerOptions_orientationY_Get(this._parent);
1689   }
1690   void orientationZ()(float orientationZ) {
1691     PannerOptions_orientationZ_Set(this._parent, orientationZ);
1692   }
1693   auto orientationZ()() {
1694     return PannerOptions_orientationZ_Get(this._parent);
1695   }
1696   void refDistance()(double refDistance) {
1697     PannerOptions_refDistance_Set(this._parent, refDistance);
1698   }
1699   auto refDistance()() {
1700     return PannerOptions_refDistance_Get(this._parent);
1701   }
1702   void maxDistance()(double maxDistance) {
1703     PannerOptions_maxDistance_Set(this._parent, maxDistance);
1704   }
1705   auto maxDistance()() {
1706     return PannerOptions_maxDistance_Get(this._parent);
1707   }
1708   void rolloffFactor()(double rolloffFactor) {
1709     PannerOptions_rolloffFactor_Set(this._parent, rolloffFactor);
1710   }
1711   auto rolloffFactor()() {
1712     return PannerOptions_rolloffFactor_Get(this._parent);
1713   }
1714   void coneInnerAngle()(double coneInnerAngle) {
1715     PannerOptions_coneInnerAngle_Set(this._parent, coneInnerAngle);
1716   }
1717   auto coneInnerAngle()() {
1718     return PannerOptions_coneInnerAngle_Get(this._parent);
1719   }
1720   void coneOuterAngle()(double coneOuterAngle) {
1721     PannerOptions_coneOuterAngle_Set(this._parent, coneOuterAngle);
1722   }
1723   auto coneOuterAngle()() {
1724     return PannerOptions_coneOuterAngle_Get(this._parent);
1725   }
1726   void coneOuterGain()(double coneOuterGain) {
1727     PannerOptions_coneOuterGain_Set(this._parent, coneOuterGain);
1728   }
1729   auto coneOuterGain()() {
1730     return PannerOptions_coneOuterGain_Get(this._parent);
1731   }
1732 }
1733 enum PanningModelType {
1734   equalpower,
1735   HRTF
1736 }
1737 struct PeriodicWave {
1738   nothrow:
1739   JsHandle handle;
1740   alias handle this;
1741   this(Handle h) {
1742     this.handle = JsHandle(h);
1743   }
1744 }
1745 struct PeriodicWaveConstraints {
1746   nothrow:
1747   JsHandle handle;
1748   alias handle this;
1749   this(Handle h) {
1750     this.handle = JsHandle(h);
1751   }
1752   static auto create() {
1753     return PeriodicWaveConstraints(spasm_add__object());
1754   }
1755   void disableNormalization()(bool disableNormalization) {
1756     PeriodicWaveConstraints_disableNormalization_Set(this.handle, disableNormalization);
1757   }
1758   auto disableNormalization()() {
1759     return PeriodicWaveConstraints_disableNormalization_Get(this.handle);
1760   }
1761 }
1762 struct PeriodicWaveOptions {
1763   nothrow:
1764   spasm.bindings.audio.PeriodicWaveConstraints _parent;
1765   alias _parent this;
1766   this(Handle h) {
1767     _parent = .PeriodicWaveConstraints(h);
1768   }
1769   static auto create() {
1770     return PeriodicWaveOptions(spasm_add__object());
1771   }
1772   void real_()(scope ref Sequence!(float) real_) {
1773     PeriodicWaveOptions_real_Set(this._parent, real_.handle);
1774   }
1775   auto real_()() {
1776     return Sequence!(float)(PeriodicWaveOptions_real_Get(this._parent));
1777   }
1778   void imag()(scope ref Sequence!(float) imag) {
1779     PeriodicWaveOptions_imag_Set(this._parent, imag.handle);
1780   }
1781   auto imag()() {
1782     return Sequence!(float)(PeriodicWaveOptions_imag_Get(this._parent));
1783   }
1784 }
1785 struct ScriptProcessorNode {
1786   nothrow:
1787   spasm.bindings.audio.AudioNode _parent;
1788   alias _parent this;
1789   this(Handle h) {
1790     _parent = .AudioNode(h);
1791   }
1792   void onaudioprocess()(EventHandler onaudioprocess) {
1793     ScriptProcessorNode_onaudioprocess_Set(this._parent, onaudioprocess);
1794   }
1795   auto onaudioprocess()() {
1796     return ScriptProcessorNode_onaudioprocess_Get(this._parent);
1797   }
1798   auto bufferSize()() {
1799     return ScriptProcessorNode_bufferSize_Get(this._parent);
1800   }
1801 }
1802 struct StereoPannerNode {
1803   nothrow:
1804   spasm.bindings.audio.AudioNode _parent;
1805   alias _parent this;
1806   this(Handle h) {
1807     _parent = .AudioNode(h);
1808   }
1809   auto pan()() {
1810     return AudioParam(StereoPannerNode_pan_Get(this._parent));
1811   }
1812 }
1813 struct StereoPannerOptions {
1814   nothrow:
1815   spasm.bindings.audio.AudioNodeOptions _parent;
1816   alias _parent this;
1817   this(Handle h) {
1818     _parent = .AudioNodeOptions(h);
1819   }
1820   static auto create() {
1821     return StereoPannerOptions(spasm_add__object());
1822   }
1823   void pan()(float pan) {
1824     StereoPannerOptions_pan_Set(this._parent, pan);
1825   }
1826   auto pan()() {
1827     return StereoPannerOptions_pan_Get(this._parent);
1828   }
1829 }
1830 struct WaveShaperNode {
1831   nothrow:
1832   spasm.bindings.audio.AudioNode _parent;
1833   alias _parent this;
1834   this(Handle h) {
1835     _parent = .AudioNode(h);
1836   }
1837   void curve(T0)(scope auto ref Optional!(T0) curve) if (isTOrPointer!(T0, Float32Array)) {
1838     WaveShaperNode_curve_Set(this._parent, !curve.empty, curve.front.handle);
1839   }
1840   auto curve()() {
1841     return WaveShaperNode_curve_Get(this._parent);
1842   }
1843   void oversample()(OverSampleType oversample) {
1844     WaveShaperNode_oversample_Set(this._parent, oversample);
1845   }
1846   auto oversample()() {
1847     return WaveShaperNode_oversample_Get(this._parent);
1848   }
1849 }
1850 struct WaveShaperOptions {
1851   nothrow:
1852   spasm.bindings.audio.AudioNodeOptions _parent;
1853   alias _parent this;
1854   this(Handle h) {
1855     _parent = .AudioNodeOptions(h);
1856   }
1857   static auto create() {
1858     return WaveShaperOptions(spasm_add__object());
1859   }
1860   void curve()(scope ref Sequence!(float) curve) {
1861     WaveShaperOptions_curve_Set(this._parent, curve.handle);
1862   }
1863   auto curve()() {
1864     return Sequence!(float)(WaveShaperOptions_curve_Get(this._parent));
1865   }
1866   void oversample()(OverSampleType oversample) {
1867     WaveShaperOptions_oversample_Set(this._parent, oversample);
1868   }
1869   auto oversample()() {
1870     return WaveShaperOptions_oversample_Get(this._parent);
1871   }
1872 }
1873 
1874 
1875 extern (C) void AnalyserNode_getFloatFrequencyData(Handle, Handle);
1876 extern (C) void AnalyserNode_getByteFrequencyData(Handle, Handle);
1877 extern (C) void AnalyserNode_getFloatTimeDomainData(Handle, Handle);
1878 extern (C) void AnalyserNode_getByteTimeDomainData(Handle, Handle);
1879 extern (C) void AnalyserNode_fftSize_Set(Handle, uint);
1880 extern (C) uint AnalyserNode_fftSize_Get(Handle);
1881 extern (C) uint AnalyserNode_frequencyBinCount_Get(Handle);
1882 extern (C) void AnalyserNode_minDecibels_Set(Handle, double);
1883 extern (C) double AnalyserNode_minDecibels_Get(Handle);
1884 extern (C) void AnalyserNode_maxDecibels_Set(Handle, double);
1885 extern (C) double AnalyserNode_maxDecibels_Get(Handle);
1886 extern (C) void AnalyserNode_smoothingTimeConstant_Set(Handle, double);
1887 extern (C) double AnalyserNode_smoothingTimeConstant_Get(Handle);
1888 extern (C) void AnalyserOptions_fftSize_Set(Handle, uint);
1889 extern (C) uint AnalyserOptions_fftSize_Get(Handle);
1890 extern (C) void AnalyserOptions_maxDecibels_Set(Handle, double);
1891 extern (C) double AnalyserOptions_maxDecibels_Get(Handle);
1892 extern (C) void AnalyserOptions_minDecibels_Set(Handle, double);
1893 extern (C) double AnalyserOptions_minDecibels_Get(Handle);
1894 extern (C) void AnalyserOptions_smoothingTimeConstant_Set(Handle, double);
1895 extern (C) double AnalyserOptions_smoothingTimeConstant_Get(Handle);
1896 extern (C) float AudioBuffer_sampleRate_Get(Handle);
1897 extern (C) uint AudioBuffer_length_Get(Handle);
1898 extern (C) double AudioBuffer_duration_Get(Handle);
1899 extern (C) uint AudioBuffer_numberOfChannels_Get(Handle);
1900 extern (C) Handle AudioBuffer_getChannelData(Handle, uint);
1901 extern (C) void AudioBuffer_copyFromChannel(Handle, Handle, uint, uint);
1902 extern (C) void AudioBuffer_copyFromChannel_0(Handle, Handle, uint);
1903 extern (C) void AudioBuffer_copyToChannel(Handle, Handle, uint, uint);
1904 extern (C) void AudioBuffer_copyToChannel_0(Handle, Handle, uint);
1905 extern (C) void AudioBufferOptions_numberOfChannels_Set(Handle, uint);
1906 extern (C) uint AudioBufferOptions_numberOfChannels_Get(Handle);
1907 extern (C) void AudioBufferOptions_length_Set(Handle, uint);
1908 extern (C) uint AudioBufferOptions_length_Get(Handle);
1909 extern (C) void AudioBufferOptions_sampleRate_Set(Handle, float);
1910 extern (C) float AudioBufferOptions_sampleRate_Get(Handle);
1911 extern (C) void AudioBufferSourceNode_buffer_Set(Handle, bool, Handle);
1912 extern (C) Optional!(AudioBuffer) AudioBufferSourceNode_buffer_Get(Handle);
1913 extern (C) Handle AudioBufferSourceNode_playbackRate_Get(Handle);
1914 extern (C) Handle AudioBufferSourceNode_detune_Get(Handle);
1915 extern (C) void AudioBufferSourceNode_loop_Set(Handle, bool);
1916 extern (C) bool AudioBufferSourceNode_loop_Get(Handle);
1917 extern (C) void AudioBufferSourceNode_loopStart_Set(Handle, double);
1918 extern (C) double AudioBufferSourceNode_loopStart_Get(Handle);
1919 extern (C) void AudioBufferSourceNode_loopEnd_Set(Handle, double);
1920 extern (C) double AudioBufferSourceNode_loopEnd_Get(Handle);
1921 extern (C) void AudioBufferSourceNode_start(Handle, double, double, double);
1922 extern (C) void AudioBufferSourceNode_start_0(Handle, double, double);
1923 extern (C) void AudioBufferSourceNode_start_1(Handle, double);
1924 extern (C) void AudioBufferSourceNode_start_2(Handle);
1925 extern (C) void AudioBufferSourceOptions_buffer_Set(Handle, bool, Handle);
1926 extern (C) Optional!(AudioBuffer) AudioBufferSourceOptions_buffer_Get(Handle);
1927 extern (C) void AudioBufferSourceOptions_detune_Set(Handle, float);
1928 extern (C) float AudioBufferSourceOptions_detune_Get(Handle);
1929 extern (C) void AudioBufferSourceOptions_loop_Set(Handle, bool);
1930 extern (C) bool AudioBufferSourceOptions_loop_Get(Handle);
1931 extern (C) void AudioBufferSourceOptions_loopEnd_Set(Handle, double);
1932 extern (C) double AudioBufferSourceOptions_loopEnd_Get(Handle);
1933 extern (C) void AudioBufferSourceOptions_loopStart_Set(Handle, double);
1934 extern (C) double AudioBufferSourceOptions_loopStart_Get(Handle);
1935 extern (C) void AudioBufferSourceOptions_playbackRate_Set(Handle, float);
1936 extern (C) float AudioBufferSourceOptions_playbackRate_Get(Handle);
1937 extern (C) double AudioContext_baseLatency_Get(Handle);
1938 extern (C) double AudioContext_outputLatency_Get(Handle);
1939 extern (C) Handle AudioContext_getOutputTimestamp(Handle);
1940 extern (C) Handle AudioContext_resume(Handle);
1941 extern (C) Handle AudioContext_suspend(Handle);
1942 extern (C) Handle AudioContext_close(Handle);
1943 extern (C) Handle AudioContext_createMediaElementSource(Handle, Handle);
1944 extern (C) Handle AudioContext_createMediaStreamSource(Handle, Handle);
1945 extern (C) Handle AudioContext_createMediaStreamTrackSource(Handle, Handle);
1946 extern (C) Handle AudioContext_createMediaStreamDestination(Handle);
1947 extern (C) void AudioContextOptions_latencyHint_Set(Handle, scope ref SumType!(AudioContextLatencyCategory, double));
1948 extern (C) SumType!(AudioContextLatencyCategory, double) AudioContextOptions_latencyHint_Get(Handle);
1949 extern (C) void AudioContextOptions_sampleRate_Set(Handle, float);
1950 extern (C) float AudioContextOptions_sampleRate_Get(Handle);
1951 extern (C) uint AudioDestinationNode_maxChannelCount_Get(Handle);
1952 extern (C) Handle AudioListener_positionX_Get(Handle);
1953 extern (C) Handle AudioListener_positionY_Get(Handle);
1954 extern (C) Handle AudioListener_positionZ_Get(Handle);
1955 extern (C) Handle AudioListener_forwardX_Get(Handle);
1956 extern (C) Handle AudioListener_forwardY_Get(Handle);
1957 extern (C) Handle AudioListener_forwardZ_Get(Handle);
1958 extern (C) Handle AudioListener_upX_Get(Handle);
1959 extern (C) Handle AudioListener_upY_Get(Handle);
1960 extern (C) Handle AudioListener_upZ_Get(Handle);
1961 extern (C) void AudioListener_setPosition(Handle, float, float, float);
1962 extern (C) void AudioListener_setOrientation(Handle, float, float, float, float, float, float);
1963 extern (C) Handle AudioNode_connect__Handle_uint_uint(Handle, Handle, uint, uint);
1964 extern (C) Handle AudioNode_connect_0_Handle_uint(Handle, Handle, uint);
1965 extern (C) Handle AudioNode_connect_1(Handle, Handle);
1966 extern (C) void AudioNode_connect__Handle_uint(Handle, Handle, uint);
1967 extern (C) void AudioNode_connect_0_Handle(Handle, Handle);
1968 extern (C) void AudioNode_disconnect__(Handle);
1969 extern (C) void AudioNode_disconnect__uint(Handle, uint);
1970 extern (C) void AudioNode_disconnect__Handle(Handle, Handle);
1971 extern (C) void AudioNode_disconnect__Handle_uint(Handle, Handle, uint);
1972 extern (C) void AudioNode_disconnect__Handle_uint_uint(Handle, Handle, uint, uint);
1973 extern (C) Handle AudioNode_context_Get(Handle);
1974 extern (C) uint AudioNode_numberOfInputs_Get(Handle);
1975 extern (C) uint AudioNode_numberOfOutputs_Get(Handle);
1976 extern (C) void AudioNode_channelCount_Set(Handle, uint);
1977 extern (C) uint AudioNode_channelCount_Get(Handle);
1978 extern (C) void AudioNode_channelCountMode_Set(Handle, ChannelCountMode);
1979 extern (C) ChannelCountMode AudioNode_channelCountMode_Get(Handle);
1980 extern (C) void AudioNode_channelInterpretation_Set(Handle, ChannelInterpretation);
1981 extern (C) ChannelInterpretation AudioNode_channelInterpretation_Get(Handle);
1982 extern (C) void AudioNodeOptions_channelCount_Set(Handle, uint);
1983 extern (C) uint AudioNodeOptions_channelCount_Get(Handle);
1984 extern (C) void AudioNodeOptions_channelCountMode_Set(Handle, ChannelCountMode);
1985 extern (C) ChannelCountMode AudioNodeOptions_channelCountMode_Get(Handle);
1986 extern (C) void AudioNodeOptions_channelInterpretation_Set(Handle, ChannelInterpretation);
1987 extern (C) ChannelInterpretation AudioNodeOptions_channelInterpretation_Get(Handle);
1988 extern (C) void AudioParam_value_Set(Handle, float);
1989 extern (C) float AudioParam_value_Get(Handle);
1990 extern (C) void AudioParam_automationRate_Set(Handle, AutomationRate);
1991 extern (C) AutomationRate AudioParam_automationRate_Get(Handle);
1992 extern (C) float AudioParam_defaultValue_Get(Handle);
1993 extern (C) float AudioParam_minValue_Get(Handle);
1994 extern (C) float AudioParam_maxValue_Get(Handle);
1995 extern (C) Handle AudioParam_setValueAtTime(Handle, float, double);
1996 extern (C) Handle AudioParam_linearRampToValueAtTime(Handle, float, double);
1997 extern (C) Handle AudioParam_exponentialRampToValueAtTime(Handle, float, double);
1998 extern (C) Handle AudioParam_setTargetAtTime(Handle, float, double, float);
1999 extern (C) Handle AudioParam_setValueCurveAtTime(Handle, Handle, double, double);
2000 extern (C) Handle AudioParam_cancelScheduledValues(Handle, double);
2001 extern (C) Handle AudioParam_cancelAndHoldAtTime(Handle, double);
2002 extern (C) void AudioParamDescriptor_name_Set(Handle, string);
2003 extern (C) string AudioParamDescriptor_name_Get(Handle);
2004 extern (C) void AudioParamDescriptor_defaultValue_Set(Handle, float);
2005 extern (C) float AudioParamDescriptor_defaultValue_Get(Handle);
2006 extern (C) void AudioParamDescriptor_minValue_Set(Handle, float);
2007 extern (C) float AudioParamDescriptor_minValue_Get(Handle);
2008 extern (C) void AudioParamDescriptor_maxValue_Set(Handle, float);
2009 extern (C) float AudioParamDescriptor_maxValue_Get(Handle);
2010 extern (C) void AudioParamDescriptor_automationRate_Set(Handle, AutomationRate);
2011 extern (C) AutomationRate AudioParamDescriptor_automationRate_Get(Handle);
2012 extern (C) uint Maplike_string_Handle_size(Handle);
2013 extern (C) void Maplike_string_Handle_clear(Handle);
2014 extern (C) void Maplike_string_Handle_delete(Handle, string key);
2015 extern (C) Handle Maplike_string_Handle_entries(Handle);
2016 extern (C) void Maplike_string_Handle_forEach(Handle, void delegate(string, Handle, Handle));
2017 extern (C) AudioParam Maplike_string_Handle_get(Handle, string);
2018 extern (C) bool Maplike_string_Handle_has(Handle, string);
2019 extern (C) Handle Maplike_string_Handle_keys(Handle);
2020 extern (C) void Maplike_string_Handle_set(Handle, string key, Handle value);
2021 extern (C) Handle Maplike_string_Handle_values(Handle);
2022 extern (C) double AudioProcessingEvent_playbackTime_Get(Handle);
2023 extern (C) Handle AudioProcessingEvent_inputBuffer_Get(Handle);
2024 extern (C) Handle AudioProcessingEvent_outputBuffer_Get(Handle);
2025 extern (C) void AudioProcessingEventInit_playbackTime_Set(Handle, double);
2026 extern (C) double AudioProcessingEventInit_playbackTime_Get(Handle);
2027 extern (C) void AudioProcessingEventInit_inputBuffer_Set(Handle, Handle);
2028 extern (C) Handle AudioProcessingEventInit_inputBuffer_Get(Handle);
2029 extern (C) void AudioProcessingEventInit_outputBuffer_Set(Handle, Handle);
2030 extern (C) Handle AudioProcessingEventInit_outputBuffer_Get(Handle);
2031 extern (C) void AudioScheduledSourceNode_onended_Set(Handle, EventHandler);
2032 extern (C) EventHandler AudioScheduledSourceNode_onended_Get(Handle);
2033 extern (C) void AudioScheduledSourceNode_start(Handle, double);
2034 extern (C) void AudioScheduledSourceNode_start_0(Handle);
2035 extern (C) void AudioScheduledSourceNode_stop(Handle, double);
2036 extern (C) void AudioScheduledSourceNode_stop_0(Handle);
2037 extern (C) void AudioTimestamp_contextTime_Set(Handle, double);
2038 extern (C) double AudioTimestamp_contextTime_Get(Handle);
2039 extern (C) void AudioTimestamp_performanceTime_Set(Handle, double);
2040 extern (C) double AudioTimestamp_performanceTime_Get(Handle);
2041 extern (C) Handle AudioWorklet_Event(Handle, string, Handle);
2042 extern (C) Handle AudioWorklet_EventTarget(Handle);
2043 extern (C) Handle AudioWorklet_MessageEvent(Handle, string, Handle);
2044 extern (C) void AudioWorkletGlobalScope_registerProcessor(Handle, string, VoidFunction);
2045 extern (C) uint AudioWorkletGlobalScope_currentFrame_Get(Handle);
2046 extern (C) double AudioWorkletGlobalScope_currentTime_Get(Handle);
2047 extern (C) float AudioWorkletGlobalScope_sampleRate_Get(Handle);
2048 extern (C) Handle AudioWorkletNode_parameters_Get(Handle);
2049 extern (C) Handle AudioWorkletNode_port_Get(Handle);
2050 extern (C) void AudioWorkletNode_onprocessorerror_Set(Handle, EventHandler);
2051 extern (C) EventHandler AudioWorkletNode_onprocessorerror_Get(Handle);
2052 extern (C) void AudioWorkletNodeOptions_numberOfInputs_Set(Handle, uint);
2053 extern (C) uint AudioWorkletNodeOptions_numberOfInputs_Get(Handle);
2054 extern (C) void AudioWorkletNodeOptions_numberOfOutputs_Set(Handle, uint);
2055 extern (C) uint AudioWorkletNodeOptions_numberOfOutputs_Get(Handle);
2056 extern (C) void AudioWorkletNodeOptions_outputChannelCount_Set(Handle, Handle);
2057 extern (C) Handle AudioWorkletNodeOptions_outputChannelCount_Get(Handle);
2058 extern (C) void AudioWorkletNodeOptions_parameterData_Set(Handle, Handle);
2059 extern (C) Handle AudioWorkletNodeOptions_parameterData_Get(Handle);
2060 extern (C) void AudioWorkletNodeOptions_processorOptions_Set(Handle, bool, Handle);
2061 extern (C) Optional!(JsObject) AudioWorkletNodeOptions_processorOptions_Get(Handle);
2062 extern (C) Handle AudioWorkletProcessor_port_Get(Handle);
2063 extern (C) Handle BaseAudioContext_destination_Get(Handle);
2064 extern (C) float BaseAudioContext_sampleRate_Get(Handle);
2065 extern (C) double BaseAudioContext_currentTime_Get(Handle);
2066 extern (C) Handle BaseAudioContext_listener_Get(Handle);
2067 extern (C) AudioContextState BaseAudioContext_state_Get(Handle);
2068 extern (C) Handle BaseAudioContext_audioWorklet_Get(Handle);
2069 extern (C) void BaseAudioContext_onstatechange_Set(Handle, EventHandler);
2070 extern (C) EventHandler BaseAudioContext_onstatechange_Get(Handle);
2071 extern (C) Handle BaseAudioContext_createAnalyser(Handle);
2072 extern (C) Handle BaseAudioContext_createBiquadFilter(Handle);
2073 extern (C) Handle BaseAudioContext_createBuffer(Handle, uint, uint, float);
2074 extern (C) Handle BaseAudioContext_createBufferSource(Handle);
2075 extern (C) Handle BaseAudioContext_createChannelMerger(Handle, uint);
2076 extern (C) Handle BaseAudioContext_createChannelMerger_0(Handle);
2077 extern (C) Handle BaseAudioContext_createChannelSplitter(Handle, uint);
2078 extern (C) Handle BaseAudioContext_createChannelSplitter_0(Handle);
2079 extern (C) Handle BaseAudioContext_createConstantSource(Handle);
2080 extern (C) Handle BaseAudioContext_createConvolver(Handle);
2081 extern (C) Handle BaseAudioContext_createDelay(Handle, double);
2082 extern (C) Handle BaseAudioContext_createDelay_0(Handle);
2083 extern (C) Handle BaseAudioContext_createDynamicsCompressor(Handle);
2084 extern (C) Handle BaseAudioContext_createGain(Handle);
2085 extern (C) Handle BaseAudioContext_createIIRFilter(Handle, Handle, Handle);
2086 extern (C) Handle BaseAudioContext_createOscillator(Handle);
2087 extern (C) Handle BaseAudioContext_createPanner(Handle);
2088 extern (C) Handle BaseAudioContext_createPeriodicWave(Handle, Handle, Handle, Handle);
2089 extern (C) Handle BaseAudioContext_createPeriodicWave_0(Handle, Handle, Handle);
2090 extern (C) Handle BaseAudioContext_createScriptProcessor(Handle, uint, uint, uint);
2091 extern (C) Handle BaseAudioContext_createScriptProcessor_0(Handle, uint, uint);
2092 extern (C) Handle BaseAudioContext_createScriptProcessor_1(Handle, uint);
2093 extern (C) Handle BaseAudioContext_createScriptProcessor_2(Handle);
2094 extern (C) Handle BaseAudioContext_createStereoPanner(Handle);
2095 extern (C) Handle BaseAudioContext_createWaveShaper(Handle);
2096 extern (C) Handle BaseAudioContext_decodeAudioData(Handle, Handle, bool, DecodeSuccessCallback, bool, DecodeErrorCallback);
2097 extern (C) Handle BaseAudioContext_decodeAudioData_0(Handle, Handle, bool, DecodeSuccessCallback);
2098 extern (C) Handle BaseAudioContext_decodeAudioData_1(Handle, Handle);
2099 extern (C) void BiquadFilterNode_type_Set(Handle, BiquadFilterType);
2100 extern (C) BiquadFilterType BiquadFilterNode_type_Get(Handle);
2101 extern (C) Handle BiquadFilterNode_frequency_Get(Handle);
2102 extern (C) Handle BiquadFilterNode_detune_Get(Handle);
2103 extern (C) Handle BiquadFilterNode_Q_Get(Handle);
2104 extern (C) Handle BiquadFilterNode_gain_Get(Handle);
2105 extern (C) void BiquadFilterNode_getFrequencyResponse(Handle, Handle, Handle, Handle);
2106 extern (C) void BiquadFilterOptions_type_Set(Handle, BiquadFilterType);
2107 extern (C) BiquadFilterType BiquadFilterOptions_type_Get(Handle);
2108 extern (C) void BiquadFilterOptions_Q_Set(Handle, float);
2109 extern (C) float BiquadFilterOptions_Q_Get(Handle);
2110 extern (C) void BiquadFilterOptions_detune_Set(Handle, float);
2111 extern (C) float BiquadFilterOptions_detune_Get(Handle);
2112 extern (C) void BiquadFilterOptions_frequency_Set(Handle, float);
2113 extern (C) float BiquadFilterOptions_frequency_Get(Handle);
2114 extern (C) void BiquadFilterOptions_gain_Set(Handle, float);
2115 extern (C) float BiquadFilterOptions_gain_Get(Handle);
2116 extern (C) void ChannelMergerOptions_numberOfInputs_Set(Handle, uint);
2117 extern (C) uint ChannelMergerOptions_numberOfInputs_Get(Handle);
2118 extern (C) void ChannelSplitterOptions_numberOfOutputs_Set(Handle, uint);
2119 extern (C) uint ChannelSplitterOptions_numberOfOutputs_Get(Handle);
2120 extern (C) Handle ConstantSourceNode_offset_Get(Handle);
2121 extern (C) void ConstantSourceOptions_offset_Set(Handle, float);
2122 extern (C) float ConstantSourceOptions_offset_Get(Handle);
2123 extern (C) void ConvolverNode_buffer_Set(Handle, bool, Handle);
2124 extern (C) Optional!(AudioBuffer) ConvolverNode_buffer_Get(Handle);
2125 extern (C) void ConvolverNode_normalize_Set(Handle, bool);
2126 extern (C) bool ConvolverNode_normalize_Get(Handle);
2127 extern (C) void ConvolverOptions_buffer_Set(Handle, bool, Handle);
2128 extern (C) Optional!(AudioBuffer) ConvolverOptions_buffer_Get(Handle);
2129 extern (C) void ConvolverOptions_disableNormalization_Set(Handle, bool);
2130 extern (C) bool ConvolverOptions_disableNormalization_Get(Handle);
2131 extern (C) Handle DelayNode_delayTime_Get(Handle);
2132 extern (C) void DelayOptions_maxDelayTime_Set(Handle, double);
2133 extern (C) double DelayOptions_maxDelayTime_Get(Handle);
2134 extern (C) void DelayOptions_delayTime_Set(Handle, double);
2135 extern (C) double DelayOptions_delayTime_Get(Handle);
2136 extern (C) Handle DynamicsCompressorNode_threshold_Get(Handle);
2137 extern (C) Handle DynamicsCompressorNode_knee_Get(Handle);
2138 extern (C) Handle DynamicsCompressorNode_ratio_Get(Handle);
2139 extern (C) float DynamicsCompressorNode_reduction_Get(Handle);
2140 extern (C) Handle DynamicsCompressorNode_attack_Get(Handle);
2141 extern (C) Handle DynamicsCompressorNode_release_Get(Handle);
2142 extern (C) void DynamicsCompressorOptions_attack_Set(Handle, float);
2143 extern (C) float DynamicsCompressorOptions_attack_Get(Handle);
2144 extern (C) void DynamicsCompressorOptions_knee_Set(Handle, float);
2145 extern (C) float DynamicsCompressorOptions_knee_Get(Handle);
2146 extern (C) void DynamicsCompressorOptions_ratio_Set(Handle, float);
2147 extern (C) float DynamicsCompressorOptions_ratio_Get(Handle);
2148 extern (C) void DynamicsCompressorOptions_release_Set(Handle, float);
2149 extern (C) float DynamicsCompressorOptions_release_Get(Handle);
2150 extern (C) void DynamicsCompressorOptions_threshold_Set(Handle, float);
2151 extern (C) float DynamicsCompressorOptions_threshold_Get(Handle);
2152 extern (C) Handle GainNode_gain_Get(Handle);
2153 extern (C) void GainOptions_gain_Set(Handle, float);
2154 extern (C) float GainOptions_gain_Get(Handle);
2155 extern (C) void IIRFilterNode_getFrequencyResponse(Handle, Handle, Handle, Handle);
2156 extern (C) void IIRFilterOptions_feedforward_Set(Handle, Handle);
2157 extern (C) Handle IIRFilterOptions_feedforward_Get(Handle);
2158 extern (C) void IIRFilterOptions_feedback_Set(Handle, Handle);
2159 extern (C) Handle IIRFilterOptions_feedback_Get(Handle);
2160 extern (C) Handle MediaElementAudioSourceNode_mediaElement_Get(Handle);
2161 extern (C) void MediaElementAudioSourceOptions_mediaElement_Set(Handle, Handle);
2162 extern (C) Handle MediaElementAudioSourceOptions_mediaElement_Get(Handle);
2163 extern (C) Handle MediaStreamAudioDestinationNode_stream_Get(Handle);
2164 extern (C) Handle MediaStreamAudioSourceNode_mediaStream_Get(Handle);
2165 extern (C) void MediaStreamAudioSourceOptions_mediaStream_Set(Handle, Handle);
2166 extern (C) Handle MediaStreamAudioSourceOptions_mediaStream_Get(Handle);
2167 extern (C) void MediaStreamTrackAudioSourceOptions_mediaStreamTrack_Set(Handle, Handle);
2168 extern (C) Handle MediaStreamTrackAudioSourceOptions_mediaStreamTrack_Get(Handle);
2169 extern (C) Handle OfflineAudioCompletionEvent_renderedBuffer_Get(Handle);
2170 extern (C) void OfflineAudioCompletionEventInit_renderedBuffer_Set(Handle, Handle);
2171 extern (C) Handle OfflineAudioCompletionEventInit_renderedBuffer_Get(Handle);
2172 extern (C) Handle OfflineAudioContext_startRendering(Handle);
2173 extern (C) Handle OfflineAudioContext_resume(Handle);
2174 extern (C) Handle OfflineAudioContext_suspend(Handle, double);
2175 extern (C) uint OfflineAudioContext_length_Get(Handle);
2176 extern (C) void OfflineAudioContext_oncomplete_Set(Handle, EventHandler);
2177 extern (C) EventHandler OfflineAudioContext_oncomplete_Get(Handle);
2178 extern (C) void OfflineAudioContextOptions_numberOfChannels_Set(Handle, uint);
2179 extern (C) uint OfflineAudioContextOptions_numberOfChannels_Get(Handle);
2180 extern (C) void OfflineAudioContextOptions_length_Set(Handle, uint);
2181 extern (C) uint OfflineAudioContextOptions_length_Get(Handle);
2182 extern (C) void OfflineAudioContextOptions_sampleRate_Set(Handle, float);
2183 extern (C) float OfflineAudioContextOptions_sampleRate_Get(Handle);
2184 extern (C) void OscillatorNode_type_Set(Handle, OscillatorType);
2185 extern (C) OscillatorType OscillatorNode_type_Get(Handle);
2186 extern (C) Handle OscillatorNode_frequency_Get(Handle);
2187 extern (C) Handle OscillatorNode_detune_Get(Handle);
2188 extern (C) void OscillatorNode_setPeriodicWave(Handle, Handle);
2189 extern (C) void OscillatorOptions_type_Set(Handle, OscillatorType);
2190 extern (C) OscillatorType OscillatorOptions_type_Get(Handle);
2191 extern (C) void OscillatorOptions_frequency_Set(Handle, float);
2192 extern (C) float OscillatorOptions_frequency_Get(Handle);
2193 extern (C) void OscillatorOptions_detune_Set(Handle, float);
2194 extern (C) float OscillatorOptions_detune_Get(Handle);
2195 extern (C) void OscillatorOptions_periodicWave_Set(Handle, Handle);
2196 extern (C) Handle OscillatorOptions_periodicWave_Get(Handle);
2197 extern (C) void PannerNode_panningModel_Set(Handle, PanningModelType);
2198 extern (C) PanningModelType PannerNode_panningModel_Get(Handle);
2199 extern (C) Handle PannerNode_positionX_Get(Handle);
2200 extern (C) Handle PannerNode_positionY_Get(Handle);
2201 extern (C) Handle PannerNode_positionZ_Get(Handle);
2202 extern (C) Handle PannerNode_orientationX_Get(Handle);
2203 extern (C) Handle PannerNode_orientationY_Get(Handle);
2204 extern (C) Handle PannerNode_orientationZ_Get(Handle);
2205 extern (C) void PannerNode_distanceModel_Set(Handle, DistanceModelType);
2206 extern (C) DistanceModelType PannerNode_distanceModel_Get(Handle);
2207 extern (C) void PannerNode_refDistance_Set(Handle, double);
2208 extern (C) double PannerNode_refDistance_Get(Handle);
2209 extern (C) void PannerNode_maxDistance_Set(Handle, double);
2210 extern (C) double PannerNode_maxDistance_Get(Handle);
2211 extern (C) void PannerNode_rolloffFactor_Set(Handle, double);
2212 extern (C) double PannerNode_rolloffFactor_Get(Handle);
2213 extern (C) void PannerNode_coneInnerAngle_Set(Handle, double);
2214 extern (C) double PannerNode_coneInnerAngle_Get(Handle);
2215 extern (C) void PannerNode_coneOuterAngle_Set(Handle, double);
2216 extern (C) double PannerNode_coneOuterAngle_Get(Handle);
2217 extern (C) void PannerNode_coneOuterGain_Set(Handle, double);
2218 extern (C) double PannerNode_coneOuterGain_Get(Handle);
2219 extern (C) void PannerNode_setPosition(Handle, float, float, float);
2220 extern (C) void PannerNode_setOrientation(Handle, float, float, float);
2221 extern (C) void PannerOptions_panningModel_Set(Handle, PanningModelType);
2222 extern (C) PanningModelType PannerOptions_panningModel_Get(Handle);
2223 extern (C) void PannerOptions_distanceModel_Set(Handle, DistanceModelType);
2224 extern (C) DistanceModelType PannerOptions_distanceModel_Get(Handle);
2225 extern (C) void PannerOptions_positionX_Set(Handle, float);
2226 extern (C) float PannerOptions_positionX_Get(Handle);
2227 extern (C) void PannerOptions_positionY_Set(Handle, float);
2228 extern (C) float PannerOptions_positionY_Get(Handle);
2229 extern (C) void PannerOptions_positionZ_Set(Handle, float);
2230 extern (C) float PannerOptions_positionZ_Get(Handle);
2231 extern (C) void PannerOptions_orientationX_Set(Handle, float);
2232 extern (C) float PannerOptions_orientationX_Get(Handle);
2233 extern (C) void PannerOptions_orientationY_Set(Handle, float);
2234 extern (C) float PannerOptions_orientationY_Get(Handle);
2235 extern (C) void PannerOptions_orientationZ_Set(Handle, float);
2236 extern (C) float PannerOptions_orientationZ_Get(Handle);
2237 extern (C) void PannerOptions_refDistance_Set(Handle, double);
2238 extern (C) double PannerOptions_refDistance_Get(Handle);
2239 extern (C) void PannerOptions_maxDistance_Set(Handle, double);
2240 extern (C) double PannerOptions_maxDistance_Get(Handle);
2241 extern (C) void PannerOptions_rolloffFactor_Set(Handle, double);
2242 extern (C) double PannerOptions_rolloffFactor_Get(Handle);
2243 extern (C) void PannerOptions_coneInnerAngle_Set(Handle, double);
2244 extern (C) double PannerOptions_coneInnerAngle_Get(Handle);
2245 extern (C) void PannerOptions_coneOuterAngle_Set(Handle, double);
2246 extern (C) double PannerOptions_coneOuterAngle_Get(Handle);
2247 extern (C) void PannerOptions_coneOuterGain_Set(Handle, double);
2248 extern (C) double PannerOptions_coneOuterGain_Get(Handle);
2249 extern (C) void PeriodicWaveConstraints_disableNormalization_Set(Handle, bool);
2250 extern (C) bool PeriodicWaveConstraints_disableNormalization_Get(Handle);
2251 extern (C) void PeriodicWaveOptions_real_Set(Handle, Handle);
2252 extern (C) Handle PeriodicWaveOptions_real_Get(Handle);
2253 extern (C) void PeriodicWaveOptions_imag_Set(Handle, Handle);
2254 extern (C) Handle PeriodicWaveOptions_imag_Get(Handle);
2255 extern (C) void ScriptProcessorNode_onaudioprocess_Set(Handle, EventHandler);
2256 extern (C) EventHandler ScriptProcessorNode_onaudioprocess_Get(Handle);
2257 extern (C) int ScriptProcessorNode_bufferSize_Get(Handle);
2258 extern (C) Handle StereoPannerNode_pan_Get(Handle);
2259 extern (C) void StereoPannerOptions_pan_Set(Handle, float);
2260 extern (C) float StereoPannerOptions_pan_Get(Handle);
2261 extern (C) void WaveShaperNode_curve_Set(Handle, bool, Handle);
2262 extern (C) Optional!(Float32Array) WaveShaperNode_curve_Get(Handle);
2263 extern (C) void WaveShaperNode_oversample_Set(Handle, OverSampleType);
2264 extern (C) OverSampleType WaveShaperNode_oversample_Get(Handle);
2265 extern (C) void WaveShaperOptions_curve_Set(Handle, Handle);
2266 extern (C) Handle WaveShaperOptions_curve_Get(Handle);
2267 extern (C) void WaveShaperOptions_oversample_Set(Handle, OverSampleType);
2268 extern (C) OverSampleType WaveShaperOptions_oversample_Get(Handle);