About this project

Strasbeat is a browser-based live-coding environment built on top of Strudel (TidalCycles ported to JavaScript). It wraps Strudel in a full-featured IDE-quality editor, making pattern creation, editing, and versioning feel like development in VSCode. The core editor includes CodeMirror 6 with autocomplete for sounds, chords, scales, Strudel functions, and mini-notation tokens; hover documentation sourced from JSDoc; signature hints; Prettier formatting (with quote restoration for Strudel’s transpiler); and a Figma-style numeric scrubber for live tweaking of number literals. A custom Canvas2D piano roll renders per-layer color, beat/cycle gridlines, and active-row labels. The hardware MIDI bridge supports live play through superdough with preset sounds and a capture‑to‑file flow that writes played phrases as real Strudel patterns. An offline WAV exporter at 48 kHz 16-bit stereo works around an upstream audio graph issue. Patterns are plain JavaScript files stored on disk, editable in the browser or an external IDE, and kept in sync via Vite HMR. A `progression()` helper (and other runtime extensions) is injected into the eval scope, enabling one-line chord progressions with voicing dictionaries, rhythm presets, Roman-numeral input, and optional bass layers. The UI includes a pattern library with search, transport controls, an in-app modal, and a settings drawer with persisted accent color. Built-in console helpers aid sound discovery and offline render probing. The project is licensed under AGPL-3.0, inheriting the same license as Strudel.