const heart = synth.def(
class {
constructor(options) {
this.phase = 0;
}
process(note, env, tick, options) {
this.phase += midi_to_hz(note) * ditty.dt * (env.value ** options.xenv);
return Math.sin(this.phase * Math.PI * 2) * env.value;
}
}, { xenv: 0.5, amp: 2, attack: 0.01, release: 0.3, env: adsr2 }
);
loop( (beat) => {
heart.play(c3, { attack: 0.01, release: 0.25, pan: (Math.random() * 2 - 1) * 0.25, amp: (beat % 8 == 0 ? 1 : ((beat % 8 == 2) ? 0.75 : 0)) });
sleep( 0.25 );
});