Effects
Effects process audio signals. Connect them between a source and the destination to modify the sound. All effects have a wet property to control the mix.
Reverb
1let reverb = Reverb.make()2let reverb2 = Reverb.makeWithDecay(3.0)3let reverb3 = Reverb.makeWithOptions({4 decay: 2.5,5 preDelay: 0.01,6 wet: 0.8,7})89reverb->Reverb.decay // time10reverb->Reverb.setDecay(4.0)11reverb->Reverb.preDelay // time12reverb->Reverb.wet // Param.t13reverb->Reverb.ready // promise<unit>14reverb->Reverb.generate() // promise<t>Freeverb
1let verb = Freeverb.make()2let verb2 = Freeverb.makeWithOptions({3 roomSize: 0.8,4 dampening: 3000.0,5})67verb->Freeverb.roomSize // Param.t8verb->Freeverb.dampening // Param.tFeedbackDelay
1let delay = FeedbackDelay.make()2let delay2 = FeedbackDelay.makeWithOptions({3 delayTime: "8n",4 feedback: 0.3,5 wet: 0.5,6})78delay->FeedbackDelay.delayTime // Param.t9delay->FeedbackDelay.feedback // Param.tPingPongDelay
1let ppd = PingPongDelay.make()2let ppd2 = PingPongDelay.makeWithOptions({3 delayTime: "4n",4 feedback: 0.4,5})Chorus
1let chorus = Chorus.make()2let chorus2 = Chorus.makeWithOptions({3 frequency: 1.5,4 delayTime: 3.5,5 depth: 0.7,6})78chorus->Chorus.frequency // Param.t9chorus->Chorus.delayTime // float10chorus->Chorus.depth // float11chorus->Chorus.start()Distortion
1let dist = Distortion.make()2let dist2 = Distortion.makeWithOptions({3 distortion: 0.8,4 oversample: "4x",5})67dist->Distortion.distortion // float8dist->Distortion.setDistortion(0.5)Phaser
1let phaser = Phaser.make()2let phaser2 = Phaser.makeWithOptions({3 frequency: 0.5,4 octaves: 3,5 baseFrequency: 350.0,6})Tremolo & Vibrato
1let trem = Tremolo.make()2trem->Tremolo.start()3trem->Tremolo.frequency // Param.t4trem->Tremolo.depth // Param.t56let vib = Vibrato.make()7vib->Vibrato.frequency // Param.t8vib->Vibrato.depth // Param.tOther Effects
Additional effects include AutoFilter, AutoPanner, AutoWah, BitCrusher, Chebyshev, FrequencyShifter, JCReverb, PitchShift, and StereoWidener. They all follow the same pattern:
1// All effects follow this pattern:2let effect = SomeEffect.make()3// or4let effect = SomeEffect.makeWithOptions({...})56// Connect in a chain7synth->Synth.asAudioNode8->AudioNode.connect(effect->SomeEffect.asAudioNode)9->AudioNode.toDestination1011// Control wet/dry mix12effect->SomeEffect.wet // Param.t1314// Cleanup15effect->SomeEffect.dispose()