Skip to content

docs(strudel): plan Strudel mini-notation, ASCII tracker, live-REPL integration#3

Merged
Talador12 merged 1 commit into
mainfrom
feat/strudel-integration-plan
May 7, 2026
Merged

docs(strudel): plan Strudel mini-notation, ASCII tracker, live-REPL integration#3
Talador12 merged 1 commit into
mainfrom
feat/strudel-integration-plan

Conversation

@Talador12
Copy link
Copy Markdown
Owner

@Talador12 Talador12 commented May 7, 2026

Summary

  • Document a phased plan to bring Strudel (TidalCycles in the browser) concepts into code-music without breaking the offline FLAC pipeline.
  • Origin story: Switch Angel performs trance live with Strudel and mentioned in Night Friends that she built her own ASCII track sequencer for live param tweaking. Clean thematic match for code-music's Pattern + DSL story.

Phased plan (each is 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 Strudel's 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)

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 running ruff check against origin/main directly.

The errors break down as:

  • 239 F401 unused imports (175 in code_music/__init__.py re-exports without __all__, 64 elsewhere)
  • 37 I001 import sort issues (auto-fixable)
  • 19 F811 redefinitions (real bugs in __init__.py and effects.py)
  • 15 F841 unused locals (auto-fixable)
  • 6 F541 f-strings without placeholders (auto-fixable)
  • 7 E741/E402/E501 manual fixes

Recommend a separate fix(lint): clear pre-existing ruff errors PR. Auto-fix gets ~131 of them, plus a one-line per-file-ignores for __init__.py = ["F401"] removes another 175. The remaining ~20 are real bugs that need a deliberate decision per case.

…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.
@Talador12 Talador12 force-pushed the feat/strudel-integration-plan branch from 1cfa7bf to de59d0f Compare May 7, 2026 19:30
@Talador12 Talador12 merged commit 257bae7 into main May 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant