Repository navigation
Octatrack: SYNTIZ 0.1.0-experimental, out of drafts - #1304
Conversation
Moves SYNTIZ from sdk/drafts to sdk/octabam/modules/syntiz with its manifest, media, USB package row (f501a6a4, three tracks a Part) and release notes. The Part signature is read from the package row by the PROTECT test. README, TESTING and evidence record the author's 31 October to 7 November MKII runs on a named package and base: the live set at 74 % of a frame, the dearest render at 37 %, the FM Synth A/B. The performance record fails the audit's static-bound, 10 % and MIDI flood rules; the pull request asks the owner for a waiver. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…un octatrack:base -- --beta --write, octatrack:module-packages); syntiz among the USB module ids Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Hi Jannik, a finding from SYNTIZ's measurements that may belong in the module guide. On my MKII, FM Synth 0.1.2 installed beside SYNTIZ and never played made the SYNTIZ tracks crackle very lightly, and the So an installed module that is never used can cost about a sample track's worth of margin. I do not know the mechanism: Proposal: a line in the module guide, for people judging a machine's margin on a unit with several modules kept: measure Separately, the SYNTIZ release PR asks for a waiver on the performance audit's rows for a machine that renders on the |
|
Thanks for bringing SYNTIZ out of drafts, and sorry I never answered your DM from 31 October. The measurements are careful, and the three-track limit with the frame guard dropping a render instead of overrunning is a sound way to make a heavy machine safe. The performance audit. I'll waive the rows you asked about for 0.1.0-experimental, as I did for POLY8: Two things on your side, both small:
The idle FM Synth. Yes please, look for the mechanism. An installed module that never plays should cost nothing, so if FM Synth does, that's a bug in FM Synth or the base. It gets its own issue rather than a guide line, and one A/B isn't enough for a guide line yet anyway. Until we know, please keep FM Synth's name out of SYNTIZ's limitations, which players read on the module page, and just say "another installed module" there. The named A/B already sits in TESTING.md, where it belongs. On the guides: the idle-module line can wait for the mechanism. |
…her installed module Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
Thanks for the quick turn. The base is back to main's, the fields are null, and the limitations say "another installed module". That's all in. The red check comes from the three performance rows, and those clear only when I add the approval record, so What's left on your side is the short beta-base run from my last comment. Please merge main first, since the beta base changed again since your merge, and update the two places that still say my decision is pending (TESTING.md's "Qualification record" and |
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
|
The beta-base run on my MKII, 9 November: it stopped at the first step. SYNTIZ's trial does not roll back on the beta base, and the base itself did not stay.
Raw outputs and the diaglog are on my computer if you want them. I have not changed TESTING.md: tell me whether you want this recorded there as it stands, or whether I should retry once you have looked. |
|
Thanks for running it and for writing it up so precisely. That Please record it in TESTING.md as it stands: the base identity, the two Undo attempts and the base update that didn't stay, marked as stopped at the first step, with the remaining steps "not tested". A run that stopped is a valid result. Please don't retry yet. The base update going back to your old base happened before SYNTIZ was involved, and the second Undo had no SYNTIZ tracks, so this looks like the base or the loader first. I'll look into it and come back here with what to run next. Please keep the raw outputs and the diaglog in case I ask for them. |
…step Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Done: TESTING.md has the run as it stands ("On Modwerk's beta base, 9 November 2026: stopped at the first step"), the remaining steps "not tested", and One thing from Since #1389 is about the beta base and FM Synth on busy projects, tell me if you want the run retried on the new base. |
|
Thanks, that's recorded just as I hoped. And good catch on Yes, please retry once, on the current beta base. On my unit the same kind of update held (details on #1386), so yours is the unit that shows it, and I need these readings:
Please put the outputs in a comment on #1386 rather than here, and mark in TESTING.md only what you saw. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The approval waives chip worst-case cycles and current-build hardware for 0.1.0-experimental at this exact source. TESTING.md records the run on the live beta base and on its development twin; the README's limitations say to keep AMP HOLD/REL below INF and to Undo or remove only while no track uses it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@repeat98 Thank you for merging SYNTIZ, and for running it on your own MKII and adding your approval yourself. I saw the release notice for 0.1.0-experimental. I'm very happy to see it out. I'll keep #1386 open with you for the beta base on my unit, and I'll handle SYNTIZ's next updates through the author flow. |
Octatrack: SYNTIZ 0.1.0-experimental, out of drafts
SYNTIZ is a track machine for the Octatrack MKII: choose it in the machine chooser (FUNC + SRC) and a double tap of
the track key opens six models: SAW, PULSE, ENS, TABLE, MORPH and CHOIR. The track's own filter, AMP, LFOs and
effects shape it as they do a sample, and PTCH plays like FLEX (chromatic keys, scales, locks). It is a Modwerk USB
package only (no card build). The engine and the 32 single-cycle tables are the author's own, computed from formulas
(
tools/make_tables.py); nothing is taken from another product.It has been a draft since #1028 (29 October); #1107 added the limit below. This PR moves it to
sdk/octabam/modules/syntiz, with its manifest, UI captures, release notes, USB package row (f501a6a4, rebuiltbyte for byte by
octatrack:module-packages -- --check) and the evidence below. The Part signatureWVis nowdeclared in the package row and the PROTECT test reads it there (as you suggested on #1031).
The limit: three SYNTIZ tracks a Part
A fourth track is refused (
wave_admit_track, #1107); a Part saved with more plays on as it was. The reason is theColdFire: every SYNTIZ track renders its 16 samples in the frame interrupt, and one render takes about 15 % of a
frame, up to 37 % when it follows stock's trig work in the same frame. Measured on the author's MKII with the base's
frame guard (80 % share), 120 s a run:
So two heavy SYNTIZ tracks fit a busy set; three heavy ones with long notes can crackle; a fourth sample or an ENS
does not fit the third row's set. The guard drops a render rather than overrun, which is what keeps the unit from
freezing.
Where the numbers come from
Everything above is from the author's own development twins of his private base (
7bce173d,8af4f9a3,04e94075;his flashed base
86388105is Modwerk's base of 31 October with--raiseand a start logo), packagef501a6a4,his own sets, one run per case. Not Modwerk's beta base, and not a second person's unit with a second set. On 3
November the same run repeated gave 24 to 75 dropped renders, so a count is coarse.
TESTING.mdlists every run andevidence/hardware.mdthe dated table.One finding for module authors
With FM Synth 0.1.2 installed beside SYNTIZ and never played, the SYNTIZ tracks crackled very lightly and the third
sample no longer fit. Removing FM Synth cured both (A/B on the same flashed base, 7 November; mechanism unknown).
An installed but idle module may cost a frame share; see the note for Jannik in the PR comment / guide proposal.
Not tested
ev_trig_muted); a MIDI flood.cycles an instruction, so the bound is not defensible.
starts, not stock's START): open.
Request: a waiver for qualifying a heavy machine
npm run module:doctor -- syntizfails exactly three performance rows, and I did not move the audit's limits:cycles.static): see above.falls 37.5 points against the same set without SYNTIZ. A machine that renders audio on the ColdFire adds that by
design.
run is the author's live set for 120 s, not the audit's flood at 240 BPM. Three instances are claimed
(
maxInstances: 3, the Part limit); one render is the event, and three second-call renders in one frame would sumto 106,608 cycles of a 95,782-cycle frame, which the guard handles by dropping one.
I asked @repeat98 by DM on 31 October how a machine like this should be qualified and have no answer yet. The release
needs your decision: a waiver for these three rows at this exact version (
sdk/*-build-approval.json, which only youcan add), or the measures you would rather see.
module:doctorandnpm run checkstay red on them until then; therest of
checkis green, andmodules:checkpasses (qualification, memory, hardware report, documentation).Other changes in this PR
machine_registry.ccomment andtest_machine_events.py: a native module's PROTECT signature comes from itspackage row; the draft FRACT stays named in the test until it has a row. Beta base regenerated for the comment.
module-set.test.ts:syntizamong the USB module ids.pr:readyrenewed the author's claimmodule octatrack/syntizon the agent board.What the guides lacked or got wrong
Not edited in this PR. Two gaps found: the performance audit has no honest place for a machine whose cost is a share
of the frame and not a per-event cost (what an "event" and an "instance" are for a track machine, and what static bound
a ColdFire render can have once cache and the bus matter); and nothing tells a module author that an installed idle
module can take another's margin. Both belong in
docs/module-guides/machines.md; I would write them once you havedecided the first.
🤖 Generated with Claude Code