UNPKG

@pixi/sound

Version:

WebAudio API playback library with filters

1 lines 3.36 kB
{"version":3,"file":"StereoFilter.mjs","sources":["../../src/filters/StereoFilter.ts"],"sourcesContent":["import { getInstance } from '../instance';\nimport { WebAudioUtils } from '../webaudio/WebAudioUtils';\nimport { Filter } from './Filter';\n\n/**\n * Filter for adding Stereo panning.\n *\n * @memberof filters\n */\nclass StereoFilter extends Filter\n{\n /** The stereo panning node */\n private _stereo: StereoPannerNode;\n\n /** The stereo panning node */\n private _panner: PannerNode;\n\n /** The amount of panning, -1 is left, 1 is right, 0 is centered */\n private _pan: number;\n\n /** @param pan - The amount of panning, -1 is left, 1 is right, 0 is centered. */\n constructor(pan = 0)\n {\n let stereo: StereoPannerNode;\n let panner: PannerNode;\n let destination: AudioNode;\n\n if (!getInstance().useLegacy)\n {\n const { audioContext } = getInstance().context;\n\n if (audioContext.createStereoPanner)\n {\n stereo = audioContext.createStereoPanner();\n destination = stereo;\n }\n else\n {\n panner = audioContext.createPanner();\n panner.panningModel = 'equalpower';\n destination = panner;\n }\n }\n\n super(destination);\n\n this._stereo = stereo;\n this._panner = panner;\n\n this.pan = pan;\n }\n\n /** Set the amount of panning, where -1 is left, 1 is right, and 0 is centered */\n set pan(value: number)\n {\n this._pan = value;\n if (this._stereo)\n {\n WebAudioUtils.setParamValue(this._stereo.pan, value);\n }\n else if (this._panner)\n {\n this._panner.setPosition(value, 0, 1 - Math.abs(value));\n }\n }\n get pan(): number\n {\n return this._pan;\n }\n\n public destroy(): void\n {\n super.destroy();\n this._stereo = null;\n this._panner = null;\n }\n}\n\nexport { StereoFilter };\n"],"names":[],"mappings":";;;;AASA,MAAM,qBAAqB,MAC3B,CAAA;AAAA;AAAA,EAWI,WAAA,CAAY,MAAM,CAClB,EAAA;AACI,IAAI,IAAA,MAAA,CAAA;AACJ,IAAI,IAAA,MAAA,CAAA;AACJ,IAAI,IAAA,WAAA,CAAA;AAEJ,IAAI,IAAA,CAAC,WAAY,EAAA,CAAE,SACnB,EAAA;AACI,MAAA,MAAM,EAAE,YAAA,EAAiB,GAAA,WAAA,EAAc,CAAA,OAAA,CAAA;AAEvC,MAAA,IAAI,aAAa,kBACjB,EAAA;AACI,QAAA,MAAA,GAAS,aAAa,kBAAmB,EAAA,CAAA;AACzC,QAAc,WAAA,GAAA,MAAA,CAAA;AAAA,OAGlB,MAAA;AACI,QAAA,MAAA,GAAS,aAAa,YAAa,EAAA,CAAA;AACnC,QAAA,MAAA,CAAO,YAAe,GAAA,YAAA,CAAA;AACtB,QAAc,WAAA,GAAA,MAAA,CAAA;AAAA,OAClB;AAAA,KACJ;AAEA,IAAA,KAAA,CAAM,WAAW,CAAA,CAAA;AAEjB,IAAA,IAAA,CAAK,OAAU,GAAA,MAAA,CAAA;AACf,IAAA,IAAA,CAAK,OAAU,GAAA,MAAA,CAAA;AAEf,IAAA,IAAA,CAAK,GAAM,GAAA,GAAA,CAAA;AAAA,GACf;AAAA;AAAA,EAGA,IAAI,IAAI,KACR,EAAA;AACI,IAAA,IAAA,CAAK,IAAO,GAAA,KAAA,CAAA;AACZ,IAAA,IAAI,KAAK,OACT,EAAA;AACI,MAAA,aAAA,CAAc,aAAc,CAAA,IAAA,CAAK,OAAQ,CAAA,GAAA,EAAK,KAAK,CAAA,CAAA;AAAA,KACvD,MAAA,IACS,KAAK,OACd,EAAA;AACI,MAAK,IAAA,CAAA,OAAA,CAAQ,YAAY,KAAO,EAAA,CAAA,EAAG,IAAI,IAAK,CAAA,GAAA,CAAI,KAAK,CAAC,CAAA,CAAA;AAAA,KAC1D;AAAA,GACJ;AAAA,EACA,IAAI,GACJ,GAAA;AACI,IAAA,OAAO,IAAK,CAAA,IAAA,CAAA;AAAA,GAChB;AAAA,EAEO,OACP,GAAA;AACI,IAAA,KAAA,CAAM,OAAQ,EAAA,CAAA;AACd,IAAA,IAAA,CAAK,OAAU,GAAA,IAAA,CAAA;AACf,IAAA,IAAA,CAAK,OAAU,GAAA,IAAA,CAAA;AAAA,GACnB;AACJ;;;;"}