Audio-First Cut Craft Methodology in video-use: Technical Implementation Guide

The audio-first cut craft methodology treats speech transcripts as the primary editorial driver, forcing video cuts to align with word boundaries, silence gaps ≥ 400 ms, and distinct audio events while applying mandatory 30 ms fades to eliminate audible pops.

The browser-use/video-use repository implements a rigorous audio-first cut craft methodology that prioritizes natural speech patterns over visual convenience. This approach ensures every edit lands on clean audio boundaries derived from word-level timestamps, preserving conversational rhythm while eliminating technical artifacts. By deriving cut points from the packed transcript rather than arbitrary video frames, the system produces professional-grade edits that remain imperceptible to the listener.

Core Principles of Audio-First Editing

According to the video-use source code in SKILL.md, the methodology rests on a fundamental rule: never reason audio and video independently. Every cut must satisfy constraints on both tracks simultaneously, with the audio transcript serving as the authoritative source for timing decisions.

Word-Level Timestamps and Silence Gaps

Candidate cuts originate exclusively from word boundaries and silence gaps identified in the packed transcript. The system analyzes takes_packed.md—generated by helpers/pack_transcripts.py—to locate timestamps where speech pauses naturally. As documented in SKILL.md (lines 102‑105), these transcript-derived boundaries provide the foundation for the edit decision list (EDL), ensuring cuts align with semantic and acoustic breaks rather than visual keyframes.

Audio Events as Beat Signals

Distinct audio events—including laughs, applause, sighs, and emotional peaks—function as beat signals that inform editorial rhythm. According to SKILL.md (lines 106‑108), these peaks are usually preserved as whole units rather than sliced mid-event, maintaining the integrity of reactive moments and audience responses.

Speaker Hand-offs and Air

Transitions between speakers receive deliberate air (400‑600 ms of silence) to preserve natural dialog pacing. The methodology specifically notes that speaker handoffs benefit from this breathing room between utterances (SKILL.md, lines 107‑108), preventing the jarring cuts that occur when conversations are compressed without acoustic consideration.

Hard Rules for Clean Cuts

The audio-first methodology enforces strict quantitative thresholds to guarantee technical quality.

Silence Gap Thresholds

Not all silences qualify as viable cut points. The system categorizes gaps into three tiers (SKILL.md, lines 108‑110):

  • ≥ 400 ms: Preferred as the cleanest cut points with minimal risk of mid-word truncation.
  • 150‑400 ms: Usable only after visual sanity checks to confirm no lip movement or facial expressions are compromised.
  • < 150 ms: Unsafe for cutting; the system avoids these gaps to prevent audible interruptions.

The 30‑200 ms Working Window

Hard Rule 7 mandates a padding window of 30‑200 ms around each cut point. This buffer absorbs transcription drift inherent in automatic speech recognition while ensuring sufficient headroom for the mandatory fade operations (SKILL.md, lines 109‑110).

Mandatory 30 ms Audio Fades

Hard Rule 3 requires 30 ms fade‑in/out filters at every segment boundary to eliminate pops and clicks. The implementation in helpers/render.py (lines 87‑93) automatically applies afade=t=in:st=0:d=0.03 and corresponding out-fades via FFmpeg during per-segment extraction. This occurs before lossless concatenation, ensuring the final output contains no transient artifacts at cut points.

The Video-Use Workflow

The repository implements the audio-first methodology through a five-stage pipeline:

  1. Transcribe: helpers/transcribe.py extracts mono 16 kHz audio and calls ElevenLabs Scribe to generate raw JSON transcripts.
  2. Pack: helpers/pack_transcripts.py converts raw JSON into takes_packed.md, storing word-level start/end timestamps.
  3. Analyze: The system scans the packed transcript for silence gaps, audio events, and speaker changes, generating an EDL containing only timestamps that satisfy audio-first rules.
  4. Render: helpers/render.py executes per-segment extraction (Hard Rule 2) with baked-in 30 ms fades and optional color grading, concatenating segments losslessly to avoid double-encoding.
  5. Evaluate: helpers/timeline_view.py generates waveform visualizations for self-evaluation, verifying that fades prevented pops and that visual sync remains intact.

Code Implementation Examples

Building an Audio-First EDL from Packed Transcripts

The following Python script parses takes_packed.md to identify viable cut points based on silence gaps ≥ 400 ms:

from pathlib import Path
import re
import json

PACKED = Path("edit/takes_packed.md")
EDL = Path("edit/edl.json")

def load_phrases():
    with PACKED.open() as f:
        for line in f:
            # lines like: "[002.52-005.36] S0 Some spoken text"

            m = re.match(r"\[(\d+\.\d+)-(\d+\.\d+)\] (\S+) (.+)", line)
            if m:
                start, end, speaker, text = map(str.strip, m.groups())
                yield float(start), float(end), speaker, text

def is_silence_gap(prev_end, next_start, min_gap=0.4):
    return (next_start - prev_end) >= min_gap

edl_entries = []
prev_end = None
for start, end, speaker, text in load_phrases():
    if prev_end is not None and is_silence_gap(prev_end, start):
        # cut at the silence gap (audio-first)

        edl_entries.append({"source": "source.mp4", "start": prev_end, "end": start})
    prev_end = end

EDL.write_text(json.dumps(edl_entries, indent=2))
print("EDL written →", EDL)

The script follows the audio-first principle by cutting only at silence gaps ≥ 0.4 s.

Rendering with Built-In Audio Fades

Execute the render pipeline to apply per-segment fades and lossless concatenation:


# Render the final video (audio-first cuts already baked in)

python helpers/render.py edit/edl.json -o edit/final.mp4

helpers/render.py (lines 5‑7) implements per-segment extraction with the 30 ms audio fades baked in before concatenation, adhering to Hard Rule 2 and preventing generation loss.

Verifying Cut Boundaries

Inspect a specific cut point to confirm the fade eliminated pops:


# Inspect a cut point ±1 s to see the waveform and catch any pop

python helpers/timeline_view.py edit/final.mp4 12.3 13.3

helpers/timeline_view.py produces a PNG visualization showing the audio envelope; a smooth dip at the cut boundary confirms the 30 ms fade executed correctly.

Summary

  • Audio-first cutting derives all edit decisions from speech transcripts, forcing video to follow audio timing rather than inverse.
  • Silence gaps ≥ 400 ms provide the cleanest cut points, while gaps < 150 ms are deemed unsafe for cutting.
  • 30 ms fades are mandatory at every boundary in helpers/render.py to eliminate pops and clicks.
  • Per-segment extraction (Hard Rule 2) processes each cut individually with fades and grading before lossless concatenation.
  • Speaker hand-offs receive 400‑600 ms of air to maintain natural dialog rhythm.
  • The 30‑200 ms working window absorbs transcription drift and ensures sufficient padding for fade operations.

Frequently Asked Questions

What distinguishes audio-first cut craft from traditional frame-based editing?

Traditional editing often selects cuts based on visual keyframes or action, potentially slicing through words or breaths. The audio-first methodology, as implemented in browser-use/video-use, treats the speech transcript as the authoritative source, ensuring every cut lands on a natural acoustic boundary—such as a silence gap or word boundary—while the visual track is forced to conform to these audio-derived timestamps.

Why are 30 ms fades mandatory at every segment boundary?

According to helpers/render.py (lines 87‑93), the 30 ms fade duration (Hard Rule 3) represents the minimum time required to smooth the audio waveform transition and eliminate audible pops that occur when digital audio segments are joined abruptly. The system applies these fades via FFmpeg’s afade filter during per-segment extraction, baking them in before concatenation to ensure artifact-free output.

How does the methodology handle speaker transitions?

Speaker hand-offs receive dedicated air of 400‑600 ms between utterances (SKILL.md, lines 107‑108). This deliberate pause prevents the unnatural tightness that occurs when dialog is compressed, allowing the listener to process the speaker change while providing a clean audio gap for the editing system to place a cut without interrupting speech flow.

What happens if a silence gap is shorter than 400 ms but longer than 150 ms?

Gaps in the 150‑400 ms range are considered conditionally usable. The methodology requires a visual sanity check to confirm that no lip movement or facial expressions are occurring during the gap before authorizing the cut. Gaps shorter than 150 ms are classified as unsafe and are avoided entirely to prevent mid-word cuts or audible micro-interruptions.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →