Skip to content

Songs: GOAT TopPresenter Song JSON v2 + rich version-aware editor#1

Merged
RobyRew merged 1 commit into
mainfrom
feat/songs-goat-format
Jun 17, 2026
Merged

Songs: GOAT TopPresenter Song JSON v2 + rich version-aware editor#1
RobyRew merged 1 commit into
mainfrom
feat/songs-goat-format

Conversation

@RobyRew

@RobyRew RobyRew commented Jun 17, 2026

Copy link
Copy Markdown
Owner
  • TopPresenter Song JSON v2.0.0 (single song per file) — import + export. Superset format: per-song versions, sections with inline chords (ChordPro positions) + bilingual translation lines, arrangement/play-order, section repeat counts, linked media, and rich per-version metadata.
  • New importers: TopPresenter Song JSON, ChordPro, plain text. Enriched OpenLyrics (translations, chords) and OpenSong (chords, arrangement). Upgraded PowerPoint importer (filename titles, language guess, chorus-reuse).
  • Recursive folder bulk import with duplicate resolution (add as new version / keep both / skip); optional collection name defaults to "Nesortate".
  • Scalable song browser: list/grid, indexed search, filters, theme thumbnails.
  • Two-pane "song studio" editor: version tabs with inherit/override per-version metadata (incl. per-version songbook), color-coded section cards (drag-reorder, duplicate, repeat x N, inline-chord mode), and a theme-rendered live preview.
  • Rendered slide filmstrip with overflow auto-split and theme repeat markers (/: :/, double-bar, pipe, (xN), bis/ter). Presenter sidebar parity and song-specific box sources in the theme editor.
  • SwiftData SchemaV2 via automatic additive migration; SongImportVersion is a class to dodge a value-witness miscompile on the large optional struct.
  • Tests: GOAT round-trip (incl. per-version overrides), ChordPro, plain text, PowerPoint chorus dedup, recursive import, duplicate->version, auto-split.

- TopPresenter Song JSON v2.0.0 (single song per file) — import + export.
  Superset format: per-song versions, sections with inline chords (ChordPro
  positions) + bilingual translation lines, arrangement/play-order, section
  repeat counts, linked media, and rich per-version metadata.
- New importers: TopPresenter Song JSON, ChordPro, plain text. Enriched
  OpenLyrics (translations, chords) and OpenSong (chords, arrangement).
  Upgraded PowerPoint importer (filename titles, language guess, chorus-reuse).
- Recursive folder bulk import with duplicate resolution (add as new version /
  keep both / skip); optional collection name defaults to "Nesortate".
- Scalable song browser: list/grid, indexed search, filters, theme thumbnails.
- Two-pane "song studio" editor: version tabs with inherit/override per-version
  metadata (incl. per-version songbook), color-coded section cards (drag-reorder,
  duplicate, repeat x N, inline-chord mode), and a theme-rendered live preview.
- Rendered slide filmstrip with overflow auto-split and theme repeat markers
  (/: :/, double-bar, pipe, (xN), bis/ter). Presenter sidebar parity and
  song-specific box sources in the theme editor.
- SwiftData SchemaV2 via automatic additive migration; SongImportVersion is a
  class to dodge a value-witness miscompile on the large optional struct.
- Tests: GOAT round-trip (incl. per-version overrides), ChordPro, plain text,
  PowerPoint chorus dedup, recursive import, duplicate->version, auto-split.
@RobyRew RobyRew merged commit 2cfef44 into main Jun 17, 2026
1 check passed
@RobyRew RobyRew deleted the feat/songs-goat-format branch June 17, 2026 22:09
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