import { AudioNodeClass, AudioNodeClassOptions, AudioNodeKeyName, AudioNodeKind, DefaultAudioNodeKindFromKeyName, } from "./audioNode" import { getAudioNodeConfig } from "./getAudioNodeConfig" /** Instantiate an AudioNode by its key name */ export const createAudioNode = < K extends AudioNodeKeyName, Kind extends AudioNodeKind = DefaultAudioNodeKindFromKeyName >( key: K, ctx: AudioContext, options?: AudioNodeClassOptions ): InstanceType> => { return new (getAudioNodeConfig(key).cls)(ctx, options as any) as any }