DelayNode::DelayNode(AbstractAudioContext& context, double maxDelayTime) : AudioNode(context) , m_delayTime(AudioParam::create(context, ParamTypeDelayDelayTime, 0.0, 0.0, maxDelayTime)) { setHandler(AudioBasicProcessorHandler::create( AudioHandler::NodeTypeDelay, *this, context.sampleRate(), wrapUnique(new DelayProcessor( context.sampleRate(), 1, m_delayTime->handler(), maxDelayTime)))); }
// ---------------------------------------------------------------- AudioBufferSourceNode::AudioBufferSourceNode(AbstractAudioContext& context) : AudioScheduledSourceNode(context) , m_playbackRate(AudioParam::create(context, ParamTypeAudioBufferSourcePlaybackRate, 1.0)) , m_detune(AudioParam::create(context, ParamTypeAudioBufferSourceDetune, 0.0)) { setHandler(AudioBufferSourceHandler::create( *this, context.sampleRate(), m_playbackRate->handler(), m_detune->handler())); }
DynamicsCompressorNode::DynamicsCompressorNode(AbstractAudioContext& context) : AudioNode(context) , m_threshold(AudioParam::create(context, ParamTypeDynamicsCompressorThreshold, -24, -100, 0)) , m_knee(AudioParam::create(context, ParamTypeDynamicsCompressorKnee, 30, 0, 40)) , m_ratio(AudioParam::create(context, ParamTypeDynamicsCompressorRatio, 12, 1, 20)) , m_attack(AudioParam::create(context, ParamTypeDynamicsCompressorAttack, 0.003, 0, 1)) , m_release(AudioParam::create(context, ParamTypeDynamicsCompressorRelease, 0.250, 0, 1)) { setHandler(DynamicsCompressorHandler::create( *this, context.sampleRate(), m_threshold->handler(), m_knee->handler(), m_ratio->handler(), m_attack->handler(), m_release->handler())); }
WaveShaperNode::WaveShaperNode(AbstractAudioContext& context) : AudioNode(context) { setHandler(AudioBasicProcessorHandler::create(AudioHandler::NodeTypeWaveShaper, *this, context.sampleRate(), adoptPtr(new WaveShaperProcessor(context.sampleRate(), 1)))); handler().initialize(); }