UNPKG

tone

Version:

A Web Audio framework for making interactive music in the browser.

55 lines 2.18 kB
import * as tslib_1 from "tslib"; import { ToneAudioNode } from "../../core/context/ToneAudioNode"; import { Split } from "./Split"; import { Add } from "../../signal/Add"; import { Multiply } from "../../signal/Multiply"; import { Subtract } from "../../signal/Subtract"; import { optionsFromArguments } from "../../core/util/Defaults"; /** * Mid/Side processing separates the the 'mid' signal (which comes out of both the left and the right channel) * and the 'side' (which only comes out of the the side channels). * ``` * Mid = (Left+Right)/sqrt(2); // obtain mid-signal from left and right * Side = (Left-Right)/sqrt(2); // obtain side-signal from left and right * ``` */ var MidSideSplit = /** @class */ (function (_super) { tslib_1.__extends(MidSideSplit, _super); function MidSideSplit() { var _this = _super.call(this, optionsFromArguments(MidSideSplit.getDefaults(), arguments)) || this; _this.name = "MidSideSplit"; _this._split = _this.input = new Split({ channels: 2, context: _this.context }); _this._midAdd = new Add({ context: _this.context }); _this.mid = new Multiply({ context: _this.context, value: Math.SQRT1_2, }); _this._sideSubtract = new Subtract({ context: _this.context }); _this.side = new Multiply({ context: _this.context, value: Math.SQRT1_2, }); _this._split.connect(_this._midAdd, 0); _this._split.connect(_this._midAdd.addend, 1); _this._split.connect(_this._sideSubtract, 0); _this._split.connect(_this._sideSubtract.subtrahend, 1); _this._midAdd.connect(_this.mid); _this._sideSubtract.connect(_this.side); return _this; } MidSideSplit.prototype.dispose = function () { _super.prototype.dispose.call(this); this.mid.dispose(); this.side.dispose(); this._midAdd.dispose(); this._sideSubtract.dispose(); this._split.dispose(); return this; }; return MidSideSplit; }(ToneAudioNode)); export { MidSideSplit }; //# sourceMappingURL=MidSideSplit.js.map