Поскольку квартальная нота составляет 192 тика, вы можете использовать ее для определения времени других событий и условий:
(function() {
Tone.Transport.bpm.value = 100;
Tone.Transport.timeSignature = "4/4";
Tone.Transport.scheduleRepeat(function(time){
console.log('Quarter Notes:', Tone.Transport.getTicksAtTime(time) / 192);
}, "4n");
var isPlaying = false;
document.getElementById('togglePlayback').addEventListener('click', function() {
if (isPlaying) {
Tone.Transport.pause();
} else {
Tone.Transport.start();
}
isPlaying = !isPlaying;
});
})();
<script src="https://cdnjs.cloudflare.com/ajax/libs/tone/13.7.1/Tone.js"></script>
<div>
<button id="togglePlayback">Start</button>
</div>
<div id="results"></div>
Я также изменил вашу логику для воспроизведения / паузы вместо того, чтобы планировать новые повторы и начинать с начала воспроизведения при каждом нажатии второй кнопки.