UNPKG

@polygonjs/polygonjs

Version:

node-based WebGL 3D engine https://polygonjs.com

39 lines (38 loc) 1.11 kB
"use strict"; import { StereoWidener } from "tone/build/esm/effect/StereoWidener"; const DEFAULTS = { width: 0.5 }; import { TypedAudioNode } from "./_Base"; import { NodeParamsConfig, ParamConfig } from "../utils/params/ParamsConfig"; class StereoWidenerAudioParamsConfig extends NodeParamsConfig { constructor() { super(...arguments); /** @param width */ this.width = ParamConfig.FLOAT(DEFAULTS.width, { range: [0, 1], rangeLocked: [true, true] }); } } const ParamsConfig = new StereoWidenerAudioParamsConfig(); export class StereoWidenerAudioNode extends TypedAudioNode { constructor() { super(...arguments); this.paramsConfig = ParamsConfig; } static type() { return "stereoWidener"; } initializeNode() { this.io.inputs.setCount(1); } cook(inputContents) { const audioBuilder = inputContents[0]; const effect = new StereoWidener(this.pv.width); const inputNode = audioBuilder.audioNode(); if (inputNode) { inputNode.connect(effect); } audioBuilder.setAudioNode(effect); this.setAudioBuilder(audioBuilder); } }