Commit Graph

33 Commits

Author SHA1 Message Date
Xiaohan-Tian a8c68d97ed fix: tempo-driven audio region resizing and playhead clamping 2026-07-04 21:04:42 -07:00
Xiaohan-Tian 4f11fe8e25 feat: added region color customization feature 2026-07-01 22:31:35 -07:00
Xiaohan-Tian c4f5d7b78e feat: added global key signature track, global chord progression track, global tempo(BPM) track, and global marker track related tools for AI Agent 2026-06-05 16:50:51 -07:00
Xiaohan-Tian 622dbbea83 feat: added tool write_chord_progression 2026-06-05 15:29:00 -07:00
Xiaohan-Tian f12add935a feat: add audio chord detection for spectrogram regions 2026-05-25 19:09:19 -07:00
Xiaohan-Tian 8aa36d2368 feat: added global chord region to MIDI region conversion feature 2026-05-25 16:25:43 -07:00
Xiaohan-Tian 1879df8033 feat: implement global chord track 2026-05-24 23:06:08 -07:00
Xiaohan-Tian 7d275802c9 feat: implemented global tempo (bpm) track 2026-05-23 23:18:47 -07:00
Xiaohan-Tian 8eb3f5d84d feat: implemented global key signature track 2026-05-23 14:44:48 -07:00
Xiaohan-Tian fb3c6cde70 feat: implemented global marker track 2026-05-23 12:56:43 -07:00
Xiaohan-Tian 4cf474be7e feat: added split notes function 2026-05-18 19:00:21 -07:00
Xiaohan-Tian 9c197ecd08 feat: persist track mute/solo status 2026-05-17 13:06:47 -07:00
Xiaohan-Tian 31e02b4149 feat: implemented track level automation 2026-05-08 15:44:07 -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 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 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 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 7b74687daf feat: added edit MIDI notes' attribute feature 2026-05-02 18:49:23 -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 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 ebcebb5d3b feat: added split region feature 2026-04-16 22:36:31 -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 1670679c61 feat: add audio region trimming with non-destructive clip offset 2026-04-10 20:17:31 -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
Xiaohan-Tian b80e7e84b8 feat: implemented change loop setting command 2026-01-22 18:50:09 -08:00
Xiaohan-Tian dcd2d89d0f feat: persistence selected mode 2025-12-10 21:54:16 -08:00
Xiaohan-Tian aa2b19966b feat: add Vitest unit testing infrastructure with initial test suite. 2025-09-03 22:15:05 -07:00
Xiaohan-Tian 2510014580 updated the naming convention for new tracks and regions. New tracks now default to 'Track {i}', and new regions default to '{track_name} Region {i}'. 2025-08-12 21:41:11 -07:00
Xiaohan-Tian af9eca8fee disable unused param check for building; updated version number; avoid relying on constructor.name to determine class type due to class name mangling. 2025-08-11 19:54:51 -07:00
Xiaohan-Tian de51967b49 initial public release. 2025-08-11 18:37:21 -07:00