J'ai répondu à cette question en utilisant l'API audio et les promesses, je ne prétends pas avoir trouvé la meilleure solution.
1 2 3 4 5 6 7 8
| const
ctx = new AudioContext(),
note = ( frequency = 277.18, duration = 1.0, type = "sine" ) => {
/*
* fonction note : joue une note de musique
* type : sine, triangle, square, sawtooth
* frequency : voir tableau
* duration : durée de la note en seconde |
...