Skip to content

feat: embed 1,400 jazz standards catalog and add instant search in web and CLI - #16

Merged
johnksterling merged 1 commit into
mainfrom
feature/standards-search
Sep 19, 2026
Merged

johnksterling merged 1 commit into
mainfrom
feature/standards-search

Conversation

@johnksterling

Copy link
Copy Markdown
Owner

Summary

Embeds the complete 1,400 Jazz Standards catalog directly into the binary with zero runtime dependencies or network calls. Users no longer need to find or copy-paste obscure irealb:// URLs—they can simply search by song title or composer.

Features Added

  • Embedded 1,400 Jazz Standards Dataset:

    • Embedded jazz1400.txt (~1.2 MB uncompressed, ~280 KB in binary) into internal/jazz/standards.go via //go:embed.
    • In-memory lazy indexing and fast sub-millisecond search across song titles and composers (exact, prefix, and substring ranking).
  • REST API Endpoint:

    • Added GET /api/standards?q=<query>&limit=<n> returning matching standards with key, style, composer, and iReal URL.
    • Updated POST /api/analyze and POST /api/companion/* to accept a standard title parameter.
  • Interactive Web Interface Search:

    • Added a dedicated Search Standards (1,400) tab in web/src/App.tsx.
    • Debounced real-time autocompletion with instant search results showing title, composer, and key badges.
    • Quick-pick chips for popular standards (Autumn Leaves, All The Things You Are, Blue Bossa, Giant Steps, Take The A Train, Stella By Starlight, Body and Soul, Fly Me To The Moon, Round Midnight).
    • One-click loading, analysis, and SVG score preview.
  • CLI Direct Song Title Resolution:

    • Extended LoadTune in internal/jazz/loader.go: if the specified argument is not a local file or raw URL, it resolves directly against the 1,400 standards library:
      jazz-tools analyze "Autumn Leaves"
      jazz-tools analyze "Giant Steps"
      jazz-tools companion "Take The A Train" --pdf

Verification

  • All Go unit tests passing: go test -v ./...
  • Standards search & analyze endpoint tests passing
  • CLI analysis of standards verified
  • Web build succeeds: npm run build
  • Local server running and tested on port 8080

@johnksterling
johnksterling merged commit 32dcce0 into main Sep 19, 2026
3 checks passed
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