Estou trabalhando em um programa de música que requer vários elementos JavaScript para estar em sincronia com outro. Tenho usado setInterval, o que funciona muito bem inicialmente. No entanto, com o tempo, os elementos ficam gradualmente fora de sincronia, o que é ruim em um programa de música.
Eu li online que setTimeouté mais preciso e você pode ter setTimeoutloops de alguma forma. No entanto, não encontrei uma versão genérica que ilustre como isso é possível.
Basicamente, tenho algumas funções como:
//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);
Funciona muito bem, inicialmente, mas ao longo de cerca de um minuto, os sons tornam-se visivelmente fora de sincronia conforme li acontece com setInterval. Eu li que setTimeoutpode ser mais preciso.
Alguém poderia me mostrar um exemplo básico de uso setTimeoutpara fazer um loop indefinido de algo? Como alternativa, se houver uma maneira de obter resultados mais sincronizados com setIntervalou mesmo outra função, entre em contato.