UNPKG

@polygonjs/polygonjs

Version:

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

39 lines (32 loc) 1.02 kB
/** * creates a PolySynth * * */ import {TypedAudioNode} from './_Base'; import {NodeParamsConfig} from '../utils/params/ParamsConfig'; import {AudioBuilder} from '../../../core/audio/AudioBuilder'; import {PolySynth} from 'tone/build/esm/instrument/PolySynth'; import {Synth} from 'tone/build/esm/instrument/Synth'; import {AudioType} from '../../poly/registers/nodes/types/Audio'; class PolySynthAudioParamsConfig extends NodeParamsConfig {} const ParamsConfig = new PolySynthAudioParamsConfig(); export class PolySynthAudioNode extends TypedAudioNode<PolySynthAudioParamsConfig> { override paramsConfig = ParamsConfig; static override type() { return AudioType.POLY_SYNTH; } override initializeNode() { this.io.inputs.setCount(0); } override cook(inputContents: AudioBuilder[]) { const synth = new PolySynth(Synth, { oscillator: { partials: [0, 2, 3, 4], }, }); const audioBuilder = new AudioBuilder(); audioBuilder.setInstrument(synth); this.setAudioBuilder(audioBuilder); } }