A classical example of a nonlinear oscillator. As r increases, the timbre becomes progressively richer, but the period increases, making the synth out of tune.
Log in to post a comment.
input.r = 0.1; // min=-0, max=5, step=0.01
const vanDerPol = synth.def( class {
constructor(options) {
this.x = 0;
this.y = 0;
this.a0 = 2 * Math.PI * midi_to_hz(options.note) * ditty.dt;
}
process(note,env,tick,options) {
this.x += this.a0 * this.y + 1e-6*Math.random();
this.y += this.a0 * (-input.r * (this.x*this.x - 1)*this.y - this.x);
return this.x;
}
}, {env:one, amp:0.15});
vanDerPol.play(c3);
vanDerPol.play(c4);
vanDerPol.play(e4);
vanDerPol.play(g4);