Skip to content

tap.808.seq~ + tap.303.seq~: the sequencers (plan, objects, vertical slices)#52

Merged
tap merged 9 commits into
mainfrom
claude/sequencer-303-808-design-pxqfxs
Jul 18, 2026
Merged

tap.808.seq~ + tap.303.seq~: the sequencers (plan, objects, vertical slices)#52
tap merged 9 commits into
mainfrom
claude/sequencer-303-808-design-pxqfxs

Conversation

@tap

@tap tap commented Jul 18, 2026

Copy link
Copy Markdown
Owner

The package half of the coordinated phase 3 both family plans deferred to. Contains the design of record (plans/tap.seq.md, drafted, §6-approved, and implemented 2026-07-18), the two new objects with full vertical slices, and the doc/patcher updates.

The plan — plans/tap.seq.md

Answers the coordination question both plans/tap.808.md §6 and plans/tap.303.md §6 left open: the sequencers share at the kernel level, not the object level — one engine (step_seq.h in tap/taptools) with two thin per-family emitters. Blocking decisions approved: the two-object shape (808-plan option (b) unified with the 303 emitter), phase-driven clocking from phasor~ with no clock object in v1, and pattern slots with boundary-quantized recall as the A/B-half / fill mechanism. Both family plans' §6 sections marked resolved.

The objects

  • tap.808.seq~ — one drum row: phase ramp in, amplitude-as-accent impulses out (the tap.808.* trigger contract; plain 0.01 = the 4 V base, accented 0.5 = accent knob at noon). hits/accents/velocities surfaces, @pulse widening, @swing, polymeter via @length, 16 slots with quantized recall, todict/fromdict, and a 1-based step-index UI outlet (coalescing audio→scheduler handoff, the tap.sift~ idiom).
  • tap.303.seq~ — the acid line: emits the tap.303~ pitch + gate pair (1.0/2.0 accent amplitudes, gate duty 0.5), slide as gate-hold across the boundary, per-step pitch/gate/accent/slide, live @transpose, same slots/dict/step-outlet surface.

Vertical slices

  • min-api unittests for both (also compiled and run against the mock kernel during development — which caught an attribute construction-order hazard and two min-api dict API gaps, worked around via dictionary_appendatoms).
  • maxrefs, help patchers, and maxtest starters for both objects.
  • help/tap.808.maxhelp rebuilt on real rows — one phasor~, nine rows (the hat gets closed + open), the metro/counter/sel pattern retired. help/tap.303.seq~.maxhelp supersedes the tap.303~-pattern.maxpat dry run, which stays as the event-domain alternative.
  • RELATED cross-links added to tap.303~ and tap.808.kick~; REVIVAL.md §7 entries.

Submodule

Pins tap/taptools at the head of the same branch (the engine, the step_seq.ipynb verification notebook, and the book's rhythm-section chapters). Merge tap/TapTools#16 first, then this.

CI

build (macOS universal + Windows + ctest) and Tap House Style (clang-format + clang-tidy + drift) are green on the code head. Runtime validation in Max on a licensed install remains open, as for every object in the package — the maxtest starters and help patchers are the material for it.

🤖 Generated with Claude Code

https://claude.ai/code/session_01JZivyxyBdHYd8sVf8AdUbN


Generated by Claude Code

claude added 8 commits July 18, 2026 17:03
The shared step-sequencer plan both family plans deferred to: one kernel
engine (step_seq.h, phase-clocked from phasor~) with two thin per-family
emitters — tap.808.seq~ (trigger row, amplitude-as-accent impulses) and
tap.303.seq~ (pitch + gate line with gate-hold slide). Cross-references
added to plans/tap.808.md §6 and plans/tap.303.md §6.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZivyxyBdHYd8sVf8AdUbN
Shape (one engine, two family wrappers), phase-driven clocking with no
clock object in v1, and pattern slots with quantized recall — all three
approved 2026-07-18; the non-blocking recommendations accepted in
principle, to be confirmed at their slices.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZivyxyBdHYd8sVf8AdUbN
The coordinated phase 3 of both Roland families, per plans/tap.seq.md
(author-approved 2026-07-18): thin Min wrappers over the kernel's shared
step engine (step_seq.h, pinned at the submodule bump in this commit).

- tap.808.seq~ — one drum row: phasor~ phase in, amplitude-as-accent
  impulses out (plain 0.01 = the 4 V base bus, accented 0.5 = accent
  knob at noon), hits/accents/velocities surfaces, @Pulse widening,
  swing, polymeter via @Length, 16 slots with quantized recall,
  todict/fromdict, and a 1-based step-index UI outlet (coalescing
  audio->scheduler handoff, the tap.sift~ idiom).
- tap.303.seq~ — the acid line: emits the tap.303~ pitch + gate pair
  (1.0/2.0 accent amplitudes, gate duty 0.5 per Open303), slide as
  gate-hold across the boundary, per-step pitch/gate/accent/slide,
  live @transpose, the same slots/dict/step-outlet surface.

Vertical slices: min-api unittests for both (compiled and run against
the mock kernel — also caught two min-api dict API gaps, worked around
via dictionary_appendatoms), maxrefs, help patchers, maxtest starters.
help/tap.808.maxhelp rebuilt on real rows (one phasor~, nine rows — the
metro/counter/sel pattern retired); help/tap.303.seq~.maxhelp supersedes
the tap.303~-pattern.maxpat dry run, which stays as the event-domain
alternative. RELATED cross-links added to tap.303~ and tap.808.kick~.
REVIVAL.md §7 entry + family-section updates; plan statuses closed out.

Runtime validation in Max still pending, as everywhere.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZivyxyBdHYd8sVf8AdUbN
…pin bump

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZivyxyBdHYd8sVf8AdUbN
The kernel PR (tap/TapTools#16) was rebase-merged, so the branch commits
took new SHAs on main; the pin now points at main's head instead of the
about-to-be-deleted branch history.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JZivyxyBdHYd8sVf8AdUbN
@tap
tap merged commit 32c8fb8 into main Jul 18, 2026
10 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.

2 participants