UNPKG

react-native-audio-api

Version:

react-native-audio-api provides system for controlling audio in React Native environment compatible with Web Audio API specification

43 lines (33 loc) 1.06 kB
import { InvalidStateError } from '../errors'; import AudioNode from './AudioNode.web'; export default class WaveShaperNode extends AudioNode { private isCurveSet: boolean = false; get curve(): Float32Array | null { if (!this.isCurveSet) { return null; } return (this.node as globalThis.WaveShaperNode).curve; } get oversample(): OverSampleType { return (this.node as globalThis.WaveShaperNode).oversample; } set curve(curve: Float32Array<ArrayBuffer> | null) { if (curve !== null) { if (this.isCurveSet) { throw new InvalidStateError( 'The curve can only be set once and cannot be changed afterwards.' ); } if (curve.length < 2) { throw new InvalidStateError( 'The curve must have at least two values if not null.' ); } this.isCurveSet = true; } (this.node as globalThis.WaveShaperNode).curve = curve; } set oversample(value: OverSampleType) { (this.node as globalThis.WaveShaperNode).oversample = value; } }