A sine wave synth with a 2nd oscillator that modulates the phase with controls to affect the frequency and depth of modulation too,
Log in to post a comment.
// FM Synth // input.freq = 600; // min=100, max=2000, step=1 input.mod_freq = 75; // min=0.1, max=100, step=0.1 input.depth = 0.67; // min=0.0, max=6.0, step=0.01 synth.def( class { constructor (options) { this.phase = 0; this.mod_phase = 0; } process(note, env, tick, options) { this.mod_phase += ditty.dt * input.mod_freq; const mod_wave = Math.sin( this.mod_phase * Math.PI * 2 ) * input.depth; this.phase += ditty.dt * input.freq * mod_wave; const wave = Math.sin( this.phase * Math.PI * 2 ); return [wave, wave]; // left, right } }).play(0, { env: one} );