Repository navigation
patcher: SDK 1.35.0 patch builder, patterns as signals, print (lane 4) - #183
Merged
Merged
Conversation
core/sdk/v1.ts: patch(name, build, options) and fxPatch with node
factories typed from NODE_SPECS (generated into core/sdk/patch-nodes.gen.ts
and spliced into v1.ts by scripts/gen-patch-sdk.ts; a test fails while
either copy is stale), macro(), .to, typed port setters,
.plus/.times/.range/.amount, .global(), and the plain-data overloads
patch({ role, name, nodes, cables, ... }) and patch({ ref, macros }).
Node ids are type plus 8 base32 characters (newId's alphabet) from a
stable hash; cable ids are c- plus a hash of their ends.
Strudel signals sine cosine saw isaw tri square rand perlin irand pat()
as a serializable PatternSignal AST with range/rangex/slow/fast/segment/
add/mul/early/late/every, evaluated per cycle with Strudel's formulas and
legacy RNG, seeded per track. track({ mods, lanes }) and signals wired
into ports bake into automation.fx points; song({ patches }) holds the
library. print.ts prints the plain form, song patches and patch- lanes.
Tests: patch.test (acid example, stable ids, print/eval round trip),
signal.test (Strudel formulas at fixed cycles, seeded rand), a tsc
negative fixture, and the generator freshness test. Projects without
patches print byte-identically (85 test scores compared against main).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
0thernet
enabled auto-merge (squash)
October 10, 2026 20:59
0thernet
added a commit
that referenced
this pull request
Oct 10, 2026
Lane 4 (#183) landed the SDK builder, so main's four-ways table had eleven patch rows whose listed SDK gap had opened. Drop PATCH_GAPS and name each verb's SDK door (patch(), fxPatch(), track.instrument, track.fx, song.patches; patch mod: pat/irand and the baked automation lane). The patch mod menu gap stays: the typed verb still refuses until pattern text has a parser. Its refusal now points at SDK 1.35.0 mods:. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
0thernet
added a commit
that referenced
this pull request
Oct 10, 2026
* patcher: enforce the SDK door for every patch verb (four-ways) Lane 4 (#183) landed the SDK builder, so main's four-ways table had eleven patch rows whose listed SDK gap had opened. Drop PATCH_GAPS and name each verb's SDK door (patch(), fxPatch(), track.instrument, track.fx, song.patches; patch mod: pat/irand and the baked automation lane). The patch mod menu gap stays: the typed verb still refuses until pattern text has a parser. Its refusal now points at SDK 1.35.0 mods:. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * sdk: regenerate patch node types for engine.vocoder (#184) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Merged
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.
Patcher lane 4 (SDK), per .plans/patcher/design.md "Lane 4" and the networking amendments.
core/sdk/v1.ts:patch(name, build, options)/fxPatch, node factories typed fromNODE_SPECS,macro(),.to, typed port setters,.plus/.times/.range/.amount,.global(), plain-data overloads (patch({ role, name, nodes, cables }),patch({ ref, macros })). Ids: node type plus 8 base32 chars (newId alphabet) from a stable hash; cablesc-plus a hash of their ends.scripts/gen-patch-sdk.tsgeneratescore/sdk/patch-nodes.gen.tsand splices the same block into the vendored single-file SDK;patch-nodes-gen.test.tsfails while stale.sine cosine saw isaw tri square rand perlin irand pat()as a serializable AST withrange rangex slow fast segment add mul early late every, Strudel formulas and legacy RNG, seeded per track.track({ mods, lanes })and signals wired into ports bake toautomation.fxpoints;song({ patches })holds the library.core/sdk/print.tsprints the plain form, song patches andpatch-lanes. SDK_VERSION 1.35.0 (range lane shipped 1.34.0).Tests:
patch.test.ts(acid example plain data, stable ids, print → eval → reprint byte-for-byte, prettier-stable),signal.test.ts(Strudel's documented formulas at fixed cycles, seeded rand stable and per-track),patch-types.fixture.ts(tsc negative fixture: notes into cutoff, unknown port, unknown setting, unknown wave word), generator freshness. Existing prints: 85 distinct scores from the core/sdk and src/project tests print identically on main and this branch. Localbun run check: 3866 pass, typecheck and format clean.🤖 Generated with Claude Code