Une rangée de bols chantants écoute votre voix. Fredonnez une note : seuls les bols accordés sur elle, ou sur l’une de ses harmoniques, se mettent à vibrer et à luire.
Vue d’ensemble
Résonance sympathique pose sur une table sombre une rangée de bols tibétains en bronze, chacun accordé sur une note de la gamme et rempli d’un peu d’eau. L’application ne joue aucune note par elle-même. Quand vous chantez un la, le bol accordé sur la se met à sonner, son eau se ride et un halo doré l’entoure. Le la de l’octave au-dessus s’éveille aussi, parce que votre voix contient cette note dans ses harmoniques. Quand vous vous taisez, les bols continuent de résonner pendant plusieurs secondes et leur lumière s’éteint avec le son.
Une note chantée entre deux bols ne réveille presque rien : il faut viser juste, à une trentaine de cents près (un tiers de demi-ton), et cette tolérance se règle. La note que vous chantez s’affiche discrètement en haut de l’écran, avec son écart en cents, et un petit repère apparaît au-dessus du bol correspondant. On peut aussi jouer sans micro, en touchant les bols : un maillet feutré les frappe doucement.

Les cordes sympathiques du sitar
Un second instrument remplace les bols par les cordes sympathiques d’un sitar, le taraf : des cordes que le musicien ne touche jamais et qui vibrent seules quand une note jouée sur les cordes principales leur correspond. Leurs partiels sont harmoniques, si bien qu’un la chanté fait aussi vibrer la corde de mi, dont la deuxième harmonique tombe sur la troisième de votre voix. Le son est plus court que celui des bols, avec en option le léger grésillement du chevalet (le jawari). La touche B ou le bouton de la barre d’outils passe d’un instrument à l’autre.
Fonctionnalités
- Une vraie résonance : le son du micro alimente directement les résonateurs, sans détection de note ni échantillon. L’énergie de la voix autour de chaque partiel le fait vibrer, et les harmoniques se comportent comme dans la réalité.
- Des bols qui battent : chaque partiel d’un bol est fait de deux modes jumeaux très proches, qui produisent la lente pulsation des bols chantants. Les partiels suivent les rapports d’un bol tibétain (1, 2,71, 5,15, 8,43) et la fondamentale tient de six à quinze secondes.
- Cinq gammes : pentatonique, majeure, mineure, Raga Yaman et chromatique, de 11 à 13 résonateurs. La tonique se règle demi-ton par demi-ton (ré par défaut) et reste dans un registre de voix confortable, entre 110 et 880 Hz.
- Intonation juste ou tempérée : par défaut les bols sont accordés en intonation juste, ce qui fait coïncider les harmoniques de la voix avec les bols de l’octave et de la quinte. Le tempérament égal reste disponible dans les réglages.
- Chaque bol porte son nom de note, orthographié selon la gamme (si bémol en ré mineur, sol dièse dans le Raga Yaman en ré).
- Pensé pour le téléphone : deux rangées de bols en portrait, une seule en paysage, cordes toujours espacées d’au moins 44 pixels, plein écran sur l’iPhone aussi (l’expérience s’étend sur toute la page).
- Larsen maîtrisé : sur haut-parleurs, le son des bols repasse dans le micro. L’application repère cette part du son et baisse la sensibilité si besoin. Avec un casque, l’option Casque augmente le gain et coupe l’annulation d’écho du navigateur.
Sous le capot
Tout le son est calculé dans un AudioWorklet. Chaque partiel de chaque résonateur a deux étages. Un capteur, filtre passe-bande étroit centré sur le partiel, mesure l’énergie de la voix dans la tolérance. Un mode résonant, oscillateur amorti à la fréquence exacte du partiel, monte vers une amplitude qui dépend de cette énergie puis décroît à son rythme propre quand la voix s’arrête. Les deux étages sont séparés pour une raison physique : un résonateur qui sonne dix secondes a une bande passante de 0,2 Hz, il faudrait chanter juste au cent près pour l’exciter. La rotation de phase du signal capté donne en plus l’écart de hauteur, ce qui coupe net l’excitation au-delà de la tolérance.
Le larsen a été traité à part, car le son des bols revient dans le micro exactement sur leurs fréquences. Un petit annuleur d’écho par partiel cherche la part du signal qui suit la phase du bol lui-même et la retire : une vraie voix dérive toujours de quelques cents, l’écho jamais. En plus de l’annulation d’écho du navigateur, un garde réduit le gain si la boucle devient trop forte, l’amplitude de chaque mode est plafonnée et un limiteur protège la sortie. Dans les tests, la sortie renvoyée intégralement dans l’entrée s’éteint en quelques secondes, alors que sans ces protections elle tient indéfiniment. Treize bols coûtent environ 2,5 % du temps de calcul audio.
Le micro n’est jamais renvoyé vers les haut-parleurs : on n’entend que les résonateurs, un son mat et filtré, sans aucun bip d’interface. Rien n’est enregistré ni envoyé.
Contrôles
| Touche / geste | Action |
|---|---|
| Voix | Faire sonner les résonateurs : fredonner, chanter une note tenue |
| Toucher ou cliquer un bol | Le frapper doucement avec un maillet feutré |
| M | Allumer ou couper le micro |
| Espace | Étouffer tous les résonateurs |
| 1 à 9, 0 | Frapper le résonateur 1 à 10 (sur un clavier AZERTY : &, é, "…) |
| B | Passer des bols au sitar, et inversement |
| G | Gamme suivante |
| ← et → | Tonique un demi-ton plus bas, plus haut |
| + et −, ou ↑ et ↓ | Sensibilité du micro |
| F | Plein écran |
| H | Afficher l’aide et les raccourcis |
| Échap | Fermer l’aide ou les réglages, quitter le plein écran |
| Barre d’outils | Micro, bols ou sitar, gamme, tonique, réglages (tolérance, accord juste ou tempéré, casque, jawari, volume), plein écran |
Stack technique
- Vanilla JS en modules ES6, aucune dépendance, aucun build, aucune police externe
- Web Audio : AudioWorklet (capteurs passe-bande complexes, modes résonants, annuleur d’écho NLMS par partiel), réverbération par convolution générée dans le code, compresseur et limiteur
- Détection de hauteur YIN pour l’affichage de la note chantée
- Canvas 2D : bols en vue de trois quarts, halos additifs, ondulations à la surface de l’eau, cordes qui vibrent
Cas d’usage
On peut y travailler la justesse d’une note tenue, en cherchant le moment où le bol s’allume, ou chanter lentement une gamme pour réveiller les bols un par un. Un la grave tenu longtemps montre quels bols répondent à ses harmoniques, ce qui rend visible la matière d’une voix. Sans micro, quelques bols frappés au doigt suffisent pour une petite pause sonore.
On tient une note, et quelque part dans la rangée un bol répond.



