Skip to content

Let a piece be made without a video - #34

Merged
ibrahimweng merged 1 commit into
mainfrom
claude/no-clip-playback
Aug 30, 2026
Merged

Let a piece be made without a video#34
ibrahimweng merged 1 commit into
mainfrom
claude/no-clip-playback

Conversation

@ibrahimweng

Copy link
Copy Markdown
Owner

You could already place sounds with no clip loaded. You could set the length by hand, and export what you made. The one thing you could not do was hear it, and nothing said so: the play button was live, pressing it moved nothing, and the status line stayed empty.

Underneath, video.play() was being refused on an element with no source and the refusal was swallowed — the catch there is for a browser blocking autoplay, which looks identical and is not what was happening. So a dead-looking button, which is the fault this app keeps having.

The machinery already existed

The playhead has run off the audio clock past the end of a clip since the picture stopped being the only thing that could drive it. No clip at all is the same case reached from the other end: nothing to follow, so the audio clock decides from the first frame rather than from wherever the picture ran out.

Three changes

  • The clock treats no picture as beyond the picture, in both play and seek. Where there is a frame to hold on it still holds; where there is none there is nothing to hold.
  • The transport is greyed out on whether there is a piece rather than whether there is a clip. It was the clip, which meant even a working clock would have had stop, the step buttons and the shuttle greyed out beside a play button that ran. The video window toggle keeps the old rule, since a window with no picture in it is nothing at all.
  • A new piece opens thirty seconds long instead of zero. A piece of no length has no ruler worth reading and no room to put anything, so the app looked broken until you found the length control. A loaded clip replaces it outright, so nobody who starts with a video ever sees it.

Checking

Nine tests: five on the clock, four driving the app.

  • a new piece already has a length to work in
  • the transport is live rather than greyed out
  • a sound can be placed and played with no picture, and pausing holds where it stopped
  • the clock runs on the audio clock from the first frame, queues the cues on the way past, can be seeked and holds where it was put, and still stops at the end of the piece

All nine fail with the three changes put back — the clock's two, the transport gate, and the zero default.

236 unit tests (was 231), 59 browser tests (was 55), build clean.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ux1kydvUkLRoMbHp82ofDi


Generated by Claude Code

You could already place sounds with no clip loaded. You could set the
length by hand, and export what you made. The one thing you could not
do was hear it, and nothing said so: the play button was live, pressing
it moved nothing, and the status line stayed empty.

Underneath, `video.play()` was being refused on an element with no
source and the refusal was swallowed — the catch there is for a browser
blocking autoplay, which looks identical and is not what was happening.
So a dead-looking button, which is the fault this app keeps having.

The machinery was already there. The playhead has run off the audio
clock past the end of a clip since the picture stopped being the only
thing that could drive it, and no clip at all is the same case reached
from the other end: nothing to follow, so the audio clock decides from
the first frame rather than from wherever the picture ran out.

Three changes:

- the clock treats no picture as beyond the picture, in both play and
  seek. Where there is a frame to hold on it still holds; where there
  is none there is nothing to hold
- the transport is greyed out on whether there is a piece rather than
  whether there is a clip. It was the clip, which meant even a working
  clock would have had stop, the step buttons and the shuttle greyed
  out beside a play button that ran. The video window toggle keeps the
  old rule, since a window with no picture in it is nothing at all
- a new piece opens thirty seconds long instead of zero. A piece of no
  length has no ruler worth reading and no room to put anything, so the
  app looked broken until you found the length control. A loaded clip
  replaces it outright, so nobody who starts with a video ever sees it

Nine tests, five on the clock and four driving the app: a new piece has
a length, the transport is live, a sound can be placed and played with
no picture, pausing holds where it stopped, cues are queued on the way
past, and it still stops at the end of the piece. All nine fail with
the three changes put back.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ux1kydvUkLRoMbHp82ofDi
@vercel

vercel Bot commented Aug 30, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
beat-studio Ready Ready Preview Aug 30, 2026 1:35pm

@ibrahimweng
ibrahimweng merged commit 4381f27 into main Aug 30, 2026
5 checks passed
@ibrahimweng
ibrahimweng deleted the claude/no-clip-playback branch August 30, 2026 17:30
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