namespace pxsim { export class SpeakerState { frequency: number; ms: number; } } namespace pxsim.music { export function playTone(frequency: number, ms: number) { const b = board(); b.speakerState.frequency = frequency; b.speakerState.ms = ms; runtime.queueDisplayUpdate(); let cb = getResume(); AudioContextManager.tone(frequency, 1); if (ms <= 0) cb(); else { setTimeout(() => { AudioContextManager.stop(); b.speakerState.frequency = 0; b.speakerState.ms = 0; runtime.queueDisplayUpdate(); cb() }, ms); } } }