Sto lavorando a un programma musicale che richiede che più elementi JavaScript siano sincronizzati con un altro. Sto usando setInterval, che inizialmente funziona molto bene. Tuttavia, nel tempo gli elementi perdono gradualmente la sincronizzazione, il che è negativo in un programma musicale.
Ho letto online che setTimeoutè più accurato e puoi avere dei setTimeoutloop in qualche modo. Tuttavia, non ho trovato una versione generica che illustri come ciò sia possibile.
Fondamentalmente ho alcune funzioni come queste:
//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);
Funziona molto bene, inizialmente, ma nel corso di circa un minuto, i suoni diventano notevolmente fuori sincrono come ho letto setInterval. Ho letto che setTimeoutpuò essere sempre più accurato.
Qualcuno potrebbe mostrarmi un semplice esempio di utilizzo setTimeoutper ripetere qualcosa indefinitamente? In alternativa, se esiste un modo per ottenere risultati più sincroni con setIntervalo anche un'altra funzione, fammelo sapere.