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
3743f9cab2
feat: added v1 read-only version list event panel
2026-05-05 17:17:08 -07:00
Xiaohan-Tian
c2e68e388c
fix: error when creating MIDI region first time after the app has started projectStore.ts:271 Cannot update a component (Toolbar) while...
2026-05-05 16:09:35 -07:00
Xiaohan-Tian
6928416f78
fix: show loading spinner instead of hanging in open project dialog when user click open button
2026-05-04 21:44:25 -07:00
Xiaohan-Tian
213a4ee552
feat: added a warning pop-up when openning projects.
2026-05-04 20:17:05 -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
a2f12ca961
fix: minor updated the region lasso selection behavior
2026-05-04 18:34:29 -07:00
Xiaohan-Tian
f323f1a6b5
feat: allow user to use lasso to select multiple regions
2026-05-04 18:29:29 -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
bc7db712aa
feat: updated toolbar button style
2026-05-04 17:27:31 -07:00
Xiaohan-Tian
c733c39814
fix: should cut a held looped recording note at the loop end when note off arrives after wrap
2026-05-04 17:11:29 -07:00
Xiaohan-Tian
769d70ccb4
fix: "back to beginning" button should also shift viewport to the beginning of the song
2026-05-04 17:02:39 -07:00
Xiaohan-Tian
fc304ac349
feat: added a shortcut E to open/close piano roll
2026-05-04 16:53:48 -07:00
Xiaohan-Tian
7a6e7558ce
fix: pause button while recording should stop recoding
2026-05-02 23:02:37 -07:00
Xiaohan-Tian
9f536d9687
fix: recording preview notes are not taking region position into consideration
2026-05-02 22:55:27 -07:00
Xiaohan-Tian
0fc4ee2a0f
fix: spectrogram is not taking region position into consideration
2026-05-02 22:44:23 -07:00
Xiaohan-Tian
7b74687daf
feat: added edit MIDI notes' attribute feature
2026-05-02 18:49:23 -07:00
Xiaohan-Tian
90aee14265
fix: minor updated some styles
2026-05-02 17:22:11 -07:00
Xiaohan-Tian
07ba49d8e6
Merge pull request #36 from KGAudioLab/feat/2026-04-30-midi-device-recording
...
Feat/2026 04 30 midi device recording
2026-05-02 16:21:05 -07:00
Xiaohan-Tian
9828c45050
docs: updated README.md
2026-05-02 16:20:44 -07:00
Xiaohan-Tian
f132f6bbe2
feat: preserve the viewport position when zooming in and out
2026-05-02 13:35:17 -07:00
Xiaohan-Tian
da8b9496df
feat: add cross-component playhead scroll synchronization
2026-05-02 00:25:41 -07:00
Xiaohan-Tian
6b8a470022
fix: move computing spectrogram text to the center of current viewport of piano roll window
2026-05-02 00:09:33 -07:00
Xiaohan-Tian
5890a6d0b9
fix: piano roll spectrogram is not being zoomed correctly; switching from MIDI region to audio region with piano roll open might cause residual notes.
2026-05-01 23:56:12 -07:00
Xiaohan-Tian
811b3a0936
feat: added zoom-in/out feature for piano roll window.
2026-05-01 23:26:39 -07:00
Xiaohan-Tian
d59ad68f72
feat: added fine tune region position feature
2026-05-01 23:07:44 -07:00
Xiaohan-Tian
d5795c5281
fix: random not able to exit piano roll hybrid mode issue when switching between different MIDI regions (introduced a region dragging start threshold)
2026-05-01 20:34:21 -07:00
Xiaohan-Tian
cbd2fc60a0
fix: updated the spectrogram icon
2026-05-01 20:18:32 -07:00
Xiaohan-Tian
756fc1bc6c
fix: minor UI updates
2026-05-01 18:49:28 -07:00
Xiaohan-Tian
b7926300e1
fix: unit test errors and TS type errors
2026-05-01 18:33:25 -07:00
Xiaohan-Tian
83034455cc
feat: implemented piano roll hybrid mode to allow user edit MIDI notes while observing spectrogram as reference
2026-05-01 18:28:45 -07:00
Xiaohan-Tian
ba0e27e50a
fix: few misc issues when switching between MIDI region and audio regions
2026-05-01 17:55:14 -07:00
Xiaohan-Tian
eafb3a4937
feat: added audio track spectrogram visualization feature
2026-05-01 17:44:29 -07:00
Xiaohan-Tian
cc0aae4e9b
Merge pull request #35 from KGAudioLab/feat/2026-04-30-midi-device-recording
...
Feat/2026 04 30 midi device recording
2026-05-01 14:37:30 -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
c54cf3e61b
Merge pull request #34 from KGAudioLab/feat/2026-04-28-add-remix-and-repaint-support
...
Feat/2026 04 28 add remix and repaint support
2026-04-29 18:33:39 -07:00
Xiaohan-Tian
d7a3bcc6d3
docs: updated README.md
2026-04-29 18:32:24 -07:00
Xiaohan-Tian
f60c7b44ec
feat: added remix and repaint support
2026-04-29 18:28:23 -07:00
Xiaohan-Tian
f5d24a8423
Merge pull request #33 from KGAudioLab/feat/2026-04-15-kgone-integration
...
docs: added K.G.One demo to README.md
2026-04-24 23:12:51 -07:00
Xiaohan-Tian
d0ba2466d5
docs: added K.G.One demo to README.md
2026-04-24 23:12:29 -07:00
Xiaohan-Tian
799f9388e7
Merge pull request #32 from KGAudioLab/feat/2026-04-15-kgone-integration
...
Feat/2026 04 15 kgone integration
2026-04-24 23:00:55 -07:00
Xiaohan-Tian
3261356bc9
docs: updated README.md, added K.G.One Music Studio information
2026-04-24 22:00:09 -07:00
Xiaohan-Tian
3bce450637
fix: added base url presents for OpenAI Compatible settings
2026-04-24 20:03:18 -07:00
Xiaohan-Tian
d6001a6ceb
chore: added two debugger automation utilities
2026-04-21 19:03:40 -07:00
Xiaohan-Tian
f7f79cdb32
fix: extract stems from trimmed audio is using full song
2026-04-20 21:49:25 -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
1e4fdfc8c5
refactor: replace purple accent color with light blue theme and beautify Open Project modal
2026-04-20 12:09:57 -07:00
Xiaohan-Tian
55861cf3cd
feat: add closing animation to all modal dialogs and fix drag-dismiss bug
2026-04-20 00:36:32 -07:00
Xiaohan-Tian
778c0236b6
fix: added a special treatment for time signature input; fixed text selection in pop-up and release the mouse outside the pop-up will close the pop-up issue.
2026-04-20 00:02:47 -07:00
Xiaohan-Tian
1828dbbc63
feat: replace browser built-in alert/confirm/prompt pop-up with new DialogProvider
2026-04-19 23:54:26 -07:00
Xiaohan-Tian
0ac39068b2
feat: added metronome feature
2026-04-19 17:00:10 -07:00
Xiaohan-Tian
f0a2f06295
fix: remove hardcoded lm model
2026-04-18 16:28:29 -07:00
Xiaohan-Tian
8308cdf79a
fix: removed https support from vite dev server
2026-04-18 14:38:09 -07:00
Xiaohan-Tian
7e67ca9d10
fix: add https support for local vite dev server
2026-04-18 14:27:07 -07:00
Xiaohan-Tian
474b68c494
fix: minor updates the parameters send to ace-step-1.5
2026-04-17 23:58:10 -07:00
Xiaohan-Tian
ebcbe4002a
fix: adjust UI for open project pop up
2026-04-17 18:21:52 -07:00
Xiaohan-Tian
5ca1358795
feat: added "powered by" info to 3rd party powered features
2026-04-17 18:02:08 -07:00
Xiaohan-Tian
7d10d37b4f
fix: default K.G.One Music Generator panel to Full Song tab
2026-04-17 16:55:24 -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
cb4bf59de1
fix: undo is resetting the mute and solo track button status
2026-04-16 22:41:06 -07:00
Xiaohan-Tian
ebcebb5d3b
feat: added split region feature
2026-04-16 22:36:31 -07:00
Xiaohan-Tian
9d9190413d
fix: allow user to create audio region by triggering audio upload pop-up
2026-04-16 21:05:05 -07:00
Xiaohan-Tian
cb027b6c20
feat: added auto-center playhead to piano roll window
2026-04-16 20:53:01 -07:00
Xiaohan-Tian
425aeab2d1
feat: let playhead automatically centered
2026-04-16 20:46:28 -07:00
Xiaohan-Tian
1d5bb59ad7
fix: linter errors
2026-04-16 20:46:09 -07:00
Xiaohan-Tian
e3a77e6398
fix: removed unnecessary override confirmation when user save project with project name unchanged
2026-04-16 20:29:10 -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
2328ddb3f1
Merge pull request #31 from KGAudioLab/feat/2026-04-09-add-wav-track-support
...
doc: updated README.md
2026-04-11 13:00:05 -07:00
Xiaohan-Tian
eeebf5407f
doc: updated README.md
2026-04-11 12:59:41 -07:00
Xiaohan-Tian
c8f84d7870
Merge pull request #30 from KGAudioLab/feat/2026-04-09-add-wav-track-support
...
Feat/2026 04 09 add wav track support
2026-04-11 12:55:45 -07:00
Xiaohan-Tian
d082c9cfb5
fix: missing tool calling info in the exported conversation JSON and MD
2026-04-11 12:54:10 -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
39401b39c6
doc: updated help.md
2026-04-10 18:27:32 -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
Xiaohan-Tian
4917e54048
feat: enhanced emulated bash terminal (by using browser's input box pop-up loop)
2026-04-10 13:47:37 -07:00
Xiaohan-Tian
1ff9bfcac4
feat: add Open Project modal with project browser, soft delete, and duplicate
...
Replace the prompt-based project loading with a full modal UI:
- Draggable/resizable panel with overlay and backdrop blur
- Filterable project list with incremental fuzzy matching
- Sortable columns (name, created, updated) with asc/desc toggle
- Duplicate project with auto-rename on name conflict
- Soft delete with trash view, restore, and permanent delete
- Auto-purge trash after 30 days
- Orphan media file cleanup on project open
- Skip folders without valid meta.json in project listing
2026-04-10 13:28:01 -07:00
Xiaohan-Tian
21a19918b5
fix: assigned an image as audio track's instrument-preview background
2026-04-10 12:30:57 -07:00
Xiaohan-Tian
83f4bfe47f
fix: missing media files when renaming + saving the project
2026-04-10 12:14:20 -07:00
Xiaohan-Tian
6080accd3a
feat: added rm opfs mock bash command
2026-04-09 22:17:20 -07:00
Xiaohan-Tian
fc84edfc59
feat: add audio track support with WAV/MP3 playback and looping
...
Introduce KGAudioTrack and KGAudioRegion as new track/region types
alongside existing MIDI tracks. Users can import WAV, MP3, OGG, FLAC,
and AAC files into audio tracks with full playback, looping, and
solo/mute/volume support.
New core models:
- KGAudioTrack (extends KGTrack with TrackType.Wave)
- KGAudioRegion (extends KGRegion with audio file reference)
- KGAudioPlayerBus (Tone.Gain + ToneBufferSource-based playback)
- KGAudioFileStorage (OPFS media/ directory for binary audio files)
New commands:
- AddAudioTrackCommand (create audio track with player bus)
- ImportAudioCommand (import audio file, create region at playhead,
auto-expand maxBars)
Playback features:
- Audio regions scheduled via Tone.Transport alongside MIDI events
- Loop support with duration capping at loop boundaries
- Resume safety offset to prevent ToneBufferSource timing misses
- Cross-track buffer copy when moving audio regions between tracks
- Proper buffer cleanup on track deletion and project switch
UI changes:
- Separate "+ MIDI" and "+ Audio" buttons in top-left spacer
- Audio track shows upload button instead of instrument selector
- FileImportModal reused for audio file drag-and-drop upload
- Real waveform rendering on audio region canvas
- Green color scheme for audio regions (vs blue for MIDI)
- Pencil icon and resize handles hidden for audio regions
- Cross-type region moves blocked (MIDI ↔ Audio)
- Piano roll blocked for audio regions
- Audio region deletion support
Infrastructure:
- Project structure version bumped to 4 (no-op migration)
- class-transformer discriminators updated for new subtypes
- RemoveTrackCommand updated to clean up audio player buses
2026-04-09 21:54:54 -07:00