Aller au contenu
roomi fields

Composer avec des structures

BPscript

Langage de composition qui écrit en clair les grammaires du Bol Processor (BP3) et les fait dériver dans le navigateur.

actif dernière modification 30 octobre 2026

Essayer

BPscript vient de BP3, le Bol Processor que Bernard Bel et Jim Kippen développent depuis 1981 : il en garde les règles pondérées, les drapeaux et la polymétrie, et remplace une syntaxe dense par un langage lisible. Sa limite principale : le code est privé ; seule la démo en ligne se joue, et elle est figée depuis juin 2026.

La démo se joue sans rien installer : 53 exemples, dont un tutoriel en dix étapes, qu’on modifie et qu’on produit dans la page.

Une scène est un jeu de règles de réécriture

On écrit des règles : S -> A B dit que le symbole de départ S se réécrit en A puis B, et ainsi de suite jusqu’aux terminaux, les notes ou les sons. La structure temporelle, ce qui vient quand et pour combien de temps, tient dans ces règles.

Le son vient d’ailleurs : des librairies déclarées en tête (alphabet de notes, accordage, contrôles) et, pour le reste, de code natif placé entre backticks. Le langage lui-même tient en trois mots réservés et vingt-quatre symboles (S2).

Commencer

Dans la démo, ouvrez le tutoriel « 8. Polymetry » et cliquez sur Produce :

@core
@controls
@alphabet.western:browser

S -> {C4 E4 G4, D4 F4 A4 C5}

La page affiche la grammaire BP3 produite, gram#1[1] S --> {C4 E4 G4,D4 F4 A4 C5}, puis le moteur place trois notes de 1 000 ms contre quatre de 750 ms, sur les mêmes trois secondes. Relevé le 28 septembre 2026 sur la démo en ligne (fichier demos/tuto-08-polymetry.bps). La lecture passe par Play, dans le navigateur, ou par le bouton MIDI.

La démo emploie la syntaxe de juin 2026. Dans la version actuelle, les directives s’écrivent sans @ (core, alphabet.western:audio) et une ligne ----- les sépare des règles.

Ce qu’il fait

  • Tirer une règle au hasard selon son poids : sous @mode:random, Motif -> C4 E4 G4 E4 [weight:40] (tutoriel 7).
  • Superposer des voix de longueurs différentes : {…, …} étire chaque voix sur la même durée (tutoriel 8, exemple « 3 vs 4 vs 5 »).
  • Écrire silences et prolongations : - et _ (tutoriel 3).
  • Compter et conditionner avec des drapeaux et des gardes (tutoriel 10, exemple « Flags Counter »).
  • Séparer la structure du matériau en sous-grammaires (tutoriel 9).
  • Accorder : tempérament égal, intonation juste, la à 442 Hz, maqam rast en quarts de ton, gamelan slendro et pelog, échelle de Bohlen-Pierce.
  • Sortir en Web Audio ou en MIDI : canaux, contrôleurs, pitch bend calculé pour la microtonalité, deux sorties à la fois grâce aux acteurs (@actor).
  • Embarquer du code entre backticks (S4) : du JavaScript dans la démo ; l’exemple SuperCollider demande un pont installé en local.
  • Modifier pendant que ça joue : le bouton Live redérive la scène en cours de lecture (S11).

Où il en est

Licence : à définir. Dans la démo, 4 exemples sur 53 échouent à la compilation, les deux ragas « Raga Sargam » et « Solfège » (relevé le 28 septembre 2026, en produisant les exemples un par un).

Depuis le 19 juillet 2026, le compilateur ne produit plus de texte BP3 : il rend un arbre, que dérive BPx, un moteur écrit pour succéder à BP3 et encore privé (S10, S13). BP3 reste la référence : on compare, grammaire par grammaire, ce que produisent les deux moteurs. Le 7 septembre 2026, les 239 contrôles automatiques passaient (fichier baseline-status.json du dépôt).

Le code est privé : le travail se fait dans un dépôt qui réunit BPscript, Kanopi et leurs moteurs.

Démo · S1 · S12 · BP3 dans le navigateur · Bol Processor

Merci à Bernard Bel, dont le moteur et les grammaires d’exemple servent de référence, et qui a intégré à BP3, dès sa version 3.3.19, une correction issue de ces comparaisons.

Fabrication. Claude Code (Claude Opus 5.5), à partir du dépôt, de son README et de ses notes de version. Méthode