Bol Processor 3 dans le navigateur
Le moteur en C de BP3, compilé en WebAssembly, et BPweb, une page qui le fait tourner sans installation.
archivé dernière modification 22 septembre 2026 licence BSD-3-Clause
BP3 tourne d’ordinaire sur un ordinateur, piloté par une interface PHP ; en mars 2026, j’ai compilé son moteur en C avec Emscripten pour qu’une simple page web le fasse dériver. Sa limite principale : ce portage ne suit plus le moteur, et la page en ligne tourne sur un binaire du 11 mars 2026.
La démo se joue sans rien installer : on choisit une grammaire dans la bibliothèque, Produce la dérive, Play la joue.
Le même moteur, appelé par une page
Rien n’a été réécrit : c’est le code C de Bernard Bel, compilé une seconde fois pour une autre cible. Là où l’interface PHP lance un programme et lit ses fichiers, la page appelle directement les fonctions du moteur en JavaScript : charger la grammaire et l’alphabet, produire, construire la structure temporelle.
Ce qui ne peut pas vivre dans un navigateur, le point d’entrée du programme en console, les écritures sur la sortie standard, les réglages du terminal, est écarté à la compilation par des gardes #ifdef __BP3_WASM__. Le code natif n’en est pas changé.
Commencer
Ouvrez la démo, choisissez « Mozart » dans la famille Western / Classical, cliquez sur Produce : le moteur compile la grammaire et rend 510 événements MIDI. Relevé le 28 septembre 2026. Play lance la lecture.
Construire le moteur soi-même demande Emscripten : un clone de BPweb ne contient pas les binaires WebAssembly, contrairement à ce qu’annonce son README. Ils se construisent dans le sous-module bp3-engine avec ./build.sh wasm.
Ce qu’il fait
- Dériver les grammaires de BP3 : la bibliothèque en compte 44, tirées du corpus d’exemples de Bernard Bel, en quatre familles : tabla et musique indienne (8), musique occidentale (6), expériences (14), exemples et tutoriels (16).
- Éditer grammaire, alphabet et réglages, dans trois onglets.
- Rendre le résultat en texte (la suite de terminaux produite) et en événements MIDI.
- Suivre la compilation : l’onglet Messages reprend ce que BP3 écrit en console, erreurs comprises.
Où il en est
Archivé : le fork le dit dans sa description et renvoie au dépôt de Bernard Bel. L’interface BPweb n’a plus changé depuis le 23 avril 2026 ; son dépôt n’a pas de licence, le moteur garde celle du Bol Processor (BSD à trois clauses).
Dans la démo, une grammaire sur trois ne rend rien : relevé le 28 septembre 2026, en produisant les 44 grammaires une à une, chacune dans une page neuve, réglages par défaut, 29 produisent, 13 s’arrêtent sans résultat et 2 dépassent la pile d’appels du navigateur.
Le portage est passé en amont. Le code de Bernard Bel, à sa version 3.5.5, porte les gardes __BP3_WASM__, par exemple autour de main() dans ConsoleMain.c. Et la page d’accueil de bolprocessor.org l’écrit : « In 2026, Romain Peyrichou started integrating BP3 into a WebAssembly (WASM) architecture to create interactive links between BP3 and powerful sound design platforms, such as SuperCollider. » Elle ajoute que le code C de BP3 « has been patched to compile with Emscripten, in addition to MacOS, Windows and Linux ».
Le fork sert aujourd’hui à autre chose : sa branche wasm construit le binaire natif de BP3 qui sert de référence aux comparaisons de BPscript. La démo de BPscript embarque le même moteur, dans une construction du 10 avril 2026.
Fork du moteur · BPweb · Bol Processor · I2 · S10
Merci à Bernard Bel, qui a accueilli ce portage dans son code et sur son site, et aux autres auteurs du Bol Processor que nomme sa licence : Jim Kippen, Srikumar Karaikudi Subramanian, Anthony Kozar.
Fabrication. Claude Code (Claude Opus 5.5), à partir du dépôt, de son README et de ses notes de version. Méthode