Je travaille sur un programme musical qui nécessite plusieurs éléments JavaScript pour être synchronisés avec un autre. J'utilise setInterval, qui fonctionne très bien au début. Cependant, avec le temps, les éléments deviennent progressivement désynchronisés, ce qui est mauvais dans un programme musical.
J'ai lu en ligne qui setTimeoutest plus précis, et vous pouvez avoir des setTimeoutboucles d'une manière ou d'une autre. Cependant, je n'ai pas trouvé de version générique qui illustre comment cela est possible.
En gros, j'ai quelques fonctions comme celles-ci:
//drums
setInterval(function {
//code for the drums playing goes here
}, 8000);
//chords
setInterval(function {
//code for the chords playing goes here
}, 1000);
//bass
setInterval(function {
//code for the bass playing goes here
}, 500);
Cela fonctionne très bien, au début, mais en l'espace d'une minute environ, les sons deviennent sensiblement désynchronisés au fur et à mesure que je l'ai lu setInterval. J'ai lu que cela setTimeoutpeut être plus précis.
Quelqu'un pourrait-il simplement me montrer un exemple de base d'utilisation setTimeoutpour boucler quelque chose indéfiniment? Sinon, s'il existe un moyen d'obtenir des résultats plus synchrones avec setIntervalou même une autre fonction, veuillez me le faire savoir.