Commit Graph

92 Commits

Author SHA1 Message Date
Xiaohan-Tian f9a3edb832 fix: update default playhead fps to 30 2026-05-14 21:55:59 -07:00
Xiaohan-Tian a48966d761 feat: added local LLM context length option 2026-05-14 19:44:25 -07:00
Xiaohan-Tian 98c2b97413 feat: implemented the v1 browser embedded LLM support (Gemma 4 E4B based) 2026-05-14 18:55:23 -07:00
Xiaohan-Tian 64dda5bb01 fix: few minor UI and behavior adjustments 2026-05-11 23:23:11 -07:00
Xiaohan-Tian d32dc35b6d feat: added local separator implementation 2026-05-11 22:27:22 -07:00
Xiaohan-Tian 8fa2c16395 feat: added save as option when renaming the project 2026-05-10 13:25:12 -07:00
Xiaohan-Tian 578be7b726 feat: added track scope mode for sheet music view; adjusted viewport behavior when switching between piano roll view and sheet music view 2026-05-10 13:11:10 -07:00
Xiaohan-Tian d69b3924e5 feat: added sheet music (stuff notation) view to the piano roll window MIDI mode 2026-05-09 23:50:02 -07:00
Xiaohan-Tian 4f4511edf4 fix: failed tests 2026-05-09 17:12:21 -07:00
Xiaohan-Tian 490cd19f68 feat: added audio recording feature 2026-05-09 15:57:46 -07:00
Xiaohan-Tian 31e02b4149 feat: implemented track level automation 2026-05-08 15:44:07 -07:00
Xiaohan-Tian 1e33caafc5 fix: few minor UI adjustments and fixes 2026-05-07 23:28:16 -07:00
Xiaohan-Tian f3d26126fa feat: added MIDI CC recording and list event table operation support. 2026-05-07 22:12:06 -07:00
Xiaohan-Tian 6305983df8 feat: added support for real time MIDI CC input (CC1, CC2, CC7, CC11 -> velocity; CC64 -> sustain) 2026-05-06 22:58:49 -07:00
Xiaohan-Tian 0d9e2a9f9b fix: round interpolated MIDI values to integers to deduplicate repeated consecutive values 2026-05-06 20:01:46 -07:00
Xiaohan-Tian 738628fc76 feat: added pitch bend automation (linear interpolation) 2026-05-06 18:25:14 -07:00
Xiaohan-Tian fc1a044e98 feat: added adding pitch bend feature and delete selected events feature to the list event panel 2026-05-06 17:36:54 -07:00
Xiaohan-Tian 6ed1dddebd fix: load existing projects will crash the playback or have no sound due to missing pitchBend array in the JSON 2026-05-05 21:52:57 -07:00
Xiaohan-Tian 98cccf5c7a feat: added pitch bend support 2026-05-05 21:28:32 -07:00
Xiaohan-Tian 8f453f8f4c feat: implemented inline edit for the list event panel 2026-05-05 17:55:06 -07:00
Xiaohan-Tian 8a6e904ab4 feat: added an option to let user choose the vertical resolution of the spectrogram, also fixed a bug that peak of pitch in the spectrogram has been mapped to the start of the note bin instead of the center 2026-05-04 20:14:04 -07:00
Xiaohan-Tian d089456676 feat: honor MIDI input notes' velocity during recording 2026-05-04 19:34:54 -07:00
Xiaohan-Tian 066946ea64 feat: added merge MIDI regions feature 2026-05-04 18:58:51 -07:00
Xiaohan-Tian 01a3f886d6 feat: allow user to bulk resize and move regions 2026-05-04 18:15:34 -07:00
Xiaohan-Tian 6d952b5b0b feat: allow user to multi-select regions. 2026-05-04 17:59:35 -07:00
Xiaohan-Tian 7b74687daf feat: added edit MIDI notes' attribute feature 2026-05-02 18:49:23 -07:00
Xiaohan-Tian b7926300e1 fix: unit test errors and TS type errors 2026-05-01 18:33:25 -07:00
Xiaohan-Tian cd90dc1c99 fix: linter errors 2026-05-01 14:36:56 -07:00
Xiaohan-Tian 9be96cd957 feat: add R as shortcut of recording button; fixed linter errors. 2026-05-01 14:29:27 -07:00
Xiaohan-Tian 043e90b1d7 fix: missing count-in when recording with loop mode on 2026-05-01 14:17:29 -07:00
Xiaohan-Tian adb2345693 fix: wwitched the preroll metronome scheduling off window.setTimeout and onto Tone’s audio-context clock 2026-05-01 12:16:57 -07:00
Xiaohan-Tian a474065450 fix: pre-roll metronome ticks are missing 2026-05-01 12:11:02 -07:00
Xiaohan-Tian 95ca3394a8 feat: switch track volume to dB scale with Logic Pro-style fader (−∞dB ~ +12dB) 2026-05-01 11:38:35 -07:00
Xiaohan-Tian 77885c8e2e feat: added recording MIDI device feature. 2026-05-01 10:59:36 -07:00
Xiaohan-Tian d6001a6ceb chore: added two debugger automation utilities 2026-04-21 19:03:40 -07:00
Xiaohan-Tian a71de0c789 fix: minor updated color palette for some components; updated default region/track names for stem separation. 2026-04-20 15:33:02 -07:00
Xiaohan-Tian 0ac39068b2 feat: added metronome feature 2026-04-19 17:00:10 -07:00
Xiaohan-Tian 7e67ca9d10 fix: add https support for local vite dev server 2026-04-18 14:27:07 -07:00
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 206fa6fdf9 fix: honor the soundfont -> baseUrl config 2026-04-17 16:18:33 -07:00
Xiaohan-Tian ebcebb5d3b feat: added split region feature 2026-04-16 22:36:31 -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 3010cf4e2d fix: long track name displaying issue; wrong separator model name mapping; imported generated full song not adjusting max bars; implemented retry mechanism for K.G.One server calls. 2026-04-16 17:44:44 -07:00
Xiaohan-Tian 7b82572d5c feat: implemented drag-n-drop to import KGOne generated audio/MIDI file feature 2026-04-15 22:40:47 -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 d94b53dcf5 feat: add snap-to-grid toggle for track grid regions and playhead 2026-04-10 20:57:34 -07:00
Xiaohan-Tian 1670679c61 feat: add audio region trimming with non-destructive clip offset 2026-04-10 20:17:31 -07:00
Xiaohan-Tian 139684b413 feat: add bar width multiplier (1x–8x horizontal zoom) for track grid 2026-04-10 18:17:36 -07:00