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
  • performance_notes.md
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    fix(bounds): a skipped seam carried PLN's best information, and the exporter threw it away · 7b74d8b3
    PLN: "wait you dont get the notes when i skip? DANG they have lots of info."
    
    The exporter emitted skipped boundaries as bare integers:
    
        skipped: Object.entries(calls).filter(([, c]) => c.t === null).map(([k]) => Number(k))
    
    so eight CosmicFest seams exported as `[2,4,9,10,15,16,17,18]` while the notes he
    had typed into every one of them vanished. And a skip is not an absence of
    judgement — it is usually a judgement that the SEAM is wrong, which is more
    informative than confirming a cut time. What was lost included "theres no
    blue_gold in this set, we're hearing do_it_right throughout", "there was no
    gimme_acid in this performance", "theres no funk->piment transition! in this set
    i playd piment once, then funk", and "it could be called Outro Dub Siren".
    
    The notes were never actually gone: the textarea writes `{t: t ?? null, comment}`,
    so a skipped call keeps its comment in state and in localStorage. Emitting
    `skipped` as {id: {source, note}} therefore recovers notes ALREADY STORED, not
    only future ones — PLN re-exports and gets them back verbatim. Verified the built
    bundle carries it, after first mis-verifying: `grep -c` counts LINES and a
    minified bundle is one line, so the honest count is 2 occurrences, not 1.
    
    With his corrections the true set is 14 tracks, written to
    judge_specs/cosmicfest-2026_setlist_ear.json as ground truth.
    
    Scored against it, the three-lens pipeline named 12 of 14 tracks correctly and
    labelled 81% of the 63 minutes, 85% of the labelled overlap correct. bombe_dj,
    rose_rouge, ouais_je_funk, punkachien and livecode_parade landed at 100%.
    
    The two failures are the same failure. `perfect` was called gimme_acid and the
    improvised outro was called REVOLUTION, and both are reference-bound: crossmatch
    can only choose among tracks it holds a prior render of, so audio from a track it
    has never heard gets assigned to the nearest thing it has. All five "ghosts" —
    blue_gold, desire, gimme_acid, quand_on_decolle, REVOLUTION — are that same
    mechanism. It is a structural limit, and the fix is one render per track, not a
    better threshold.
    
    Also banks his ear-feedback in performance_notes.md, including two things no
    analysis could have produced: a loud blip in the 2.9 s between two tracks (a
    defect belonging to NEITHER, which the boundary tool currently has no way to
    express), and why desire was dropped — "Clearly didnt play desire i was not found
    of that closing at opal".
    PLN (Algolia) authored Aug 29, 2026
    7b74d8b3
performance_notes.md 37.1 KB
EditWeb IDE
×

Replace performance_notes.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.