Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
  • This project
    • Loading...
  • Sign in / Register
T
Tidal
  • Overview
    • Overview
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
    • Charts
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • PLN
  • Tidal
  • Repository

Switch branch/tag
  • Tidal
  • armada
  • tide-table
  • POSTPROD.md
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    feat(postprod): a rest is not a gap — pad_end_s, and the close goes to MORE · 271e07c0
    Two ear calls on the OPAL-26 record, one of which needed a new concept.
    
    PLN, having heard the CRIME->REVOLUTION seam: "approved #13 seam, but lets add
    after seam 2s silence in crime file, then seam is start of [the] revolution."
    And on the closing echo, after living with it: "allez lets use the B version,
    the more option" — so the ship-preset moves subtle -> more.
    
    The silence is the interesting half. The pipeline knew two kinds of answer:
    `verified` boundaries (move one, both neighbours shift) and `edits` trims (audio
    is DROPPED, a gap opens, the continuous mix skips it). A rest is neither — it
    ADDS time. So `pad_end_s` is a third kind, and where it lives is the whole
    decision: the 2s belongs to CRIME, so it ships inside track 13's file AND at the
    same place in the continuous mix, and REVOLUTION still begins on its first
    sample in both forms. Had it been modelled as a gap between tracks it would have
    existed only in the mix and track 13 would have ended on the hard cut.
    
    Implemented with `apad` — the same filter whose one-second-per-second literalism
    was a BUG two commits ago, where it was misused as reverb headroom and shipped
    ~2.3s of trailing zeros. Here that literalism is exactly the feature: 2.0 in,
    2.0000s out. Silence as an accident of a misunderstood filter is a defect;
    silence a listener asked for is a rest. Same filter, opposite verdict, and the
    comment now says so where the next reader will hit it.
    
    Ordering matters and is documented: the pad runs LAST, after the fades and after
    any reverb ring. Padding first would hand the fade silence to act on, and the
    fade's own start is measured from the un-padded duration. In the reverb graph it
    attaches after the dry/wet concat, not inside either branch.
    
    `expected_dur` now predicts pad + aecho's longest tap, so `verify` still compares
    against INTENT rather than against whatever came out — the property that caught
    the apad bug in the first place. `stage_continuous` prints rests separately from
    gaps, because lumping them together is the exact confusion this commit exists to
    prevent.
    
    Validated, all measured not assumed:
      - verify ALL OK, 14 tracks x 2 variants, 48000/24
      - #13 271.050s = 269.05 + 2.00; #14 205.550s = 204.90 + 0.65 (more's 650ms
        top tap — subtle's was 240ms, so the duration alone proves which shipped)
      - sample-exact: the last 2.0000s of CRIME are all zeros and the last non-zero
        sample sits precisely on the 2.000s mark
      - continuous 4361.35s both variants, OK against intent
      - the rebuilt seam-13 audition clip carries 2.0000s of silence ending exactly
        at the 20.00s seam marker: the rest is CRIME's, the marker is REVOLUTION's
        first sample
    
    Kept deliberately: the 1s duck to 50% stays alongside the new rest. They answer
    different complaints — the duck softens the cut, the rest separates the encore.
    PLN (Algolia) authored Aug 16, 2026
    271e07c0
POSTPROD.md 8.06 KB
EditWeb IDE
×

Replace POSTPROD.md

Attach a file by drag & drop or click to upload


Cancel
A new branch will be created in your fork and a new merge request will be started.