{"version":3,"file":"ng-web-apis-audio.mjs","sources":["../../../libs/audio/src/tokens/audio-context.ts","../../../libs/audio/src/utils/latency-hint-factory.ts","../../../libs/audio/src/directives/audio-context.ts","../../../libs/audio/src/directives/channel.ts","../../../libs/audio/src/tokens/audio-node.ts","../../../libs/audio/src/utils/connect.ts","../../../libs/audio/src/directives/destination.ts","../../../libs/audio/src/utils/audio-param.ts","../../../libs/audio/src/directives/listener.ts","../../../libs/audio/src/directives/node.ts","../../../libs/audio/src/directives/offline-audio-context.ts","../../../libs/audio/src/directives/output.ts","../../../libs/audio/src/directives/source.ts","../../../libs/audio/src/directives/stream-destination.ts","../../../libs/audio/src/utils/parse.ts","../../../libs/audio/src/nodes/analyser.ts","../../../libs/audio/src/nodes/biquad-filter.ts","../../../libs/audio/src/nodes/channel-merger.ts","../../../libs/audio/src/nodes/channel-splitter.ts","../../../libs/audio/src/services/audio-buffer.service.ts","../../../libs/audio/src/nodes/convolver.ts","../../../libs/audio/src/nodes/delay.ts","../../../libs/audio/src/nodes/dynamics-compressor.ts","../../../libs/audio/src/nodes/gain.ts","../../../libs/audio/src/tokens/feedback-coefficients.ts","../../../libs/audio/src/tokens/feedforward-coefficients.ts","../../../libs/audio/src/nodes/iir-filter.ts","../../../libs/audio/src/nodes/panner.ts","../../../libs/audio/src/nodes/stereo-panner.ts","../../../libs/audio/src/nodes/wave-shaper.ts","../../../libs/audio/src/nodes/worklet.ts","../../../libs/audio/src/pipes/audio-param.pipe.ts","../../../libs/audio/src/pipes/periodic-wave.pipe.ts","../../../libs/audio/src/sources/buffer-source.ts","../../../libs/audio/src/sources/constant-source.ts","../../../libs/audio/src/sources/media-source.ts","../../../libs/audio/src/tokens/media-stream.ts","../../../libs/audio/src/sources/media-stream-source.ts","../../../libs/audio/src/sources/oscillator.ts","../../../libs/audio/src/tokens/audio-worklet-processors.ts","../../../libs/audio/src/tokens/audio-worklet-processors-ready.ts","../../../libs/audio/src/tokens/support.ts","../../../libs/audio/src/web-audio.ts","../../../libs/audio/src/ng-web-apis-audio.ts"],"sourcesContent":["import {InjectionToken} from '@angular/core';\n\nexport const WA_AUDIO_CONTEXT = new InjectionToken<BaseAudioContext>(\n    ngDevMode ? '[WA_AUDIO_CONTEXT]' : '',\n    {factory: () => new AudioContext()},\n);\n","export function latencyHintFactory(\n    latencyHint: AudioContextLatencyCategory | null,\n): AudioContextLatencyCategory | number | undefined {\n    return latencyHint === null\n        ? undefined\n        : Number.parseFloat(latencyHint) || latencyHint;\n}\n","import {\n    Directive,\n    HostAttributeToken,\n    inject,\n    input,\n    type OnDestroy,\n} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {latencyHintFactory} from '../utils/latency-hint-factory';\n\n@Directive({\n    selector: '[waAudioContext]',\n    providers: [{provide: WA_AUDIO_CONTEXT, useExisting: WaAudioContext}],\n})\nexport class WaAudioContext extends AudioContext implements OnDestroy {\n    public readonly rate = input('', {alias: 'sampleRate'});\n    public readonly latencyHint = input<AudioContextLatencyCategory>();\n\n    constructor() {\n        const sampleRate = inject(new HostAttributeToken('sampleRate'), {optional: true});\n\n        const latencyHint: any = inject(new HostAttributeToken('latencyHint'), {\n            optional: true,\n        });\n\n        super({\n            latencyHint: latencyHintFactory(latencyHint),\n            sampleRate: Number.parseInt(sampleRate ?? '', 10) || undefined,\n        });\n    }\n\n    public ngOnDestroy(): void {\n        void this.close();\n    }\n}\n","import {Directive, inject, type OnDestroy} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\n\n@Directive({\n    selector: '[waChannel]',\n    exportAs: 'AudioNode',\n})\nexport class WaChannel extends GainNode implements OnDestroy {\n    constructor() {\n        super(inject(WA_AUDIO_CONTEXT));\n    }\n\n    public ngOnDestroy(): void {\n        this.disconnect();\n    }\n}\n","import {type ExistingProvider, InjectionToken, type Type} from '@angular/core';\n\nexport const WA_AUDIO_NODE = new InjectionToken<AudioNode | null>(\n    ngDevMode ? '[WA_AUDIO_NODE]' : '',\n    {factory: () => null},\n);\n\nexport function asAudioNode(useExisting: Type<AudioNode>): ExistingProvider {\n    return {provide: WA_AUDIO_NODE, useExisting};\n}\n","export function connect(\n    source?: AudioNode | null,\n    destination?: AudioNode | AudioParam | null,\n): void {\n    if (source && destination) {\n        // @ts-ignore TS does not have a union override for connect method\n        source.connect(destination);\n    }\n}\n","import {Directive, inject, type OnDestroy} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {\n    debounceTime,\n    distinctUntilChanged,\n    filter,\n    interval,\n    map,\n    skipWhile,\n    tap,\n} from 'rxjs';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {WA_AUDIO_NODE} from '../tokens/audio-node';\nimport {connect} from '../utils/connect';\n\n@Directive({\n    selector: '[waAudioDestinationNode]',\n    exportAs: 'AudioNode',\n})\nexport class WaDestination extends AnalyserNode implements OnDestroy {\n    public readonly quiet = outputFromObservable<unknown>(\n        interval(100).pipe(\n            map(() => new Float32Array(this.fftSize)),\n            tap((array) => this.getFloatTimeDomainData(array)),\n            map((array) => this.isSilent(array)),\n            distinctUntilChanged(),\n            skipWhile((isSilent) => isSilent),\n            debounceTime(5000),\n            filter((isSilent) => isSilent),\n        ),\n    );\n\n    constructor() {\n        super(inject(WA_AUDIO_CONTEXT), {fftSize: 256});\n\n        connect(inject(WA_AUDIO_NODE), this);\n        this.connect(this.context.destination);\n    }\n\n    public ngOnDestroy(): void {\n        this.disconnect();\n    }\n\n    private isSilent(array: Float32Array): boolean {\n        return Math.abs(array.reduce((acc, cur) => acc + cur, 0)) < 0.001;\n    }\n}\n","import {type AudioParamAutomation} from '../types/audio-param-automation';\nimport {type AudioParamCurve} from '../types/audio-param-curve';\nimport {type AudioParamInput} from '../types/audio-param-input';\n\nexport function audioParam(\n    param: AudioParam,\n    value: AudioParamInput,\n    currentTime = 0,\n): void {\n    value = typeof value === 'string' ? Number.parseFloat(value) : value;\n\n    // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n    if (param.cancelAndHoldAtTime) {\n        param.cancelAndHoldAtTime(currentTime);\n    } else {\n        param.cancelScheduledValues(currentTime);\n        param.setValueAtTime(guard(param.value), currentTime);\n    }\n\n    if (typeof value === 'number') {\n        param.setValueAtTime(guard(value), currentTime);\n\n        return;\n    }\n\n    if (value instanceof Array) {\n        processSchedule(param, value, currentTime);\n\n        return;\n    }\n\n    if (!('mode' in value)) {\n        param.setValueCurveAtTime(value.value, currentTime, value.duration);\n\n        return;\n    }\n\n    param.setValueAtTime(guard(param.value), currentTime);\n    processAutomation(param, value, currentTime);\n}\n\nfunction processSchedule(\n    param: AudioParam,\n    value: Array<AudioParamAutomation | AudioParamCurve>,\n    currentTime: number,\n): void {\n    value.forEach((automation) => {\n        if ('mode' in automation) {\n            processAutomation(param, automation, currentTime);\n        } else {\n            param.setValueCurveAtTime(automation.value, currentTime, automation.duration);\n        }\n\n        currentTime += automation.duration;\n    });\n}\n\nfunction processAutomation(\n    param: AudioParam,\n    {value, mode, duration}: AudioParamAutomation,\n    currentTime: number,\n): void {\n    switch (mode) {\n        case 'exponential':\n            if (value < 0 || value * param.value < 0) {\n                param.linearRampToValueAtTime(guard(value), currentTime + duration);\n            } else {\n                param.exponentialRampToValueAtTime(guard(value), currentTime + duration);\n            }\n\n            param.setValueAtTime(guard(value), currentTime + duration);\n            break;\n        case 'instant':\n            param.setValueAtTime(guard(value), currentTime);\n            param.setValueAtTime(guard(value), currentTime + duration);\n            break;\n        case 'linear':\n            param.linearRampToValueAtTime(guard(value), currentTime + duration);\n            break;\n    }\n}\n\nfunction guard(v: number): number {\n    return v || 0.00000001;\n}\n","import {Directive, inject} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {type AudioParamInput} from '../types/audio-param-input';\nimport {audioParam} from '../utils/audio-param';\n\n@Directive({\n    selector: '[waAudioContext],[waOfflineAudioContext][length][sampleRate]',\n    inputs: [\n        'forwardXSetter: forwardX',\n        'forwardYSetter: forwardY',\n        'forwardZSetter: forwardZ',\n        'positionXSetter: positionX',\n        'positionYSetter: positionY',\n        'positionZSetter: positionZ',\n        'upXSetter: upX',\n        'upYSetter: upY',\n        'upZSetter: upZ',\n    ],\n})\nexport class WaListener extends GainNode {\n    constructor() {\n        super(inject(WA_AUDIO_CONTEXT, {self: true}));\n    }\n\n    public set forwardXSetter(value: AudioParamInput) {\n        audioParam(this.context.listener.forwardX, value, this.context.currentTime);\n    }\n\n    public set forwardYSetter(value: AudioParamInput) {\n        audioParam(this.context.listener.forwardY, value, this.context.currentTime);\n    }\n\n    public set forwardZSetter(value: AudioParamInput) {\n        audioParam(this.context.listener.forwardZ, value, this.context.currentTime);\n    }\n\n    public set positionXSetter(value: AudioParamInput) {\n        audioParam(this.context.listener.positionX, value, this.context.currentTime);\n    }\n\n    public set positionYSetter(value: AudioParamInput) {\n        audioParam(this.context.listener.positionY, value, this.context.currentTime);\n    }\n\n    public set positionZSetter(value: AudioParamInput) {\n        audioParam(this.context.listener.positionZ, value, this.context.currentTime);\n    }\n\n    public set upXSetter(value: AudioParamInput) {\n        audioParam(this.context.listener.upX, value, this.context.currentTime);\n    }\n\n    public set upYSetter(value: AudioParamInput) {\n        audioParam(this.context.listener.upX, value, this.context.currentTime);\n    }\n\n    public set upZSetter(value: AudioParamInput) {\n        audioParam(this.context.listener.upX, value, this.context.currentTime);\n    }\n}\n","import {Directive, inject, type OnDestroy, type OnInit} from '@angular/core';\n\nimport {WA_AUDIO_NODE} from '../tokens/audio-node';\nimport {connect} from '../utils/connect';\n\n@Directive()\nexport class WaNode implements OnInit, OnDestroy {\n    private readonly node = inject(WA_AUDIO_NODE, {self: true});\n    private readonly parent = inject(WA_AUDIO_NODE, {skipSelf: true});\n\n    public ngOnInit(): void {\n        connect(this.parent, this.node);\n    }\n\n    public ngOnDestroy(): void {\n        this.node?.disconnect();\n    }\n}\n","import {\n    booleanAttribute,\n    Directive,\n    HostAttributeToken,\n    inject,\n    input,\n    type OnInit,\n    output,\n} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\n\n@Directive({\n    selector: '[waOfflineAudioContext][length][sampleRate]',\n    providers: [{provide: WA_AUDIO_CONTEXT, useExisting: WaOfflineContext}],\n})\nexport class WaOfflineContext extends OfflineAudioContext implements OnInit {\n    public readonly lngth = input('', {alias: 'length'});\n    public readonly rate = input('', {alias: 'sampleRate'});\n    public readonly channels = input('', {alias: 'numberOfChannels'});\n    public readonly autoplay = input(false, {transform: booleanAttribute});\n    public readonly complete = output<AudioBuffer>();\n\n    constructor() {\n        const length = inject(new HostAttributeToken('length'));\n        const sampleRate = inject(new HostAttributeToken('sampleRate'));\n\n        const channels = inject(new HostAttributeToken('numberOfChannels'), {\n            optional: true,\n        });\n\n        super(\n            Number.parseInt(channels ?? '', 10) || 1,\n            Number.parseInt(length, 10),\n            Number.parseInt(sampleRate, 10),\n        );\n    }\n\n    public override readonly oncomplete = (e: OfflineAudioCompletionEvent): void =>\n        this.complete.emit(e.renderedBuffer);\n\n    public ngOnInit(): void {\n        if (this.autoplay()) {\n            this.startRendering();\n        }\n    }\n}\n","import {Directive, inject, type OnDestroy} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {WA_AUDIO_NODE} from '../tokens/audio-node';\nimport {connect} from '../utils/connect';\n\n@Directive({\n    selector: '[waOutput]',\n    inputs: ['waOutput'],\n})\nexport class WaOutput extends GainNode implements OnDestroy {\n    constructor() {\n        super(inject(WA_AUDIO_CONTEXT));\n\n        connect(inject(WA_AUDIO_NODE), this);\n    }\n\n    public set waOutput(destination: AudioNode | AudioParam | undefined) {\n        this.disconnect();\n        connect(this, destination);\n    }\n\n    public ngOnDestroy(): void {\n        this.disconnect();\n    }\n}\n","import {\n    booleanAttribute,\n    Directive,\n    inject,\n    input,\n    type OnDestroy,\n    type OnInit,\n    output,\n} from '@angular/core';\n\nimport {WA_AUDIO_NODE} from '../tokens/audio-node';\n\n@Directive()\nexport class WaScheduledSource implements OnInit, OnDestroy {\n    private readonly node = inject<AudioScheduledSourceNode>(WA_AUDIO_NODE, {self: true});\n    public readonly autoplay = input(false, {transform: booleanAttribute});\n    public readonly ended = output();\n\n    public ngOnInit(): void {\n        this.node.onended = (): void => this.ended.emit();\n\n        if (this.autoplay()) {\n            this.node.start();\n        }\n    }\n\n    public ngOnDestroy(): void {\n        try {\n            this.node.stop();\n        } catch {\n            // noop\n        }\n\n        this.node.disconnect();\n    }\n}\n\n@Directive({\n    hostDirectives: [\n        {\n            directive: WaScheduledSource,\n            inputs: ['autoplay'],\n            outputs: ['ended'],\n        },\n    ],\n})\nexport class WaSource {}\n","import {Directive, inject} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {WA_AUDIO_NODE} from '../tokens/audio-node';\nimport {connect} from '../utils/connect';\n\n@Directive({\n    selector: '[waMediaStreamAudioDestinationNode]',\n    exportAs: 'AudioNode',\n})\nexport class WaMediaStreamDestination extends MediaStreamAudioDestinationNode {\n    constructor() {\n        super(inject<AudioContext>(WA_AUDIO_CONTEXT));\n\n        connect(inject(WA_AUDIO_NODE), this);\n    }\n}\n","import {type AudioParamInput} from '../types/audio-param-input';\n\nexport function parse(value: AudioParamInput | string | null, fallback: number): number {\n    const parsed = Number.parseFloat((value as string) || '');\n\n    return Number.isNaN(parsed) ? fallback : parsed;\n}\n","import {Directive, HostAttributeToken, inject} from '@angular/core';\nimport {outputFromObservable} from '@angular/core/rxjs-interop';\nimport {animationFrameScheduler, interval, map} from 'rxjs';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {parse} from '../utils/parse';\n\n@Directive({\n    selector: '[waAnalyserNode]',\n    inputs: [\n        'fftSize',\n        'minDecibels',\n        'maxDecibels',\n        'smoothingTimeConstant',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaAnalyser)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaAnalyser extends AnalyserNode {\n    private fByte = new Uint8Array(this.frequencyBinCount);\n    private fFloat = new Float32Array(this.frequencyBinCount);\n    private tByte = new Uint8Array(this.fftSize);\n    private tFloat = new Float32Array(this.fftSize);\n\n    public readonly frequencyByte = outputFromObservable(\n        interval(0, animationFrameScheduler).pipe(\n            map(() => {\n                if (this.fByte.length !== this.frequencyBinCount) {\n                    this.fByte = new Uint8Array(this.frequencyBinCount);\n                }\n\n                this.getByteFrequencyData(this.fByte);\n\n                return this.fByte;\n            }),\n        ),\n    );\n\n    public readonly frequencyFloat = outputFromObservable(\n        interval(0, animationFrameScheduler).pipe(\n            map(() => {\n                if (this.fFloat.length !== this.frequencyBinCount) {\n                    this.fFloat = new Float32Array(this.frequencyBinCount);\n                }\n\n                this.getFloatFrequencyData(this.fFloat);\n\n                return this.fFloat;\n            }),\n        ),\n    );\n\n    public readonly timeByte = outputFromObservable(\n        interval(0, animationFrameScheduler).pipe(\n            map(() => {\n                if (this.tByte.length !== this.fftSize) {\n                    this.tByte = new Uint8Array(this.frequencyBinCount);\n                }\n\n                this.getByteTimeDomainData(this.tByte);\n\n                return this.tByte;\n            }),\n        ),\n    );\n\n    public readonly timeFloat = outputFromObservable(\n        interval(0, animationFrameScheduler).pipe(\n            map(() => {\n                if (this.tFloat.length !== this.fftSize) {\n                    this.tFloat = new Float32Array(this.frequencyBinCount);\n                }\n\n                this.getFloatTimeDomainData(this.tFloat);\n\n                return this.tFloat;\n            }),\n        ),\n    );\n\n    constructor() {\n        const O = {optional: true} as const;\n        const fftSize = inject(new HostAttributeToken('fftSize'), O);\n        const minDecibels = inject(new HostAttributeToken('minDecibels'), O);\n        const maxDecibels = inject(new HostAttributeToken('maxDecibels'), O);\n        const time = inject(new HostAttributeToken('smoothingTimeConstant'), O);\n\n        super(inject(WA_AUDIO_CONTEXT), {\n            fftSize: parse(fftSize, 2048),\n            maxDecibels: parse(maxDecibels, -30),\n            minDecibels: parse(minDecibels, -100),\n            smoothingTimeConstant: parse(time, 0.8),\n        });\n    }\n}\n","import {Directive, HostAttributeToken, inject} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {type AudioParamInput} from '../types/audio-param-input';\nimport {audioParam} from '../utils/audio-param';\nimport {parse} from '../utils/parse';\n\n@Directive({\n    selector: '[waBiquadFilterNode]',\n    inputs: [\n        'detuneSetter: detune',\n        'frequencySetter: frequency',\n        'gainSetter: gain',\n        'qSetter: Q',\n        'type',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaBiquadFilter)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaBiquadFilter extends BiquadFilterNode {\n    constructor() {\n        const detune = inject(new HostAttributeToken('detune'), {optional: true});\n        const frequency = inject(new HostAttributeToken('frequency'), {optional: true});\n        const gain = inject(new HostAttributeToken('gain'), {optional: true});\n        const Q = inject(new HostAttributeToken('Q'), {optional: true});\n\n        super(inject(WA_AUDIO_CONTEXT), {\n            detune: parse(detune, 0),\n            frequency: parse(frequency, 350),\n            gain: parse(gain, 0),\n            Q: parse(Q, 1),\n        });\n    }\n\n    public set detuneSetter(value: AudioParamInput) {\n        audioParam(this.detune, value, this.context.currentTime);\n    }\n\n    public set frequencySetter(value: AudioParamInput) {\n        audioParam(this.frequency, value, this.context.currentTime);\n    }\n\n    public set gainSetter(value: AudioParamInput) {\n        audioParam(this.gain, value, this.context.currentTime);\n    }\n\n    public set qSetter(value: AudioParamInput) {\n        audioParam(this.Q, value, this.context.currentTime);\n    }\n}\n","import {\n    contentChildren,\n    Directive,\n    effect,\n    HostAttributeToken,\n    inject,\n    input,\n    type OnDestroy,\n} from '@angular/core';\n\nimport {WaChannel} from '../directives/channel';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\n\n@Directive({\n    selector: '[waChannelMergerNode]',\n    inputs: ['channelCount', 'channelCountMode', 'channelInterpretation'],\n    providers: [asAudioNode(WaChannelMerger)],\n    exportAs: 'AudioNode',\n})\nexport class WaChannelMerger extends ChannelMergerNode implements OnDestroy {\n    private readonly channels = contentChildren(WaChannel, {descendants: false});\n    public readonly inputs = input('', {alias: 'numberOfInputs'});\n\n    constructor() {\n        const attr = inject(new HostAttributeToken('numberOfInputs'), {optional: true});\n        const numberOfInputs = Number.parseInt(attr || '', 10) || 6;\n\n        super(inject(WA_AUDIO_CONTEXT), {numberOfInputs});\n\n        effect(() => {\n            this.channels().forEach((node, index) => {\n                node.connect(this, 0, index);\n            });\n        });\n    }\n\n    public ngOnDestroy(): void {\n        this.disconnect();\n    }\n}\n","import {\n    contentChildren,\n    Directive,\n    effect,\n    HostAttributeToken,\n    inject,\n    input,\n} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {WA_AUDIO_NODE} from '../tokens/audio-node';\n\n@Directive({\n    selector: '[waChannelSplitterNode]',\n    inputs: ['channelCount', 'channelCountMode', 'channelInterpretation'],\n    providers: [{provide: WA_AUDIO_NODE, useValue: null}],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaChannelSplitter extends ChannelSplitterNode {\n    private readonly channels = contentChildren(WA_AUDIO_NODE, {descendants: false});\n    public readonly outputs = input('', {alias: 'numberOfOutputs'});\n\n    constructor() {\n        const attr = inject(new HostAttributeToken('numberOfOutputs'), {optional: true});\n        const numberOfOutputs = Number.parseInt(attr || '', 10) || 6;\n\n        super(inject(WA_AUDIO_CONTEXT), {numberOfOutputs});\n\n        effect(() => {\n            this.disconnect();\n            this.channels()\n                .filter((node) => !!node)\n                .forEach((node, index) => {\n                    this.connect(node, index);\n                });\n        });\n    }\n}\n","import {inject, Injectable} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\n\n@Injectable({providedIn: 'root'})\nexport class WaAudioBufferService {\n    private readonly context = inject(WA_AUDIO_CONTEXT);\n    private readonly cache = new Map<string, AudioBuffer>();\n\n    public async fetch(url: string): Promise<AudioBuffer> {\n        return new Promise<AudioBuffer>((resolve, reject) => {\n            if (this.cache.has(url)) {\n                resolve(this.cache.get(url)!);\n\n                return;\n            }\n\n            const request = new XMLHttpRequest();\n\n            request.open('GET', url, true);\n            request.responseType = 'arraybuffer';\n            request.onerror = reject;\n            request.onabort = reject;\n\n            request.onload = () => {\n                void this.context.decodeAudioData(\n                    request.response,\n                    (buffer) => {\n                        this.cache.set(url, buffer);\n                        resolve(buffer);\n                    },\n                    reject,\n                );\n            };\n\n            request.send();\n        });\n    }\n}\n","import {Directive, inject} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WaAudioBufferService} from '../services/audio-buffer.service';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\n\n@Directive({\n    selector: '[waConvolverNode]',\n    inputs: [\n        'bufferSetter: buffer',\n        'normalize',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaConvolver)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaConvolver extends ConvolverNode {\n    private readonly service = inject(WaAudioBufferService);\n\n    constructor() {\n        super(inject(WA_AUDIO_CONTEXT));\n    }\n\n    public set bufferSetter(source: AudioBuffer | string | null) {\n        if (typeof source === 'string') {\n            this.service.fetch(source).then((result) => {\n                this.buffer = result;\n            });\n        } else {\n            this.buffer = source;\n        }\n    }\n}\n","import {Directive, HostAttributeToken, inject, input} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {type AudioParamInput} from '../types/audio-param-input';\nimport {audioParam} from '../utils/audio-param';\nimport {parse} from '../utils/parse';\n\n@Directive({\n    selector: '[waDelayNode]',\n    inputs: [\n        'delayTimeSetter: delayTime',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaDelay)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaDelay extends DelayNode {\n    public readonly maxDelayTime = input('');\n\n    constructor() {\n        const delayTime = inject(new HostAttributeToken('delayTime'), {optional: true});\n\n        const maxDelayTime = inject(new HostAttributeToken('maxDelayTime'), {\n            optional: true,\n        });\n\n        super(inject(WA_AUDIO_CONTEXT), {\n            delayTime: parse(delayTime, 0),\n            maxDelayTime: parse(maxDelayTime, 1),\n        });\n    }\n\n    public set delayTimeSetter(value: AudioParamInput) {\n        audioParam(this.delayTime, value, this.context.currentTime);\n    }\n}\n","import {Directive, HostAttributeToken, inject} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {type AudioParamInput} from '../types/audio-param-input';\nimport {audioParam} from '../utils/audio-param';\nimport {parse} from '../utils/parse';\n\n@Directive({\n    selector: '[waDynamicsCompressorNode]',\n    inputs: [\n        'attackSetter: attack',\n        'kneeSetter: knee',\n        'ratioSetter: ratio',\n        'releaseSetter: release',\n        'thresholdSetter: threshold',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaDynamicsCompressor)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaDynamicsCompressor extends DynamicsCompressorNode {\n    constructor() {\n        const attack = inject(new HostAttributeToken('attack'), {optional: true});\n        const knee = inject(new HostAttributeToken('knee'), {optional: true});\n        const ratio = inject(new HostAttributeToken('ratio'), {optional: true});\n        const release = inject(new HostAttributeToken('release'), {optional: true});\n        const threshold = inject(new HostAttributeToken('threshold'), {optional: true});\n\n        super(inject(WA_AUDIO_CONTEXT), {\n            attack: parse(attack, 0.003),\n            knee: parse(knee, 30),\n            ratio: parse(ratio, 12),\n            release: parse(release, 0.25),\n            threshold: parse(threshold, -24),\n        });\n    }\n\n    public set attackSetter(value: AudioParamInput) {\n        audioParam(this.attack, value, this.context.currentTime);\n    }\n\n    public set kneeSetter(value: AudioParamInput) {\n        audioParam(this.knee, value, this.context.currentTime);\n    }\n\n    public set ratioSetter(value: AudioParamInput) {\n        audioParam(this.ratio, value, this.context.currentTime);\n    }\n\n    public set releaseSetter(value: AudioParamInput) {\n        audioParam(this.release, value, this.context.currentTime);\n    }\n\n    public set thresholdSetter(value: AudioParamInput) {\n        audioParam(this.threshold, value, this.context.currentTime);\n    }\n}\n","import {Directive, HostAttributeToken, inject} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {type AudioParamInput} from '../types/audio-param-input';\nimport {audioParam} from '../utils/audio-param';\nimport {parse} from '../utils/parse';\n\n@Directive({\n    selector: '[waGainNode]',\n    inputs: [\n        'gainSetter: gain',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaGain)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaGain extends GainNode {\n    constructor() {\n        const gain = inject(new HostAttributeToken('gain'), {optional: true});\n\n        super(inject(WA_AUDIO_CONTEXT), {gain: parse(gain, 1)});\n    }\n\n    public set gainSetter(value: AudioParamInput) {\n        audioParam(this.gain, value, this.context.currentTime);\n    }\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_FEEDBACK_COEFFICIENTS = new InjectionToken<number[]>(\n    ngDevMode ? '[WA_FEEDBACK_COEFFICIENTS]' : '',\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_FEEDFORWARD_COEFFICIENTS = new InjectionToken<number[]>(\n    ngDevMode ? '[WA_FEEDFORWARD_COEFFICIENTS]' : '',\n);\n","import {Directive, inject} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {WA_FEEDBACK_COEFFICIENTS} from '../tokens/feedback-coefficients';\nimport {WA_FEEDFORWARD_COEFFICIENTS} from '../tokens/feedforward-coefficients';\n\n@Directive({\n    selector: '[waIIRFilterNode]',\n    inputs: ['channelCount', 'channelCountMode', 'channelInterpretation'],\n    providers: [asAudioNode(WaIIRFilter)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaIIRFilter extends IIRFilterNode {\n    constructor() {\n        const feedback = inject(WA_FEEDBACK_COEFFICIENTS);\n        const feedforward = inject(WA_FEEDFORWARD_COEFFICIENTS);\n\n        super(inject(WA_AUDIO_CONTEXT), {feedback, feedforward});\n    }\n}\n","import {Directive, inject} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {type AudioParamInput} from '../types/audio-param-input';\nimport {audioParam} from '../utils/audio-param';\n\n@Directive({\n    selector: '[waPannerNode]',\n    inputs: [\n        'orientationXSetter: orientationX',\n        'orientationYSetter: orientationY',\n        'orientationZSetter: orientationZ',\n        'positionXSetter: positionX',\n        'positionYSetter: positionY',\n        'positionZSetter: positionZ',\n        'coneInnerAngle',\n        'coneOuterAngle',\n        'coneOuterGain',\n        'distanceModel',\n        'maxDistance',\n        'panningModel',\n        'refDistance',\n        'rolloffFactor',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaPanner)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaPanner extends PannerNode {\n    constructor() {\n        super(inject(WA_AUDIO_CONTEXT));\n    }\n\n    public set orientationXSetter(value: AudioParamInput) {\n        audioParam(this.orientationX, value, this.context.currentTime);\n    }\n\n    public set orientationYSetter(value: AudioParamInput) {\n        audioParam(this.orientationY, value, this.context.currentTime);\n    }\n\n    public set orientationZSetter(value: AudioParamInput) {\n        audioParam(this.orientationZ, value, this.context.currentTime);\n    }\n\n    public set positionXSetter(value: AudioParamInput) {\n        audioParam(this.positionX, value, this.context.currentTime);\n    }\n\n    public set positionYSetter(value: AudioParamInput) {\n        audioParam(this.positionY, value, this.context.currentTime);\n    }\n\n    public set positionZSetter(value: AudioParamInput) {\n        audioParam(this.positionZ, value, this.context.currentTime);\n    }\n}\n","import {Directive, HostAttributeToken, inject} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {type AudioParamInput} from '../types/audio-param-input';\nimport {audioParam} from '../utils/audio-param';\nimport {parse} from '../utils/parse';\n\n@Directive({\n    selector: '[waStereoPannerNode]',\n    inputs: [\n        'panSetter: pan',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaStereoPanner)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaStereoPanner extends StereoPannerNode {\n    constructor() {\n        const pan = inject(new HostAttributeToken('pan'), {optional: true});\n\n        super(inject(WA_AUDIO_CONTEXT), {pan: parse(pan, 0)});\n    }\n\n    public set panSetter(value: AudioParamInput) {\n        audioParam(this.pan, value, this.context.currentTime);\n    }\n}\n","import {Directive, inject} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\n\n@Directive({\n    selector: '[waWaveShaperNode]',\n    inputs: [\n        'oversample',\n        'curve',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaWaveShaper)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaWaveShaper extends WaveShaperNode {\n    constructor() {\n        super(inject(WA_AUDIO_CONTEXT));\n    }\n}\n","import {Directive, HostAttributeToken, inject, input, output} from '@angular/core';\n\nimport {WaNode} from '../directives/node';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\n\n// TODO: Add AudioWorkletNodeOptions\n@Directive({\n    selector: '[waAudioWorkletNode][name]',\n    inputs: ['channelCount', 'channelCountMode', 'channelInterpretation'],\n    providers: [asAudioNode(WaWorklet)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaNode],\n})\nexport class WaWorklet extends AudioWorkletNode {\n    public readonly name = input('');\n    public readonly processorerror = output();\n\n    constructor() {\n        super(inject(WA_AUDIO_CONTEXT), inject(new HostAttributeToken('name')));\n    }\n\n    public override readonly onprocessorerror = (): void => this.processorerror.emit();\n}\n","import {Pipe, type PipeTransform} from '@angular/core';\n\nimport {type AudioParamAutomation} from '../types/audio-param-automation';\nimport {type AudioParamAutomationMode} from '../types/audio-param-automation-mode';\nimport {type AudioParamCurve} from '../types/audio-param-curve';\n\n@Pipe({name: 'waAudioParam'})\nexport class WaAudioParamPipe implements PipeTransform {\n    /**\n     * Creates {@link AudioParamAutomation} to use with {@link AudioParam} inputs\n     *\n     * @param value target value\n     * @param duration duration of the automation\n     * @param mode either instant for given duration or linear/exponential ramp\n     */\n    public transform(\n        value: number[] | number,\n        duration: number,\n        mode: AudioParamAutomationMode = 'exponential',\n    ): AudioParamAutomation | AudioParamCurve {\n        return value instanceof Array ? {value, duration} : {value, duration, mode};\n    }\n}\n","import {inject, Pipe, type PipeTransform} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\n\n@Pipe({name: 'waPeriodicWave'})\nexport class WaPeriodicWavePipe implements PipeTransform {\n    private readonly context = inject(WA_AUDIO_CONTEXT);\n\n    /**\n     * Creates {@link PeriodicWave} to use with {@link OscillatorNode}\n     *\n     * @param real cosine terms (traditionally the A terms)\n     * @param imag sine terms (traditionally the B terms)\n     * @param disableNormalization see {@lin PeriodicWaveConstraints}\n     */\n    public transform(\n        real: number[],\n        imag?: number[],\n        disableNormalization?: boolean,\n    ): PeriodicWave {\n        return this.context.createPeriodicWave(\n            new Float32Array(real),\n            imag ? new Float32Array(imag) : new Float32Array(real.length),\n            {disableNormalization: !!disableNormalization},\n        );\n    }\n}\n","import {Directive, HostAttributeToken, inject} from '@angular/core';\n\nimport {WaSource} from '../directives/source';\nimport {WaAudioBufferService} from '../services/audio-buffer.service';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {type AudioParamInput} from '../types/audio-param-input';\nimport {audioParam} from '../utils/audio-param';\nimport {parse} from '../utils/parse';\n\n@Directive({\n    selector: '[waAudioBufferSourceNode]',\n    inputs: [\n        'bufferSetter: buffer',\n        'detuneSetter: detune',\n        'playbackRateSetter: playbackRate',\n        'loop',\n        'loopStart',\n        'loopEnd',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaBufferSource)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaSource],\n})\nexport class WaBufferSource extends AudioBufferSourceNode {\n    private readonly service = inject(WaAudioBufferService);\n\n    constructor() {\n        const detune = inject(new HostAttributeToken('detune'), {optional: true});\n\n        const playbackRate = inject(new HostAttributeToken('playbackRate'), {\n            optional: true,\n        });\n\n        super(inject(WA_AUDIO_CONTEXT), {\n            detune: parse(detune, 0),\n            playbackRate: parse(playbackRate, 1),\n        });\n    }\n\n    public set detuneSetter(value: AudioParamInput) {\n        audioParam(this.detune, value, this.context.currentTime);\n    }\n\n    public set playbackRateSetter(value: AudioParamInput) {\n        audioParam(this.playbackRate, value, this.context.currentTime);\n    }\n\n    public set bufferSetter(source: AudioBuffer | string | null) {\n        if (typeof source === 'string') {\n            this.service.fetch(source).then((result) => {\n                this.buffer = result;\n            });\n        } else {\n            this.buffer = source;\n        }\n    }\n}\n","import {Directive, HostAttributeToken, inject} from '@angular/core';\n\nimport {WaSource} from '../directives/source';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {type AudioParamInput} from '../types/audio-param-input';\nimport {audioParam} from '../utils/audio-param';\nimport {parse} from '../utils/parse';\n\n@Directive({\n    selector: '[waConstantSourceNode]',\n    inputs: [\n        'offsetSetter: offset',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n    ],\n    providers: [asAudioNode(WaConstantSource)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaSource],\n})\nexport class WaConstantSource extends ConstantSourceNode {\n    constructor() {\n        super(inject(WA_AUDIO_CONTEXT), {\n            offset: parse(inject(new HostAttributeToken('offset'), {optional: true}), 0),\n        });\n    }\n\n    public set offsetSetter(value: AudioParamInput) {\n        audioParam(this.offset, value, this.context.currentTime);\n    }\n}\n","import {Directive, ElementRef, inject, type OnDestroy} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\n\n@Directive({\n    selector:\n        'audio[waMediaElementAudioSourceNode], video[waMediaElementAudioSourceNode]',\n    providers: [asAudioNode(WaMediaSource)],\n    exportAs: 'AudioNode',\n})\nexport class WaMediaSource extends MediaElementAudioSourceNode implements OnDestroy {\n    constructor() {\n        super(inject<AudioContext>(WA_AUDIO_CONTEXT), {\n            mediaElement: inject(ElementRef).nativeElement,\n        });\n    }\n\n    public ngOnDestroy(): void {\n        this.disconnect();\n    }\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_MEDIA_STREAM = new InjectionToken<MediaStream>(\n    ngDevMode ? '[WA_MEDIA_STREAM]' : '',\n);\n","import {Directive, inject, type OnDestroy} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {WA_MEDIA_STREAM} from '../tokens/media-stream';\n\n@Directive({\n    selector: '[waMediaStreamAudioSourceNode]',\n    providers: [asAudioNode(WaMediaStreamSource)],\n    exportAs: 'AudioNode',\n})\nexport class WaMediaStreamSource extends MediaStreamAudioSourceNode implements OnDestroy {\n    constructor() {\n        super(inject<AudioContext>(WA_AUDIO_CONTEXT), {\n            mediaStream: inject(WA_MEDIA_STREAM),\n        });\n    }\n\n    public ngOnDestroy(): void {\n        this.disconnect();\n    }\n}\n","import {Directive, HostAttributeToken, inject} from '@angular/core';\n\nimport {WaSource} from '../directives/source';\nimport {WA_AUDIO_CONTEXT} from '../tokens/audio-context';\nimport {asAudioNode} from '../tokens/audio-node';\nimport {type AudioParamInput} from '../types/audio-param-input';\nimport {audioParam} from '../utils/audio-param';\nimport {parse} from '../utils/parse';\n\n@Directive({\n    selector: '[waOscillatorNode]',\n    inputs: [\n        'detuneSetter: detune',\n        'frequencySetter: frequency',\n        'type',\n        'channelCount',\n        'channelCountMode',\n        'channelInterpretation',\n        'periodicWave',\n    ],\n    providers: [asAudioNode(WaOscillator)],\n    exportAs: 'AudioNode',\n    hostDirectives: [WaSource],\n})\nexport class WaOscillator extends OscillatorNode {\n    constructor() {\n        const detune = inject(new HostAttributeToken('detune'), {optional: true});\n        const frequency = inject(new HostAttributeToken('frequency'), {optional: true});\n\n        super(inject(WA_AUDIO_CONTEXT), {\n            detune: parse(detune, 0),\n            frequency: parse(frequency, 440),\n        });\n    }\n\n    public set periodicWave(periodicWave: PeriodicWave) {\n        this.setPeriodicWave(periodicWave);\n    }\n\n    public set detuneSetter(value: AudioParamInput) {\n        audioParam(this.detune, value, this.context.currentTime);\n    }\n\n    public set frequencySetter(value: AudioParamInput) {\n        audioParam(this.frequency, value, this.context.currentTime);\n    }\n}\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_AUDIO_WORKLET_PROCESSORS = new InjectionToken<readonly string[]>(\n    ngDevMode ? '[WA_AUDIO_WORKLET_PROCESSORS]' : '',\n    {factory: () => []},\n);\n","import {inject, InjectionToken} from '@angular/core';\n\nimport {WA_AUDIO_CONTEXT} from './audio-context';\nimport {WA_AUDIO_WORKLET_PROCESSORS} from './audio-worklet-processors';\n\nexport const WA_AUDIO_WORKLET_PROCESSORS_READY = new InjectionToken<Promise<boolean>>(\n    ngDevMode ? '[WA_AUDIO_WORKLET_PROCESSORS_READY]' : '',\n    {\n        factory: async () => {\n            const context = inject(WA_AUDIO_CONTEXT);\n            const processors = inject(WA_AUDIO_WORKLET_PROCESSORS);\n\n            return Promise.all(\n                processors.map(async (processor) =>\n                    context.audioWorklet.addModule(processor),\n                ),\n            ).then(() => true);\n        },\n    },\n);\n","import {InjectionToken} from '@angular/core';\n\nexport const WA_WEB_AUDIO_SUPPORT = new InjectionToken<boolean>(\n    ngDevMode ? '[WA_WEB_AUDIO_SUPPORT]' : '',\n    {factory: () => typeof AudioContext !== 'undefined'},\n);\n","import {WaAudioContext} from './directives/audio-context';\nimport {WaChannel} from './directives/channel';\nimport {WaDestination} from './directives/destination';\nimport {WaListener} from './directives/listener';\nimport {WaOfflineContext} from './directives/offline-audio-context';\nimport {WaOutput} from './directives/output';\nimport {WaMediaStreamDestination} from './directives/stream-destination';\nimport {WaAnalyser} from './nodes/analyser';\nimport {WaBiquadFilter} from './nodes/biquad-filter';\nimport {WaChannelMerger} from './nodes/channel-merger';\nimport {WaChannelSplitter} from './nodes/channel-splitter';\nimport {WaConvolver} from './nodes/convolver';\nimport {WaDelay} from './nodes/delay';\nimport {WaDynamicsCompressor} from './nodes/dynamics-compressor';\nimport {WaGain} from './nodes/gain';\nimport {WaIIRFilter} from './nodes/iir-filter';\nimport {WaPanner} from './nodes/panner';\nimport {WaStereoPanner} from './nodes/stereo-panner';\nimport {WaWaveShaper} from './nodes/wave-shaper';\nimport {WaWorklet} from './nodes/worklet';\nimport {WaAudioParamPipe} from './pipes/audio-param.pipe';\nimport {WaPeriodicWavePipe} from './pipes/periodic-wave.pipe';\nimport {WaBufferSource} from './sources/buffer-source';\nimport {WaConstantSource} from './sources/constant-source';\nimport {WaMediaSource} from './sources/media-source';\nimport {WaMediaStreamSource} from './sources/media-stream-source';\nimport {WaOscillator} from './sources/oscillator';\n\nexport const WaWebAudio = [\n    WaAudioContext,\n    WaChannel,\n    WaDestination,\n    WaListener,\n    WaOfflineContext,\n    WaOutput,\n    WaMediaStreamDestination,\n    WaBufferSource,\n    WaConstantSource,\n    WaMediaSource,\n    WaMediaStreamSource,\n    WaOscillator,\n    WaAnalyser,\n    WaBiquadFilter,\n    WaChannelSplitter,\n    WaChannelMerger,\n    WaConvolver,\n    WaDelay,\n    WaDynamicsCompressor,\n    WaGain,\n    WaIIRFilter,\n    WaPanner,\n    WaStereoPanner,\n    WaWaveShaper,\n    WaWorklet,\n    WaAudioParamPipe,\n    WaPeriodicWavePipe,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.WaNode","i1.WaSource"],"mappings":"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"}