Kanopi
Environnement de live coding dans le navigateur qui fait jouer plusieurs langages sur une même horloge, BPscript compris.
expérimental dernière modification 7 septembre 2026 licence AGPL-3.0-or-later
Kanopi part d’un constat, celui de son README : Flok édite plusieurs langages de live coding à la fois, Estuary partage une horloge, Max/MSP parle au matériel, et aucun outil ne réunit les trois. Sa limite principale : c’est une version alpha qui ne s’installe pas depuis son dépôt public, lequel dépend de onze paquets locaux dont plusieurs sont privés ; la version en ligne date du 6 juillet 2026.
La version en ligne s’ouvre sans rien installer, avec deux scènes d’exemple.
Un éditeur par langage, un transport pour tous
On peut penser Kanopi comme un éditeur de code dont chaque fichier est écrit dans son propre langage, surmonté d’un transport de séquenceur : une horloge, un tempo, une position en mesure et en temps. Chaque langage est branché par un adaptateur qui garde les outils de son éditeur d’origine ; Strudel, par exemple, garde sa coloration et ses aides par ses propres modules.
Une scène BPscript sert de chef d’orchestre : elle nomme des acteurs, les voix, dit quel langage joue chacun, et décide par ses règles qui joue quand.
Commencer
Ouvrez la version en ligne, puis le fichier main.bps dans la colonne de gauche. C’est une scène à trois voix de code, commutées par un drapeau :
@library.strudel "dirt-samples"
@actor drums transport.audio eval.tidal
@actor visuals transport.video eval.hydra
@actor bass transport.audio eval.strudel
@flag scene: intro:1, drop:2, break:3
[scene==intro] S -> visuals
[scene==drop] S -> { drums, visuals, bass }
[scene==break] S -> { visuals, bass }
drums -> `stack(s("bd*4").gain(0.9), s("~ cp").room(0.4), s("hh*8").gain(0.5).pan(sine.range(0.2, 0.8).slow(4)))`
visuals -> `osc(60, 0.1, 1.5).modulate(noise(3)).rotate(() => time/10).out()`
bass -> `note("c2 c2 eb2 g2").s("sawtooth").gain(0.4)`
L’éditeur l’accepte (« COMPILES ») et le panneau Actors affiche les trois voix. Relevé le 28 septembre 2026 sur la version en ligne, dont la ligne d’état indique v0.1.0-alpha. Le transport affiche alors trois boutons de scène : intro, drop, break.
Ce qu’il fait
- Faire jouer six langages de code dans le navigateur : Strudel, Hydra, p5.js, Mercury, Csound et JavaScript.
- Dériver des grammaires BP3 et des scènes BPscript, qui ordonnent ces voix dans le temps (BPscript).
- Tenir un transport commun : lecture, arrêt, tempo tapé, position en mesure et en temps.
- Commuter des scènes par drapeau, comme dans l’exemple ci-dessus.
- Offrir une bibliothèque de grammaires BP3 et de scènes BPscript.
- Moduler les sons : une valeur entre 0 et 1, portée sur la plage de l’entrée choisie (S14).
Où il en est
Le 7 septembre 2026, les 86 fichiers de tests unitaires passaient, mais la vérification complète s’arrêtait encore au contrôle de typage (baseline-status.json du dépôt). Les fichiers SuperCollider et Python s’ouvrent, mais aucun adaptateur ne les exécute.
Le dépôt public n’a pas bougé depuis le 7 septembre 2026 : le travail continue dans un dépôt privé qui réunit Kanopi, BPscript et leurs moteurs.
Dépôt · Version en ligne · S7 · S11 · osc-bridge
Merci aux auteurs de Strudel, Hydra, Mercury, p5.js et Csound : Kanopi embarque leurs moteurs sans les réécrire.
Fabrication. Claude Code (Claude Opus 5.5), à partir du dépôt, de son README et de ses notes de version. Méthode