Xiaohan-Tian
|
71dc7d99e7
|
feat: allow kgone-server.json to override the kgone server base url and soundfont base url
|
2026-04-17 16:32:55 -07:00 |
|
Xiaohan-Tian
|
24ffaa76f6
|
fix: reserve Untitled Project name; rename project will trigger save immidiatly.
|
2026-04-16 20:24:43 -07:00 |
|
Xiaohan-Tian
|
cadd51c3a4
|
feat: integrate K.G.One music generation panel
- ConfigManager: add `general.kgone` config block (enabled toggle +
base URL); add `setKGOneManagedByServer()` / `isKGOneServerManaged()`
for managed deployments that supply a `kgone-server.txt` override
- App.tsx: probe for `kgone-server.txt` on startup (Content-Type guard
to avoid Vite SPA fallback false-positive)
- GeneralSettings: new K.G.One section with enable toggle + base URL
input; fields disabled when server-managed
- Toolbar: magic wand button (FaWandMagicSparkles) that toggles the
panel; disabled with reduced opacity when K.G.One is turned off;
mutually exclusive with the Chat panel
- projectStore: add `showKGOnePanel` state + `toggleKGOnePanel` action
- KGOnePanel (new): three-tab panel (Clip / Full Song / Separator)
- Clip: prompt + advanced params → POST /v1/clip/generate → poll
/v1/clip/result → download WAV → AudioPlayer preview
- Full Song: caption + lyrics + advanced params → POST
/v1/fullsong/generate → poll /v1/fullsong/result (live progress %
from nested JSON string) → download MP3 → AudioPlayer preview
- Separator: reads selected audio region from OPFS via
KGAudioFileStorage → POST /v1/separator/separate (multipart) →
poll /v1/separator/result → parallel-download all stem files →
multiple labeled AudioPlayer instances rendered vertically
- Shared: custom AudioPlayer (play/pause, clickable seek bar),
spinner + hint text, error card, AbortController cleanup,
DEBUG_MODE.KGONE-gated REQ/RES console logging
|
2026-04-15 19:51:16 -07:00 |
|
Xiaohan-Tian
|
d16553e659
|
feat: added bouncing to MP3 feature
|
2026-04-11 12:30:15 -07:00 |
|
Xiaohan-Tian
|
d4864426e3
|
feat: add bounce-to-WAV export with offline rendering via Tone.Offline
|
2026-04-11 12:18:30 -07:00 |
|
Xiaohan-Tian
|
2d3ea33ce6
|
refactor: migrate project storage from IndexedDB to OPFS with folder-based structure
- Replace monolithic KGStorage with KGProjectStorage (OPFS) and KGConfigStorage (IndexedDB)
- Each project stored as folder: project.json + meta.json + media/
- Add KGConfigUpgrader with V1 upgrader to auto-migrate existing IndexedDB projects to OPFS
- Request persistent storage via navigator.storage.persist() to prevent browser eviction
- Show loading spinner during one-time migration
- Enforce safe project name characters (letters, numbers, space, hyphen, underscore, period, parens)
- Export projects as .kgstudio zip bundles instead of raw JSON
- Import supports .kgstudio bundles (with meta.json validation) and legacy JSON files
- Auto-deduplicate project names on import with (1), (2), etc. suffix
- Add OPFS shell debugger (pwd, ls, cd, cat, dl) accessible via KGDebugger.opfs()
- Add ESLint semi rule for consistent semicolons
- Delete KGStorage.ts — all logic absorbed by new storage classes
- Add jszip dependency for zip export/import
|
2026-04-09 19:25:08 -07:00 |
|
Xiaohan-Tian
|
17610f12f3
|
refactor: split monolithic App.css into feature-based co-located CSS files
|
2026-04-09 17:31:49 -07:00 |
|
Xiaohan-Tian
|
58cb4cebef
|
refactor: moved "Add track" button from bottom TrackControl to top-left-spacer for better discoverability
|
2026-04-08 19:15:01 -07:00 |
|
Xiaohan-Tian
|
5cceec0c01
|
feat: implemented chord guide customization feature
|
2025-12-17 23:07:21 -08:00 |
|
Xiaohan-Tian
|
610b81e4cc
|
feat: merge mode_list.json into functional_chords.json
|
2025-12-17 22:10:37 -08:00 |
|
Xiaohan-Tian
|
8512fb4204
|
feat: added logic to get suitable chords (console log only)
|
2025-12-14 21:52:23 -08:00 |
|
Xiaohan-Tian
|
9e0c0cc1f5
|
feat: add scale highlighting to Piano Roll grid
|
2025-12-09 23:50:03 -08:00 |
|
Xiaohan-Tian
|
98ed8a60ce
|
feat: added mode list dropdown
|
2025-12-08 22:59:09 -08:00 |
|
Xiaohan-Tian
|
3534dc7fca
|
hide the ChatBox instead of unmount it to prevent lose chat history.
|
2025-08-12 19:29:32 -07:00 |
|
Xiaohan-Tian
|
de51967b49
|
initial public release.
|
2025-08-11 18:37:21 -07:00 |
|