Repository navigation
EZ: the red button stops eating the beat, and pads stop rewriting the kit - #1
Merged
Merged
Conversation
… kit EZ mode's Rec was wired to the machine's REC mode, which replaces the track under the playhead as it passes. Pressing it emptied a two-bar pattern in about five seconds without a pad being touched, and because REC turns into OVERDUB at the loop point and EZ has no punch-out, the machine then recorded every later tap. There was no sign of any of it on screen: the Play button reads its lamp from `s.playing && s.record === 'OFF'`, so it went dark the moment recording started. - EZ records with OVERDUB, which layers onto the pattern instead of wiping it. `recordFromStart` takes the mode, so OG's REC key is unchanged. - `punchOut()` stops writing notes and leaves the transport rolling; EZ's Rec button is now a real toggle rather than a disguised Stop. - Play's lamp follows `s.playing`, so a rolling machine looks like one. In the Chop panel every pad tap silently reassigned the selected chop, so the pads could not be played at all and the kit changed under you. Placing is now armed explicitly with "Put on pads", disarms on leaving the panel, and walks to the next chop after each placement so pads fill left to right. - Opening a sound no longer rewrites its zones: the eight suggested chops are drawn from `zoneStarts()` and only become real on the first edit. Clicking KICK in the chopper used to chop KICK. - "All to pads" keeps the chopper on the break instead of selecting the last slice, which the old auto-chop then sliced again. - Placing a chop reuses the slice we already cut rather than pushing another copy into memory on every tap. - Tapping a waveform region auditions it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019U7kCMZc9a7sezDwKKseJy
The EZ table still described the red button as REC + PLAY START and a pad tap as the way to place a chop, which is what made both of them destructive. Record the rule the panel works to now, so the next EZ workflow does not reintroduce it: a destructive action is either armed first, or it is not destructive. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019U7kCMZc9a7sezDwKKseJy
Deploying chopdeck with
|
| Latest commit: |
dbe019b
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://901e26a6.chopdeck.pages.dev |
| Branch Preview URL: | https://worktree-ez-mode-bugs.chopdeck.pages.dev |
Grabbing a marker selects it and the click that follows selects it again, so auditioning played the slice twice over itself. Cut the last voice first. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019U7kCMZc9a7sezDwKKseJy
mcinnisdev
marked this pull request as ready for review
September 14, 2026 15:41
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.
EZ mode had two destructive actions with no guard on either. Both are reproduced and then held down by tests in
e2e/ez-record-and-chop.spec.ts.The red button erased the pattern
EZ's Rec was wired to the machine's
RECmode, which replaces the track under the playhead as it passes. Measured on the demo beat, without a pad being touched:Because
RECbecomesOVERDUBat the loop point and EZ has no punch-out, the machine then kept recording every later tap — which is what "it records even when record is not turned on" looks like from the outside. Nothing on screen said so either: Play reads its lamp froms.playing && s.record === 'OFF', so it went dark the moment recording started.OVERDUB, layering onto the pattern instead of replacing it.recordFromStarttakes the mode, so OG's REC key is unchanged.punchOut()stops writing notes and leaves the transport rolling, so Rec is a real toggle rather than a disguised Stop.s.playing.A pad tap rewrote the kit
In the Chop panel every pad tap silently reassigned the selected chop, so the pads could not be played at all.
zoneStarts()and only become real on the first edit. Clicking KICK in the chopper used to chop KICK.Scope
assignChopToPad,chopToPadsandrecordFromStartare called from EZ and its tests only, so OG is untouched.Testing
npm run typecheckclean,npm test185/185.account.spec.tsasserting anog:titlemeta tag, fails identically on cleanorigin/mainand is unrelated.🤖 Generated with Claude Code
https://claude.ai/code/session_019U7kCMZc9a7sezDwKKseJy