Skip to content

Draw the patched synths' routing from their cables and pins (t-145) - #118

Merged
JohnD-EE merged 7 commits into
mainfrom
feature/t145-patched-routing
Oct 30, 2026
Merged

JohnD-EE merged 7 commits into
mainfrom
feature/t145-patched-routing

Conversation

@JohnD-EE

Copy link
Copy Markdown
Contributor

Summary

t-145 (f-routing-view): adds routing diagrams for the patched synths, whose paths come from the patch rather than being built in. That covers the System 15, 35 and 55, the EMS VCS3 and the Syntrx II.

  • Layout (routing-layout.ts). Blocks that no edge places are placed by the cables that join them. An audio cable (from the routing's audioJacks) puts both of its ends on the main line. A block that no edge or cable joins goes in a spare grid, so an unpatched modular shows as a tray of its modules. An audio dead-end sits one column left of the output, and whatever feeds it sits further left. On a synth whose path is wired, a control cable never moves a block that an edge places.
  • System 15 / 35 / 55 (routing/moog900.ts). Built from the definition's modules: one block per module, with cables as the only paths. A module this file doesn't know is left out, not thrown on, so the page still renders. routingProblems then reports the module's controls and jacks as belonging to no block.
  • VCS3 and Syntrx II. Written by hand from the pin matrix. A pin carries nothing while its row LEVEL is at 0. A gain that can't be read (NaN) still draws the pin rather than hiding it.
  • .context/app/synths.md documents how patched routings are drawn.

No CHANGELOG entry: all of this is fork-owned app code, outside the public surface.

Gates

/pre-pr, /security-review and /code-review ran. The last commit fixes every /code-review finding and adds a test for each behaviour change; I checked that each new test fails on the old code. After those fixes I re-ran type-check, eslint and Prettier on the changed files, and npm run test:changed (185 files, 6533 tests passed).

🤖 Generated with Claude Code

JohnD-EE and others added 7 commits October 30, 2026 08:44
… grid (t-145)

A block on none of a routing's edges is now placed by the cables that join
it, so a modular's diagram follows its patch; a block an edge places never
moves for a cable. A block nothing joins sits in a grid beneath. Cables
carry a signal from the routing's audioJacks, and one from a jack whose gain
is at zero carries nothing.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
One block per 900-series module and no edges; every path is a cable. Built
from the definition, so getSynthRouting() now takes it: importing the
definitions into the registry would bundle them into every synth page.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… (t-145)

An audio cable now places both its ends in the audio band, so a pin-matrix
synth's main line runs straight even between blocks its edges also join.
Only the patched synths declare audio jacks, so wired synths are unchanged.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ched routings (t-145)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
An audio block with no way to the output along the band (the Syntrx II's
ring modulator, a modular's filter not yet patched on) was placed in the
output's column, where it reads as feeding it. On the wired synths this moves
only such dead-ends, one column left.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…eders sit left of them (t-145)

A control cable into a sink an edge places no longer moves it; only edges and
audio cables do. An audio dead-end is counted as feeding a stand-in in the
output's column, so what feeds it lands left of it rather than beside it. An
unknown 900-series module is left out (routingProblems reports it) instead of
throwing as the page renders. A row gain that reads NaN draws its pin. The
layout reuses reachBack, and two comments are re-wrapped.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JohnD-EE
JohnD-EE merged commit 12c7fdd into main Oct 30, 2026
19 checks passed
@JohnD-EE
JohnD-EE deleted the feature/t145-patched-routing branch October 30, 2026 11:09
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