Live coding Strudel directement depuis un fichier JS dans VSCode. Le moteur audio est embarqué dans l'extension (aucun serveur, aucun conteneur requis). Les modifications du fichier s'appliquent automatiquement à la fin du cycle en cours — la musique ne s'interrompt jamais.
-
Ouvre ton fichier de pattern (
.js), par exemple :s("bd hh sd hh")
-
Clique sur l'icône ▶ dans la barre de titre de l'éditeur (ou
Ctrl+Shift+P→ Strudel: Start Session). -
Le panneau Strudel s'ouvre à côté et charge le moteur + les sons (réseau requis pour les samples).
-
Clique ▶ dans le panneau (une seule fois — politique audio).
-
Édite ton fichier : chaque changement est appliqué à la fin du cycle en cours. C'est tout.
| Commande | Raccourci | Effet |
|---|---|---|
| Strudel: Start Session | bouton ▶ (titre éditeur) | Ouvre le panneau et lit le fichier courant |
| Strudel: Evaluate | Ctrl+Enter |
Mise à jour immédiate (sans attendre le cycle) |
| Strudel: Stop | Ctrl+. |
Coupe le son |
| Strudel: Toggle Play / Stop | clic barre d'état | Lecture / arrêt |
| Strudel: Toggle Auto-Sync | — | Suspend l'envoi des éditions |
| Clé | Défaut | Description |
|---|---|---|
strudel.autoSync |
true |
Envoi du fichier à chaque édition |
strudel.autoSyncDelay |
300 |
Debounce (ms) avant envoi |
strudel.endOfCycleUpdate |
true |
Application en fin de cycle (sinon immédiate) |
Le moteur embarque les synthés de base ; les samples standards (drum machines tr909/tr808…, piano, VCSL, dirt-samples) sont chargés depuis le CDN Strudel au démarrage de la session — une connexion internet est nécessaire à ce moment-là.
Le bundle moteur (media/strudel/index.js) est construit depuis le package @strudel/web du monorepo Strudel (pnpm --filter @strudel/web build).
cd vscode-strudel
npx -y @vscode/vsce package --allow-missing-repository
code --install-extension strudel-vscode-0.2.0.vsix- Erreur de syntaxe pendant la frappe : l'erreur s'affiche dans le panneau, l'ancien pattern continue de jouer ; la correction sera reprise au cycle suivant.
- Les visualisations (
.pianoroll(),.scope()…) ne sont pas encore rendues dans le panneau. - Les soundfonts ne sont pas inclus.