docs(strudel): plan Strudel mini-notation, ASCII tracker, live-REPL integration#3
Merged
Merged
Conversation
…ntegration Document a phased plan to bring algorave / Strudel concepts into code-music without disrupting the offline FLAC pipeline. Background: Switch Angel performs trance live with Strudel (the JS port of TidalCycles) and mentioned in the Night Friends video description that she built her own ASCII track sequencer in Strudel for live param tweaking. That is a clean thematic match for code-music's Pattern + DSL story. The plan splits into 7 phases, each shippable as one PR: 1. Mini-notation parity with Strudel (parser-level, no architecture change) 2. ASCII tracker module — grid notation inspired by her setup 3. Tier A pattern transforms (rev, palindrome, ply, swing, struct, ...) 4. Time-function Pattern abstraction (port the Strudel data model) 5. Tier B/C transforms + parametric control patterns 6. Live-coding REPL with terminal visualisation 7. Bidirectional Strudel bridge (Song.to_strudel + MIDI round-trip) Includes a feature gap audit between Strudel and code-music's current Pattern + DSL, recommended ship order, non-goals, and open questions on sample timing, note-vs-sample dispatch, and naming conventions. Linked from docs/for_developers.md.
1cfa7bf to
de59d0f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Phased plan (each is one PR)
rev, palindrome, ply, swing, struct, ...)Song.to_strudel+ MIDI round-trip)Plan includes a full feature gap audit between Strudel and code-music's current Pattern + DSL, ship-order recommendations, non-goals, and open questions.
Changes
docs/strudel_integration.md(246 lines, new)docs/for_developers.md(4 lines added, link to the plan)Recommendation for what ships next
Phase 2 (ASCII tracker) is recommended first - biggest crowd-pleaser, lands in one PR, validates we can render her style of notation through the existing engine.
CI note
This PR is docs-only (zero Python changes). The
test (3.11)failure is a pre-existing lint break on main - 323 ruff errors, none introduced by this change. Verified by runningruff checkagainstorigin/maindirectly.The errors break down as:
code_music/__init__.pyre-exports without__all__, 64 elsewhere)__init__.pyandeffects.py)Recommend a separate
fix(lint): clear pre-existing ruff errorsPR. Auto-fix gets ~131 of them, plus a one-lineper-file-ignoresfor__init__.py = ["F401"]removes another 175. The remaining ~20 are real bugs that need a deliberate decision per case.