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
  • tools
  • foundry
  • tests
  • test_naming.py
Find file
BlameHistoryPermalink
  • PLN (Algolia)'s avatar
    feat(foundry): loop naming convention — engine/naming.py, derived from the corpus (#13) · 146070b5
    Recovered the ParVagues loop naming scheme empirically from 1690 existing loops,
    rather than inventing one: NN_<role>[_<character>]. The corpus EDA that grounds it
    (reproducible via `naming.analyze_corpus`, parsers-over-copy): 46% carry a 2-digit
    NN_ index (the hand-cut-kit signature, vs keyed/tempo packs like 120g/80c), 74%
    underscore-joined, only 16% repeat the kit name (the folder already carries it), and
    the role tokens cluster on voice/vocals, keys, guitar, bass, brass, synth.
    
    naming.py provides:
    - suggest_name(index, role, character=, section=) → NN_role[_section][_character],
      slugged + zero-padded + de-duped against names already taken in the kit.
    - stem_of(role) → maps a role/character word back to its stem family, so a name
      stays honest to what was actually separated (never infer role FROM the name —
      the finder knows the stem; the name reflects it).
    - lint(name) → flags drift (no index, spaces, uppercase, odd chars).
    - analyze_corpus() → re-derives the stats above from the live Samples tree.
    
    Wired as export_take's default namer (replaces the inline f"{i:02d}_{name}"), so the
    GUI Forge button and CLI export both land convention-compliant names; the GUI's
    per-stem name field still overrides. CLI: python3 -m engine.naming --suggest 3 synth dark
    | --lint <name> | --analyze. 6 tests; full foundry suite green.
    PLN (Algolia) authored Jun 23, 2026
    146070b5
test_naming.py 1.48 KB
EditWeb IDE
×

Replace test_naming.py

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.