use exact frame frequency (as calculated from the clock speed of the Spectrum model) within sound generation routines
implement more accurate frame timing (use requestAnimationFrame to trigger frequent iterations, and check clock on each iteration to run as many Spectrum frames as required) to avoid audio glitches