À propos du projet
Strasbeat est un environnement de codage en direct basé sur le navigateur, construit au-dessus de Strudel (portage JavaScript de TidalCycles). Il enveloppe Strudel dans un éditeur de qualité IDE complet, donnant à la création, à l'édition et au versionnage de motifs la sensation d'un développement dans VSCode. L'éditeur principal comprend CodeMirror 6 avec autocomplétion pour les sons, les accords, les gammes, les fonctions Strudel et les jetons de notation mini ; la documentation au survol provient de JSDoc ; des indications de signature ; le formatage Prettier (avec restauration des guillemets pour le transpileur de Strudel) ; et un scrubber numérique de style Figma pour ajuster en direct les littéraux numériques. Un piano roll personnalisé en Canvas2D affiche la couleur par couche, les grilles de battement/cycle et les étiquettes de ligne active. Le pont MIDI matériel permet de jouer en direct via superdough avec des sons prédéfinis et un flux de capture‑vers‑fichier qui enregistre les phrases jouées sous forme de véritables motifs Strudel. Un exportateur WAV hors ligne à 48 kHz 16‑bit stéréo contourne un problème de graphe audio en amont. Les motifs sont des fichiers JavaScript simples stockés sur le disque, modifiables dans le navigateur ou dans un IDE externe, et restent synchronisés grâce au HMR de Vite. Un helper `progression()` (et d'autres extensions runtime) est injecté dans la portée d'évaluation, permettant des progressions d'accords en une ligne avec des dictionnaires de voicing, des préréglages de rythme, une saisie en chiffres romains et une couche de basse optionnelle. L'interface comprend une bibliothèque de motifs avec recherche, des contrôles de transport, une modale intégrée à l'application et un tiroir de paramètres avec couleur d'accent persistance. Des helpers de console intégrés facilitent la découverte des sons et le sondage de rendu hors ligne. Le projet est sous licence AGPL-3.0, héritant de la même licence que Strudel.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.